Add a quick setting to draw unused color identities and center them.

This commit is contained in:
Lukas Brübach 2025-02-10 15:27:36 +01:00
parent 5f5744685c
commit b943515576
6 changed files with 37 additions and 0 deletions

View file

@ -122,6 +122,7 @@ DeckPreviewColorIdentityWidget::DeckPreviewColorIdentityWidget(QWidget *parent,
QHBoxLayout *layout = new QHBoxLayout(this);
layout->setSpacing(5);
layout->setContentsMargins(0, 0, 0, 0);
layout->setAlignment(Qt::AlignHCenter);
setLayout(layout);
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
@ -143,6 +144,24 @@ DeckPreviewColorIdentityWidget::DeckPreviewColorIdentityWidget(QWidget *parent,
}
}
}
connect(&SettingsCache::instance(), &SettingsCache::visualDeckStorageDrawUnusedColorIdentitiesChanged, this,
&DeckPreviewColorIdentityWidget::toggleUnusedVisibility);
}
void DeckPreviewColorIdentityWidget::toggleUnusedVisibility(bool _visible) const
{
if (_visible) {
for (DeckPreviewColorCircleWidget *circle : findChildren<DeckPreviewColorCircleWidget *>()) {
circle->setVisible(true);
}
} else {
for (DeckPreviewColorCircleWidget *circle : findChildren<DeckPreviewColorCircleWidget *>()) {
if (!circle->getIsActive()) {
circle->setHidden(true);
}
}
}
}
void DeckPreviewColorIdentityWidget::resizeEvent(QResizeEvent *event)

View file

@ -15,6 +15,10 @@ public:
void setColorActive(bool active);
QChar getColorChar() const;
bool getIsActive() const
{
return isActive;
}
protected:
void resizeEvent(QResizeEvent *event) override;
@ -35,6 +39,9 @@ class DeckPreviewColorIdentityWidget : public QWidget
public:
explicit DeckPreviewColorIdentityWidget(QWidget *parent, const QString &colorIdentity);
public slots:
void toggleUnusedVisibility(bool _visible) const;
protected:
void resizeEvent(QResizeEvent *event) override;
};

View file

@ -53,6 +53,12 @@ VisualDeckStorageWidget::VisualDeckStorageWidget(QWidget *parent) : QWidget(pare
connect(tagsOnWidgetsVisibilityCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(),
&SettingsCache::setVisualDeckStorageShowTagsOnDeckPreviews);
drawUnusedColorIdentitiesCheckBox = new QCheckBox(this);
drawUnusedColorIdentitiesCheckBox->setChecked(
SettingsCache::instance().getVisualDeckStorageDrawUnusedColorIdentities());
connect(drawUnusedColorIdentitiesCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(),
&SettingsCache::setVisualDeckStorageDrawUnusedColorIdentities);
cardSizeSliderVisibilityCheckBox = new QCheckBox(this);
cardSizeSliderVisibilityCheckBox->setChecked(SettingsCache::instance().getVisualDeckStorageShowCardSizeSlider());
connect(cardSizeSliderVisibilityCheckBox, &QCheckBox::QT_STATE_CHANGED, this,
@ -64,6 +70,7 @@ VisualDeckStorageWidget::VisualDeckStorageWidget(QWidget *parent) : QWidget(pare
quickSettingsWidget->addSettingsWidget(showFoldersCheckBox);
quickSettingsWidget->addSettingsWidget(tagFilterVisibilityCheckBox);
quickSettingsWidget->addSettingsWidget(tagsOnWidgetsVisibilityCheckBox);
quickSettingsWidget->addSettingsWidget(drawUnusedColorIdentitiesCheckBox);
quickSettingsWidget->addSettingsWidget(cardSizeSliderVisibilityCheckBox);
searchAndSortLayout->addWidget(deckPreviewColorIdentityFilterWidget);
@ -133,6 +140,7 @@ void VisualDeckStorageWidget::retranslateUi()
showFoldersCheckBox->setText(tr("Show Folders"));
tagFilterVisibilityCheckBox->setText(tr("Show Tag Filter"));
tagsOnWidgetsVisibilityCheckBox->setText(tr("Show Tags On Deck Previews"));
drawUnusedColorIdentitiesCheckBox->setText(tr("Draw not contained Color Identities"));
cardSizeSliderVisibilityCheckBox->setText(tr("Show Card Size Slider"));
}

View file

@ -64,6 +64,7 @@ private:
DeckPreviewColorIdentityFilterWidget *deckPreviewColorIdentityFilterWidget;
SettingsButtonWidget *quickSettingsWidget;
QCheckBox *showFoldersCheckBox;
QCheckBox *drawUnusedColorIdentitiesCheckBox;
QCheckBox *tagFilterVisibilityCheckBox;
QCheckBox *tagsOnWidgetsVisibilityCheckBox;
QCheckBox *cardSizeSliderVisibilityCheckBox;

View file

@ -723,6 +723,7 @@ void SettingsCache::setVisualDeckStorageDrawUnusedColorIdentities(
visualDeckStorageDrawUnusedColorIdentities = _visualDeckStorageDrawUnusedColorIdentities;
settings->setValue("interface/visualdeckstoragedrawunusedcoloridentities",
visualDeckStorageDrawUnusedColorIdentities);
emit visualDeckStorageDrawUnusedColorIdentitiesChanged(visualDeckStorageDrawUnusedColorIdentities);
}
void SettingsCache::setVisualDeckStorageUnusedColorIdentitiesOpacity(int _visualDeckStorageUnusedColorIdentitiesOpacity)

View file

@ -65,6 +65,7 @@ signals:
void visualDeckStorageShowTagFilterChanged(bool _visible);
void visualDeckStorageShowTagsOnDeckPreviewsChanged(bool _visible);
void visualDeckStorageCardSizeChanged();
void visualDeckStorageDrawUnusedColorIdentitiesChanged(bool _visible);
void visualDeckStorageInGameChanged(bool enabled);
void horizontalHandChanged();
void handJustificationChanged();