mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-05-22 12:45:00 +00:00
61 lines
1.9 KiB
C#
61 lines
1.9 KiB
C#
using Avalonia.Controls;
|
|
using Avalonia.Input;
|
|
using Avalonia.Interactivity;
|
|
using Avalonia.Platform.Storage;
|
|
|
|
namespace SourceGit.Views
|
|
{
|
|
public partial class FileHistories : ChromelessWindow
|
|
{
|
|
public FileHistories()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void OnPressCommitSHA(object sender, PointerPressedEventArgs e)
|
|
{
|
|
if (sender is TextBlock { DataContext: Models.Commit commit } &&
|
|
DataContext is ViewModels.FileHistories vm)
|
|
{
|
|
vm.NavigateToCommit(commit);
|
|
}
|
|
|
|
e.Handled = true;
|
|
}
|
|
|
|
private void OnResetToSelectedRevision(object sender, RoutedEventArgs e)
|
|
{
|
|
if (sender is Button { DataContext: ViewModels.FileHistoriesSingleRevision single })
|
|
{
|
|
single.ResetToSelectedRevision();
|
|
NotifyDonePanel.IsVisible = true;
|
|
}
|
|
|
|
e.Handled = true;
|
|
}
|
|
|
|
private void OnCloseNotifyPanel(object _, PointerPressedEventArgs e)
|
|
{
|
|
NotifyDonePanel.IsVisible = false;
|
|
e.Handled = true;
|
|
}
|
|
|
|
private async void OnSaveAsPatch(object sender, RoutedEventArgs e)
|
|
{
|
|
if (sender is Button { DataContext: ViewModels.FileHistoriesCompareRevisions compare })
|
|
{
|
|
var options = new FilePickerSaveOptions();
|
|
options.Title = App.Text("FileCM.SaveAsPatch");
|
|
options.DefaultExtension = ".patch";
|
|
options.FileTypeChoices = [new FilePickerFileType("Patch File") { Patterns = ["*.patch"] }];
|
|
|
|
var storageFile = await this.StorageProvider.SaveFilePickerAsync(options);
|
|
if (storageFile != null)
|
|
await compare.SaveAsPatch(storageFile.Path.LocalPath);
|
|
|
|
NotifyDonePanel.IsVisible = true;
|
|
e.Handled = true;
|
|
}
|
|
}
|
|
}
|
|
}
|