diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp index 3d7122c36950e834c90eaa3a87fdf1c74a107da2..d8d733605fe036ad13e459e55588d0d4403837f2 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp @@ -184,6 +184,12 @@ bool Qt4DesktopTargetFactory::isMobileTarget(const QString &id) return false; } +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) { if (!canCreate(parent, id)) diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.h b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.h index 4cd939c60d0c68d9b443ead60c6cc55a6c5268c8..8f3b75039a15df8494e775cd9fc3984ffc04b967 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.h +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.h @@ -58,6 +58,7 @@ public: Qt4TargetSetupWidget *createTargetSetupWidget(const QString &id, const QString &proFilePath, const QtVersionNumber &minimumQtVersion, bool importEnabled, QList<BuildConfigurationInfo> importInfos); bool isMobileTarget(const QString &id); + bool supportsShadowBuilds(const QString &id); QList<BuildConfigurationInfo> availableBuildConfigurations(const QString &id, const QString &proFilePath, const QtVersionNumber &minimumQtVersion); ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id); ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const QString &id, const QList<BuildConfigurationInfo> &infos); diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp index 4bbdfb6f94d0f9042b0251b2d42b416e05266f3a..a56f0ef053484acdee59d9c6f6769aec71a653f9 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp @@ -152,6 +152,12 @@ bool Qt4SimulatorTargetFactory::isMobileTarget(const QString &id) return true; } +bool Qt4SimulatorTargetFactory::supportsShadowBuilds(const QString &id) +{ + Q_UNUSED(id); + return true; +} + ProjectExplorer::Target *Qt4SimulatorTargetFactory::create(ProjectExplorer::Project *parent, const QString &id) { if (!canCreate(parent, id)) diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.h b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.h index 096f03039b9285c479e8f7cd5a2a97371a23e322..dfdb2a84fce581a7cec1953d95de377cebbe3749 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.h +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.h @@ -61,6 +61,7 @@ public: QList<BuildConfigurationInfo> availableBuildConfigurations(const QString &id, const QString &proFilePath, const QtVersionNumber &minimumQtVersion); bool isMobileTarget(const QString &id); + bool supportsShadowBuilds(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); }; diff --git a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp index c0d0ce2135ba4f2dc0e82499645953f5aeab360a..05330426793228f680c298b074d416d361cfc612 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp @@ -176,6 +176,16 @@ bool Qt4MaemoTargetFactory::isMobileTarget(const QString &id) return true; } +bool Qt4MaemoTargetFactory::supportsShadowBuilds(const QString &id) +{ + Q_UNUSED(id); +#ifdef Q_OS_WIN + return false; +#else + return true; +#endif +} + ProjectExplorer::Target *Qt4MaemoTargetFactory::create(ProjectExplorer::Project *parent, const QString &id) { if (!canCreate(parent, id)) diff --git a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.h b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.h index 010eb34faa37f0d968b3f9ba2688cc9779048e65..6723f0e6e1de4182a9233bd8666a979230256875 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.h +++ b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.h @@ -62,6 +62,7 @@ public: QList<BuildConfigurationInfo> availableBuildConfigurations(const QString &id, const QString &proFilePath, const QtVersionNumber &minimumQtVersion); bool isMobileTarget(const QString &id); + bool supportsShadowBuilds(const QString &id); }; } // namespace Internal diff --git a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp index bdf0dc532db490c863ea3608fe546c88e7677db5..90ca2bf7f28bad070e78ca2455806c6babeef931 100644 --- a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp @@ -192,6 +192,12 @@ bool Qt4SymbianTargetFactory::isMobileTarget(const QString &id) return true; } +bool Qt4SymbianTargetFactory::supportsShadowBuilds(const QString &id) +{ + Q_UNUSED(id); + return false; +} + ProjectExplorer::Target *Qt4SymbianTargetFactory::create(ProjectExplorer::Project *parent, const QString &id) { if (!canCreate(parent, id)) diff --git a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.h b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.h index 0cf1920557fe6e44821419c8d4b228927aab15d9..c2c6cef625ca2ba7b2a3c5ca733fe6920631d574 100644 --- a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.h +++ b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.h @@ -62,6 +62,7 @@ public: QList<ProjectExplorer::Task> reportIssues(const QString &proFile); QList<BuildConfigurationInfo> availableBuildConfigurations(const QString &id, const QString &proFilePath, const QtVersionNumber &minimumQtVersion); bool isMobileTarget(const QString &id); + bool supportsShadowBuilds(const QString &id); }; } // namespace Internal diff --git a/src/plugins/qt4projectmanager/qt4basetargetfactory.h b/src/plugins/qt4projectmanager/qt4basetargetfactory.h index 2be2ebc5bcae87519fdf676672f2f76d84d4b0ff..d04926bf87437fdec8bcf31447b459454b7fb538 100644 --- a/src/plugins/qt4projectmanager/qt4basetargetfactory.h +++ b/src/plugins/qt4projectmanager/qt4basetargetfactory.h @@ -69,6 +69,7 @@ public: virtual QIcon iconForId(const QString &id) const = 0; virtual bool isMobileTarget(const QString &id) = 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, const QList<BuildConfigurationInfo> &infos) = 0; diff --git a/src/plugins/qt4projectmanager/qt4target.cpp b/src/plugins/qt4projectmanager/qt4target.cpp index 793348b5690d6b825c7e497d5dae2f8a427c5a5b..9e837cff51b7cf507e3ff1bcf36abc66440bdd3c 100644 --- a/src/plugins/qt4projectmanager/qt4target.cpp +++ b/src/plugins/qt4projectmanager/qt4target.cpp @@ -83,7 +83,9 @@ Qt4TargetSetupWidget *Qt4BaseTargetFactory::createTargetSetupWidget(const QStrin QList<BuildConfigurationInfo> infos = this->availableBuildConfigurations(id, proFilePath, number); if (infos.isEmpty()) return 0; - return new Qt4DefaultTargetSetupWidget(this, id, proFilePath, infos, number, importEnabled, importInfos); + Qt4DefaultTargetSetupWidget *widget = new Qt4DefaultTargetSetupWidget(this, id, proFilePath, infos, number, importEnabled, importInfos); + widget->setShadowBuildSupported(supportsShadowBuilds(id)); + return widget; } ProjectExplorer::Target *Qt4BaseTargetFactory::create(ProjectExplorer::Project *parent, const QString &id, Qt4TargetSetupWidget *widget) @@ -374,7 +376,6 @@ Qt4DefaultTargetSetupWidget::Qt4DefaultTargetSetupWidget(Qt4BaseTargetFactory *f m_shadowBuildEnabled = new QCheckBox; m_shadowBuildEnabled->setText(tr("Use Shadow Building")); - m_shadowBuildEnabled->setChecked(true); m_shadowBuildEnabled->setVisible(false); layout->addWidget(m_shadowBuildEnabled); @@ -395,6 +396,8 @@ Qt4DefaultTargetSetupWidget::Qt4DefaultTargetSetupWidget(Qt4BaseTargetFactory *f m_importEnabled << true; } + m_shadowBuildEnabled->setChecked(!m_hasInSourceBuild); + m_selected += m_importInfos.size(); setupImportWidgets(); @@ -456,10 +459,15 @@ void Qt4DefaultTargetSetupWidget::setProFilePath(const QString &proFilePath) setBuildConfigurationInfos(m_factory->availableBuildConfigurations(m_id, proFilePath, m_minimumQtVersion), false); } +void Qt4DefaultTargetSetupWidget::setShadowBuildSupported(bool b) +{ + // if shadow building is supported we want to enable it, unless we have a in source build + m_shadowBuildEnabled->setChecked(b && !m_hasInSourceBuild); +} + void Qt4DefaultTargetSetupWidget::setShadowBuildCheckBoxVisible(bool b) { m_shadowBuildEnabled->setVisible(b); - m_shadowBuildEnabled->setChecked(!m_hasInSourceBuild); } QList<BuildConfigurationInfo> Qt4DefaultTargetSetupWidget::buildConfigurationInfos() const diff --git a/src/plugins/qt4projectmanager/qt4target.h b/src/plugins/qt4projectmanager/qt4target.h index b8262f7b6a1288198833f0e393aa3cab187d6e89..8c01e617ea5831a89320525193dc3168df61a1cb 100644 --- a/src/plugins/qt4projectmanager/qt4target.h +++ b/src/plugins/qt4projectmanager/qt4target.h @@ -124,6 +124,7 @@ public: QList<BuildConfigurationInfo> buildConfigurationInfos() const; void setProFilePath(const QString &proFilePath); + void setShadowBuildSupported(bool b); void setShadowBuildCheckBoxVisible(bool b); public slots: