From b2b0703f6fcae909e4275ef534a0812921604a90 Mon Sep 17 00:00:00 2001 From: Andre Hartmann Date: Thu, 29 Aug 2024 11:24:27 +0200 Subject: [PATCH] Git: InstantBlame: Add line log action to tooltip Shows a file log with commits touching the current line. Task-number: QTCREATORBUG-31146 Change-Id: I33e643a1bbc832659a52ed3bc43254660e427f5b Reviewed-by: Orgad Shaneh --- src/plugins/git/instantblame.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/plugins/git/instantblame.cpp b/src/plugins/git/instantblame.cpp index d2366c73048..473f0b0f1bd 100644 --- a/src/plugins/git/instantblame.cpp +++ b/src/plugins/git/instantblame.cpp @@ -90,6 +90,16 @@ bool BlameMark::addToolTipContent(QLayout *target) const const auto fileName = Utils::FilePath::fromString(originalFileName); gitClient().openShowEditor(path, sha1, fileName); } + } else if (link == "logLine") { + const VcsBasePluginState state = currentState(); + QTC_ASSERT(state.hasFile(), return); + + qCInfo(log).nospace().noquote() << "Showing log for: \"" << m_info.filePath + << "\" line:" << m_info.line; + + const QString lineArg = QString("-L %1,%1:%2") + .arg(m_info.line).arg(state.relativeCurrentFile()); + gitClient().log(state.currentFileTopLevel(), {}, true, {lineArg, "--no-patch"}); } else { qCInfo(log).nospace().noquote() << "Showing commit: " << sha1 << " for " << m_info.filePath; gitClient().show(m_info.filePath, sha1); @@ -106,16 +116,18 @@ QString BlameMark::toolTipText(const CommitInfo &info) const " Blame %1" " Blame Parent" " File at %1" + " Log for line %2" "" "

" "" " " - " " - " " + " " + " " " " - " " + " " "
commit%1
Author:%2 <%3>
Date:%4
Author:%3 <%4>
Date:%5
%5
%6
") - .arg(info.sha1.left(8), info.author, info.authorMail, + .arg(info.sha1.left(8), QString::number(info.line), + info.author, info.authorMail, info.authorTime.toString("yyyy-MM-dd hh:mm:ss"), info.summary); if (settings().instantBlameIgnoreSpaceChanges()