Skip to content

Commit e9f7437

Browse files
Use x:Load
1 parent 81eeb2d commit e9f7437

File tree

2 files changed

+29
-9
lines changed

2 files changed

+29
-9
lines changed

src/Files.App/UserControls/Pane/PreviewPane.xaml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -274,8 +274,9 @@
274274
<!-- Tags List -->
275275
<StackPanel
276276
x:Name="DetailsTagsList"
277-
Spacing="4"
278-
Visibility="Collapsed">
277+
Margin="12,8,12,0"
278+
x:Load="{x:Bind ViewModel.LoadTagsList, Mode=OneWay}"
279+
Spacing="4">
279280
<TextBlock
280281
HorizontalAlignment="Stretch"
281282
VerticalAlignment="Center"
@@ -363,7 +364,6 @@
363364
<Setter Target="PreviewErrorText.Text" Value="{x:Bind GetLocalizedResource('DetailsPanePreviewNotAvaliableText')}" />
364365
<Setter Target="FileDetailsRepeater.Visibility" Value="Visible" />
365366
<Setter Target="DetailsEditTags.Visibility" Value="Visible" />
366-
<Setter Target="DetailsTagsList.Visibility" Value="Visible" />
367367
<Setter Target="DetailsListHeader.Visibility" Value="Visible" />
368368
<Setter Target="PreviewControlPresenter.Visibility" Value="Collapsed" />
369369
</VisualState.Setters>
@@ -377,7 +377,6 @@
377377
<Setter Target="PreviewErrorText.Text" Value="{x:Bind GetLocalizedResource('DetailsPanePreviewNotAvaliableText')}" />
378378
<Setter Target="FileDetailsRepeater.Visibility" Value="Collapsed" />
379379
<Setter Target="DetailsEditTags.Visibility" Value="Collapsed" />
380-
<Setter Target="DetailsTagsList.Visibility" Value="Collapsed" />
381380
<Setter Target="PreviewControlPresenter.Visibility" Value="Collapsed" />
382381
</VisualState.Setters>
383382
</VisualState>
@@ -389,7 +388,6 @@
389388
<Setter Target="PreviewErrorText.Visibility" Value="Collapsed" />
390389
<Setter Target="FileDetailsRepeater.Visibility" Value="Visible" />
391390
<Setter Target="DetailsEditTags.Visibility" Value="Visible" />
392-
<Setter Target="DetailsTagsList.Visibility" Value="Visible" />
393391
<Setter Target="PreviewControlPresenter.Visibility" Value="Visible" />
394392
<Setter Target="DetailsListHeader.Visibility" Value="Visible" />
395393
</VisualState.Setters>
@@ -402,7 +400,6 @@
402400
<Setter Target="PreviewErrorText.Visibility" Value="Collapsed" />
403401
<Setter Target="FileDetailsRepeater.Visibility" Value="Collapsed" />
404402
<Setter Target="DetailsEditTags.Visibility" Value="Collapsed" />
405-
<Setter Target="DetailsTagsList.Visibility" Value="Collapsed" />
406403
<Setter Target="DetailsListHeader.Visibility" Value="Visible" />
407404
<Setter Target="PreviewControlPresenter.Visibility" Value="Collapsed" />
408405
<Setter Target="PreviewLoadingIndicator.Visibility" Value="Visible" />

src/Files.App/ViewModels/UserControls/PreviewPaneViewModel.cs

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
// Copyright (c) 2023 Files Community
22
// Licensed under the MIT License. See the LICENSE.
33

4+
using Files.App.Data.Contexts;
45
using Files.App.UserControls.FilePreviews;
56
using Files.App.ViewModels.Previews;
6-
using Files.Core.Helpers;
7-
using Files.Core.Utils.Cloud;
87
using Microsoft.UI.Xaml;
98
using Microsoft.UI.Xaml.Controls;
109
using System.Windows.Input;
@@ -45,16 +44,29 @@ public ListedItem SelectedItem
4544
get => selectedItem;
4645
set
4746
{
47+
if (selectedItem is not null)
48+
selectedItem.PropertyChanged -= SelectedItem_PropertyChanged;
49+
4850
if (SetProperty(ref selectedItem, value))
51+
{
4952
OnPropertyChanged(nameof(TagsFlyout));
53+
OnPropertyChanged(nameof(LoadTagsList));
54+
55+
if (value is not null)
56+
value.PropertyChanged += SelectedItem_PropertyChanged;
57+
}
5058
}
5159
}
5260

5361
private PreviewPaneStates previewPaneState;
5462
public PreviewPaneStates PreviewPaneState
5563
{
5664
get => previewPaneState;
57-
set => SetProperty(ref previewPaneState, value);
65+
set
66+
{
67+
if (SetProperty(ref previewPaneState, value))
68+
OnPropertyChanged(nameof(LoadTagsList));
69+
}
5870
}
5971

6072
private bool showCloudItemButton;
@@ -71,6 +83,11 @@ public UIElement PreviewPaneContent
7183
set => SetProperty(ref previewPaneContent, value);
7284
}
7385

86+
public bool LoadTagsList
87+
=> SelectedItem?.HasTags ?? false &&
88+
PreviewPaneState is PreviewPaneStates.NoPreviewAvailable ||
89+
PreviewPaneState is PreviewPaneStates.PreviewAndDetailsAvailable;
90+
7491
public MenuFlyout TagsFlyout
7592
=> new Files.App.UserControls.Menus.FileTagsContextMenu(new List<ListedItem>() { SelectedItem });
7693

@@ -353,6 +370,12 @@ private async Task LoadBasicPreviewAsync()
353370
}
354371
}
355372

373+
private void SelectedItem_PropertyChanged(object? sender, PropertyChangedEventArgs e)
374+
{
375+
if (e.PropertyName is nameof(ListedItem.HasTags))
376+
OnPropertyChanged(nameof(LoadTagsList));
377+
}
378+
356379
public void Dispose()
357380
{
358381
previewSettingsService.PropertyChanged -= PreviewSettingsService_OnPropertyChangedEvent;

0 commit comments

Comments
 (0)