Skip to content

Commit 830b188

Browse files
committed
feat: Extend solo commit filter to support multiple commits
- Extend solo commit filter functionality to support multiple commits at once. - Add a new menu option to filter commits in solo mode.
1 parent 02e450c commit 830b188

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

src/ViewModels/Repository.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1062,9 +1062,23 @@ public void SetTagFilterMode(Models.Tag tag, Models.FilterMode mode)
10621062
if (changed)
10631063
RefreshHistoriesFilters(true);
10641064
}
1065+
10651066
public void SetSoloCommitFilterMode(Models.Commit commit, Models.FilterMode mode)
10661067
{
1067-
SetSoloCommitFilterMode(commit.SHA[..10], mode);
1068+
var changed = _settings.UpdateHistoriesFilter(commit.SHA[..10], Models.FilterType.SoloCommits, mode);
1069+
1070+
if (changed)
1071+
RefreshHistoriesFilters(true);
1072+
}
1073+
1074+
public void SetSoloCommitFilterMode(List<Models.Commit> commits, Models.FilterMode mode)
1075+
{
1076+
bool changed = false;
1077+
foreach (var commit in commits)
1078+
changed |= _settings.UpdateHistoriesFilter(commit.SHA[..10], Models.FilterType.SoloCommits, mode);
1079+
1080+
if (changed)
1081+
RefreshHistoriesFilters(true);
10681082
}
10691083

10701084
public void SetSoloCommitFilterMode(string sha, Models.FilterMode mode)

src/Views/Histories.axaml.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,17 @@ private ContextMenu CreateContextMenuForMultipleCommits(ViewModels.Repository re
412412
menu.Items.Add(saveToPatch);
413413
menu.Items.Add(new MenuItem() { Header = "-" });
414414

415+
var soloCommits = new MenuItem();
416+
soloCommits.Header = App.Text("CommitCM.SoloCommits");
417+
soloCommits.Icon = App.CreateMenuIcon("Icons.LightOn");
418+
soloCommits.Click += (_, e) =>
419+
{
420+
repo.SetSoloCommitFilterMode(selected, Models.FilterMode.Included);
421+
e.Handled = true;
422+
};
423+
menu.Items.Add(soloCommits);
424+
menu.Items.Add(new MenuItem() { Header = "-" });
425+
415426
var copyShas = new MenuItem();
416427
copyShas.Header = App.Text("CommitCM.CopySHA");
417428
copyShas.Icon = App.CreateMenuIcon("Icons.Hash");

0 commit comments

Comments
 (0)