From a55a287a9d0331d6d3a9bbaa2de17cae6f42349d Mon Sep 17 00:00:00 2001 From: BruebachL <44814898+BruebachL@users.noreply.github.com> Date: Wed, 16 Apr 2025 00:16:19 +0200 Subject: [PATCH] Pull the subfilters out. (#5836) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Lukas BrĂ¼bach --- .../quick_settings/settings_button_widget.cpp | 5 +++ .../quick_settings/settings_button_widget.h | 1 + .../visual_database_display_widget.cpp | 31 ++++++++++++++----- .../visual_database_display_widget.h | 8 +++-- 4 files changed, 35 insertions(+), 10 deletions(-) diff --git a/cockatrice/src/client/ui/widgets/quick_settings/settings_button_widget.cpp b/cockatrice/src/client/ui/widgets/quick_settings/settings_button_widget.cpp index e4fd0746f..0818050d8 100644 --- a/cockatrice/src/client/ui/widgets/quick_settings/settings_button_widget.cpp +++ b/cockatrice/src/client/ui/widgets/quick_settings/settings_button_widget.cpp @@ -26,6 +26,11 @@ void SettingsButtonWidget::addSettingsWidget(QWidget *toAdd) const popup->addSettingsWidget(toAdd); } +void SettingsButtonWidget::setButtonIcon(QPixmap iconMap) +{ + button->setIcon(iconMap); +} + void SettingsButtonWidget::togglePopup() { if (popup->isVisible()) { diff --git a/cockatrice/src/client/ui/widgets/quick_settings/settings_button_widget.h b/cockatrice/src/client/ui/widgets/quick_settings/settings_button_widget.h index 7e07f573c..4234ed438 100644 --- a/cockatrice/src/client/ui/widgets/quick_settings/settings_button_widget.h +++ b/cockatrice/src/client/ui/widgets/quick_settings/settings_button_widget.h @@ -13,6 +13,7 @@ class SettingsButtonWidget : public QWidget public: explicit SettingsButtonWidget(QWidget *parent = nullptr); void addSettingsWidget(QWidget *toAdd) const; + void setButtonIcon(QPixmap iconMap); protected: void mousePressEvent(QMouseEvent *event) override; diff --git a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp index 05e61083b..c87df9255 100644 --- a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp @@ -91,27 +91,42 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent, colorFilterWidget = new VisualDatabaseDisplayColorFilterWidget(this, filterModel); - quickFilterWidget = new SettingsButtonWidget(this); + filterContainer = new QWidget(this); + filterContainerLayout = new QHBoxLayout(filterContainer); + filterContainer->setLayout(filterContainerLayout); + quickFilterSaveLoadWidget = new SettingsButtonWidget(this); + quickFilterSaveLoadWidget->setButtonIcon(QPixmap("theme:icons/lock")); saveLoadWidget = new VisualDatabaseDisplayFilterSaveLoadWidget(this, filterModel); + quickFilterNameWidget = new SettingsButtonWidget(this); + quickFilterNameWidget->setButtonIcon(QPixmap("theme:icons/rename")); nameFilterWidget = new VisualDatabaseDisplayNameFilterWidget(this, deckEditor, filterModel); mainTypeFilterWidget = new VisualDatabaseDisplayMainTypeFilterWidget(this, filterModel); + quickFilterSubTypeWidget = new SettingsButtonWidget(this); + quickFilterSubTypeWidget->setButtonIcon(QPixmap("theme:icons/player")); subTypeFilterWidget = new VisualDatabaseDisplaySubTypeFilterWidget(this, filterModel); + quickFilterSetWidget = new SettingsButtonWidget(this); + quickFilterSetWidget->setButtonIcon(QPixmap("theme:icons/scales")); setFilterWidget = new VisualDatabaseDisplaySetFilterWidget(this, filterModel); + filterContainer->setMaximumHeight(80); - quickFilterWidget->addSettingsWidget(saveLoadWidget); - quickFilterWidget->addSettingsWidget(nameFilterWidget); - // quickFilterWidget->addSettingsWidget(mainTypeFilterWidget); - quickFilterWidget->addSettingsWidget(subTypeFilterWidget); - quickFilterWidget->addSettingsWidget(setFilterWidget); + quickFilterSaveLoadWidget->addSettingsWidget(saveLoadWidget); + quickFilterNameWidget->addSettingsWidget(nameFilterWidget); + quickFilterSubTypeWidget->addSettingsWidget(subTypeFilterWidget); + quickFilterSetWidget->addSettingsWidget(setFilterWidget); + + filterContainerLayout->addWidget(mainTypeFilterWidget); + filterContainerLayout->addWidget(quickFilterSaveLoadWidget); + filterContainerLayout->addWidget(quickFilterNameWidget); + filterContainerLayout->addWidget(quickFilterSubTypeWidget); + filterContainerLayout->addWidget(quickFilterSetWidget); searchLayout->addWidget(colorFilterWidget); - searchLayout->addWidget(quickFilterWidget); searchLayout->addWidget(searchEdit); mainLayout->addWidget(searchContainer); - mainLayout->addWidget(mainTypeFilterWidget); + mainLayout->addWidget(filterContainer); mainLayout->addWidget(flowWidget); diff --git a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.h b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.h index 31d1013e1..d516c9559 100644 --- a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.h @@ -69,11 +69,16 @@ protected slots: void updateSearch(const QString &search) const; private: - SettingsButtonWidget *quickFilterWidget; + QWidget *filterContainer; + QHBoxLayout *filterContainerLayout; + SettingsButtonWidget *quickFilterSaveLoadWidget; VisualDatabaseDisplayFilterSaveLoadWidget *saveLoadWidget; + SettingsButtonWidget *quickFilterNameWidget; VisualDatabaseDisplayNameFilterWidget *nameFilterWidget; VisualDatabaseDisplayMainTypeFilterWidget *mainTypeFilterWidget; + SettingsButtonWidget *quickFilterSubTypeWidget; VisualDatabaseDisplaySubTypeFilterWidget *subTypeFilterWidget; + SettingsButtonWidget *quickFilterSetWidget; VisualDatabaseDisplaySetFilterWidget *setFilterWidget; KeySignals searchKeySignals; AbstractTabDeckEditor *deckEditor; @@ -88,7 +93,6 @@ private: QVBoxLayout *overlapCategoriesLayout; OverlapControlWidget *overlapControlWidget; CardSizeWidget *cardSizeWidget; - QWidget *container; QTimer *debounceTimer; QTimer *loadCardsTimer;