Keep Essence selection and mode inside one fixed-width popup to prevent toolbar clipping

This commit is contained in:
Christian Daniel Jensen 2026-11-03 12:40:24 -07:00
parent 2b35b0a6ab
commit 54ccbc9cf9

View file

@ -7,6 +7,7 @@
#include <QComboBox> #include <QComboBox>
#include <QHBoxLayout> #include <QHBoxLayout>
#include <QSharedPointer> #include <QSharedPointer>
#include <QSizePolicy>
#include <QString> #include <QString>
#include <QVariant> #include <QVariant>
#include <libcockatrice/card/essence_types.h> #include <libcockatrice/card/essence_types.h>
@ -24,12 +25,20 @@ VisualDatabaseDisplayColorFilterWidget::VisualDatabaseDisplayColorFilterWidget(Q
// A 15-icon horizontal row cannot fit the database filter toolbar. // A 15-icon horizontal row cannot fit the database filter toolbar.
essencePicker = new EssenceFilterPicker(this); essencePicker = new EssenceFilterPicker(this);
layout->addWidget(essencePicker); layout->addWidget(essencePicker);
// FlowWidget measures THIS parent widget, not its nested button. Give it
// an explicit size hint that cannot clip the picker.
setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
setMinimumWidth(essencePicker->width());
connect(essencePicker, &EssenceFilterPicker::essenceToggled, this, connect(essencePicker, &EssenceFilterPicker::essenceToggled, this,
&VisualDatabaseDisplayColorFilterWidget::handleColorToggled); &VisualDatabaseDisplayColorFilterWidget::handleColorToggled);
connect(essencePicker, &EssenceFilterPicker::selectionCleared, this, [this]() {
filterModel->clearFiltersOfType(CardFilter::Attr::AttrColor);
});
modeComboBox = new QComboBox(this); modeComboBox = new QComboBox(this);
layout->addWidget(modeComboBox); essencePicker->addPopupControl(modeComboBox);
connect(modeComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, connect(modeComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
&VisualDatabaseDisplayColorFilterWidget::updateFilterMode); &VisualDatabaseDisplayColorFilterWidget::updateFilterMode);