|
8 | 8 | using Avalonia.Threading;
|
9 | 9 |
|
10 | 10 | using CommunityToolkit.Mvvm.ComponentModel;
|
11 |
| -using SourceGit.Models; |
12 | 11 |
|
13 | 12 | namespace SourceGit.ViewModels
|
14 | 13 | {
|
@@ -884,7 +883,7 @@ public ContextMenu CreateContextMenuForStagedChanges()
|
884 | 883 | var menu = new ContextMenu();
|
885 | 884 |
|
886 | 885 | var ai = null as MenuItem;
|
887 |
| - var services = Preference.Instance.OpenAIServices; |
| 886 | + var services = GetPreferedOpenAIServices(); |
888 | 887 | if (services.Count > 0)
|
889 | 888 | {
|
890 | 889 | ai = new MenuItem();
|
@@ -1251,7 +1250,7 @@ public ContextMenu CreateContextForOpenAI()
|
1251 | 1250 | return null;
|
1252 | 1251 | }
|
1253 | 1252 |
|
1254 |
| - var services = Preference.Instance.OpenAIServices; |
| 1253 | + var services = GetPreferedOpenAIServices(); |
1255 | 1254 | if (services.Count == 0)
|
1256 | 1255 | {
|
1257 | 1256 | App.RaiseException(_repo.FullPath, "Bad configuration for OpenAI");
|
@@ -1440,6 +1439,25 @@ private bool IsChanged(List<Models.Change> old, List<Models.Change> cur)
|
1440 | 1439 | return false;
|
1441 | 1440 | }
|
1442 | 1441 |
|
| 1442 | + private IList<Models.OpenAIService> GetPreferedOpenAIServices() |
| 1443 | + { |
| 1444 | + var services = Preference.Instance.OpenAIServices; |
| 1445 | + if (services == null || services.Count == 0) |
| 1446 | + return []; |
| 1447 | + |
| 1448 | + if (services.Count == 1) |
| 1449 | + return services; |
| 1450 | + |
| 1451 | + var prefered = _repo.Settings.PreferedOpenAIService; |
| 1452 | + foreach (var service in services) |
| 1453 | + { |
| 1454 | + if (service.Name.Equals(prefered, StringComparison.Ordinal)) |
| 1455 | + return [service]; |
| 1456 | + } |
| 1457 | + |
| 1458 | + return services; |
| 1459 | + } |
| 1460 | + |
1443 | 1461 | private Repository _repo = null;
|
1444 | 1462 | private bool _isLoadingData = false;
|
1445 | 1463 | private bool _isStaging = false;
|
|
0 commit comments