aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCrystalwarrior <Varsash@Gmail.com>2021-01-15 00:45:30 +0300
committerGitHub <noreply@github.com>2021-01-14 15:45:30 -0600
commitc42496e20479edd72ab57860967aed8592bd383b (patch)
treea9b6e218f3d54288308fc49e9e247c9d0d3f8d97 /src
parent31798583a913c0f869e1bb1126a683a0b353a03c (diff)
Make chat rate limit configurable (#398)
Co-authored-by: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r--src/aooptionsdialog.cpp14
-rw-r--r--src/courtroom.cpp2
-rw-r--r--src/text_file_functions.cpp6
3 files changed, 21 insertions, 1 deletions
diff --git a/src/aooptionsdialog.cpp b/src/aooptionsdialog.cpp
index c560a2d..0fbee47 100644
--- a/src/aooptionsdialog.cpp
+++ b/src/aooptionsdialog.cpp
@@ -219,6 +219,19 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app)
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);
ui_log_names_divider->setFrameShadow(QFrame::Sunken);
@@ -824,6 +837,7 @@ void AOOptionsDialog::save_pressed()
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());
diff --git a/src/courtroom.cpp b/src/courtroom.cpp
index 4e8e6ac..ed256c0 100644
--- a/src/courtroom.cpp
+++ b/src/courtroom.cpp
@@ -1627,7 +1627,7 @@ void Courtroom::on_chat_return_pressed()
return;
ui_ic_chat_message->blockSignals(true);
- QTimer::singleShot(600, this,
+ QTimer::singleShot(ao_app->get_chat_ratelimit(), this,
[=] { ui_ic_chat_message->blockSignals(false); });
// MS#
// deskmod#
diff --git a/src/text_file_functions.cpp b/src/text_file_functions.cpp
index ffb59c4..e79411a 100644
--- a/src/text_file_functions.cpp
+++ b/src/text_file_functions.cpp
@@ -52,6 +52,12 @@ int AOApplication::stay_time()
return result;
}
+int AOApplication::get_chat_ratelimit()
+{
+ int result = configini->value("chat_ratelimit", 300).toInt();
+ return result;
+}
+
bool AOApplication::get_log_goes_downwards()
{
QString result =