From 2b57e1590c07f043ec1926e0997bfb82fcf27127 Mon Sep 17 00:00:00 2001 From: Justin Swanson Date: Fri, 11 Oct 2019 17:34:59 -0500 Subject: [PATCH] Removed Dispatcher members in favor of static reference --- Wabbajack/AppState.cs | 9 +++------ Wabbajack/UI/MainWindow.xaml.cs | 3 +-- Wabbajack/UI/SlideShow.cs | 6 +++--- Wabbajack/UI/UIUtils.cs | 6 ++---- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/Wabbajack/AppState.cs b/Wabbajack/AppState.cs index 382b6051..fdc42c8b 100644 --- a/Wabbajack/AppState.cs +++ b/Wabbajack/AppState.cs @@ -37,8 +37,6 @@ namespace Wabbajack public volatile bool Dirty; - public readonly Dispatcher dispatcher; - // Command properties public IReactiveCommand ChangePathCommand => ReactiveCommand.Create(ExecuteChangePath); public IReactiveCommand ChangeDownloadPathCommand => ReactiveCommand.Create(ExecuteChangeDownloadPath); @@ -49,7 +47,7 @@ namespace Wabbajack public IReactiveCommand OpenModListPropertiesCommand => ReactiveCommand.Create(OpenModListProperties); public IReactiveCommand SlideShowNextItemCommand { get; } - public AppState(Dispatcher d, TaskMode mode) + public AppState(TaskMode mode) { _wabbajackLogo = UIUtils.BitmapImageFromResource("Wabbajack.UI.banner.png"); _splashScreenImage = _wabbajackLogo; @@ -74,7 +72,6 @@ namespace Wabbajack Mode = mode; Dirty = false; - dispatcher = d; slideshowThread = new Thread(UpdateLoop) { @@ -313,7 +310,7 @@ namespace Wabbajack lock (InternalStatus) { CPUStatus[] data = InternalStatus.ToArray(); - dispatcher.Invoke(() => + Application.Current.Dispatcher.Invoke(() => { for (var idx = 0; idx < data.Length; idx += 1) if (idx >= Status.Count) @@ -370,7 +367,7 @@ namespace Wabbajack public void LogMsg(string msg) { - dispatcher.Invoke(() => Log.Add(msg)); + Application.Current.Dispatcher.Invoke(() => Log.Add(msg)); } public void SetProgress(int id, string msg, int progress) diff --git a/Wabbajack/UI/MainWindow.xaml.cs b/Wabbajack/UI/MainWindow.xaml.cs index 70e2d2df..ab88a467 100644 --- a/Wabbajack/UI/MainWindow.xaml.cs +++ b/Wabbajack/UI/MainWindow.xaml.cs @@ -30,7 +30,7 @@ namespace Wabbajack InitializeComponent(); - var context = new AppState(Dispatcher, TaskMode.BUILDING); + var context = new AppState(TaskMode.BUILDING); context.LogMsg($"Wabbajack Build - {ThisAssembly.Git.Sha}"); SetupHandlers(context); DataContext = context; @@ -39,7 +39,6 @@ namespace Wabbajack Utils.SetLoggerFn(s => context.LogMsg(s)); Utils.SetStatusFn((msg, progress) => WorkQueue.Report(msg, progress)); - UIUtils.Dispatcher = Dispatcher; _state._nexusSiteURL = "https://github.com/wabbajack-tools/wabbajack"; diff --git a/Wabbajack/UI/SlideShow.cs b/Wabbajack/UI/SlideShow.cs index 3ffddfd8..cd837c51 100644 --- a/Wabbajack/UI/SlideShow.cs +++ b/Wabbajack/UI/SlideShow.cs @@ -98,7 +98,7 @@ namespace Wabbajack.UI _appState.SplashScreenImage = _appState._noneImage; if (slide.ImageURL != null && slide.Image != null) { - _appState.dispatcher.Invoke(() => + System.Windows.Application.Current.Dispatcher.Invoke(() => { if (!CachedSlides.ContainsKey(slide.ModID)) return; _appState.SplashScreenImage = slide.Image; @@ -123,7 +123,7 @@ namespace Wabbajack.UI { if (UseSync) { - _appState.dispatcher.Invoke(() => + System.Windows.Application.Current.Dispatcher.Invoke(() => { using (var stream = new HttpClient().GetStreamSync(slide.ImageURL)) stream.CopyTo(ms); @@ -139,7 +139,7 @@ namespace Wabbajack.UI } ms.Seek(0, SeekOrigin.Begin); - _appState.dispatcher.Invoke(() => + System.Windows.Application.Current.Dispatcher.Invoke(() => { var image = new BitmapImage(); image.BeginInit(); diff --git a/Wabbajack/UI/UIUtils.cs b/Wabbajack/UI/UIUtils.cs index cf82aece..f4dee35c 100644 --- a/Wabbajack/UI/UIUtils.cs +++ b/Wabbajack/UI/UIUtils.cs @@ -14,10 +14,10 @@ namespace Wabbajack public static string ShowFolderSelectionDialog(string prompt) { - if (Dispatcher.Thread != Thread.CurrentThread) + if (System.Windows.Application.Current.Dispatcher.Thread != Thread.CurrentThread) { var task = new TaskCompletionSource(); - Dispatcher.Invoke(() => + System.Windows.Application.Current.Dispatcher.Invoke(() => { try { @@ -76,7 +76,5 @@ namespace Wabbajack return ofd.FileName; return null; } - - public static Dispatcher Dispatcher { get; set; } } }