Add patterned rename and Move to, and keep settings, selection, and queue speed from resetting.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -12,16 +12,46 @@ public partial class SettingsWindow : Window
|
||||
private readonly SettingsDraft _draft;
|
||||
private readonly string _originalTheme;
|
||||
|
||||
public SettingsDraft Draft => _draft;
|
||||
|
||||
public SettingsWindow(MainViewModel vm)
|
||||
{
|
||||
InitializeComponent();
|
||||
_vm = vm;
|
||||
var prefs = vm.CurrentPreferences();
|
||||
_originalTheme = prefs.Theme;
|
||||
_draft = SettingsDraft.From(prefs);
|
||||
_draft.PropertyChanged += OnDraftChanged;
|
||||
DataContext = new SettingsShell(_draft, SettingsCatalog.Create());
|
||||
Closed += (_, _) => _draft.PropertyChanged -= OnDraftChanged;
|
||||
var shell = new SettingsShell(_draft, SettingsCatalog.Create());
|
||||
DataContext = shell;
|
||||
InitializeComponent();
|
||||
shell.PropertyChanged += OnShellChanged;
|
||||
ShowSelectedPage();
|
||||
Closed += (_, _) =>
|
||||
{
|
||||
_draft.PropertyChanged -= OnDraftChanged;
|
||||
shell.PropertyChanged -= OnShellChanged;
|
||||
};
|
||||
}
|
||||
|
||||
private void OnShellChanged(object? sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName is nameof(SettingsShell.SelectedCategory) or null)
|
||||
{
|
||||
ShowSelectedPage();
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowSelectedPage()
|
||||
{
|
||||
PageHost.Children.Clear();
|
||||
if (DataContext is not SettingsShell shell)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var page = shell.SelectedCategory.Page;
|
||||
PageHost.Children.Add(page);
|
||||
page.DataContext = _draft;
|
||||
}
|
||||
|
||||
private void OnDraftChanged(object? sender, PropertyChangedEventArgs e)
|
||||
|
||||
Reference in New Issue
Block a user