Implemented "System" option for theme.
This commit is contained in:
parent
71b8e9e51c
commit
63e28b13c1
@ -90,14 +90,10 @@ namespace LibationAvalonia
|
|||||||
|
|
||||||
if (setupDialog.Config.LibationSettingsAreValid)
|
if (setupDialog.Config.LibationSettingsAreValid)
|
||||||
{
|
{
|
||||||
var theme
|
string theme = setupDialog.SelectedTheme.Content as string;
|
||||||
= setupDialog.SelectedTheme.Content is nameof(ThemeVariant.Dark)
|
|
||||||
? nameof(ThemeVariant.Dark)
|
|
||||||
: nameof(ThemeVariant.Light);
|
|
||||||
|
|
||||||
setupDialog.Config.SetString(theme, nameof(ThemeVariant));
|
setupDialog.Config.SetString(theme, nameof(ThemeVariant));
|
||||||
|
|
||||||
|
|
||||||
await RunMigrationsAsync(setupDialog.Config);
|
await RunMigrationsAsync(setupDialog.Config);
|
||||||
LibraryTask = Task.Run(() => DbContexts.GetLibrary_Flat_NoTracking(includeParents: true));
|
LibraryTask = Task.Run(() => DbContexts.GetLibrary_Flat_NoTracking(includeParents: true));
|
||||||
AudibleUtilities.AudibleApiStorage.EnsureAccountsSettingsFileExists();
|
AudibleUtilities.AudibleApiStorage.EnsureAccountsSettingsFileExists();
|
||||||
@ -208,9 +204,15 @@ namespace LibationAvalonia
|
|||||||
|
|
||||||
private static void ShowMainWindow(IClassicDesktopStyleApplicationLifetime desktop)
|
private static void ShowMainWindow(IClassicDesktopStyleApplicationLifetime desktop)
|
||||||
{
|
{
|
||||||
Current.RequestedThemeVariant = Configuration.Instance.GetString(propertyName: nameof(ThemeVariant)) is "Dark" ? ThemeVariant.Dark : ThemeVariant.Light;
|
Current.RequestedThemeVariant = Configuration.Instance.GetString(propertyName: nameof(ThemeVariant)) switch
|
||||||
|
{
|
||||||
|
nameof(ThemeVariant.Dark) => ThemeVariant.Dark,
|
||||||
|
nameof(ThemeVariant.Light) => ThemeVariant.Light,
|
||||||
|
// "System"
|
||||||
|
_ => ThemeVariant.Default
|
||||||
|
};
|
||||||
|
|
||||||
//Reload colors for current theme
|
//Reload colors for current theme
|
||||||
LoadStyles();
|
LoadStyles();
|
||||||
var mainWindow = new MainWindow();
|
var mainWindow = new MainWindow();
|
||||||
desktop.MainWindow = MainWindow = mainWindow;
|
desktop.MainWindow = MainWindow = mainWindow;
|
||||||
|
|||||||
@ -2,12 +2,14 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:dialogs="clr-namespace:LibationAvalonia.Dialogs"
|
||||||
mc:Ignorable="d" d:DesignWidth="500" d:DesignHeight="350"
|
mc:Ignorable="d" d:DesignWidth="500" d:DesignHeight="350"
|
||||||
x:Class="LibationAvalonia.Dialogs.SetupDialog"
|
x:Class="LibationAvalonia.Dialogs.SetupDialog"
|
||||||
WindowStartupLocation="CenterScreen"
|
WindowStartupLocation="CenterScreen"
|
||||||
Width="500" Height="350"
|
Width="500" Height="350"
|
||||||
Icon="/Assets/libation.ico"
|
Icon="/Assets/libation.ico"
|
||||||
Title="Welcome to Libation">
|
Title="Welcome to Libation"
|
||||||
|
x:DataType="dialogs:SetupDialog">
|
||||||
|
|
||||||
<Grid
|
<Grid
|
||||||
Margin="10"
|
Margin="10"
|
||||||
@ -58,6 +60,7 @@
|
|||||||
SelectedIndex="0"
|
SelectedIndex="0"
|
||||||
SelectedItem="{Binding SelectedTheme, Mode=OneWayToSource}">
|
SelectedItem="{Binding SelectedTheme, Mode=OneWayToSource}">
|
||||||
<ComboBox.Items>
|
<ComboBox.Items>
|
||||||
|
<ComboBoxItem Content="System" />
|
||||||
<ComboBoxItem Content="Light" />
|
<ComboBoxItem Content="Light" />
|
||||||
<ComboBoxItem Content="Dark" />
|
<ComboBoxItem Content="Dark" />
|
||||||
</ComboBox.Items>
|
</ComboBox.Items>
|
||||||
|
|||||||
@ -31,10 +31,10 @@ namespace LibationAvalonia.ViewModels.Settings
|
|||||||
LoggingLevel = config.LogLevel;
|
LoggingLevel = config.LogLevel;
|
||||||
GridScaleFactor = scaleFactorToLinearRange(config.GridScaleFactor);
|
GridScaleFactor = scaleFactorToLinearRange(config.GridScaleFactor);
|
||||||
GridFontScaleFactor = scaleFactorToLinearRange(config.GridFontScaleFactor);
|
GridFontScaleFactor = scaleFactorToLinearRange(config.GridFontScaleFactor);
|
||||||
ThemeVariant = initialThemeVariant
|
|
||||||
= Configuration.Instance.GetString(propertyName: nameof(ThemeVariant)) is nameof(Avalonia.Styling.ThemeVariant.Dark)
|
ThemeVariant = initialThemeVariant = Configuration.Instance.GetString(propertyName: nameof(ThemeVariant));
|
||||||
? nameof(Avalonia.Styling.ThemeVariant.Dark)
|
if (string.IsNullOrWhiteSpace(initialThemeVariant))
|
||||||
: nameof(Avalonia.Styling.ThemeVariant.Light);
|
ThemeVariant = initialThemeVariant = "System";
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SaveSettings(Configuration config)
|
public void SaveSettings(Configuration config)
|
||||||
@ -83,7 +83,7 @@ namespace LibationAvalonia.ViewModels.Settings
|
|||||||
public string GridScaleFactorText { get; } = Configuration.GetDescription(nameof(Configuration.GridScaleFactor));
|
public string GridScaleFactorText { get; } = Configuration.GetDescription(nameof(Configuration.GridScaleFactor));
|
||||||
public string GridFontScaleFactorText { get; } = Configuration.GetDescription(nameof(Configuration.GridFontScaleFactor));
|
public string GridFontScaleFactorText { get; } = Configuration.GetDescription(nameof(Configuration.GridFontScaleFactor));
|
||||||
public string BetaOptInText { get; } = Configuration.GetDescription(nameof(Configuration.BetaOptIn));
|
public string BetaOptInText { get; } = Configuration.GetDescription(nameof(Configuration.BetaOptIn));
|
||||||
public string[] Themes { get; } = { nameof(Avalonia.Styling.ThemeVariant.Light), nameof(Avalonia.Styling.ThemeVariant.Dark) };
|
public string[] Themes { get; } = { "System", nameof(Avalonia.Styling.ThemeVariant.Light), nameof(Avalonia.Styling.ThemeVariant.Dark) };
|
||||||
|
|
||||||
public string BooksDirectory { get; set; }
|
public string BooksDirectory { get; set; }
|
||||||
public bool SavePodcastsToParentFolder { get; set; }
|
public bool SavePodcastsToParentFolder { get; set; }
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user