diff --git a/lib/model/source/collection_lens.dart b/lib/model/source/collection_lens.dart index fd60b4231..4c15ee0e8 100644 --- a/lib/model/source/collection_lens.dart +++ b/lib/model/source/collection_lens.dart @@ -45,6 +45,7 @@ class CollectionLens with ChangeNotifier, CollectionActivityMixin { _subscriptions.add(source.eventBus.on().listen((e) => onEntryAdded(e.entries))); _subscriptions.add(source.eventBus.on().listen((e) => onEntryRemoved(e.entries))); _subscriptions.add(source.eventBus.on().listen((e) => _refresh())); + _subscriptions.add(source.eventBus.on().listen((e) => _refresh())); _subscriptions.add(source.eventBus.on().listen((e) => _refresh())); _subscriptions.add(source.eventBus.on().listen((e) { if (this.filters.any((filter) => filter is LocationFilter)) { diff --git a/lib/model/source/collection_source.dart b/lib/model/source/collection_source.dart index 37759a8c5..ead56b9a5 100644 --- a/lib/model/source/collection_source.dart +++ b/lib/model/source/collection_source.dart @@ -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;