From 77bbd6b24eca1af53bb5a429e4512c6c6187bb18 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Wed, 9 Jun 2021 01:58:26 +1000 Subject: [PATCH] Clean up ext. tools dir monitoring (resolves #2787) --- src/BizHawk.Client.EmuHawk/MainForm.cs | 1 + src/BizHawk.Client.EmuHawk/tools/ExternalToolManager.cs | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index 1b2e1a8eab..b6c0dd02d8 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -4067,6 +4067,7 @@ namespace BizHawk.Client.EmuHawk DisplayManager.UpdateGlobals(Config, Emulator); InputManager.SyncControls(Emulator, MovieSession, Config); Tools.UpdateCheatRelatedTools(null, null); + ExtToolManager.BuildToolStrip(); PauseOnFrame = null; CurrentlyOpenRom = null; CurrentlyOpenRomArgs = null; diff --git a/src/BizHawk.Client.EmuHawk/tools/ExternalToolManager.cs b/src/BizHawk.Client.EmuHawk/tools/ExternalToolManager.cs index bf07bd45ac..7fb312816e 100644 --- a/src/BizHawk.Client.EmuHawk/tools/ExternalToolManager.cs +++ b/src/BizHawk.Client.EmuHawk/tools/ExternalToolManager.cs @@ -15,6 +15,8 @@ namespace BizHawk.Client.EmuHawk { private readonly Func<(CoreSystem System, string Hash)> _getLoadedRomInfoCallback; + private PathEntryCollection _paths; + private FileSystemWatcher DirectoryMonitor; private readonly List MenuItems = new List(); @@ -27,14 +29,13 @@ namespace BizHawk.Client.EmuHawk public void Restart(PathEntryCollection paths) { + _paths = paths; if (DirectoryMonitor != null) { DirectoryMonitor.Created -= DirectoryMonitor_Created; DirectoryMonitor.Dispose(); } - var extToolsDir = paths["Global", "External Tools"].Path; - if (!Directory.Exists(extToolsDir)) Directory.CreateDirectory(extToolsDir); - DirectoryMonitor = new FileSystemWatcher(extToolsDir, "*.dll") + DirectoryMonitor = new FileSystemWatcher(_paths["Global", "External Tools"].Path, "*.dll") { IncludeSubdirectories = false, NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName, @@ -83,7 +84,7 @@ namespace BizHawk.Client.EmuHawk var toolAttribute = allAttrs.OfType().First(); if (toolAttribute.LoadAssemblyFiles != null) { - foreach (var depFilename in toolAttribute.LoadAssemblyFiles) Assembly.LoadFrom($"ExternalTools/{depFilename}"); + foreach (var depFilename in toolAttribute.LoadAssemblyFiles) Assembly.LoadFrom($"{_paths["Global", "External Tools"].Path}/{depFilename}"); } var embeddedIconAttr = allAttrs.OfType().FirstOrDefault(); if (embeddedIconAttr != null)