sourcegit/src/Views/ViewLogs.axaml.cs
2025-04-17 18:21:55 +08:00

43 lines
1.2 KiB
C#

using Avalonia.Controls;
namespace SourceGit.Views
{
public partial class ViewLogs : ChromelessWindow
{
public ViewLogs()
{
InitializeComponent();
}
private void OnLogContextRequested(object sender, ContextRequestedEventArgs e)
{
if (sender is not Grid { DataContext: ViewModels.CommandLog log } grid || DataContext is not ViewModels.ViewLogs vm)
return;
var copy = new MenuItem();
copy.Header = App.Text("ViewLogs.CopyLog");
copy.Icon = App.CreateMenuIcon("Icons.Copy");
copy.Click += (_, ev) =>
{
App.CopyText(log.Content);
ev.Handled = true;
};
var rm = new MenuItem();
rm.Header = App.Text("ViewLogs.Delete");
rm.Icon = App.CreateMenuIcon("Icons.Clear");
rm.Click += (_, ev) =>
{
vm.Logs.Remove(log);
ev.Handled = true;
};
var menu = new ContextMenu();
menu.Items.Add(copy);
menu.Items.Add(rm);
menu.Open(grid);
e.Handled = true;
}
}
}