diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_widget.cpp index c28f1bb4a..66395062b 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_widget.cpp @@ -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()) { + circle->setVisible(true); + } + } else { + for (DeckPreviewColorCircleWidget *circle : findChildren()) { + if (!circle->getIsActive()) { + circle->setHidden(true); + } + } + } } void DeckPreviewColorIdentityWidget::resizeEvent(QResizeEvent *event) diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_widget.h b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_widget.h index 3044793e6..6e91cadbf 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_widget.h @@ -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; }; diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.cpp index 40191d315..0a740df0e 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.cpp @@ -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")); } diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.h b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.h index d3ef0c221..e8a986cbc 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.h @@ -64,6 +64,7 @@ private: DeckPreviewColorIdentityFilterWidget *deckPreviewColorIdentityFilterWidget; SettingsButtonWidget *quickSettingsWidget; QCheckBox *showFoldersCheckBox; + QCheckBox *drawUnusedColorIdentitiesCheckBox; QCheckBox *tagFilterVisibilityCheckBox; QCheckBox *tagsOnWidgetsVisibilityCheckBox; QCheckBox *cardSizeSliderVisibilityCheckBox; diff --git a/cockatrice/src/settings/cache_settings.cpp b/cockatrice/src/settings/cache_settings.cpp index 2b4c446b6..896872047 100644 --- a/cockatrice/src/settings/cache_settings.cpp +++ b/cockatrice/src/settings/cache_settings.cpp @@ -723,6 +723,7 @@ void SettingsCache::setVisualDeckStorageDrawUnusedColorIdentities( visualDeckStorageDrawUnusedColorIdentities = _visualDeckStorageDrawUnusedColorIdentities; settings->setValue("interface/visualdeckstoragedrawunusedcoloridentities", visualDeckStorageDrawUnusedColorIdentities); + emit visualDeckStorageDrawUnusedColorIdentitiesChanged(visualDeckStorageDrawUnusedColorIdentities); } void SettingsCache::setVisualDeckStorageUnusedColorIdentitiesOpacity(int _visualDeckStorageUnusedColorIdentitiesOpacity) diff --git a/cockatrice/src/settings/cache_settings.h b/cockatrice/src/settings/cache_settings.h index d230ffc22..14a3c7f54 100644 --- a/cockatrice/src/settings/cache_settings.h +++ b/cockatrice/src/settings/cache_settings.h @@ -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();