Skip to content

Commit bfcf327

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 bfcf327

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
@@ -373,6 +373,17 @@ private ContextMenu CreateContextMenuForMultipleCommits(ViewModels.Repository re
373373
menu.Items.Add(new MenuItem() { Header = "-" });
374374
}
375375

376+
var soloCommits = new MenuItem();
377+
soloCommits.Header = App.Text("CommitCM.SoloCommits");
378+
soloCommits.Icon = App.CreateMenuIcon("Icons.LightOn");
379+
soloCommits.Click += (_, e) =>
380+
{
381+
repo.SetSoloCommitFilterMode(selected, Models.FilterMode.Included);
382+
e.Handled = true;
383+
};
384+
menu.Items.Add(soloCommits);
385+
menu.Items.Add(new MenuItem() { Header = "-" });
386+
376387
var saveToPatch = new MenuItem();
377388
saveToPatch.Icon = App.CreateMenuIcon("Icons.Diff");
378389
saveToPatch.Header = App.Text("CommitCM.SaveAsPatch");

0 commit comments

Comments
 (0)