mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2026-04-04 11:33:08 -06:00
Fix settings getting corrupted
This commit is contained in:
parent
80e9ad75ba
commit
ed33d19bc0
|
|
@ -20,6 +20,8 @@ namespace DiscordChatExporter.Gui;
|
||||||
public class App : Application, IDisposable
|
public class App : Application, IDisposable
|
||||||
{
|
{
|
||||||
private readonly ServiceProvider _services;
|
private readonly ServiceProvider _services;
|
||||||
|
private readonly SettingsService _settingsService;
|
||||||
|
|
||||||
private readonly DisposableCollector _eventRoot = new();
|
private readonly DisposableCollector _eventRoot = new();
|
||||||
|
|
||||||
private bool _isDisposed;
|
private bool _isDisposed;
|
||||||
|
|
@ -49,12 +51,11 @@ public class App : Application, IDisposable
|
||||||
services.AddTransient<SettingsViewModel>();
|
services.AddTransient<SettingsViewModel>();
|
||||||
|
|
||||||
_services = services.BuildServiceProvider(true);
|
_services = services.BuildServiceProvider(true);
|
||||||
|
_settingsService = _services.GetRequiredService<SettingsService>();
|
||||||
|
|
||||||
// Re-initialize the theme when the user changes it
|
// Re-initialize the theme when the user changes it
|
||||||
_eventRoot.Add(
|
_eventRoot.Add(
|
||||||
_services
|
_settingsService.WatchProperty(
|
||||||
.GetRequiredService<SettingsService>()
|
|
||||||
.WatchProperty(
|
|
||||||
o => o.Theme,
|
o => o.Theme,
|
||||||
v =>
|
v =>
|
||||||
{
|
{
|
||||||
|
|
@ -95,6 +96,13 @@ public class App : Application, IDisposable
|
||||||
|
|
||||||
public override void OnFrameworkInitializationCompleted()
|
public override void OnFrameworkInitializationCompleted()
|
||||||
{
|
{
|
||||||
|
// Initialize the default theme, before a custom one (if any) is applied by loading settings
|
||||||
|
InitializeTheme();
|
||||||
|
|
||||||
|
// Load settings
|
||||||
|
_settingsService.Load();
|
||||||
|
|
||||||
|
// Initialize and configure the main window
|
||||||
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
||||||
{
|
{
|
||||||
var viewManager = _services.GetRequiredService<ViewManager>();
|
var viewManager = _services.GetRequiredService<ViewManager>();
|
||||||
|
|
@ -110,12 +118,6 @@ public class App : Application, IDisposable
|
||||||
}
|
}
|
||||||
|
|
||||||
base.OnFrameworkInitializationCompleted();
|
base.OnFrameworkInitializationCompleted();
|
||||||
|
|
||||||
// Set up custom theme colors
|
|
||||||
InitializeTheme();
|
|
||||||
|
|
||||||
// Load settings
|
|
||||||
_services.GetRequiredService<SettingsService>().Load();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Application_OnActualThemeVariantChanged(object? sender, EventArgs args) =>
|
private void Application_OnActualThemeVariantChanged(object? sender, EventArgs args) =>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue