diff --git a/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp b/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp index 541b88144..1488d7d69 100644 --- a/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp +++ b/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp @@ -153,6 +153,19 @@ void DeckEditorDeckDockWidget::createDeckDock() bracketRefreshButton->setAutoRaise(true); connect(bracketRefreshButton, &QToolButton::clicked, this, &DeckEditorDeckDockWidget::requestBracketEstimate); + if (SettingsCache::instance().getDeckEditorCommanderSpellbookIntegrationEnabled() != + deckEditorCommanderSpellbookIntegrationEnabledIndexUnprompted) { + connect(&SettingsCache::instance(), &SettingsCache::deckEditorCommanderSpellbookIntegrationEnabledChanged, this, + &DeckEditorDeckDockWidget::maybeAutoEstimateBracket); + connect(&SettingsCache::instance(), + &SettingsCache::deckEditorCommanderSpellbookIntegrationUseOfficialBracketNamesChanged, this, + &DeckEditorDeckDockWidget::maybeAutoEstimateBracket); + } + + bracketLabel->setVisible(false); + bracketValueLabel->setVisible(false); + bracketInfoButton->setVisible(false); + bracketRefreshButton->setVisible(false); commentsLabel = new QLabel(); commentsLabel->setObjectName("commentsLabel"); @@ -379,6 +392,12 @@ bool DeckEditorDeckDockWidget::promptCommanderSpellbookIntegration() SettingsCache::instance().setDeckEditorCommanderSpellbookIntegrationUseOfficialBracketNames(useOfficial); } + connect(&SettingsCache::instance(), &SettingsCache::deckEditorCommanderSpellbookIntegrationEnabledChanged, this, + &DeckEditorDeckDockWidget::maybeAutoEstimateBracket); + connect(&SettingsCache::instance(), + &SettingsCache::deckEditorCommanderSpellbookIntegrationUseOfficialBracketNamesChanged, this, + &DeckEditorDeckDockWidget::maybeAutoEstimateBracket); + // Persist integration mode if (clickedButton == disableBtn) { SettingsCache::instance().setDeckEditorCommanderSpellbookIntegrationEnabled( @@ -399,6 +418,14 @@ bool DeckEditorDeckDockWidget::promptCommanderSpellbookIntegration() return false; } +void DeckEditorDeckDockWidget::updateBracketVisibility(bool visible) +{ + bracketLabel->setVisible(visible); + bracketValueLabel->setVisible(visible); + bracketInfoButton->setVisible(visible); + bracketRefreshButton->setVisible(visible); +} + void DeckEditorDeckDockWidget::requestBracketEstimate() { bracketRefreshButton->setEnabled(false); @@ -482,10 +509,7 @@ void DeckEditorDeckDockWidget::initializeFormats() const bool bracketVisible = isCommander && commanderSpellbookIntegrationEnabled; - bracketLabel->setVisible(bracketVisible); - bracketValueLabel->setVisible(bracketVisible); - bracketInfoButton->setVisible(bracketVisible); - bracketRefreshButton->setVisible(bracketVisible); + updateBracketVisibility(bracketVisible); if (!isCommander) { bracketValueLabel->setText("-"); @@ -507,22 +531,20 @@ void DeckEditorDeckDockWidget::maybeAutoEstimateBracket() const bool isCommander = (formatKey.compare("commander", Qt::CaseInsensitive) == 0); - if (!isCommander) { + int mode = SettingsCache::instance().getDeckEditorCommanderSpellbookIntegrationEnabled(); + + if (!isCommander || mode == deckEditorCommanderSpellbookIntegrationEnabledIndexDisabled) { + updateBracketVisibility(false); return; } - int mode = SettingsCache::instance().getDeckEditorCommanderSpellbookIntegrationEnabled(); - if (mode == deckEditorCommanderSpellbookIntegrationEnabledIndexUnprompted) { if (!promptCommanderSpellbookIntegration()) { - bracketLabel->setVisible(false); - bracketValueLabel->setVisible(false); - bracketInfoButton->setVisible(false); - bracketRefreshButton->setVisible(false); - return; // user chose Disabled + updateBracketVisibility(false); + return; } - // user chose Enabled or Automatic → fall through } + updateBracketVisibility(true); mode = SettingsCache::instance().getDeckEditorCommanderSpellbookIntegrationEnabled(); if (mode != deckEditorCommanderSpellbookIntegrationEnabledIndexAutomatic) { return; diff --git a/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.h b/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.h index 0b670d67f..ec6eed7f0 100644 --- a/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.h +++ b/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.h @@ -36,6 +36,7 @@ public: QComboBox *bannerCardComboBox; void createDeckDock(); bool promptCommanderSpellbookIntegration(); + void updateBracketVisibility(bool visible); void requestBracketEstimate(); ExactCard getCurrentCard(); void retranslateUi();