diff --git a/QuickLook/Translations.config b/QuickLook/Translations.config
index 0c9ad9d..b0630e8 100644
--- a/QuickLook/Translations.config
+++ b/QuickLook/Translations.config
@@ -175,6 +175,7 @@
Öffnen mit ...
{0} ausführen
Freigeben
+ Reload
Beim Systemstart &ausführen
QuickLook v{0}
Nach &Updates suchen
@@ -208,6 +209,7 @@
Open With Menu
Run {0}
Share
+ Reload
Run at &Startup
QuickLook v{0}
Check for &Updates...
@@ -241,6 +243,7 @@
Abrir Con Menu
Iniciar {0}
Compartir
+ Reload
Iniciar con el &sistema
QuickLook v{0}
Buscar &Actualizaciones...
@@ -328,6 +331,7 @@
メニューから選択して開く
{0} を起動
シェア
+ Reload
スタートアップ時に起動
QuickLook v{0}
更新を確認する... (&U)
@@ -411,6 +415,7 @@
Otwórz w {0}
Uruchom {0}
Udostępnij
+ Reload
Uruchamiaj automatycznie z systemem
QuickLook v{0}
Sprawdź &aktualizacje...
@@ -443,6 +448,7 @@
Menu abrir com
Executar {0}
Compartilhar
+ Reload
Executar na &Inicialização
QuickLook v{0}
Procurar por &Atualizações...
@@ -499,6 +505,7 @@
Поверх всех окон
Закрепить
Поделиться
+ Reload
Автозапуск
QuickLook v{0}
Проверить &обновления…
@@ -558,6 +565,7 @@
Відкрити за допомогою меню
Запустити {0}
Поширити
+ Reload
Запускати під час &старту
QuickLook v{0}
Перевірити наявність &оновлення…
@@ -616,6 +624,7 @@
从菜单选择打开
运行 {0}
分享
+ Reload
启动时自动运行 (&S)
QuickLook v{0}
检查更新... (&U)
@@ -649,6 +658,7 @@
從選單選擇開啟
執行 {0}
分享
+ Reload
系統啟動時自動執行 (&S)
QuickLook v{0}
檢查更新... (&U)
diff --git a/QuickLook/ViewWindowManager.cs b/QuickLook/ViewWindowManager.cs
index d9cf2f1..a821a0b 100644
--- a/QuickLook/ViewWindowManager.cs
+++ b/QuickLook/ViewWindowManager.cs
@@ -189,6 +189,16 @@ internal class ViewWindowManager : IDisposable
}
}
+ public void ReloadPreview()
+ {
+ if (!_viewerWindow.IsVisible || string.IsNullOrEmpty(_invokedPath))
+ return;
+
+ var matchedPlugin = PluginManager.GetInstance().FindMatch(_invokedPath);
+
+ BeginShowNewWindow(_invokedPath, matchedPlugin);
+ }
+
private void BeginShowNewWindow(string path, IViewer matchedPlugin)
{
_viewerWindow.UnloadPlugin();
diff --git a/QuickLook/ViewerWindow.Actions.cs b/QuickLook/ViewerWindow.Actions.cs
index 1d77f58..7305cad 100644
--- a/QuickLook/ViewerWindow.Actions.cs
+++ b/QuickLook/ViewerWindow.Actions.cs
@@ -160,6 +160,12 @@ public partial class ViewerWindow
Debug.WriteLine(e);
}
+ if (_autoReloadWatcher != null)
+ {
+ _autoReloadWatcher.Dispose();
+ _autoReloadWatcher = null;
+ }
+
Plugin = null;
_path = string.Empty;
@@ -211,6 +217,17 @@ public partial class ViewerWindow
Show();
}
+ if (_autoReload && File.Exists(path))
+ {
+ _autoReloadWatcher?.Dispose();
+ _autoReloadWatcher = new FileSystemWatcher(Path.GetDirectoryName(path)!, Path.GetFileName(path)!)
+ {
+ NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.Size
+ };
+ _autoReloadWatcher.Changed += (_, _) => Dispatcher.Invoke(() => ViewWindowManager.GetInstance().ReloadPreview());
+ _autoReloadWatcher.EnableRaisingEvents = true;
+ }
+
//ShowWindowCaptionContainer(null, null);
//WindowHelper.SetActivate(new WindowInteropHelper(this), ContextObject.CanFocus);
diff --git a/QuickLook/ViewerWindow.xaml b/QuickLook/ViewerWindow.xaml
index e710364..1c3652e 100644
--- a/QuickLook/ViewerWindow.xaml
+++ b/QuickLook/ViewerWindow.xaml
@@ -117,6 +117,11 @@
DockPanel.Dock="Right"
Style="{StaticResource CaptionButtonStyle}"
ToolTip="Open with XXX" />
+