mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-10 08:14:47 -07:00
actually delete VDS when hiding it in game lobby (#5572)
This commit is contained in:
parent
94129607e5
commit
23223e10b5
2 changed files with 49 additions and 14 deletions
|
|
@ -48,7 +48,7 @@ void ToggleButton::setState(bool _state)
|
|||
}
|
||||
|
||||
DeckViewContainer::DeckViewContainer(int _playerId, TabGame *parent)
|
||||
: QWidget(nullptr), parentGame(parent), playerId(_playerId)
|
||||
: QWidget(nullptr), visualDeckStorageWidget(nullptr), parentGame(parent), playerId(_playerId)
|
||||
{
|
||||
loadLocalButton = new QPushButton;
|
||||
loadRemoteButton = new QPushButton;
|
||||
|
|
@ -86,14 +86,9 @@ DeckViewContainer::DeckViewContainer(int _playerId, TabGame *parent)
|
|||
connect(deckView, SIGNAL(newCardAdded(AbstractCardItem *)), this, SIGNAL(newCardAdded(AbstractCardItem *)));
|
||||
connect(deckView, SIGNAL(sideboardPlanChanged()), this, SLOT(sideboardPlanChanged()));
|
||||
|
||||
visualDeckStorageWidget = new VisualDeckStorageWidget(this);
|
||||
connect(visualDeckStorageWidget, &VisualDeckStorageWidget::deckLoadRequested, this,
|
||||
&DeckViewContainer::loadDeckFromFile);
|
||||
|
||||
deckViewLayout = new QVBoxLayout;
|
||||
deckViewLayout->addLayout(buttonHBox);
|
||||
deckViewLayout->addWidget(deckView);
|
||||
deckViewLayout->addWidget(visualDeckStorageWidget);
|
||||
deckViewLayout->setContentsMargins(0, 0, 0, 0);
|
||||
setLayout(deckViewLayout);
|
||||
|
||||
|
|
@ -107,6 +102,22 @@ DeckViewContainer::DeckViewContainer(int _playerId, TabGame *parent)
|
|||
switchToDeckSelectView();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the VDS widget and inserts it into the layout. No-ops if the widget already exists
|
||||
*/
|
||||
void DeckViewContainer::tryCreateVisualDeckStorageWidget()
|
||||
{
|
||||
if (visualDeckStorageWidget) {
|
||||
return;
|
||||
}
|
||||
|
||||
visualDeckStorageWidget = new VisualDeckStorageWidget(this);
|
||||
connect(visualDeckStorageWidget, &VisualDeckStorageWidget::deckLoadRequested, this,
|
||||
&DeckViewContainer::loadDeckFromFile);
|
||||
|
||||
deckViewLayout->addWidget(visualDeckStorageWidget);
|
||||
}
|
||||
|
||||
void DeckViewContainer::retranslateUi()
|
||||
{
|
||||
loadLocalButton->setText(tr("Load deck..."));
|
||||
|
|
@ -125,8 +136,18 @@ static void setVisibility(QPushButton *button, bool visible)
|
|||
|
||||
void DeckViewContainer::switchToDeckSelectView()
|
||||
{
|
||||
deckView->setHidden(SettingsCache::instance().getVisualDeckStorageInGame());
|
||||
visualDeckStorageWidget->setHidden(!SettingsCache::instance().getVisualDeckStorageInGame());
|
||||
if (SettingsCache::instance().getVisualDeckStorageInGame()) {
|
||||
deckView->setHidden(true);
|
||||
|
||||
tryCreateVisualDeckStorageWidget();
|
||||
visualDeckStorageWidget->setHidden(false);
|
||||
} else {
|
||||
deckView->setHidden(false);
|
||||
if (visualDeckStorageWidget) {
|
||||
visualDeckStorageWidget->setHidden(true);
|
||||
}
|
||||
}
|
||||
|
||||
deckViewLayout->update();
|
||||
|
||||
setVisibility(loadLocalButton, true);
|
||||
|
|
@ -147,7 +168,10 @@ void DeckViewContainer::switchToDeckSelectView()
|
|||
void DeckViewContainer::switchToDeckLoadedView()
|
||||
{
|
||||
deckView->setHidden(false);
|
||||
visualDeckStorageWidget->setHidden(true);
|
||||
if (visualDeckStorageWidget) {
|
||||
visualDeckStorageWidget->setHidden(true);
|
||||
}
|
||||
|
||||
deckViewLayout->update();
|
||||
|
||||
setVisibility(loadLocalButton, false);
|
||||
|
|
@ -183,15 +207,25 @@ void DeckViewContainer::refreshShortcuts()
|
|||
}
|
||||
|
||||
/**
|
||||
* Update VDS visibility when settings change
|
||||
* Update VDS existence 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);
|
||||
if (enabled) {
|
||||
tryCreateVisualDeckStorageWidget();
|
||||
// view mode state isn't stored in a field, so we determine state by checking the button
|
||||
bool isDeckSelectView = loadLocalButton->isEnabled();
|
||||
visualDeckStorageWidget->setHidden(!isDeckSelectView);
|
||||
deckView->setHidden(isDeckSelectView);
|
||||
} else {
|
||||
if (visualDeckStorageWidget) {
|
||||
visualDeckStorageWidget->deleteLater();
|
||||
visualDeckStorageWidget = nullptr;
|
||||
}
|
||||
deckView->setHidden(false);
|
||||
}
|
||||
|
||||
deckViewLayout->update();
|
||||
}
|
||||
|
||||
void DeckViewContainer::unloadDeck()
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ private:
|
|||
TabGame *parentGame;
|
||||
int playerId;
|
||||
|
||||
void tryCreateVisualDeckStorageWidget();
|
||||
void sendReadyStartCommand(bool ready);
|
||||
private slots:
|
||||
void switchToDeckSelectView();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue