mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-17 20:41:33 -07:00
[VDD] Fix minimum size by adding a compact mode to quickSettingsButtons (#6890)
* [VDD] Fix minimum size by adding a compact mode to quickSettingsButtons Took 17 minutes Took 5 seconds * Fix and use FlowWidget/FlowLayout Took 35 minutes Took 4 seconds * Set spacings. Took 12 minutes * Make VDE tools flow Took 1 hour 23 minutes Took 5 seconds * Squeeze and flow even more. Took 11 minutes * Make pushbutton compact. Took 54 minutes Took 7 seconds --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
762e742be0
commit
7153f7d4c1
21 changed files with 666 additions and 617 deletions
|
|
@ -5,16 +5,9 @@
|
|||
#include <QGroupBox>
|
||||
|
||||
VisualDatabaseDisplayFilterToolbarWidget::VisualDatabaseDisplayFilterToolbarWidget(VisualDatabaseDisplayWidget *_parent)
|
||||
: QWidget(_parent), visualDatabaseDisplay(_parent)
|
||||
: FlowWidget(_parent, Qt::Horizontal, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAlwaysOff),
|
||||
visualDatabaseDisplay(_parent)
|
||||
{
|
||||
filterContainerLayout = new QHBoxLayout(this);
|
||||
filterContainerLayout->setContentsMargins(11, 0, 11, 0);
|
||||
filterContainerLayout->setSpacing(2);
|
||||
setLayout(filterContainerLayout);
|
||||
filterContainerLayout->setAlignment(Qt::AlignLeft);
|
||||
|
||||
setMaximumHeight(80);
|
||||
|
||||
connect(this, &VisualDatabaseDisplayFilterToolbarWidget::searchModelChanged, visualDatabaseDisplay,
|
||||
&VisualDatabaseDisplayWidget::onSearchModelChanged);
|
||||
|
||||
|
|
@ -131,10 +124,18 @@ void VisualDatabaseDisplayFilterToolbarWidget::initialize()
|
|||
filterLayout->addWidget(quickFilterFormatLegalityWidget);
|
||||
|
||||
// put everything into main layout
|
||||
filterContainerLayout->addWidget(sortGroupBox);
|
||||
filterContainerLayout->addWidget(filterGroupBox);
|
||||
filterContainerLayout->addStretch();
|
||||
filterContainerLayout->addWidget(quickFilterSaveLoadWidget);
|
||||
addWidget(sortGroupBox);
|
||||
addWidget(filterGroupBox);
|
||||
auto *spacer = new QWidget(this);
|
||||
spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||
spacer->setAttribute(Qt::WA_TransparentForMouseEvents);
|
||||
addWidget(spacer);
|
||||
addWidget(quickFilterSaveLoadWidget);
|
||||
addWidget(quickFilterSaveLoadWidget);
|
||||
|
||||
// Force a layout pass so sizeHint() is accurate
|
||||
layout()->activate();
|
||||
fullWidthHint = sizeHint().width();
|
||||
}
|
||||
|
||||
void VisualDatabaseDisplayFilterToolbarWidget::retranslateUi()
|
||||
|
|
@ -155,4 +156,25 @@ void VisualDatabaseDisplayFilterToolbarWidget::retranslateUi()
|
|||
quickFilterSubTypeWidget->setButtonText(tr("Sub Type"));
|
||||
quickFilterSetWidget->setButtonText(tr("Sets"));
|
||||
quickFilterFormatLegalityWidget->setButtonText(tr("Formats"));
|
||||
}
|
||||
|
||||
void VisualDatabaseDisplayFilterToolbarWidget::resizeEvent(QResizeEvent *event)
|
||||
{
|
||||
QWidget::resizeEvent(event);
|
||||
updateCompactMode(event->size().width());
|
||||
}
|
||||
|
||||
void VisualDatabaseDisplayFilterToolbarWidget::updateCompactMode(int availableWidth)
|
||||
{
|
||||
const bool compact = availableWidth < fullWidthHint;
|
||||
|
||||
const QList<SettingsButtonWidget *> filterButtons = {
|
||||
quickFilterSaveLoadWidget, quickFilterNameWidget, quickFilterMainTypeWidget,
|
||||
quickFilterSubTypeWidget, quickFilterSetWidget, quickFilterFormatLegalityWidget,
|
||||
};
|
||||
|
||||
for (auto *btn : filterButtons) {
|
||||
if (btn->isCompact() != compact) // only act on transitions
|
||||
btn->setCompact(compact);
|
||||
}
|
||||
}
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
class VisualDatabaseDisplayWidget;
|
||||
|
||||
class VisualDatabaseDisplayFilterToolbarWidget : public QWidget
|
||||
class VisualDatabaseDisplayFilterToolbarWidget : public FlowWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
|
@ -32,7 +32,6 @@ private:
|
|||
QGroupBox *filterGroupBox;
|
||||
QLabel *filterByLabel;
|
||||
|
||||
QHBoxLayout *filterContainerLayout;
|
||||
SettingsButtonWidget *quickFilterSaveLoadWidget;
|
||||
VisualDatabaseDisplayFilterSaveLoadWidget *saveLoadWidget;
|
||||
SettingsButtonWidget *quickFilterNameWidget;
|
||||
|
|
@ -45,6 +44,12 @@ private:
|
|||
VisualDatabaseDisplaySetFilterWidget *setFilterWidget;
|
||||
SettingsButtonWidget *quickFilterFormatLegalityWidget;
|
||||
VisualDatabaseDisplayFormatLegalityFilterWidget *formatLegalityWidget;
|
||||
|
||||
int fullWidthHint = 0;
|
||||
void updateCompactMode(int availableWidth);
|
||||
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent *event) override;
|
||||
};
|
||||
|
||||
#endif // COCKATRICE_VISUAL_DATABASE_DISPLAY_FILTER_TOOLBAR_WIDGET_H
|
||||
|
|
|
|||
|
|
@ -51,9 +51,7 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent,
|
|||
connect(cardSizeWidget, &CardSizeWidget::cardSizeSettingUpdated, &SettingsCache::instance(),
|
||||
&SettingsCache::setVisualDatabaseDisplayCardSize);
|
||||
|
||||
searchContainer = new QWidget(this);
|
||||
searchLayout = new QHBoxLayout(searchContainer);
|
||||
searchContainer->setLayout(searchLayout);
|
||||
searchContainer = new FlowWidget(this, Qt::Horizontal, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAlwaysOff);
|
||||
|
||||
searchEdit = new SearchLineEdit();
|
||||
searchEdit->setObjectName("searchEdit");
|
||||
|
|
@ -152,10 +150,10 @@ void VisualDatabaseDisplayWidget::initialize()
|
|||
filterContainer->initialize();
|
||||
filterContainer->setVisible(true);
|
||||
|
||||
searchLayout->addWidget(colorFilterWidget);
|
||||
searchLayout->addWidget(clearFilterWidget);
|
||||
searchLayout->addWidget(searchEdit);
|
||||
searchLayout->addWidget(displayModeButton);
|
||||
searchContainer->addWidget(colorFilterWidget);
|
||||
searchContainer->addWidget(clearFilterWidget);
|
||||
searchContainer->addWidget(searchEdit);
|
||||
searchContainer->addWidget(displayModeButton);
|
||||
|
||||
mainLayout->addWidget(searchContainer);
|
||||
|
||||
|
|
|
|||
|
|
@ -91,8 +91,7 @@ protected slots:
|
|||
void onDisplayModeChanged(bool checked);
|
||||
|
||||
private:
|
||||
QWidget *searchContainer;
|
||||
QHBoxLayout *searchLayout;
|
||||
FlowWidget *searchContainer;
|
||||
SearchLineEdit *searchEdit;
|
||||
QPushButton *displayModeButton;
|
||||
FilterTreeModel *filterModel;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue