Adjust options dialog to use a "row" variable for adding new elements easier

Add the "allow shake/flash" button
Add the "enable looping SFX" button
This commit is contained in:
Crystalwarrior 2019-09-15 21:17:12 +03:00
parent ba28c244aa
commit 6afce05661

View File

@ -46,14 +46,15 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
ui_gameplay_form->setFormAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop); ui_gameplay_form->setFormAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
ui_gameplay_form->setContentsMargins(0, 0, 0, 0); ui_gameplay_form->setContentsMargins(0, 0, 0, 0);
int row = 0;
ui_theme_label = new QLabel(ui_form_layout_widget); ui_theme_label = new QLabel(ui_form_layout_widget);
ui_theme_label->setText(tr("Theme:")); ui_theme_label->setText(tr("Theme:"));
ui_theme_label->setToolTip(tr("Sets the theme used in-game. If the new theme changes " ui_theme_label->setToolTip(tr("Sets the theme used in-game. If the new theme changes "
"the lobby's look as well, you'll need to reload the " "the lobby's look as well, you'll need to reload the "
"lobby for the changes to take effect, such as by joining " "lobby for the changes to take effect, such as by joining "
"a server and leaving it.")); "a server and leaving it."));
ui_gameplay_form->setWidget(0, QFormLayout::LabelRole, ui_theme_label); ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_theme_label);
ui_theme_combobox = new QComboBox(ui_form_layout_widget); ui_theme_combobox = new QComboBox(ui_form_layout_widget);
// Fill the combobox with the names of the themes. // Fill the combobox with the names of the themes.
@ -67,14 +68,15 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
ui_theme_combobox->setCurrentIndex(ui_theme_combobox->count()-1); ui_theme_combobox->setCurrentIndex(ui_theme_combobox->count()-1);
} }
ui_gameplay_form->setWidget(0, QFormLayout::FieldRole, ui_theme_combobox); ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_theme_combobox);
ui_theme_log_divider = new QFrame(ui_form_layout_widget); ui_theme_log_divider = new QFrame(ui_form_layout_widget);
ui_theme_log_divider->setMidLineWidth(0); ui_theme_log_divider->setMidLineWidth(0);
ui_theme_log_divider->setFrameShape(QFrame::HLine); ui_theme_log_divider->setFrameShape(QFrame::HLine);
ui_theme_log_divider->setFrameShadow(QFrame::Sunken); ui_theme_log_divider->setFrameShadow(QFrame::Sunken);
ui_gameplay_form->setWidget(1, QFormLayout::FieldRole, ui_theme_log_divider); row += 1;
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_theme_log_divider);
ui_downwards_lbl = new QLabel(ui_form_layout_widget); ui_downwards_lbl = new QLabel(ui_form_layout_widget);
ui_downwards_lbl->setText(tr("Log goes downwards:")); ui_downwards_lbl->setText(tr("Log goes downwards:"));
@ -82,44 +84,48 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
"the bottom (like the OOC chatlog). The traditional " "the bottom (like the OOC chatlog). The traditional "
"(AO1) behaviour is equivalent to this being unticked.")); "(AO1) behaviour is equivalent to this being unticked."));
ui_gameplay_form->setWidget(2, QFormLayout::LabelRole, ui_downwards_lbl); row += 1;
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_downwards_lbl);
ui_downwards_cb = new QCheckBox(ui_form_layout_widget); ui_downwards_cb = new QCheckBox(ui_form_layout_widget);
ui_downwards_cb->setChecked(p_ao_app->get_log_goes_downwards()); ui_downwards_cb->setChecked(p_ao_app->get_log_goes_downwards());
ui_gameplay_form->setWidget(2, QFormLayout::FieldRole, ui_downwards_cb); ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_downwards_cb);
ui_length_lbl = new QLabel(ui_form_layout_widget); ui_length_lbl = new QLabel(ui_form_layout_widget);
ui_length_lbl->setText(tr("Log length:")); ui_length_lbl->setText(tr("Log length:"));
ui_length_lbl->setToolTip(tr("The amount of messages the IC chatlog will keep before " ui_length_lbl->setToolTip(tr("The amount of messages the IC chatlog will keep before "
"deleting older messages. A value of 0 or below counts as 'infinite'.")); "deleting older messages. A value of 0 or below counts as 'infinite'."));
ui_gameplay_form->setWidget(3, QFormLayout::LabelRole, ui_length_lbl); row += 1;
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_length_lbl);
ui_length_spinbox = new QSpinBox(ui_form_layout_widget); ui_length_spinbox = new QSpinBox(ui_form_layout_widget);
ui_length_spinbox->setMaximum(10000); ui_length_spinbox->setMaximum(10000);
ui_length_spinbox->setValue(p_ao_app->get_max_log_size()); ui_length_spinbox->setValue(p_ao_app->get_max_log_size());
ui_gameplay_form->setWidget(3, QFormLayout::FieldRole, ui_length_spinbox); ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_length_spinbox);
ui_log_names_divider = new QFrame(ui_form_layout_widget); ui_log_names_divider = new QFrame(ui_form_layout_widget);
ui_log_names_divider->setFrameShape(QFrame::HLine); ui_log_names_divider->setFrameShape(QFrame::HLine);
ui_log_names_divider->setFrameShadow(QFrame::Sunken); ui_log_names_divider->setFrameShadow(QFrame::Sunken);
ui_gameplay_form->setWidget(4, QFormLayout::FieldRole, ui_log_names_divider); row += 1;
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_log_names_divider);
ui_username_lbl = new QLabel(ui_form_layout_widget); ui_username_lbl = new QLabel(ui_form_layout_widget);
ui_username_lbl->setText(tr("Default username:")); ui_username_lbl->setText(tr("Default username:"));
ui_username_lbl->setToolTip(tr("Your OOC name will be automatically set to this value " ui_username_lbl->setToolTip(tr("Your OOC name will be automatically set to this value "
"when you join a server.")); "when you join a server."));
ui_gameplay_form->setWidget(5, QFormLayout::LabelRole, ui_username_lbl); row += 1;
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_username_lbl);
ui_username_textbox = new QLineEdit(ui_form_layout_widget); ui_username_textbox = new QLineEdit(ui_form_layout_widget);
ui_username_textbox->setMaxLength(30); ui_username_textbox->setMaxLength(30);
ui_username_textbox->setText(p_ao_app->get_default_username()); ui_username_textbox->setText(p_ao_app->get_default_username());
ui_gameplay_form->setWidget(5, QFormLayout::FieldRole, ui_username_textbox); ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_username_textbox);
ui_showname_lbl = new QLabel(ui_form_layout_widget); ui_showname_lbl = new QLabel(ui_form_layout_widget);
ui_showname_lbl->setText(tr("Custom shownames:")); ui_showname_lbl->setText(tr("Custom shownames:"));
@ -127,31 +133,34 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
"tickbox, which in turn determines whether the client should " "tickbox, which in turn determines whether the client should "
"display custom in-character names.")); "display custom in-character names."));
ui_gameplay_form->setWidget(6, QFormLayout::LabelRole, ui_showname_lbl); row += 1;
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_showname_lbl);
ui_showname_cb = new QCheckBox(ui_form_layout_widget); ui_showname_cb = new QCheckBox(ui_form_layout_widget);
ui_showname_cb->setChecked(p_ao_app->get_showname_enabled_by_default()); ui_showname_cb->setChecked(p_ao_app->get_showname_enabled_by_default());
ui_gameplay_form->setWidget(6, QFormLayout::FieldRole, ui_showname_cb); ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_showname_cb);
ui_net_divider = new QFrame(ui_form_layout_widget); ui_net_divider = new QFrame(ui_form_layout_widget);
ui_net_divider->setFrameShape(QFrame::HLine); ui_net_divider->setFrameShape(QFrame::HLine);
ui_net_divider->setFrameShadow(QFrame::Sunken); ui_net_divider->setFrameShadow(QFrame::Sunken);
ui_gameplay_form->setWidget(7, QFormLayout::FieldRole, ui_net_divider); row += 1;
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_net_divider);
ui_ms_lbl = new QLabel(ui_form_layout_widget); ui_ms_lbl = new QLabel(ui_form_layout_widget);
ui_ms_lbl->setText(tr("Backup MS:")); ui_ms_lbl->setText(tr("Backup MS:"));
ui_ms_lbl->setToolTip(tr("If the built-in server lookups fail, the game will try the " ui_ms_lbl->setToolTip(tr("If the built-in server lookups fail, the game will try the "
"address given here and use it as a backup master server address.")); "address given here and use it as a backup master server address."));
ui_gameplay_form->setWidget(8, QFormLayout::LabelRole, ui_ms_lbl); row += 1;
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_ms_lbl);
QSettings* configini = ao_app->configini; QSettings* configini = ao_app->configini;
ui_ms_textbox = new QLineEdit(ui_form_layout_widget); ui_ms_textbox = new QLineEdit(ui_form_layout_widget);
ui_ms_textbox->setText(configini->value("master", "").value<QString>()); ui_ms_textbox->setText(configini->value("master", "").value<QString>());
ui_gameplay_form->setWidget(8, QFormLayout::FieldRole, ui_ms_textbox); ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_ms_textbox);
ui_discord_lbl = new QLabel(ui_form_layout_widget); ui_discord_lbl = new QLabel(ui_form_layout_widget);
ui_discord_lbl->setText(tr("Discord:")); ui_discord_lbl->setText(tr("Discord:"));
@ -159,17 +168,19 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
"what character are you playing, and how long you have " "what character are you playing, and how long you have "
"been playing for.")); "been playing for."));
ui_gameplay_form->setWidget(9, QFormLayout::LabelRole, ui_discord_lbl); row += 1;
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_discord_lbl);
ui_discord_cb = new QCheckBox(ui_form_layout_widget); ui_discord_cb = new QCheckBox(ui_form_layout_widget);
ui_discord_cb->setChecked(ao_app->is_discord_enabled()); ui_discord_cb->setChecked(ao_app->is_discord_enabled());
ui_gameplay_form->setWidget(9, QFormLayout::FieldRole, ui_discord_cb); ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_discord_cb);
row += 1;
ui_language_label = new QLabel(ui_form_layout_widget); ui_language_label = new QLabel(ui_form_layout_widget);
ui_language_label->setText(tr("Language:")); ui_language_label->setText(tr("Language:"));
ui_language_label->setToolTip(tr("Sets the language if you don't want to use your system language.")); ui_language_label->setToolTip(tr("Sets the language if you don't want to use your system language."));
ui_gameplay_form->setWidget(10, QFormLayout::LabelRole, ui_language_label); ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_language_label);
ui_language_combobox = new QComboBox(ui_form_layout_widget); ui_language_combobox = new QComboBox(ui_form_layout_widget);
ui_language_combobox->addItem(configini->value("language", " ").value<QString>() + " - Keep current setting"); ui_language_combobox->addItem(configini->value("language", " ").value<QString>() + " - Keep current setting");
@ -179,7 +190,19 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
ui_language_combobox->addItem("es - Español"); ui_language_combobox->addItem("es - Español");
ui_language_combobox->addItem("jp - 日本語"); ui_language_combobox->addItem("jp - 日本語");
ui_language_combobox->addItem("ru - Русский"); ui_language_combobox->addItem("ru - Русский");
ui_gameplay_form->setWidget(10, QFormLayout::FieldRole, ui_language_combobox); ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_language_combobox);
ui_epilepsy_lbl = new QLabel(ui_form_layout_widget);
ui_epilepsy_lbl->setText(tr("Allow Shake/Flash:"));
ui_epilepsy_lbl->setToolTip(tr("Allows screenshaking and flashing. Disable this if you have concerns or issues with photosensitivity and/or seizures."));
row += 1;
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_epilepsy_lbl);
ui_epilepsy_cb = new QCheckBox(ui_form_layout_widget);
ui_epilepsy_cb->setChecked(ao_app->is_shake_flash_enabled());
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_epilepsy_cb);
// Here we start the callwords tab. // Here we start the callwords tab.
ui_callwords_tab = new QWidget(); ui_callwords_tab = new QWidget();
@ -223,12 +246,13 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
ui_audio_layout->setLabelAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter); ui_audio_layout->setLabelAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
ui_audio_layout->setFormAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop); ui_audio_layout->setFormAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
ui_audio_layout->setContentsMargins(0, 0, 0, 0); ui_audio_layout->setContentsMargins(0, 0, 0, 0);
row = 0;
ui_audio_device_lbl = new QLabel(ui_audio_widget); ui_audio_device_lbl = new QLabel(ui_audio_widget);
ui_audio_device_lbl->setText(tr("Audio device:")); ui_audio_device_lbl->setText(tr("Audio device:"));
ui_audio_device_lbl->setToolTip(tr("Sets the audio device for all sounds.")); ui_audio_device_lbl->setToolTip(tr("Sets the audio device for all sounds."));
ui_audio_layout->setWidget(0, QFormLayout::LabelRole, ui_audio_device_lbl); ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_audio_device_lbl);
ui_audio_device_combobox = new QComboBox(ui_audio_widget); ui_audio_device_combobox = new QComboBox(ui_audio_widget);
@ -256,65 +280,70 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
ui_audio_device_combobox->setCurrentIndex(ui_audio_device_combobox->count()-1); ui_audio_device_combobox->setCurrentIndex(ui_audio_device_combobox->count()-1);
} }
#endif #endif
ui_audio_layout->setWidget(0, QFormLayout::FieldRole, ui_audio_device_combobox); ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_audio_device_combobox);
ui_audio_volume_divider = new QFrame(ui_audio_widget); ui_audio_volume_divider = new QFrame(ui_audio_widget);
ui_audio_volume_divider->setFrameShape(QFrame::HLine); ui_audio_volume_divider->setFrameShape(QFrame::HLine);
ui_audio_volume_divider->setFrameShadow(QFrame::Sunken); ui_audio_volume_divider->setFrameShadow(QFrame::Sunken);
ui_audio_layout->setWidget(1, QFormLayout::FieldRole, ui_audio_volume_divider); row += 1;
ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_audio_volume_divider);
ui_music_volume_lbl = new QLabel(ui_audio_widget); ui_music_volume_lbl = new QLabel(ui_audio_widget);
ui_music_volume_lbl->setText(tr("Music:")); ui_music_volume_lbl->setText(tr("Music:"));
ui_music_volume_lbl->setToolTip(tr("Sets the music's default volume.")); ui_music_volume_lbl->setToolTip(tr("Sets the music's default volume."));
ui_audio_layout->setWidget(2, QFormLayout::LabelRole, ui_music_volume_lbl); row += 1;
ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_music_volume_lbl);
ui_music_volume_spinbox = new QSpinBox(ui_audio_widget); ui_music_volume_spinbox = new QSpinBox(ui_audio_widget);
ui_music_volume_spinbox->setValue(p_ao_app->get_default_music()); ui_music_volume_spinbox->setValue(p_ao_app->get_default_music());
ui_music_volume_spinbox->setMaximum(100); ui_music_volume_spinbox->setMaximum(100);
ui_music_volume_spinbox->setSuffix("%"); ui_music_volume_spinbox->setSuffix("%");
ui_audio_layout->setWidget(2, QFormLayout::FieldRole, ui_music_volume_spinbox); ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_music_volume_spinbox);
ui_sfx_volume_lbl = new QLabel(ui_audio_widget); ui_sfx_volume_lbl = new QLabel(ui_audio_widget);
ui_sfx_volume_lbl->setText(tr("SFX:")); ui_sfx_volume_lbl->setText(tr("SFX:"));
ui_sfx_volume_lbl->setToolTip(tr("Sets the SFX's default volume. " ui_sfx_volume_lbl->setToolTip(tr("Sets the SFX's default volume. "
"Interjections and actual sound effects count as 'SFX'.")); "Interjections and actual sound effects count as 'SFX'."));
row += 1;
ui_audio_layout->setWidget(3, QFormLayout::LabelRole, ui_sfx_volume_lbl); ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_sfx_volume_lbl);
ui_sfx_volume_spinbox = new QSpinBox(ui_audio_widget); ui_sfx_volume_spinbox = new QSpinBox(ui_audio_widget);
ui_sfx_volume_spinbox->setValue(p_ao_app->get_default_sfx()); ui_sfx_volume_spinbox->setValue(p_ao_app->get_default_sfx());
ui_sfx_volume_spinbox->setMaximum(100); ui_sfx_volume_spinbox->setMaximum(100);
ui_sfx_volume_spinbox->setSuffix("%"); ui_sfx_volume_spinbox->setSuffix("%");
ui_audio_layout->setWidget(3, QFormLayout::FieldRole, ui_sfx_volume_spinbox); ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_sfx_volume_spinbox);
ui_blips_volume_lbl = new QLabel(ui_audio_widget); ui_blips_volume_lbl = new QLabel(ui_audio_widget);
ui_blips_volume_lbl->setText(tr("Blips:")); ui_blips_volume_lbl->setText(tr("Blips:"));
ui_blips_volume_lbl->setToolTip(tr("Sets the volume of the blips, the talking sound effects.")); ui_blips_volume_lbl->setToolTip(tr("Sets the volume of the blips, the talking sound effects."));
ui_audio_layout->setWidget(4, QFormLayout::LabelRole, ui_blips_volume_lbl); row += 1;
ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_blips_volume_lbl);
ui_blips_volume_spinbox = new QSpinBox(ui_audio_widget); ui_blips_volume_spinbox = new QSpinBox(ui_audio_widget);
ui_blips_volume_spinbox->setValue(p_ao_app->get_default_blip()); ui_blips_volume_spinbox->setValue(p_ao_app->get_default_blip());
ui_blips_volume_spinbox->setMaximum(100); ui_blips_volume_spinbox->setMaximum(100);
ui_blips_volume_spinbox->setSuffix("%"); ui_blips_volume_spinbox->setSuffix("%");
ui_audio_layout->setWidget(4, QFormLayout::FieldRole, ui_blips_volume_spinbox); ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_blips_volume_spinbox);
ui_volume_blip_divider = new QFrame(ui_audio_widget); ui_volume_blip_divider = new QFrame(ui_audio_widget);
ui_volume_blip_divider->setFrameShape(QFrame::HLine); ui_volume_blip_divider->setFrameShape(QFrame::HLine);
ui_volume_blip_divider->setFrameShadow(QFrame::Sunken); ui_volume_blip_divider->setFrameShadow(QFrame::Sunken);
ui_audio_layout->setWidget(5, QFormLayout::FieldRole, ui_volume_blip_divider); row += 1;
ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_volume_blip_divider);
ui_bliprate_lbl = new QLabel(ui_audio_widget); ui_bliprate_lbl = new QLabel(ui_audio_widget);
ui_bliprate_lbl->setText(tr("Blip rate:")); ui_bliprate_lbl->setText(tr("Blip rate:"));
ui_bliprate_lbl->setToolTip(tr("Sets the delay between playing the blip sounds.")); ui_bliprate_lbl->setToolTip(tr("Sets the delay between playing the blip sounds."));
ui_audio_layout->setWidget(6, QFormLayout::LabelRole, ui_bliprate_lbl); row += 1;
ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_bliprate_lbl);
ui_bliprate_spinbox = new QSpinBox(ui_audio_widget); ui_bliprate_spinbox = new QSpinBox(ui_audio_widget);
ui_bliprate_spinbox->setValue(p_ao_app->read_blip_rate()); ui_bliprate_spinbox->setValue(p_ao_app->read_blip_rate());
@ -322,30 +351,44 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
ui_bliprate_spinbox->setToolTip(tr("Play a blip sound \"once per every X symbols\", where " ui_bliprate_spinbox->setToolTip(tr("Play a blip sound \"once per every X symbols\", where "
"X is the blip rate.")); "X is the blip rate."));
ui_audio_layout->setWidget(6, QFormLayout::FieldRole, ui_bliprate_spinbox); ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_bliprate_spinbox);
ui_blank_blips_lbl = new QLabel(ui_audio_widget); ui_blank_blips_lbl = new QLabel(ui_audio_widget);
ui_blank_blips_lbl->setText(tr("Blank blips:")); ui_blank_blips_lbl->setText(tr("Blank blips:"));
ui_blank_blips_lbl->setToolTip(tr("If true, the game will play a blip sound even " ui_blank_blips_lbl->setToolTip(tr("If true, the game will play a blip sound even "
"when a space is 'being said'.")); "when a space is 'being said'."));
ui_audio_layout->setWidget(7, QFormLayout::LabelRole, ui_blank_blips_lbl); row += 1;
ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_blank_blips_lbl);
ui_blank_blips_cb = new QCheckBox(ui_audio_widget); ui_blank_blips_cb = new QCheckBox(ui_audio_widget);
ui_blank_blips_cb->setChecked(p_ao_app->get_blank_blip()); ui_blank_blips_cb->setChecked(p_ao_app->get_blank_blip());
ui_audio_layout->setWidget(7, QFormLayout::FieldRole, ui_blank_blips_cb); ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_blank_blips_cb);
ui_loopsfx_lbl = new QLabel(ui_audio_widget);
ui_loopsfx_lbl->setText(tr("Enable Looping SFX:"));
ui_loopsfx_lbl->setToolTip(tr("If true, the game will allow looping sound effects to play on preanimations."));
row += 1;
ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_loopsfx_lbl);
ui_loopsfx_cb = new QCheckBox(ui_audio_widget);
ui_loopsfx_cb->setChecked(p_ao_app->get_looping_sfx());
ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_loopsfx_cb);
ui_objectmusic_lbl = new QLabel(ui_audio_widget); ui_objectmusic_lbl = new QLabel(ui_audio_widget);
ui_objectmusic_lbl->setText(tr("Kill Music On Objection:")); ui_objectmusic_lbl->setText(tr("Kill Music On Objection:"));
ui_objectmusic_lbl->setToolTip(tr("If true, the game will stop music when someone objects, like in the actual games.")); ui_objectmusic_lbl->setToolTip(tr("If true, AO2 will stop the music for you when you or someone else does 'Objection!'."));
ui_audio_layout->setWidget(9, QFormLayout::LabelRole, ui_objectmusic_lbl); row += 1;
ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_objectmusic_lbl);
ui_objectmusic_cb = new QCheckBox(ui_audio_widget); ui_objectmusic_cb = new QCheckBox(ui_audio_widget);
ui_objectmusic_cb->setChecked(p_ao_app->objection_stop_music()); ui_objectmusic_cb->setChecked(p_ao_app->objection_stop_music());
ui_audio_layout->setWidget(9, QFormLayout::FieldRole, ui_objectmusic_cb); ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_objectmusic_cb);
// The casing tab! // The casing tab!
ui_casing_tab = new QWidget(); ui_casing_tab = new QWidget();
@ -358,6 +401,7 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
ui_casing_layout->setLabelAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter); ui_casing_layout->setLabelAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
ui_casing_layout->setFormAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop); ui_casing_layout->setFormAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
ui_casing_layout->setContentsMargins(0, 0, 0, 0); ui_casing_layout->setContentsMargins(0, 0, 0, 0);
row = 0;
// -- SERVER SUPPORTS CASING // -- SERVER SUPPORTS CASING
@ -368,119 +412,127 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
ui_casing_supported_lbl->setText(tr("This server does not support case alerts.")); ui_casing_supported_lbl->setText(tr("This server does not support case alerts."));
ui_casing_supported_lbl->setToolTip(tr("Pretty self-explanatory.")); ui_casing_supported_lbl->setToolTip(tr("Pretty self-explanatory."));
ui_casing_layout->setWidget(0, QFormLayout::FieldRole, ui_casing_supported_lbl); ui_casing_layout->setWidget(row, QFormLayout::FieldRole, ui_casing_supported_lbl);
// -- CASE ANNOUNCEMENTS // -- CASE ANNOUNCEMENTS
row += 1;
ui_casing_enabled_lbl = new QLabel(ui_casing_widget); ui_casing_enabled_lbl = new QLabel(ui_casing_widget);
ui_casing_enabled_lbl->setText(tr("Casing:")); ui_casing_enabled_lbl->setText(tr("Casing:"));
ui_casing_enabled_lbl->setToolTip(tr("If checked, you will get alerts about case " ui_casing_enabled_lbl->setToolTip(tr("If checked, you will get alerts about case "
"announcements.")); "announcements."));
ui_casing_layout->setWidget(1, QFormLayout::LabelRole, ui_casing_enabled_lbl); ui_casing_layout->setWidget(row, QFormLayout::LabelRole, ui_casing_enabled_lbl);
ui_casing_enabled_cb = new QCheckBox(ui_casing_widget); ui_casing_enabled_cb = new QCheckBox(ui_casing_widget);
ui_casing_enabled_cb->setChecked(ao_app->get_casing_enabled()); ui_casing_enabled_cb->setChecked(ao_app->get_casing_enabled());
ui_casing_layout->setWidget(1, QFormLayout::FieldRole, ui_casing_enabled_cb); ui_casing_layout->setWidget(row, QFormLayout::FieldRole, ui_casing_enabled_cb);
// -- DEFENSE ANNOUNCEMENTS // -- DEFENSE ANNOUNCEMENTS
row += 1;
ui_casing_def_lbl = new QLabel(ui_casing_widget); ui_casing_def_lbl = new QLabel(ui_casing_widget);
ui_casing_def_lbl->setText(tr("Defense:")); ui_casing_def_lbl->setText(tr("Defense:"));
ui_casing_def_lbl->setToolTip(tr("If checked, you will get alerts about case " ui_casing_def_lbl->setToolTip(tr("If checked, you will get alerts about case "
"announcements if a defense spot is open.")); "announcements if a defense spot is open."));
ui_casing_layout->setWidget(2, QFormLayout::LabelRole, ui_casing_def_lbl); ui_casing_layout->setWidget(row, QFormLayout::LabelRole, ui_casing_def_lbl);
ui_casing_def_cb = new QCheckBox(ui_casing_widget); ui_casing_def_cb = new QCheckBox(ui_casing_widget);
ui_casing_def_cb->setChecked(ao_app->get_casing_defence_enabled()); ui_casing_def_cb->setChecked(ao_app->get_casing_defence_enabled());
ui_casing_layout->setWidget(2, QFormLayout::FieldRole, ui_casing_def_cb); ui_casing_layout->setWidget(row, QFormLayout::FieldRole, ui_casing_def_cb);
// -- PROSECUTOR ANNOUNCEMENTS // -- PROSECUTOR ANNOUNCEMENTS
row += 1;
ui_casing_pro_lbl = new QLabel(ui_casing_widget); ui_casing_pro_lbl = new QLabel(ui_casing_widget);
ui_casing_pro_lbl->setText(tr("Prosecution:")); ui_casing_pro_lbl->setText(tr("Prosecution:"));
ui_casing_pro_lbl->setToolTip(tr("If checked, you will get alerts about case " ui_casing_pro_lbl->setToolTip(tr("If checked, you will get alerts about case "
"announcements if a prosecutor spot is open.")); "announcements if a prosecutor spot is open."));
ui_casing_layout->setWidget(3, QFormLayout::LabelRole, ui_casing_pro_lbl); ui_casing_layout->setWidget(row, QFormLayout::LabelRole, ui_casing_pro_lbl);
ui_casing_pro_cb = new QCheckBox(ui_casing_widget); ui_casing_pro_cb = new QCheckBox(ui_casing_widget);
ui_casing_pro_cb->setChecked(ao_app->get_casing_prosecution_enabled()); ui_casing_pro_cb->setChecked(ao_app->get_casing_prosecution_enabled());
ui_casing_layout->setWidget(3, QFormLayout::FieldRole, ui_casing_pro_cb); ui_casing_layout->setWidget(row, QFormLayout::FieldRole, ui_casing_pro_cb);
// -- JUDGE ANNOUNCEMENTS // -- JUDGE ANNOUNCEMENTS
row += 1;
ui_casing_jud_lbl = new QLabel(ui_casing_widget); ui_casing_jud_lbl = new QLabel(ui_casing_widget);
ui_casing_jud_lbl->setText(tr("Judge:")); ui_casing_jud_lbl->setText(tr("Judge:"));
ui_casing_jud_lbl->setToolTip(tr("If checked, you will get alerts about case " ui_casing_jud_lbl->setToolTip(tr("If checked, you will get alerts about case "
"announcements if the judge spot is open.")); "announcements if the judge spot is open."));
ui_casing_layout->setWidget(4, QFormLayout::LabelRole, ui_casing_jud_lbl); ui_casing_layout->setWidget(row, QFormLayout::LabelRole, ui_casing_jud_lbl);
ui_casing_jud_cb = new QCheckBox(ui_casing_widget); ui_casing_jud_cb = new QCheckBox(ui_casing_widget);
ui_casing_jud_cb->setChecked(ao_app->get_casing_judge_enabled()); ui_casing_jud_cb->setChecked(ao_app->get_casing_judge_enabled());
ui_casing_layout->setWidget(4, QFormLayout::FieldRole, ui_casing_jud_cb); ui_casing_layout->setWidget(row, QFormLayout::FieldRole, ui_casing_jud_cb);
// -- JUROR ANNOUNCEMENTS // -- JUROR ANNOUNCEMENTS
row += 1;
ui_casing_jur_lbl = new QLabel(ui_casing_widget); ui_casing_jur_lbl = new QLabel(ui_casing_widget);
ui_casing_jur_lbl->setText(tr("Juror:")); ui_casing_jur_lbl->setText(tr("Juror:"));
ui_casing_jur_lbl->setToolTip(tr("If checked, you will get alerts about case " ui_casing_jur_lbl->setToolTip(tr("If checked, you will get alerts about case "
"announcements if a juror spot is open.")); "announcements if a juror spot is open."));
ui_casing_layout->setWidget(5, QFormLayout::LabelRole, ui_casing_jur_lbl); ui_casing_layout->setWidget(row, QFormLayout::LabelRole, ui_casing_jur_lbl);
ui_casing_jur_cb = new QCheckBox(ui_casing_widget); ui_casing_jur_cb = new QCheckBox(ui_casing_widget);
ui_casing_jur_cb->setChecked(ao_app->get_casing_juror_enabled()); ui_casing_jur_cb->setChecked(ao_app->get_casing_juror_enabled());
ui_casing_layout->setWidget(5, QFormLayout::FieldRole, ui_casing_jur_cb); ui_casing_layout->setWidget(row, QFormLayout::FieldRole, ui_casing_jur_cb);
// -- STENO ANNOUNCEMENTS // -- STENO ANNOUNCEMENTS
row += 1;
ui_casing_steno_lbl = new QLabel(ui_casing_widget); ui_casing_steno_lbl = new QLabel(ui_casing_widget);
ui_casing_steno_lbl->setText(tr("Stenographer:")); ui_casing_steno_lbl->setText(tr("Stenographer:"));
ui_casing_steno_lbl->setToolTip(tr("If checked, you will get alerts about case " ui_casing_steno_lbl->setToolTip(tr("If checked, you will get alerts about case "
"announcements if a stenographer spot is open.")); "announcements if a stenographer spot is open."));
ui_casing_layout->setWidget(6, QFormLayout::LabelRole, ui_casing_steno_lbl); ui_casing_layout->setWidget(row, QFormLayout::LabelRole, ui_casing_steno_lbl);
ui_casing_steno_cb = new QCheckBox(ui_casing_widget); ui_casing_steno_cb = new QCheckBox(ui_casing_widget);
ui_casing_steno_cb->setChecked(ao_app->get_casing_steno_enabled()); ui_casing_steno_cb->setChecked(ao_app->get_casing_steno_enabled());
ui_casing_layout->setWidget(6, QFormLayout::FieldRole, ui_casing_steno_cb); ui_casing_layout->setWidget(row, QFormLayout::FieldRole, ui_casing_steno_cb);
// -- CM ANNOUNCEMENTS // -- CM ANNOUNCEMENTS
row += 1;
ui_casing_cm_lbl = new QLabel(ui_casing_widget); ui_casing_cm_lbl = new QLabel(ui_casing_widget);
ui_casing_cm_lbl->setText(tr("CM:")); ui_casing_cm_lbl->setText(tr("CM:"));
ui_casing_cm_lbl->setToolTip(tr("If checked, you will appear amongst the potential " ui_casing_cm_lbl->setToolTip(tr("If checked, you will appear amongst the potential "
"CMs on the server.")); "CMs on the server."));
ui_casing_layout->setWidget(7, QFormLayout::LabelRole, ui_casing_cm_lbl); ui_casing_layout->setWidget(row, QFormLayout::LabelRole, ui_casing_cm_lbl);
ui_casing_cm_cb = new QCheckBox(ui_casing_widget); ui_casing_cm_cb = new QCheckBox(ui_casing_widget);
ui_casing_cm_cb->setChecked(ao_app->get_casing_cm_enabled()); ui_casing_cm_cb->setChecked(ao_app->get_casing_cm_enabled());
ui_casing_layout->setWidget(7, QFormLayout::FieldRole, ui_casing_cm_cb); ui_casing_layout->setWidget(row, QFormLayout::FieldRole, ui_casing_cm_cb);
// -- CM CASES ANNOUNCEMENTS // -- CM CASES ANNOUNCEMENTS
row += 1;
ui_casing_cm_cases_lbl = new QLabel(ui_casing_widget); ui_casing_cm_cases_lbl = new QLabel(ui_casing_widget);
ui_casing_cm_cases_lbl->setText(tr("Hosting cases:")); ui_casing_cm_cases_lbl->setText(tr("Hosting cases:"));
ui_casing_cm_cases_lbl->setToolTip(tr("If you're a CM, enter what cases you are " ui_casing_cm_cases_lbl->setToolTip(tr("If you're a CM, enter what cases you are "
"willing to host.")); "willing to host."));
ui_casing_layout->setWidget(8, QFormLayout::LabelRole, ui_casing_cm_cases_lbl); ui_casing_layout->setWidget(row, QFormLayout::LabelRole, ui_casing_cm_cases_lbl);
ui_casing_cm_cases_textbox = new QLineEdit(ui_casing_widget); ui_casing_cm_cases_textbox = new QLineEdit(ui_casing_widget);
ui_casing_cm_cases_textbox->setText(ao_app->get_casing_can_host_cases()); ui_casing_cm_cases_textbox->setText(ao_app->get_casing_can_host_cases());
ui_casing_layout->setWidget(8, QFormLayout::FieldRole, ui_casing_cm_cases_textbox); ui_casing_layout->setWidget(row, QFormLayout::FieldRole, ui_casing_cm_cases_textbox);
// When we're done, we should continue the updates! // When we're done, we should continue the updates!
setUpdatesEnabled(true); setUpdatesEnabled(true);
@ -499,14 +551,11 @@ void AOOptionsDialog::save_pressed()
configini->setValue("master", ui_ms_textbox->text()); configini->setValue("master", ui_ms_textbox->text());
configini->setValue("discord", ui_discord_cb->isChecked()); configini->setValue("discord", ui_discord_cb->isChecked());
configini->setValue("language", ui_language_combobox->currentText().left(2)); configini->setValue("language", ui_language_combobox->currentText().left(2));
configini->setValue("shakeandflash", ui_epilepsy_cb->isChecked());
QFile* callwordsini = new QFile(ao_app->get_base_path() + "callwords.ini"); QFile* callwordsini = new QFile(ao_app->get_base_path() + "callwords.ini");
if (!callwordsini->open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text)) if (callwordsini->open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text))
{
// Nevermind!
}
else
{ {
QTextStream out(callwordsini); QTextStream out(callwordsini);
out << ui_callwords_textbox->toPlainText(); out << ui_callwords_textbox->toPlainText();
@ -519,6 +568,7 @@ void AOOptionsDialog::save_pressed()
configini->setValue("default_blip", ui_blips_volume_spinbox->value()); configini->setValue("default_blip", ui_blips_volume_spinbox->value());
configini->setValue("blip_rate", ui_bliprate_spinbox->value()); configini->setValue("blip_rate", ui_bliprate_spinbox->value());
configini->setValue("blank_blip", ui_blank_blips_cb->isChecked()); configini->setValue("blank_blip", ui_blank_blips_cb->isChecked());
configini->setValue("looping_sfx", ui_loopsfx_cb->isChecked());
configini->setValue("objection_stop_music", ui_objectmusic_cb->isChecked()); configini->setValue("objection_stop_music", ui_objectmusic_cb->isChecked());
configini->setValue("casing_enabled", ui_casing_enabled_cb->isChecked()); configini->setValue("casing_enabled", ui_casing_enabled_cb->isChecked());