mirror of
https://github.com/rmcrackan/Libation.git
synced 2026-09-21 11:56:08 -04:00
Replace obsolete Avalonia.Diagnostics package with AvaloniaUI.DiagnosticsSupport. Update Avalonia to 12.1, applying necessary fixes.
62 lines
2.0 KiB
C#
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;
|
|
}
|
|
}
|