forked from qt-creator/qt-creator
Display error message when adding an existing configuration.
Change-Id: I44ce937ab9bab65c3680c11304e1ba5a6c366e1e Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
This commit is contained in:
@@ -28,6 +28,7 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "configurationseditwidget.h"
|
#include "configurationseditwidget.h"
|
||||||
|
|
||||||
#include "configurationswidget.h"
|
#include "configurationswidget.h"
|
||||||
#include "../interfaces/iattributecontainer.h"
|
#include "../interfaces/iattributecontainer.h"
|
||||||
#include "../interfaces/iconfiguration.h"
|
#include "../interfaces/iconfiguration.h"
|
||||||
@@ -48,6 +49,7 @@
|
|||||||
|
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
|
||||||
|
#include <QMessageBox>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
namespace VcProjectManager {
|
namespace VcProjectManager {
|
||||||
@@ -115,6 +117,8 @@ void ConfigurationsEditWidget::onAddNewConfig(QString newConfigName, QString cop
|
|||||||
IPlatforms *platforms = m_vsProject->platforms();
|
IPlatforms *platforms = m_vsProject->platforms();
|
||||||
QString copyFromConfigName = copyFrom.split(QLatin1Char('|')).at(0);
|
QString copyFromConfigName = copyFrom.split(QLatin1Char('|')).at(0);
|
||||||
|
|
||||||
|
QStringList errorMessages;
|
||||||
|
|
||||||
for (int i = 0; i < platforms->platformCount(); ++i) {
|
for (int i = 0; i < platforms->platformCount(); ++i) {
|
||||||
IPlatform *platform = platforms->platform(i);
|
IPlatform *platform = platforms->platform(i);
|
||||||
|
|
||||||
@@ -122,13 +126,35 @@ void ConfigurationsEditWidget::onAddNewConfig(QString newConfigName, QString cop
|
|||||||
QString newFullConfigName = newConfigName + QLatin1Char('|') + platform->displayName();
|
QString newFullConfigName = newConfigName + QLatin1Char('|') + platform->displayName();
|
||||||
QString copyFromFullConfigName;
|
QString copyFromFullConfigName;
|
||||||
|
|
||||||
if (!copyFromConfigName.isEmpty())
|
// if configuration with the same name already exists show error message
|
||||||
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);
|
addConfigToProjectBuild(newFullConfigName, copyFromFullConfigName);
|
||||||
addConfigToFiles(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)
|
void ConfigurationsEditWidget::onNewConfigAdded(IConfiguration *config)
|
||||||
@@ -264,16 +290,17 @@ void ConfigurationsEditWidget::addConfigToFiles(const QString &newConfigName, co
|
|||||||
it.next();
|
it.next();
|
||||||
ConfigurationContainer *container = it.value();
|
ConfigurationContainer *container = it.value();
|
||||||
|
|
||||||
if (container) {
|
if (!container)
|
||||||
IConfiguration *config = container->configuration(copyFrom);
|
continue;
|
||||||
|
IConfiguration *config = container->configuration(copyFrom);
|
||||||
|
|
||||||
if (config) {
|
if (!config)
|
||||||
IConfiguration *newConfig = config->clone();
|
continue;
|
||||||
if (newConfig) {
|
|
||||||
newConfig->setFullName(newConfigName);
|
IConfiguration *newConfig = config->clone();
|
||||||
container->addConfiguration(newConfig);
|
if (newConfig) {
|
||||||
}
|
newConfig->setFullName(newConfigName);
|
||||||
}
|
container->addConfiguration(newConfig);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -30,6 +30,7 @@
|
|||||||
#include "configurationbasewidget.h"
|
#include "configurationbasewidget.h"
|
||||||
#include "configurationswidget.h"
|
#include "configurationswidget.h"
|
||||||
#include "fileconfigurationseditwidget.h"
|
#include "fileconfigurationseditwidget.h"
|
||||||
|
|
||||||
#include "../interfaces/iattributecontainer.h"
|
#include "../interfaces/iattributecontainer.h"
|
||||||
#include "../interfaces/iattributedescriptiondataitem.h"
|
#include "../interfaces/iattributedescriptiondataitem.h"
|
||||||
#include "../interfaces/iconfiguration.h"
|
#include "../interfaces/iconfiguration.h"
|
||||||
@@ -54,6 +55,7 @@
|
|||||||
|
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
|
||||||
|
#include <QMessageBox>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
namespace VcProjectManager {
|
namespace VcProjectManager {
|
||||||
@@ -124,6 +126,8 @@ void FileConfigurationsEditWidget::onAddNewConfig(QString newConfigName, QString
|
|||||||
IPlatforms *platforms = m_vsProject->platforms();
|
IPlatforms *platforms = m_vsProject->platforms();
|
||||||
QString copyFromConfigName = copyFrom.split(QLatin1Char('|')).at(0);
|
QString copyFromConfigName = copyFrom.split(QLatin1Char('|')).at(0);
|
||||||
|
|
||||||
|
QStringList errorMessages;
|
||||||
|
|
||||||
for (int i = 0; i < platforms->platformCount(); ++i) {
|
for (int i = 0; i < platforms->platformCount(); ++i) {
|
||||||
IPlatform *platform = platforms->platform(i);
|
IPlatform *platform = platforms->platform(i);
|
||||||
|
|
||||||
@@ -131,13 +135,35 @@ void FileConfigurationsEditWidget::onAddNewConfig(QString newConfigName, QString
|
|||||||
QString newFullConfigName = newConfigName + QLatin1Char('|') + platform->displayName();
|
QString newFullConfigName = newConfigName + QLatin1Char('|') + platform->displayName();
|
||||||
QString copyFromFullConfigName;
|
QString copyFromFullConfigName;
|
||||||
|
|
||||||
if (!copyFromConfigName.isEmpty())
|
if (m_vsProject->configurations()->configurationContainer()->configuration(newFullConfigName)) {
|
||||||
copyFromFullConfigName = copyFromConfigName + QLatin1Char('|') + platform->displayName();
|
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);
|
addConfigToProjectBuild(newFullConfigName, copyFromFullConfigName);
|
||||||
addConfigToFiles(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)
|
void FileConfigurationsEditWidget::onNewConfigAdded(IConfiguration *config)
|
||||||
|
Reference in New Issue
Block a user