From 87058627868f3400490d5b89e5f4de504bf9ef14 Mon Sep 17 00:00:00 2001
From: Orgad Shaneh <orgad.shaneh@audiocodes.com>
Date: Wed, 6 Mar 2013 23:21:37 +0200
Subject: [PATCH] Git: Use Qt Creator as an editor for Git

Qt Creator runs Git in a "dumb" terminal which does not
allow opening an editor. Use Qt Creator itself as an editor
when needed.

Change-Id: Ide073299964803d02479dade24ddee0283ebd83b
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
---
 src/plugins/git/gitclient.cpp | 11 ++++++++---
 src/plugins/git/gitclient.h   |  1 +
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 90bd390e27f..67b456755bb 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -63,12 +63,13 @@
 #include <vcsbase/vcsbaseoutputwindow.h>
 #include <vcsbase/vcsbaseplugin.h>
 
-#include <QRegExp>
-#include <QTime>
-#include <QFileInfo>
+#include <QCoreApplication>
 #include <QDir>
+#include <QFileInfo>
 #include <QHash>
+#include <QRegExp>
 #include <QSignalMapper>
+#include <QTime>
 
 #include <QComboBox>
 #include <QMessageBox>
@@ -401,6 +402,9 @@ GitClient::GitClient(GitSettings *settings) :
 {
     QTC_CHECK(settings);
     connect(Core::ICore::instance(), SIGNAL(saveSettingsRequested()), this, SLOT(saveSettings()));
+    m_gitQtcEditor = QString::fromLatin1("\"%1\" -client -block -pid %2")
+            .arg(QCoreApplication::applicationFilePath())
+            .arg(QCoreApplication::applicationPid());
 }
 
 GitClient::~GitClient()
@@ -1538,6 +1542,7 @@ QProcessEnvironment GitClient::processEnvironment() const
             && settings()->boolValue(GitSettings::winSetHomeEnvironmentKey)) {
         environment.insert(QLatin1String("HOME"), QDir::toNativeSeparators(QDir::homePath()));
     }
+    environment.insert(QLatin1String("GIT_EDITOR"), m_gitQtcEditor);
     // Set up SSH and C locale (required by git using perl).
     VcsBase::VcsBasePlugin::setProcessEnvironment(&environment, false);
     return environment;
diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h
index 59dd9bb3af5..63344a8562a 100644
--- a/src/plugins/git/gitclient.h
+++ b/src/plugins/git/gitclient.h
@@ -341,6 +341,7 @@ private:
     const QString m_msgWait;
     QSignalMapper *m_repositoryChangedSignalMapper;
     GitSettings *m_settings;
+    QString m_gitQtcEditor;
 };
 
 } // namespace Internal
-- 
GitLab