add forced invoke scan for clearing cache dir, add forced rescan on pause

This commit is contained in:
Stanley Dimant
2022-09-25 14:53:04 +02:00
parent 79b412b00a
commit a02c872307
3 changed files with 11 additions and 4 deletions

View File

@@ -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);

View File

@@ -226,7 +226,7 @@ namespace MareSynchronos.UI
if (ImGui.Button("Start Scan##startScan"))
{
_fileCacheManager.InvokeScan();
_fileCacheManager.InvokeScan(true);
}
}
else

View File

@@ -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()