diff --git a/MareSynchronos/FileCacheDB/PeriodicFileScanner.cs b/MareSynchronos/FileCacheDB/PeriodicFileScanner.cs index ce1deae..baf802f 100644 --- a/MareSynchronos/FileCacheDB/PeriodicFileScanner.cs +++ b/MareSynchronos/FileCacheDB/PeriodicFileScanner.cs @@ -70,8 +70,9 @@ public class PeriodicFileScanner : IDisposable _scanCancellationTokenSource?.Cancel(); } - public void InvokeScan() + public void InvokeScan(bool forced = false) { + bool isForced = forced; _scanCancellationTokenSource?.Cancel(); _scanCancellationTokenSource = new CancellationTokenSource(); var token = _scanCancellationTokenSource.Token; @@ -80,8 +81,9 @@ public class PeriodicFileScanner : IDisposable while (!token.IsCancellationRequested) { RecalculateFileCacheSize(); - if (!_pluginConfiguration.FileScanPaused) + if (!_pluginConfiguration.FileScanPaused || isForced) { + isForced = false; await PeriodicFileScan(token); } _timeUntilNextScan = TimeSpan.FromSeconds(timeBetweenScans); diff --git a/MareSynchronos/UI/IntroUI.cs b/MareSynchronos/UI/IntroUI.cs index 442fbb0..b4a48b7 100644 --- a/MareSynchronos/UI/IntroUI.cs +++ b/MareSynchronos/UI/IntroUI.cs @@ -226,7 +226,7 @@ namespace MareSynchronos.UI if (ImGui.Button("Start Scan##startScan")) { - _fileCacheManager.InvokeScan(); + _fileCacheManager.InvokeScan(true); } } else diff --git a/MareSynchronos/UI/UIShared.cs b/MareSynchronos/UI/UIShared.cs index dbb6ecb..a9ae977 100644 --- a/MareSynchronos/UI/UIShared.cs +++ b/MareSynchronos/UI/UIShared.cs @@ -159,6 +159,11 @@ namespace MareSynchronos.UI else if (_pluginConfiguration.FileScanPaused) { ImGui.Text("File scanner is paused"); + ImGui.SameLine(); + if (ImGui.Button("Force Rescan##forcedrescan")) + { + _cacheScanner.InvokeScan(true); + } } else { @@ -512,7 +517,7 @@ namespace MareSynchronos.UI public void RecalculateFileCacheSize() { - _cacheScanner.InvokeScan(); + _cacheScanner.InvokeScan(true); } public void DrawParallelScansSetting()