Add setting to hide visual deck storage in game lobby (#5570)

This commit is contained in:
RickyRister 2025-02-06 05:44:33 -08:00 committed by GitHub
parent 1ee0e87ba7
commit d951b082c4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 56 additions and 5 deletions

View file

@ -101,6 +101,9 @@ DeckViewContainer::DeckViewContainer(int _playerId, TabGame *parent)
connect(&SettingsCache::instance().shortcuts(), SIGNAL(shortCutChanged()), this, SLOT(refreshShortcuts()));
refreshShortcuts();
connect(&SettingsCache::instance(), &SettingsCache::visualDeckStorageInGameChanged, this,
&DeckViewContainer::updateShowVisualDeckStorage);
switchToDeckSelectView();
}
@ -122,8 +125,8 @@ static void setVisibility(QPushButton *button, bool visible)
void DeckViewContainer::switchToDeckSelectView()
{
deckView->setVisible(false);
visualDeckStorageWidget->setVisible(true);
deckView->setHidden(SettingsCache::instance().getVisualDeckStorageInGame());
visualDeckStorageWidget->setHidden(!SettingsCache::instance().getVisualDeckStorageInGame());
deckViewLayout->update();
setVisibility(loadLocalButton, true);
@ -143,8 +146,8 @@ void DeckViewContainer::switchToDeckSelectView()
void DeckViewContainer::switchToDeckLoadedView()
{
deckView->setVisible(true);
visualDeckStorageWidget->setVisible(false);
deckView->setHidden(false);
visualDeckStorageWidget->setHidden(true);
deckViewLayout->update();
setVisibility(loadLocalButton, false);
@ -179,8 +182,21 @@ void DeckViewContainer::refreshShortcuts()
sideboardLockButton->setShortcut(shortcuts.getSingleShortcut("DeckViewContainer/sideboardLockButton"));
}
/**
* Update VDS visibility when settings change
*/
void DeckViewContainer::updateShowVisualDeckStorage(bool enabled)
{
// view mode state isn't stored in a field, so we determine state by checking the button
if (loadLocalButton->isEnabled()) {
deckView->setHidden(enabled);
visualDeckStorageWidget->setHidden(!enabled);
}
}
void DeckViewContainer::unloadDeck()
{
deckView->clearDeck();
switchToDeckSelectView();
}