mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2025-12-12 15:49:28 -08:00
Add setting to hide visual deck storage in game lobby (#5570)
This commit is contained in:
@@ -625,10 +625,15 @@ UserInterfaceSettingsPage::UserInterfaceSettingsPage()
|
||||
connect(&visualDeckStorageAlwaysConvertCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(),
|
||||
&SettingsCache::setVisualDeckStorageAlwaysConvert);
|
||||
|
||||
visualDeckStorageInGameCheckBox.setChecked(SettingsCache::instance().getVisualDeckStorageInGame());
|
||||
connect(&visualDeckStorageInGameCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(),
|
||||
&SettingsCache::setVisualDeckStorageInGame);
|
||||
|
||||
auto *deckEditorGrid = new QGridLayout;
|
||||
deckEditorGrid->addWidget(&openDeckInNewTabCheckBox, 0, 0);
|
||||
deckEditorGrid->addWidget(&visualDeckStoragePromptForConversionCheckBox, 1, 0);
|
||||
deckEditorGrid->addWidget(&visualDeckStorageAlwaysConvertCheckBox, 2, 0);
|
||||
deckEditorGrid->addWidget(&visualDeckStorageInGameCheckBox, 3, 0);
|
||||
|
||||
deckEditorGroupBox = new QGroupBox;
|
||||
deckEditorGroupBox->setLayout(deckEditorGrid);
|
||||
@@ -690,6 +695,7 @@ void UserInterfaceSettingsPage::retranslateUi()
|
||||
openDeckInNewTabCheckBox.setText(tr("Open deck in new tab by default"));
|
||||
visualDeckStoragePromptForConversionCheckBox.setText(tr("Prompt before converting .txt decks to .cod format"));
|
||||
visualDeckStorageAlwaysConvertCheckBox.setText(tr("Always convert if not prompted"));
|
||||
visualDeckStorageInGameCheckBox.setText(tr("Use visual deck storage in game lobby"));
|
||||
replayGroupBox->setTitle(tr("Replay settings"));
|
||||
rewindBufferingMsLabel.setText(tr("Buffer time for backwards skip via shortcut:"));
|
||||
rewindBufferingMsBox.setSuffix(" ms");
|
||||
|
||||
@@ -146,6 +146,7 @@ private:
|
||||
QCheckBox openDeckInNewTabCheckBox;
|
||||
QCheckBox visualDeckStoragePromptForConversionCheckBox;
|
||||
QCheckBox visualDeckStorageAlwaysConvertCheckBox;
|
||||
QCheckBox visualDeckStorageInGameCheckBox;
|
||||
QLabel rewindBufferingMsLabel;
|
||||
QSpinBox rewindBufferingMsBox;
|
||||
QGroupBox *generalGroupBox;
|
||||
|
||||
@@ -517,6 +517,11 @@ void DeckView::setDeck(const DeckList &_deck)
|
||||
deckViewScene->setDeck(_deck);
|
||||
}
|
||||
|
||||
void DeckView::clearDeck()
|
||||
{
|
||||
deckViewScene->clearContents();
|
||||
}
|
||||
|
||||
void DeckView::resetSideboardPlan()
|
||||
{
|
||||
deckViewScene->resetSideboardPlan();
|
||||
|
||||
@@ -109,7 +109,6 @@ private:
|
||||
DeckList *deck;
|
||||
QMap<QString, DeckViewCardContainer *> cardContainers;
|
||||
qreal optimalAspectRatio;
|
||||
void clearContents();
|
||||
void rebuildTree();
|
||||
|
||||
public:
|
||||
@@ -123,6 +122,7 @@ public:
|
||||
{
|
||||
return locked;
|
||||
}
|
||||
void clearContents();
|
||||
void setDeck(const DeckList &_deck);
|
||||
void setOptimalAspectRatio(qreal _optimalAspectRatio)
|
||||
{
|
||||
@@ -152,6 +152,7 @@ signals:
|
||||
public:
|
||||
explicit DeckView(QWidget *parent = nullptr);
|
||||
void setDeck(const DeckList &_deck);
|
||||
void clearDeck();
|
||||
void setLocked(bool _locked)
|
||||
{
|
||||
deckViewScene->setLocked(_locked);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -65,6 +65,7 @@ private slots:
|
||||
void sideboardLockButtonClicked();
|
||||
void updateSideboardLockButtonText();
|
||||
void refreshShortcuts();
|
||||
void updateShowVisualDeckStorage(bool enabled);
|
||||
signals:
|
||||
void newCardAdded(AbstractCardItem *card);
|
||||
void notIdle();
|
||||
|
||||
@@ -273,6 +273,7 @@ SettingsCache::SettingsCache()
|
||||
visualDeckStoragePromptForConversion =
|
||||
settings->value("interface/visualdeckstoragepromptforconversion", true).toBool();
|
||||
visualDeckStorageAlwaysConvert = settings->value("interface/visualdeckstoragealwaysconvert", false).toBool();
|
||||
visualDeckStorageInGame = settings->value("interface/visualdeckstorageingame", true).toBool();
|
||||
horizontalHand = settings->value("hand/horizontal", true).toBool();
|
||||
invertVerticalCoordinate = settings->value("table/invert_vertical", false).toBool();
|
||||
minPlayersForMultiColumnLayout = settings->value("interface/min_players_multicolumn", 4).toInt();
|
||||
@@ -710,6 +711,13 @@ void SettingsCache::setVisualDeckStorageAlwaysConvert(QT_STATE_CHANGED_T _visual
|
||||
settings->setValue("interface/visualdeckstoragealwaysconvert", visualDeckStorageAlwaysConvert);
|
||||
}
|
||||
|
||||
void SettingsCache::setVisualDeckStorageInGame(QT_STATE_CHANGED_T value)
|
||||
{
|
||||
visualDeckStorageInGame = value;
|
||||
settings->setValue("interface/visualdeckstorageingame", visualDeckStorageInGame);
|
||||
emit visualDeckStorageInGameChanged(visualDeckStorageInGame);
|
||||
}
|
||||
|
||||
void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T _horizontalHand)
|
||||
{
|
||||
horizontalHand = static_cast<bool>(_horizontalHand);
|
||||
|
||||
@@ -63,6 +63,7 @@ signals:
|
||||
void printingSelectorCardSizeSliderVisibleChanged();
|
||||
void printingSelectorNavigationButtonsVisibleChanged();
|
||||
void visualDeckStorageCardSizeChanged();
|
||||
void visualDeckStorageInGameChanged(bool enabled);
|
||||
void horizontalHandChanged();
|
||||
void handJustificationChanged();
|
||||
void invertVerticalCoordinateChanged();
|
||||
@@ -135,6 +136,7 @@ private:
|
||||
int visualDeckStorageUnusedColorIdentitiesOpacity;
|
||||
bool visualDeckStoragePromptForConversion;
|
||||
bool visualDeckStorageAlwaysConvert;
|
||||
bool visualDeckStorageInGame;
|
||||
bool horizontalHand;
|
||||
bool invertVerticalCoordinate;
|
||||
int minPlayersForMultiColumnLayout;
|
||||
@@ -434,6 +436,10 @@ public:
|
||||
{
|
||||
return visualDeckStorageAlwaysConvert;
|
||||
}
|
||||
bool getVisualDeckStorageInGame() const
|
||||
{
|
||||
return visualDeckStorageInGame;
|
||||
}
|
||||
bool getHorizontalHand() const
|
||||
{
|
||||
return horizontalHand;
|
||||
@@ -760,6 +766,7 @@ public slots:
|
||||
void setVisualDeckStorageUnusedColorIdentitiesOpacity(int _visualDeckStorageUnusedColorIdentitiesOpacity);
|
||||
void setVisualDeckStoragePromptForConversion(QT_STATE_CHANGED_T _visualDeckStoragePromptForConversion);
|
||||
void setVisualDeckStorageAlwaysConvert(QT_STATE_CHANGED_T _visualDeckStorageAlwaysConvert);
|
||||
void setVisualDeckStorageInGame(QT_STATE_CHANGED_T value);
|
||||
void setHorizontalHand(QT_STATE_CHANGED_T _horizontalHand);
|
||||
void setInvertVerticalCoordinate(QT_STATE_CHANGED_T _invertVerticalCoordinate);
|
||||
void setMinPlayersForMultiColumnLayout(int _minPlayersForMultiColumnLayout);
|
||||
|
||||
@@ -229,6 +229,9 @@ void SettingsCache::setVisualDeckStoragePromptForConversion(
|
||||
void SettingsCache::setVisualDeckStorageAlwaysConvert(QT_STATE_CHANGED_T /* _visualDeckStorageAlwaysConvert */)
|
||||
{
|
||||
}
|
||||
void SettingsCache::setVisualDeckStorageInGame(QT_STATE_CHANGED_T /* value */)
|
||||
{
|
||||
}
|
||||
void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T /* _horizontalHand */)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -233,6 +233,9 @@ void SettingsCache::setVisualDeckStoragePromptForConversion(
|
||||
void SettingsCache::setVisualDeckStorageAlwaysConvert(QT_STATE_CHANGED_T /* _visualDeckStorageAlwaysConvert */)
|
||||
{
|
||||
}
|
||||
void SettingsCache::setVisualDeckStorageInGame(QT_STATE_CHANGED_T /* value */)
|
||||
{
|
||||
}
|
||||
void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T /* _horizontalHand */)
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user