aboutsummaryrefslogtreecommitdiff
path: root/src/aooptionsdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/aooptionsdialog.cpp')
-rw-r--r--src/aooptionsdialog.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/aooptionsdialog.cpp b/src/aooptionsdialog.cpp
index 314e9820..0fbee478 100644
--- a/src/aooptionsdialog.cpp
+++ b/src/aooptionsdialog.cpp
@@ -176,6 +176,61 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app)
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_log_ic_actions_cb);
+
+ row += 1;
+ ui_stay_time_lbl = new QLabel(ui_form_layout_widget);
+ ui_stay_time_lbl->setText(tr("Text Stay Time:"));
+ ui_stay_time_lbl->setToolTip(tr(
+ "Minimum amount of time (in miliseconds) an IC message must stay on screen before "
+ "the next IC message is shown, acting as a 'queue'. Set to 0 to disable this behavior."));
+
+ ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_stay_time_lbl);
+
+ ui_stay_time_spinbox = new QSpinBox(ui_form_layout_widget);
+ ui_stay_time_spinbox->setMaximum(10000);
+ ui_stay_time_spinbox->setValue(p_ao_app->stay_time());
+
+ ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_stay_time_spinbox);
+
+ row += 1;
+ ui_desync_logs_lbl = new QLabel(ui_form_layout_widget);
+ ui_desync_logs_lbl->setText(tr("Desynchronize IC Logs:"));
+ ui_desync_logs_lbl->setToolTip(
+ tr("If ticked, log will show messages as-received, while viewport will parse according to the queue (Text Stay Time)."));
+
+ ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_desync_logs_lbl);
+
+ ui_desync_logs_cb = new QCheckBox(ui_form_layout_widget);
+ ui_desync_logs_cb->setChecked(p_ao_app->get_log_timestamp());
+
+ ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_desync_logs_cb);
+
+ row += 1;
+ ui_instant_objection_lbl = new QLabel(ui_form_layout_widget);
+ ui_instant_objection_lbl->setText(tr("Instant Objection:"));
+ ui_instant_objection_lbl->setToolTip(
+ tr("If Text Stay Time is more than 0, instant objection will skip queued messages instead of waiting to catch up."));
+
+ ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_instant_objection_lbl);
+
+ ui_instant_objection_cb = new QCheckBox(ui_form_layout_widget);
+ ui_instant_objection_cb->setChecked(ao_app->is_instant_objection_enabled());
+
+ ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_instant_objection_cb);
+
+ row += 1;
+ ui_chat_ratelimit_lbl = new QLabel(ui_form_layout_widget);
+ ui_chat_ratelimit_lbl->setText(tr("Chat Rate Limit:"));
+ ui_chat_ratelimit_lbl->setToolTip(tr(
+ "Minimum amount of time (in miliseconds) that must pass before the next Enter key press will send your IC message."));
+
+ ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_chat_ratelimit_lbl);
+
+ ui_chat_ratelimit_spinbox = new QSpinBox(ui_form_layout_widget);
+ ui_chat_ratelimit_spinbox->setMaximum(5000);
+ ui_chat_ratelimit_spinbox->setValue(p_ao_app->get_chat_ratelimit());
+
+ ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_chat_ratelimit_spinbox);
row += 1;
ui_log_names_divider = new QFrame(ui_form_layout_widget);
ui_log_names_divider->setFrameShape(QFrame::HLine);
@@ -779,6 +834,10 @@ void AOOptionsDialog::save_pressed()
configini->setValue("log_margin", ui_log_margin_spinbox->value());
configini->setValue("log_timestamp", ui_log_timestamp_cb->isChecked());
configini->setValue("log_ic_actions", ui_log_ic_actions_cb->isChecked());
+ configini->setValue("desync_logs", ui_desync_logs_cb->isChecked());
+ configini->setValue("stay_time", ui_stay_time_spinbox->value());
+ configini->setValue("instant_objection", ui_instant_objection_cb->isChecked());
+ configini->setValue("chat_ratelimit", ui_chat_ratelimit_spinbox->value());
configini->setValue("default_username", ui_username_textbox->text());
configini->setValue("show_custom_shownames", ui_showname_cb->isChecked());
configini->setValue("master", ui_ms_textbox->text());