Merge branch 'develop' into feature/async

This commit is contained in:
leo
2025-07-03 19:13:37 +08:00
7 changed files with 23 additions and 45 deletions

View File

@@ -212,7 +212,15 @@ namespace SourceGit.ViewModels
}
}
Dispatcher.UIThread.Post(() => VisibleChanges = visible);
Dispatcher.UIThread.Post(() =>
{
VisibleChanges = visible;
if (VisibleChanges.Count > 0)
SelectedChanges = [VisibleChanges[0]];
else
SelectedChanges = [];
});
});
}

View File

@@ -730,6 +730,8 @@ namespace SourceGit.ViewModels
if (visible.Count == 0)
SelectedChanges = null;
else
SelectedChanges = [VisibleChanges[0]];
});
}
}, token);

View File

@@ -227,7 +227,15 @@ namespace SourceGit.ViewModels
}
}
Dispatcher.UIThread.Invoke(() => VisibleChanges = visible);
Dispatcher.UIThread.Post(() =>
{
VisibleChanges = visible;
if (VisibleChanges.Count > 0)
SelectedChanges = [VisibleChanges[0]];
else
SelectedChanges = [];
});
}
private string GetSHA(object obj)

View File

@@ -128,7 +128,6 @@
<v:ChangeCollectionView ViewMode="{Binding Source={x:Static vm:Preferences.Instance}, Path=CommitChangeViewMode}"
Changes="{Binding VisibleChanges}"
SelectedChanges="{Binding SelectedChanges, Mode=TwoWay}"
AutoSelectFirstChange="True"
ContextRequested="OnChangeContextRequested"/>
</Border>
</Grid>

View File

@@ -87,15 +87,6 @@ namespace SourceGit.Views
set => SetValue(ChangesProperty, value);
}
public static readonly StyledProperty<bool> AutoSelectFirstChangeProperty =
AvaloniaProperty.Register<ChangeCollectionView, bool>(nameof(AutoSelectFirstChange));
public bool AutoSelectFirstChange
{
get => GetValue(AutoSelectFirstChangeProperty);
set => SetValue(AutoSelectFirstChangeProperty, value);
}
public static readonly StyledProperty<List<Models.Change>> SelectedChangesProperty =
AvaloniaProperty.Register<ChangeCollectionView, List<Models.Change>>(nameof(SelectedChanges));
@@ -365,19 +356,7 @@ namespace SourceGit.Views
MakeTreeRows(rows, tree.Tree);
tree.Rows.AddRange(rows);
if (!onlyViewModeChange && AutoSelectFirstChange)
{
foreach (var row in tree.Rows)
{
if (row.Change != null)
{
tree.SelectedRows.Add(row);
SetCurrentValue(SelectedChangesProperty, [row.Change]);
break;
}
}
}
else if (selected.Count > 0)
if (selected.Count > 0)
{
var sets = new HashSet<Models.Change>(selected);
var nodes = new List<ViewModels.ChangeTreeNode>();
@@ -396,16 +375,8 @@ namespace SourceGit.Views
{
var grid = new ViewModels.ChangeCollectionAsGrid();
grid.Changes.AddRange(changes);
if (!onlyViewModeChange && AutoSelectFirstChange)
{
grid.SelectedChanges.Add(changes[0]);
SetCurrentValue(SelectedChangesProperty, [changes[0]]);
}
else if (selected.Count > 0)
{
if (selected.Count > 0)
grid.SelectedChanges.AddRange(selected);
}
Content = grid;
}
@@ -413,16 +384,8 @@ namespace SourceGit.Views
{
var list = new ViewModels.ChangeCollectionAsList();
list.Changes.AddRange(changes);
if (!onlyViewModeChange && AutoSelectFirstChange)
{
list.SelectedChanges.Add(changes[0]);
SetCurrentValue(SelectedChangesProperty, [changes[0]]);
}
else if (selected.Count > 0)
{
if (selected.Count > 0)
list.SelectedChanges.AddRange(selected);
}
Content = list;
}

View File

@@ -50,7 +50,6 @@
ViewMode="{Binding Source={x:Static vm:Preferences.Instance}, Path=CommitChangeViewMode}"
Changes="{Binding VisibleChanges}"
SelectedChanges="{Binding SelectedChanges, Mode=TwoWay}"
AutoSelectFirstChange="True"
ContextRequested="OnChangeContextRequested"/>
</Border>

View File

@@ -99,7 +99,6 @@
<v:ChangeCollectionView ViewMode="{Binding Source={x:Static vm:Preferences.Instance}, Path=CommitChangeViewMode}"
Changes="{Binding VisibleChanges}"
SelectedChanges="{Binding SelectedChanges, Mode=TwoWay}"
AutoSelectFirstChange="True"
ContextRequested="OnChangeContextRequested"/>
</Border>
</Grid>