filter running games; minor server code cleanup

This commit is contained in:
Max-Wilhelm Bruker 2011-07-03 16:45:52 +02:00
parent 9727a38956
commit 898623f1ba
24 changed files with 369 additions and 289 deletions

View file

@ -27,23 +27,34 @@ GameSelector::GameSelector(AbstractClient *_client, TabRoom *_room, const QMap<i
gameListView->header()->setResizeMode(1, QHeaderView::ResizeToContents);
showFullGamesCheckBox = new QCheckBox;
showRunningGamesCheckBox = new QCheckBox;
QVBoxLayout *filterLayout = new QVBoxLayout;
filterLayout->addWidget(showFullGamesCheckBox);
filterLayout->addWidget(showRunningGamesCheckBox);
if (room)
createButton = new QPushButton;
else
createButton = 0;
joinButton = new QPushButton;
spectateButton = new QPushButton;
QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addWidget(showFullGamesCheckBox);
buttonLayout->addStretch();
if (room)
buttonLayout->addWidget(createButton);
buttonLayout->addWidget(joinButton);
buttonLayout->addWidget(spectateButton);
buttonLayout->setAlignment(Qt::AlignTop);
QHBoxLayout *hbox = new QHBoxLayout;
hbox->addLayout(filterLayout);
hbox->addStretch();
hbox->addLayout(buttonLayout);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(gameListView);
mainLayout->addLayout(buttonLayout);
mainLayout->addLayout(hbox);
retranslateUi();
setLayout(mainLayout);
@ -52,6 +63,7 @@ GameSelector::GameSelector(AbstractClient *_client, TabRoom *_room, const QMap<i
setMinimumHeight(200);
connect(showFullGamesCheckBox, SIGNAL(stateChanged(int)), this, SLOT(showFullGamesChanged(int)));
connect(showRunningGamesCheckBox, SIGNAL(stateChanged(int)), this, SLOT(showRunningGamesChanged(int)));
connect(createButton, SIGNAL(clicked()), this, SLOT(actCreate()));
connect(joinButton, SIGNAL(clicked()), this, SLOT(actJoin()));
connect(spectateButton, SIGNAL(clicked()), this, SLOT(actJoin()));
@ -62,6 +74,11 @@ void GameSelector::showFullGamesChanged(int state)
gameListProxyModel->setFullGamesVisible(state);
}
void GameSelector::showRunningGamesChanged(int state)
{
gameListProxyModel->setRunningGamesVisible(state);
}
void GameSelector::actCreate()
{
DlgCreateGame dlg(client, room->getRoomId(), room->getGameTypes(), this);
@ -118,6 +135,7 @@ void GameSelector::retranslateUi()
{
setTitle(tr("Games"));
showFullGamesCheckBox->setText(tr("Show &full games"));
showRunningGamesCheckBox->setText(tr("Show &running games"));
if (createButton)
createButton->setText(tr("C&reate"));
joinButton->setText(tr("&Join"));

View file

@ -18,6 +18,7 @@ class GameSelector : public QGroupBox {
Q_OBJECT
private slots:
void showFullGamesChanged(int state);
void showRunningGamesChanged(int state);
void actCreate();
void actJoin();
void checkResponse(ResponseCode response);
@ -31,7 +32,7 @@ private:
GamesModel *gameListModel;
GamesProxyModel *gameListProxyModel;
QPushButton *createButton, *joinButton, *spectateButton;
QCheckBox *showFullGamesCheckBox;
QCheckBox *showFullGamesCheckBox, *showRunningGamesCheckBox;
public:
GameSelector(AbstractClient *_client, TabRoom *_room, const QMap<int, QString> &_rooms, const QMap<int, GameTypeMap> &_gameTypes, QWidget *parent = 0);
void retranslateUi();

View file

@ -85,7 +85,7 @@ void GamesModel::updateGameList(ServerInfo_Game *_game)
for (int i = 0; i < oldGameTypeList.size(); ++i)
gameTypeList.append(new GameTypeId(oldGameTypeList[i]->getData()));
ServerInfo_Game *game = new ServerInfo_Game(_game->getRoomId(), _game->getGameId(), _game->getDescription(), _game->getHasPassword(), _game->getPlayerCount(), _game->getMaxPlayers(), gameTypeList, new ServerInfo_User(_game->getCreatorInfo()), _game->getOnlyBuddies(), _game->getOnlyRegistered(), _game->getSpectatorsAllowed(), _game->getSpectatorsNeedPassword(), _game->getSpectatorCount());
ServerInfo_Game *game = new ServerInfo_Game(_game->getRoomId(), _game->getGameId(), _game->getDescription(), _game->getHasPassword(), _game->getPlayerCount(), _game->getMaxPlayers(), _game->getStarted(), gameTypeList, new ServerInfo_User(_game->getCreatorInfo()), _game->getOnlyBuddies(), _game->getOnlyRegistered(), _game->getSpectatorsAllowed(), _game->getSpectatorsNeedPassword(), _game->getSpectatorCount());
for (int i = 0; i < gameList.size(); i++)
if (gameList[i]->getGameId() == game->getGameId()) {
if (game->getPlayerCount() == 0) {
@ -118,17 +118,22 @@ void GamesProxyModel::setFullGamesVisible(bool _fullGamesVisible)
invalidateFilter();
}
void GamesProxyModel::setRunningGamesVisible(bool _runningGamesVisible)
{
runningGamesVisible = _runningGamesVisible;
invalidateFilter();
}
bool GamesProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &/*sourceParent*/) const
{
if (fullGamesVisible)
return true;
GamesModel *model = qobject_cast<GamesModel *>(sourceModel());
if (!model)
return false;
ServerInfo_Game *game = model->getGame(sourceRow);
if (game->getPlayerCount() == game->getMaxPlayers())
if ((game->getPlayerCount() == game->getMaxPlayers()) && !fullGamesVisible)
return false;
if (game->getStarted() && !runningGamesVisible)
return false;
return true;

View file

@ -30,9 +30,11 @@ class GamesProxyModel : public QSortFilterProxyModel {
Q_OBJECT
private:
bool fullGamesVisible;
bool runningGamesVisible;
public:
GamesProxyModel(QObject *parent = 0);
void setFullGamesVisible(bool _fullGamesVisible);
void setRunningGamesVisible(bool _runningGamesVisible);
protected:
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
};

View file

@ -1203,89 +1203,94 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context>
<name>GameSelector</name>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="94"/>
<location filename="../src/gameselector.cpp" line="95"/>
<location filename="../src/gameselector.cpp" line="96"/>
<location filename="../src/gameselector.cpp" line="97"/>
<location filename="../src/gameselector.cpp" line="98"/>
<location filename="../src/gameselector.cpp" line="99"/>
<location filename="../src/gameselector.cpp" line="100"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="94"/>
<source>Please join the appropriate room first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="95"/>
<source>Wrong password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="96"/>
<source>Spectators are not allowed in this game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="97"/>
<source>The game is already full.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="98"/>
<source>The game does not exist any more.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="99"/>
<source>This game is only open to registered users.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="100"/>
<source>This game is only open to its creator&apos;s buddies.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>You are being ignored by the creator of this game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Join game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="119"/>
<location filename="../src/gameselector.cpp" line="134"/>
<source>Games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="120"/>
<location filename="../src/gameselector.cpp" line="135"/>
<source>Show &amp;full games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="122"/>
<location filename="../src/gameselector.cpp" line="136"/>
<source>Show &amp;running games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="138"/>
<source>C&amp;reate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="123"/>
<location filename="../src/gameselector.cpp" line="139"/>
<source>&amp;Join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="124"/>
<location filename="../src/gameselector.cpp" line="140"/>
<source>J&amp;oin as spectator</source>
<translation type="unfinished"></translation>
</message>

View file

@ -1947,24 +1947,24 @@ Dies wird nur für Moderatoren gespeichert und kann von der gebannten Person nic
<context>
<name>GameSelector</name>
<message>
<location filename="../src/gameselector.cpp" line="122"/>
<location filename="../src/gameselector.cpp" line="138"/>
<source>C&amp;reate</source>
<translation>Spiel e&amp;rstellen</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="123"/>
<location filename="../src/gameselector.cpp" line="139"/>
<source>&amp;Join</source>
<translation>&amp;Teilnehmen</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="94"/>
<location filename="../src/gameselector.cpp" line="95"/>
<location filename="../src/gameselector.cpp" line="96"/>
<location filename="../src/gameselector.cpp" line="97"/>
<location filename="../src/gameselector.cpp" line="98"/>
<location filename="../src/gameselector.cpp" line="99"/>
<location filename="../src/gameselector.cpp" line="100"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
@ -1973,71 +1973,76 @@ Dies wird nur für Moderatoren gespeichert und kann von der gebannten Person nic
<translation type="obsolete">XXX</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="94"/>
<source>Please join the appropriate room first.</source>
<translation>Bitte betreten Sie erst den entsprechenden Raum.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="95"/>
<source>Wrong password.</source>
<translation>Falsches Passwort.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="96"/>
<source>Spectators are not allowed in this game.</source>
<translation>In diesem Spiel sind keine Zuschauer zugelassen.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="97"/>
<source>The game is already full.</source>
<translation>Das Spiel ist bereits voll.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="98"/>
<source>The game does not exist any more.</source>
<translation>Dieses Spiel gibt es nicht mehr.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="99"/>
<source>This game is only open to registered users.</source>
<translation>Dieses Spiel kann nur von registrierten Benutzern betreten werden.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="100"/>
<source>This game is only open to its creator&apos;s buddies.</source>
<translation>Dieses Spiel kann nur von Freunden des Erstellers betreten werden.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>You are being ignored by the creator of this game.</source>
<translation>Der Ersteller dieses Spiels ignoriert Sie.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Join game</source>
<translation>Spiel beitreten</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Password:</source>
<translation>Passwort:</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="119"/>
<location filename="../src/gameselector.cpp" line="134"/>
<source>Games</source>
<translation>Spiele</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="120"/>
<location filename="../src/gameselector.cpp" line="135"/>
<source>Show &amp;full games</source>
<translation>&amp;Volle Spiele anzeigen</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="136"/>
<source>Show &amp;running games</source>
<translation>&amp;Laufende Spiele anzeigen</translation>
</message>
<message>
<source>&amp;Show full games</source>
<translation type="obsolete">&amp;Volle Spiele anzeigen</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="124"/>
<location filename="../src/gameselector.cpp" line="140"/>
<source>J&amp;oin as spectator</source>
<translation>&amp;Zuschauen</translation>
</message>

View file

@ -1203,89 +1203,94 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context>
<name>GameSelector</name>
<message>
<location filename="../src/gameselector.cpp" line="122"/>
<location filename="../src/gameselector.cpp" line="138"/>
<source>C&amp;reate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="123"/>
<location filename="../src/gameselector.cpp" line="139"/>
<source>&amp;Join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="94"/>
<location filename="../src/gameselector.cpp" line="95"/>
<location filename="../src/gameselector.cpp" line="96"/>
<location filename="../src/gameselector.cpp" line="97"/>
<location filename="../src/gameselector.cpp" line="98"/>
<location filename="../src/gameselector.cpp" line="99"/>
<location filename="../src/gameselector.cpp" line="100"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="94"/>
<source>Please join the appropriate room first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="95"/>
<source>Wrong password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="96"/>
<source>Spectators are not allowed in this game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="97"/>
<source>The game is already full.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="98"/>
<source>The game does not exist any more.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="99"/>
<source>This game is only open to registered users.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="100"/>
<source>This game is only open to its creator&apos;s buddies.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>You are being ignored by the creator of this game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Join game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="119"/>
<location filename="../src/gameselector.cpp" line="134"/>
<source>Games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="120"/>
<location filename="../src/gameselector.cpp" line="135"/>
<source>Show &amp;full games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="124"/>
<location filename="../src/gameselector.cpp" line="136"/>
<source>Show &amp;running games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="140"/>
<source>J&amp;oin as spectator</source>
<translation type="unfinished"></translation>
</message>

View file

@ -1565,93 +1565,98 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context>
<name>GameSelector</name>
<message>
<location filename="../src/gameselector.cpp" line="122"/>
<location filename="../src/gameselector.cpp" line="138"/>
<source>C&amp;reate</source>
<translation>C&amp;rear</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="123"/>
<location filename="../src/gameselector.cpp" line="139"/>
<source>&amp;Join</source>
<translation>E&amp;ntrar</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="94"/>
<location filename="../src/gameselector.cpp" line="95"/>
<location filename="../src/gameselector.cpp" line="96"/>
<location filename="../src/gameselector.cpp" line="97"/>
<location filename="../src/gameselector.cpp" line="98"/>
<location filename="../src/gameselector.cpp" line="99"/>
<location filename="../src/gameselector.cpp" line="100"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="94"/>
<source>Please join the appropriate room first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="95"/>
<source>Wrong password.</source>
<translation>Contraseña incorrecta.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="96"/>
<source>Spectators are not allowed in this game.</source>
<translation>No se permiten espectadores en esta partida.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="97"/>
<source>The game is already full.</source>
<translation>La partida no tiene plazas libres.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="98"/>
<source>The game does not exist any more.</source>
<translation>La partida ya no existe.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="99"/>
<source>This game is only open to registered users.</source>
<translation>Esta partida está abierta sólo a usuarios registrados.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="100"/>
<source>This game is only open to its creator&apos;s buddies.</source>
<translation>Esta partida está abierta sólo a los amigos del creador.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>You are being ignored by the creator of this game.</source>
<translation>Estas siendo ignorado por el creador de la partida.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Join game</source>
<translation>Entrar en la partida</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Password:</source>
<translation>Contraseña:</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="119"/>
<location filename="../src/gameselector.cpp" line="134"/>
<source>Games</source>
<translation>Partidas</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="120"/>
<location filename="../src/gameselector.cpp" line="135"/>
<source>Show &amp;full games</source>
<translation>Ver partidas &amp;sin plazas libres</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="136"/>
<source>Show &amp;running games</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Show full games</source>
<translation type="obsolete">&amp;Ver partidas sin plazas libres</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="124"/>
<location filename="../src/gameselector.cpp" line="140"/>
<source>J&amp;oin as spectator</source>
<translation>Entrar como e&amp;spectador</translation>
</message>

View file

@ -1415,94 +1415,99 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context>
<name>GameSelector</name>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="94"/>
<location filename="../src/gameselector.cpp" line="95"/>
<location filename="../src/gameselector.cpp" line="96"/>
<location filename="../src/gameselector.cpp" line="97"/>
<location filename="../src/gameselector.cpp" line="98"/>
<location filename="../src/gameselector.cpp" line="99"/>
<location filename="../src/gameselector.cpp" line="100"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>Error</source>
<translation>Erreur</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="94"/>
<source>Please join the appropriate room first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="95"/>
<source>Wrong password.</source>
<translation>Mot de passe erroné.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="96"/>
<source>Spectators are not allowed in this game.</source>
<translation>Les spectateurs ne sont pas autorisés dans cette partie.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="97"/>
<source>The game is already full.</source>
<translation>Cette partie est déjà pleine.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="98"/>
<source>The game does not exist any more.</source>
<translation>La partie n&apos;existe plus.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="99"/>
<source>This game is only open to registered users.</source>
<translation>Cette partie n&apos;est accessible qu&apos;aux joueurs enregistrés.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="100"/>
<source>This game is only open to its creator&apos;s buddies.</source>
<translation>Cette partie n&apos;est accessible qu&apos;aux amis.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>You are being ignored by the creator of this game.</source>
<translation>Vous avez é ignoré par le créateur de la partie.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Join game</source>
<translation>Rejoindre partie</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Password:</source>
<translation>Mot de passe:</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="119"/>
<location filename="../src/gameselector.cpp" line="134"/>
<source>Games</source>
<translation>Parties</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="120"/>
<location filename="../src/gameselector.cpp" line="135"/>
<source>Show &amp;full games</source>
<translation>Montrer &amp;toutes les parties</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="136"/>
<source>Show &amp;running games</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Show full games</source>
<translatorcomment>toutes ou complèetes?</translatorcomment>
<translation type="obsolete">&amp;Montrer toutes les parties</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="122"/>
<location filename="../src/gameselector.cpp" line="138"/>
<source>C&amp;reate</source>
<translation>C&amp;réer</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="123"/>
<location filename="../src/gameselector.cpp" line="139"/>
<source>&amp;Join</source>
<translation>Re&amp;joindre</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="124"/>
<location filename="../src/gameselector.cpp" line="140"/>
<source>J&amp;oin as spectator</source>
<translation>Rej&amp;oindre en tant que spectateur</translation>
</message>

View file

@ -1251,93 +1251,98 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context>
<name>GameSelector</name>
<message>
<location filename="../src/gameselector.cpp" line="122"/>
<location filename="../src/gameselector.cpp" line="138"/>
<source>C&amp;reate</source>
<translation></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="123"/>
<location filename="../src/gameselector.cpp" line="139"/>
<source>&amp;Join</source>
<translation></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="94"/>
<location filename="../src/gameselector.cpp" line="95"/>
<location filename="../src/gameselector.cpp" line="96"/>
<location filename="../src/gameselector.cpp" line="97"/>
<location filename="../src/gameselector.cpp" line="98"/>
<location filename="../src/gameselector.cpp" line="99"/>
<location filename="../src/gameselector.cpp" line="100"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>Error</source>
<translation></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="94"/>
<source>Please join the appropriate room first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="95"/>
<source>Wrong password.</source>
<translation>.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="96"/>
<source>Spectators are not allowed in this game.</source>
<translation>.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="97"/>
<source>The game is already full.</source>
<translation>.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="98"/>
<source>The game does not exist any more.</source>
<translation>.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="99"/>
<source>This game is only open to registered users.</source>
<translation>.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="100"/>
<source>This game is only open to its creator&apos;s buddies.</source>
<translation>.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>You are being ignored by the creator of this game.</source>
<translation>.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Join game</source>
<translation></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Password:</source>
<translation>:</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="119"/>
<location filename="../src/gameselector.cpp" line="134"/>
<source>Games</source>
<translation></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="120"/>
<location filename="../src/gameselector.cpp" line="135"/>
<source>Show &amp;full games</source>
<translation></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="136"/>
<source>Show &amp;running games</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Show full games</source>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="124"/>
<location filename="../src/gameselector.cpp" line="140"/>
<source>J&amp;oin as spectator</source>
<translation></translation>
</message>

View file

@ -1203,89 +1203,94 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context>
<name>GameSelector</name>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="94"/>
<location filename="../src/gameselector.cpp" line="95"/>
<location filename="../src/gameselector.cpp" line="96"/>
<location filename="../src/gameselector.cpp" line="97"/>
<location filename="../src/gameselector.cpp" line="98"/>
<location filename="../src/gameselector.cpp" line="99"/>
<location filename="../src/gameselector.cpp" line="100"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="94"/>
<source>Please join the appropriate room first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="95"/>
<source>Wrong password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="96"/>
<source>Spectators are not allowed in this game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="97"/>
<source>The game is already full.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="98"/>
<source>The game does not exist any more.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="99"/>
<source>This game is only open to registered users.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="100"/>
<source>This game is only open to its creator&apos;s buddies.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>You are being ignored by the creator of this game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Join game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="119"/>
<location filename="../src/gameselector.cpp" line="134"/>
<source>Games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="120"/>
<location filename="../src/gameselector.cpp" line="135"/>
<source>Show &amp;full games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="122"/>
<location filename="../src/gameselector.cpp" line="136"/>
<source>Show &amp;running games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="138"/>
<source>C&amp;reate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="123"/>
<location filename="../src/gameselector.cpp" line="139"/>
<source>&amp;Join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="124"/>
<location filename="../src/gameselector.cpp" line="140"/>
<source>J&amp;oin as spectator</source>
<translation type="unfinished"></translation>
</message>

View file

@ -1419,93 +1419,98 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context>
<name>GameSelector</name>
<message>
<location filename="../src/gameselector.cpp" line="122"/>
<location filename="../src/gameselector.cpp" line="138"/>
<source>C&amp;reate</source>
<translation>&amp;Criar</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="123"/>
<location filename="../src/gameselector.cpp" line="139"/>
<source>&amp;Join</source>
<translation>&amp;Entrar</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="94"/>
<location filename="../src/gameselector.cpp" line="95"/>
<location filename="../src/gameselector.cpp" line="96"/>
<location filename="../src/gameselector.cpp" line="97"/>
<location filename="../src/gameselector.cpp" line="98"/>
<location filename="../src/gameselector.cpp" line="99"/>
<location filename="../src/gameselector.cpp" line="100"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>Error</source>
<translation>Erro</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="94"/>
<source>Please join the appropriate room first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="95"/>
<source>Wrong password.</source>
<translation>Senha incorreta.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="96"/>
<source>Spectators are not allowed in this game.</source>
<translation>Não são permitidos visitantes neste jogo.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="97"/>
<source>The game is already full.</source>
<translation>O jogo está cheio.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="98"/>
<source>The game does not exist any more.</source>
<translation>O jogo não existe mais.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="99"/>
<source>This game is only open to registered users.</source>
<translation>Este jogo é aberto apenas para usuários registrados.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="100"/>
<source>This game is only open to its creator&apos;s buddies.</source>
<translation>Este jogo é aberto apenas para os amigos de quem criou o jogo.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>You are being ignored by the creator of this game.</source>
<translation>Você está sendo ignorado pelo criador deste jogo.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Join game</source>
<translation>Entrar no jogo</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Password:</source>
<translation>Senha:</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="119"/>
<location filename="../src/gameselector.cpp" line="134"/>
<source>Games</source>
<translation>Jogos</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="120"/>
<location filename="../src/gameselector.cpp" line="135"/>
<source>Show &amp;full games</source>
<translation>&amp;Mostrar os jogos cheios</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="136"/>
<source>Show &amp;running games</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Show full games</source>
<translation type="obsolete">&amp;Mostrar os jogos cheios</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="124"/>
<location filename="../src/gameselector.cpp" line="140"/>
<source>J&amp;oin as spectator</source>
<translation>E&amp;ntrar como visitante</translation>
</message>

View file

@ -1419,93 +1419,98 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context>
<name>GameSelector</name>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="94"/>
<location filename="../src/gameselector.cpp" line="95"/>
<location filename="../src/gameselector.cpp" line="96"/>
<location filename="../src/gameselector.cpp" line="97"/>
<location filename="../src/gameselector.cpp" line="98"/>
<location filename="../src/gameselector.cpp" line="99"/>
<location filename="../src/gameselector.cpp" line="100"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>Error</source>
<translation>Erro</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="94"/>
<source>Please join the appropriate room first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="95"/>
<source>Wrong password.</source>
<translation>Password incorrecta.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="96"/>
<source>Spectators are not allowed in this game.</source>
<translation>Não são permitidos espectadores neste jogo.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="97"/>
<source>The game is already full.</source>
<translation>O jogo se encontra cheio.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="98"/>
<source>The game does not exist any more.</source>
<translation>O jogo não existe.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="99"/>
<source>This game is only open to registered users.</source>
<translation>Este jogo está aberto a utilizadores registados.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="100"/>
<source>This game is only open to its creator&apos;s buddies.</source>
<translation>Este jogo está aberto aos amigos do seu criador.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>You are being ignored by the creator of this game.</source>
<translation>Você está a ser ignorado pelo criador deste jogo.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Join game</source>
<translation>Entrar no jogo</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Password:</source>
<translation>Password:</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="119"/>
<location filename="../src/gameselector.cpp" line="134"/>
<source>Games</source>
<translation>Jogos</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="120"/>
<location filename="../src/gameselector.cpp" line="135"/>
<source>Show &amp;full games</source>
<translation>&amp;Mostrar jogos cheios</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="136"/>
<source>Show &amp;running games</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Show full games</source>
<translation type="obsolete">&amp;Mostrar jogos cheios</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="122"/>
<location filename="../src/gameselector.cpp" line="138"/>
<source>C&amp;reate</source>
<translation>&amp;Criar</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="123"/>
<location filename="../src/gameselector.cpp" line="139"/>
<source>&amp;Join</source>
<translation>&amp;Entrar</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="124"/>
<location filename="../src/gameselector.cpp" line="140"/>
<source>J&amp;oin as spectator</source>
<translation>Entrar como &amp;espectador</translation>
</message>

View file

@ -1358,89 +1358,94 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context>
<name>GameSelector</name>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="94"/>
<location filename="../src/gameselector.cpp" line="95"/>
<location filename="../src/gameselector.cpp" line="96"/>
<location filename="../src/gameselector.cpp" line="97"/>
<location filename="../src/gameselector.cpp" line="98"/>
<location filename="../src/gameselector.cpp" line="99"/>
<location filename="../src/gameselector.cpp" line="100"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>Error</source>
<translation>Ошибка</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="94"/>
<source>Please join the appropriate room first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="95"/>
<source>Wrong password.</source>
<translation>Неверный пароль.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="96"/>
<source>Spectators are not allowed in this game.</source>
<translation>В эту игру не пускают зрителей.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="97"/>
<source>The game is already full.</source>
<translation>Все места заняты! =Ь</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="98"/>
<source>The game does not exist any more.</source>
<translation>Эта игра была удалена.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="99"/>
<source>This game is only open to registered users.</source>
<translation>Доступно только для зарегистрированных.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="100"/>
<source>This game is only open to its creator&apos;s buddies.</source>
<translation>Доступно только для друзей.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>You are being ignored by the creator of this game.</source>
<translation>Вы добавлены в игнор-лист данного игрока.</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Join game</source>
<translation>Присоединиться</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Password:</source>
<translation>Пароль:</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="119"/>
<location filename="../src/gameselector.cpp" line="134"/>
<source>Games</source>
<translation>Игры</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="120"/>
<location filename="../src/gameselector.cpp" line="135"/>
<source>Show &amp;full games</source>
<translation>Показывать &amp;текущие</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="122"/>
<location filename="../src/gameselector.cpp" line="136"/>
<source>Show &amp;running games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="138"/>
<source>C&amp;reate</source>
<translation>С&amp;оздать</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="123"/>
<location filename="../src/gameselector.cpp" line="139"/>
<source>&amp;Join</source>
<translation>&amp;Присоединиться</translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="124"/>
<location filename="../src/gameselector.cpp" line="140"/>
<source>J&amp;oin as spectator</source>
<translation>П&amp;рисоединиться как зритель</translation>
</message>

View file

@ -1203,89 +1203,94 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context>
<name>GameSelector</name>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="94"/>
<location filename="../src/gameselector.cpp" line="95"/>
<location filename="../src/gameselector.cpp" line="96"/>
<location filename="../src/gameselector.cpp" line="97"/>
<location filename="../src/gameselector.cpp" line="98"/>
<location filename="../src/gameselector.cpp" line="99"/>
<location filename="../src/gameselector.cpp" line="100"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="79"/>
<location filename="../src/gameselector.cpp" line="94"/>
<source>Please join the appropriate room first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="80"/>
<location filename="../src/gameselector.cpp" line="95"/>
<source>Wrong password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="81"/>
<location filename="../src/gameselector.cpp" line="96"/>
<source>Spectators are not allowed in this game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="82"/>
<location filename="../src/gameselector.cpp" line="97"/>
<source>The game is already full.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="83"/>
<location filename="../src/gameselector.cpp" line="98"/>
<source>The game does not exist any more.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="84"/>
<location filename="../src/gameselector.cpp" line="99"/>
<source>This game is only open to registered users.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="85"/>
<location filename="../src/gameselector.cpp" line="100"/>
<source>This game is only open to its creator&apos;s buddies.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="86"/>
<location filename="../src/gameselector.cpp" line="101"/>
<source>You are being ignored by the creator of this game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Join game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="102"/>
<location filename="../src/gameselector.cpp" line="117"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="119"/>
<location filename="../src/gameselector.cpp" line="134"/>
<source>Games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="120"/>
<location filename="../src/gameselector.cpp" line="135"/>
<source>Show &amp;full games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="122"/>
<location filename="../src/gameselector.cpp" line="136"/>
<source>Show &amp;running games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="138"/>
<source>C&amp;reate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="123"/>
<location filename="../src/gameselector.cpp" line="139"/>
<source>&amp;Join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gameselector.cpp" line="124"/>
<location filename="../src/gameselector.cpp" line="140"/>
<source>J&amp;oin as spectator</source>
<translation type="unfinished"></translation>
</message>

View file

@ -40,7 +40,7 @@ ServerInfo_UserList::ServerInfo_UserList(const QString &_itemType, const QList<S
itemList.append(_userList[i]);
}
ServerInfo_Game::ServerInfo_Game(int _roomId, int _gameId, const QString &_description, bool _hasPassword, int _playerCount, int _maxPlayers, const QList<GameTypeId *> &_gameTypes, ServerInfo_User *_creatorInfo, bool _onlyBuddies, bool _onlyRegistered, bool _spectatorsAllowed, bool _spectatorsNeedPassword, int _spectatorCount)
ServerInfo_Game::ServerInfo_Game(int _roomId, int _gameId, const QString &_description, bool _hasPassword, int _playerCount, int _maxPlayers, bool _started, const QList<GameTypeId *> &_gameTypes, ServerInfo_User *_creatorInfo, bool _onlyBuddies, bool _onlyRegistered, bool _spectatorsAllowed, bool _spectatorsNeedPassword, int _spectatorCount)
: SerializableItem_Map("game")
{
insertItem(new SerializableItem_Int("room_id", _roomId));
@ -49,6 +49,7 @@ ServerInfo_Game::ServerInfo_Game(int _roomId, int _gameId, const QString &_descr
insertItem(new SerializableItem_Bool("has_password", _hasPassword));
insertItem(new SerializableItem_Int("player_count", _playerCount));
insertItem(new SerializableItem_Int("max_players", _maxPlayers));
insertItem(new SerializableItem_Bool("started", _started));
if (!_creatorInfo)
_creatorInfo = new ServerInfo_User;
insertItem(_creatorInfo);

View file

@ -69,7 +69,7 @@ public:
class ServerInfo_Game : public SerializableItem_Map {
public:
ServerInfo_Game(int _roomId = -1, int _gameId = -1, const QString &_description = QString(), bool _hasPassword = false, int _playerCount = -1, int _maxPlayers = -1, const QList<GameTypeId *> &_gameTypes = QList<GameTypeId *>(), ServerInfo_User *creatorInfo = 0, bool _onlyBuddies = false, bool _onlyRegistered = false, bool _spectatorsAllowed = false, bool _spectatorsNeedPassword = false, int _spectatorCount = -1);
ServerInfo_Game(int _roomId = -1, int _gameId = -1, const QString &_description = QString(), bool _hasPassword = false, int _playerCount = -1, int _maxPlayers = -1, bool _started = false, const QList<GameTypeId *> &_gameTypes = QList<GameTypeId *>(), ServerInfo_User *creatorInfo = 0, bool _onlyBuddies = false, bool _onlyRegistered = false, bool _spectatorsAllowed = false, bool _spectatorsNeedPassword = false, int _spectatorCount = -1);
static SerializableItem *newItem() { return new ServerInfo_Game; }
int getRoomId() const { return static_cast<SerializableItem_Int *>(itemMap.value("room_id"))->getData(); }
int getGameId() const { return static_cast<SerializableItem_Int *>(itemMap.value("game_id"))->getData(); }
@ -77,6 +77,7 @@ public:
bool getHasPassword() const { return static_cast<SerializableItem_Bool *>(itemMap.value("has_password"))->getData(); }
int getPlayerCount() const { return static_cast<SerializableItem_Int *>(itemMap.value("player_count"))->getData(); }
int getMaxPlayers() const { return static_cast<SerializableItem_Int *>(itemMap.value("max_players"))->getData(); }
bool getStarted() const { return static_cast<SerializableItem_Bool *>(itemMap.value("started"))->getData(); }
QList<GameTypeId *> getGameTypes() const { return typecastItemList<GameTypeId *>(); }
ServerInfo_User *getCreatorInfo() const { return static_cast<ServerInfo_User *>(itemMap.value("user")); }
bool getOnlyBuddies() const { return static_cast<SerializableItem_Bool *>(itemMap.value("only_buddies"))->getData(); }

View file

@ -19,8 +19,8 @@
***************************************************************************/
#include "server_card.h"
Server_Card::Server_Card(QString _name, int _id, int _coord_x, int _coord_y)
: id(_id), coord_x(_coord_x), coord_y(_coord_y), name(_name), tapped(false), attacking(false), facedown(false), color(QString()), power(-1), toughness(-1), annotation(QString()), destroyOnZoneChange(false), doesntUntap(false), parentCard(0)
Server_Card::Server_Card(QString _name, int _id, int _coord_x, int _coord_y, Server_CardZone *_zone)
: zone(_zone), id(_id), coord_x(_coord_x), coord_y(_coord_y), name(_name), tapped(false), attacking(false), facedown(false), color(QString()), power(-1), toughness(-1), annotation(QString()), destroyOnZoneChange(false), doesntUntap(false), parentCard(0)
{
}

View file

@ -46,7 +46,7 @@ private:
Server_Card *parentCard;
QList<Server_Card *> attachedCards;
public:
Server_Card(QString _name, int _id, int _coord_x, int _coord_y);
Server_Card(QString _name, int _id, int _coord_x, int _coord_y, Server_CardZone *_zone = 0);
~Server_Card();
Server_CardZone *getZone() const { return zone; }

View file

@ -52,10 +52,12 @@ int Server_CardZone::removeCard(Server_Card *card)
int index = cards.indexOf(card);
cards.removeAt(index);
card->setZone(0);
return index;
}
Server_Card *Server_CardZone::getCard(int id, bool remove, int *position)
Server_Card *Server_CardZone::getCard(int id, int *position)
{
QMutexLocker locker(&player->getGame()->gameMutex);
@ -65,10 +67,6 @@ Server_Card *Server_CardZone::getCard(int id, bool remove, int *position)
while (CardIterator.hasNext()) {
Server_Card *tmp = CardIterator.next();
if (tmp->getId() == id) {
if (remove) {
cards.removeAt(i);
tmp->setZone(0);
}
if (position)
*position = i;
return tmp;
@ -80,10 +78,6 @@ Server_Card *Server_CardZone::getCard(int id, bool remove, int *position)
if ((id >= cards.size()) || (id < 0))
return NULL;
Server_Card *tmp = cards[id];
if (remove) {
cards.removeAt(id);
tmp->setZone(0);
}
if (position)
*position = id;
return tmp;

View file

@ -41,7 +41,7 @@ public:
~Server_CardZone();
int removeCard(Server_Card *card);
Server_Card *getCard(int id, bool remove, int *position = NULL);
Server_Card *getCard(int id, int *position = NULL);
int getCardsBeingLookedAt() const { return cardsBeingLookedAt; }
void setCardsBeingLookedAt(int _cardsBeingLookedAt) { cardsBeingLookedAt = _cardsBeingLookedAt; }

View file

@ -160,6 +160,8 @@ void Server_Game::doStartGameIfReady()
*/
activePlayer = -1;
nextTurn();
room->broadcastGameListUpdate(this);
}
void Server_Game::startGameIfReady()
@ -490,7 +492,7 @@ ServerInfo_Game *Server_Game::getInfo() const
if (players.isEmpty())
// Game is closing
return new ServerInfo_Game(room->getId(), getGameId(), QString(), false, 0, getMaxPlayers(), QList<GameTypeId *>(), 0, false, 0);
return new ServerInfo_Game(room->getId(), getGameId(), QString(), false, 0, getMaxPlayers(), false, QList<GameTypeId *>(), 0, false, 0);
else {
// Game is open
@ -505,6 +507,7 @@ ServerInfo_Game *Server_Game::getInfo() const
!getPassword().isEmpty(),
getPlayerCount(),
getMaxPlayers(),
gameStarted,
gameTypeList,
new ServerInfo_User(getCreatorInfo(), false),
onlyBuddies,

View file

@ -127,7 +127,7 @@ void Server_Player::setupZones()
if (!currentCard)
continue;
for (int k = 0; k < currentCard->getNumber(); ++k)
z->cards.append(new Server_Card(currentCard->getName(), nextCardId++, 0, 0));
z->cards.append(new Server_Card(currentCard->getName(), nextCardId++, 0, 0, z));
}
}
@ -334,7 +334,7 @@ ResponseCode Server_Player::moveCard(CommandContainer *cont, Server_CardZone *st
QMap<Server_Card *, CardToMove *> cardProperties;
for (int i = 0; i < _cards.size(); ++i) {
int position;
Server_Card *card = startzone->getCard(_cards[i]->getCardId(), false, &position);
Server_Card *card = startzone->getCard(_cards[i]->getCardId(), &position);
if (!card)
return RespNameNotFound;
if (!card->getAttachedCards().isEmpty() && !targetzone->isColumnEmpty(x, y))
@ -510,7 +510,7 @@ ResponseCode Server_Player::setCardAttrHelper(CommandContainer *cont, const QStr
return RespInvalidCommand;
}
} else {
Server_Card *card = zone->getCard(cardId, false);
Server_Card *card = zone->getCard(cardId);
if (!card)
return RespNameNotFound;
result = card->setAttribute(attrName, attrValue, false);

View file

@ -768,7 +768,7 @@ ResponseCode Server_ProtocolHandler::cmdFlipCard(Command_FlipCard *cmd, CommandC
if (!zone->hasCoords())
return RespContextError;
Server_Card *card = zone->getCard(cmd->getCardId(), false);
Server_Card *card = zone->getCard(cmd->getCardId());
if (!card)
return RespNameNotFound;
@ -797,7 +797,7 @@ ResponseCode Server_ProtocolHandler::cmdAttachCard(Command_AttachCard *cmd, Comm
if (!startzone)
return RespNameNotFound;
Server_Card *card = startzone->getCard(cmd->getCardId(), false);
Server_Card *card = startzone->getCard(cmd->getCardId());
if (!card)
return RespNameNotFound;
@ -819,7 +819,7 @@ ResponseCode Server_ProtocolHandler::cmdAttachCard(Command_AttachCard *cmd, Comm
// Possibly a flag will have to be introduced for this sometime.
if (!targetzone->hasCoords())
return RespContextError;
targetCard = targetzone->getCard(cmd->getTargetCardId(), false);
targetCard = targetzone->getCard(cmd->getTargetCardId());
if (targetCard)
if (targetCard->getParentCard())
return RespContextError;
@ -929,14 +929,14 @@ ResponseCode Server_ProtocolHandler::cmdCreateArrow(Command_CreateArrow *cmd, Co
return RespNameNotFound;
if (startZone->getType() != PublicZone)
return RespContextError;
Server_Card *startCard = startZone->getCard(cmd->getStartCardId(), false);
Server_Card *startCard = startZone->getCard(cmd->getStartCardId());
if (!startCard)
return RespNameNotFound;
Server_Card *targetCard = 0;
if (!playerTarget) {
if (targetZone->getType() != PublicZone)
return RespContextError;
targetCard = targetZone->getCard(cmd->getTargetCardId(), false);
targetCard = targetZone->getCard(cmd->getTargetCardId());
}
Server_ArrowTarget *targetItem;
@ -1015,7 +1015,7 @@ ResponseCode Server_ProtocolHandler::cmdSetCardCounter(Command_SetCardCounter *c
if (!zone->hasCoords())
return RespContextError;
Server_Card *card = zone->getCard(cmd->getCardId(), false);
Server_Card *card = zone->getCard(cmd->getCardId());
if (!card)
return RespNameNotFound;
@ -1042,7 +1042,7 @@ ResponseCode Server_ProtocolHandler::cmdIncCardCounter(Command_IncCardCounter *c
if (!zone->hasCoords())
return RespContextError;
Server_Card *card = zone->getCard(cmd->getCardId(), false);
Server_Card *card = zone->getCard(cmd->getCardId());
if (!card)
return RespNameNotFound;
@ -1255,7 +1255,7 @@ ResponseCode Server_ProtocolHandler::cmdRevealCards(Command_RevealCards *cmd, Co
return RespContextError;
cardsToReveal.append(zone->cards.at(rng->getNumber(0, zone->cards.size() - 1)));
} else {
Server_Card *card = zone->getCard(cmd->getCardId(), false);
Server_Card *card = zone->getCard(cmd->getCardId());
if (!card)
return RespNameNotFound;
cardsToReveal.append(card);