diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2013-08-27 22:21:15 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2013-08-28 10:12:01 +0200 |
commit | 9f2110f8a187a69e8aacc274e9372ce9b1cd7ce6 (patch) | |
tree | b06ac8b574d81e9470421d86e98abc620140ab22 /src/plugins/git/gitclient.cpp | |
parent | 0865e9eb277c3cb743bc944f62f0ea188103ae52 (diff) | |
download | qt-creator-9f2110f8a187a69e8aacc274e9372ce9b1cd7ce6.tar.gz |
Git: Extend show output on diff editor
Change-Id: I51d3d0af96b28ec56bedaac163f9ce72158d8dc2
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins/git/gitclient.cpp')
-rw-r--r-- | src/plugins/git/gitclient.cpp | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index dcd85653d8..ba38cc6e61 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -273,8 +273,10 @@ void GitDiffHandler::slotShowDescriptionReceived(const QString &description) if (m_editor.isNull()) return; DiffEditor::DiffShowEditor *editor = qobject_cast<DiffEditor::DiffShowEditor *>(m_editor); - if (editor) - editor->setDescription(description); + if (editor) { + editor->setDescription(GitPlugin::instance()->gitClient()-> + extendedShowDescription(m_workingDirectory, description)); + } collectFilesList(QStringList() << m_requestedRevisionRange.begin.id @@ -2554,6 +2556,34 @@ void GitClient::continuePreviousGitCommand(const QString &workingDirectory, } } +QString GitClient::extendedShowDescription(const QString &workingDirectory, const QString &text) +{ + if (!text.startsWith(QLatin1String("commit "))) + return text; + QString modText = text; + QString precedes, follows; + int lastHeaderLine = modText.indexOf(QLatin1String("\n\n")) + 1; + const QString commit = modText.mid(7, 8); + synchronousTagsForCommit(workingDirectory, commit, precedes, follows); + if (!precedes.isEmpty()) + modText.insert(lastHeaderLine, QLatin1String("Precedes: ") + precedes + QLatin1Char('\n')); + if (!follows.isEmpty()) + modText.insert(lastHeaderLine, QLatin1String("Follows: ") + follows + QLatin1Char('\n')); + QString moreBranches; + QStringList branches = synchronousBranchesForCommit(workingDirectory, commit); + const int branchCount = branches.count(); + // If there are more than 20 branches, list first 10 followed by a hint + if (branchCount > 20) { + const int leave = 10; + moreBranches = tr(" and %1 more").arg(branchCount - leave); + branches.erase(branches.begin() + leave, branches.end()); + } + modText.insert(lastHeaderLine, QLatin1String("Branches: ") + + branches.join(QLatin1String(", ")) + moreBranches + + QLatin1Char('\n')); + return modText; +} + // Quietly retrieve branch list of remote repository URL // // The branch HEAD is pointing to is always returned first. |