From 900cbed6bb88ab78f1ac8210a532712e5a349e07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Tue, 11 Feb 2025 17:39:59 +0100 Subject: [PATCH] Add the option to hide the banner card combo box in VDS. --- .../deck_preview/deck_preview_widget.cpp | 31 ++++++++++++++++--- .../deck_preview/deck_preview_widget.h | 2 ++ .../visual_deck_storage_widget.cpp | 8 +++++ .../visual_deck_storage_widget.h | 1 + cockatrice/src/settings/cache_settings.cpp | 9 ++++++ cockatrice/src/settings/cache_settings.h | 7 +++++ dbconverter/src/mocks.cpp | 3 ++ tests/carddatabase/mocks.cpp | 3 ++ 8 files changed, 60 insertions(+), 4 deletions(-) diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp index 0fb32984a..95557dfbe 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp @@ -34,10 +34,17 @@ DeckPreviewWidget::DeckPreviewWidget(QWidget *_parent, connect(&SettingsCache::instance(), &SettingsCache::visualDeckStorageShowTagsOnDeckPreviewsChanged, this, &DeckPreviewWidget::updateTagsVisibility); + connect(&SettingsCache::instance(), &SettingsCache::visualDeckStorageShowBannerCardComboBoxChanged, this, + &DeckPreviewWidget::updateBannerCardComboBoxVisibility); layout->addWidget(bannerCardDisplayWidget); } +void DeckPreviewWidget::retranslateUi() +{ + bannerCardLabel->setText(tr("Banner Card")); +} + void DeckPreviewWidget::resizeEvent(QResizeEvent *event) { QWidget::resizeEvent(event); @@ -68,7 +75,6 @@ void DeckPreviewWidget::initializeUi(const bool deckLoadSuccess) bannerCardLabel = new QLabel(); bannerCardLabel->setObjectName("bannerCardLabel"); - bannerCardLabel->setText(tr("Banner Card")); bannerCardComboBox = new QComboBox(this); bannerCardComboBox->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); bannerCardComboBox->setObjectName("bannerCardComboBox"); @@ -77,14 +83,16 @@ void DeckPreviewWidget::initializeUi(const bool deckLoadSuccess) connect(bannerCardComboBox, QOverload::of(&QComboBox::currentIndexChanged), this, &DeckPreviewWidget::setBannerCard); - updateTagsVisibility(SettingsCache::instance().getVisualDeckStorageShowTagsOnDeckPreviews()); - updateBannerCardComboBox(); + updateBannerCardComboBoxVisibility(SettingsCache::instance().getVisualDeckStorageShowBannerCardComboBox()); + updateTagsVisibility(SettingsCache::instance().getVisualDeckStorageShowTagsOnDeckPreviews()); layout->addWidget(colorIdentityWidget); layout->addWidget(deckTagsDisplayWidget); layout->addWidget(bannerCardLabel); layout->addWidget(bannerCardComboBox); + + retranslateUi(); } void DeckPreviewWidget::updateVisibility() @@ -103,9 +111,24 @@ bool DeckPreviewWidget::checkVisibility() const return true; } +void DeckPreviewWidget::updateBannerCardComboBoxVisibility(bool visible) +{ + if (bannerCardComboBox == nullptr) { + return; + } + + if (visible) { + bannerCardComboBox->setVisible(true); + bannerCardLabel->setVisible(true); + } else { + bannerCardComboBox->setHidden(true); + bannerCardLabel->setHidden(true); + } +} + void DeckPreviewWidget::updateTagsVisibility(bool visible) { - if (!deckTagsDisplayWidget) { + if (deckTagsDisplayWidget == nullptr) { return; } diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h index b0f973d05..36228ab6e 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h @@ -19,6 +19,7 @@ public: explicit DeckPreviewWidget(QWidget *_parent, VisualDeckStorageWidget *_visualDeckStorageWidget, const QString &_filePath); + void retranslateUi(); QString getColorIdentity(); VisualDeckStorageWidget *visualDeckStorageWidget; @@ -49,6 +50,7 @@ public slots: void imageDoubleClickedEvent(QMouseEvent *event, DeckPreviewCardPictureWidget *instance); void initializeUi(bool deckLoadSuccess); void updateVisibility(); + void updateBannerCardComboBoxVisibility(bool visible); void updateTagsVisibility(bool visible); 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 f0dd2eb9e..324ce9458 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 @@ -65,6 +65,12 @@ VisualDeckStorageWidget::VisualDeckStorageWidget(QWidget *parent) : QWidget(pare connect(drawUnusedColorIdentitiesCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(), &SettingsCache::setVisualDeckStorageDrawUnusedColorIdentities); + bannerCardComboBoxVisibilityCheckBox = new QCheckBox(this); + bannerCardComboBoxVisibilityCheckBox->setChecked( + SettingsCache::instance().getVisualDeckStorageShowBannerCardComboBox()); + connect(bannerCardComboBoxVisibilityCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(), + &SettingsCache::setVisualDeckStorageShowBannerCardComboBox); + // card size slider cardSizeWidget = new CardSizeWidget(this, nullptr, SettingsCache::instance().getVisualDeckStorageCardSize()); @@ -73,6 +79,7 @@ VisualDeckStorageWidget::VisualDeckStorageWidget(QWidget *parent) : QWidget(pare quickSettingsWidget->addSettingsWidget(tagFilterVisibilityCheckBox); quickSettingsWidget->addSettingsWidget(tagsOnWidgetsVisibilityCheckBox); quickSettingsWidget->addSettingsWidget(drawUnusedColorIdentitiesCheckBox); + quickSettingsWidget->addSettingsWidget(bannerCardComboBoxVisibilityCheckBox); quickSettingsWidget->addSettingsWidget(cardSizeWidget); searchAndSortLayout->addWidget(deckPreviewColorIdentityFilterWidget); @@ -162,6 +169,7 @@ void VisualDeckStorageWidget::retranslateUi() tagFilterVisibilityCheckBox->setText(tr("Show Tag Filter")); tagsOnWidgetsVisibilityCheckBox->setText(tr("Show Tags On Deck Previews")); drawUnusedColorIdentitiesCheckBox->setText(tr("Draw not contained Color Identities")); + bannerCardComboBoxVisibilityCheckBox->setText(tr("Show Banner Card Selection Option")); } void VisualDeckStorageWidget::deckPreviewClickedEvent(QMouseEvent *event, DeckPreviewWidget *instance) 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 554b1c36c..b6f11f54b 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 @@ -68,6 +68,7 @@ private: SettingsButtonWidget *quickSettingsWidget; QCheckBox *showFoldersCheckBox; QCheckBox *drawUnusedColorIdentitiesCheckBox; + QCheckBox *bannerCardComboBoxVisibilityCheckBox; QCheckBox *tagFilterVisibilityCheckBox; QCheckBox *tagsOnWidgetsVisibilityCheckBox; QScrollArea *scrollArea; diff --git a/cockatrice/src/settings/cache_settings.cpp b/cockatrice/src/settings/cache_settings.cpp index c8f2aa737..58e16f24b 100644 --- a/cockatrice/src/settings/cache_settings.cpp +++ b/cockatrice/src/settings/cache_settings.cpp @@ -264,6 +264,8 @@ SettingsCache::SettingsCache() visualDeckStorageSortingOrder = settings->value("interface/visualdeckstoragesortingorder", 0).toInt(); visualDeckStorageShowFolders = settings->value("interface/visualdeckstorageshowfolders", true).toBool(); visualDeckStorageShowTagFilter = settings->value("interface/visualdeckstorageshowtagfilter", true).toBool(); + visualDeckStorageShowBannerCardComboBox = + settings->value("interface/visualdeckstorageshowbannercardcombobox", true).toBool(); visualDeckStorageShowTagsOnDeckPreviews = settings->value("interface/visualdeckstorageshowtagsondeckpreviews", true).toBool(); visualDeckStorageDrawUnusedColorIdentities = @@ -670,6 +672,13 @@ void SettingsCache::setVisualDeckStorageShowTagFilter(QT_STATE_CHANGED_T _showTa emit visualDeckStorageShowTagFilterChanged(visualDeckStorageShowTagFilter); } +void SettingsCache::setVisualDeckStorageShowBannerCardComboBox(QT_STATE_CHANGED_T _showBannerCardComboBox) +{ + visualDeckStorageShowBannerCardComboBox = _showBannerCardComboBox; + settings->setValue("interface/visualdeckstorageshowbannercardcombobox", visualDeckStorageShowBannerCardComboBox); + emit visualDeckStorageShowBannerCardComboBoxChanged(visualDeckStorageShowBannerCardComboBox); +} + void SettingsCache::setVisualDeckStorageShowTagsOnDeckPreviews(QT_STATE_CHANGED_T _showTags) { visualDeckStorageShowTagsOnDeckPreviews = _showTags; diff --git a/cockatrice/src/settings/cache_settings.h b/cockatrice/src/settings/cache_settings.h index ff89bb9e9..bb23394e0 100644 --- a/cockatrice/src/settings/cache_settings.h +++ b/cockatrice/src/settings/cache_settings.h @@ -60,6 +60,7 @@ signals: void printingSelectorCardSizeChanged(); void printingSelectorNavigationButtonsVisibleChanged(); void visualDeckStorageShowTagFilterChanged(bool _visible); + void visualDeckStorageShowBannerCardComboBoxChanged(bool _visible); void visualDeckStorageShowTagsOnDeckPreviewsChanged(bool _visible); void visualDeckStorageCardSizeChanged(); void visualDeckStorageDrawUnusedColorIdentitiesChanged(bool _visible); @@ -129,6 +130,7 @@ private: bool printingSelectorNavigationButtonsVisible; int visualDeckStorageSortingOrder; bool visualDeckStorageShowFolders; + bool visualDeckStorageShowBannerCardComboBox; bool visualDeckStorageShowTagsOnDeckPreviews; bool visualDeckStorageShowTagFilter; int visualDeckStorageCardSize; @@ -412,6 +414,10 @@ public: { return visualDeckStorageShowTagFilter; } + bool getVisualDeckStorageShowBannerCardComboBox() const + { + return visualDeckStorageShowBannerCardComboBox; + } bool getVisualDeckStorageShowTagsOnDeckPreviews() const { return visualDeckStorageShowTagsOnDeckPreviews; @@ -760,6 +766,7 @@ public slots: void setVisualDeckStorageSortingOrder(int _visualDeckStorageSortingOrder); void setVisualDeckStorageShowFolders(QT_STATE_CHANGED_T value); void setVisualDeckStorageShowTagFilter(QT_STATE_CHANGED_T _showTags); + void setVisualDeckStorageShowBannerCardComboBox(QT_STATE_CHANGED_T _showBannerCardComboBox); void setVisualDeckStorageShowTagsOnDeckPreviews(QT_STATE_CHANGED_T _showTags); void setVisualDeckStorageCardSize(int _visualDeckStorageCardSize); void setVisualDeckStorageDrawUnusedColorIdentities(QT_STATE_CHANGED_T _visualDeckStorageDrawUnusedColorIdentities); diff --git a/dbconverter/src/mocks.cpp b/dbconverter/src/mocks.cpp index 21769a5d4..9a76edf84 100644 --- a/dbconverter/src/mocks.cpp +++ b/dbconverter/src/mocks.cpp @@ -208,6 +208,9 @@ void SettingsCache::setVisualDeckStorageShowFolders(QT_STATE_CHANGED_T /* value void SettingsCache::setVisualDeckStorageShowTagFilter(QT_STATE_CHANGED_T /* _showTags */) { } +void SettingsCache::setVisualDeckStorageShowBannerCardComboBox(QT_STATE_CHANGED_T /* _showBannerCardComboBox */) +{ +} void SettingsCache::setVisualDeckStorageShowTagsOnDeckPreviews(QT_STATE_CHANGED_T /* _showTags */) { } diff --git a/tests/carddatabase/mocks.cpp b/tests/carddatabase/mocks.cpp index db813a8f1..0383a81d2 100644 --- a/tests/carddatabase/mocks.cpp +++ b/tests/carddatabase/mocks.cpp @@ -212,6 +212,9 @@ void SettingsCache::setVisualDeckStorageShowFolders(QT_STATE_CHANGED_T /* value void SettingsCache::setVisualDeckStorageShowTagFilter(QT_STATE_CHANGED_T /* _showTags */) { } +void SettingsCache::setVisualDeckStorageShowBannerCardComboBox(QT_STATE_CHANGED_T /* _showBannerCardComboBox */) +{ +} void SettingsCache::setVisualDeckStorageShowTagsOnDeckPreviews(QT_STATE_CHANGED_T /* _showTags */) { }