diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 3a1de0ebcdf76a1adeb96c4ab94c4fc4f5487dc2..8e47c99f8f02d355360ec8a9b9694fa027a97395 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 32ef837d1767775136a883420557ff58277c6271..549869b39f0e5170e8383a9b1e2a7057ffab0e50 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);