Skip to content

Commit 7cda721

Browse files
committed
refactor: statistics dialog
- use `%aN+%aE` instead of `%aN` to get commit author - show user avatar in statistics dialog Signed-off-by: leo <[email protected]>
1 parent 1555abd commit 7cda721

File tree

3 files changed

+20
-14
lines changed

3 files changed

+20
-14
lines changed

src/Commands/Statistics.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public Statistics(string repo, int max)
88
{
99
WorkingDirectory = repo;
1010
Context = repo;
11-
Args = $"log --date-order --branches --remotes -{max} --format=%ct$%aN";
11+
Args = $"log --date-order --branches --remotes -{max} --format=%ct$%aN±%aE";
1212
}
1313

1414
public Models.Statistics Result()

src/Models/Statistics.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ public enum StaticsticsMode
1818
ThisWeek,
1919
}
2020

21-
public class StaticsticsAuthor(string name, int count)
21+
public class StaticsticsAuthor(User user, int count)
2222
{
23-
public string Name { get; set; } = name;
23+
public User User { get; set; } = user;
2424
public int Count { get; set; } = count;
2525
}
2626

@@ -73,7 +73,7 @@ public StatisticsReport(StaticsticsMode mode, DateTime start)
7373
}
7474
}
7575

76-
public void AddCommit(DateTime time, string author)
76+
public void AddCommit(DateTime time, User author)
7777
{
7878
Total++;
7979

@@ -126,7 +126,7 @@ public void ChangeColor(uint color)
126126
}
127127

128128
private StaticsticsMode _mode = StaticsticsMode.All;
129-
private Dictionary<string, int> _mapUsers = new Dictionary<string, int>();
129+
private Dictionary<User, int> _mapUsers = new Dictionary<User, int>();
130130
private Dictionary<DateTime, int> _mapSamples = new Dictionary<DateTime, int>();
131131
}
132132

@@ -150,14 +150,16 @@ public Statistics()
150150

151151
public void AddCommit(string author, double timestamp)
152152
{
153+
var user = User.FindOrAdd(author);
154+
153155
var time = DateTime.UnixEpoch.AddSeconds(timestamp).ToLocalTime();
154156
if (time >= _thisWeekStart)
155-
Week.AddCommit(time, author);
157+
Week.AddCommit(time, user);
156158

157159
if (time >= _thisMonthStart)
158-
Month.AddCommit(time, author);
160+
Month.AddCommit(time, user);
159161

160-
All.AddCommit(time, author);
162+
All.AddCommit(time, user);
161163
}
162164

163165
public void Complete()

src/Views/Statistics.axaml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@
136136
<DataTemplate DataType="m:StatisticsReport">
137137
<Grid ColumnDefinitions="256,*">
138138
<Grid Grid.Column="0" RowDefinitions="*,16">
139-
<!-- Table By Committer -->
139+
<!-- Table By Autor -->
140140
<ListBox Grid.Column="0"
141141
ItemsSource="{Binding Authors}"
142142
SelectionMode="Single"
@@ -162,11 +162,15 @@
162162
<ListBox.ItemTemplate>
163163
<DataTemplate DataType="m:StaticsticsAuthor">
164164
<Border BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border2}">
165-
<Grid ColumnDefinitions="*,100">
166-
<Border Grid.Column="0" Padding="8,0" ClipToBounds="True">
167-
<TextBlock Text="{Binding Name}" HorizontalAlignment="Left"/>
165+
<Grid ColumnDefinitions="26,*,100">
166+
<v:Avatar Grid.Column="0"
167+
Width="16" Height="16"
168+
HorizontalAlignment="Center" VerticalAlignment="Center"
169+
User="{Binding User}"/>
170+
<Border Grid.Column="1" Padding="4,0,8,0" ClipToBounds="True">
171+
<TextBlock Text="{Binding User.Name}" HorizontalAlignment="Left"/>
168172
</Border>
169-
<Border Grid.Column="1" Padding="8,0" ClipToBounds="True">
173+
<Border Grid.Column="2" Padding="8,0" ClipToBounds="True">
170174
<TextBlock Text="{Binding Count}" HorizontalAlignment="Right"/>
171175
</Border>
172176
</Grid>
@@ -177,7 +181,7 @@
177181

178182
<!-- Summary -->
179183
<Grid Grid.Row="1" ColumnDefinitions="*,*">
180-
<!-- Total Committers -->
184+
<!-- Total Authors -->
181185
<StackPanel Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Bottom">
182186
<TextBlock Classes="primary" Text="{DynamicResource Text.Statistics.TotalAuthors}" FontSize="11" Foreground="{DynamicResource Brush.FG2}"/>
183187
<TextBlock Classes="primary" Text="{Binding Authors.Count}" FontSize="11" Margin="4,0,0,0"/>

0 commit comments

Comments
 (0)