diff options
author | Tobias Hunger <tobias.hunger@nokia.com> | 2010-10-04 17:50:55 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@nokia.com> | 2010-10-05 11:41:41 +0200 |
commit | 0a2a28ec47240c1dbf1067b55238f567829495e6 (patch) | |
tree | ce67680270eb3b1a5918430f11921ffaa4668d20 | |
parent | 1261e9e17488b0a7cbf35bf6417b8dcde1c7ef01 (diff) | |
download | qt-creator-0a2a28ec47240c1dbf1067b55238f567829495e6.tar.gz |
Do not allow all WS names in Run-/Deploy-/BuildCOnfigs
Task-number: QTCREATORBUG-2584
5 files changed, 64 insertions, 30 deletions
diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp index 8b589fc059..3bcf9fcc93 100644 --- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp @@ -328,6 +328,21 @@ void BuildSettingsWidget::deleteConfiguration() deleteConfiguration(m_buildConfiguration); } +QString BuildSettingsWidget::uniqueName(const QString & name) +{ + QString result = name.trimmed(); + if (!result.isEmpty()) { + QStringList bcNames; + foreach (BuildConfiguration *bc, m_target->buildConfigurations()) { + if (bc == m_buildConfiguration) + continue; + bcNames.append(bc->displayName()); + } + result = Project::makeUnique(result, bcNames); + } + return result; +} + void BuildSettingsWidget::renameConfiguration() { bool ok; @@ -339,15 +354,10 @@ void BuildSettingsWidget::renameConfiguration() if (!ok || !this) return; - if (!name.isEmpty()) { - QStringList bcNames; - foreach (BuildConfiguration *bc, m_target->buildConfigurations()) { - if (bc == m_buildConfiguration) - continue; - bcNames.append(bc->displayName()); - } - name = Project::makeUnique(name, bcNames); - } + name = uniqueName(name); + if (name.isEmpty()) + return; + m_buildConfiguration->setDisplayName(name); } @@ -359,15 +369,15 @@ void BuildSettingsWidget::cloneConfiguration(BuildConfiguration *sourceConfigura return; //: Title of a the cloned BuildConfiguration window, text of the window - QString newDisplayName(QInputDialog::getText(this, tr("Clone Configuration"), tr("New configuration name:"))); - if (newDisplayName.isEmpty()) + QString name = uniqueName(QInputDialog::getText(this, tr("Clone Configuration"), tr("New configuration name:"))); + if (name.isEmpty()) return; BuildConfiguration * bc(m_target->buildConfigurationFactory()->clone(m_target, sourceConfiguration)); if (!bc) return; - bc->setDisplayName(newDisplayName); + bc->setDisplayName(name); m_target->addBuildConfiguration(bc); updateBuildSettings(); diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.h b/src/plugins/projectexplorer/buildsettingspropertiespage.h index 16af2ba606..9b560bb1c3 100644 --- a/src/plugins/projectexplorer/buildsettingspropertiespage.h +++ b/src/plugins/projectexplorer/buildsettingspropertiespage.h @@ -107,6 +107,7 @@ private slots: private: void cloneConfiguration(BuildConfiguration *toClone); void deleteConfiguration(BuildConfiguration *toDelete); + QString uniqueName(const QString & name); Target *m_target; BuildConfiguration *m_buildConfiguration; diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp index b0d15b9c64..c2bcd078f5 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -293,15 +293,10 @@ void RunSettingsWidget::renameRunConfiguration() if (!ok || !this) return; - if (!name.isEmpty()) { - QStringList rcNames; - foreach (RunConfiguration *rc, m_target->runConfigurations()) { - if (rc == m_target->activeRunConfiguration()) - continue; - rcNames.append(rc->displayName()); - } - name = Project::makeUnique(name, rcNames); - } + name = uniqueRCName(name); + if (name.isEmpty()) + return; + m_target->activeRunConfiguration()->setDisplayName(name); } @@ -393,15 +388,9 @@ void RunSettingsWidget::renameDeployConfiguration() if (!ok || !this) return; - if (!name.isEmpty()) { - QStringList dcNames; - foreach (DeployConfiguration *dc, m_target->deployConfigurations()) { - if (dc == m_target->activeDeployConfiguration()) - continue; - dcNames.append(dc->displayName()); - } - name = Project::makeUnique(name, dcNames); - } + name = uniqueDCName(name); + if (name.isEmpty()) + return; m_target->activeDeployConfiguration()->setDisplayName(name); } @@ -430,3 +419,33 @@ void RunSettingsWidget::updateDeployConfiguration(DeployConfiguration *dc) m_deploySteps->init(dc->stepList()); m_deployLayout->addWidget(m_deploySteps); } + +QString RunSettingsWidget::uniqueDCName(const QString &name) +{ + QString result = name.trimmed(); + if (!result.isEmpty()) { + QStringList dcNames; + foreach (DeployConfiguration *dc, m_target->deployConfigurations()) { + if (dc == m_target->activeDeployConfiguration()) + continue; + dcNames.append(dc->displayName()); + } + result = Project::makeUnique(result, dcNames); + } + return result; +} + +QString RunSettingsWidget::uniqueRCName(const QString &name) +{ + QString result = name.trimmed(); + if (!result.isEmpty()) { + QStringList rcNames; + foreach (RunConfiguration *rc, m_target->runConfigurations()) { + if (rc == m_target->activeRunConfiguration()) + continue; + rcNames.append(rc->displayName()); + } + result = Project::makeUnique(result, rcNames); + } + return result; +} diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.h b/src/plugins/projectexplorer/runsettingspropertiespage.h index f90548c1ea..0117104f70 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.h +++ b/src/plugins/projectexplorer/runsettingspropertiespage.h @@ -104,7 +104,10 @@ private slots: void renameDeployConfiguration(); private: + QString uniqueDCName(const QString &name); + QString uniqueRCName(const QString &name); void updateDeployConfiguration(DeployConfiguration *); + Target *m_target; RunConfigurationModel *m_runConfigurationsModel; DeployConfigurationModel *m_deployConfigurationModel; diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index 1b783a7233..c47c6f2d06 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -710,6 +710,7 @@ BuildConfiguration *Qt4BuildConfigurationFactory::create(ProjectExplorer::Target QLineEdit::Normal, version->displayName(), &ok); + buildConfigurationName = buildConfigurationName.trimmed(); if (!ok || buildConfigurationName.isEmpty()) return 0; |