From 5ebf12977da61dd669e68415f6454607a572989f Mon Sep 17 00:00:00 2001 From: Christian Daniel Jensen Date: Tue, 3 Nov 2026 12:43:37 -0700 Subject: [PATCH] Fix empty catalogue loaded state and compact Essence selection behavior --- .../visual_database_display_color_filter_widget.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_color_filter_widget.cpp b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_color_filter_widget.cpp index 1cab0ac0e..a9e850d50 100644 --- a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_color_filter_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_color_filter_widget.cpp @@ -110,6 +110,12 @@ void VisualDatabaseDisplayColorFilterWidget::removeFilter(QChar essence) } } + // The empty selection means "Any Essence", not "exclude everything". + if (essencePicker->activeEssences().isEmpty()) { + filterModel->clearFiltersOfType(CardFilter::Attr::AttrColor); + return; + } + switch (currentMode) { case FilterMode::ExactMatch: case FilterMode::IncludeExclude: @@ -136,8 +142,11 @@ void VisualDatabaseDisplayColorFilterWidget::updateFilterMode() filterModel->clearFiltersOfType(CardFilter::Attr::AttrColor); const QSet selected = essencePicker->activeEssences(); - for (const QChar essence : Essence::symbols()) { - handleColorToggled(essence, selected.contains(essence)); + // No selections should never generate 15 mutually excluding filters. + if (!selected.isEmpty()) { + for (const QChar essence : Essence::symbols()) { + handleColorToggled(essence, selected.contains(essence)); + } } filterModel->blockSignals(false);