preliminary avatar support

This commit is contained in:
Max-Wilhelm Bruker 2010-10-10 00:06:05 +02:00
parent b1d8c7bda0
commit 8d6a4f4f90
19 changed files with 344 additions and 143 deletions

View file

@ -1,3 +1,4 @@
#include <QLabel>
#include <QTreeView>
#include <QCheckBox>
#include <QPushButton>
@ -338,12 +339,65 @@ void UserList::userClicked(QTreeWidgetItem *item, int /*column*/)
emit openMessageDialog(item->data(2, Qt::UserRole).toString(), true);
}
UserInfoBox::UserInfoBox(AbstractClient *_client, QWidget *parent)
: QWidget(parent)
{
avatarLabel = new QLabel;
nameLabel = new QLabel;
QFont nameFont = nameLabel->font();
nameFont.setBold(true);
nameFont.setPointSize(nameFont.pointSize() * 1.5);
nameLabel->setFont(nameFont);
countryLabel1 = new QLabel;
countryLabel2 = new QLabel;
userLevelLabel1 = new QLabel;
userLevelLabel2 = new QLabel;
QGridLayout *mainLayout = new QGridLayout;
mainLayout->addWidget(avatarLabel, 0, 0, 3, 1);
mainLayout->addWidget(nameLabel, 0, 1, 1, 2);
mainLayout->addWidget(countryLabel1, 1, 1, 1, 1);
mainLayout->addWidget(countryLabel2, 1, 2, 1, 1);
mainLayout->addWidget(userLevelLabel1, 2, 1, 1, 1);
mainLayout->addWidget(userLevelLabel2, 2, 2, 1, 1);
setLayout(mainLayout);
Command_GetUserInfo *cmd = new Command_GetUserInfo;
connect(cmd, SIGNAL(finished(ProtocolResponse *)), this, SLOT(processResponse(ProtocolResponse *)));
_client->sendCommand(cmd);
}
void UserInfoBox::retranslateUi()
{
countryLabel1->setText(tr("Location:"));
userLevelLabel1->setText(tr("User level:"));
}
void UserInfoBox::processResponse(ProtocolResponse *response)
{
Response_GetUserInfo *resp = qobject_cast<Response_GetUserInfo *>(response);
if (!resp)
return;
ServerInfo_User *user = resp->getUserInfo();
QPixmap avatarPixmap;
if (!avatarPixmap.loadFromData(user->getAvatarBmp()))
avatarPixmap = UserLevelPixmapGenerator::generatePixmap(64, user->getUserLevel());
avatarLabel->setPixmap(avatarPixmap);
nameLabel->setText(user->getName());
countryLabel2->setPixmap(CountryPixmapGenerator::generatePixmap(15, user->getCountry()));
userLevelLabel2->setPixmap(UserLevelPixmapGenerator::generatePixmap(15, user->getUserLevel()));
}
TabServer::TabServer(AbstractClient *_client, QWidget *parent)
: Tab(parent), client(_client)
{
gameSelector = new GameSelector(client);
chatChannelSelector = new ChatChannelSelector(client);
serverMessageLog = new ServerMessageLog(client);
userInfoBox = new UserInfoBox(client);
userList = new UserList(client);
connect(gameSelector, SIGNAL(gameJoined(int)), this, SIGNAL(gameJoined(int)));
@ -359,9 +413,13 @@ TabServer::TabServer(AbstractClient *_client, QWidget *parent)
vbox->addWidget(gameSelector);
vbox->addLayout(hbox);
QVBoxLayout *vbox2 = new QVBoxLayout;
vbox2->addWidget(userInfoBox);
vbox2->addWidget(userList);
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addLayout(vbox, 3);
mainLayout->addWidget(userList, 1);
mainLayout->addLayout(vbox2, 1);
setLayout(mainLayout);
}
@ -371,5 +429,6 @@ void TabServer::retranslateUi()
gameSelector->retranslateUi();
chatChannelSelector->retranslateUi();
serverMessageLog->retranslateUi();
userInfoBox->retranslateUi();
userList->retranslateUi();
}

View file

@ -13,6 +13,7 @@ class QTreeWidgetItem;
class QPushButton;
class QCheckBox;
class QTextEdit;
class QLabel;
class GamesModel;
class GamesProxyModel;
@ -101,6 +102,17 @@ public:
void retranslateUi();
};
class UserInfoBox : public QWidget {
Q_OBJECT
private:
QLabel *avatarLabel, *nameLabel, *countryLabel1, *countryLabel2, *userLevelLabel1, *userLevelLabel2;
private slots:
void processResponse(ProtocolResponse *response);
public:
UserInfoBox(AbstractClient *_client, QWidget *parent = 0);
void retranslateUi();
};
class TabServer : public Tab {
Q_OBJECT
signals:
@ -114,6 +126,7 @@ private:
ChatChannelSelector *chatChannelSelector;
ServerMessageLog *serverMessageLog;
UserList *userList;
UserInfoBox *userInfoBox;
public:
TabServer(AbstractClient *_client, QWidget *parent = 0);
void retranslateUi();

View file

@ -402,27 +402,27 @@
<context>
<name>ChatChannelSelector</name>
<message>
<location filename="../src/tab_server.cpp" line="151"/>
<location filename="../src/tab_server.cpp" line="152"/>
<source>Chat channels</source>
<translation>Chaträume</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="152"/>
<location filename="../src/tab_server.cpp" line="153"/>
<source>Joi&amp;n</source>
<translation>Teil&amp;nehmen</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="155"/>
<location filename="../src/tab_server.cpp" line="156"/>
<source>Channel</source>
<translation>Raum</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="156"/>
<location filename="../src/tab_server.cpp" line="157"/>
<source>Description</source>
<translation>Beschreibung</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="157"/>
<location filename="../src/tab_server.cpp" line="158"/>
<source>Players</source>
<translation>Spieler</translation>
</message>
@ -1183,20 +1183,20 @@
<context>
<name>GameSelector</name>
<message>
<location filename="../src/tab_server.cpp" line="115"/>
<location filename="../src/tab_server.cpp" line="116"/>
<source>C&amp;reate</source>
<translation>Spiel e&amp;rstellen</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="116"/>
<location filename="../src/tab_server.cpp" line="117"/>
<source>&amp;Join</source>
<translation>&amp;Teilnehmen</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="78"/>
<location filename="../src/tab_server.cpp" line="79"/>
<location filename="../src/tab_server.cpp" line="80"/>
<location filename="../src/tab_server.cpp" line="81"/>
<location filename="../src/tab_server.cpp" line="82"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
@ -1205,47 +1205,47 @@
<translation type="obsolete">XXX</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="78"/>
<location filename="../src/tab_server.cpp" line="79"/>
<source>Wrong password.</source>
<translation>Falsches Passwort.</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="79"/>
<location filename="../src/tab_server.cpp" line="80"/>
<source>Spectators are not allowed in this game.</source>
<translation>In diesem Spiel sind keine Zuschauer zugelassen.</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="80"/>
<location filename="../src/tab_server.cpp" line="81"/>
<source>The game is already full.</source>
<translation>Das Spiel ist bereits voll.</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="81"/>
<location filename="../src/tab_server.cpp" line="82"/>
<source>The game does not exist any more.</source>
<translation>Dieses Spiel gibt es nicht mehr.</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="97"/>
<location filename="../src/tab_server.cpp" line="98"/>
<source>Join game</source>
<translation>Spiel beitreten</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="97"/>
<location filename="../src/tab_server.cpp" line="98"/>
<source>Password:</source>
<translation>Passwort:</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="113"/>
<location filename="../src/tab_server.cpp" line="114"/>
<source>Games</source>
<translation>Spiele</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="114"/>
<location filename="../src/tab_server.cpp" line="115"/>
<source>&amp;Show full games</source>
<translation>&amp;Volle Spiele anzeigen</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="117"/>
<location filename="../src/tab_server.cpp" line="118"/>
<source>J&amp;oin as spectator</source>
<translation>&amp;Zuschauen</translation>
</message>
@ -2815,7 +2815,7 @@
<context>
<name>ServerMessageLog</name>
<message>
<location filename="../src/tab_server.cpp" line="231"/>
<location filename="../src/tab_server.cpp" line="232"/>
<source>Server messages</source>
<translation>Servernachrichten</translation>
</message>
@ -3066,7 +3066,7 @@ Bitte geben Sie einen Namen ein:</translation>
<context>
<name>TabServer</name>
<message>
<location filename="../src/tab_server.h" line="120"/>
<location filename="../src/tab_server.h" line="133"/>
<source>Server</source>
<translation>Server</translation>
</message>
@ -3086,6 +3086,19 @@ Bitte geben Sie einen Namen ein:</translation>
<translation type="obsolete">Spiel %1</translation>
</message>
</context>
<context>
<name>UserInfoBox</name>
<message>
<location filename="../src/tab_server.cpp" line="373"/>
<source>Location:</source>
<translation>Ort:</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="374"/>
<source>User level:</source>
<translation>Nutzerstatus:</translation>
</message>
</context>
<context>
<name>UserInterfaceSettingsPage</name>
<message>
@ -3112,7 +3125,7 @@ Bitte geben Sie einen Namen ein:</translation>
<context>
<name>UserList</name>
<message>
<location filename="../src/tab_server.cpp" line="281"/>
<location filename="../src/tab_server.cpp" line="282"/>
<source>Users online: %1</source>
<translation>Benutzer online: %1</translation>
</message>

View file

@ -352,27 +352,27 @@
<context>
<name>ChatChannelSelector</name>
<message>
<location filename="../src/tab_server.cpp" line="151"/>
<location filename="../src/tab_server.cpp" line="152"/>
<source>Chat channels</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="152"/>
<location filename="../src/tab_server.cpp" line="153"/>
<source>Joi&amp;n</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="155"/>
<location filename="../src/tab_server.cpp" line="156"/>
<source>Channel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="156"/>
<location filename="../src/tab_server.cpp" line="157"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="157"/>
<location filename="../src/tab_server.cpp" line="158"/>
<source>Players</source>
<translation type="unfinished"></translation>
</message>
@ -790,65 +790,65 @@
<context>
<name>GameSelector</name>
<message>
<location filename="../src/tab_server.cpp" line="115"/>
<location filename="../src/tab_server.cpp" line="116"/>
<source>C&amp;reate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="116"/>
<location filename="../src/tab_server.cpp" line="117"/>
<source>&amp;Join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="78"/>
<location filename="../src/tab_server.cpp" line="79"/>
<location filename="../src/tab_server.cpp" line="80"/>
<location filename="../src/tab_server.cpp" line="81"/>
<location filename="../src/tab_server.cpp" line="82"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="78"/>
<location filename="../src/tab_server.cpp" line="79"/>
<source>Wrong password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="79"/>
<location filename="../src/tab_server.cpp" line="80"/>
<source>Spectators are not allowed in this game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="80"/>
<location filename="../src/tab_server.cpp" line="81"/>
<source>The game is already full.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="81"/>
<location filename="../src/tab_server.cpp" line="82"/>
<source>The game does not exist any more.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="97"/>
<location filename="../src/tab_server.cpp" line="98"/>
<source>Join game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="97"/>
<location filename="../src/tab_server.cpp" line="98"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="113"/>
<location filename="../src/tab_server.cpp" line="114"/>
<source>Games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="114"/>
<location filename="../src/tab_server.cpp" line="115"/>
<source>&amp;Show full games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="117"/>
<location filename="../src/tab_server.cpp" line="118"/>
<source>J&amp;oin as spectator</source>
<translation type="unfinished"></translation>
</message>
@ -1922,7 +1922,7 @@
<context>
<name>ServerMessageLog</name>
<message>
<location filename="../src/tab_server.cpp" line="231"/>
<location filename="../src/tab_server.cpp" line="232"/>
<source>Server messages</source>
<translation type="unfinished"></translation>
</message>
@ -2144,11 +2144,24 @@ Please enter a name:</source>
<context>
<name>TabServer</name>
<message>
<location filename="../src/tab_server.h" line="120"/>
<location filename="../src/tab_server.h" line="133"/>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UserInfoBox</name>
<message>
<location filename="../src/tab_server.cpp" line="373"/>
<source>Location:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="374"/>
<source>User level:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UserInterfaceSettingsPage</name>
<message>
@ -2175,7 +2188,7 @@ Please enter a name:</source>
<context>
<name>UserList</name>
<message>
<location filename="../src/tab_server.cpp" line="281"/>
<location filename="../src/tab_server.cpp" line="282"/>
<source>Users online: %1</source>
<translation type="unfinished"></translation>
</message>

View file

@ -356,27 +356,27 @@
<context>
<name>ChatChannelSelector</name>
<message>
<location filename="../src/tab_server.cpp" line="151"/>
<location filename="../src/tab_server.cpp" line="152"/>
<source>Chat channels</source>
<translation>Canales de Chat</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="152"/>
<location filename="../src/tab_server.cpp" line="153"/>
<source>Joi&amp;n</source>
<translation>E&amp;ntrar</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="155"/>
<location filename="../src/tab_server.cpp" line="156"/>
<source>Channel</source>
<translation>Canal</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="156"/>
<location filename="../src/tab_server.cpp" line="157"/>
<source>Description</source>
<translation>Descripción</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="157"/>
<location filename="../src/tab_server.cpp" line="158"/>
<source>Players</source>
<translation>Jugadores</translation>
</message>
@ -806,65 +806,65 @@
<context>
<name>GameSelector</name>
<message>
<location filename="../src/tab_server.cpp" line="115"/>
<location filename="../src/tab_server.cpp" line="116"/>
<source>C&amp;reate</source>
<translation>C&amp;rear</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="116"/>
<location filename="../src/tab_server.cpp" line="117"/>
<source>&amp;Join</source>
<translation>E&amp;ntrar</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="78"/>
<location filename="../src/tab_server.cpp" line="79"/>
<location filename="../src/tab_server.cpp" line="80"/>
<location filename="../src/tab_server.cpp" line="81"/>
<location filename="../src/tab_server.cpp" line="82"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="78"/>
<location filename="../src/tab_server.cpp" line="79"/>
<source>Wrong password.</source>
<translation>Contraseña incorrecta.</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="79"/>
<location filename="../src/tab_server.cpp" line="80"/>
<source>Spectators are not allowed in this game.</source>
<translation>No se permiten espectadores en esta partida.</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="80"/>
<location filename="../src/tab_server.cpp" line="81"/>
<source>The game is already full.</source>
<translation>La partida no tiene plazas libres.</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="81"/>
<location filename="../src/tab_server.cpp" line="82"/>
<source>The game does not exist any more.</source>
<translation>La partida ya no existe.</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="97"/>
<location filename="../src/tab_server.cpp" line="98"/>
<source>Join game</source>
<translation>Entrar en la partida</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="97"/>
<location filename="../src/tab_server.cpp" line="98"/>
<source>Password:</source>
<translation>Contraseña:</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="113"/>
<location filename="../src/tab_server.cpp" line="114"/>
<source>Games</source>
<translation>Partidas</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="114"/>
<location filename="../src/tab_server.cpp" line="115"/>
<source>&amp;Show full games</source>
<translation>&amp;Ver partidas sin plazas libres</translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="117"/>
<location filename="../src/tab_server.cpp" line="118"/>
<source>J&amp;oin as spectator</source>
<translation>Entrar como e&amp;spectador</translation>
</message>
@ -1950,7 +1950,7 @@
<context>
<name>ServerMessageLog</name>
<message>
<location filename="../src/tab_server.cpp" line="231"/>
<location filename="../src/tab_server.cpp" line="232"/>
<source>Server messages</source>
<translation>Mensajes del servidor</translation>
</message>
@ -2173,11 +2173,24 @@ Por favor, introduzca un nombre:</translation>
<context>
<name>TabServer</name>
<message>
<location filename="../src/tab_server.h" line="120"/>
<location filename="../src/tab_server.h" line="133"/>
<source>Server</source>
<translation>Servidor</translation>
</message>
</context>
<context>
<name>UserInfoBox</name>
<message>
<location filename="../src/tab_server.cpp" line="373"/>
<source>Location:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="374"/>
<source>User level:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UserInterfaceSettingsPage</name>
<message>
@ -2204,7 +2217,7 @@ Por favor, introduzca un nombre:</translation>
<context>
<name>UserList</name>
<message>
<location filename="../src/tab_server.cpp" line="281"/>
<location filename="../src/tab_server.cpp" line="282"/>
<source>Users online: %1</source>
<translation>Usuarios online: %1</translation>
</message>