From 0c10f03150ff1cb296cdec27944b906580998747 Mon Sep 17 00:00:00 2001 From: Salanto <62221668+Salanto@users.noreply.github.com> Date: Sat, 31 Aug 2024 20:29:26 +0200 Subject: [Feature] Add support for custom playerlist formatting, show all users when authenticated (#1046) * Playerlist QoL * Remove excessive whitespaces * Add placeholder when displayname is unavailable --- src/widgets/playerlistwidget.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/widgets/playerlistwidget.cpp') diff --git a/src/widgets/playerlistwidget.cpp b/src/widgets/playerlistwidget.cpp index 1dabe157..76913781 100644 --- a/src/widgets/playerlistwidget.cpp +++ b/src/widgets/playerlistwidget.cpp @@ -70,12 +70,21 @@ void PlayerListWidget::updatePlayer(const PlayerUpdate &update) filterPlayerList(); } +void PlayerListWidget::reloadPlayers() +{ + for (const PlayerData &player : qAsConst(m_player_map)) + { + updatePlayer(player.id, false); + } +} + void PlayerListWidget::setAuthenticated(bool f_state) { m_is_authenticated = f_state; for (const PlayerData &data : qAsConst(m_player_map)) { updatePlayer(data.id, false); + filterPlayerList(); } } @@ -148,7 +157,7 @@ void PlayerListWidget::filterPlayerList() qWarning() << "Trying to filter item that does not exist. This indicates either a broken server-implementation or a bad demo file."; break; } - item->setHidden(m_player_map[item->data(Qt::UserRole).toInt()].area_id != area_id); + item->setHidden(m_player_map[item->data(Qt::UserRole).toInt()].area_id != area_id && !m_is_authenticated); } } @@ -186,9 +195,6 @@ void PlayerListWidget::updatePlayer(int playerId, bool updateIcon) QString PlayerListWidget::formatLabel(const PlayerData &data) { - if (m_is_authenticated) - { - return QString("%1 %2 %3").arg(data.character, data.character_name, data.name).simplified(); - } - return QString("%1 %2").arg(data.character, data.character_name).simplified(); + QString format = Options::getInstance().playerlistFormatString(); + return format.replace("{id}", QString::number(data.id)).replace("{character}", data.character).replace("{displayname}", data.character_name.isEmpty() ? "No Data" : data.character_name).replace("{username}", m_is_authenticated ? data.name : "").simplified(); } -- cgit