settings for avalonia

libcamera bugfix
This commit is contained in:
EugeneTes
2026-04-01 14:05:37 +02:00
parent 1032a5a28c
commit bb861834fd
26 changed files with 1139 additions and 59 deletions

View File

@@ -8,6 +8,8 @@ using Avalonia.Interactivity;
using Avalonia.Media;
using Avalonia.Threading;
using VisionBuilder.UI.Avalonia;
using VisionBuilder.UI.Common;
using VisionBuilder.UI.Common.Services;
using VisionBuilder.UI.Common.ViewModel;
using VisionBuilder.UI.Common.ViewModel.Classes;
@@ -17,12 +19,17 @@ public partial class MainWindow : Window
{
private readonly MainWindowVM _mainWindowVm;
private readonly AvaloniaUISettings _avaloniaUiSettings;
private readonly UIConfiguration _uiConfiguration;
private readonly IPasswordInputService _passwordInputService;
private readonly Dictionary<string, Control> _dynamicButtonControls = new();
public MainWindow(MainWindowVM mainWindowVm, AvaloniaUISettings avaloniaUiSettings)
public MainWindow(MainWindowVM mainWindowVm, AvaloniaUISettings avaloniaUiSettings,
UIConfiguration uiConfiguration, IPasswordInputService passwordInputService)
{
_mainWindowVm = mainWindowVm;
_avaloniaUiSettings = avaloniaUiSettings;
_uiConfiguration = uiConfiguration;
_passwordInputService = passwordInputService;
InitializeComponent();
@@ -30,6 +37,7 @@ public partial class MainWindow : Window
SingleCameraView.SetViewModel(_mainWindowVm.SingleCameraVms[0]);
BtnSettings.Click += BtnSettings_Click;
BtnMinimize.Click += BtnMinimize_Click;
BtnExit.Click += BtnExit_Click;
@@ -80,6 +88,17 @@ public partial class MainWindow : Window
}
}
private async void BtnSettings_Click(object? sender, RoutedEventArgs e)
{
if (_uiConfiguration.ProtectSettingsWithPassword)
{
var passwordOk = await _passwordInputService.GetPasswordAsync() == _uiConfiguration.AdminPassword;
if (!passwordOk)
return;
}
_mainWindowVm.SettingsCommand.Execute(null);
}
private void BtnMinimize_Click(object? sender, RoutedEventArgs e)
{
WindowState = WindowState.Minimized;