From d8626e31412b0545954cec9089da76498782a6c3 Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Tue, 17 Sep 2019 21:12:25 -0600 Subject: [PATCH] fix new open folder dialog and disable UI during work --- Wabbajack/AppState.cs | 28 +++++++++++++++++++++++++--- Wabbajack/Installer.cs | 2 +- Wabbajack/MainWindow.xaml | 12 ++++++------ Wabbajack/MainWindow.xaml.cs | 36 +++++++++++------------------------- 4 files changed, 43 insertions(+), 35 deletions(-) diff --git a/Wabbajack/AppState.cs b/Wabbajack/AppState.cs index 0f5735f3..177a5c22 100644 --- a/Wabbajack/AppState.cs +++ b/Wabbajack/AppState.cs @@ -207,6 +207,17 @@ namespace Wabbajack } } + private bool _uiReady = false; + public bool UIReady + { + get => _uiReady; + set + { + _uiReady = value; + OnPropertyChanged("UIReady"); + } + } + public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChanged(string name) @@ -279,7 +290,7 @@ namespace Wabbajack { if (Mode == "Installing") { - var folder = UIUtils.ShowFolderSelectionDialoag("Select Installation directory"); + var folder = UIUtils.ShowFolderSelectionDialog("Select Installation directory"); if (folder != null) { Location = folder; @@ -289,7 +300,7 @@ namespace Wabbajack } else { - var folder = UIUtils.ShowFolderSelectionDialoag("Select Your MO2 profile directory"); + var folder = UIUtils.ShowFolderSelectionDialog("Select Your MO2 profile directory"); if (folder != null) { @@ -307,7 +318,7 @@ namespace Wabbajack private void ExecuteChangeDownloadPath() { - var folder = UIUtils.ShowFolderSelectionDialoag("Select a location for MO2 downloads"); + var folder = UIUtils.ShowFolderSelectionDialog("Select a location for MO2 downloads"); if (folder != null) DownloadLocation = folder; } @@ -338,6 +349,7 @@ namespace Wabbajack private void ExecuteBegin() { + UIReady = false; if (Mode == "Installing") { var installer = new Installer(_modList, Location, msg => LogMsg(msg)); @@ -345,6 +357,7 @@ namespace Wabbajack installer.DownloadFolder = DownloadLocation; var th = new Thread(() => { + UIReady = false; try { installer.Install(); @@ -356,6 +369,10 @@ namespace Wabbajack LogMsg(ex.ToString()); LogMsg($"{ex.Message} - Can't continue"); } + finally + { + UIReady = true; + } }); th.Priority = ThreadPriority.BelowNormal; th.Start(); @@ -367,6 +384,7 @@ namespace Wabbajack compiler.MO2Profile = ModListName; var th = new Thread(() => { + UIReady = false; try { compiler.Compile(); @@ -380,6 +398,10 @@ namespace Wabbajack LogMsg(ex.ToString()); LogMsg($"{ex.Message} - Can't continue"); } + finally + { + UIReady = true; + } }); th.Priority = ThreadPriority.BelowNormal; th.Start(); diff --git a/Wabbajack/Installer.cs b/Wabbajack/Installer.cs index e8ffbe5b..3e0828cd 100644 --- a/Wabbajack/Installer.cs +++ b/Wabbajack/Installer.cs @@ -172,7 +172,7 @@ namespace Wabbajack private bool LocateGameFolder() { - var fs = UIUtils.ShowFolderSelectionDialoag("Please locate your game installation path"); + var fs = UIUtils.ShowFolderSelectionDialog("Please locate your game installation path"); if (fs != null) { GameFolder = fs; diff --git a/Wabbajack/MainWindow.xaml b/Wabbajack/MainWindow.xaml index 6aab176d..e3a5777c 100644 --- a/Wabbajack/MainWindow.xaml +++ b/Wabbajack/MainWindow.xaml @@ -37,11 +37,11 @@