Address review findings

This commit is contained in:
Lukas Brübach 2026-11-08 14:54:36 +01:00
parent 6cecb5160c
commit ce821a3356
3 changed files with 52 additions and 60 deletions

View file

@ -23,9 +23,11 @@ DlgCreateGame::DlgCreateGame(TabRoom *_room, const QMap<int, QString> &_gameType
const bool judge = room && (room->getUserInfo()->user_level() & ServerInfo_User::IsJudge);
form = new CreateGameFormWidget(_gameTypes, registered, judge, this);
form->setRememberSettingsChecked(SettingsCache::instance().game().getRememberGameSettings());
form->setOptions(GameCreationOptions::fromSettings(SettingsCache::instance().game(), _gameTypes, registered));
if (!form->isRememberSettingsChecked()) {
const bool rememberSettings = SettingsCache::instance().game().getRememberGameSettings();
form->setRememberSettingsChecked(rememberSettings);
if (rememberSettings) {
form->setOptions(GameCreationOptions::fromSettings(SettingsCache::instance().game(), _gameTypes, registered));
} else {
form->resetToDefaults();
}
form->focusDescription();

View file

@ -200,26 +200,13 @@ QString CreateGameFormWidget::selectedGameTypesSettingString() const
void CreateGameFormWidget::resetToDefaults()
{
descriptionEdit->setText("");
maxPlayersEdit->setValue(2);
passwordEdit->setText("");
onlyBuddiesCheckBox->setChecked(false);
onlyRegisteredCheckBox->setChecked(registeredUser);
spectatorsAllowedCheckBox->setChecked(true);
spectatorsNeedPasswordCheckBox->setChecked(false);
spectatorsCanTalkCheckBox->setChecked(false);
spectatorsSeeEverythingCheckBox->setChecked(false);
createGameAsSpectatorCheckBox->setChecked(false);
startingLifeTotalEdit->setValue(20);
shareDecklistsOnLoadCheckBox->setChecked(false);
shufflePlayersCheckBox->setChecked(false);
createGameAsJudgeCheckBox->setChecked(false);
GameCreationOptions defaults;
defaults.onlyRegistered = registeredUser;
setOptions(defaults);
// An exclusive button group refuses to uncheck its selected button, which setOptions
// cannot do, so clear the exclusive flag while resetting the game type selection.
for (auto *gameTypeCheckBox : gameTypeCheckBoxes) {
// must set auto exclusive to false to be able to set the check to false
gameTypeCheckBox->setAutoExclusive(false);
gameTypeCheckBox->setChecked(false);
gameTypeCheckBox->setAutoExclusive(true);