Skip to content

Commit d7c9449

Browse files
authored
Fix: Fixed icon loading delayed for quick access widget (#11798)
1 parent a62501e commit d7c9449

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

src/Files.App/UserControls/Widgets/QuickAccessWidget.xaml.cs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
using System;
1717
using System.Collections.Generic;
1818
using System.Collections.ObjectModel;
19+
using System.Collections.Specialized;
1920
using System.ComponentModel;
2021
using System.IO;
2122
using System.Linq;
@@ -123,6 +124,8 @@ public QuickAccessWidget()
123124
OpenPropertiesCommand = new RelayCommand<FolderCardItem>(OpenProperties);
124125
PinToFavoritesCommand = new RelayCommand<FolderCardItem>(PinToFavorites);
125126
UnpinFromFavoritesCommand = new RelayCommand<FolderCardItem>(UnpinFromFavorites);
127+
128+
ItemsAdded.CollectionChanged += ItemsAdded_CollectionChanged;
126129
}
127130

128131
public delegate void QuickAccessCardInvokedEventHandler(object sender, QuickAccessCardInvokedEventArgs e);
@@ -270,8 +273,6 @@ await DispatcherQueue.EnqueueAsync(async () =>
270273
SelectCommand = QuickAccessCardCommand
271274
});
272275
}
273-
var cardLoadTasks = ItemsAdded.Select(cardItem => cardItem.LoadCardThumbnailAsync());
274-
await Task.WhenAll(cardLoadTasks);
275276

276277
return;
277278
}
@@ -287,9 +288,6 @@ await DispatcherQueue.EnqueueAsync(async () =>
287288
SelectCommand = QuickAccessCardCommand
288289
});
289290
}
290-
291-
var cardLoadTasks = ItemsAdded.Select(cardItem => cardItem.LoadCardThumbnailAsync());
292-
await Task.WhenAll(cardLoadTasks);
293291
}
294292
else
295293
foreach (var itemToRemove in ItemsAdded.Where(x => e.Paths.Contains(x.Path)).ToList())
@@ -314,9 +312,6 @@ private async void QuickAccessWidget_Loaded(object sender, RoutedEventArgs e)
314312
}
315313

316314
App.QuickAccessManager.UpdateQuickAccessWidget += ModifyItem;
317-
318-
var cardLoadTasks = ItemsAdded.Select(cardItem => cardItem.LoadCardThumbnailAsync());
319-
await Task.WhenAll(cardLoadTasks);
320315
}
321316

322317
private void QuickAccessWidget_Unloaded(object sender, RoutedEventArgs e)
@@ -325,6 +320,15 @@ private void QuickAccessWidget_Unloaded(object sender, RoutedEventArgs e)
325320
App.QuickAccessManager.UpdateQuickAccessWidget -= ModifyItem;
326321
}
327322

323+
private async void ItemsAdded_CollectionChanged(object? sender, NotifyCollectionChangedEventArgs e)
324+
{
325+
if (e.Action is NotifyCollectionChangedAction.Add)
326+
{
327+
foreach (FolderCardItem cardItem in e.NewItems!)
328+
await cardItem.LoadCardThumbnailAsync();
329+
}
330+
}
331+
328332
private void MenuFlyout_Opening(object sender)
329333
{
330334
var pinToFavoritesItem = (sender as MenuFlyout)?.Items.SingleOrDefault(x => x.Name == "PinToFavorites");
@@ -416,8 +420,8 @@ public Task RefreshWidget()
416420
}
417421

418422
public void Dispose()
419-
{
420-
423+
{
424+
ItemsAdded.CollectionChanged -= ItemsAdded_CollectionChanged;
421425
}
422426
}
423427
}

0 commit comments

Comments
 (0)