Skip to content

Commit a128b67

Browse files
committed
code_review: PR #1412
- Use `ViewModels.StashesPage.SelectedStash` instead of `sender is not ListBox { SelectedValue: Models.Stash stash }` - In tags view, `SelectedItem` can be `Models.Tag` or `ViewModels.TagTreeNode` - In logs window, `vm.SelectedLog` may be null Signed-off-by: leo <[email protected]>
1 parent 196b454 commit a128b67

File tree

10 files changed

+56
-70
lines changed

10 files changed

+56
-70
lines changed

src/ViewModels/Repository.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1365,12 +1365,6 @@ public void DeleteBranch(Models.Branch branch)
13651365
ShowPopup(new DeleteBranch(this, branch));
13661366
}
13671367

1368-
public void DeleteRemote(Models.Remote remote)
1369-
{
1370-
if (CanCreatePopup())
1371-
ShowPopup(new DeleteRemote(this, remote));
1372-
}
1373-
13741368
public void DeleteMultipleBranches(List<Models.Branch> branches, bool isLocal)
13751369
{
13761370
if (CanCreatePopup())
@@ -1407,6 +1401,12 @@ public void AddRemote()
14071401
ShowPopup(new AddRemote(this));
14081402
}
14091403

1404+
public void DeleteRemote(Models.Remote remote)
1405+
{
1406+
if (CanCreatePopup())
1407+
ShowPopup(new DeleteRemote(this, remote));
1408+
}
1409+
14101410
public void AddSubmodule()
14111411
{
14121412
if (CanCreatePopup())

src/ViewModels/StashesPage.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,12 @@ public void ClearSearchFilter()
295295
SearchFilter = string.Empty;
296296
}
297297

298+
public void Drop(Models.Stash stash)
299+
{
300+
if (stash != null && _repo.CanCreatePopup())
301+
_repo.ShowPopup(new DropStash(_repo, stash));
302+
}
303+
298304
private void RefreshVisible()
299305
{
300306
if (string.IsNullOrEmpty(_searchFilter))
@@ -314,12 +320,6 @@ private void RefreshVisible()
314320
}
315321
}
316322

317-
public void Drop(Models.Stash stash)
318-
{
319-
if (_repo.CanCreatePopup())
320-
_repo.ShowPopup(new DropStash(_repo, stash));
321-
}
322-
323323
private Repository _repo = null;
324324
private List<Models.Stash> _stashes = [];
325325
private List<Models.Stash> _visibleStashes = [];

src/Views/BranchTree.axaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
ItemsSource="{Binding #ThisControl.Rows}"
1414
SelectionMode="Multiple"
1515
SelectionChanged="OnNodesSelectionChanged"
16-
KeyDown="OnListKeyDown"
16+
KeyDown="OnTreeKeyDown"
1717
ContextRequested="OnTreeContextRequested">
1818
<ListBox.ItemsPanel>
1919
<ItemsPanelTemplate>

src/Views/BranchTree.axaml.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ private void OnTreeContextRequested(object _1, ContextRequestedEventArgs _2)
450450
}
451451
}
452452

453-
private void OnListKeyDown(object _, KeyEventArgs e)
453+
private void OnTreeKeyDown(object _, KeyEventArgs e)
454454
{
455455
if (e.Key is not (Key.Delete or Key.Back))
456456
return;
@@ -463,7 +463,7 @@ private void OnListKeyDown(object _, KeyEventArgs e)
463463
if (selected == null || selected.Count == 0)
464464
return;
465465

466-
if (selected is [ViewModels.BranchTreeNode { Backend: Models.Remote remote }])
466+
if (selected.Count == 1 && selected[0] is ViewModels.BranchTreeNode { Backend: Models.Remote remote })
467467
{
468468
repo.DeleteRemote(remote);
469469
e.Handled = true;

src/Views/StashesPage.axaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
ItemsSource="{Binding VisibleStashes}"
6666
SelectedItem="{Binding SelectedStash, Mode=TwoWay}"
6767
SelectionMode="Single"
68-
KeyDown="OnStashKeyDown"
68+
KeyDown="OnStashListKeyDown"
6969
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
7070
ScrollViewer.VerticalScrollBarVisibility="Auto">
7171
<ListBox.Styles>

src/Views/StashesPage.axaml.cs

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,28 +24,25 @@ private void OnMainLayoutSizeChanged(object sender, SizeChangedEventArgs e)
2424
layout.StashesLeftWidth = new GridLength(maxLeft, GridUnitType.Pixel);
2525
}
2626

27-
private void OnStashContextRequested(object sender, ContextRequestedEventArgs e)
28-
{
29-
if (DataContext is ViewModels.StashesPage vm && sender is Border border)
30-
{
31-
var menu = vm.MakeContextMenu(border.DataContext as Models.Stash);
32-
menu?.Open(border);
33-
}
34-
e.Handled = true;
35-
}
36-
37-
private void OnStashKeyDown(object sender, KeyEventArgs e)
27+
private void OnStashListKeyDown(object sender, KeyEventArgs e)
3828
{
3929
if (e.Key is not (Key.Delete or Key.Back))
4030
return;
4131

4232
if (DataContext is not ViewModels.StashesPage vm)
4333
return;
4434

45-
if (sender is not ListBox { SelectedValue: Models.Stash stash })
46-
return;
35+
vm.Drop(vm.SelectedStash);
36+
e.Handled = true;
37+
}
4738

48-
vm.Drop(stash);
39+
private void OnStashContextRequested(object sender, ContextRequestedEventArgs e)
40+
{
41+
if (DataContext is ViewModels.StashesPage vm && sender is Border border)
42+
{
43+
var menu = vm.MakeContextMenu(border.DataContext as Models.Stash);
44+
menu?.Open(border);
45+
}
4946
e.Handled = true;
5047
}
5148

src/Views/TagsView.axaml.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -217,13 +217,15 @@ private void OnSelectionChanged(object sender, SelectionChangedEventArgs _)
217217

218218
private void OnKeyDown(object sender, KeyEventArgs e)
219219
{
220-
if (sender is not ListBox { SelectedValue: Models.Tag tag })
221-
return;
222-
223220
if (DataContext is not ViewModels.Repository repo)
224221
return;
225-
226-
repo.DeleteTag(tag);
222+
223+
var selected = (sender as ListBox)?.SelectedItem;
224+
if (selected is ViewModels.TagTreeNode { Tag: { } tagInNode })
225+
repo.DeleteTag(tagInNode);
226+
else if (selected is Models.Tag tag)
227+
repo.DeleteTag(tag);
228+
227229
e.Handled = true;
228230
}
229231
}

src/Views/ViewLogs.axaml.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,10 @@ private void OnLogKeyDown(object _, KeyEventArgs e)
4545
{
4646
if (e.Key is not (Key.Delete or Key.Back))
4747
return;
48-
49-
if (DataContext is not ViewModels.ViewLogs vm)
50-
return;
5148

52-
vm.Logs.Remove(vm.SelectedLog);
49+
if (DataContext is ViewModels.ViewLogs { SelectedLog: { } log } vm)
50+
vm.Logs.Remove(log);
51+
5352
e.Handled = true;
5453
}
5554
}

src/Views/Welcome.axaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,7 @@
6161
ItemsSource="{Binding Rows}"
6262
SelectionMode="Single"
6363
Loaded="SetupTreeViewDragAndDrop"
64-
LostFocus="OnTreeViewLostFocus"
65-
KeyDown="OnTreeViewKeyDown">
64+
LostFocus="OnTreeViewLostFocus">
6665
<ListBox.Styles>
6766
<Style Selector="ListBox">
6867
<Setter Property="FocusAdorner">

src/Views/Welcome.axaml.cs

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,25 @@ public class RepositoryListBox : ListBox
3131

3232
protected override void OnKeyDown(KeyEventArgs e)
3333
{
34-
if (SelectedItem is ViewModels.RepositoryNode { IsRepository: false } node && e.KeyModifiers == KeyModifiers.None)
34+
if (SelectedItem is ViewModels.RepositoryNode node && e.KeyModifiers == KeyModifiers.None)
3535
{
36-
if ((node.IsExpanded && e.Key == Key.Left) || (!node.IsExpanded && e.Key == Key.Right))
36+
if (e.Key is Key.Delete or Key.Back)
37+
{
38+
node.Delete();
39+
e.Handled = true;
40+
}
41+
else if (node.IsRepository)
42+
{
43+
if (e.Key == Key.Enter)
44+
{
45+
var parent = this.FindAncestorOfType<Launcher>();
46+
if (parent is { DataContext: ViewModels.Launcher launcher })
47+
launcher.OpenRepositoryInTab(node, null);
48+
49+
e.Handled = true;
50+
}
51+
}
52+
else if ((node.IsExpanded && e.Key == Key.Left) || (!node.IsExpanded && e.Key == Key.Right) || e.Key == Key.Enter)
3753
{
3854
ViewModels.Welcome.Instance.ToggleNodeIsExpanded(node);
3955
e.Handled = true;
@@ -92,33 +108,6 @@ private void SetupTreeNodeDragAndDrop(object sender, RoutedEventArgs _)
92108
}
93109
}
94110

95-
private void OnTreeViewKeyDown(object _, KeyEventArgs e)
96-
{
97-
if (TreeContainer.SelectedItem is ViewModels.RepositoryNode node)
98-
{
99-
if (e.Key == Key.Enter)
100-
{
101-
if (node.IsRepository)
102-
{
103-
var parent = this.FindAncestorOfType<Launcher>();
104-
if (parent is { DataContext: ViewModels.Launcher launcher })
105-
launcher.OpenRepositoryInTab(node, null);
106-
}
107-
else
108-
{
109-
ViewModels.Welcome.Instance.ToggleNodeIsExpanded(node);
110-
}
111-
112-
e.Handled = true;
113-
}
114-
else if (e.Key is Key.Delete or Key.Back)
115-
{
116-
node.Delete();
117-
e.Handled = true;
118-
}
119-
}
120-
}
121-
122111
private void OnTreeNodeContextRequested(object sender, ContextRequestedEventArgs e)
123112
{
124113
if (sender is Grid { DataContext: ViewModels.RepositoryNode node } grid)

0 commit comments

Comments
 (0)