sourcegit/src/Views/FileHistories.axaml.cs
leo 12597fd3e3
code_style: run dotnet format
Signed-off-by: leo <longshuang@msn.cn>
2025-02-07 12:06:29 +08:00

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;
}
}
}
}