23 #include "playertable.h"
24 #include "serverapi/server.h"
43 PlayerTable::~PlayerTable()
47 QString PlayerTable::generateHTML()
49 QString tableStyle =
"background-color: #FFFFFF; color: #000000";
50 QString table =
"<table cellspacing=\"4\" style=\"" + tableStyle +
"\">";
51 table += tableHeader();
52 table += tableContent();
57 void PlayerTable::setNumberOfColumns()
59 if (d->server->gameMode().isTeamGame())
69 QString PlayerTable::spawnPartOfPlayerTable(
const PlayersList& list,
bool bAppendEmptyRowAtBeginning)
72 if (list.count() != 0)
74 if (bAppendEmptyRowAtBeginning)
76 ret = QString(
"<tr><td colspan=\"%1\"> </td></tr>").arg(d->numOfColumns);
79 for (
int i = 0; i < list.count(); ++i)
81 const Player& player = list[i];
88 else if (player.isSpectating())
90 status = tr(
"SPECTATOR");
93 QString strPlayer =
"<tr>";
94 if (d->server->gameMode().isTeamGame())
96 strPlayer += QString(
"<td>%1</td>").arg(d->server->teamName(player.teamNum()));
98 strPlayer +=
"<td>%1</td><td align=\"right\">%2</td><td align=\"right\">%3</td><td>%4</td></tr>";
99 strPlayer = strPlayer.arg(player.
nameFormatted()).arg(player.score()).arg(player.ping());
100 strPlayer = strPlayer.arg(status);
109 QString PlayerTable::spawnPlayersRows(
const PlayersByTeams& playersByTeams)
113 bool bAppendEmptyRowAtBeginning =
false;
114 foreach (
const PlayersList &playersList, playersByTeams.values())
116 playersRows += spawnPartOfPlayerTable(playersList, bAppendEmptyRowAtBeginning);
117 if (!bAppendEmptyRowAtBeginning)
119 bAppendEmptyRowAtBeginning =
true;
126 QString PlayerTable::tableContent()
128 PlayersByTeams playersByTeams;
135 players.spectators(spectators);
137 bool bAppendEmptyRowAtBeginning =
false;
138 QString playersRows = spawnPlayersRows(playersByTeams);
140 bAppendEmptyRowAtBeginning = !playersRows.isEmpty();
141 QString botsRows = spawnPartOfPlayerTable(bots, bAppendEmptyRowAtBeginning);
143 bAppendEmptyRowAtBeginning = !(botsRows.isEmpty() && playersRows.isEmpty());
144 QString spectatorsRows = spawnPartOfPlayerTable(spectators, bAppendEmptyRowAtBeginning);
146 QString content = playersRows + botsRows + spectatorsRows;
151 QString PlayerTable::tableHeader()
153 const QString TEAM = tr(
"Team");
154 const QString PLAYER = tr(
"Player");
155 const QString SCORE = tr(
"Score");
156 const QString PING = tr(
"Ping");
157 const QString STATUS = tr(
"Status");
160 QString header =
"<tr>";
162 if (d->server->gameMode().isTeamGame())
164 teamHeader =
"<td>" + TEAM +
"</td>";
167 header += teamHeader;
168 header +=
"<td>" + PLAYER +
"</td>";
169 header +=
"<td align=\"right\"> " + SCORE +
"</td>";
170 header +=
"<td align=\"right\"> " + PING +
"</td>";
171 header +=
"<td>" + STATUS +
"</td>";
173 header += QString(
"<tr><td colspan=\"%1\"><hr width=\"100%\"></td></tr>").arg(d->numOfColumns);
void inGamePlayersByTeams(PlayersByTeams &playersListMap) const
Divides players and bots to lists ordered by teams.
Data structure that holds information about players in a server.
void botsWithoutTeam(PlayersList &botsList) const
Lists only those bots that are not on a team.
QString nameFormatted() const