@@ -118,20 +118,6 @@ public bool EnableFirstParentInHistories
118
118
}
119
119
}
120
120
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
-
135
121
public bool OnlyHighlightCurrentBranchInHistories
136
122
{
137
123
get => _settings . OnlyHighlighCurrentBranchInHistories ;
@@ -145,20 +131,6 @@ public bool OnlyHighlightCurrentBranchInHistories
145
131
}
146
132
}
147
133
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
-
162
134
public string Filter
163
135
{
164
136
get => _filter ;
@@ -1470,6 +1442,97 @@ public ContextMenu CreateContextMenuForCustomAction()
1470
1442
return menu ;
1471
1443
}
1472
1444
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
+
1473
1536
public ContextMenu CreateContextMenuForLocalBranch ( Models . Branch branch )
1474
1537
{
1475
1538
var menu = new ContextMenu ( ) ;
@@ -2065,6 +2128,55 @@ public ContextMenu CreateContextMenuForTag(Models.Tag tag)
2065
2128
return menu ;
2066
2129
}
2067
2130
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
+
2068
2180
public ContextMenu CreateContextMenuForSubmodule ( string submodule )
2069
2181
{
2070
2182
var open = new MenuItem ( ) ;
0 commit comments