Fix walkthrough causing freeze (#695)
This commit is contained in:
parent
c61a863edd
commit
7c8489b52f
@ -67,13 +67,13 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
||||||
<PackageReference Include="Avalonia" Version="11.0.1" />
|
<PackageReference Include="Avalonia" Version="11.0.2" />
|
||||||
<PackageReference Include="Avalonia.Desktop" Version="11.0.1" />
|
<PackageReference Include="Avalonia.Desktop" Version="11.0.2" />
|
||||||
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
|
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
|
||||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.1" />
|
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.2" />
|
||||||
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.1" />
|
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.2" />
|
||||||
<PackageReference Include="Avalonia.Controls.ItemsRepeater" Version="11.0.1" />
|
<PackageReference Include="Avalonia.Controls.ItemsRepeater" Version="11.0.2" />
|
||||||
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.1" />
|
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\HangoverBase\HangoverBase.csproj" />
|
<ProjectReference Include="..\HangoverBase\HangoverBase.csproj" />
|
||||||
|
|||||||
@ -70,13 +70,13 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Avalonia.Diagnostics" Version="11.0.1" Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'" />
|
<PackageReference Include="Avalonia.Diagnostics" Version="11.0.2" Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'" />
|
||||||
<PackageReference Include="Avalonia" Version="11.0.1" />
|
<PackageReference Include="Avalonia" Version="11.0.2" />
|
||||||
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.0.1" />
|
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.0.2" />
|
||||||
<PackageReference Include="Avalonia.Controls.ItemsRepeater" Version="11.0.1" />
|
<PackageReference Include="Avalonia.Controls.ItemsRepeater" Version="11.0.2" />
|
||||||
<PackageReference Include="Avalonia.Desktop" Version="11.0.1" />
|
<PackageReference Include="Avalonia.Desktop" Version="11.0.2" />
|
||||||
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.1" />
|
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.2" />
|
||||||
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.1" />
|
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -3,7 +3,6 @@ using AudibleUtilities;
|
|||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Controls.Presenters;
|
using Avalonia.Controls.Presenters;
|
||||||
using Avalonia.Controls.Primitives;
|
using Avalonia.Controls.Primitives;
|
||||||
using Avalonia.Interactivity;
|
|
||||||
using Avalonia.Media;
|
using Avalonia.Media;
|
||||||
using Avalonia.Styling;
|
using Avalonia.Styling;
|
||||||
using Dinah.Core.StepRunner;
|
using Dinah.Core.StepRunner;
|
||||||
@ -13,7 +12,6 @@ using LibationFileManager;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using static Avalonia.Threading.Dispatcher;
|
|
||||||
|
|
||||||
namespace LibationAvalonia
|
namespace LibationAvalonia
|
||||||
{
|
{
|
||||||
@ -36,12 +34,13 @@ namespace LibationAvalonia
|
|||||||
AutoScan = Configuration.Instance.AutoScan;
|
AutoScan = Configuration.Instance.AutoScan;
|
||||||
Configuration.Instance.AutoScan = false;
|
Configuration.Instance.AutoScan = false;
|
||||||
MainForm = mainForm;
|
MainForm = mainForm;
|
||||||
sequence[nameof(ShowAccountDialog)] = () => UIThread.InvokeAsync(ShowAccountDialog);
|
var uiDispatcher = Avalonia.Threading.Dispatcher.UIThread;
|
||||||
sequence[nameof(ShowSettingsDialog)] = () => UIThread.InvokeAsync(ShowSettingsDialog);
|
sequence[nameof(ShowAccountDialog)] = () => uiDispatcher.InvokeAsync(ShowAccountDialog);
|
||||||
sequence[nameof(ShowAccountScanning)] = () => UIThread.InvokeAsync(ShowAccountScanning);
|
sequence[nameof(ShowSettingsDialog)] = () => uiDispatcher.InvokeAsync(ShowSettingsDialog);
|
||||||
sequence[nameof(ShowSearching)] = () => UIThread.InvokeAsync(ShowSearching);
|
sequence[nameof(ShowAccountScanning)] = () => uiDispatcher.InvokeAsync(ShowAccountScanning);
|
||||||
sequence[nameof(ShowQuickFilters)] = () => UIThread.InvokeAsync(ShowQuickFilters);
|
sequence[nameof(ShowSearching)] = () => uiDispatcher.InvokeAsync(ShowSearching);
|
||||||
sequence[nameof(ShowTourComplete)] = () => UIThread.InvokeAsync(ShowTourComplete);
|
sequence[nameof(ShowQuickFilters)] = () => uiDispatcher.InvokeAsync(ShowQuickFilters);
|
||||||
|
sequence[nameof(ShowTourComplete)] = () => uiDispatcher.InvokeAsync(ShowTourComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task RunAsync()
|
public async Task RunAsync()
|
||||||
@ -60,7 +59,7 @@ namespace LibationAvalonia
|
|||||||
await displayControlAsync(MainForm.accountsToolStripMenuItem);
|
await displayControlAsync(MainForm.accountsToolStripMenuItem);
|
||||||
|
|
||||||
var accountSettings = new AccountsDialog();
|
var accountSettings = new AccountsDialog();
|
||||||
accountSettings.Loaded += async (_, _) => await MessageBox.Show(accountSettings, "Add your Audible account(s), then save.", "Add an Account");
|
accountSettings.Opened += async (_, _) => await MessageBox.Show(accountSettings, "Add your Audible account(s), then save.", "Add an Account");
|
||||||
await accountSettings.ShowDialog(MainForm);
|
await accountSettings.ShowDialog(MainForm);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -74,14 +73,14 @@ namespace LibationAvalonia
|
|||||||
await displayControlAsync(MainForm.settingsToolStripMenuItem);
|
await displayControlAsync(MainForm.settingsToolStripMenuItem);
|
||||||
await displayControlAsync(MainForm.basicSettingsToolStripMenuItem);
|
await displayControlAsync(MainForm.basicSettingsToolStripMenuItem);
|
||||||
|
|
||||||
var settingsDialog = await UIThread.InvokeAsync(() => new SettingsDialog());
|
var settingsDialog = new SettingsDialog();
|
||||||
|
|
||||||
var tabsToVisit = settingsDialog.tabControl.Items.OfType<TabItem>().ToList();
|
var tabsToVisit = settingsDialog.tabControl.Items.OfType<TabItem>().ToList();
|
||||||
|
|
||||||
foreach (var tab in tabsToVisit)
|
foreach (var tab in tabsToVisit)
|
||||||
tab.PropertyChanged += TabControl_PropertyChanged;
|
tab.PropertyChanged += TabControl_PropertyChanged;
|
||||||
|
|
||||||
settingsDialog.Loaded += SettingsDialog_Loaded;
|
settingsDialog.Opened += SettingsDialog_Opened;
|
||||||
settingsDialog.Closing += SettingsDialog_FormClosing;
|
settingsDialog.Closing += SettingsDialog_FormClosing;
|
||||||
settingsDialog.saveBtn.Content = "Next Tab";
|
settingsDialog.saveBtn.Content = "Next Tab";
|
||||||
|
|
||||||
@ -103,7 +102,7 @@ namespace LibationAvalonia
|
|||||||
settingTabMessages.Remove(header.Text);
|
settingTabMessages.Remove(header.Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
async void SettingsDialog_Loaded(object sender, RoutedEventArgs e)
|
async void SettingsDialog_Opened(object sender, System.EventArgs e)
|
||||||
{
|
{
|
||||||
await ShowTabPageMessageBoxAsync(tabsToVisit[0]);
|
await ShowTabPageMessageBoxAsync(tabsToVisit[0]);
|
||||||
}
|
}
|
||||||
@ -227,7 +226,7 @@ namespace LibationAvalonia
|
|||||||
await displayControlAsync(editQuickFiltersToolStripMenuItem);
|
await displayControlAsync(editQuickFiltersToolStripMenuItem);
|
||||||
|
|
||||||
var editQuickFilters = new EditQuickFilters();
|
var editQuickFilters = new EditQuickFilters();
|
||||||
editQuickFilters.Loaded += async (_, _) => await MessageBox.Show(editQuickFilters, "From here you can edit, delete, and change the order of Quick Filters", "Editing Quick Filters");
|
editQuickFilters.Opened += async (_, _) => await MessageBox.Show(editQuickFilters, "From here you can edit, delete, and change the order of Quick Filters", "Editing Quick Filters");
|
||||||
await editQuickFilters.ShowDialog(MainForm);
|
await editQuickFilters.ShowDialog(MainForm);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -247,12 +246,12 @@ namespace LibationAvalonia
|
|||||||
|
|
||||||
private async Task displayControlAsync(TemplatedControl control)
|
private async Task displayControlAsync(TemplatedControl control)
|
||||||
{
|
{
|
||||||
await UIThread.InvokeAsync(() => control.IsEnabled = false);
|
control.IsEnabled = false;
|
||||||
await UIThread.InvokeAsync(() => MainForm.productsDisplay.Focus());
|
MainForm.productsDisplay.Focus();
|
||||||
await UIThread.InvokeAsync(() => flashControlAsync(control));
|
await flashControlAsync(control);
|
||||||
if (control is MenuItem menuItem) await UIThread.InvokeAsync(menuItem.Open);
|
if (control is MenuItem menuItem) menuItem.Open();
|
||||||
await Task.Delay(500);
|
await Task.Delay(500);
|
||||||
await UIThread.InvokeAsync(() => control.IsEnabled = true);
|
control.IsEnabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static async Task flashControlAsync(TemplatedControl control, int flashCount = 3)
|
private static async Task flashControlAsync(TemplatedControl control, int flashCount = 3)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user