Add restarting to ExternalToolManager, called when replacing Config

This commit is contained in:
YoshiRulz 2020-11-29 18:55:47 +10:00
parent bed5142ddc
commit 84f0d57fd5
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
2 changed files with 16 additions and 12 deletions

View File

@ -2793,6 +2793,7 @@ namespace BizHawk.Client.EmuHawk
InitControls(); // rebind hotkeys
InputManager.SyncControls(Emulator, MovieSession, Config);
Tools.Restart(Config, Emulator, Game);
ExtToolManager.Restart();
AddOnScreenMessage($"Config file loaded: {iniPath}");
}

View File

@ -13,26 +13,29 @@ namespace BizHawk.Client.EmuHawk
{
public sealed class ExternalToolManager
{
private readonly FileSystemWatcher DirectoryMonitor;
private FileSystemWatcher DirectoryMonitor;
private readonly List<ToolStripMenuItem> MenuItems = new List<ToolStripMenuItem>();
public ExternalToolManager()
{
if(!Directory.Exists(GlobalWin.Config.PathEntries["Global", "External Tools"].Path))
{
Directory.CreateDirectory(GlobalWin.Config.PathEntries["Global", "External Tools"].Path);
}
public ExternalToolManager() => Restart();
DirectoryMonitor = new FileSystemWatcher(GlobalWin.Config.PathEntries["Global", "External Tools"].Path, "*.dll")
public void Restart()
{
if (DirectoryMonitor != null)
{
IncludeSubdirectories = false
, NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName
, Filter = "*.dll"
DirectoryMonitor.Created -= DirectoryMonitor_Created;
DirectoryMonitor.Dispose();
}
var extToolsDir = GlobalWin.Config.PathEntries["Global", "External Tools"].Path;
if (!Directory.Exists(extToolsDir)) Directory.CreateDirectory(extToolsDir);
DirectoryMonitor = new FileSystemWatcher(extToolsDir, "*.dll")
{
IncludeSubdirectories = false,
NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName,
Filter = "*.dll"
};
DirectoryMonitor.Created += DirectoryMonitor_Created;
DirectoryMonitor.EnableRaisingEvents = true;
BuildToolStrip();
}