aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRadovan Zivkovic <pivonroll@gmail.com>2014-03-30 20:36:57 +0200
committerRadovan Zivkovic <pivonroll@gmail.com>2014-07-21 18:21:27 +0200
commitc3827299ac7892cdbfb718475ec252b4d61a05ae (patch)
tree418f6fc023af350376557b6595a432e339f57823
parent7f034a768d52e714fcd615f60fb0aa316cd51283 (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.cpp55
-rw-r--r--src/plugins/vcprojectmanager/widgets/fileconfigurationseditwidget.cpp34
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)