sourcegit/src/Views/StandaloneCommitMessageEditor.axaml.cs

55 lines
1.4 KiB
C#
Raw Normal View History

using System.IO;
2024-07-14 00:55:15 -07:00
using Avalonia.Input;
using Avalonia.Interactivity;
namespace SourceGit.Views
{
2024-07-14 00:55:15 -07:00
public partial class StandaloneCommitMessageEditor : ChromelessWindow
{
2024-07-14 00:55:15 -07:00
public StandaloneCommitMessageEditor()
{
2024-07-14 00:55:15 -07:00
_file = string.Empty;
DataContext = this;
InitializeComponent();
}
2024-07-14 00:55:15 -07:00
public StandaloneCommitMessageEditor(string file)
{
_file = file;
DataContext = this;
InitializeComponent();
var content = File.ReadAllText(file).ReplaceLineEndings("\n");
var firstLineEnd = content.IndexOf('\n');
if (firstLineEnd == -1)
{
Editor.SubjectEditor.Text = content;
}
else
{
Editor.SubjectEditor.Text = content.Substring(0, firstLineEnd);
Editor.DescriptionEditor.Text = content.Substring(firstLineEnd + 1);
}
}
2024-07-14 00:55:15 -07:00
private void BeginMoveWindow(object _, PointerPressedEventArgs e)
{
BeginMoveDrag(e);
}
2024-07-14 00:55:15 -07:00
private void CloseWindow(object _1, RoutedEventArgs _2)
{
2024-07-14 18:54:46 -07:00
App.Quit(-1);
}
2024-07-14 00:55:15 -07:00
private void SaveAndClose(object _1, RoutedEventArgs _2)
{
File.WriteAllText(_file, Editor.Text);
2024-07-14 18:54:46 -07:00
App.Quit(0);
}
2024-07-14 00:55:15 -07:00
private readonly string _file;
}
}