diff options
author | Radovan Zivkovic <pivonroll@gmail.com> | 2014-03-30 20:36:57 +0200 |
---|---|---|
committer | Radovan Zivkovic <pivonroll@gmail.com> | 2014-07-21 18:21:27 +0200 |
commit | c3827299ac7892cdbfb718475ec252b4d61a05ae (patch) | |
tree | 418f6fc023af350376557b6595a432e339f57823 | |
parent | 7f034a768d52e714fcd615f60fb0aa316cd51283 (diff) |
Display error message when adding an existing configuration.
Change-Id: I44ce937ab9bab65c3680c11304e1ba5a6c366e1e
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
-rw-r--r-- | src/plugins/vcprojectmanager/widgets/configurationseditwidget.cpp | 55 | ||||
-rw-r--r-- | src/plugins/vcprojectmanager/widgets/fileconfigurationseditwidget.cpp | 34 |
2 files changed, 71 insertions, 18 deletions
diff --git a/src/plugins/vcprojectmanager/widgets/configurationseditwidget.cpp b/src/plugins/vcprojectmanager/widgets/configurationseditwidget.cpp index 938dac4476..90b5c5b326 100644 --- a/src/plugins/vcprojectmanager/widgets/configurationseditwidget.cpp +++ b/src/plugins/vcprojectmanager/widgets/configurationseditwidget.cpp @@ -28,6 +28,7 @@ ** ****************************************************************************/ #include "configurationseditwidget.h" + #include "configurationswidget.h" #include "../interfaces/iattributecontainer.h" #include "../interfaces/iconfiguration.h" @@ -48,6 +49,7 @@ #include <utils/qtcassert.h> +#include <QMessageBox> #include <QVBoxLayout> namespace VcProjectManager { @@ -115,6 +117,8 @@ void ConfigurationsEditWidget::onAddNewConfig(QString newConfigName, QString cop IPlatforms *platforms = m_vsProject->platforms(); QString copyFromConfigName = copyFrom.split(QLatin1Char('|')).at(0); + QStringList errorMessages; + for (int i = 0; i < platforms->platformCount(); ++i) { IPlatform *platform = platforms->platform(i); @@ -122,13 +126,35 @@ void ConfigurationsEditWidget::onAddNewConfig(QString newConfigName, QString cop QString newFullConfigName = newConfigName + QLatin1Char('|') + platform->displayName(); QString copyFromFullConfigName; - if (!copyFromConfigName.isEmpty()) - copyFromFullConfigName = copyFromConfigName + QLatin1Char('|') + platform->displayName(); - - addConfigToProjectBuild(newFullConfigName, copyFromFullConfigName); - addConfigToFiles(newFullConfigName, copyFromFullConfigName); + // if configuration with the same name already exists show error message + if (m_vsProject->configurations()->configurationContainer()->configuration(newFullConfigName)) { + QString message = tr("Configuration %1 already exists."); + message = message.arg(newFullConfigName); + errorMessages.append(message); + } else { + if (!copyFromConfigName.isEmpty()) + copyFromFullConfigName = copyFromConfigName + QLatin1Char('|') + platform->displayName(); + + addConfigToProjectBuild(newFullConfigName, copyFromFullConfigName); + addConfigToFiles(newFullConfigName, copyFromFullConfigName); + } } } + + if (errorMessages.size()) { + QString message = errorMessages.join(QLatin1Char('\n')); + QMessageBox msg(this); + msg.setStandardButtons(QMessageBox::Ok); + msg.setDefaultButton(QMessageBox::Ok); + + if (errorMessages.size() == 1) + msg.setWindowTitle(tr("An Error Occurred While Adding a Configuration")); + else + msg.setWindowTitle(tr("Cannot Add Configurations")); + msg.setText(message); + + msg.exec(); + } } void ConfigurationsEditWidget::onNewConfigAdded(IConfiguration *config) @@ -264,16 +290,17 @@ void ConfigurationsEditWidget::addConfigToFiles(const QString &newConfigName, co it.next(); ConfigurationContainer *container = it.value(); - if (container) { - IConfiguration *config = container->configuration(copyFrom); + if (!container) + continue; + IConfiguration *config = container->configuration(copyFrom); - if (config) { - IConfiguration *newConfig = config->clone(); - if (newConfig) { - newConfig->setFullName(newConfigName); - container->addConfiguration(newConfig); - } - } + if (!config) + continue; + + IConfiguration *newConfig = config->clone(); + if (newConfig) { + newConfig->setFullName(newConfigName); + container->addConfiguration(newConfig); } } } diff --git a/src/plugins/vcprojectmanager/widgets/fileconfigurationseditwidget.cpp b/src/plugins/vcprojectmanager/widgets/fileconfigurationseditwidget.cpp index 65bd96b018..cac7aa22fb 100644 --- a/src/plugins/vcprojectmanager/widgets/fileconfigurationseditwidget.cpp +++ b/src/plugins/vcprojectmanager/widgets/fileconfigurationseditwidget.cpp @@ -30,6 +30,7 @@ #include "configurationbasewidget.h" #include "configurationswidget.h" #include "fileconfigurationseditwidget.h" + #include "../interfaces/iattributecontainer.h" #include "../interfaces/iattributedescriptiondataitem.h" #include "../interfaces/iconfiguration.h" @@ -54,6 +55,7 @@ #include <utils/qtcassert.h> +#include <QMessageBox> #include <QVBoxLayout> namespace VcProjectManager { @@ -124,6 +126,8 @@ void FileConfigurationsEditWidget::onAddNewConfig(QString newConfigName, QString IPlatforms *platforms = m_vsProject->platforms(); QString copyFromConfigName = copyFrom.split(QLatin1Char('|')).at(0); + QStringList errorMessages; + for (int i = 0; i < platforms->platformCount(); ++i) { IPlatform *platform = platforms->platform(i); @@ -131,13 +135,35 @@ void FileConfigurationsEditWidget::onAddNewConfig(QString newConfigName, QString QString newFullConfigName = newConfigName + QLatin1Char('|') + platform->displayName(); QString copyFromFullConfigName; - if (!copyFromConfigName.isEmpty()) - copyFromFullConfigName = copyFromConfigName + QLatin1Char('|') + platform->displayName(); + if (m_vsProject->configurations()->configurationContainer()->configuration(newFullConfigName)) { + QString message = tr("Configuration %1 already exists."); + message = message.arg(newFullConfigName); + errorMessages.append(message); + } + else { + if (!copyFromConfigName.isEmpty()) + copyFromFullConfigName = copyFromConfigName + QLatin1Char('|') + platform->displayName(); - addConfigToProjectBuild(newFullConfigName, copyFromFullConfigName); - addConfigToFiles(newFullConfigName, copyFromFullConfigName); + addConfigToProjectBuild(newFullConfigName, copyFromFullConfigName); + addConfigToFiles(newFullConfigName, copyFromFullConfigName); + } } } + + if (errorMessages.size()) { + QString message = errorMessages.join(QLatin1Char('\n')); + QMessageBox msg(this); + msg.setStandardButtons(QMessageBox::Ok); + msg.setDefaultButton(QMessageBox::Ok); + + if (errorMessages.size() == 1) + msg.setWindowTitle(tr("Cannot Add Configuration")); + else + msg.setWindowTitle(tr("Cannot Add Configurations")); + msg.setText(message); + + msg.exec(); + } } void FileConfigurationsEditWidget::onNewConfigAdded(IConfiguration *config) |