Allow users to cancel walkthrough

This commit is contained in:
MBucari 2023-03-27 20:24:15 -06:00
parent d9e27fd32e
commit 36005508a1
2 changed files with 17 additions and 7 deletions

View File

@ -34,7 +34,9 @@ namespace LibationAvalonia
private async Task<bool> ShowAccountDialog() private async Task<bool> ShowAccountDialog()
{ {
await Dispatcher.UIThread.InvokeAsync(() => MessageBox.Show(MainForm, "First, add you Audible account(s).", "Add Accounts")); var result = await Dispatcher.UIThread.InvokeAsync(() => MessageBox.Show(MainForm, "First, add you Audible account(s).", "Add Accounts", MessageBoxButtons.OKCancel));
if (result is DialogResult.Cancel) return false;
await Task.Delay(750); await Task.Delay(750);
await Dispatcher.UIThread.InvokeAsync(MainForm.settingsToolStripMenuItem.Open); await Dispatcher.UIThread.InvokeAsync(MainForm.settingsToolStripMenuItem.Open);
@ -49,7 +51,9 @@ namespace LibationAvalonia
private async Task<bool> ShowSettingsDialog() private async Task<bool> ShowSettingsDialog()
{ {
await Dispatcher.UIThread.InvokeAsync(() => MessageBox.Show(MainForm, "Next, adjust Libation's settings", "Change Settings")); var result = await Dispatcher.UIThread.InvokeAsync(() => MessageBox.Show(MainForm, "Next, adjust Libation's settings", "Change Settings", MessageBoxButtons.OKCancel));
if (result is DialogResult.Cancel) return false;
await Task.Delay(750); await Task.Delay(750);
await Dispatcher.UIThread.InvokeAsync(MainForm.settingsToolStripMenuItem.Open); await Dispatcher.UIThread.InvokeAsync(MainForm.settingsToolStripMenuItem.Open);
@ -112,7 +116,8 @@ namespace LibationAvalonia
var accounts = count > 1 ? "accounts" : "account"; var accounts = count > 1 ? "accounts" : "account";
var library = count > 1 ? "libraries" : "library"; var library = count > 1 ? "libraries" : "library";
await Dispatcher.UIThread.InvokeAsync(() => MessageBox.Show(MainForm, $"Finally, scan your Audible {accounts} to sync your {library} with Libation", $"Scan {accounts}")); var result = await Dispatcher.UIThread.InvokeAsync(() => MessageBox.Show(MainForm, $"Finally, scan your Audible {accounts} to sync your {library} with Libation", $"Scan {accounts}", MessageBoxButtons.OKCancel));
if (result is DialogResult.Cancel) return false;
await Task.Delay(750); await Task.Delay(750);
await Dispatcher.UIThread.InvokeAsync(MainForm.importToolStripMenuItem.Open); await Dispatcher.UIThread.InvokeAsync(MainForm.importToolStripMenuItem.Open);
@ -120,6 +125,7 @@ namespace LibationAvalonia
await Dispatcher.UIThread.InvokeAsync(() => (count > 1 ? MainForm.scanLibraryOfAllAccountsToolStripMenuItem : MainForm.scanLibraryToolStripMenuItem).IsSelected = true); await Dispatcher.UIThread.InvokeAsync(() => (count > 1 ? MainForm.scanLibraryOfAllAccountsToolStripMenuItem : MainForm.scanLibraryToolStripMenuItem).IsSelected = true);
await Task.Delay(1000); await Task.Delay(1000);
await Dispatcher.UIThread.InvokeAsync(() => (count > 1 ? MainForm.scanLibraryOfAllAccountsToolStripMenuItem : MainForm.scanLibraryToolStripMenuItem).RaiseEvent(new Avalonia.Interactivity.RoutedEventArgs(MenuItem.ClickEvent))); await Dispatcher.UIThread.InvokeAsync(() => (count > 1 ? MainForm.scanLibraryOfAllAccountsToolStripMenuItem : MainForm.scanLibraryToolStripMenuItem).RaiseEvent(new Avalonia.Interactivity.RoutedEventArgs(MenuItem.ClickEvent)));
await Dispatcher.UIThread.InvokeAsync(MainForm.importToolStripMenuItem.Close);
return true; return true;
} }

View File

@ -1,5 +1,6 @@
using AudibleUtilities; using AudibleUtilities;
using Dinah.Core.StepRunner; using Dinah.Core.StepRunner;
using Dinah.Core.WindowsDesktop.Processes;
using LibationWinForms.Dialogs; using LibationWinForms.Dialogs;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -33,7 +34,8 @@ namespace LibationWinForms
private async Task<bool> ShowAccountDialog() private async Task<bool> ShowAccountDialog()
{ {
MainForm.Invoke(() => MessageBox.Show(MainForm, "First, add you Audible account(s).", "Add Accounts")); var result = MainForm.Invoke(() => MessageBox.Show(MainForm, "First, add you Audible account(s).", "Add Accounts", MessageBoxButtons.OKCancel));
if (result is DialogResult.Cancel) return false;
await Task.Delay(750); await Task.Delay(750);
MainForm.Invoke(MainForm.settingsToolStripMenuItem.ShowDropDown); MainForm.Invoke(MainForm.settingsToolStripMenuItem.ShowDropDown);
@ -50,7 +52,8 @@ namespace LibationWinForms
private async Task<bool> ShowSettingsDialog() private async Task<bool> ShowSettingsDialog()
{ {
MainForm.Invoke(() => MessageBox.Show(MainForm, "Next, adjust Libation's settings", "Change Settings")); var result = MainForm.Invoke(() => MessageBox.Show(MainForm, "Next, adjust Libation's settings", "Change Settings", MessageBoxButtons.OKCancel));
if (result is DialogResult.Cancel) return false;
await Task.Delay(750); await Task.Delay(750);
MainForm.Invoke(MainForm.settingsToolStripMenuItem.ShowDropDown); MainForm.Invoke(MainForm.settingsToolStripMenuItem.ShowDropDown);
@ -110,7 +113,8 @@ namespace LibationWinForms
var accounts = count > 1 ? "accounts" :"account"; var accounts = count > 1 ? "accounts" :"account";
var library = count > 1 ? "libraries" : "library"; var library = count > 1 ? "libraries" : "library";
MainForm.Invoke(() => MessageBox.Show(MainForm, $"Finally, scan your Audible {accounts} to sync your {library} with Libation", $"Scan {accounts}")); var result = MainForm.Invoke(() => MessageBox.Show(MainForm, $"Finally, scan your Audible {accounts} to sync your {library} with Libation", $"Scan {accounts}", MessageBoxButtons.OKCancel));
if (result is DialogResult.Cancel) return false;
await Task.Delay(750); await Task.Delay(750);
MainForm.Invoke(MainForm.importToolStripMenuItem.ShowDropDown); MainForm.Invoke(MainForm.importToolStripMenuItem.ShowDropDown);