collection: refresh when hiding filter

This commit is contained in:
Thibault Deckers 2021-02-24 14:14:20 +09:00
parent f51d9ef14f
commit 79e2c857b9
2 changed files with 10 additions and 0 deletions

View file

@ -45,6 +45,7 @@ class CollectionLens with ChangeNotifier, CollectionActivityMixin {
_subscriptions.add(source.eventBus.on<EntryAddedEvent>().listen((e) => onEntryAdded(e.entries)));
_subscriptions.add(source.eventBus.on<EntryRemovedEvent>().listen((e) => onEntryRemoved(e.entries)));
_subscriptions.add(source.eventBus.on<EntryMovedEvent>().listen((e) => _refresh()));
_subscriptions.add(source.eventBus.on<FilterVisibilityChangedEvent>().listen((e) => _refresh()));
_subscriptions.add(source.eventBus.on<CatalogMetadataChangedEvent>().listen((e) => _refresh()));
_subscriptions.add(source.eventBus.on<AddressMetadataChangedEvent>().listen((e) {
if (this.filters.any((filter) => filter is LocationFilter)) {

View file

@ -248,6 +248,8 @@ abstract class CollectionSource with SourceBase, AlbumMixin, LocationMixin, TagM
updateLocations();
updateTags();
eventBus.fire(FilterVisibilityChangedEvent(filter, visible));
if (visible) {
refreshMetadata(visibleEntries.where(filter.test).toSet());
}
@ -274,6 +276,13 @@ class EntryMovedEvent {
const EntryMovedEvent(this.entries);
}
class FilterVisibilityChangedEvent {
final CollectionFilter filter;
final bool visible;
const FilterVisibilityChangedEvent(this.filter, this.visible);
}
class ProgressEvent {
final int done, total;