diff --git a/src/plugins/coreplugin/basefilewizard.cpp b/src/plugins/coreplugin/basefilewizard.cpp index 737429ca9a8d5c2282a2f466dc27663ff5efff53..cd6bbc1441af40ead4a40a3599b43ac82ca88caa 100644 --- a/src/plugins/coreplugin/basefilewizard.cpp +++ b/src/plugins/coreplugin/basefilewizard.cpp @@ -526,7 +526,8 @@ void BaseFileWizard::runWizard(const QString &path, QWidget *parent, const QStri foreach (IFileWizardExtension *ex, extensions) { bool remove; if (!ex->processFiles(files, &remove, &errorMessage)) { - QMessageBox::critical(parent, tr("File Generation Failure"), errorMessage); + if (!errorMessage.isEmpty()) + QMessageBox::critical(parent, tr("File Generation Failure"), errorMessage); return; } removeOpenProjectAttribute |= remove; diff --git a/src/plugins/projectexplorer/projectfilewizardextension.cpp b/src/plugins/projectexplorer/projectfilewizardextension.cpp index 1f69d5247602fa164f5378d0f7d59f6b1d2b5a13..f95da9ebb4163f26dd6c09d8a5471a3d70d2a37e 100644 --- a/src/plugins/projectexplorer/projectfilewizardextension.cpp +++ b/src/plugins/projectexplorer/projectfilewizardextension.cpp @@ -58,6 +58,7 @@ #include <QDir> #include <QTextDocument> #include <QTextCursor> +#include <QMessageBox> /*! \class ProjectExplorer::Internal::ProjectFileWizardExtension @@ -444,8 +445,21 @@ bool ProjectFileWizardExtension::processFiles( const QList<Core::GeneratedFile> &files, bool *removeOpenProjectAttribute, QString *errorMessage) { - return processProject(files, removeOpenProjectAttribute, errorMessage) && - processVersionControl(files, errorMessage); + if (!processProject(files, removeOpenProjectAttribute, errorMessage)) + return false; + if (!processVersionControl(files, errorMessage)) { + QString message; + if (errorMessage) { + message = *errorMessage; + message.append(QLatin1String("\n\n")); + errorMessage->clear(); + } + message.append(tr("Open project anyway?")); + if (QMessageBox::question(Core::ICore::mainWindow(), tr("Version Control Failure"), message, + QMessageBox::Yes, QMessageBox::No) == QMessageBox::No) + return false; + } + return true; } // Add files to project && version control