From b0226e6e968ff73b411b083cb562724ee7ab690e Mon Sep 17 00:00:00 2001
From: Petar Perisin <petar.perisin@gmail.com>
Date: Sun, 17 Mar 2013 16:09:01 +0100
Subject: [PATCH] Open project if it was not added to VC system.

Currently project will be created, but if it fails to add it to VC
system, it asks user to open project anyway.

Task-number: QTCREATORBUG-8892
Change-Id: I8d6cfad4a5d6b4810491d355f916dfe031e82a52
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
---
 src/plugins/coreplugin/basefilewizard.cpp      |  3 ++-
 .../projectfilewizardextension.cpp             | 18 ++++++++++++++++--
 2 files changed, 18 insertions(+), 3 deletions(-)

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 <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
-- 
GitLab