Git: Centralize color name resolution

Change-Id: I1984dd7d8ebb7e11480311a37aa094af44efb9aa
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Andre Hartmann
2024-09-03 08:59:59 +02:00
committed by André Hartmann
parent 0d4b33a769
commit 19d1c0c597
2 changed files with 30 additions and 18 deletions

View File

@@ -390,11 +390,7 @@ ShowController::ShowController(IDocument *document, const QString &id)
const auto onDescriptionSetup = [this, id](Process &process) {
process.setCodec(gitClient().encoding(GitClient::EncodingCommit, workingDirectory()));
const QString authorName = GitClient::styleColorName(TextEditor::C_LOG_AUTHOR_NAME);
const QString commitDate = GitClient::styleColorName(TextEditor::C_LOG_COMMIT_DATE);
const QString commitHash = GitClient::styleColorName(TextEditor::C_LOG_COMMIT_HASH);
const QString commitSubject = GitClient::styleColorName(TextEditor::C_LOG_COMMIT_SUBJECT);
const QString decoration = GitClient::styleColorName(TextEditor::C_LOG_DECORATION);
const ColorNames colors = GitClient::colorNames();
const QString showFormat = QStringLiteral(
"--pretty=format:"
@@ -402,7 +398,8 @@ ShowController::ShowController(IDocument *document, const QString &id)
"Author: %C(%3)%aN <%aE>%Creset, %C(%4)%ad (%ar)%Creset%n"
"Committer: %C(%3)%cN <%cE>%Creset, %C(%4)%cd (%cr)%Creset%n"
"%n%C(%5)%s%Creset%n%n%b"
).arg(commitHash, decoration, authorName, commitDate, commitSubject);
).arg(colors.hash, colors.decoration, colors.author,
colors.date, colors.subject);
setupCommand(process, {"show", "-s", colorOption, showFormat, id});
VcsOutputWindow::appendCommand(process.workingDirectory(), process.commandLine());
setDescription(Tr::tr("Waiting for data..."));
@@ -688,11 +685,7 @@ public:
QStringList graphArguments() const
{
const QString authorName = GitClient::styleColorName(TextEditor::C_LOG_AUTHOR_NAME);
const QString commitDate = GitClient::styleColorName(TextEditor::C_LOG_COMMIT_DATE);
const QString commitHash = GitClient::styleColorName(TextEditor::C_LOG_COMMIT_HASH);
const QString commitSubject = GitClient::styleColorName(TextEditor::C_LOG_COMMIT_SUBJECT);
const QString decoration = GitClient::styleColorName(TextEditor::C_LOG_DECORATION);
const ColorNames colors = GitClient::colorNames();
const QString formatArg = QStringLiteral(
"--pretty=format:"
@@ -701,7 +694,7 @@ public:
"%C(%3)%aN%Creset "
"%C(%4)%s%Creset "
"%C(%5)%ci%Creset"
).arg(commitHash, decoration, authorName, commitSubject, commitDate);
).arg(colors.hash, colors.decoration, colors.author, colors.subject, colors.date);
QStringList graphArgs = {graphOption, "--oneline", "--topo-order"};
@@ -1024,11 +1017,7 @@ static QStringList normalLogArguments()
if (!gitHasRgbColors())
return {};
const QString authorName = GitClient::styleColorName(TextEditor::C_LOG_AUTHOR_NAME);
const QString commitDate = GitClient::styleColorName(TextEditor::C_LOG_COMMIT_DATE);
const QString commitHash = GitClient::styleColorName(TextEditor::C_LOG_COMMIT_HASH);
const QString commitSubject = GitClient::styleColorName(TextEditor::C_LOG_COMMIT_SUBJECT);
const QString decoration = GitClient::styleColorName(TextEditor::C_LOG_DECORATION);
ColorNames colors = GitClient::colorNames();
const QString logArgs = QStringLiteral(
"--pretty=format:"
@@ -1036,7 +1025,7 @@ static QStringList normalLogArguments()
"Author: %C(%3)%aN <%aE>%Creset%n"
"Date: %C(%4)%cD %Creset%n%n"
"%C(%5)%w(0,4,4)%s%Creset%n%n%b"
).arg(commitHash, decoration, authorName, commitDate, commitSubject);
).arg(colors.hash, colors.decoration, colors.author, colors.date, colors.subject);
return {logArgs};
}
@@ -3785,6 +3774,18 @@ IEditor *GitClient::openShowEditor(const FilePath &workingDirectory, const QStri
return editor;
}
ColorNames GitClient::colorNames()
{
ColorNames result;
result.author = styleColorName(TextEditor::C_LOG_AUTHOR_NAME);
result.date = styleColorName(TextEditor::C_LOG_COMMIT_DATE);
result.hash = styleColorName(TextEditor::C_LOG_COMMIT_HASH);
result.decoration = styleColorName(TextEditor::C_LOG_DECORATION);
result.subject = styleColorName(TextEditor::C_LOG_COMMIT_SUBJECT);
result.body = styleColorName(TextEditor::C_TEXT);
return result;
}
} // Git::Internal
#include "gitclient.moc"

View File

@@ -33,6 +33,16 @@ class GitBaseDiffEditorController;
class GitSubmitEditorPanelData;
class Stash;
struct ColorNames
{
QString author;
QString date;
QString hash;
QString decoration;
QString subject;
QString body;
};
enum StatusMode
{
ShowAll = 0,
@@ -343,6 +353,7 @@ public:
const VcsBase::CommandHandler &handler) const;
static QString styleColorName(TextEditor::TextStyle style);
static ColorNames colorNames();
private:
static GitSettings &settings();