Files
Libation/Source/LibationAvalonia/ViewModels/MainVM.Settings.cs
T
Mbucari 70909a40dc Update Dependencies
Replace obsolete Avalonia.Diagnostics package with AvaloniaUI.DiagnosticsSupport.

Update Avalonia to 12.1, applying necessary fixes.
2026-09-05 23:23:00 -06:00

62 lines
2.0 KiB
C#

using Avalonia.Controls;
using LibationFileManager;
using LibationUiBase.Forms;
using ReactiveUI;
using System;
using System.Threading.Tasks;
using System.Windows.Input;
namespace LibationAvalonia.ViewModels;
partial class MainVM
{
public string FindBetterQualityBooksTip => Configuration.GetHelpText("FindBetterQualityBooks");
public bool MenuBarVisible { get => field; set => this.RaiseAndSetIfChanged(ref field, value); } = !Configuration.IsMacOs;
public ICommand LaunchHangover { get; private set; } = null!;
private void Configure_Settings()
{
LaunchHangover = ReactiveCommand.CreateFromTask(LaunchHangoverAsync);
if (App.Current is Avalonia.Application app &&
NativeMenu.GetMenu(app)?.Items[0] is NativeMenuItem aboutMenu)
aboutMenu.Command = ReactiveCommand.CreateFromTask(ShowAboutAsync);
}
public Task ShowAboutAsync() => new LibationAvalonia.Dialogs.AboutDialog().ShowDialog(MainWindow);
public Task ShowAccountsAsync() => new LibationAvalonia.Dialogs.AccountsDialog().ShowDialog(MainWindow);
public Task ShowSettingsAsync() => new LibationAvalonia.Dialogs.SettingsDialog().ShowDialog(MainWindow);
public async Task ShowTrashBinAsync()
{
await new LibationAvalonia.Dialogs.TrashBinDialog().ShowDialog(MainWindow);
//Restoring or permanently deleting inside the dialog changes the count behind it.
await RefreshBooksInTrashAsync();
}
public Task ShowFindBetterQualityBooksAsync() => new LibationAvalonia.Dialogs.FindBetterQualityBooksDialog().ShowDialog(MainWindow);
private async Task LaunchHangoverAsync()
{
try
{
HangoverLauncher.Launch();
}
catch (Exception ex)
{
Serilog.Log.Logger.Error(ex, "Failed to launch Hangover");
await MessageBox.Show(
MainWindow,
HangoverLauncher.GetLaunchFailureMessage(ex),
"Launch Hangover",
MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
}
public async Task StartWalkthroughAsync()
{
MenuBarVisible = true;
await new Walkthrough(MainWindow).RunAsync();
MenuBarVisible = !Configuration.IsMacOs;
}
}