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);