mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-05-22 04:34:59 +00:00
optimize<*>: add a static method CreateMenuIcon to App. Restore working copy changes' selection state after refreshed
This commit is contained in:
parent
9c3294c285
commit
2aacec75b4
7 changed files with 217 additions and 292 deletions
|
@ -19,132 +19,6 @@ namespace SourceGit.Views {
|
|||
GC.Collect();
|
||||
}
|
||||
|
||||
private void OnUnstagedListSelectionChanged(object sender, SelectionChangedEventArgs e) {
|
||||
var vm = DataContext as ViewModels.WorkingCopy;
|
||||
if (vm == null) return;
|
||||
|
||||
var datagrid = sender as DataGrid;
|
||||
if (datagrid.SelectedItems.Count == 0) {
|
||||
if (stagedList.SelectedItem == null &&
|
||||
stagedGrid.SelectedItem == null &&
|
||||
stagedTree.SelectedItem == null) {
|
||||
vm.SetDetail(null, true);
|
||||
}
|
||||
|
||||
e.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
stagedList.SelectedItems.Clear();
|
||||
stagedGrid.SelectedItems.Clear();
|
||||
stagedTree.SelectedItems.Clear();
|
||||
|
||||
if (datagrid.SelectedItems.Count == 1) {
|
||||
vm.SetDetail(datagrid.SelectedItem as Models.Change, true);
|
||||
} else {
|
||||
vm.SetDetail(null, true);
|
||||
}
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
private void OnUnstagedTreeViewSelectionChanged(object sender, SelectionChangedEventArgs e) {
|
||||
var vm = DataContext as ViewModels.WorkingCopy;
|
||||
if (vm == null) return;
|
||||
|
||||
var tree = sender as TreeView;
|
||||
if (tree.SelectedItems.Count == 0) {
|
||||
if (stagedList.SelectedItem == null &&
|
||||
stagedGrid.SelectedItem == null &&
|
||||
stagedTree.SelectedItem == null) {
|
||||
vm.SetDetail(null, true);
|
||||
}
|
||||
|
||||
e.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
stagedList.SelectedItems.Clear();
|
||||
stagedGrid.SelectedItems.Clear();
|
||||
stagedTree.SelectedItems.Clear();
|
||||
|
||||
if (tree.SelectedItems.Count == 1) {
|
||||
var node = tree.SelectedItem as ViewModels.FileTreeNode;
|
||||
if (node != null && !node.IsFolder) {
|
||||
vm.SetDetail(node.Backend as Models.Change, true);
|
||||
} else {
|
||||
vm.SetDetail(null, true);
|
||||
}
|
||||
} else {
|
||||
vm.SetDetail(null, true);
|
||||
}
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
private void OnStagedListSelectionChanged(object sender, SelectionChangedEventArgs e) {
|
||||
var vm = DataContext as ViewModels.WorkingCopy;
|
||||
if (vm == null) return;
|
||||
|
||||
var datagrid = sender as DataGrid;
|
||||
if (datagrid.SelectedItems.Count == 0) {
|
||||
if (unstagedList.SelectedItem == null &&
|
||||
unstagedGrid.SelectedItem == null &&
|
||||
unstagedTree.SelectedItem == null) {
|
||||
vm.SetDetail(null, false);
|
||||
}
|
||||
|
||||
e.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
unstagedList.SelectedItems.Clear();
|
||||
unstagedGrid.SelectedItems.Clear();
|
||||
unstagedTree.SelectedItems.Clear();
|
||||
|
||||
if (datagrid.SelectedItems.Count == 1) {
|
||||
vm.SetDetail(datagrid.SelectedItem as Models.Change, false);
|
||||
} else {
|
||||
vm.SetDetail(null, false);
|
||||
}
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
private void OnStagedTreeViewSelectionChanged(object sender, SelectionChangedEventArgs e) {
|
||||
var vm = DataContext as ViewModels.WorkingCopy;
|
||||
if (vm == null) return;
|
||||
|
||||
var tree = sender as TreeView;
|
||||
if (tree.SelectedItems.Count == 0) {
|
||||
if (unstagedList.SelectedItem == null &&
|
||||
unstagedGrid.SelectedItem == null &&
|
||||
unstagedTree.SelectedItem == null) {
|
||||
vm.SetDetail(null, false);
|
||||
}
|
||||
|
||||
e.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
unstagedList.SelectedItems.Clear();
|
||||
unstagedGrid.SelectedItems.Clear();
|
||||
unstagedTree.SelectedItems.Clear();
|
||||
|
||||
if (tree.SelectedItems.Count == 1) {
|
||||
var node = tree.SelectedItem as ViewModels.FileTreeNode;
|
||||
if (node != null && !node.IsFolder) {
|
||||
vm.SetDetail(node.Backend as Models.Change, false);
|
||||
} else {
|
||||
vm.SetDetail(null, false);
|
||||
}
|
||||
} else {
|
||||
vm.SetDetail(null, false);
|
||||
}
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
private void ViewAssumeUnchanged(object sender, RoutedEventArgs e) {
|
||||
var repoPage = this.FindAncestorOfType<Repository>();
|
||||
if (repoPage != null) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue