Load settings.

This commit is contained in:
2020-08-22 02:23:51 +01:00
parent 6843567649
commit f244a8bd1a
3 changed files with 45 additions and 1 deletions

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="Models\" />
@@ -19,4 +19,7 @@
<PackageReference Include="Avalonia.ReactiveUI" Version="0.10.0-preview3" />
<PackageReference Include="Svg.Skia.Avalonia" Version="0.10.0-preview3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\RomRepoMgr.Settings\RomRepoMgr.Settings.csproj" />
</ItemGroup>
</Project>

View File

@@ -23,9 +23,12 @@
// Copyright © 2020 Natalia Portillo
*******************************************************************************/
using System;
using System.Reactive;
using System.Threading.Tasks;
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Threading;
using ReactiveUI;
namespace RomRepoMgr.ViewModels
@@ -169,5 +172,35 @@ namespace RomRepoMgr.ViewModels
MigratingDatabaseText = "Migrating database...";
ExitButtonText = "Exit";
}
internal void OnOpened() => Dispatcher.UIThread.Post(LoadSettings);
void LoadSettings() => Task.Run(() =>
{
try
{
Settings.Settings.LoadSettings();
}
catch(Exception e)
{
// TODO: Log error
Dispatcher.UIThread.Post(FailedLoadingSettings);
}
Dispatcher.UIThread.Post(LoadDatabase);
});
void FailedLoadingSettings()
{
LoadingSettingsUnknown = false;
LoadingSettingsError = true;
ExitVisible = true;
}
void LoadDatabase()
{
LoadingSettingsUnknown = false;
LoadingSettingsOk = true;
}
}
}

View File

@@ -23,8 +23,10 @@
// Copyright © 2020 Natalia Portillo
*******************************************************************************/
using System;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using RomRepoMgr.ViewModels;
namespace RomRepoMgr.Views
{
@@ -33,5 +35,11 @@ namespace RomRepoMgr.Views
public SplashWindow() => InitializeComponent();
void InitializeComponent() => AvaloniaXamlLoader.Load(this);
protected override void OnOpened(EventArgs e)
{
base.OnOpened(e);
(DataContext as SplashWindowViewModel)?.OnOpened();
}
}
}