From a76e23434b6512de694e8d2600e30eacf5167711 Mon Sep 17 00:00:00 2001 From: Andre Hartmann Date: Sun, 4 Aug 2024 17:23:39 +0200 Subject: [PATCH] Git: InstantBlame: Add commit subject to annotation Change-Id: I6bcb8d74ae5d380506f0a98d845b002c76bb9ecb Reviewed-by: Orgad Shaneh --- src/plugins/git/gitsettings.cpp | 12 +++++++++++- src/plugins/git/gitsettings.h | 1 + src/plugins/git/instantblame.cpp | 8 +++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/plugins/git/gitsettings.cpp b/src/plugins/git/gitsettings.cpp index f8056d9a00a..daabb4dac1f 100644 --- a/src/plugins/git/gitsettings.cpp +++ b/src/plugins/git/gitsettings.cpp @@ -102,6 +102,11 @@ GitSettings::GitSettings() instantBlameIgnoreLineMoves.setLabelText(trIgnoreLineMoves()); instantBlameIgnoreLineMoves.setToolTip( Tr::tr("Finds the commit that introduced the line before it was moved.")); + instantBlameShowSubject.setSettingsKey("GitInstantShowSubject"); + instantBlameShowSubject.setDefaultValue(false); + instantBlameShowSubject.setLabelText(Tr::tr("Show commit subject")); + instantBlameShowSubject.setToolTip( + Tr::tr("Adds the commit subject directly to the annotation.")); graphLog.setSettingsKey("GraphLog"); @@ -152,7 +157,12 @@ GitSettings::GitSettings() Group { title(Tr::tr("Instant Blame")), groupChecker(instantBlame.groupChecker()), - Row { instantBlameIgnoreSpaceChanges, instantBlameIgnoreLineMoves, st }, + Row { + instantBlameIgnoreSpaceChanges, + instantBlameIgnoreLineMoves, + instantBlameShowSubject, + st + }, }, st diff --git a/src/plugins/git/gitsettings.h b/src/plugins/git/gitsettings.h index 2932cc78c0a..97a2ab787fb 100644 --- a/src/plugins/git/gitsettings.h +++ b/src/plugins/git/gitsettings.h @@ -40,6 +40,7 @@ public: Utils::BoolAspect instantBlame{this}; Utils::BoolAspect instantBlameIgnoreSpaceChanges{this}; Utils::BoolAspect instantBlameIgnoreLineMoves{this}; + Utils::BoolAspect instantBlameShowSubject{this}; mutable Utils::FilePath resolvedBinPath; mutable bool tryResolve = true; diff --git a/src/plugins/git/instantblame.cpp b/src/plugins/git/instantblame.cpp index b14b752b261..c76f0802c0c 100644 --- a/src/plugins/git/instantblame.cpp +++ b/src/plugins/git/instantblame.cpp @@ -45,7 +45,9 @@ BlameMark::BlameMark(const FilePath &fileName, int lineNumber, const CommitInfo {Tr::tr("Git Blame"), Constants::TEXT_MARK_CATEGORY_BLAME}) , m_info(info) { - const QString text = info.shortAuthor + " " + info.authorTime.toString("yyyy-MM-dd"); + QString text = info.shortAuthor + " " + info.authorTime.toString("yyyy-MM-dd"); + if (settings().instantBlameShowSubject()) + text += " • " + info.summary; setPriority(TextEditor::TextMark::LowPriority); setToolTip(toolTipText(info)); @@ -198,6 +200,10 @@ void InstantBlame::setup() setupBlameForEditor(EditorManager::currentEditor()); }); + connect(&settings().instantBlameShowSubject, &BaseAspect::changed, this, [setupBlameForEditor] { + setupBlameForEditor(EditorManager::currentEditor()); + }); + connect(EditorManager::instance(), &EditorManager::currentEditorChanged, this, setupBlameForEditor); connect(EditorManager::instance(), &EditorManager::documentClosed,