diff --git a/cockatrice/cockatrice.qrc b/cockatrice/cockatrice.qrc index f087bfe66..37fb145f0 100644 --- a/cockatrice/cockatrice.qrc +++ b/cockatrice/cockatrice.qrc @@ -24,6 +24,7 @@ resources/icons/dragon.svg resources/icons/dropdown_collapsed.svg resources/icons/dropdown_expanded.svg + resources/icons/filter.svg resources/icons/floppy_disk.svg resources/icons/forgot_password.svg resources/icons/gear.svg diff --git a/cockatrice/resources/icons/filter.svg b/cockatrice/resources/icons/filter.svg new file mode 100644 index 000000000..d53d9ba29 --- /dev/null +++ b/cockatrice/resources/icons/filter.svg @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_filter_toolbar_widget.cpp b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_filter_toolbar_widget.cpp index 324236ab7..3cc1bf23b 100644 --- a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_filter_toolbar_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_filter_toolbar_widget.cpp @@ -2,11 +2,14 @@ #include "visual_database_display_widget.h" +#include + VisualDatabaseDisplayFilterToolbarWidget::VisualDatabaseDisplayFilterToolbarWidget(VisualDatabaseDisplayWidget *_parent) : QWidget(_parent), visualDatabaseDisplay(_parent) { filterContainerLayout = new QHBoxLayout(this); filterContainerLayout->setContentsMargins(11, 0, 11, 0); + filterContainerLayout->setSpacing(2); setLayout(filterContainerLayout); filterContainerLayout->setAlignment(Qt::AlignLeft); @@ -15,9 +18,17 @@ VisualDatabaseDisplayFilterToolbarWidget::VisualDatabaseDisplayFilterToolbarWidg connect(this, &VisualDatabaseDisplayFilterToolbarWidget::searchModelChanged, visualDatabaseDisplay, &VisualDatabaseDisplayWidget::onSearchModelChanged); - filterByLabel = new QLabel(this); + sortGroupBox = new QGroupBox(this); + filterGroupBox = new QGroupBox(this); + + auto scalePixmap = [](const QString &fileName) { return QIcon(QPixmap(fileName)).pixmap({20, 20}); }; sortByLabel = new QLabel(this); + sortByLabel->setPixmap(scalePixmap("theme:icons/sort_arrow_down")); + + filterByLabel = new QLabel(this); + filterByLabel->setPixmap(scalePixmap("theme:icons/filter")); + sortColumnCombo = new QComboBox(this); sortColumnCombo->setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy::AdjustToContents); sortOrderCombo = new QComboBox(this); @@ -76,14 +87,20 @@ VisualDatabaseDisplayFilterToolbarWidget::VisualDatabaseDisplayFilterToolbarWidg void VisualDatabaseDisplayFilterToolbarWidget::initialize() { - sortByLabel->setVisible(true); - filterByLabel->setVisible(true); + // create groupbox layouts + auto sortLayout = new QHBoxLayout(this); + sortLayout->setContentsMargins(0, 0, 0, 0); + sortLayout->setSpacing(0); + sortGroupBox->setLayout(sortLayout); + sortLayout->setAlignment(Qt::AlignLeft); - quickFilterSaveLoadWidget->setVisible(true); - quickFilterNameWidget->setVisible(true); - quickFilterSubTypeWidget->setVisible(true); - quickFilterSetWidget->setVisible(true); + auto filterLayout = new QHBoxLayout(this); + filterLayout->setContentsMargins(0, 0, 0, 0); + filterLayout->setSpacing(2); + filterGroupBox->setLayout(filterLayout); + filterLayout->setAlignment(Qt::AlignLeft); + // create settings widgets auto filterModel = visualDatabaseDisplay->filterModel; saveLoadWidget = new VisualDatabaseDisplayFilterSaveLoadWidget(this, filterModel); @@ -101,23 +118,29 @@ void VisualDatabaseDisplayFilterToolbarWidget::initialize() quickFilterSetWidget->addSettingsWidget(setFilterWidget); quickFilterFormatLegalityWidget->addSettingsWidget(formatLegalityWidget); - filterContainerLayout->addWidget(sortByLabel); - filterContainerLayout->addWidget(sortColumnCombo); - filterContainerLayout->addWidget(sortOrderCombo); - filterContainerLayout->addWidget(filterByLabel); - filterContainerLayout->addWidget(quickFilterNameWidget); - filterContainerLayout->addWidget(quickFilterMainTypeWidget); - filterContainerLayout->addWidget(quickFilterSubTypeWidget); - filterContainerLayout->addWidget(quickFilterSetWidget); - filterContainerLayout->addWidget(quickFilterFormatLegalityWidget); + // fill groupbox layouts + sortLayout->addWidget(sortByLabel); + sortLayout->addWidget(sortColumnCombo); + sortLayout->addWidget(sortOrderCombo); + + filterLayout->addWidget(filterByLabel); + filterLayout->addWidget(quickFilterNameWidget); + filterLayout->addWidget(quickFilterMainTypeWidget); + filterLayout->addWidget(quickFilterSubTypeWidget); + filterLayout->addWidget(quickFilterSetWidget); + filterLayout->addWidget(quickFilterFormatLegalityWidget); + + // put everything into main layout + filterContainerLayout->addWidget(sortGroupBox); + filterContainerLayout->addWidget(filterGroupBox); filterContainerLayout->addStretch(); filterContainerLayout->addWidget(quickFilterSaveLoadWidget); } void VisualDatabaseDisplayFilterToolbarWidget::retranslateUi() { - sortByLabel->setText(tr("Sort by:")); - filterByLabel->setText(tr("Filter by:")); + sortByLabel->setToolTip(tr("Sort by")); + filterByLabel->setToolTip(tr("Filter by")); quickFilterSaveLoadWidget->setToolTip(tr("Save and load filters")); quickFilterNameWidget->setToolTip(tr("Filter by exact card name")); diff --git a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_filter_toolbar_widget.h b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_filter_toolbar_widget.h index a6c614656..5cca5187a 100644 --- a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_filter_toolbar_widget.h +++ b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_filter_toolbar_widget.h @@ -25,9 +25,11 @@ public: private: VisualDatabaseDisplayWidget *visualDatabaseDisplay; + QGroupBox *sortGroupBox; QLabel *sortByLabel; QComboBox *sortColumnCombo, *sortOrderCombo; + QGroupBox *filterGroupBox; QLabel *filterByLabel; QHBoxLayout *filterContainerLayout;