refactor: use List<T> instead of AvaloniaList<T> since it is not used for bindings

Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
leo 2025-03-11 23:01:34 +08:00
parent 64a41dce39
commit f5d6e1264d
No known key found for this signature in database
2 changed files with 20 additions and 22 deletions

View file

@ -6,7 +6,6 @@ using System.Text.Json;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Avalonia.Collections;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Media; using Avalonia.Media;
using Avalonia.Media.Imaging; using Avalonia.Media.Imaging;
@ -1221,23 +1220,26 @@ namespace SourceGit.ViewModels
App.GetLauncer()?.OpenRepositoryInTab(node, null); App.GetLauncer()?.OpenRepositoryInTab(node, null);
} }
public AvaloniaList<Models.OpenAIService> GetPreferedOpenAIServices() public List<Models.OpenAIService> GetPreferedOpenAIServices()
{ {
var services = Preferences.Instance.OpenAIServices; var services = Preferences.Instance.OpenAIServices;
if (services == null || services.Count == 0) if (services == null || services.Count == 0)
return []; return [];
if (services.Count == 1) if (services.Count == 1)
return services; return [services[0]];
var prefered = _settings.PreferedOpenAIService; var prefered = _settings.PreferedOpenAIService;
var all = new List<Models.OpenAIService>();
foreach (var service in services) foreach (var service in services)
{ {
if (service.Name.Equals(prefered, StringComparison.Ordinal)) if (service.Name.Equals(prefered, StringComparison.Ordinal))
return [service]; return [service];
all.Add(service);
} }
return services; return all;
} }
public ContextMenu CreateContextMenuForGitFlow() public ContextMenu CreateContextMenuForGitFlow()

View file

@ -1452,28 +1452,24 @@ namespace SourceGit.ViewModels
App.OpenDialog(dialog); App.OpenDialog(dialog);
return null; return null;
} }
else
var menu = new ContextMenu() { Placement = PlacementMode.TopEdgeAlignedLeft };
foreach (var service in services)
{ {
var menu = new ContextMenu() { Placement = PlacementMode.TopEdgeAlignedLeft }; var dup = service;
var item = new MenuItem();
foreach (var service in services) item.Header = service.Name;
item.Click += (_, e) =>
{ {
var dup = service; var dialog = new Views.AIAssistant(dup, _repo.FullPath, this, _staged);
App.OpenDialog(dialog);
e.Handled = true;
};
var item = new MenuItem(); menu.Items.Add(item);
item.Header = service.Name;
item.Click += (_, e) =>
{
var dialog = new Views.AIAssistant(dup, _repo.FullPath, this, _staged);
App.OpenDialog(dialog);
e.Handled = true;
};
menu.Items.Add(item);
}
return menu;
} }
return menu;
} }
private List<Models.Change> GetVisibleUnstagedChanges(List<Models.Change> unstaged) private List<Models.Change> GetVisibleUnstagedChanges(List<Models.Change> unstaged)