[CardDatabaseDisplay] Reduce width by using icons (#6603)

* [CardDatabaseDisplay] Reduce width by using icons

* use public domain filter svg icon
This commit is contained in:
RickyRister 2026-02-22 20:54:58 -08:00 committed by GitHub
parent 9f00c6f955
commit 2cb16c9fd0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 56 additions and 18 deletions

View file

@ -24,6 +24,7 @@
<file>resources/icons/dragon.svg</file> <file>resources/icons/dragon.svg</file>
<file>resources/icons/dropdown_collapsed.svg</file> <file>resources/icons/dropdown_collapsed.svg</file>
<file>resources/icons/dropdown_expanded.svg</file> <file>resources/icons/dropdown_expanded.svg</file>
<file>resources/icons/filter.svg</file>
<file>resources/icons/floppy_disk.svg</file> <file>resources/icons/floppy_disk.svg</file>
<file>resources/icons/forgot_password.svg</file> <file>resources/icons/forgot_password.svg</file>
<file>resources/icons/gear.svg</file> <file>resources/icons/gear.svg</file>

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg"
width="800px" height="800px" viewBox="0 0 971.986 971.986"
xml:space="preserve">
<g>
<path d="M370.216,459.3c10.2,11.1,15.8,25.6,15.8,40.6v442c0,26.601,32.1,40.101,51.1,21.4l123.3-141.3
c16.5-19.8,25.6-29.601,25.6-49.2V500c0-15,5.7-29.5,15.8-40.601L955.615,75.5c26.5-28.8,6.101-75.5-33.1-75.5h-873
c-39.2,0-59.7,46.6-33.1,75.5L370.216,459.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 676 B

View file

@ -2,11 +2,14 @@
#include "visual_database_display_widget.h" #include "visual_database_display_widget.h"
#include <QGroupBox>
VisualDatabaseDisplayFilterToolbarWidget::VisualDatabaseDisplayFilterToolbarWidget(VisualDatabaseDisplayWidget *_parent) VisualDatabaseDisplayFilterToolbarWidget::VisualDatabaseDisplayFilterToolbarWidget(VisualDatabaseDisplayWidget *_parent)
: QWidget(_parent), visualDatabaseDisplay(_parent) : QWidget(_parent), visualDatabaseDisplay(_parent)
{ {
filterContainerLayout = new QHBoxLayout(this); filterContainerLayout = new QHBoxLayout(this);
filterContainerLayout->setContentsMargins(11, 0, 11, 0); filterContainerLayout->setContentsMargins(11, 0, 11, 0);
filterContainerLayout->setSpacing(2);
setLayout(filterContainerLayout); setLayout(filterContainerLayout);
filterContainerLayout->setAlignment(Qt::AlignLeft); filterContainerLayout->setAlignment(Qt::AlignLeft);
@ -15,9 +18,17 @@ VisualDatabaseDisplayFilterToolbarWidget::VisualDatabaseDisplayFilterToolbarWidg
connect(this, &VisualDatabaseDisplayFilterToolbarWidget::searchModelChanged, visualDatabaseDisplay, connect(this, &VisualDatabaseDisplayFilterToolbarWidget::searchModelChanged, visualDatabaseDisplay,
&VisualDatabaseDisplayWidget::onSearchModelChanged); &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 = 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 = new QComboBox(this);
sortColumnCombo->setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy::AdjustToContents); sortColumnCombo->setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy::AdjustToContents);
sortOrderCombo = new QComboBox(this); sortOrderCombo = new QComboBox(this);
@ -76,14 +87,20 @@ VisualDatabaseDisplayFilterToolbarWidget::VisualDatabaseDisplayFilterToolbarWidg
void VisualDatabaseDisplayFilterToolbarWidget::initialize() void VisualDatabaseDisplayFilterToolbarWidget::initialize()
{ {
sortByLabel->setVisible(true); // create groupbox layouts
filterByLabel->setVisible(true); auto sortLayout = new QHBoxLayout(this);
sortLayout->setContentsMargins(0, 0, 0, 0);
sortLayout->setSpacing(0);
sortGroupBox->setLayout(sortLayout);
sortLayout->setAlignment(Qt::AlignLeft);
quickFilterSaveLoadWidget->setVisible(true); auto filterLayout = new QHBoxLayout(this);
quickFilterNameWidget->setVisible(true); filterLayout->setContentsMargins(0, 0, 0, 0);
quickFilterSubTypeWidget->setVisible(true); filterLayout->setSpacing(2);
quickFilterSetWidget->setVisible(true); filterGroupBox->setLayout(filterLayout);
filterLayout->setAlignment(Qt::AlignLeft);
// create settings widgets
auto filterModel = visualDatabaseDisplay->filterModel; auto filterModel = visualDatabaseDisplay->filterModel;
saveLoadWidget = new VisualDatabaseDisplayFilterSaveLoadWidget(this, filterModel); saveLoadWidget = new VisualDatabaseDisplayFilterSaveLoadWidget(this, filterModel);
@ -101,23 +118,29 @@ void VisualDatabaseDisplayFilterToolbarWidget::initialize()
quickFilterSetWidget->addSettingsWidget(setFilterWidget); quickFilterSetWidget->addSettingsWidget(setFilterWidget);
quickFilterFormatLegalityWidget->addSettingsWidget(formatLegalityWidget); quickFilterFormatLegalityWidget->addSettingsWidget(formatLegalityWidget);
filterContainerLayout->addWidget(sortByLabel); // fill groupbox layouts
filterContainerLayout->addWidget(sortColumnCombo); sortLayout->addWidget(sortByLabel);
filterContainerLayout->addWidget(sortOrderCombo); sortLayout->addWidget(sortColumnCombo);
filterContainerLayout->addWidget(filterByLabel); sortLayout->addWidget(sortOrderCombo);
filterContainerLayout->addWidget(quickFilterNameWidget);
filterContainerLayout->addWidget(quickFilterMainTypeWidget); filterLayout->addWidget(filterByLabel);
filterContainerLayout->addWidget(quickFilterSubTypeWidget); filterLayout->addWidget(quickFilterNameWidget);
filterContainerLayout->addWidget(quickFilterSetWidget); filterLayout->addWidget(quickFilterMainTypeWidget);
filterContainerLayout->addWidget(quickFilterFormatLegalityWidget); filterLayout->addWidget(quickFilterSubTypeWidget);
filterLayout->addWidget(quickFilterSetWidget);
filterLayout->addWidget(quickFilterFormatLegalityWidget);
// put everything into main layout
filterContainerLayout->addWidget(sortGroupBox);
filterContainerLayout->addWidget(filterGroupBox);
filterContainerLayout->addStretch(); filterContainerLayout->addStretch();
filterContainerLayout->addWidget(quickFilterSaveLoadWidget); filterContainerLayout->addWidget(quickFilterSaveLoadWidget);
} }
void VisualDatabaseDisplayFilterToolbarWidget::retranslateUi() void VisualDatabaseDisplayFilterToolbarWidget::retranslateUi()
{ {
sortByLabel->setText(tr("Sort by:")); sortByLabel->setToolTip(tr("Sort by"));
filterByLabel->setText(tr("Filter by:")); filterByLabel->setToolTip(tr("Filter by"));
quickFilterSaveLoadWidget->setToolTip(tr("Save and load filters")); quickFilterSaveLoadWidget->setToolTip(tr("Save and load filters"));
quickFilterNameWidget->setToolTip(tr("Filter by exact card name")); quickFilterNameWidget->setToolTip(tr("Filter by exact card name"));

View file

@ -25,9 +25,11 @@ public:
private: private:
VisualDatabaseDisplayWidget *visualDatabaseDisplay; VisualDatabaseDisplayWidget *visualDatabaseDisplay;
QGroupBox *sortGroupBox;
QLabel *sortByLabel; QLabel *sortByLabel;
QComboBox *sortColumnCombo, *sortOrderCombo; QComboBox *sortColumnCombo, *sortOrderCombo;
QGroupBox *filterGroupBox;
QLabel *filterByLabel; QLabel *filterByLabel;
QHBoxLayout *filterContainerLayout; QHBoxLayout *filterContainerLayout;