Skip to content

Commit d07a664

Browse files
committed
code_review: PR #714
* remove `string.ToLower` warning * override `OnLoaded` method directly * clean namespace using Signed-off-by: leo <[email protected]>
1 parent ea1d966 commit d07a664

File tree

3 files changed

+25
-26
lines changed

3 files changed

+25
-26
lines changed

src/Models/ResetMode.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,20 @@ public class ResetMode
66
{
77
public static readonly ResetMode[] Supported =
88
[
9-
new ResetMode("Soft", "Keep all changes. Stage differences", "--soft", 'S', Brushes.Green),
10-
new ResetMode("Mixed", "Keep all changes. Unstage differences", "--mixed", 'M',Brushes.Orange),
11-
new ResetMode("Merge", "Reset while keeping unmerged changes", "--merge", 'G',Brushes.Purple),
12-
new ResetMode("Keep", "Reset while keeping local modifications", "--keep", 'K',Brushes.Purple),
13-
new ResetMode("Hard", "Discard all changes", "--hard", 'H',Brushes.Red),
9+
new ResetMode("Soft", "Keep all changes. Stage differences", "--soft", "S", Brushes.Green),
10+
new ResetMode("Mixed", "Keep all changes. Unstage differences", "--mixed", "M", Brushes.Orange),
11+
new ResetMode("Merge", "Reset while keeping unmerged changes", "--merge", "G", Brushes.Purple),
12+
new ResetMode("Keep", "Reset while keeping local modifications", "--keep", "K", Brushes.Purple),
13+
new ResetMode("Hard", "Discard all changes", "--hard", "H", Brushes.Red),
1414
];
1515

1616
public string Name { get; set; }
1717
public string Desc { get; set; }
1818
public string Arg { get; set; }
19-
public char Key { get; set; }
19+
public string Key { get; set; }
2020
public IBrush Color { get; set; }
2121

22-
public ResetMode(string n, string d, string a, char k, IBrush b)
22+
public ResetMode(string n, string d, string a, string k, IBrush b)
2323
{
2424
Name = n;
2525
Desc = d;

src/Views/Reset.axaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
xmlns:c="using:SourceGit.Converters"
88
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
99
x:Class="SourceGit.Views.Reset"
10-
Loaded="Control_OnLoaded"
1110
x:DataType="vm:Reset">
1211
<StackPanel Orientation="Vertical" Margin="8,0">
1312
<TextBlock FontSize="18"
@@ -37,12 +36,13 @@
3736
HorizontalAlignment="Right" VerticalAlignment="Center"
3837
Margin="0,0,8,0"
3938
Text="{DynamicResource Text.Reset.Mode}"/>
40-
<ComboBox x:Name="ResetMode" Grid.Row="2" Grid.Column="1"
39+
<ComboBox Grid.Row="2" Grid.Column="1"
40+
x:Name="ResetMode"
4141
Height="28" Padding="8,0"
4242
VerticalAlignment="Center" HorizontalAlignment="Stretch"
43-
KeyDown="InputElement_OnKeyDown"
4443
ItemsSource="{Binding Source={x:Static m:ResetMode.Supported}}"
45-
SelectedItem="{Binding SelectedMode, Mode=TwoWay}">
44+
SelectedItem="{Binding SelectedMode, Mode=TwoWay}"
45+
KeyDown="OnResetModeKeyDown">
4646
<ComboBox.ItemTemplate>
4747
<DataTemplate DataType="m:ResetMode">
4848
<Grid ColumnDefinitions="16,60,*">

src/Views/Reset.axaml.cs

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
using System.Linq;
21
using Avalonia.Controls;
32
using Avalonia.Input;
43
using Avalonia.Interactivity;
5-
using SourceGit.Models;
64

75
namespace SourceGit.Views
86
{
@@ -13,27 +11,28 @@ public Reset()
1311
InitializeComponent();
1412
}
1513

16-
private void InputElement_OnKeyDown(object sender, KeyEventArgs e)
14+
protected override void OnLoaded(RoutedEventArgs e)
1715
{
18-
var key = e.Key.ToString().ToLower();
19-
foreach (var item in ResetMode.ItemsSource)
16+
base.OnLoaded(e);
17+
18+
ResetMode.Focus();
19+
}
20+
21+
private void OnResetModeKeyDown(object sender, KeyEventArgs e)
22+
{
23+
if (sender is ComboBox comboBox)
2024
{
21-
if (item.GetType() == typeof(ResetMode))
25+
var key = e.Key.ToString();
26+
for (int i = 0; i < Models.ResetMode.Supported.Length; i++)
2227
{
23-
var resetMode = (ResetMode)item;
24-
if (resetMode.Key.ToString().ToLower() == key)
28+
if (key.Equals(Models.ResetMode.Supported[i].Key, System.StringComparison.OrdinalIgnoreCase))
2529
{
26-
ResetMode.SelectedValue = resetMode;
30+
comboBox.SelectedIndex = i;
31+
e.Handled = true;
2732
return;
2833
}
29-
3034
}
3135
}
3236
}
33-
34-
private void Control_OnLoaded(object sender, RoutedEventArgs e)
35-
{
36-
ResetMode.Focus();
37-
}
3837
}
3938
}

0 commit comments

Comments
 (0)