Option to opt-out of remember game settings

This commit is contained in:
Jeff 2015-08-22 15:29:00 -04:00
parent 0c0413f056
commit ca82fd867a
4 changed files with 31 additions and 10 deletions

View file

@ -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<int, QString> gameTypeIterator(gameTypes);
@ -111,6 +113,7 @@ DlgCreateGame::DlgCreateGame(TabRoom *_room, const QMap<int, QString> &_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<int, QString> &_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 QMap<int, QS
{
sharedCtor();
rememberGameSettings->setEnabled(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);