diff --git a/cockatrice/src/interface/widgets/cards/additional_info/essence_filter_picker.h b/cockatrice/src/interface/widgets/cards/additional_info/essence_filter_picker.h new file mode 100644 index 000000000..d36b5da2e --- /dev/null +++ b/cockatrice/src/interface/widgets/cards/additional_info/essence_filter_picker.h @@ -0,0 +1,38 @@ +#ifndef CONTINUUMATRICE_ESSENCE_FILTER_PICKER_H +#define CONTINUUMATRICE_ESSENCE_FILTER_PICKER_H + +#include +#include +#include +#include + +class QMenu; + +/** + * Compact, reusable multi-select Essence picker for the deck and card database + * toolbars. The menu contains all fifteen Essence symbols in a 5x3 icon grid. + * Clicking a symbol does not close the popup; programmatic synchronization + * does not emit a user-selection signal. + */ +class EssenceFilterPicker final : public QToolButton +{ + Q_OBJECT + +public: + explicit EssenceFilterPicker(QWidget *parent = nullptr); + + [[nodiscard]] QSet activeEssences() const; + void setEssenceActive(QChar essence, bool active); + void retranslateUi(); + +signals: + void essenceToggled(QChar essence, bool active); + +private: + void updateSummary(); + + QHash buttons; + QMenu *popupMenu = nullptr; +}; + +#endif // CONTINUUMATRICE_ESSENCE_FILTER_PICKER_H