allow internal preview when external not available

This commit is contained in:
Jeremy 2024-06-06 12:36:26 +10:00
parent 5ec474cf38
commit 2e47da4ad9

View file

@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
@ -782,19 +782,27 @@ namespace Flow.Launcher.ViewModel
{ {
var useExternalPreview = PluginManager.UseExternalPreview(); var useExternalPreview = PluginManager.UseExternalPreview();
if (!useExternalPreview) switch (useExternalPreview)
ShowInternalPreview();
if (useExternalPreview)
{ {
// Internal preview may still be on when user switches to external case true
if (InternalPreviewVisible) when CanExternalPreviewSelectedResult(out var path):
HideInternalPreview(); // Internal preview may still be on when user switches to external
if (InternalPreviewVisible)
if (CanExternalPreviewSelectedResult(out var path)) HideInternalPreview();
OpenExternalPreview(path); OpenExternalPreview(path);
} break;
case true
when !CanExternalPreviewSelectedResult(out var _):
if (ExternalPreviewVisible)
CloseExternalPreview();
ShowInternalPreview();
break;
case false:
ShowInternalPreview();
break;
}
} }
private void HidePreview() private void HidePreview()
@ -873,27 +881,33 @@ namespace Flow.Launcher.ViewModel
private void UpdatePreview() private void UpdatePreview()
{ {
if (InternalPreviewVisible)
{
Results.SelectedItem?.LoadPreviewImage();
return;
}
switch (PluginManager.UseExternalPreview()) switch (PluginManager.UseExternalPreview())
{ {
case true case true
when ExternalPreviewVisible && CanExternalPreviewSelectedResult(out var path): when CanExternalPreviewSelectedResult(out var path):
SwitchExternalPreview(path, false); if (ExternalPreviewVisible)
break; {
SwitchExternalPreview(path, false);
case true }
when !ExternalPreviewVisible && Settings.AlwaysPreview && CanExternalPreviewSelectedResult(out var _): else if (InternalPreviewVisible)
ShowPreview(); {
HideInternalPreview();
OpenExternalPreview(path);
}
break; break;
case true case true
when !CanExternalPreviewSelectedResult(out var _): when !CanExternalPreviewSelectedResult(out var _):
HidePreview(); if (ExternalPreviewVisible)
{
CloseExternalPreview();
ShowInternalPreview();
}
break;
case false
when InternalPreviewVisible:
Results.SelectedItem?.LoadPreviewImage();
break; break;
} }
} }