Flow.Launcher/Flow.Launcher.Avalonia/ViewModel/SettingPages/ProxySettingsViewModel.cs
Hongtao Zhang 0f9b9329dd Add hotkey recorder with manual modifier tracking
- Add HotkeyRecorderDialog with global keyboard hook for capturing hotkeys
- Implement manual modifier state tracking to handle swallowed key events
- Add HotkeyControl button that opens the recorder dialog
- Add CheckAvailability and RemoveToggleHotkey to HotKeyMapper
- Expose GetKeyFromVk helper in GlobalHotkey infrastructure
- Add Settings pages (General, Plugin, Theme, Proxy, About)
- Add PreviewPanel for result previews in main window
- Fix hook reuse issue by clearing callback on close instead of disposing
2026-01-18 02:10:53 -08:00

81 lines
1.8 KiB
C#

using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.DependencyInjection;
using Flow.Launcher.Infrastructure.UserSettings;
using System;
namespace Flow.Launcher.Avalonia.ViewModel.SettingPages;
public partial class ProxySettingsViewModel : ObservableObject
{
private readonly Settings _settings;
public ProxySettingsViewModel()
{
_settings = Ioc.Default.GetRequiredService<Settings>();
}
public bool ProxyEnabled
{
get => _settings.Proxy.Enabled;
set
{
if (_settings.Proxy.Enabled != value)
{
_settings.Proxy.Enabled = value;
OnPropertyChanged();
}
}
}
public string ProxyServer
{
get => _settings.Proxy.Server;
set
{
if (_settings.Proxy.Server != value)
{
_settings.Proxy.Server = value;
OnPropertyChanged();
}
}
}
public int ProxyPort
{
get => _settings.Proxy.Port;
set
{
if (_settings.Proxy.Port != value)
{
_settings.Proxy.Port = value;
OnPropertyChanged();
}
}
}
public string ProxyUserName
{
get => _settings.Proxy.UserName;
set
{
if (_settings.Proxy.UserName != value)
{
_settings.Proxy.UserName = value;
OnPropertyChanged();
}
}
}
public string ProxyPassword
{
get => _settings.Proxy.Password;
set
{
if (_settings.Proxy.Password != value)
{
_settings.Proxy.Password = value;
OnPropertyChanged();
}
}
}
}