Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions include/courtroom.h
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,9 @@ class Courtroom : public QMainWindow {
void list_music();
void list_areas();

// player list build function
void set_player_list(QStringList players);

// Debug log (formerly master server chat log)
void debug_message_handler(QtMsgType type, const QMessageLogContext &context,
const QString &msg);
Expand Down Expand Up @@ -769,6 +772,7 @@ class Courtroom : public QMainWindow {
QListWidget *ui_mute_list;
QTreeWidget *ui_area_list;
QTreeWidget *ui_music_list;
QTreeWidget *ui_player_list;

ScrollText *ui_music_name;
InterfaceLayer *ui_music_display;
Expand Down
34 changes: 34 additions & 0 deletions src/courtroom.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,15 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
ui_music_list->setUniformRowHeights(true);
ui_music_list->setObjectName("ui_music_list");

ui_player_list = new QTreeWidget(this);
ui_player_list->setColumnCount(1);
ui_player_list->setHeaderHidden(true);
ui_player_list->header()->setStretchLastSection(false);
ui_player_list->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui_player_list->setContextMenuPolicy(Qt::CustomContextMenu);
ui_player_list->setUniformRowHeights(true);
ui_player_list->setObjectName("ui_player_list");

ui_music_display = new InterfaceLayer(this, ao_app);
ui_music_display->set_play_once(false);
ui_music_display->set_cull_image(false);
Expand Down Expand Up @@ -1133,6 +1142,9 @@ void Courtroom::set_widgets()
else
ui_music_list->setIndentation(music_list_indentation.toInt());

set_size_and_pos(ui_player_list, "player_list");
ui_player_list->header()->setMinimumSectionSize(ui_player_list->width());

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"));

Expand Down Expand Up @@ -1479,6 +1491,7 @@ void Courtroom::set_fonts(QString p_char)
set_font(ui_debug_log, "", "debug_log", p_char);
set_font(ui_server_chatlog, "", "server_chatlog", p_char);
set_font(ui_music_list, "", "music_list", p_char);
set_font(ui_player_list, "", "player_list", p_char);
set_font(ui_area_list, "", "area_list", p_char);
set_font(ui_music_name, "", "music_name", p_char);

Expand Down Expand Up @@ -2096,6 +2109,27 @@ void Courtroom::list_areas()
}
}

void Courtroom::set_player_list(QStringList players)
{
ui_player_list->clear();
QBrush player_list_brush(ao_app->get_color("player_list_color", "courtroom_design.ini"));
int player_index = 0;
for (QString &player : players) {
QString player_char_name = ""
if (player.split('"').size() > 1) {
player_char_name = player.split('"')[1];
}
QTreeWidgetItem *treeItem = ui_player_list->topLevelItem(player_index);
if (treeItem == nullptr) {
treeItem = new QTreeWidgetItem(ui_player_list);
}
treeItem->setText(1, player);
treeItem->setIcon(1, QIcon(ao_app->get_image_suffix(ao_app->get_character_path(player_char_name, "char_icon"))));
treeItem->setBackground(1, player_list_brush);
++player_index;
}
}

void Courtroom::debug_message_handler(QtMsgType type, const QMessageLogContext &context,
const QString &msg)
{
Expand Down
5 changes: 5 additions & 0 deletions src/packet_distribution.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,11 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_courtroom->format_clock(id, time_format, timer_value);
}
}
else if (header == "PL") {
if (courtroom_constructed && f_contents.size() > 0) {
w_courtroom->set_player_list(f_contents);
}
}
else if (header == "CHECK") {
if (!courtroom_constructed)
goto end;
Expand Down