Skip to content

Commit cf7b61d

Browse files
committed
refactor: new way to display item count
1 parent ac1bd7c commit cf7b61d

File tree

5 files changed

+60
-47
lines changed

5 files changed

+60
-47
lines changed

src/Converters/ListConverters.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace SourceGit.Converters
88
public static class ListConverters
99
{
1010
public static readonly FuncValueConverter<IList, string> ToCount =
11-
new FuncValueConverter<IList, string>(v => v == null ? " (0)" : $" ({v.Count})");
11+
new FuncValueConverter<IList, string>(v => v == null ? "(0)" : $"({v.Count})");
1212

1313
public static readonly FuncValueConverter<IList, bool> IsNullOrEmpty =
1414
new FuncValueConverter<IList, bool>(v => v == null || v.Count == 0);

src/ViewModels/BranchTreeNode.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,12 @@ public void Run(List<Models.Branch> branches, List<Models.Remote> remotes, bool
102102
if (branch.IsLocal)
103103
{
104104
MakeBranchNode(branch, _locals, folders, "refs/heads", bForceExpanded);
105+
continue;
105106
}
106-
else
107-
{
108-
var remote = _remotes.Find(x => x.Name == branch.Remote);
109-
if (remote != null)
110-
MakeBranchNode(branch, remote.Children, folders, $"refs/remotes/{remote.Name}", bForceExpanded);
111-
}
107+
108+
var rk = $"refs/remotes/{branch.Remote}";
109+
if (folders.TryGetValue(rk, out var remote))
110+
MakeBranchNode(branch, remote.Children, folders, rk, bForceExpanded);
112111
}
113112

114113
foreach (var path in _expanded)

src/Views/Repository.axaml

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -256,24 +256,26 @@
256256

257257
<!-- Tags -->
258258
<ToggleButton Grid.Row="4" Classes="group_expander" IsChecked="{Binding IsTagGroupExpanded, Mode=TwoWay}">
259-
<Grid ColumnDefinitions="16,Auto,*,Auto,Auto,Auto">
259+
<Grid ColumnDefinitions="16,*,Auto,Auto,Auto">
260260
<Path Grid.Column="0" Width="11" Height="11" Margin="2,1,0,0" HorizontalAlignment="Left" Data="{StaticResource Icons.Tags}" Fill="{DynamicResource Brush.FG2}"/>
261-
<TextBlock Grid.Column="1" Classes="group_header_label" Margin="0" Text="{DynamicResource Text.Repository.Tags}"/>
262-
<TextBlock Grid.Column="2" Text="{Binding Tags, Converter={x:Static c:ListConverters.ToCount}}" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold"/>
263-
<ToggleButton Grid.Column="3"
261+
<TextBlock Grid.Column="1" Classes="group_header_label" Margin="0">
262+
<Run Text="{DynamicResource Text.Repository.Tags}"/>
263+
<Run Text="{Binding Tags, Converter={x:Static c:ListConverters.ToCount}}"/>
264+
</TextBlock>
265+
<ToggleButton Grid.Column="2"
264266
Classes="tag_display_mode"
265267
Width="14"
266268
IsChecked="{Binding Source={x:Static vm:Preferences.Instance}, Path=ShowTagsAsTree, Mode=TwoWay}"
267269
ToolTip.Tip="{DynamicResource Text.Repository.ShowTagsAsTree}"/>
268-
<Button Grid.Column="4"
270+
<Button Grid.Column="3"
269271
Classes="icon_button"
270272
Width="14"
271273
Margin="8,0,0,0"
272274
Click="OnOpenSortTagMenu"
273275
ToolTip.Tip="{DynamicResource Text.Repository.Tags.Sort}">
274276
<Path Width="12" Height="12" Margin="0,2,0,0" Data="{StaticResource Icons.Order}"/>
275277
</Button>
276-
<Button Grid.Column="5"
278+
<Button Grid.Column="4"
277279
Classes="icon_button"
278280
Width="14"
279281
Margin="8,0"
@@ -297,11 +299,13 @@
297299

298300
<!-- Submodules -->
299301
<ToggleButton Grid.Row="6" Classes="group_expander" IsChecked="{Binding IsSubmoduleGroupExpanded, Mode=TwoWay}">
300-
<Grid ColumnDefinitions="16,Auto,*,Auto,Auto">
302+
<Grid ColumnDefinitions="16,*,Auto,Auto">
301303
<Path Grid.Column="0" Width="10" Height="10" Margin="2,0,0,0" HorizontalAlignment="Left" Data="{StaticResource Icons.Submodules}" Fill="{DynamicResource Brush.FG2}"/>
302-
<TextBlock Grid.Column="1" Classes="group_header_label" Margin="0" Text="{DynamicResource Text.Repository.Submodules}"/>
303-
<TextBlock Grid.Column="2" Text="{Binding Submodules, Converter={x:Static c:ListConverters.ToCount}}" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold"/>
304-
<Button Grid.Column="3"
304+
<TextBlock Grid.Column="1" Classes="group_header_label" Margin="0">
305+
<Run Text="{DynamicResource Text.Repository.Submodules}"/>
306+
<Run Text="{Binding Submodules, Converter={x:Static c:ListConverters.ToCount}}"/>
307+
</TextBlock>
308+
<Button Grid.Column="2"
305309
Classes="icon_button"
306310
Width="14"
307311
Margin="8,0"
@@ -310,7 +314,7 @@
310314
ToolTip.Tip="{DynamicResource Text.Repository.Submodules.Update}">
311315
<Path Width="12" Height="12" Data="{StaticResource Icons.Loading}"/>
312316
</Button>
313-
<Button Grid.Column="4"
317+
<Button Grid.Column="3"
314318
Classes="icon_button"
315319
Width="14"
316320
Margin="0,0,8,0"
@@ -353,11 +357,13 @@
353357

354358
<!-- Worktrees -->
355359
<ToggleButton Grid.Row="8" Classes="group_expander" IsChecked="{Binding IsWorktreeGroupExpanded, Mode=TwoWay}">
356-
<Grid ColumnDefinitions="16,Auto,*,Auto,Auto">
360+
<Grid ColumnDefinitions="16,*,Auto,Auto">
357361
<Path Grid.Column="0" Width="11" Height="11" Margin="1,0,0,0" HorizontalAlignment="Left" Data="{StaticResource Icons.Worktrees}" Fill="{DynamicResource Brush.FG2}"/>
358-
<TextBlock Grid.Column="1" Classes="group_header_label" Margin="0" Text="{DynamicResource Text.Repository.Worktrees}"/>
359-
<TextBlock Grid.Column="2" Text="{Binding Worktrees, Converter={x:Static c:ListConverters.ToCount}}" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold"/>
360-
<Button Grid.Column="3"
362+
<TextBlock Grid.Column="1" Classes="group_header_label" Margin="0">
363+
<Run Text="{DynamicResource Text.Repository.Worktrees}"/>
364+
<Run Text="{Binding Worktrees, Converter={x:Static c:ListConverters.ToCount}}"/>
365+
</TextBlock>
366+
<Button Grid.Column="2"
361367
Classes="icon_button"
362368
Width="14"
363369
Margin="8,0"
@@ -366,7 +372,7 @@
366372
ToolTip.Tip="{DynamicResource Text.Repository.Worktrees.Prune}">
367373
<Path Width="12" Height="12" Data="{StaticResource Icons.Loading}"/>
368374
</Button>
369-
<Button Grid.Column="4"
375+
<Button Grid.Column="3"
370376
Classes="icon_button"
371377
Width="14"
372378
Margin="0,0,9,0"

src/Views/StashesPage.axaml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@
1919
<!-- Left -->
2020
<Grid Grid.Column="0" RowDefinitions="28,36,*,28,*">
2121
<!-- Stash Bar -->
22-
<Grid Grid.Row="0" ColumnDefinitions="Auto,Auto,Auto,*,Auto">
22+
<Grid Grid.Row="0" ColumnDefinitions="Auto,*,Auto">
2323
<Path Grid.Column="0" Margin="8,0,0,0" Width="14" Height="14" Fill="{DynamicResource Brush.FG2}" Data="{StaticResource Icons.Stashes}"/>
24-
<TextBlock Grid.Column="1" Text="{DynamicResource Text.Stashes.Stashes}" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold" Margin="4,0,0,0"/>
25-
<TextBlock Grid.Column="2" Text="{Binding Stashes, Converter={x:Static c:ListConverters.ToCount}}" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold"/>
26-
<Button Grid.Column="4"
24+
<TextBlock Grid.Column="1" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold" Margin="4,0,0,0">
25+
<Run Text="{DynamicResource Text.Stashes.Stashes}"/>
26+
<Run Text="{Binding Stashes, Converter={x:Static c:ListConverters.ToCount}}"/>
27+
</TextBlock>
28+
<Button Grid.Column="2"
2729
Classes="icon_button"
2830
Width="26" Height="14"
2931
Padding="0"
@@ -105,10 +107,12 @@
105107

106108
<!-- Changes Bar -->
107109
<Border Grid.Row="3" BorderThickness="0,1" BorderBrush="{DynamicResource Brush.Border0}">
108-
<Grid ColumnDefinitions="Auto,Auto,*">
110+
<Grid ColumnDefinitions="Auto,*">
109111
<Path Grid.Column="0" Margin="8,0,0,0" Width="14" Height="14" Fill="{DynamicResource Brush.FG2}" Data="{StaticResource Icons.Changes}"/>
110-
<TextBlock Grid.Column="1" Text="{DynamicResource Text.Stashes.Changes}" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold" Margin="4,0,0,0"/>
111-
<TextBlock Grid.Column="2" Text="{Binding Changes, Converter={x:Static c:ListConverters.ToCount}}" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold"/>
112+
<TextBlock Grid.Column="1" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold" Margin="4,0,0,0">
113+
<Run Text="{DynamicResource Text.Stashes.Changes}"/>
114+
<Run Text="{Binding Changes, Converter={x:Static c:ListConverters.ToCount}}"/>
115+
</TextBlock>
112116
</Grid>
113117
</Border>
114118

src/Views/WorkingCopy.axaml

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -61,26 +61,28 @@
6161
<Grid Grid.Row="1" RowDefinitions="28,*">
6262
<!-- Unstaged Toolbar -->
6363
<Border Grid.Row="0" BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border0}">
64-
<Grid ColumnDefinitions="Auto,Auto,Auto,Auto,*,Auto,Auto,Auto,Auto,Auto,Auto">
64+
<Grid ColumnDefinitions="Auto,Auto,Auto,*,Auto,Auto,Auto,Auto,Auto,Auto">
6565
<Path Grid.Column="0" Margin="8,0,0,0" Width="14" Height="14" Fill="{DynamicResource Brush.FG2}" Data="{StaticResource Icons.Changes}"/>
66-
<TextBlock Grid.Column="1" Text="{DynamicResource Text.WorkingCopy.Unstaged}" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold" Margin="4,0,0,0"/>
67-
<TextBlock Grid.Column="2" FontWeight="Bold" Foreground="{DynamicResource Brush.FG2}" Text="{Binding Unstaged, Converter={x:Static c:ListConverters.ToCount}}"/>
68-
<v:LoadingIcon Grid.Column="3" Width="14" Height="14" Margin="8,0,0,0" IsVisible="{Binding IsStaging}"/>
66+
<TextBlock Grid.Column="1" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold" Margin="4,0,0,0">
67+
<Run Text="{DynamicResource Text.WorkingCopy.Unstaged}"/>
68+
<Run Text="{Binding Unstaged, Converter={x:Static c:ListConverters.ToCount}}"/>
69+
</TextBlock>
70+
<v:LoadingIcon Grid.Column="2" Width="14" Height="14" Margin="8,0,0,0" IsVisible="{Binding IsStaging}"/>
6971

70-
<Button Grid.Column="5"
72+
<Button Grid.Column="4"
7173
Classes="icon_button"
7274
Width="26" Height="14"
7375
Padding="0"
7476
ToolTip.Tip="{DynamicResource Text.WorkingCopy.Unstaged.ViewAssumeUnchaged}"
7577
Command="{Binding OpenAssumeUnchanged}">
7678
<Path Width="14" Height="14" Data="{StaticResource Icons.File.Ignore}"/>
7779
</Button>
78-
<ToggleButton Grid.Column="6"
80+
<ToggleButton Grid.Column="5"
7981
Classes="toggle_untracked"
8082
Width="26" Height="14"
8183
ToolTip.Tip="{DynamicResource Text.WorkingCopy.IncludeUntracked}"
8284
IsChecked="{Binding IncludeUntracked, Mode=TwoWay}"/>
83-
<Button Grid.Column="7"
85+
<Button Grid.Column="6"
8486
Classes="icon_button"
8587
Width="26" Height="14"
8688
Padding="0"
@@ -89,7 +91,7 @@
8991
Command="{Binding OpenExternalMergeToolAllConflicts}">
9092
<Path Width="14" Height="14" Data="{StaticResource Icons.Conflict}"/>
9193
</Button>
92-
<Button Grid.Column="8"
94+
<Button Grid.Column="7"
9395
Classes="icon_button"
9496
Width="26" Height="14"
9597
Padding="0"
@@ -102,15 +104,15 @@
102104
</ToolTip.Tip>
103105
<Path Width="14" Height="14" Margin="0,6,0,0" Data="{StaticResource Icons.Down}"/>
104106
</Button>
105-
<Button Grid.Column="9"
107+
<Button Grid.Column="8"
106108
Classes="icon_button"
107109
Width="26" Height="14"
108110
Padding="0"
109111
ToolTip.Tip="{DynamicResource Text.WorkingCopy.Unstaged.StageAll}"
110112
Command="{Binding StageAll}">
111113
<Path Width="14" Height="14" Data="{StaticResource Icons.DoubleDown}"/>
112114
</Button>
113-
<v:ChangeViewModeSwitcher Grid.Column="10"
115+
<v:ChangeViewModeSwitcher Grid.Column="9"
114116
Width="26" Height="14"
115117
Margin="0,1,0,0"
116118
ViewMode="{Binding Source={x:Static vm:Preferences.Instance}, Path=UnstagedChangeViewMode, Mode=TwoWay}"/>
@@ -142,12 +144,14 @@
142144
<Grid Grid.Row="3" RowDefinitions="28,*">
143145
<!-- Staged Toolbar -->
144146
<Border Grid.Row="0" BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border0}">
145-
<Grid ColumnDefinitions="Auto,Auto,Auto,Auto,*,Auto,Auto,Auto">
147+
<Grid ColumnDefinitions="Auto,Auto,Auto,*,Auto,Auto,Auto">
146148
<Path Grid.Column="0" Margin="8,0,0,0" Width="14" Height="14" Fill="{DynamicResource Brush.FG2}" Data="{StaticResource Icons.Changes}"/>
147-
<TextBlock Grid.Column="1" Text="{DynamicResource Text.WorkingCopy.Staged}" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold" Margin="4,0,0,0"/>
148-
<TextBlock Grid.Column="2" FontWeight="Bold" Foreground="{DynamicResource Brush.FG2}" Text="{Binding Staged, Converter={x:Static c:ListConverters.ToCount}}"/>
149-
<v:LoadingIcon Grid.Column="3" Width="14" Height="14" Margin="8,0,0,0" IsVisible="{Binding IsUnstaging}"/>
150-
<Button Grid.Column="5" Classes="icon_button" Width="26" Height="14" Padding="0" Click="OnUnstageSelectedButtonClicked">
149+
<TextBlock Grid.Column="1" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold" Margin="4,0,0,0">
150+
<Run Text="{DynamicResource Text.WorkingCopy.Staged}"/>
151+
<Run Text="{Binding Staged, Converter={x:Static c:ListConverters.ToCount}}"/>
152+
</TextBlock>
153+
<v:LoadingIcon Grid.Column="2" Width="14" Height="14" Margin="8,0,0,0" IsVisible="{Binding IsUnstaging}"/>
154+
<Button Grid.Column="4" Classes="icon_button" Width="26" Height="14" Padding="0" Click="OnUnstageSelectedButtonClicked">
151155
<ToolTip.Tip>
152156
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
153157
<TextBlock Text="{DynamicResource Text.WorkingCopy.Staged.Unstage}" VerticalAlignment="Center"/>
@@ -156,10 +160,10 @@
156160
</ToolTip.Tip>
157161
<Path Width="14" Height="14" Margin="0,6,0,0" Data="{StaticResource Icons.Up}"/>
158162
</Button>
159-
<Button Grid.Column="6" Classes="icon_button" Width="26" Height="14" Padding="0" ToolTip.Tip="{DynamicResource Text.WorkingCopy.Staged.UnstageAll}" Command="{Binding UnstageAll}">
163+
<Button Grid.Column="5" Classes="icon_button" Width="26" Height="14" Padding="0" ToolTip.Tip="{DynamicResource Text.WorkingCopy.Staged.UnstageAll}" Command="{Binding UnstageAll}">
160164
<Path Width="14" Height="14" Data="{StaticResource Icons.DoubleUp}"/>
161165
</Button>
162-
<v:ChangeViewModeSwitcher Grid.Column="7"
166+
<v:ChangeViewModeSwitcher Grid.Column="6"
163167
Width="26" Height="14"
164168
Margin="0,1,0,0"
165169
ViewMode="{Binding Source={x:Static vm:Preferences.Instance}, Path=StagedChangeViewMode, Mode=TwoWay}"/>

0 commit comments

Comments
 (0)