Files
Vision/VisionAsist/ViewModels/SettingsViewModel.cs
Egor 00d4461a92
Some checks failed
Mirror to Gitea / git-sync (push) Has been cancelled
settings
2026-03-28 08:57:29 +02:00

77 lines
1.7 KiB
C#

using System;
using System.Reflection;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using System.Collections.ObjectModel;
using VisionAsist.Models;
using VisionAsist.SDK;
using System.IO;
using System.Linq;
namespace VisionAsist.ViewModels;
public class ModuleItem
{
public string Name { get; set; }
public IRelayCommand SettingsCommand { get; set; }
}
public class SettingsViewModel : ViewModelBase
{
public string OllamaBaseUrl
{
get => SettingsManager.Current.OllamaBaseUrl;
set
{
SettingsManager.Current.OllamaBaseUrl = value;
OnPropertyChanged();
}
}
public string OllamaModel
{
get => SettingsManager.Current.OllamaModel;
set
{
SettingsManager.Current.OllamaModel = value;
OnPropertyChanged();
}
}
public IRelayCommand SaveCommand { get; }
public ObservableCollection<ModuleItem> Modules { get; } = new();
public SettingsViewModel()
{
SaveCommand = new RelayCommand(SettingsManager.Save);
foreach (var module in Core.ModuleList)
{
AddModule(module.Name);
}
}
public void AddModule(string name)
{
Modules.Add(new ModuleItem
{
Name = name,
SettingsCommand = new RelayCommand(() => OpenSettings(name))
});
}
private void OpenSettings(string moduleName)
{
var module = Core.ModuleList.FirstOrDefault(m => m.Name == moduleName);
if (module != null)
{
module.Module.Settings(new object[] { this });
}
}
}