mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-14 14:32:15 -07:00
Hook up playerListWidget.
Took 1 hour 2 minutes Took 10 seconds
This commit is contained in:
parent
5d564e3b91
commit
cf6120628d
6 changed files with 50 additions and 17 deletions
|
|
@ -120,6 +120,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor,
|
|||
|
||||
createCardInfoDock();
|
||||
createPlayerListDock();
|
||||
connectPlayerListToGameEventHandler();
|
||||
createMessageDock();
|
||||
connectMessageLogToGameEventHandler();
|
||||
createPlayAreaWidget();
|
||||
|
|
@ -189,6 +190,16 @@ void TabGame::connectMessageLogToGameEventHandler()
|
|||
connect(gameEventHandler, &GameEventHandler::logGameClosed, messageLog, &MessageLogWidget::logGameClosed);
|
||||
}
|
||||
|
||||
void TabGame::connectPlayerListToGameEventHandler()
|
||||
{
|
||||
connect(gameState, &GameState::playerAdded, playerListWidget, &PlayerListWidget::addPlayer);
|
||||
connect(gameEventHandler, &GameEventHandler::playerLeft, playerListWidget, &PlayerListWidget::removePlayer);
|
||||
connect(gameEventHandler, &GameEventHandler::spectatorJoined, playerListWidget, &PlayerListWidget::addSpectator);
|
||||
connect(gameEventHandler, &GameEventHandler::spectatorLeft, playerListWidget, &PlayerListWidget::removePlayer);
|
||||
connect(gameEventHandler, &GameEventHandler::playerPropertiesChanged, playerListWidget,
|
||||
&PlayerListWidget::updatePlayerProperties);
|
||||
}
|
||||
|
||||
void TabGame::loadReplay(GameReplay *replay)
|
||||
{
|
||||
gameMetaInfo->setFromProto(replay->game_info());
|
||||
|
|
@ -526,7 +537,7 @@ void TabGame::removePlayerFromAutoCompleteList(QString playerName)
|
|||
|
||||
void TabGame::addSpectator(ServerInfo_PlayerProperties prop)
|
||||
{
|
||||
playerListWidget->addPlayer(prop);
|
||||
playerListWidget->addSpectator(prop);
|
||||
}
|
||||
|
||||
void TabGame::removeSpectator(int spectatorId, ServerInfo_User spectator)
|
||||
|
|
@ -534,8 +545,6 @@ void TabGame::removeSpectator(int spectatorId, ServerInfo_User spectator)
|
|||
Q_UNUSED(spectator);
|
||||
QString playerName = "@" + gameState->getSpectatorName(spectatorId);
|
||||
removePlayerFromAutoCompleteList(playerName);
|
||||
|
||||
playerListWidget->removePlayer(spectatorId);
|
||||
}
|
||||
|
||||
void TabGame::actPhaseAction()
|
||||
|
|
@ -623,7 +632,7 @@ void TabGame::processPlayerLeave(Player *leavingPlayer)
|
|||
{
|
||||
QString playerName = "@" + leavingPlayer->getName();
|
||||
removePlayerFromAutoCompleteList(playerName);
|
||||
playerListWidget->removePlayer(leavingPlayer->getId());
|
||||
|
||||
scene->removePlayer(leavingPlayer);
|
||||
}
|
||||
|
||||
|
|
@ -632,9 +641,6 @@ Player *TabGame::addPlayer(Player *newPlayer)
|
|||
QString newPlayerName = "@" + newPlayer->getName();
|
||||
addPlayerToAutoCompleteList(newPlayerName);
|
||||
|
||||
// TODO
|
||||
// playerListWidget->addPlayer(newPlayer);
|
||||
|
||||
scene->addPlayer(newPlayer);
|
||||
|
||||
connect(newPlayer, &Player::newCardAdded, this, &TabGame::newCardAdded);
|
||||
|
|
|
|||
|
|
@ -173,6 +173,7 @@ public:
|
|||
const Event_GameJoined &event,
|
||||
const QMap<int, QString> &_roomGameTypes);
|
||||
void connectMessageLogToGameEventHandler();
|
||||
void connectPlayerListToGameEventHandler();
|
||||
void loadReplay(GameReplay *replay);
|
||||
TabGame(TabSupervisor *_tabSupervisor, GameReplay *replay);
|
||||
~TabGame() override;
|
||||
|
|
|
|||
|
|
@ -237,6 +237,8 @@ void GameEventHandler::eventSpectatorLeave(const Event_Leave &event,
|
|||
{
|
||||
emit logSpectatorLeave(gameState->getSpectatorName(eventPlayerId), getLeaveReason(event.reason()));
|
||||
|
||||
emit spectatorLeft(eventPlayerId);
|
||||
|
||||
gameState->removeSpectator(eventPlayerId);
|
||||
|
||||
game->emitUserEvent();
|
||||
|
|
@ -322,7 +324,7 @@ void GameEventHandler::eventPlayerPropertiesChanged(const Event_PlayerProperties
|
|||
if (!player)
|
||||
return;
|
||||
const ServerInfo_PlayerProperties &prop = event.player_properties();
|
||||
// playerListWidget->updatePlayerProperties(prop, eventPlayerId);
|
||||
emit playerPropertiesChanged(prop, eventPlayerId);
|
||||
|
||||
const auto contextType = static_cast<GameEventContext::ContextType>(getPbExtension(context));
|
||||
switch (contextType) {
|
||||
|
|
@ -395,11 +397,13 @@ void GameEventHandler::eventJoin(const Event_Join &event, int /*eventPlayerId*/,
|
|||
if (playerInfo.spectator()) {
|
||||
gameState->addSpectator(playerId, playerInfo);
|
||||
emit logJoinSpectator(playerName);
|
||||
emit spectatorJoined(playerInfo);
|
||||
} else {
|
||||
Player *newPlayer = gameState->addPlayer(playerId, playerInfo.user_info(), game);
|
||||
emit logJoinPlayer(newPlayer);
|
||||
emit playerJoined(playerInfo);
|
||||
}
|
||||
// playerListWidget->addPlayer(playerInfo);
|
||||
|
||||
game->emitUserEvent();
|
||||
}
|
||||
|
||||
|
|
@ -427,7 +431,7 @@ void GameEventHandler::eventLeave(const Event_Leave &event, int eventPlayerId, c
|
|||
if (!player)
|
||||
return;
|
||||
|
||||
emit playerLeft(player);
|
||||
emit playerLeft(eventPlayerId);
|
||||
|
||||
emit logLeave(player, getLeaveReason(event.reason()));
|
||||
|
||||
|
|
|
|||
|
|
@ -92,8 +92,12 @@ signals:
|
|||
void localPlayerReadyStateChanged(int playerId, bool ready);
|
||||
void gameStopped();
|
||||
void gameClosed();
|
||||
void playerLeft(Player *leavingPlayer);
|
||||
void playerPropertiesChanged(const ServerInfo_PlayerProperties &prop, int playerId);
|
||||
void playerJoined(const ServerInfo_PlayerProperties &playerInfo);
|
||||
void playerLeft(int leavingPlayerId);
|
||||
void playerKicked();
|
||||
void spectatorJoined(const ServerInfo_PlayerProperties &spectatorInfo);
|
||||
void spectatorLeft(int leavingSpectatorId);
|
||||
void gameFlooded();
|
||||
void containerProcessingStarted(GameEventContext context);
|
||||
void setContextJudgeName(QString judgeName);
|
||||
|
|
|
|||
|
|
@ -97,11 +97,24 @@ void PlayerListWidget::retranslateUi()
|
|||
{
|
||||
}
|
||||
|
||||
void PlayerListWidget::addPlayer(const ServerInfo_PlayerProperties &player)
|
||||
void PlayerListWidget::addPlayer(const Player *player)
|
||||
{
|
||||
|
||||
QTreeWidgetItem *newPlayer = new PlayerListTWI;
|
||||
players.insert(player.player_id(), newPlayer);
|
||||
updatePlayerProperties(player);
|
||||
players.insert(player->getId(), newPlayer);
|
||||
// updatePlayerProperties(player->getUserInfo());
|
||||
addTopLevelItem(newPlayer);
|
||||
sortItems(1, Qt::AscendingOrder);
|
||||
resizeColumnToContents(4);
|
||||
resizeColumnToContents(5);
|
||||
}
|
||||
|
||||
void PlayerListWidget::addSpectator(const ServerInfo_PlayerProperties &spectator)
|
||||
{
|
||||
|
||||
QTreeWidgetItem *newPlayer = new PlayerListTWI;
|
||||
players.insert(spectator.player_id(), newPlayer);
|
||||
updatePlayerProperties(spectator);
|
||||
addTopLevelItem(newPlayer);
|
||||
sortItems(1, Qt::AscendingOrder);
|
||||
resizeColumnToContents(4);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef PLAYERLISTWIDGET_H
|
||||
#define PLAYERLISTWIDGET_H
|
||||
|
||||
#include "player.h"
|
||||
|
||||
#include <QIcon>
|
||||
#include <QMap>
|
||||
#include <QStyledItemDelegate>
|
||||
|
|
@ -47,12 +49,15 @@ signals:
|
|||
public:
|
||||
PlayerListWidget(TabSupervisor *_tabSupervisor, AbstractClient *_client, TabGame *_game, QWidget *parent = nullptr);
|
||||
void retranslateUi();
|
||||
void addPlayer(const ServerInfo_PlayerProperties &player);
|
||||
void removePlayer(int playerId);
|
||||
void setActivePlayer(int playerId);
|
||||
void updatePlayerProperties(const ServerInfo_PlayerProperties &prop, int playerId = -1);
|
||||
void setGameStarted(bool _gameStarted, bool resuming);
|
||||
void showContextMenu(const QPoint &pos, const QModelIndex &index);
|
||||
|
||||
public slots:
|
||||
void addPlayer(const Player *player);
|
||||
void addSpectator(const ServerInfo_PlayerProperties &spectator);
|
||||
void removePlayer(int playerId);
|
||||
void updatePlayerProperties(const ServerInfo_PlayerProperties &prop, int playerId = -1);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue