mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-03 12:03:55 -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)
|
DeckViewContainer::DeckViewContainer(int _playerId, TabGame *parent)
|
||||||
: QWidget(nullptr), parentGame(parent), playerId(_playerId)
|
: QWidget(nullptr), visualDeckStorageWidget(nullptr), parentGame(parent), playerId(_playerId)
|
||||||
{
|
{
|
||||||
loadLocalButton = new QPushButton;
|
loadLocalButton = new QPushButton;
|
||||||
loadRemoteButton = 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(newCardAdded(AbstractCardItem *)), this, SIGNAL(newCardAdded(AbstractCardItem *)));
|
||||||
connect(deckView, SIGNAL(sideboardPlanChanged()), this, SLOT(sideboardPlanChanged()));
|
connect(deckView, SIGNAL(sideboardPlanChanged()), this, SLOT(sideboardPlanChanged()));
|
||||||
|
|
||||||
visualDeckStorageWidget = new VisualDeckStorageWidget(this);
|
|
||||||
connect(visualDeckStorageWidget, &VisualDeckStorageWidget::deckLoadRequested, this,
|
|
||||||
&DeckViewContainer::loadDeckFromFile);
|
|
||||||
|
|
||||||
deckViewLayout = new QVBoxLayout;
|
deckViewLayout = new QVBoxLayout;
|
||||||
deckViewLayout->addLayout(buttonHBox);
|
deckViewLayout->addLayout(buttonHBox);
|
||||||
deckViewLayout->addWidget(deckView);
|
deckViewLayout->addWidget(deckView);
|
||||||
deckViewLayout->addWidget(visualDeckStorageWidget);
|
|
||||||
deckViewLayout->setContentsMargins(0, 0, 0, 0);
|
deckViewLayout->setContentsMargins(0, 0, 0, 0);
|
||||||
setLayout(deckViewLayout);
|
setLayout(deckViewLayout);
|
||||||
|
|
||||||
|
|
@ -107,6 +102,22 @@ DeckViewContainer::DeckViewContainer(int _playerId, TabGame *parent)
|
||||||
switchToDeckSelectView();
|
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()
|
void DeckViewContainer::retranslateUi()
|
||||||
{
|
{
|
||||||
loadLocalButton->setText(tr("Load deck..."));
|
loadLocalButton->setText(tr("Load deck..."));
|
||||||
|
|
@ -125,8 +136,18 @@ static void setVisibility(QPushButton *button, bool visible)
|
||||||
|
|
||||||
void DeckViewContainer::switchToDeckSelectView()
|
void DeckViewContainer::switchToDeckSelectView()
|
||||||
{
|
{
|
||||||
deckView->setHidden(SettingsCache::instance().getVisualDeckStorageInGame());
|
if (SettingsCache::instance().getVisualDeckStorageInGame()) {
|
||||||
visualDeckStorageWidget->setHidden(!SettingsCache::instance().getVisualDeckStorageInGame());
|
deckView->setHidden(true);
|
||||||
|
|
||||||
|
tryCreateVisualDeckStorageWidget();
|
||||||
|
visualDeckStorageWidget->setHidden(false);
|
||||||
|
} else {
|
||||||
|
deckView->setHidden(false);
|
||||||
|
if (visualDeckStorageWidget) {
|
||||||
|
visualDeckStorageWidget->setHidden(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
deckViewLayout->update();
|
deckViewLayout->update();
|
||||||
|
|
||||||
setVisibility(loadLocalButton, true);
|
setVisibility(loadLocalButton, true);
|
||||||
|
|
@ -147,7 +168,10 @@ void DeckViewContainer::switchToDeckSelectView()
|
||||||
void DeckViewContainer::switchToDeckLoadedView()
|
void DeckViewContainer::switchToDeckLoadedView()
|
||||||
{
|
{
|
||||||
deckView->setHidden(false);
|
deckView->setHidden(false);
|
||||||
visualDeckStorageWidget->setHidden(true);
|
if (visualDeckStorageWidget) {
|
||||||
|
visualDeckStorageWidget->setHidden(true);
|
||||||
|
}
|
||||||
|
|
||||||
deckViewLayout->update();
|
deckViewLayout->update();
|
||||||
|
|
||||||
setVisibility(loadLocalButton, false);
|
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)
|
void DeckViewContainer::updateShowVisualDeckStorage(bool enabled)
|
||||||
{
|
{
|
||||||
// view mode state isn't stored in a field, so we determine state by checking the button
|
if (enabled) {
|
||||||
if (loadLocalButton->isEnabled()) {
|
tryCreateVisualDeckStorageWidget();
|
||||||
deckView->setHidden(enabled);
|
// view mode state isn't stored in a field, so we determine state by checking the button
|
||||||
visualDeckStorageWidget->setHidden(!enabled);
|
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()
|
void DeckViewContainer::unloadDeck()
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@ private:
|
||||||
TabGame *parentGame;
|
TabGame *parentGame;
|
||||||
int playerId;
|
int playerId;
|
||||||
|
|
||||||
|
void tryCreateVisualDeckStorageWidget();
|
||||||
void sendReadyStartCommand(bool ready);
|
void sendReadyStartCommand(bool ready);
|
||||||
private slots:
|
private slots:
|
||||||
void switchToDeckSelectView();
|
void switchToDeckSelectView();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue