From ca82fd867a6746023bca557b5668a0f788afc236 Mon Sep 17 00:00:00 2001 From: Jeff Date: Sat, 22 Aug 2015 15:29:00 -0400 Subject: [PATCH] Option to opt-out of remember game settings --- cockatrice/src/dlg_creategame.cpp | 30 ++++++++++++++++++++---------- cockatrice/src/dlg_creategame.h | 1 + cockatrice/src/settingscache.cpp | 7 +++++++ cockatrice/src/settingscache.h | 3 +++ 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/cockatrice/src/dlg_creategame.cpp b/cockatrice/src/dlg_creategame.cpp index 745c5ee5..0f8cea4f 100644 --- a/cockatrice/src/dlg_creategame.cpp +++ b/cockatrice/src/dlg_creategame.cpp @@ -21,6 +21,7 @@ void DlgCreateGame::sharedCtor() { + rememberGameSettings = new QCheckBox(tr("Re&member settings")); descriptionLabel = new QLabel(tr("&Description:")); descriptionEdit = new QLineEdit; descriptionLabel->setBuddy(descriptionEdit); @@ -38,6 +39,7 @@ void DlgCreateGame::sharedCtor() generalGrid->addWidget(descriptionEdit, 0, 1); generalGrid->addWidget(maxPlayersLabel, 1, 0); generalGrid->addWidget(maxPlayersEdit, 1, 1); + generalGrid->addWidget(rememberGameSettings, 2, 0); QVBoxLayout *gameTypeLayout = new QVBoxLayout; QMapIterator gameTypeIterator(gameTypes); @@ -111,6 +113,7 @@ DlgCreateGame::DlgCreateGame(TabRoom *_room, const QMap &_gameType { sharedCtor(); + rememberGameSettings->setChecked(settingsCache->getRememberGameSettings()); descriptionEdit->setText(settingsCache->getGameDescription()); maxPlayersEdit->setValue(settingsCache->getMaxPlayers()); onlyBuddiesCheckBox->setChecked(settingsCache->getOnlyBuddies()); @@ -126,6 +129,10 @@ DlgCreateGame::DlgCreateGame(TabRoom *_room, const QMap &_gameType spectatorsCanTalkCheckBox->setChecked(settingsCache->getSpectatorsCanTalk()); spectatorsSeeEverythingCheckBox->setChecked(settingsCache->getSpectatorsCanSeeEverything()); + if (!rememberGameSettings->isChecked()){ + actReset(); + } + clearButton = new QPushButton(tr("&Clear")); buttonBox->addButton(QDialogButtonBox::Cancel); buttonBox->addButton(clearButton, QDialogButtonBox::ActionRole); @@ -140,6 +147,7 @@ DlgCreateGame::DlgCreateGame(const ServerInfo_Game &gameInfo, const QMapsetEnabled(false); descriptionEdit->setEnabled(false); maxPlayersEdit->setEnabled(false); passwordEdit->setEnabled(false); @@ -203,15 +211,6 @@ descriptionEdit->setFocus(); void DlgCreateGame::actOK() { - settingsCache->setGameDescription(descriptionEdit->text()); - settingsCache->setMaxPlayers(maxPlayersEdit->value()); - settingsCache->setOnlyBuddies(onlyBuddiesCheckBox->isChecked()); - settingsCache->setOnlyRegistered(onlyRegisteredCheckBox->isChecked()); - settingsCache->setSpectatorsAllowed(spectatorsAllowedCheckBox->isChecked()); - settingsCache->setSpectatorsNeedPassword(spectatorsNeedPasswordCheckBox->isChecked()); - settingsCache->setSpectatorsCanTalk(spectatorsCanTalkCheckBox->isChecked()); - settingsCache->setSpectatorsCanSeeEverything(spectatorsSeeEverythingCheckBox->isChecked()); - Command_CreateGame cmd; cmd.set_description(descriptionEdit->text().simplified().toStdString()); cmd.set_password(passwordEdit->text().toStdString()); @@ -233,7 +232,18 @@ void DlgCreateGame::actOK() } } - settingsCache->setGameTypes(gameTypes); + settingsCache->setRememberGameSettings(rememberGameSettings->isChecked()); + if (rememberGameSettings->isChecked()){ + settingsCache->setGameDescription(descriptionEdit->text()); + settingsCache->setMaxPlayers(maxPlayersEdit->value()); + settingsCache->setOnlyBuddies(onlyBuddiesCheckBox->isChecked()); + settingsCache->setOnlyRegistered(onlyRegisteredCheckBox->isChecked()); + settingsCache->setSpectatorsAllowed(spectatorsAllowedCheckBox->isChecked()); + settingsCache->setSpectatorsNeedPassword(spectatorsNeedPasswordCheckBox->isChecked()); + settingsCache->setSpectatorsCanTalk(spectatorsCanTalkCheckBox->isChecked()); + settingsCache->setSpectatorsCanSeeEverything(spectatorsSeeEverythingCheckBox->isChecked()); + settingsCache->setGameTypes(gameTypes); + } PendingCommand *pend = room->prepareRoomCommand(cmd); connect(pend, SIGNAL(finished(Response, CommandContainer, QVariant)), this, SLOT(checkResponse(Response))); room->sendRoomCommand(pend); diff --git a/cockatrice/src/dlg_creategame.h b/cockatrice/src/dlg_creategame.h index a0b168a1..a0c9521c 100644 --- a/cockatrice/src/dlg_creategame.h +++ b/cockatrice/src/dlg_creategame.h @@ -39,6 +39,7 @@ private: QCheckBox *spectatorsAllowedCheckBox, *spectatorsNeedPasswordCheckBox, *spectatorsCanTalkCheckBox, *spectatorsSeeEverythingCheckBox; QDialogButtonBox *buttonBox; QPushButton *clearButton; + QCheckBox *rememberGameSettings; void sharedCtor(); }; diff --git a/cockatrice/src/settingscache.cpp b/cockatrice/src/settingscache.cpp index 462001c6..a640e5f6 100644 --- a/cockatrice/src/settingscache.cpp +++ b/cockatrice/src/settingscache.cpp @@ -118,6 +118,7 @@ SettingsCache::SettingsCache() spectatorsNeedPassword = settings->value("game/spectatorsneedpassword", false).toBool(); spectatorsCanTalk = settings->value("game/spectatorscantalk", false).toBool(); spectatorsCanSeeEverything = settings->value("game/spectatorscanseeeverything", false).toBool(); + rememberGameSettings = settings->value("game/remembergamesettings", true).toBool(); clientID = settings->value("personal/clientid", "notset").toString(); QString file = getSettingsPath(); @@ -605,3 +606,9 @@ void SettingsCache::setSpectatorsCanSeeEverything(const bool _spectatorsCanSeeEv spectatorsCanSeeEverything = _spectatorsCanSeeEverything; settings->setValue("game/spectatorscanseeeverything", spectatorsCanSeeEverything); } + +void SettingsCache::setRememberGameSettings(const bool _rememberGameSettings) +{ + rememberGameSettings = _rememberGameSettings; + settings->setValue("game/remembergamesettings", rememberGameSettings); +} \ No newline at end of file diff --git a/cockatrice/src/settingscache.h b/cockatrice/src/settingscache.h index f8227efc..3670bc09 100644 --- a/cockatrice/src/settingscache.h +++ b/cockatrice/src/settingscache.h @@ -102,6 +102,7 @@ private: bool spectatorsNeedPassword; bool spectatorsCanTalk; bool spectatorsCanSeeEverything; + bool rememberGameSettings; int keepalive; QByteArray deckEditorLayoutState, deckEditorGeometry; QSize deckEditorFilterSize, deckEditorDeckSize, deckEditorCardSize; @@ -178,6 +179,7 @@ public: bool getSpectatorsNeedPassword() const { return spectatorsNeedPassword; } bool getSpectatorsCanTalk() const { return spectatorsCanTalk; } bool getSpectatorsCanSeeEverything() const { return spectatorsCanSeeEverything; } + bool getRememberGameSettings() const { return rememberGameSettings; } int getKeepAlive() const { return keepalive; } void setClientID(QString clientID); QString getClientID() { return clientID; } @@ -257,6 +259,7 @@ public slots: void setSpectatorsNeedPassword(const bool _spectatorsNeedPassword); void setSpectatorsCanTalk(const bool _spectatorsCanTalk); void setSpectatorsCanSeeEverything(const bool _spectatorsCanSeeEverything); + void setRememberGameSettings(const bool _rememberGameSettings); }; extern SettingsCache *settingsCache;