feature: add option to only highlight current branch in commit graph (#848)

- add a toggle button to only highlight current branch in commit graph
- re-order buttons in histories toolbar
- remove unused icons and styles
This commit is contained in:
leo 2025-01-06 14:59:27 +08:00
parent 65e820e4d5
commit 26ebd5ae7e
No known key found for this signature in database
20 changed files with 194 additions and 120 deletions

View file

@ -396,15 +396,35 @@ namespace SourceGit.Views
e.Handled = true;
}
private void OnSwitchHistoriesOrderClicked(object sender, RoutedEventArgs e)
private void OnOpenAdvancedHistoriesOption(object sender, RoutedEventArgs e)
{
if (sender is Button button && DataContext is ViewModels.Repository repo)
{
var checkIcon = App.CreateMenuIcon("Icons.Check");
var isHorizontal = ViewModels.Preference.Instance.UseTwoColumnsLayoutInHistories;
var horizontal = new MenuItem();
horizontal.Header = App.Text("Repository.HistoriesLayout.Horizontal");
if (isHorizontal)
horizontal.Icon = App.CreateMenuIcon("Icons.Check");
horizontal.Click += (_, ev) =>
{
ViewModels.Preference.Instance.UseTwoColumnsLayoutInHistories = true;
ev.Handled = true;
};
var vertical = new MenuItem();
vertical.Header = App.Text("Repository.HistoriesLayout.Vertical");
if (!isHorizontal)
vertical.Icon = App.CreateMenuIcon("Icons.Check");
vertical.Click += (_, ev) =>
{
ViewModels.Preference.Instance.UseTwoColumnsLayoutInHistories = false;
ev.Handled = true;
};
var dateOrder = new MenuItem();
dateOrder.Header = App.Text("Repository.HistoriesOrder.ByDate");
dateOrder.Icon = repo.EnableTopoOrderInHistories ? null : checkIcon;
if (!repo.EnableTopoOrderInHistories)
dateOrder.Icon = App.CreateMenuIcon("Icons.Check");
dateOrder.Click += (_, ev) =>
{
repo.EnableTopoOrderInHistories = false;
@ -413,7 +433,8 @@ namespace SourceGit.Views
var topoOrder = new MenuItem();
topoOrder.Header = App.Text("Repository.HistoriesOrder.Topo");
topoOrder.Icon = repo.EnableTopoOrderInHistories ? checkIcon : null;
if (repo.EnableTopoOrderInHistories)
topoOrder.Icon = App.CreateMenuIcon("Icons.Check");
topoOrder.Click += (_, ev) =>
{
repo.EnableTopoOrderInHistories = true;
@ -421,6 +442,9 @@ namespace SourceGit.Views
};
var menu = new ContextMenu();
menu.Items.Add(horizontal);
menu.Items.Add(vertical);
menu.Items.Add(new MenuItem() { Header = "-" });
menu.Items.Add(dateOrder);
menu.Items.Add(topoOrder);
menu.Open(button);