diff --git a/src/plugins/coreplugin/basefilewizard.cpp b/src/plugins/coreplugin/basefilewizard.cpp index 737429ca9a8..cd6bbc1441a 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 1f69d524760..f95da9ebb41 100644 --- a/src/plugins/projectexplorer/projectfilewizardextension.cpp +++ b/src/plugins/projectexplorer/projectfilewizardextension.cpp @@ -58,6 +58,7 @@ #include #include #include +#include /*! \class ProjectExplorer::Internal::ProjectFileWizardExtension @@ -444,8 +445,21 @@ bool ProjectFileWizardExtension::processFiles( const QList &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