From 097ff14be39a58d103628018d00583d02b714267 Mon Sep 17 00:00:00 2001
From: Tobias Hunger <tobias.hunger@theqtcompany.com>
Date: Mon, 18 May 2015 12:26:18 +0200
Subject: [PATCH] VcsCommandPage: Disable back button when command is run

QWizard used to enable the back-button again after we were done
disabling it.

Change-Id: I14d756536de7d23cc4e6bac3a4e5a1d18b91f46d
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
---
 src/plugins/vcsbase/wizard/vcscommandpage.cpp | 8 ++++++++
 src/plugins/vcsbase/wizard/vcscommandpage.h   | 3 +++
 2 files changed, 11 insertions(+)

diff --git a/src/plugins/vcsbase/wizard/vcscommandpage.cpp b/src/plugins/vcsbase/wizard/vcscommandpage.cpp
index 0ab6fa3e1a4..d8d488eda2b 100644
--- a/src/plugins/vcsbase/wizard/vcscommandpage.cpp
+++ b/src/plugins/vcsbase/wizard/vcscommandpage.cpp
@@ -41,6 +41,7 @@
 
 #include <QDir>
 #include <QDebug>
+#include <QTimer>
 
 using namespace Core;
 using namespace ProjectExplorer;
@@ -160,6 +161,13 @@ VcsCommandPage::VcsCommandPage()
 }
 
 void VcsCommandPage::initializePage()
+{
+    // Delay real initialization till after QWizard is done with its setup.
+    // Otherwise QWizard will reset our disabled back button again.
+    QTimer::singleShot(0, this, &VcsCommandPage::delayedInitialize);
+}
+
+void VcsCommandPage::delayedInitialize()
 {
     auto wiz = qobject_cast<JsonWizard *>(wizard());
     QTC_ASSERT(wiz, return);
diff --git a/src/plugins/vcsbase/wizard/vcscommandpage.h b/src/plugins/vcsbase/wizard/vcscommandpage.h
index da8351e2006..860f9f265b8 100644
--- a/src/plugins/vcsbase/wizard/vcscommandpage.h
+++ b/src/plugins/vcsbase/wizard/vcscommandpage.h
@@ -69,6 +69,9 @@ public:
     void setVersionControlId(const QString &id);
     void setRunMessage(const QString &msg);
 
+private slots:
+    void delayedInitialize();
+
 private:
     QString m_vcsId;
     QString m_repository;
-- 
GitLab