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