Skip to content

Commit b03ee19

Browse files
committed
refactor: trigger nagivation in BranchTree
1 parent 36b8472 commit b03ee19

File tree

2 files changed

+33
-58
lines changed

2 files changed

+33
-58
lines changed

src/Views/BranchTree.axaml.cs

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ namespace SourceGit.Views
1717
public class BranchTreeNodeIcon : UserControl
1818
{
1919
public static readonly StyledProperty<ViewModels.BranchTreeNode> NodeProperty =
20-
AvaloniaProperty.Register<BranchTreeNodeIcon, ViewModels.BranchTreeNode>(nameof(Node), null);
20+
AvaloniaProperty.Register<BranchTreeNodeIcon, ViewModels.BranchTreeNode>(nameof(Node));
2121

2222
public ViewModels.BranchTreeNode Node
2323
{
@@ -26,7 +26,7 @@ public ViewModels.BranchTreeNode Node
2626
}
2727

2828
public static readonly StyledProperty<bool> IsExpandedProperty =
29-
AvaloniaProperty.Register<BranchTreeNodeIcon, bool>(nameof(IsExpanded), false);
29+
AvaloniaProperty.Register<BranchTreeNodeIcon, bool>(nameof(IsExpanded));
3030

3131
public bool IsExpanded
3232
{
@@ -36,8 +36,8 @@ public bool IsExpanded
3636

3737
static BranchTreeNodeIcon()
3838
{
39-
NodeProperty.Changed.AddClassHandler<BranchTreeNodeIcon>((icon, e) => icon.UpdateContent());
40-
IsExpandedProperty.Changed.AddClassHandler<BranchTreeNodeIcon>((icon, e) => icon.UpdateContent());
39+
NodeProperty.Changed.AddClassHandler<BranchTreeNodeIcon>((icon, _) => icon.UpdateContent());
40+
IsExpandedProperty.Changed.AddClassHandler<BranchTreeNodeIcon>((icon, _) => icon.UpdateContent());
4141
}
4242

4343
private void UpdateContent()
@@ -90,7 +90,7 @@ private void CreateContent(double size, Thickness margin, string iconKey)
9090
public partial class BranchTree : UserControl
9191
{
9292
public static readonly StyledProperty<List<ViewModels.BranchTreeNode>> NodesProperty =
93-
AvaloniaProperty.Register<BranchTree, List<ViewModels.BranchTreeNode>>(nameof(Nodes), null);
93+
AvaloniaProperty.Register<BranchTree, List<ViewModels.BranchTreeNode>>(nameof(Nodes));
9494

9595
public List<ViewModels.BranchTreeNode> Nodes
9696
{
@@ -148,12 +148,8 @@ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs chang
148148
}
149149
}
150150

151-
private void OnNodesSelectionChanged(object sender, SelectionChangedEventArgs e)
151+
private void OnNodesSelectionChanged(object _, SelectionChangedEventArgs e)
152152
{
153-
var selected = BranchesPresenter.SelectedItems;
154-
if (selected == null || selected.Count == 0)
155-
return;
156-
157153
foreach (var item in e.AddedItems)
158154
{
159155
if (item is ViewModels.BranchTreeNode node)
@@ -165,6 +161,16 @@ private void OnNodesSelectionChanged(object sender, SelectionChangedEventArgs e)
165161
if (item is ViewModels.BranchTreeNode node)
166162
node.IsSelected = false;
167163
}
164+
165+
var selected = BranchesPresenter.SelectedItems;
166+
if (selected == null || selected.Count == 0)
167+
return;
168+
169+
if (selected.Count == 1 && selected[0] is ViewModels.BranchTreeNode { Backend: Models.Branch branch })
170+
{
171+
var repo = DataContext as ViewModels.Repository;
172+
repo?.NavigateToCommit(branch.Head);
173+
}
168174

169175
var prev = null as ViewModels.BranchTreeNode;
170176
foreach (var row in Rows)
@@ -189,7 +195,7 @@ private void OnNodesSelectionChanged(object sender, SelectionChangedEventArgs e)
189195
RaiseEvent(new RoutedEventArgs(SelectionChangedEvent));
190196
}
191197

192-
private void OnTreeContextRequested(object sender, ContextRequestedEventArgs e)
198+
private void OnTreeContextRequested(object _1, ContextRequestedEventArgs _2)
193199
{
194200
var repo = DataContext as ViewModels.Repository;
195201
if (repo?.Settings == null)
@@ -237,7 +243,7 @@ private void OnTreeContextRequested(object sender, ContextRequestedEventArgs e)
237243
}
238244
}
239245

240-
private void OnDoubleTappedBranchNode(object sender, TappedEventArgs e)
246+
private void OnDoubleTappedBranchNode(object sender, TappedEventArgs _)
241247
{
242248
if (sender is Grid { DataContext: ViewModels.BranchTreeNode node })
243249
{

src/Views/Repository.axaml.cs

Lines changed: 15 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ private void OpenGitLFSMenu(object sender, RoutedEventArgs e)
175175
e.Handled = true;
176176
}
177177

178-
private async void OpenStatistics(object sender, RoutedEventArgs e)
178+
private async void OpenStatistics(object _, RoutedEventArgs e)
179179
{
180180
if (DataContext is ViewModels.Repository repo && TopLevel.GetTopLevel(this) is Window owner)
181181
{
@@ -187,11 +187,11 @@ private async void OpenStatistics(object sender, RoutedEventArgs e)
187187

188188
private void OnSearchCommitPanelPropertyChanged(object sender, AvaloniaPropertyChangedEventArgs e)
189189
{
190-
if (e.Property == IsVisibleProperty && sender is Grid { IsVisible: true} grid)
190+
if (e.Property == IsVisibleProperty && sender is Grid { IsVisible: true})
191191
txtSearchCommitsBox.Focus();
192192
}
193193

194-
private void OnSearchKeyDown(object sender, KeyEventArgs e)
194+
private void OnSearchKeyDown(object _, KeyEventArgs e)
195195
{
196196
if (e.Key == Key.Enter)
197197
{
@@ -204,55 +204,33 @@ private void OnSearchKeyDown(object sender, KeyEventArgs e)
204204

205205
private void OnSearchResultDataGridSelectionChanged(object sender, SelectionChangedEventArgs e)
206206
{
207-
if (sender is DataGrid { SelectedItem: not null } grid && DataContext is ViewModels.Repository repo)
207+
if (sender is DataGrid { SelectedItem: Models.Commit commit } && DataContext is ViewModels.Repository repo)
208208
{
209-
var commit = grid.SelectedItem as Models.Commit;
210209
repo.NavigateToCommit(commit.SHA);
211210
}
212211

213212
e.Handled = true;
214213
}
215214

216-
private void OnLocalBranchTreeSelectionChanged(object sender, RoutedEventArgs e)
215+
private void OnLocalBranchTreeSelectionChanged(object _1, RoutedEventArgs _2)
217216
{
218-
if (sender is BranchTree tree && DataContext is ViewModels.Repository repo)
219-
{
220-
var selected = tree.BranchesPresenter.SelectedItems;
221-
if (selected == null || selected.Count == 0)
222-
return;
223-
224-
remoteBranchTree.UnselectAll();
225-
tagsList.SelectedItem = null;
226-
227-
if (selected.Count == 1 && selected[0] is ViewModels.BranchTreeNode { Backend: Models.Branch branch })
228-
repo.NavigateToCommit(branch.Head);
229-
}
217+
remoteBranchTree.UnselectAll();
218+
tagsList.SelectedItem = null;
230219
}
231220

232-
private void OnRemoteBranchTreeSelectionChanged(object sender, RoutedEventArgs e)
221+
private void OnRemoteBranchTreeSelectionChanged(object _1, RoutedEventArgs _2)
233222
{
234-
if (sender is BranchTree tree && DataContext is ViewModels.Repository repo)
235-
{
236-
var selected = tree.BranchesPresenter.SelectedItems;
237-
if (selected == null || selected.Count == 0)
238-
return;
239-
240-
localBranchTree.UnselectAll();
241-
tagsList.SelectedItem = null;
242-
243-
if (selected.Count == 1 && selected[0] is ViewModels.BranchTreeNode { Backend: Models.Branch branch })
244-
repo.NavigateToCommit(branch.Head);
245-
}
223+
localBranchTree.UnselectAll();
224+
tagsList.SelectedItem = null;
246225
}
247226

248-
private void OnTagDataGridSelectionChanged(object sender, SelectionChangedEventArgs e)
227+
private void OnTagDataGridSelectionChanged(object sender, SelectionChangedEventArgs _)
249228
{
250-
if (sender is DataGrid { SelectedItem: not null } grid)
229+
if (sender is DataGrid { SelectedItem: Models.Tag tag })
251230
{
252231
localBranchTree.UnselectAll();
253232
remoteBranchTree.UnselectAll();
254233

255-
var tag = grid.SelectedItem as Models.Tag;
256234
if (DataContext is ViewModels.Repository repo)
257235
repo.NavigateToCommit(tag.SHA);
258236
}
@@ -272,18 +250,9 @@ private void OnTagContextRequested(object sender, ContextRequestedEventArgs e)
272250

273251
private void OnToggleTagFilter(object sender, RoutedEventArgs e)
274252
{
275-
if (sender is ToggleButton toggle)
253+
if (sender is ToggleButton { DataContext: Models.Tag tag } toggle && DataContext is ViewModels.Repository repo)
276254
{
277-
var filter = string.Empty;
278-
if (toggle.DataContext is Models.Tag tag)
279-
{
280-
filter = tag.Name;
281-
}
282-
283-
if (!string.IsNullOrEmpty(filter) && DataContext is ViewModels.Repository repo)
284-
{
285-
repo.UpdateFilter(filter, toggle.IsChecked == true);
286-
}
255+
repo.UpdateFilter(tag.Name, toggle.IsChecked == true);
287256
}
288257

289258
e.Handled = true;
@@ -335,7 +304,7 @@ private void OnDoubleTappedWorktree(object sender, TappedEventArgs e)
335304
e.Handled = true;
336305
}
337306

338-
private void OnLeftSidebarDataGridPropertyChanged(object sender, AvaloniaPropertyChangedEventArgs e)
307+
private void OnLeftSidebarDataGridPropertyChanged(object _, AvaloniaPropertyChangedEventArgs e)
339308
{
340309
if (e.Property == DataGrid.ItemsSourceProperty || e.Property == DataGrid.IsVisibleProperty)
341310
{

0 commit comments

Comments
 (0)