forked from qt-creator/qt-creator
Qt4BaseTargetFactory: Expose list of generic 'features' for a target
Replace the isMobileTarget, supportsShadowBuilds methods by a generic targetFeatures method which exposes features as a set of strings. Change-Id: I2ac99ff5a82280316071efaa140cd7ea35b21374 Reviewed-on: http://codereview.qt.nokia.com/692 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
This commit is contained in:
@@ -156,16 +156,10 @@ ProjectExplorer::Target *Qt4DesktopTargetFactory::create(ProjectExplorer::Projec
|
|||||||
return create(parent, id, infos);
|
return create(parent, id, infos);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Qt4DesktopTargetFactory::isMobileTarget(const QString &id)
|
QSet<QString> Qt4DesktopTargetFactory::targetFeatures(const QString & /*id*/) const
|
||||||
{
|
{
|
||||||
Q_UNUSED(id)
|
return QSet<QString>() << Constants::DESKTOP_TARGETFEATURE_ID
|
||||||
return false;
|
<< Constants::SHADOWBUILD_TARGETFEATURE_ID;
|
||||||
}
|
|
||||||
|
|
||||||
bool Qt4DesktopTargetFactory::supportsShadowBuilds(const QString &id)
|
|
||||||
{
|
|
||||||
Q_UNUSED(id);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::Target *Qt4DesktopTargetFactory::create(ProjectExplorer::Project *parent, const QString &id, const QList<BuildConfigurationInfo> &infos)
|
ProjectExplorer::Target *Qt4DesktopTargetFactory::create(ProjectExplorer::Project *parent, const QString &id, const QList<BuildConfigurationInfo> &infos)
|
||||||
|
|||||||
@@ -56,8 +56,7 @@ public:
|
|||||||
|
|
||||||
Qt4TargetSetupWidget *createTargetSetupWidget(const QString &id, const QString &proFilePath, const QtSupport::QtVersionNumber &minimumQtVersion, bool importEnabled, QList<BuildConfigurationInfo> importInfos);
|
Qt4TargetSetupWidget *createTargetSetupWidget(const QString &id, const QString &proFilePath, const QtSupport::QtVersionNumber &minimumQtVersion, bool importEnabled, QList<BuildConfigurationInfo> importInfos);
|
||||||
QString buildNameForId(const QString &id) const;
|
QString buildNameForId(const QString &id) const;
|
||||||
bool isMobileTarget(const QString &id);
|
QSet<QString> targetFeatures(const QString &id) const;
|
||||||
bool supportsShadowBuilds(const QString &id);
|
|
||||||
ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id);
|
ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id);
|
||||||
ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id, const QList<BuildConfigurationInfo> &infos);
|
ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id, const QList<BuildConfigurationInfo> &infos);
|
||||||
|
|
||||||
|
|||||||
@@ -123,16 +123,10 @@ ProjectExplorer::Target *Qt4SimulatorTargetFactory::restore(ProjectExplorer::Pro
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Qt4SimulatorTargetFactory::isMobileTarget(const QString &id)
|
QSet<QString> Qt4SimulatorTargetFactory::targetFeatures(const QString & /*id*/) const
|
||||||
{
|
{
|
||||||
Q_UNUSED(id)
|
return QSet<QString>() << Constants::MOBILE_TARGETFEATURE_ID
|
||||||
return true;
|
<< Constants::SHADOWBUILD_TARGETFEATURE_ID;
|
||||||
}
|
|
||||||
|
|
||||||
bool Qt4SimulatorTargetFactory::supportsShadowBuilds(const QString &id)
|
|
||||||
{
|
|
||||||
Q_UNUSED(id);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::Target *Qt4SimulatorTargetFactory::create(ProjectExplorer::Project *parent, const QString &id)
|
ProjectExplorer::Target *Qt4SimulatorTargetFactory::create(ProjectExplorer::Project *parent, const QString &id)
|
||||||
|
|||||||
@@ -56,10 +56,9 @@ public:
|
|||||||
ProjectExplorer::Target *restore(ProjectExplorer::Project *parent, const QVariantMap &map);
|
ProjectExplorer::Target *restore(ProjectExplorer::Project *parent, const QVariantMap &map);
|
||||||
|
|
||||||
bool supportsTargetId(const QString &id) const;
|
bool supportsTargetId(const QString &id) const;
|
||||||
|
QSet<QString> targetFeatures(const QString &id) const;
|
||||||
|
|
||||||
bool isMobileTarget(const QString &id);
|
|
||||||
QString buildNameForId(const QString &id) const;
|
QString buildNameForId(const QString &id) const;
|
||||||
bool supportsShadowBuilds(const QString &id);
|
|
||||||
ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id);
|
ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id);
|
||||||
ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id, const QList<BuildConfigurationInfo> &infos);
|
ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id, const QList<BuildConfigurationInfo> &infos);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -175,16 +175,9 @@ QList<BuildConfigurationInfo> Qt4SymbianTargetFactory::availableBuildConfigurati
|
|||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Qt4SymbianTargetFactory::isMobileTarget(const QString &id)
|
QSet<QString> Qt4SymbianTargetFactory::targetFeatures(const QString & /*id*/) const
|
||||||
{
|
{
|
||||||
Q_UNUSED(id)
|
return QSet<QString>() << Constants::MOBILE_TARGETFEATURE_ID;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Qt4SymbianTargetFactory::supportsShadowBuilds(const QString &id)
|
|
||||||
{
|
|
||||||
Q_UNUSED(id);
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::Target *Qt4SymbianTargetFactory::create(ProjectExplorer::Project *parent, const QString &id)
|
ProjectExplorer::Target *Qt4SymbianTargetFactory::create(ProjectExplorer::Project *parent, const QString &id)
|
||||||
|
|||||||
@@ -60,8 +60,8 @@ public:
|
|||||||
QString shadowBuildDirectory(const QString &profilePath, const QString &id, const QString &suffix);
|
QString shadowBuildDirectory(const QString &profilePath, const QString &id, const QString &suffix);
|
||||||
QList<ProjectExplorer::Task> reportIssues(const QString &proFile);
|
QList<ProjectExplorer::Task> reportIssues(const QString &proFile);
|
||||||
QList<BuildConfigurationInfo> availableBuildConfigurations(const QString &id, const QString &proFilePath, const QtSupport::QtVersionNumber &minimumQtVersion);
|
QList<BuildConfigurationInfo> availableBuildConfigurations(const QString &id, const QString &proFilePath, const QtSupport::QtVersionNumber &minimumQtVersion);
|
||||||
bool isMobileTarget(const QString &id);
|
|
||||||
bool supportsShadowBuilds(const QString &id);
|
QSet<QString> targetFeatures(const QString &id) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -75,8 +75,7 @@ public:
|
|||||||
/// only used in the TargetSetupPage
|
/// only used in the TargetSetupPage
|
||||||
virtual QIcon iconForId(const QString &id) const = 0;
|
virtual QIcon iconForId(const QString &id) const = 0;
|
||||||
|
|
||||||
virtual bool isMobileTarget(const QString &id) = 0;
|
virtual QSet<QString> targetFeatures(const QString &id) const = 0;
|
||||||
virtual bool supportsShadowBuilds(const QString &id) = 0;
|
|
||||||
|
|
||||||
virtual ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id) = 0;
|
virtual ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id) = 0;
|
||||||
virtual ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id, const QList<BuildConfigurationInfo> &infos) = 0;
|
virtual ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id, const QList<BuildConfigurationInfo> &infos) = 0;
|
||||||
|
|||||||
@@ -92,6 +92,11 @@ const char * const HARMATTAN_DEVICE_TARGET_ID = "Qt4ProjectManager.Target.Harmat
|
|||||||
const char * const MEEGO_DEVICE_TARGET_ID = "Qt4ProjectManager.Target.MeegoDeviceTarget";
|
const char * const MEEGO_DEVICE_TARGET_ID = "Qt4ProjectManager.Target.MeegoDeviceTarget";
|
||||||
const char * const QT_SIMULATOR_TARGET_ID = "Qt4ProjectManager.Target.QtSimulatorTarget";
|
const char * const QT_SIMULATOR_TARGET_ID = "Qt4ProjectManager.Target.QtSimulatorTarget";
|
||||||
|
|
||||||
|
// Target Features
|
||||||
|
const char * const MOBILE_TARGETFEATURE_ID = "Qt4ProjectManager.TargetFeature.Mobile";
|
||||||
|
const char * const DESKTOP_TARGETFEATURE_ID = "Qt4ProjectManager.TargetFeature.Desktop";
|
||||||
|
const char * const SHADOWBUILD_TARGETFEATURE_ID = "Qt4ProjectManager.TargetFeature.ShadowBuild";
|
||||||
|
|
||||||
// Tool chains:
|
// Tool chains:
|
||||||
const char * const GCCE_TOOLCHAIN_ID = "Qt4ProjectManager.ToolChain.GCCE";
|
const char * const GCCE_TOOLCHAIN_ID = "Qt4ProjectManager.ToolChain.GCCE";
|
||||||
const char * const MAEMO_TOOLCHAIN_ID = "Qt4ProjectManager.ToolChain.Maemo";
|
const char * const MAEMO_TOOLCHAIN_ID = "Qt4ProjectManager.ToolChain.Maemo";
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
#include "qt4project.h"
|
#include "qt4project.h"
|
||||||
#include "qt4basetargetfactory.h"
|
#include "qt4basetargetfactory.h"
|
||||||
#include "qt4projectconfigwidget.h"
|
#include "qt4projectconfigwidget.h"
|
||||||
|
#include "qt4projectmanagerconstants.h"
|
||||||
|
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
#include <extensionsystem/pluginmanager.h>
|
#include <extensionsystem/pluginmanager.h>
|
||||||
@@ -91,11 +92,14 @@ Qt4TargetSetupWidget *Qt4BaseTargetFactory::createTargetSetupWidget(const QStrin
|
|||||||
QList<BuildConfigurationInfo> infos = this->availableBuildConfigurations(id, proFilePath, number);
|
QList<BuildConfigurationInfo> infos = this->availableBuildConfigurations(id, proFilePath, number);
|
||||||
if (infos.isEmpty())
|
if (infos.isEmpty())
|
||||||
return 0;
|
return 0;
|
||||||
Qt4DefaultTargetSetupWidget *widget = new Qt4DefaultTargetSetupWidget(this, id, proFilePath, infos,
|
const bool supportsShadowBuilds
|
||||||
number, importEnabled && supportsShadowBuilds(id),
|
= targetFeatures(id).contains(Constants::SHADOWBUILD_TARGETFEATURE_ID);
|
||||||
importInfos,
|
Qt4DefaultTargetSetupWidget *widget
|
||||||
supportsShadowBuilds(id) ? Qt4DefaultTargetSetupWidget::ENABLE :
|
= new Qt4DefaultTargetSetupWidget(this, id, proFilePath, infos, number,
|
||||||
Qt4DefaultTargetSetupWidget::DISABLE);
|
importEnabled && supportsShadowBuilds, importInfos,
|
||||||
|
(supportsShadowBuilds
|
||||||
|
? Qt4DefaultTargetSetupWidget::ENABLE
|
||||||
|
: Qt4DefaultTargetSetupWidget::DISABLE));
|
||||||
return widget;
|
return widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ AbstractMobileAppWizardDialog::AbstractMobileAppWizardDialog(QWidget *parent, co
|
|||||||
, m_harmattanItem(0)
|
, m_harmattanItem(0)
|
||||||
{
|
{
|
||||||
m_targetsPage = new TargetSetupPage;
|
m_targetsPage = new TargetSetupPage;
|
||||||
m_targetsPage->setPreferMobile(true);
|
m_targetsPage->setPreferredFeatures(QSet<QString>() << Constants::MOBILE_TARGETFEATURE_ID);
|
||||||
m_targetsPage->setMinimumQtVersion(minimumQtVersionNumber);
|
m_targetsPage->setMinimumQtVersion(minimumQtVersionNumber);
|
||||||
resize(900, 450);
|
resize(900, 450);
|
||||||
|
|
||||||
|
|||||||
@@ -105,7 +105,6 @@ Core::BaseFileWizardParameters MobileAppWizard::parameters()
|
|||||||
AbstractMobileAppWizardDialog *MobileAppWizard::createWizardDialogInternal(QWidget *parent) const
|
AbstractMobileAppWizardDialog *MobileAppWizard::createWizardDialogInternal(QWidget *parent) const
|
||||||
{
|
{
|
||||||
m_d->wizardDialog = new MobileAppWizardDialog(parent);
|
m_d->wizardDialog = new MobileAppWizardDialog(parent);
|
||||||
m_d->wizardDialog->targetsPage()->setPreferMobile(true);
|
|
||||||
return m_d->wizardDialog;
|
return m_d->wizardDialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -244,7 +244,11 @@ int BaseQt4ProjectWizardDialog::addTargetSetupPage(QSet<QString> targets, bool m
|
|||||||
m_targets = targets;
|
m_targets = targets;
|
||||||
resize(900, 450);
|
resize(900, 450);
|
||||||
|
|
||||||
m_targetSetupPage->setPreferMobile(mobile);
|
if (mobile) {
|
||||||
|
m_targetSetupPage->setPreferredFeatures(QSet<QString>() << Constants::MOBILE_TARGETFEATURE_ID);
|
||||||
|
} else {
|
||||||
|
m_targetSetupPage->setPreferredFeatures(QSet<QString>() << Constants::DESKTOP_TARGETFEATURE_ID);
|
||||||
|
}
|
||||||
|
|
||||||
if (id >= 0)
|
if (id >= 0)
|
||||||
setPage(id, m_targetSetupPage);
|
setPage(id, m_targetSetupPage);
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ using namespace Qt4ProjectManager;
|
|||||||
|
|
||||||
TargetSetupPage::TargetSetupPage(QWidget *parent) :
|
TargetSetupPage::TargetSetupPage(QWidget *parent) :
|
||||||
QWizardPage(parent),
|
QWizardPage(parent),
|
||||||
m_preferMobile(false),
|
|
||||||
m_importSearch(false),
|
m_importSearch(false),
|
||||||
m_spacer(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding)),
|
m_spacer(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding)),
|
||||||
m_ui(new Internal::Ui::TargetSetupPage)
|
m_ui(new Internal::Ui::TargetSetupPage)
|
||||||
@@ -98,9 +97,9 @@ bool TargetSetupPage::isComplete() const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TargetSetupPage::setPreferMobile(bool mobile)
|
void TargetSetupPage::setPreferredFeatures(const QSet<QString> &featureIds)
|
||||||
{
|
{
|
||||||
m_preferMobile = mobile;
|
m_preferredFeatures = featureIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TargetSetupPage::setMinimumQtVersion(const QtSupport::QtVersionNumber &number)
|
void TargetSetupPage::setMinimumQtVersion(const QtSupport::QtVersionNumber &number)
|
||||||
@@ -124,9 +123,15 @@ void TargetSetupPage::setupWidgets()
|
|||||||
Qt4TargetSetupWidget *widget =
|
Qt4TargetSetupWidget *widget =
|
||||||
factory->createTargetSetupWidget(id, m_proFilePath, m_minimumQtVersionNumber, m_importSearch, infos);
|
factory->createTargetSetupWidget(id, m_proFilePath, m_minimumQtVersionNumber, m_importSearch, infos);
|
||||||
if (widget) {
|
if (widget) {
|
||||||
bool selectTarget = (m_preferMobile == factory->isMobileTarget(id) && m_importInfos.isEmpty())
|
bool selectTarget = false;
|
||||||
|| !infos.isEmpty();
|
if (!m_importInfos.isEmpty()) {
|
||||||
widget->setTargetSelected(selectTarget) ;
|
selectTarget = !infos.isEmpty();
|
||||||
|
} else {
|
||||||
|
if (!m_preferredFeatures.isEmpty()) {
|
||||||
|
selectTarget = factory->targetFeatures(id).contains(m_preferredFeatures);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
widget->setTargetSelected(selectTarget);
|
||||||
atLeastOneTargetSelected |= selectTarget;
|
atLeastOneTargetSelected |= selectTarget;
|
||||||
m_widgets.insert(id, widget);
|
m_widgets.insert(id, widget);
|
||||||
m_factories.insert(widget, factory);
|
m_factories.insert(widget, factory);
|
||||||
|
|||||||
@@ -72,10 +72,9 @@ public:
|
|||||||
/// Initializes the TargetSetupPage
|
/// Initializes the TargetSetupPage
|
||||||
/// \note The import information is gathered in initializePage(), make sure that the right proFilePath is set before
|
/// \note The import information is gathered in initializePage(), make sure that the right proFilePath is set before
|
||||||
void initializePage();
|
void initializePage();
|
||||||
/// Changes the default set of checked targets. For mobile Symbian, maemo5, simulator is checked
|
/// Changes the default set of checked targets.
|
||||||
/// For non mobile, destkop is checked
|
|
||||||
/// call this before \sa initializePage()
|
/// call this before \sa initializePage()
|
||||||
void setPreferMobile(bool mobile);
|
void setPreferredFeatures(const QSet<QString> &featureIds);
|
||||||
/// Sets the minimum qt version
|
/// Sets the minimum qt version
|
||||||
/// calls this before \sa initializePage()
|
/// calls this before \sa initializePage()
|
||||||
void setMinimumQtVersion(const QtSupport::QtVersionNumber &number);
|
void setMinimumQtVersion(const QtSupport::QtVersionNumber &number);
|
||||||
@@ -96,7 +95,7 @@ private:
|
|||||||
void setupWidgets();
|
void setupWidgets();
|
||||||
void deleteWidgets();
|
void deleteWidgets();
|
||||||
|
|
||||||
bool m_preferMobile;
|
QSet<QString> m_preferredFeatures;
|
||||||
bool m_importSearch;
|
bool m_importSearch;
|
||||||
QtSupport::QtVersionNumber m_minimumQtVersionNumber;
|
QtSupport::QtVersionNumber m_minimumQtVersionNumber;
|
||||||
QString m_proFilePath;
|
QString m_proFilePath;
|
||||||
|
|||||||
@@ -158,20 +158,15 @@ QString Qt4MaemoTargetFactory::shadowBuildDirectory(const QString &profilePath,
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Qt4MaemoTargetFactory::isMobileTarget(const QString &id)
|
QSet<QString> Qt4MaemoTargetFactory::targetFeatures(const QString & /*id*/) const
|
||||||
{
|
{
|
||||||
Q_UNUSED(id)
|
QSet<QString> features;
|
||||||
return true;
|
features << Qt4ProjectManager::Constants::MOBILE_TARGETFEATURE_ID;
|
||||||
}
|
#ifndef Q_OS_WIN
|
||||||
|
features << Qt4ProjectManager::Constants::SHADOWBUILD_TARGETFEATURE_ID;
|
||||||
bool Qt4MaemoTargetFactory::supportsShadowBuilds(const QString &id)
|
|
||||||
{
|
|
||||||
Q_UNUSED(id);
|
|
||||||
#ifdef Q_OS_WIN
|
|
||||||
return false;
|
|
||||||
#else
|
|
||||||
return true;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
return features;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::Target *Qt4MaemoTargetFactory::create(ProjectExplorer::Project *parent, const QString &id)
|
ProjectExplorer::Target *Qt4MaemoTargetFactory::create(ProjectExplorer::Project *parent, const QString &id)
|
||||||
|
|||||||
@@ -62,8 +62,7 @@ public:
|
|||||||
ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id,
|
ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id,
|
||||||
const QList<Qt4ProjectManager::BuildConfigurationInfo> &infos);
|
const QList<Qt4ProjectManager::BuildConfigurationInfo> &infos);
|
||||||
|
|
||||||
bool isMobileTarget(const QString &id);
|
QSet<QString> targetFeatures(const QString &id) const;
|
||||||
bool supportsShadowBuilds(const QString &id);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
Reference in New Issue
Block a user