From 66da2150ef0caefb74895a8116e5dca6b01a63be Mon Sep 17 00:00:00 2001 From: Andre Hartmann Date: Mon, 2 Sep 2024 20:53:38 +0200 Subject: [PATCH] Git: Add color to ChangeSelectionDialog As already used in diff description and log. Change-Id: I3ad3a6beb48d96a3680da90e0a16d53e889670a1 Reviewed-by: Orgad Shaneh --- src/plugins/git/changeselectiondialog.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/plugins/git/changeselectiondialog.cpp b/src/plugins/git/changeselectiondialog.cpp index 1eb8ba7d65b..f5f0bb2b48c 100644 --- a/src/plugins/git/changeselectiondialog.cpp +++ b/src/plugins/git/changeselectiondialog.cpp @@ -9,6 +9,7 @@ #include +#include #include #include #include @@ -174,7 +175,8 @@ void ChangeSelectionDialog::setDetails() { QPalette palette; if (m_process->result() == ProcessResult::FinishedWithSuccess) { - m_detailsText->setPlainText(m_process->cleanedStdOut()); + const QString text = m_process->cleanedStdOut(); + AnsiEscapeCodeHandler::setTextInEditor(m_detailsText, text); palette.setColor(QPalette::Text, creatorColor(Theme::TextColorNormal)); m_changeNumberEdit->setPalette(palette); } else if (m_process->result() == ProcessResult::StartFailed) { @@ -240,7 +242,19 @@ void ChangeSelectionDialog::recalculateDetails() connect(m_process.get(), &Process::done, this, &ChangeSelectionDialog::setDetails); m_process->setWorkingDirectory(workingDir); m_process->setEnvironment(m_gitEnvironment); - m_process->setCommand({m_gitExecutable, {"show", "--decorate", "--stat=80", ref}}); + + const ColorNames colors = GitClient::colorNames(); + const QString showFormat = QStringLiteral( + "--pretty=format:" + "commit %C(%1)%H%Creset %C(%2)%d%Creset%n" + "Author: %C(%3)%aN <%aE>%Creset%n" + "Date: %C(%4)%ad (%ar)%Creset%n" + "%n%C(%5)%s%Creset%n%n%b" + ).arg(colors.hash, colors.decoration, colors.author, + colors.date, colors.subject); + + m_process->setCommand({m_gitExecutable, {"show", "--decorate", "--stat=80", + "--color=always", showFormat, ref}}); m_process->start(); m_detailsText->setPlainText(Tr::tr("Fetching commit data...")); }