mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2025-12-21 06:42:41 -08:00
deck storage is fully working again, cleaned up some unnecessarily large messages
This commit is contained in:
@@ -108,7 +108,7 @@ void RemoteClient::readData()
|
|||||||
|
|
||||||
ServerMessage newServerMessage;
|
ServerMessage newServerMessage;
|
||||||
newServerMessage.ParseFromArray(inputBuffer.data(), messageLength);
|
newServerMessage.ParseFromArray(inputBuffer.data(), messageLength);
|
||||||
qDebug(QString::fromStdString(newServerMessage.ShortDebugString()).toUtf8());
|
qDebug((QString::number(messageLength) + ": " + QString::fromStdString(newServerMessage.ShortDebugString())).toUtf8());
|
||||||
inputBuffer.remove(0, messageLength);
|
inputBuffer.remove(0, messageLength);
|
||||||
messageInProgress = false;
|
messageInProgress = false;
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,8 @@
|
|||||||
|
|
||||||
#include "pending_command.h"
|
#include "pending_command.h"
|
||||||
#include "pb/session_commands.pb.h"
|
#include "pb/session_commands.pb.h"
|
||||||
//#include "pb/response_deck_list.pb.h"
|
#include "pb/response_deck_list.pb.h"
|
||||||
|
#include "pb/serverinfo_deckstorage.pb.h"
|
||||||
|
|
||||||
RemoteDeckList_TreeModel::DirectoryNode::DirectoryNode(const QString &_name, RemoteDeckList_TreeModel::DirectoryNode *_parent)
|
RemoteDeckList_TreeModel::DirectoryNode::DirectoryNode(const QString &_name, RemoteDeckList_TreeModel::DirectoryNode *_parent)
|
||||||
: RemoteDeckList_TreeModel::Node(_name, _parent)
|
: RemoteDeckList_TreeModel::Node(_name, _parent)
|
||||||
@@ -202,35 +203,38 @@ QModelIndex RemoteDeckList_TreeModel::nodeToIndex(Node *node) const
|
|||||||
return createIndex(node->getParent()->indexOf(node), 0, node);
|
return createIndex(node->getParent()->indexOf(node), 0, node);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemoteDeckList_TreeModel::addFileToTree(DeckList_File *file, DirectoryNode *parent)
|
void RemoteDeckList_TreeModel::addFileToTree(const ServerInfo_DeckStorage_TreeItem &file, DirectoryNode *parent)
|
||||||
{
|
{
|
||||||
/* beginInsertRows(nodeToIndex(parent), parent->size(), parent->size());
|
const ServerInfo_DeckStorage_File &fileInfo = file.file();
|
||||||
parent->append(new FileNode(file->getName(), file->getId(), file->getUploadTime(), parent));
|
QDateTime time;
|
||||||
endInsertRows();
|
time.setMSecsSinceEpoch(fileInfo.creation_time());
|
||||||
*/
|
|
||||||
|
|
||||||
|
beginInsertRows(nodeToIndex(parent), parent->size(), parent->size());
|
||||||
|
parent->append(new FileNode(QString::fromStdString(file.name()), file.id(), time, parent));
|
||||||
|
endInsertRows();
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemoteDeckList_TreeModel::addFolderToTree(DeckList_Directory *folder, DirectoryNode *parent)
|
void RemoteDeckList_TreeModel::addFolderToTree(const ServerInfo_DeckStorage_TreeItem &folder, DirectoryNode *parent)
|
||||||
{
|
{
|
||||||
// addFolderToTree(folder->getName(), folder->getTreeItems(), parent);
|
DirectoryNode *newItem = addNamedFolderToTree(QString::fromStdString(folder.name()), parent);
|
||||||
|
const ServerInfo_DeckStorage_Folder &folderInfo = folder.folder();
|
||||||
|
const int folderItemsSize = folderInfo.items_size();
|
||||||
|
for (int i = 0; i < folderItemsSize; ++i) {
|
||||||
|
const ServerInfo_DeckStorage_TreeItem &subItem = folderInfo.items(i);
|
||||||
|
if (subItem.has_folder())
|
||||||
|
addFolderToTree(subItem, newItem);
|
||||||
|
else
|
||||||
|
addFileToTree(subItem, newItem);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemoteDeckList_TreeModel::addFolderToTree(const QString &name, const QList<DeckList_TreeItem *> &folderItems, DirectoryNode *parent)
|
RemoteDeckList_TreeModel::DirectoryNode *RemoteDeckList_TreeModel::addNamedFolderToTree(const QString &name, DirectoryNode *parent)
|
||||||
{
|
{
|
||||||
/* DirectoryNode *newItem = new DirectoryNode(name, parent);
|
DirectoryNode *newItem = new DirectoryNode(name, parent);
|
||||||
beginInsertRows(nodeToIndex(parent), parent->size(), parent->size());
|
beginInsertRows(nodeToIndex(parent), parent->size(), parent->size());
|
||||||
parent->append(newItem);
|
parent->append(newItem);
|
||||||
endInsertRows();
|
endInsertRows();
|
||||||
|
return newItem;
|
||||||
for (int i = 0; i < folderItems.size(); ++i) {
|
|
||||||
DeckList_Directory *subFolder = dynamic_cast<DeckList_Directory *>(folderItems[i]);
|
|
||||||
if (subFolder)
|
|
||||||
addFolderToTree(subFolder, newItem);
|
|
||||||
else
|
|
||||||
addFileToTree(dynamic_cast<DeckList_File *>(folderItems[i]), newItem);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemoteDeckList_TreeModel::removeNode(RemoteDeckList_TreeModel::Node *node)
|
void RemoteDeckList_TreeModel::removeNode(RemoteDeckList_TreeModel::Node *node)
|
||||||
@@ -252,14 +256,17 @@ void RemoteDeckList_TreeModel::refreshTree()
|
|||||||
|
|
||||||
void RemoteDeckList_TreeModel::deckListFinished(const Response &r)
|
void RemoteDeckList_TreeModel::deckListFinished(const Response &r)
|
||||||
{
|
{
|
||||||
/* const Response_DeckList &resp = r.GetExtension(Response_DeckList::ext);
|
const Response_DeckList &resp = r.GetExtension(Response_DeckList::ext);
|
||||||
|
|
||||||
root->clearTree();
|
root->clearTree();
|
||||||
reset();
|
reset();
|
||||||
|
|
||||||
addFolderToTree(resp->getRoot(), root);
|
ServerInfo_DeckStorage_TreeItem tempRoot;
|
||||||
|
tempRoot.set_id(0);
|
||||||
|
tempRoot.mutable_folder()->CopyFrom(resp.root());
|
||||||
|
addFolderToTree(tempRoot, root);
|
||||||
|
|
||||||
emit treeRefreshed();
|
emit treeRefreshed();
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RemoteDeckList_TreeWidget::RemoteDeckList_TreeWidget(AbstractClient *_client, QWidget *parent)
|
RemoteDeckList_TreeWidget::RemoteDeckList_TreeWidget(AbstractClient *_client, QWidget *parent)
|
||||||
@@ -300,19 +307,19 @@ RemoteDeckList_TreeModel::FileNode *RemoteDeckList_TreeWidget::getNodeById(int i
|
|||||||
return treeModel->getRoot()->getNodeById(id);
|
return treeModel->getRoot()->getNodeById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemoteDeckList_TreeWidget::addFileToTree(DeckList_File *file, RemoteDeckList_TreeModel::DirectoryNode *parent)
|
void RemoteDeckList_TreeWidget::addFileToTree(const ServerInfo_DeckStorage_TreeItem &file, RemoteDeckList_TreeModel::DirectoryNode *parent)
|
||||||
{
|
{
|
||||||
treeModel->addFileToTree(file, parent);
|
treeModel->addFileToTree(file, parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemoteDeckList_TreeWidget::addFolderToTree(DeckList_Directory *folder, RemoteDeckList_TreeModel::DirectoryNode *parent)
|
void RemoteDeckList_TreeWidget::addFolderToTree(const ServerInfo_DeckStorage_TreeItem &folder, RemoteDeckList_TreeModel::DirectoryNode *parent)
|
||||||
{
|
{
|
||||||
treeModel->addFolderToTree(folder, parent);
|
treeModel->addFolderToTree(folder, parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemoteDeckList_TreeWidget::addFolderToTree(const QString &name, RemoteDeckList_TreeModel::DirectoryNode *parent)
|
void RemoteDeckList_TreeWidget::addFolderToTree(const QString &name, RemoteDeckList_TreeModel::DirectoryNode *parent)
|
||||||
{
|
{
|
||||||
treeModel->addFolderToTree(name, QList<DeckList_TreeItem *>(), parent);
|
treeModel->addNamedFolderToTree(name, parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemoteDeckList_TreeWidget::removeNode(RemoteDeckList_TreeModel::Node *node)
|
void RemoteDeckList_TreeWidget::removeNode(RemoteDeckList_TreeModel::Node *node)
|
||||||
|
|||||||
@@ -8,9 +8,7 @@
|
|||||||
class Response;
|
class Response;
|
||||||
class AbstractClient;
|
class AbstractClient;
|
||||||
class QSortFilterProxyModel;
|
class QSortFilterProxyModel;
|
||||||
class DeckList_File;
|
class ServerInfo_DeckStorage_TreeItem;
|
||||||
class DeckList_Directory;
|
|
||||||
class DeckList_TreeItem;
|
|
||||||
|
|
||||||
class RemoteDeckList_TreeModel : public QAbstractItemModel {
|
class RemoteDeckList_TreeModel : public QAbstractItemModel {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@@ -77,9 +75,9 @@ public:
|
|||||||
Qt::ItemFlags flags(const QModelIndex &index) const;
|
Qt::ItemFlags flags(const QModelIndex &index) const;
|
||||||
|
|
||||||
DirectoryNode *getRoot() const { return root; }
|
DirectoryNode *getRoot() const { return root; }
|
||||||
void addFileToTree(DeckList_File *file, DirectoryNode *parent);
|
void addFileToTree(const ServerInfo_DeckStorage_TreeItem &file, DirectoryNode *parent);
|
||||||
void addFolderToTree(DeckList_Directory *folder, DirectoryNode *parent);
|
void addFolderToTree(const ServerInfo_DeckStorage_TreeItem &folder, DirectoryNode *parent);
|
||||||
void addFolderToTree(const QString &name, const QList<DeckList_TreeItem *> &folderItems, DirectoryNode *parent);
|
DirectoryNode *addNamedFolderToTree(const QString &name, DirectoryNode *parent);
|
||||||
void removeNode(Node *node);
|
void removeNode(Node *node);
|
||||||
void refreshTree();
|
void refreshTree();
|
||||||
};
|
};
|
||||||
@@ -94,8 +92,8 @@ public:
|
|||||||
RemoteDeckList_TreeModel::Node *getCurrentItem() const;
|
RemoteDeckList_TreeModel::Node *getCurrentItem() const;
|
||||||
RemoteDeckList_TreeModel::DirectoryNode *getNodeByPath(const QString &path) const;
|
RemoteDeckList_TreeModel::DirectoryNode *getNodeByPath(const QString &path) const;
|
||||||
RemoteDeckList_TreeModel::FileNode *getNodeById(int id) const;
|
RemoteDeckList_TreeModel::FileNode *getNodeById(int id) const;
|
||||||
void addFileToTree(DeckList_File *file, RemoteDeckList_TreeModel::DirectoryNode *parent);
|
void addFileToTree(const ServerInfo_DeckStorage_TreeItem &file, RemoteDeckList_TreeModel::DirectoryNode *parent);
|
||||||
void addFolderToTree(DeckList_Directory *folder, RemoteDeckList_TreeModel::DirectoryNode *parent);
|
void addFolderToTree(const ServerInfo_DeckStorage_TreeItem &folder, RemoteDeckList_TreeModel::DirectoryNode *parent);
|
||||||
void addFolderToTree(const QString &name, RemoteDeckList_TreeModel::DirectoryNode *parent);
|
void addFolderToTree(const QString &name, RemoteDeckList_TreeModel::DirectoryNode *parent);
|
||||||
void removeNode(RemoteDeckList_TreeModel::Node *node);
|
void removeNode(RemoteDeckList_TreeModel::Node *node);
|
||||||
void refreshTree();
|
void refreshTree();
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
#include "pending_command.h"
|
#include "pending_command.h"
|
||||||
#include "pb/response.pb.h"
|
#include "pb/response.pb.h"
|
||||||
|
#include "pb/response_deck_download.pb.h"
|
||||||
|
#include "pb/response_deck_upload.pb.h"
|
||||||
#include "pb/command_deck_upload.pb.h"
|
#include "pb/command_deck_upload.pb.h"
|
||||||
#include "pb/command_deck_download.pb.h"
|
#include "pb/command_deck_download.pb.h"
|
||||||
#include "pb/command_deck_new_dir.pb.h"
|
#include "pb/command_deck_new_dir.pb.h"
|
||||||
@@ -169,19 +171,17 @@ void TabDeckStorage::actUpload()
|
|||||||
cmd.set_deck_list(deck.writeToString_Native().toStdString());
|
cmd.set_deck_list(deck.writeToString_Native().toStdString());
|
||||||
|
|
||||||
PendingCommand *pend = client->prepareSessionCommand(cmd);
|
PendingCommand *pend = client->prepareSessionCommand(cmd);
|
||||||
connect(pend, SIGNAL(finished(ProtocolResponse *)), this, SLOT(uploadFinished(ProtocolResponse *)));
|
connect(pend, SIGNAL(finished(const Response &)), this, SLOT(uploadFinished(const Response &)));
|
||||||
client->sendCommand(pend);
|
client->sendCommand(pend);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabDeckStorage::uploadFinished(const Response &r)
|
void TabDeckStorage::uploadFinished(const Response &r)
|
||||||
{
|
{
|
||||||
/* Response_DeckUpload *resp = qobject_cast<Response_DeckUpload *>(r);
|
const Response_DeckUpload &resp = r.GetExtension(Response_DeckUpload::ext);
|
||||||
if (!resp)
|
|
||||||
return;
|
|
||||||
const Command_DeckUpload &cmd = static_cast<const Command_DeckUpload &>(static_cast<PendingCommand *>(sender())->getCommandContainer().session_command(0).GetExtension(Command_DeckUpload::ext));
|
const Command_DeckUpload &cmd = static_cast<const Command_DeckUpload &>(static_cast<PendingCommand *>(sender())->getCommandContainer().session_command(0).GetExtension(Command_DeckUpload::ext));
|
||||||
|
|
||||||
serverDirView->addFileToTree(resp->getFile(), serverDirView->getNodeByPath(QString::fromStdString(cmd.path())));
|
serverDirView->addFileToTree(resp.new_file(), serverDirView->getNodeByPath(QString::fromStdString(cmd.path())));
|
||||||
*/}
|
}
|
||||||
|
|
||||||
void TabDeckStorage::actOpenRemoteDeck()
|
void TabDeckStorage::actOpenRemoteDeck()
|
||||||
{
|
{
|
||||||
@@ -193,20 +193,18 @@ void TabDeckStorage::actOpenRemoteDeck()
|
|||||||
cmd.set_deck_id(curRight->getId());
|
cmd.set_deck_id(curRight->getId());
|
||||||
|
|
||||||
PendingCommand *pend = client->prepareSessionCommand(cmd);
|
PendingCommand *pend = client->prepareSessionCommand(cmd);
|
||||||
connect(pend, SIGNAL(finished(ProtocolResponse *)), this, SLOT(openRemoteDeckFinished(ProtocolResponse *)));
|
connect(pend, SIGNAL(finished(const Response &)), this, SLOT(openRemoteDeckFinished(const Response &)));
|
||||||
client->sendCommand(pend);
|
client->sendCommand(pend);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabDeckStorage::openRemoteDeckFinished(const Response &r)
|
void TabDeckStorage::openRemoteDeckFinished(const Response &r)
|
||||||
{
|
{
|
||||||
/* Response_DeckDownload *resp = qobject_cast<Response_DeckDownload *>(r);
|
const Response_DeckDownload &resp = r.GetExtension(Response_DeckDownload::ext);
|
||||||
if (!resp)
|
|
||||||
return;
|
|
||||||
|
|
||||||
WndDeckEditor *deckEditor = new WndDeckEditor;
|
WndDeckEditor *deckEditor = new WndDeckEditor;
|
||||||
deckEditor->setDeck(new DeckList(resp->getDeck()));
|
deckEditor->setDeck(new DeckList(QString::fromStdString(resp.deck())));
|
||||||
deckEditor->show();
|
deckEditor->show();
|
||||||
*/}
|
}
|
||||||
|
|
||||||
void TabDeckStorage::actDownload()
|
void TabDeckStorage::actDownload()
|
||||||
{
|
{
|
||||||
@@ -230,20 +228,20 @@ void TabDeckStorage::actDownload()
|
|||||||
|
|
||||||
PendingCommand *pend = client->prepareSessionCommand(cmd);
|
PendingCommand *pend = client->prepareSessionCommand(cmd);
|
||||||
pend->setExtraData(filePath);
|
pend->setExtraData(filePath);
|
||||||
connect(pend, SIGNAL(finished(ProtocolResponse *)), this, SLOT(downloadFinished(ProtocolResponse *)));
|
connect(pend, SIGNAL(finished(const Response &)), this, SLOT(downloadFinished(const Response &)));
|
||||||
client->sendCommand(pend);
|
client->sendCommand(pend);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabDeckStorage::downloadFinished(const Response &r)
|
void TabDeckStorage::downloadFinished(const Response &r)
|
||||||
{
|
{
|
||||||
/* Response_DeckDownload *resp = qobject_cast<Response_DeckDownload *>(r);
|
const Response_DeckDownload &resp = r.GetExtension(Response_DeckDownload::ext);
|
||||||
if (!resp)
|
|
||||||
return;
|
|
||||||
|
|
||||||
PendingCommand *pend = static_cast<PendingCommand *>(sender());
|
PendingCommand *pend = static_cast<PendingCommand *>(sender());
|
||||||
QString filePath = pend->getExtraData().toString();
|
QString filePath = pend->getExtraData().toString();
|
||||||
resp->getDeck()->saveToFile(filePath, DeckList::CockatriceFormat);
|
|
||||||
*/}
|
DeckList deck(QString::fromStdString(resp.deck()));
|
||||||
|
deck.saveToFile(filePath, DeckList::CockatriceFormat);
|
||||||
|
}
|
||||||
|
|
||||||
void TabDeckStorage::actNewFolder()
|
void TabDeckStorage::actNewFolder()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -72,8 +72,10 @@ void RoomSelector::processListRoomsEvent(const Event_ListRooms &event)
|
|||||||
for (int j = 0; j < roomList->topLevelItemCount(); ++j) {
|
for (int j = 0; j < roomList->topLevelItemCount(); ++j) {
|
||||||
QTreeWidgetItem *twi = roomList->topLevelItem(j);
|
QTreeWidgetItem *twi = roomList->topLevelItem(j);
|
||||||
if (twi->data(0, Qt::UserRole).toInt() == room.room_id()) {
|
if (twi->data(0, Qt::UserRole).toInt() == room.room_id()) {
|
||||||
twi->setData(0, Qt::DisplayRole, QString::fromStdString(room.name()));
|
if (room.has_name())
|
||||||
twi->setData(1, Qt::DisplayRole, QString::fromStdString(room.description()));
|
twi->setData(0, Qt::DisplayRole, QString::fromStdString(room.name()));
|
||||||
|
if (room.has_description())
|
||||||
|
twi->setData(1, Qt::DisplayRole, QString::fromStdString(room.description()));
|
||||||
twi->setData(2, Qt::DisplayRole, room.player_count());
|
twi->setData(2, Qt::DisplayRole, room.player_count());
|
||||||
twi->setData(3, Qt::DisplayRole, room.game_count());
|
twi->setData(3, Qt::DisplayRole, room.game_count());
|
||||||
return;
|
return;
|
||||||
@@ -81,15 +83,18 @@ void RoomSelector::processListRoomsEvent(const Event_ListRooms &event)
|
|||||||
}
|
}
|
||||||
QTreeWidgetItem *twi = new QTreeWidgetItem;
|
QTreeWidgetItem *twi = new QTreeWidgetItem;
|
||||||
twi->setData(0, Qt::UserRole, room.room_id());
|
twi->setData(0, Qt::UserRole, room.room_id());
|
||||||
twi->setData(0, Qt::DisplayRole, QString::fromStdString(room.name()));
|
if (room.has_name())
|
||||||
twi->setData(1, Qt::DisplayRole, QString::fromStdString(room.description()));
|
twi->setData(0, Qt::DisplayRole, QString::fromStdString(room.name()));
|
||||||
|
if (room.has_description())
|
||||||
|
twi->setData(1, Qt::DisplayRole, QString::fromStdString(room.description()));
|
||||||
twi->setData(2, Qt::DisplayRole, room.player_count());
|
twi->setData(2, Qt::DisplayRole, room.player_count());
|
||||||
twi->setData(3, Qt::DisplayRole, room.game_count());
|
twi->setData(3, Qt::DisplayRole, room.game_count());
|
||||||
twi->setTextAlignment(2, Qt::AlignRight);
|
twi->setTextAlignment(2, Qt::AlignRight);
|
||||||
twi->setTextAlignment(3, Qt::AlignRight);
|
twi->setTextAlignment(3, Qt::AlignRight);
|
||||||
roomList->addTopLevelItem(twi);
|
roomList->addTopLevelItem(twi);
|
||||||
if (room.auto_join())
|
if (room.has_auto_join())
|
||||||
joinRoom(room.room_id(), false);
|
if (room.auto_join())
|
||||||
|
joinRoom(room.room_id(), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
9
common/pb/proto/response_deck_list.proto
Normal file
9
common/pb/proto/response_deck_list.proto
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import "response.proto";
|
||||||
|
import "serverinfo_deckstorage.proto";
|
||||||
|
|
||||||
|
message Response_DeckList {
|
||||||
|
extend Response {
|
||||||
|
optional Response_DeckList ext = 1006;
|
||||||
|
}
|
||||||
|
optional ServerInfo_DeckStorage_Folder root = 1;
|
||||||
|
}
|
||||||
9
common/pb/proto/response_deck_upload.proto
Normal file
9
common/pb/proto/response_deck_upload.proto
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import "response.proto";
|
||||||
|
import "serverinfo_deckstorage.proto";
|
||||||
|
|
||||||
|
message Response_DeckUpload {
|
||||||
|
extend Response {
|
||||||
|
optional Response_DeckUpload ext = 1008;
|
||||||
|
}
|
||||||
|
optional ServerInfo_DeckStorage_TreeItem new_file = 1;
|
||||||
|
}
|
||||||
14
common/pb/proto/serverinfo_deckstorage.proto
Normal file
14
common/pb/proto/serverinfo_deckstorage.proto
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
message ServerInfo_DeckStorage_File {
|
||||||
|
optional uint64 creation_time = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ServerInfo_DeckStorage_Folder {
|
||||||
|
repeated ServerInfo_DeckStorage_TreeItem items = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ServerInfo_DeckStorage_TreeItem {
|
||||||
|
optional uint32 id = 1;
|
||||||
|
optional string name = 2;
|
||||||
|
optional ServerInfo_DeckStorage_File file = 10;
|
||||||
|
optional ServerInfo_DeckStorage_Folder folder = 11;
|
||||||
|
}
|
||||||
@@ -135,7 +135,7 @@ void Server::broadcastRoomUpdate()
|
|||||||
|
|
||||||
ServerInfo_Room *roomInfo = event.add_room_list();
|
ServerInfo_Room *roomInfo = event.add_room_list();
|
||||||
room->roomMutex.lock();
|
room->roomMutex.lock();
|
||||||
roomInfo->CopyFrom(room->getInfo(false));
|
roomInfo->CopyFrom(room->getInfo(false, false, true));
|
||||||
room->roomMutex.unlock();
|
room->roomMutex.unlock();
|
||||||
|
|
||||||
SessionEvent *se = Server_ProtocolHandler::prepareSessionEvent(event);
|
SessionEvent *se = Server_ProtocolHandler::prepareSessionEvent(event);
|
||||||
|
|||||||
@@ -583,11 +583,11 @@ ServerInfo_Game Server_Game::getInfo() const
|
|||||||
ServerInfo_Game result;
|
ServerInfo_Game result;
|
||||||
result.set_room_id(room->getId());
|
result.set_room_id(room->getId());
|
||||||
result.set_game_id(getGameId());
|
result.set_game_id(getGameId());
|
||||||
result.set_max_players(getMaxPlayers());
|
|
||||||
if (!players.isEmpty()) {
|
if (!players.isEmpty()) {
|
||||||
for (int i = 0; i < gameTypes.size(); ++i)
|
for (int i = 0; i < gameTypes.size(); ++i)
|
||||||
result.add_game_types(gameTypes[i]);
|
result.add_game_types(gameTypes[i]);
|
||||||
|
|
||||||
|
result.set_max_players(getMaxPlayers());
|
||||||
result.set_description(getDescription().toStdString());
|
result.set_description(getDescription().toStdString());
|
||||||
result.set_with_password(!getPassword().isEmpty());
|
result.set_with_password(!getPassword().isEmpty());
|
||||||
result.set_player_count(getPlayerCount());
|
result.set_player_count(getPlayerCount());
|
||||||
|
|||||||
@@ -195,7 +195,8 @@ ServerInfo_PlayerProperties Server_Player::getProperties()
|
|||||||
result.set_spectator(spectator);
|
result.set_spectator(spectator);
|
||||||
result.set_conceded(conceded);
|
result.set_conceded(conceded);
|
||||||
result.set_ready_start(readyStart);
|
result.set_ready_start(readyStart);
|
||||||
result.set_deck_hash(deck ? deck->getDeckHash().toStdString() : std::string());
|
if (deck)
|
||||||
|
result.set_deck_hash(deck->getDeckHash().toStdString());
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,17 +32,20 @@ Server *Server_Room::getServer() const
|
|||||||
return static_cast<Server *>(parent());
|
return static_cast<Server *>(parent());
|
||||||
}
|
}
|
||||||
|
|
||||||
ServerInfo_Room Server_Room::getInfo(bool complete, bool showGameTypes) const
|
ServerInfo_Room Server_Room::getInfo(bool complete, bool showGameTypes, bool updating) const
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&roomMutex);
|
QMutexLocker locker(&roomMutex);
|
||||||
|
|
||||||
ServerInfo_Room result;
|
ServerInfo_Room result;
|
||||||
result.set_room_id(id);
|
result.set_room_id(id);
|
||||||
result.set_name(name.toStdString());
|
|
||||||
result.set_description(description.toStdString());
|
|
||||||
result.set_game_count(games.size());
|
result.set_game_count(games.size());
|
||||||
result.set_player_count(size());
|
result.set_player_count(size());
|
||||||
result.set_auto_join(autoJoin);
|
|
||||||
|
if (!updating) {
|
||||||
|
result.set_name(name.toStdString());
|
||||||
|
result.set_description(description.toStdString());
|
||||||
|
result.set_auto_join(autoJoin);
|
||||||
|
}
|
||||||
|
|
||||||
if (complete) {
|
if (complete) {
|
||||||
QMapIterator<int, Server_Game *> gameIterator(games);
|
QMapIterator<int, Server_Game *> gameIterator(games);
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public:
|
|||||||
QString getJoinMessage() const { return joinMessage; }
|
QString getJoinMessage() const { return joinMessage; }
|
||||||
const QMap<int, Server_Game *> &getGames() const { return games; }
|
const QMap<int, Server_Game *> &getGames() const { return games; }
|
||||||
Server *getServer() const;
|
Server *getServer() const;
|
||||||
ServerInfo_Room getInfo(bool complete, bool showGameTypes = false) const;
|
ServerInfo_Room getInfo(bool complete, bool showGameTypes = false, bool updating = false) const;
|
||||||
int getGamesCreatedByUser(const QString &name) const;
|
int getGamesCreatedByUser(const QString &name) const;
|
||||||
QList<ServerInfo_Game> getGamesOfUser(const QString &name) const;
|
QList<ServerInfo_Game> getGamesOfUser(const QString &name) const;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user