diff options
Diffstat (limited to 'src/courtroom.cpp')
| -rw-r--r-- | src/courtroom.cpp | 43 |
1 files changed, 16 insertions, 27 deletions
diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 7a439586..6350cd92 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -1,5 +1,6 @@ #include "courtroom.h" +#include "moderation_functions.h" #include "options.h" #include <QtConcurrent/QtConcurrent> @@ -168,6 +169,9 @@ Courtroom::Courtroom(AOApplication *p_ao_app) ui_music_name->setAttribute(Qt::WA_TransparentForMouseEvents); ui_music_name->setObjectName("ui_music_name"); + ui_player_list = new PlayerListWidget(ao_app, this); + ui_player_list->setObjectName("ui_player_list"); + for (int i = 0; i < max_clocks; i++) { ui_clock[i] = new AOClockLabel(this); @@ -602,6 +606,11 @@ void Courtroom::clear_areas() area_list.clear(); } +PlayerListWidget *Courtroom::playerList() +{ + return ui_player_list; +} + void Courtroom::fix_last_area() { if (area_list.size() > 0) @@ -868,6 +877,8 @@ void Courtroom::set_widgets() ui_music_list->setIndentation(music_list_indentation.toInt()); } + set_size_and_pos(ui_player_list, "player_list"); + QString music_list_animated = ao_app->get_design_element("music_list_animated", "courtroom_design.ini"); ui_music_list->setAnimated(music_list_animated == "1" || music_list_animated.startsWith("true")); @@ -1879,6 +1890,7 @@ void Courtroom::on_authentication_state_received(int p_state) if (p_state >= 1) { ui_guard->show(); + ui_player_list->setAuthenticated(true); append_server_chatmessage(tr("CLIENT"), tr("You were granted the Disable Modcalls button."), "1"); } else if (p_state == 0) @@ -1888,6 +1900,7 @@ void Courtroom::on_authentication_state_received(int p_state) else if (p_state < 0) { ui_guard->hide(); + ui_player_list->setAuthenticated(false); append_server_chatmessage(tr("CLIENT"), tr("You were logged out."), "1"); } } @@ -6380,35 +6393,11 @@ void Courtroom::on_call_mod_clicked() { if (ao_app->m_serverdata.get_feature(server::BASE_FEATURE_SET::MODCALL_REASON)) { - QMessageBox errorBox; - QInputDialog input; - - input.setWindowFlags(Qt::WindowSystemMenuHint); - input.setLabelText(tr("Reason:")); - input.setWindowTitle(tr("Call Moderator")); - auto code = input.exec(); - - if (code != QDialog::Accepted) + auto maybe_reason = call_moderator_support(); + if (maybe_reason) { - return; + ao_app->send_server_packet(AOPacket("ZZ", {maybe_reason.value(), "-1"})); } - - QString text = input.textValue(); - if (text.isEmpty()) - { - errorBox.critical(nullptr, tr("Error"), tr("You must provide a reason.")); - return; - } - else if (text.length() > 256) - { - errorBox.critical(nullptr, tr("Error"), tr("The message is too long.")); - return; - } - - QStringList mod_reason; - mod_reason.append(text); - - ao_app->send_server_packet(AOPacket("ZZ", mod_reason)); } else { |
