[#43] App: Use FileSystemWatcher to renew contexts on demand

This commit is contained in:
2024-03-19 13:17:06 +01:00
parent 98688168b8
commit 1806b02039
13 changed files with 51 additions and 66 deletions

View File

@ -60,6 +60,10 @@ namespace Elwig {
public static ClientParameters Client { get; set; }
public static Dispatcher MainDispatcher { get; private set; }
private readonly FileSystemWatcher Watcher = new(Path.GetDirectoryName(Config.DatabaseFile) ?? "C:\\") {
NotifyFilter = NotifyFilters.LastWrite,
Filter = "*.sqlite3",
};
public App() : base() {
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
@ -69,6 +73,12 @@ namespace Elwig {
Scales = [];
CurrentApp = this;
OverrideCulture();
Watcher.Changed += new FileSystemEventHandler(OnChanged);
Watcher.EnableRaisingEvents = true;
}
private void OnChanged(object source, FileSystemEventArgs e) {
MainDispatcher.BeginInvoke(async () => await HintContextChange());
}
private static void OverrideCulture() {