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