Skip to content

Commit ef8c6e7

Browse files
Lazy load custom preview
1 parent fa21230 commit ef8c6e7

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed

Flow.Launcher/MainWindow.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@
481481
DataContext="{Binding SelectedItem, ElementName=ResultListBox}"
482482
Style="{DynamicResource PreviewBorderStyle}"
483483
Visibility="{Binding ShowCustomizedPreview}">
484-
<ContentControl Content="{Binding Result.PreviewPanel.Value}" />
484+
<ContentControl Content="{Binding CustomPreviewPanel}" />
485485
</Border>
486486
</Grid>
487487
</Grid>

Flow.Launcher/ViewModel/MainViewModel.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ private void ShowPreview()
462462
{
463463
ResultAreaColumn = 1;
464464
PreviewVisible = true;
465-
Results.SelectedItem?.LoadPreviewImage();
465+
Results.SelectedItem?.LoadPreviewPanel();
466466
}
467467

468468
private void HidePreview()
@@ -487,7 +487,7 @@ private void UpdatePreview()
487487
{
488488
if (PreviewVisible)
489489
{
490-
Results.SelectedItem?.LoadPreviewImage();
490+
Results.SelectedItem?.LoadPreviewPanel();
491491
}
492492
}
493493

Flow.Launcher/ViewModel/ResultViewModel.cs

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using System.IO;
1010
using System.Drawing.Text;
1111
using System.Collections.Generic;
12+
using System.Windows.Controls;
1213

1314
namespace Flow.Launcher.ViewModel
1415
{
@@ -130,8 +131,10 @@ public Visibility ShowGlyph
130131
? Result.SubTitle
131132
: Result.SubTitleToolTip;
132133

134+
public UserControl CustomPreviewPanel { get; set; } = null;
135+
133136
private volatile bool ImageLoaded;
134-
private volatile bool PreviewImageLoaded;
137+
private volatile bool PreviewPanelLoaded;
135138

136139
private ImageSource image = ImageLoader.LoadingImage;
137140
private ImageSource previewImage = ImageLoader.LoadingImage;
@@ -214,12 +217,23 @@ private async Task LoadPreviewImageAsync()
214217
}
215218
}
216219

217-
public void LoadPreviewImage()
220+
public void LoadPreviewPanel()
218221
{
219-
if (!PreviewImageLoaded && ShowIcon == Visibility.Visible)
222+
if (ShowDefaultPreview == Visibility.Visible)
220223
{
221-
PreviewImageLoaded = true;
222-
_ = LoadPreviewImageAsync();
224+
if (!PreviewPanelLoaded && ShowIcon == Visibility.Visible)
225+
{
226+
PreviewPanelLoaded = true;
227+
_ = LoadPreviewImageAsync();
228+
}
229+
}
230+
else if (ShowCustomizedPreview == Visibility.Visible)
231+
{
232+
if (!PreviewPanelLoaded)
233+
{
234+
PreviewPanelLoaded = true;
235+
CustomPreviewPanel = Result.PreviewPanel.Value;
236+
}
223237
}
224238
}
225239

0 commit comments

Comments
 (0)