|
1 |
| -using System; |
| 1 | +using System; |
2 | 2 | using System.Collections.Generic;
|
3 | 3 | using System.Linq;
|
4 | 4 | using System.Threading;
|
@@ -782,19 +782,27 @@ private void ShowPreview()
|
782 | 782 | {
|
783 | 783 | var useExternalPreview = PluginManager.UseExternalPreview();
|
784 | 784 |
|
785 |
| - if (!useExternalPreview) |
786 |
| - ShowInternalPreview(); |
787 |
| - |
788 |
| - if (useExternalPreview) |
| 785 | + switch (useExternalPreview) |
789 | 786 | {
|
790 |
| - // Internal preview may still be on when user switches to external |
791 |
| - if (InternalPreviewVisible) |
792 |
| - HideInternalPreview(); |
793 |
| - |
794 |
| - if (CanExternalPreviewSelectedResult(out var path)) |
| 787 | + case true |
| 788 | + when CanExternalPreviewSelectedResult(out var path): |
| 789 | + // Internal preview may still be on when user switches to external |
| 790 | + if (InternalPreviewVisible) |
| 791 | + HideInternalPreview(); |
795 | 792 | OpenExternalPreview(path);
|
796 |
| - } |
| 793 | + break; |
797 | 794 |
|
| 795 | + case true |
| 796 | + when !CanExternalPreviewSelectedResult(out var _): |
| 797 | + if (ExternalPreviewVisible) |
| 798 | + CloseExternalPreview(); |
| 799 | + ShowInternalPreview(); |
| 800 | + break; |
| 801 | + |
| 802 | + case false: |
| 803 | + ShowInternalPreview(); |
| 804 | + break; |
| 805 | + } |
798 | 806 | }
|
799 | 807 |
|
800 | 808 | private void HidePreview()
|
@@ -873,27 +881,33 @@ public void ResetPreview()
|
873 | 881 |
|
874 | 882 | private void UpdatePreview()
|
875 | 883 | {
|
876 |
| - if (InternalPreviewVisible) |
877 |
| - { |
878 |
| - Results.SelectedItem?.LoadPreviewImage(); |
879 |
| - return; |
880 |
| - } |
881 |
| - |
882 | 884 | switch (PluginManager.UseExternalPreview())
|
883 | 885 | {
|
884 | 886 | case true
|
885 |
| - when ExternalPreviewVisible && CanExternalPreviewSelectedResult(out var path): |
886 |
| - SwitchExternalPreview(path, false); |
| 887 | + when CanExternalPreviewSelectedResult(out var path): |
| 888 | + if (ExternalPreviewVisible) |
| 889 | + { |
| 890 | + SwitchExternalPreview(path, false); |
| 891 | + } |
| 892 | + else if (InternalPreviewVisible) |
| 893 | + { |
| 894 | + HideInternalPreview(); |
| 895 | + OpenExternalPreview(path); |
| 896 | + } |
887 | 897 | break;
|
888 | 898 |
|
889 | 899 | case true
|
890 |
| - when !ExternalPreviewVisible && Settings.AlwaysPreview && CanExternalPreviewSelectedResult(out var _): |
891 |
| - ShowPreview(); |
| 900 | + when !CanExternalPreviewSelectedResult(out var _): |
| 901 | + if (ExternalPreviewVisible) |
| 902 | + { |
| 903 | + CloseExternalPreview(); |
| 904 | + ShowInternalPreview(); |
| 905 | + } |
892 | 906 | break;
|
893 | 907 |
|
894 |
| - case true |
895 |
| - when !CanExternalPreviewSelectedResult(out var _): |
896 |
| - HidePreview(); |
| 908 | + case false |
| 909 | + when InternalPreviewVisible: |
| 910 | + Results.SelectedItem?.LoadPreviewImage(); |
897 | 911 | break;
|
898 | 912 | }
|
899 | 913 | }
|
|
0 commit comments