Skip to content

Commit

Permalink
Highlighting of authored commits
Browse files Browse the repository at this point in the history
Adds highlighting of user's commits. Commits are matched with current user's email address. The feature can be configured in the 'Settings' dialog on the 'Colors' page, commits are highlighted with LighYellow color by default.
  • Loading branch information
tomasdeml committed Feb 22, 2015
1 parent 7ba2ef9 commit 53bf20c
Show file tree
Hide file tree
Showing 11 changed files with 193 additions and 194 deletions.
10 changes: 10 additions & 0 deletions GitCommands/Config/SettingKeyString.cs
Expand Up @@ -16,5 +16,15 @@ public class SettingKeyString
/// "remote.{0}.url"
/// </summary>
public const string RemoteUrl = "remote.{0}.url";

/// <summary>
/// user.name
/// </summary>
public const string UserName = "user.name";

/// <summary>
/// user.email
/// </summary>
public const string UserEmail = "user.email";
}
}
5 changes: 5 additions & 0 deletions GitCommands/Git/GitRevision.cs
Expand Up @@ -92,6 +92,11 @@ public bool MatchesSearchString(string searchString)
Message.ToLower().Contains(searchString);
}

public bool MatchesAuthorByEmail(string email)
{
return AuthorEmail != null && AuthorEmail.Equals(email, StringComparison.OrdinalIgnoreCase);
}

public bool IsArtificial()
{
return IsArtificial(Guid);
Expand Down
12 changes: 12 additions & 0 deletions GitCommands/Settings/AppSettings.cs
Expand Up @@ -873,6 +873,12 @@ public static Color DiffAddedExtraColor
set { SetColor("diffaddedextracolor", value); }
}

public static Color AuthoredCommitsColor
{
get { return GetColor("authoredcommitscolor", Color.LightYellow); }
set { SetColor("authoredcommitscolor", value); }
}

public static Font DiffFont
{
get { return GetFont("difffont", new Font("Courier New", 10)); }
Expand Down Expand Up @@ -911,6 +917,12 @@ public static bool BranchBorders
set { SetBool("branchborders", value); }
}

public static bool HighlightAuthoredCommits
{
get { return GetBool("highlightauthoredcommits", true); }
set { SetBool("highlightauthoredcommits", value); }
}

public static string LastFormatPatchDir
{
get { return GetString("lastformatpatchdir", ""); }
Expand Down
8 changes: 3 additions & 5 deletions GitUI/CommandsDialogs/FormCommit.cs
Expand Up @@ -11,6 +11,7 @@
using System.Threading.Tasks;
using System.Windows.Forms;
using GitCommands;
using GitCommands.Config;
using GitCommands.Utils;
using GitUI.AutoCompletion;
using GitUI.CommandsDialogs.CommitDialog;
Expand All @@ -25,9 +26,6 @@ namespace GitUI.CommandsDialogs
{
public sealed partial class FormCommit : GitModuleForm //, IHotkeyable
{
const string UserNameKey = "user.name";
const string UserEmailKey = "user.email";

#region Translation
private readonly TranslationString _amendCommit =
new TranslationString("You are about to rewrite history." + Environment.NewLine +
Expand Down Expand Up @@ -1852,8 +1850,8 @@ private void updateAuthorInfo()

private void GetUserSettings()
{
_userName = Module.GetEffectiveSetting(UserNameKey);
_userEmail = Module.GetEffectiveSetting(UserEmailKey);
_userName = Module.GetEffectiveSetting(SettingKeyString.UserName);
_userEmail = Module.GetEffectiveSetting(SettingKeyString.UserEmail);



Expand Down
3 changes: 2 additions & 1 deletion GitUI/CommandsDialogs/FormFormatPatch.cs
Expand Up @@ -4,6 +4,7 @@
using System.Net.Mail;
using System.Windows.Forms;
using GitCommands;
using GitCommands.Config;
using GitUI.CommandsDialogs.FormatPatchDialog;
using ResourceManager;

Expand Down Expand Up @@ -44,7 +45,7 @@ public FormFormatPatch(GitUICommands aCommands)
InitializeComponent();
Translate();
if (aCommands != null)
MailFrom.Text = Module.GetEffectiveSetting("user.email");
MailFrom.Text = Module.GetEffectiveSetting(SettingKeyString.UserEmail);
}

private void Browse_Click(object sender, EventArgs e)
Expand Down
Expand Up @@ -5,6 +5,7 @@
using System.Reflection;
using System.Windows.Forms;
using GitCommands;
using GitCommands.Config;
using GitCommands.Utils;
using Microsoft.Win32;
using ResourceManager;
Expand Down Expand Up @@ -633,8 +634,8 @@ private bool CheckMergeTool()
private bool CheckGlobalUserSettingsValid()
{
UserNameSet.Visible = true;
if (string.IsNullOrEmpty(GetGlobalSetting("user.name")) ||
string.IsNullOrEmpty(GetGlobalSetting("user.email")))
if (string.IsNullOrEmpty(GetGlobalSetting(SettingKeyString.UserName)) ||
string.IsNullOrEmpty(GetGlobalSetting(SettingKeyString.UserEmail)))
{
UserNameSet.BackColor = Color.LightSalmon;
UserNameSet.Text = _noEmailSet.Text;
Expand Down

Large diffs are not rendered by default.

141 changes: 18 additions & 123 deletions GitUI/CommandsDialogs/SettingsDialog/Pages/ColorsSettingsPage.cs
Expand Up @@ -29,6 +29,7 @@ protected override void SettingsToPage()
DrawNonRelativesTextGray.Checked = AppSettings.RevisionGraphDrawNonRelativesTextGray;
BranchBorders.Checked = AppSettings.BranchBorders;
StripedBanchChange.Checked = AppSettings.StripedBranchChange;
HighlightAuthoredCommits.Checked = AppSettings.HighlightAuthoredCommits;

_NO_TRANSLATE_ColorGraphLabel.BackColor = AppSettings.GraphColor;
_NO_TRANSLATE_ColorGraphLabel.Text = AppSettings.GraphColor.Name;
Expand Down Expand Up @@ -73,6 +74,11 @@ protected override void SettingsToPage()
_NO_TRANSLATE_ColorSectionLabel.ForeColor =
ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorSectionLabel.BackColor);

_NO_TRANSLATE_ColorAuthoredCommits.BackColor = AppSettings.AuthoredCommitsColor;
_NO_TRANSLATE_ColorAuthoredCommits.Text = AppSettings.AuthoredCommitsColor.Name;
_NO_TRANSLATE_ColorAuthoredCommits.ForeColor =
ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorAuthoredCommits.BackColor);

string iconColor = AppSettings.IconColor.ToLower();
DefaultIcon.Checked = iconColor == "default";
BlueIcon.Checked = iconColor == "blue";
Expand All @@ -94,11 +100,14 @@ protected override void PageToSettings()
AppSettings.RevisionGraphDrawNonRelativesTextGray = DrawNonRelativesTextGray.Checked;
AppSettings.BranchBorders = BranchBorders.Checked;
AppSettings.StripedBranchChange = StripedBanchChange.Checked;
AppSettings.HighlightAuthoredCommits = HighlightAuthoredCommits.Checked;

AppSettings.GraphColor = _NO_TRANSLATE_ColorGraphLabel.BackColor;
AppSettings.TagColor = _NO_TRANSLATE_ColorTagLabel.BackColor;
AppSettings.BranchColor = _NO_TRANSLATE_ColorBranchLabel.BackColor;
AppSettings.RemoteBranchColor = _NO_TRANSLATE_ColorRemoteBranchLabel.BackColor;
AppSettings.OtherTagColor = _NO_TRANSLATE_ColorOtherLabel.BackColor;
AppSettings.AuthoredCommitsColor = _NO_TRANSLATE_ColorAuthoredCommits.BackColor;

AppSettings.DiffAddedColor = _NO_TRANSLATE_ColorAddedLineLabel.BackColor;
AppSettings.DiffRemovedColor = _NO_TRANSLATE_ColorRemovedLine.BackColor;
Expand Down Expand Up @@ -185,138 +194,24 @@ private void ShowIconPreview()
IconPreviewSmall.Image = (new Icon(icon, 16, 16)).ToBitmap();
break;
}
}
}

private void ColorAddedLineDiffLabel_Click(object sender, EventArgs e)
private void ColorLabel_Click(object sender, EventArgs e)
{
using (var colorDialog = new ColorDialog
{
Color = _NO_TRANSLATE_ColorAddedLineDiffLabel.BackColor
})
{
colorDialog.ShowDialog(this);
_NO_TRANSLATE_ColorAddedLineDiffLabel.BackColor = colorDialog.Color;
_NO_TRANSLATE_ColorAddedLineDiffLabel.Text = colorDialog.Color.Name;
}
_NO_TRANSLATE_ColorAddedLineDiffLabel.ForeColor =
ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorAddedLineDiffLabel.BackColor);
PickColor((Label) sender);
}

private void _ColorGraphLabel_Click(object sender, EventArgs e)
private void PickColor(Control targetColorControl)
{
using (var colorDialog = new ColorDialog { Color = _NO_TRANSLATE_ColorGraphLabel.BackColor })
using (var colorDialog = new ColorDialog {Color = targetColorControl.BackColor})
{
colorDialog.ShowDialog(this);
_NO_TRANSLATE_ColorGraphLabel.BackColor = colorDialog.Color;
_NO_TRANSLATE_ColorGraphLabel.Text = colorDialog.Color.Name;
targetColorControl.BackColor = colorDialog.Color;
targetColorControl.Text = colorDialog.Color.Name;
}
_NO_TRANSLATE_ColorGraphLabel.ForeColor =
ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorAddedLineDiffLabel.BackColor);
}

private void colorAddedLineLabel_Click(object sender, EventArgs e)
{
using (var colorDialog = new ColorDialog
{
Color = _NO_TRANSLATE_ColorAddedLineLabel.BackColor
})
{
colorDialog.ShowDialog(this);
_NO_TRANSLATE_ColorAddedLineLabel.BackColor = colorDialog.Color;
_NO_TRANSLATE_ColorAddedLineLabel.Text = colorDialog.Color.Name;
}
_NO_TRANSLATE_ColorAddedLineLabel.ForeColor =
ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorAddedLineLabel.BackColor);
}

private void ColorRemovedLineDiffLabel_Click(object sender, EventArgs e)
{
using (var colorDialog = new ColorDialog
{
Color = _NO_TRANSLATE_ColorRemovedLineDiffLabel.BackColor
})
{
colorDialog.ShowDialog(this);
_NO_TRANSLATE_ColorRemovedLineDiffLabel.BackColor = colorDialog.Color;
_NO_TRANSLATE_ColorRemovedLineDiffLabel.Text = colorDialog.Color.Name;
}
_NO_TRANSLATE_ColorRemovedLineDiffLabel.ForeColor =
ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorRemovedLineDiffLabel.BackColor);
}

private void ColorRemovedLine_Click(object sender, EventArgs e)
{
using (var colorDialog = new ColorDialog { Color = _NO_TRANSLATE_ColorRemovedLine.BackColor })
{
colorDialog.ShowDialog(this);
_NO_TRANSLATE_ColorRemovedLine.BackColor = colorDialog.Color;
_NO_TRANSLATE_ColorRemovedLine.Text = colorDialog.Color.Name;
}
_NO_TRANSLATE_ColorRemovedLine.ForeColor =
ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorRemovedLine.BackColor);
}

private void ColorSectionLabel_Click(object sender, EventArgs e)
{
using (var colorDialog = new ColorDialog { Color = _NO_TRANSLATE_ColorSectionLabel.BackColor })
{
colorDialog.ShowDialog(this);
_NO_TRANSLATE_ColorSectionLabel.BackColor = colorDialog.Color;
_NO_TRANSLATE_ColorSectionLabel.Text = colorDialog.Color.Name;
}
_NO_TRANSLATE_ColorSectionLabel.ForeColor =
ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorSectionLabel.BackColor);
}

private void ColorTagLabel_Click(object sender, EventArgs e)
{
using (var colorDialog = new ColorDialog { Color = _NO_TRANSLATE_ColorTagLabel.BackColor })
{
colorDialog.ShowDialog(this);
_NO_TRANSLATE_ColorTagLabel.BackColor = colorDialog.Color;
_NO_TRANSLATE_ColorTagLabel.Text = colorDialog.Color.Name;
}
_NO_TRANSLATE_ColorTagLabel.ForeColor =
ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorTagLabel.BackColor);
}

private void ColorBranchLabel_Click(object sender, EventArgs e)
{
using (var colorDialog = new ColorDialog { Color = _NO_TRANSLATE_ColorBranchLabel.BackColor })
{
colorDialog.ShowDialog(this);
_NO_TRANSLATE_ColorBranchLabel.BackColor = colorDialog.Color;
_NO_TRANSLATE_ColorBranchLabel.Text = colorDialog.Color.Name;
}
_NO_TRANSLATE_ColorBranchLabel.ForeColor =
ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorBranchLabel.BackColor);
}

private void ColorRemoteBranchLabel_Click(object sender, EventArgs e)
{
using (var colorDialog = new ColorDialog
{
Color = _NO_TRANSLATE_ColorRemoteBranchLabel.BackColor
})
{
colorDialog.ShowDialog(this);
_NO_TRANSLATE_ColorRemoteBranchLabel.BackColor = colorDialog.Color;
_NO_TRANSLATE_ColorRemoteBranchLabel.Text = colorDialog.Color.Name;
}
_NO_TRANSLATE_ColorRemoteBranchLabel.ForeColor =
ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorRemoteBranchLabel.BackColor);
}

private void ColorOtherLabel_Click(object sender, EventArgs e)
{
using (var colorDialog = new ColorDialog { Color = _NO_TRANSLATE_ColorOtherLabel.BackColor })
{
colorDialog.ShowDialog(this);
_NO_TRANSLATE_ColorOtherLabel.BackColor = colorDialog.Color;
_NO_TRANSLATE_ColorOtherLabel.Text = colorDialog.Color.Name;
}
_NO_TRANSLATE_ColorOtherLabel.ForeColor =
ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorOtherLabel.BackColor);
targetColorControl.ForeColor =
ColorHelper.GetForeColorForBackColor(targetColorControl.BackColor);
}
}
}
@@ -1,6 +1,7 @@
using System;
using System.IO;
using System.Windows.Forms;
using GitCommands.Config;
using GitCommands.Settings;
using GitCommands.Utils;
using ResourceManager;
Expand Down Expand Up @@ -73,8 +74,8 @@ protected override void SettingsToPage()
{
CommonLogic.EncodingToCombo(CurrentSettings.FilesEncoding, Global_FilesEncoding);

GlobalUserName.Text = CurrentSettings.GetValue("user.name");
GlobalUserEmail.Text = CurrentSettings.GetValue("user.email");
GlobalUserName.Text = CurrentSettings.GetValue(SettingKeyString.UserName);
GlobalUserEmail.Text = CurrentSettings.GetValue(SettingKeyString.UserEmail);
GlobalEditor.Text = CurrentSettings.GetValue("core.editor");
GlobalMergeTool.Text = CurrentSettings.GetValue("merge.tool");
CommitTemplatePath.Text = CurrentSettings.GetValue("commit.template");
Expand Down Expand Up @@ -105,8 +106,8 @@ protected override void PageToSettings()

if (CheckSettingsLogic.CanFindGitCmd())
{
CurrentSettings.SetValue("user.name", GlobalUserName.Text);
CurrentSettings.SetValue("user.email", GlobalUserEmail.Text);
CurrentSettings.SetValue(SettingKeyString.UserName, GlobalUserName.Text);
CurrentSettings.SetValue(SettingKeyString.UserEmail, GlobalUserEmail.Text);
CurrentSettings.SetValue("commit.template", CommitTemplatePath.Text);
CurrentSettings.SetPathValue("core.editor", GlobalEditor.Text);

Expand Down
6 changes: 6 additions & 0 deletions GitUI/UserControls/RevisionGrid.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 53bf20c

Please sign in to comment.