feature: auto focus the next change after stage/unstage selected changes (#464)

This commit is contained in:
leo 2024-09-12 16:33:56 +08:00
parent dcddc5a2f2
commit ea3a6a4755
No known key found for this signature in database
4 changed files with 122 additions and 22 deletions

View file

@ -46,7 +46,9 @@ namespace SourceGit.Views
{
if (DataContext is ViewModels.WorkingCopy vm)
{
vm.StageSelected();
var next = UnstagedChangesView.GetNextChangeWithoutSelection();
vm.StageSelected(next);
UnstagedChangesView.Focus();
e.Handled = true;
}
}
@ -55,7 +57,9 @@ namespace SourceGit.Views
{
if (DataContext is ViewModels.WorkingCopy vm)
{
vm.UnstageSelected();
var next = StagedChangesView.GetNextChangeWithoutSelection();
vm.UnstageSelected(next);
StagedChangesView.Focus();
e.Handled = true;
}
}
@ -66,7 +70,9 @@ namespace SourceGit.Views
{
if (e.Key is Key.Space or Key.Enter)
{
vm.StageSelected();
var next = UnstagedChangesView.GetNextChangeWithoutSelection();
vm.StageSelected(next);
UnstagedChangesView.Focus();
e.Handled = true;
return;
}
@ -84,11 +90,37 @@ namespace SourceGit.Views
{
if (DataContext is ViewModels.WorkingCopy vm && e.Key is Key.Space or Key.Enter)
{
vm.UnstageSelected();
var next = StagedChangesView.GetNextChangeWithoutSelection();
vm.UnstageSelected(next);
StagedChangesView.Focus();
e.Handled = true;
}
}
private void OnStageSelectedButtonClicked(object _, RoutedEventArgs e)
{
if (DataContext is ViewModels.WorkingCopy vm)
{
var next = UnstagedChangesView.GetNextChangeWithoutSelection();
vm.StageSelected(next);
UnstagedChangesView.Focus();
}
e.Handled = true;
}
private void OnUnstageSelectedButtonClicked(object _, RoutedEventArgs e)
{
if (DataContext is ViewModels.WorkingCopy vm)
{
var next = StagedChangesView.GetNextChangeWithoutSelection();
vm.UnstageSelected(next);
StagedChangesView.Focus();
}
e.Handled = true;
}
private void OnOpenAIAssist(object _, RoutedEventArgs e)
{
if (!Models.OpenAI.IsValid)