From 44f14351b4e56f51a34d597affe045d211636cba Mon Sep 17 00:00:00 2001
From: Petar Perisin <petar.perisin@gmail.com>
Date: Fri, 19 Apr 2013 07:58:45 +0200
Subject: [PATCH] Git - command in progress in Topic

Change-Id: I83a00e9677924efc244a91d20cdded77ee9cdff0
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
---
 src/plugins/git/gitclient.cpp | 23 ++++++++++++++++++++---
 src/plugins/git/gitclient.h   |  2 ++
 2 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 3a1de0ebcdf..8e47c99f8f0 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -1264,6 +1264,20 @@ QString GitClient::synchronousTopic(const QString &workingDirectory)
     if (!branch.isEmpty())
         return data.topic = branch;
 
+    switch (checkCommandInProgressInGitDir(gitDir)) {
+    case Rebase:
+    case RebaseMerge:
+        return data.topic = tr("Rebasing");
+    case Revert:
+        return data.topic = tr("Reverting");
+    case CherryPick:
+        return data.topic = tr("Cherry Picking");
+    case Merge:
+        return data.topic = tr("Merging");
+    default:
+        break;
+    }
+
     // Detached HEAD, try a tag or remote branch
     QStringList references;
     if (!synchronousHeadRefs(workingDirectory, &references))
@@ -1892,10 +1906,8 @@ GitClient::StatusResult GitClient::gitStatus(const QString &workingDirectory, St
     return StatusUnchanged;
 }
 
-GitClient::CommandInProgress GitClient::checkCommandInProgress(const QString &workingDirectory)
+GitClient::CommandInProgress GitClient::checkCommandInProgressInGitDir(const QString &gitDir)
 {
-    QString gitDir = findGitDirForRepository(workingDirectory);
-
     if (QFile::exists(gitDir + QLatin1String("/MERGE_HEAD")))
         return Merge;
     else if (QFile::exists(gitDir + QLatin1String("/rebase-apply/rebasing")))
@@ -1910,6 +1922,11 @@ GitClient::CommandInProgress GitClient::checkCommandInProgress(const QString &wo
         return NoCommand;
 }
 
+GitClient::CommandInProgress GitClient::checkCommandInProgress(const QString &workingDirectory)
+{
+    return checkCommandInProgressInGitDir(findGitDirForRepository(workingDirectory));
+}
+
 void GitClient::continueCommandIfNeeded(const QString &workingDirectory)
 {
     switch (checkCommandInProgress(workingDirectory)) {
diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h
index 32ef837d176..549869b39f0 100644
--- a/src/plugins/git/gitclient.h
+++ b/src/plugins/git/gitclient.h
@@ -281,6 +281,8 @@ public:
                            QString *errorMessage = 0);
 
     CommandInProgress checkCommandInProgress(const QString &workingDirectory);
+    CommandInProgress checkCommandInProgressInGitDir(const QString &gitDir);
+
     void continueCommandIfNeeded(const QString &workingDirectory);
     void continuePreviousGitCommand(const QString &workingDirectory, const QString &msgBoxTitle, QString msgBoxText,
                                     const QString &buttonName, const QString &gitCommand, bool requireChanges = true);
-- 
GitLab