@@ -118,20 +118,6 @@ public bool EnableFirstParentInHistories
118118 }
119119 }
120120
121- public bool EnableTopoOrderInHistories
122- {
123- get => _settings . EnableTopoOrderInHistories ;
124- set
125- {
126- if ( value != _settings . EnableTopoOrderInHistories )
127- {
128- _settings . EnableTopoOrderInHistories = value ;
129- OnPropertyChanged ( ) ;
130- Task . Run ( RefreshCommits ) ;
131- }
132- }
133- }
134-
135121 public bool OnlyHighlightCurrentBranchInHistories
136122 {
137123 get => _settings . OnlyHighlighCurrentBranchInHistories ;
@@ -145,20 +131,6 @@ public bool OnlyHighlightCurrentBranchInHistories
145131 }
146132 }
147133
148- public Models . TagSortMode TagSortMode
149- {
150- get => _settings . TagSortMode ;
151- set
152- {
153- if ( value != _settings . TagSortMode )
154- {
155- _settings . TagSortMode = value ;
156- OnPropertyChanged ( ) ;
157- VisibleTags = BuildVisibleTags ( ) ;
158- }
159- }
160- }
161-
162134 public string Filter
163135 {
164136 get => _filter ;
@@ -1470,6 +1442,97 @@ public ContextMenu CreateContextMenuForCustomAction()
14701442 return menu ;
14711443 }
14721444
1445+ public ContextMenu CreateContextMenuForHistoriesPage ( )
1446+ {
1447+ var layout = new MenuItem ( ) ;
1448+ layout . Header = App . Text ( "Repository.HistoriesLayout" ) ;
1449+ layout . IsEnabled = false ;
1450+
1451+ var isHorizontal = Preferences . Instance . UseTwoColumnsLayoutInHistories ;
1452+ var horizontal = new MenuItem ( ) ;
1453+ horizontal . Header = App . Text ( "Repository.HistoriesLayout.Horizontal" ) ;
1454+ if ( isHorizontal )
1455+ horizontal . Icon = App . CreateMenuIcon ( "Icons.Check" ) ;
1456+ horizontal . Click += ( _ , ev ) =>
1457+ {
1458+ Preferences . Instance . UseTwoColumnsLayoutInHistories = true ;
1459+ ev . Handled = true ;
1460+ } ;
1461+
1462+ var vertical = new MenuItem ( ) ;
1463+ vertical . Header = App . Text ( "Repository.HistoriesLayout.Vertical" ) ;
1464+ if ( ! isHorizontal )
1465+ vertical . Icon = App . CreateMenuIcon ( "Icons.Check" ) ;
1466+ vertical . Click += ( _ , ev ) =>
1467+ {
1468+ Preferences . Instance . UseTwoColumnsLayoutInHistories = false ;
1469+ ev . Handled = true ;
1470+ } ;
1471+
1472+ var order = new MenuItem ( ) ;
1473+ order . Header = App . Text ( "Repository.HistoriesOrder" ) ;
1474+ order . IsEnabled = false ;
1475+
1476+ var dateOrder = new MenuItem ( ) ;
1477+ dateOrder . Header = App . Text ( "Repository.HistoriesOrder.ByDate" ) ;
1478+ dateOrder . SetValue ( Views . MenuItemExtension . CommandProperty , "--date-order" ) ;
1479+ if ( ! _settings . EnableTopoOrderInHistories )
1480+ dateOrder . Icon = App . CreateMenuIcon ( "Icons.Check" ) ;
1481+ dateOrder . Click += ( _ , ev ) =>
1482+ {
1483+ if ( _settings . EnableTopoOrderInHistories )
1484+ {
1485+ _settings . EnableTopoOrderInHistories = false ;
1486+ Task . Run ( RefreshCommits ) ;
1487+ }
1488+
1489+ ev . Handled = true ;
1490+ } ;
1491+
1492+ var topoOrder = new MenuItem ( ) ;
1493+ topoOrder . Header = App . Text ( "Repository.HistoriesOrder.Topo" ) ;
1494+ topoOrder . SetValue ( Views . MenuItemExtension . CommandProperty , "--top-order" ) ;
1495+ if ( _settings . EnableTopoOrderInHistories )
1496+ topoOrder . Icon = App . CreateMenuIcon ( "Icons.Check" ) ;
1497+ topoOrder . Click += ( _ , ev ) =>
1498+ {
1499+ if ( ! _settings . EnableTopoOrderInHistories )
1500+ {
1501+ _settings . EnableTopoOrderInHistories = true ;
1502+ Task . Run ( RefreshCommits ) ;
1503+ }
1504+
1505+ ev . Handled = true ;
1506+ } ;
1507+
1508+ var others = new MenuItem ( ) ;
1509+ others . Header = App . Text ( "Repository.HistoriesOptions" ) ;
1510+ others . IsEnabled = false ;
1511+
1512+ var showTagsInGraph = new MenuItem ( ) ;
1513+ showTagsInGraph . Header = App . Text ( "Repository.HistoriesOptions.ShowTagsInGraph" ) ;
1514+ if ( Preferences . Instance . ShowTagsInGraph )
1515+ showTagsInGraph . Icon = App . CreateMenuIcon ( "Icons.Check" ) ;
1516+ showTagsInGraph . Click += ( _ , ev ) =>
1517+ {
1518+ Preferences . Instance . ShowTagsInGraph = ! Preferences . Instance . ShowTagsInGraph ;
1519+ ev . Handled = true ;
1520+ } ;
1521+
1522+ var menu = new ContextMenu ( ) ;
1523+ menu . Items . Add ( layout ) ;
1524+ menu . Items . Add ( horizontal ) ;
1525+ menu . Items . Add ( vertical ) ;
1526+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1527+ menu . Items . Add ( order ) ;
1528+ menu . Items . Add ( dateOrder ) ;
1529+ menu . Items . Add ( topoOrder ) ;
1530+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1531+ menu . Items . Add ( others ) ;
1532+ menu . Items . Add ( showTagsInGraph ) ;
1533+ return menu ;
1534+ }
1535+
14731536 public ContextMenu CreateContextMenuForLocalBranch ( Models . Branch branch )
14741537 {
14751538 var menu = new ContextMenu ( ) ;
@@ -2065,6 +2128,55 @@ public ContextMenu CreateContextMenuForTag(Models.Tag tag)
20652128 return menu ;
20662129 }
20672130
2131+ public ContextMenu CreateContextMenuForTagSortMode ( )
2132+ {
2133+ var mode = _settings . TagSortMode ;
2134+ var changeMode = new Action < Models . TagSortMode > ( ( m ) =>
2135+ {
2136+ if ( _settings . TagSortMode != m )
2137+ {
2138+ _settings . TagSortMode = m ;
2139+ VisibleTags = BuildVisibleTags ( ) ;
2140+ }
2141+ } ) ;
2142+
2143+ var byCreatorDate = new MenuItem ( ) ;
2144+ byCreatorDate . Header = App . Text ( "Repository.Tags.OrderByCreatorDate" ) ;
2145+ if ( mode == Models . TagSortMode . CreatorDate )
2146+ byCreatorDate . Icon = App . CreateMenuIcon ( "Icons.Check" ) ;
2147+ byCreatorDate . Click += ( _ , ev ) =>
2148+ {
2149+ changeMode ( Models . TagSortMode . CreatorDate ) ;
2150+ ev . Handled = true ;
2151+ } ;
2152+
2153+ var byNameAsc = new MenuItem ( ) ;
2154+ byNameAsc . Header = App . Text ( "Repository.Tags.OrderByNameAsc" ) ;
2155+ if ( mode == Models . TagSortMode . NameInAscending )
2156+ byNameAsc . Icon = App . CreateMenuIcon ( "Icons.Check" ) ;
2157+ byNameAsc . Click += ( _ , ev ) =>
2158+ {
2159+ changeMode ( Models . TagSortMode . NameInAscending ) ;
2160+ ev . Handled = true ;
2161+ } ;
2162+
2163+ var byNameDes = new MenuItem ( ) ;
2164+ byNameDes . Header = App . Text ( "Repository.Tags.OrderByNameDes" ) ;
2165+ if ( mode == Models . TagSortMode . NameInDescending )
2166+ byNameDes . Icon = App . CreateMenuIcon ( "Icons.Check" ) ;
2167+ byNameDes . Click += ( _ , ev ) =>
2168+ {
2169+ changeMode ( Models . TagSortMode . NameInDescending ) ;
2170+ ev . Handled = true ;
2171+ } ;
2172+
2173+ var menu = new ContextMenu ( ) ;
2174+ menu . Items . Add ( byCreatorDate ) ;
2175+ menu . Items . Add ( byNameAsc ) ;
2176+ menu . Items . Add ( byNameDes ) ;
2177+ return menu ;
2178+ }
2179+
20682180 public ContextMenu CreateContextMenuForSubmodule ( string submodule )
20692181 {
20702182 var open = new MenuItem ( ) ;
0 commit comments