mirror of
https://github.com/sourcegit-scm/sourcegit.git
synced 2024-12-25 21:07:20 -08:00
50 lines
1.8 KiB
C#
50 lines
1.8 KiB
C#
|
using Avalonia.Controls;
|
||
|
using Avalonia.Input;
|
||
|
|
||
|
namespace SourceGit.Views {
|
||
|
public partial class RevisionCompare : UserControl {
|
||
|
public RevisionCompare() {
|
||
|
InitializeComponent();
|
||
|
}
|
||
|
|
||
|
private void OnDataGridSelectionChanged(object sender, SelectionChangedEventArgs e) {
|
||
|
if (sender is DataGrid datagrid && datagrid.IsVisible) {
|
||
|
datagrid.ScrollIntoView(datagrid.SelectedItem, null);
|
||
|
}
|
||
|
e.Handled = true;
|
||
|
}
|
||
|
|
||
|
private void OnDataGridContextRequested(object sender, ContextRequestedEventArgs e) {
|
||
|
if (sender is DataGrid datagrid && datagrid.SelectedItem != null) {
|
||
|
var compare = DataContext as ViewModels.RevisionCompare;
|
||
|
var menu = compare.CreateChangeContextMenu(datagrid.SelectedItem as Models.Change);
|
||
|
menu.Open(datagrid);
|
||
|
}
|
||
|
|
||
|
e.Handled = true;
|
||
|
}
|
||
|
|
||
|
private void OnTreeViewContextRequested(object sender, ContextRequestedEventArgs e) {
|
||
|
if (sender is TreeView view && view.SelectedItem != null) {
|
||
|
var compare = DataContext as ViewModels.RevisionCompare;
|
||
|
var node = view.SelectedItem as ViewModels.FileTreeNode;
|
||
|
if (node != null && !node.IsFolder) {
|
||
|
var menu = compare.CreateChangeContextMenu(node.Backend as Models.Change);
|
||
|
menu.Open(view);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
e.Handled = true;
|
||
|
}
|
||
|
|
||
|
private void OnPressedSHA(object sender, PointerPressedEventArgs e) {
|
||
|
if (sender is TextBlock block) {
|
||
|
var compare = DataContext as ViewModels.RevisionCompare;
|
||
|
compare.NavigateTo(block.Text);
|
||
|
}
|
||
|
|
||
|
e.Handled = true;
|
||
|
}
|
||
|
}
|
||
|
}
|