diff options
| author | Salanto <62221668+Salanto@users.noreply.github.com> | 2024-08-31 20:29:26 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-31 13:29:26 -0500 |
| commit | 0c10f03150ff1cb296cdec27944b906580998747 (patch) | |
| tree | 2692aa315442191b168af114df3d50a4660675f0 /src/widgets/playerlistwidget.cpp | |
| parent | 851b8c6a69386255b09ca3612bb83e565d922414 (diff) | |
[Feature] Add support for custom playerlist formatting, show all users when authenticated (#1046)
* Playerlist QoL
* Remove excessive whitespaces
* Add placeholder when displayname is unavailable
Diffstat (limited to 'src/widgets/playerlistwidget.cpp')
| -rw-r--r-- | src/widgets/playerlistwidget.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
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(); } |
