diff options
Diffstat (limited to 'src/plugins/qt4projectmanager/qt4buildconfiguration.cpp')
-rw-r--r-- | src/plugins/qt4projectmanager/qt4buildconfiguration.cpp | 104 |
1 files changed, 76 insertions, 28 deletions
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index 486c995d18e..c3cbc89f0b9 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -45,13 +45,13 @@ namespace { Qt4BuildConfiguration::Qt4BuildConfiguration(Qt4Project *pro) : BuildConfiguration(pro) { - + init(); } Qt4BuildConfiguration::Qt4BuildConfiguration(Qt4BuildConfiguration *source) : BuildConfiguration(source) { - + init(); } Qt4BuildConfiguration::~Qt4BuildConfiguration() @@ -59,6 +59,15 @@ Qt4BuildConfiguration::~Qt4BuildConfiguration() } +void Qt4BuildConfiguration::init() +{ + QtVersionManager *vm = QtVersionManager::instance(); + connect(vm, SIGNAL(defaultQtVersionChanged()), + this, SLOT(defaultQtVersionChanged())); + connect(vm, SIGNAL(qtVersionsChanged(QList<int>)), + this, SLOT(qtVersionsChanged(QList<int>))); +} + Qt4Project *Qt4BuildConfiguration::qt4Project() const { return static_cast<Qt4Project *>(project()); @@ -120,6 +129,14 @@ QString Qt4BuildConfiguration::buildDirectory() const return workingDirectory; } +void Qt4BuildConfiguration::setShadowBuildAndDirectory(bool shadowBuild, const QString &buildDirectory) +{ + setValue("useShadowBuild", shadowBuild); + setValue("buildDirectory", buildDirectory); + emit buildDirectoryChanged(); + emit targetInformationChanged(); +} + ProjectExplorer::ToolChain *Qt4BuildConfiguration::toolChain() const { ToolChain::ToolChainType tct = toolChainType(); @@ -199,15 +216,21 @@ int Qt4BuildConfiguration::qtVersionId() const void Qt4BuildConfiguration::setQtVersion(int id) { + if (qtVersionId() == id) + return; + setValue(KEY_QT_VERSION_ID, id); emit qtVersionChanged(); - qt4Project()->updateActiveRunConfiguration(); + emit targetInformationChanged(); } void Qt4BuildConfiguration::setToolChainType(ProjectExplorer::ToolChain::ToolChainType type) { + if (value("ToolChain").toInt() == type) + return; setValue("ToolChain", (int)type); - qt4Project()->updateActiveRunConfiguration(); + emit toolChainTypeChanged(); + emit targetInformationChanged(); } ProjectExplorer::ToolChain::ToolChainType Qt4BuildConfiguration::toolChainType() const @@ -224,6 +247,37 @@ ProjectExplorer::ToolChain::ToolChainType Qt4BuildConfiguration::toolChainType() return type; } +QtVersion::QmakeBuildConfigs Qt4BuildConfiguration::qmakeBuildConfiguration() const +{ + return QtVersion::QmakeBuildConfigs(value("buildConfiguration").toInt()); +} + +void Qt4BuildConfiguration::setQMakeBuildConfiguration(QtVersion::QmakeBuildConfigs config) +{ + if (value("buildConfiguration").toInt() == int(config)) + return; + setValue("buildConfiguration", int(config)); + emit qmakeBuildConfigurationChanged(); + emit targetInformationChanged(); +} + +void Qt4BuildConfiguration::getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const +{ + QtVersion::QmakeBuildConfigs defaultBuildConfiguration = qtVersion()->defaultBuildConfig(); + QtVersion::QmakeBuildConfigs userBuildConfiguration = qmakeBuildConfiguration(); + if (removedUserConfigs) { + if ((defaultBuildConfiguration & QtVersion::BuildAll) && !(userBuildConfiguration & QtVersion::BuildAll)) + (*removedUserConfigs) << "debug_and_release"; + } + if (addedUserConfigs) { + if (!(defaultBuildConfiguration & QtVersion::BuildAll) && (userBuildConfiguration & QtVersion::BuildAll)) + (*addedUserConfigs) << "debug_and_release"; + if ((defaultBuildConfiguration & QtVersion::DebugBuild) && !(userBuildConfiguration & QtVersion::DebugBuild)) + (*addedUserConfigs) << "release"; + if (!(defaultBuildConfiguration & QtVersion::DebugBuild) && (userBuildConfiguration & QtVersion::DebugBuild)) + (*addedUserConfigs) << "debug"; + } +} QMakeStep *Qt4BuildConfiguration::qmakeStep() const { @@ -243,6 +297,24 @@ MakeStep *Qt4BuildConfiguration::makeStep() const return 0; } +void Qt4BuildConfiguration::defaultQtVersionChanged() +{ + if (qtVersionId() == 0) { + emit qtVersionChanged(); + emit targetInformationChanged(); + } +} + +void Qt4BuildConfiguration::qtVersionsChanged(const QList<int> &changedVersions) +{ + if (changedVersions.contains(qtVersionId())) { + if (!qtVersion()->isValid()) + setQtVersion(0); + emit qtVersionChanged(); + emit targetInformationChanged(); + } +} + // returns true if both are equal bool Qt4BuildConfiguration::compareToImportFrom(const QString &workingDirectory) { @@ -375,28 +447,4 @@ QString Qt4BuildConfiguration::extractSpecFromArgumentList(const QStringList &li parsedSpec = parsedSpec.toLower(); #endif return parsedSpec; - -} - -QtVersion::QmakeBuildConfigs Qt4BuildConfiguration::qmakeBuildConfiguration() const -{ - return QtVersion::QmakeBuildConfigs(value("buildConfiguration").toInt()); -} - -void Qt4BuildConfiguration::getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const -{ - QtVersion::QmakeBuildConfigs defaultBuildConfiguration = qtVersion()->defaultBuildConfig(); - QtVersion::QmakeBuildConfigs userBuildConfiguration = qmakeBuildConfiguration(); - if (removedUserConfigs) { - if ((defaultBuildConfiguration & QtVersion::BuildAll) && !(userBuildConfiguration & QtVersion::BuildAll)) - (*removedUserConfigs) << "debug_and_release"; - } - if (addedUserConfigs) { - if (!(defaultBuildConfiguration & QtVersion::BuildAll) && (userBuildConfiguration & QtVersion::BuildAll)) - (*addedUserConfigs) << "debug_and_release"; - if ((defaultBuildConfiguration & QtVersion::DebugBuild) && !(userBuildConfiguration & QtVersion::DebugBuild)) - (*addedUserConfigs) << "release"; - if (!(defaultBuildConfiguration & QtVersion::DebugBuild) && (userBuildConfiguration & QtVersion::DebugBuild)) - (*addedUserConfigs) << "debug"; - } } |