remote deck loading finished
This commit is contained in:
parent
cf21528a69
commit
4fac0e5b5a
14 changed files with 220 additions and 184 deletions
|
@ -25,7 +25,7 @@ HEADERS += src/counter.h \
|
|||
src/gameview.h \
|
||||
src/deck_picturecacher.h \
|
||||
src/decklistmodel.h \
|
||||
src/dlg_startgame.h \
|
||||
src/dlg_load_remote_deck.h \
|
||||
src/cardinfowidget.h \
|
||||
src/messagelogwidget.h \
|
||||
src/zoneviewzone.h \
|
||||
|
@ -47,6 +47,7 @@ HEADERS += src/counter.h \
|
|||
src/tab_game.h \
|
||||
src/tab_deck_storage.h \
|
||||
src/tab_supervisor.h \
|
||||
src/remotedecklist_treewidget.h \
|
||||
src/deckview.h \
|
||||
../common/decklist.h \
|
||||
../common/protocol.h \
|
||||
|
@ -72,7 +73,7 @@ SOURCES += src/counter.cpp \
|
|||
src/gameview.cpp \
|
||||
src/deck_picturecacher.cpp \
|
||||
src/decklistmodel.cpp \
|
||||
src/dlg_startgame.cpp \
|
||||
src/dlg_load_remote_deck.cpp \
|
||||
src/cardinfowidget.cpp \
|
||||
src/messagelogwidget.cpp \
|
||||
src/zoneviewzone.cpp \
|
||||
|
@ -94,6 +95,7 @@ SOURCES += src/counter.cpp \
|
|||
src/tab_game.cpp \
|
||||
src/tab_deck_storage.cpp \
|
||||
src/tab_supervisor.cpp \
|
||||
src/remotedecklist_treewidget.cpp \
|
||||
src/deckview.cpp \
|
||||
../common/decklist.cpp \
|
||||
../common/protocol.cpp \
|
||||
|
|
52
cockatrice/src/dlg_load_remote_deck.cpp
Normal file
52
cockatrice/src/dlg_load_remote_deck.cpp
Normal file
|
@ -0,0 +1,52 @@
|
|||
#include <QPushButton>
|
||||
#include <QHBoxLayout>
|
||||
#include <QVBoxLayout>
|
||||
#include "remotedecklist_treewidget.h"
|
||||
#include "dlg_load_remote_deck.h"
|
||||
#include "main.h"
|
||||
|
||||
DlgLoadRemoteDeck::DlgLoadRemoteDeck(Client *_client, QWidget *parent)
|
||||
: QDialog(parent), client(_client)
|
||||
{
|
||||
dirView = new RemoteDeckList_TreeWidget(client);
|
||||
|
||||
okButton = new QPushButton(tr("O&K"));
|
||||
okButton->setDefault(true);
|
||||
okButton->setAutoDefault(true);
|
||||
okButton->setEnabled(false);
|
||||
cancelButton = new QPushButton(tr("&Cancel"));
|
||||
|
||||
QHBoxLayout *buttonLayout = new QHBoxLayout;
|
||||
buttonLayout->addStretch();
|
||||
buttonLayout->addWidget(okButton);
|
||||
buttonLayout->addWidget(cancelButton);
|
||||
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||
mainLayout->addWidget(dirView);
|
||||
mainLayout->addLayout(buttonLayout);
|
||||
|
||||
setLayout(mainLayout);
|
||||
|
||||
setWindowTitle(tr("Load deck"));
|
||||
setMinimumWidth(sizeHint().width());
|
||||
resize(300, 500);
|
||||
|
||||
connect(dirView, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)), this, SLOT(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)));
|
||||
connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
|
||||
connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
|
||||
}
|
||||
|
||||
void DlgLoadRemoteDeck::currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem * /*previous*/)
|
||||
{
|
||||
if (!current)
|
||||
okButton->setEnabled(false);
|
||||
else if (current->type() == TWIDeckType)
|
||||
okButton->setEnabled(true);
|
||||
else
|
||||
okButton->setEnabled(false);
|
||||
}
|
||||
|
||||
int DlgLoadRemoteDeck::getDeckId() const
|
||||
{
|
||||
return dirView->currentItem()->data(1, Qt::DisplayRole).toInt();
|
||||
}
|
24
cockatrice/src/dlg_load_remote_deck.h
Normal file
24
cockatrice/src/dlg_load_remote_deck.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
#ifndef DLG_STARTGAME_H
|
||||
#define DLG_STARTGAME_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
class RemoteDeckList_TreeWidget;
|
||||
class QTreeWidgetItem;
|
||||
class Client;
|
||||
class QPushButton;
|
||||
|
||||
class DlgLoadRemoteDeck: public QDialog {
|
||||
Q_OBJECT
|
||||
private:
|
||||
Client *client;
|
||||
RemoteDeckList_TreeWidget *dirView;
|
||||
QPushButton *okButton, *cancelButton;
|
||||
private slots:
|
||||
void currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
|
||||
public:
|
||||
DlgLoadRemoteDeck(Client *_client, QWidget *parent = 0);
|
||||
int getDeckId() const;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,65 +0,0 @@
|
|||
#include <QtGui>
|
||||
#include <QFileDialog>
|
||||
#include "dlg_startgame.h"
|
||||
#include "decklistmodel.h"
|
||||
#include "carddatabase.h"
|
||||
#include "main.h"
|
||||
|
||||
DlgStartGame::DlgStartGame(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
{
|
||||
deckView = new QTreeView;
|
||||
deckModel = new DeckListModel(this);
|
||||
deckView->setModel(deckModel);
|
||||
deckView->setUniformRowHeights(true);
|
||||
|
||||
loadButton = new QPushButton(tr("&Load..."));
|
||||
okButton = new QPushButton(tr("&OK"));
|
||||
okButton->setDefault(true);
|
||||
|
||||
QHBoxLayout *buttonLayout = new QHBoxLayout;
|
||||
buttonLayout->addWidget(loadButton);
|
||||
buttonLayout->addStretch();
|
||||
buttonLayout->addWidget(okButton);
|
||||
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||
mainLayout->addWidget(deckView);
|
||||
mainLayout->addLayout(buttonLayout);
|
||||
|
||||
setLayout(mainLayout);
|
||||
|
||||
setWindowTitle(tr("Start game"));
|
||||
setMinimumWidth(sizeHint().width());
|
||||
resize(300, 500);
|
||||
|
||||
connect(loadButton, SIGNAL(clicked()), this, SLOT(actLoad()));
|
||||
connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
|
||||
}
|
||||
|
||||
void DlgStartGame::actLoad()
|
||||
{
|
||||
// if (!deckModel->getDeckList()->loadDialog(this))
|
||||
// return;
|
||||
|
||||
deckView->reset();
|
||||
deckModel->sort(1);
|
||||
deckView->expandAll();
|
||||
deckView->resizeColumnToContents(0);
|
||||
|
||||
emit newDeckLoaded(getDeckList());
|
||||
}
|
||||
|
||||
QStringList DlgStartGame::getDeckList() const
|
||||
{
|
||||
QStringList result;
|
||||
DeckList *deckList = deckModel->getDeckList();
|
||||
for (int i = 0; i < deckList->getRoot()->size(); i++) {
|
||||
InnerDecklistNode *node = dynamic_cast<InnerDecklistNode *>(deckList->getRoot()->at(i));
|
||||
for (int j = 0; j < node->size(); j++) {
|
||||
DecklistCardNode *card = dynamic_cast<DecklistCardNode *>(node->at(j));
|
||||
for (int k = 0; k < card->getNumber(); k++)
|
||||
result << QString("%1%2").arg(node->getName() == "side" ? "SB: " : "").arg(card->getName());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
#ifndef DLG_STARTGAME_H
|
||||
#define DLG_STARTGAME_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
class QTreeView;
|
||||
class QPushButton;
|
||||
class CardDatabase;
|
||||
class DeckListModel;
|
||||
|
||||
class DlgStartGame: public QDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
DlgStartGame(QWidget *parent = 0);
|
||||
QStringList getDeckList() const;
|
||||
signals:
|
||||
void newDeckLoaded(const QStringList &cards);
|
||||
private slots:
|
||||
void actLoad();
|
||||
private:
|
||||
QTreeView *deckView;
|
||||
DeckListModel *deckModel;
|
||||
|
||||
QPushButton *loadButton, *okButton;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -8,7 +8,6 @@
|
|||
#include "tablezone.h"
|
||||
#include "handzone.h"
|
||||
#include "carddatabase.h"
|
||||
#include "dlg_startgame.h"
|
||||
#include "counter.h"
|
||||
#include "gamescene.h"
|
||||
#include "player.h"
|
||||
|
@ -80,10 +79,6 @@ Game::Game(Client *_client, GameScene *_scene, QMenuBar *menuBar, QObject *paren
|
|||
connect(i.key(), SIGNAL(triggered()), this, SLOT(cardMenuAction()));
|
||||
}
|
||||
|
||||
dlgStartGame = new DlgStartGame;
|
||||
connect(dlgStartGame, SIGNAL(newDeckLoaded(const QStringList &)), client, SLOT(submitDeck(const QStringList &)));
|
||||
connect(dlgStartGame, SIGNAL(finished(int)), this, SLOT(readyStart()));
|
||||
|
||||
retranslateUi();
|
||||
}
|
||||
|
||||
|
@ -259,7 +254,7 @@ void Game::readyStart()
|
|||
|
||||
void Game::restartGameDialog()
|
||||
{
|
||||
dlgStartGame->show();
|
||||
// dlgStartGame->show();
|
||||
}
|
||||
/*
|
||||
void Game::gameEvent(const ServerEventData &msg)
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
class GameScene;
|
||||
class Player;
|
||||
class CardDatabase;
|
||||
class DlgStartGame;
|
||||
class CardItem;
|
||||
class QMenuBar;
|
||||
class CardZone;
|
||||
|
@ -28,7 +27,6 @@ private:
|
|||
QAction *aTap, *aUntap, *aDoesntUntap, *aFlip, *aAddCounter, *aRemoveCounter, *aSetCounters,
|
||||
*aMoveToTopLibrary, *aMoveToBottomLibrary, *aMoveToGraveyard, *aMoveToExile,
|
||||
*aNextPhase, *aNextTurn, *aRemoveLocalArrows;
|
||||
DlgStartGame *dlgStartGame;
|
||||
|
||||
Client *client;
|
||||
GameScene *scene;
|
||||
|
|
82
cockatrice/src/remotedecklist_treewidget.cpp
Normal file
82
cockatrice/src/remotedecklist_treewidget.cpp
Normal file
|
@ -0,0 +1,82 @@
|
|||
#include <QFileIconProvider>
|
||||
#include <QHeaderView>
|
||||
#include "remotedecklist_treewidget.h"
|
||||
#include "protocol_items.h"
|
||||
#include "client.h"
|
||||
|
||||
RemoteDeckList_TreeWidget::RemoteDeckList_TreeWidget(Client *_client, QWidget *parent)
|
||||
: QTreeWidget(parent), client(_client)
|
||||
{
|
||||
header()->setResizeMode(QHeaderView::ResizeToContents);
|
||||
setColumnCount(3);
|
||||
|
||||
refreshTree();
|
||||
retranslateUi();
|
||||
}
|
||||
|
||||
void RemoteDeckList_TreeWidget::retranslateUi()
|
||||
{
|
||||
headerItem()->setText(0, tr("Name"));
|
||||
headerItem()->setText(1, tr("ID"));
|
||||
headerItem()->setText(2, tr("Upload time"));
|
||||
headerItem()->setTextAlignment(1, Qt::AlignRight);
|
||||
}
|
||||
|
||||
void RemoteDeckList_TreeWidget::addFileToTree(DeckList_File *file, QTreeWidgetItem *parent)
|
||||
{
|
||||
QFileIconProvider fip;
|
||||
QTreeWidgetItem *newDeck = new QTreeWidgetItem(TWIDeckType);
|
||||
newDeck->setIcon(0, fip.icon(QFileIconProvider::File));
|
||||
newDeck->setData(0, Qt::DisplayRole, file->getName());
|
||||
newDeck->setData(1, Qt::DisplayRole, file->getId());
|
||||
newDeck->setTextAlignment(1, Qt::AlignRight);
|
||||
newDeck->setData(2, Qt::DisplayRole, file->getUploadTime());
|
||||
|
||||
parent->addChild(newDeck);
|
||||
}
|
||||
|
||||
void RemoteDeckList_TreeWidget::addFolderToTree(DeckList_Directory *folder, QTreeWidgetItem *parent)
|
||||
{
|
||||
QFileIconProvider fip;
|
||||
QTreeWidgetItem *newItem = new QTreeWidgetItem(TWIFolderType);
|
||||
newItem->setIcon(0, fip.icon(QFileIconProvider::Folder));
|
||||
newItem->setText(0, parent ? folder->getName() : "/");
|
||||
if (parent) {
|
||||
parent->addChild(newItem);
|
||||
|
||||
QString path = parent->data(0, Qt::UserRole).toString();
|
||||
if (path.isEmpty())
|
||||
newItem->setData(0, Qt::UserRole, folder->getName());
|
||||
else
|
||||
newItem->setData(0, Qt::UserRole, path + "/" + folder->getName());
|
||||
} else {
|
||||
addTopLevelItem(newItem);
|
||||
newItem->setData(0, Qt::UserRole, QString());
|
||||
}
|
||||
|
||||
for (int i = 0; i < folder->size(); ++i) {
|
||||
DeckList_Directory *subFolder = dynamic_cast<DeckList_Directory *>(folder->at(i));
|
||||
if (subFolder)
|
||||
addFolderToTree(subFolder, newItem);
|
||||
else
|
||||
addFileToTree(dynamic_cast<DeckList_File *>(folder->at(i)), newItem);
|
||||
}
|
||||
}
|
||||
|
||||
void RemoteDeckList_TreeWidget::refreshTree()
|
||||
{
|
||||
Command_DeckList *command = new Command_DeckList;
|
||||
connect(command, SIGNAL(finished(ProtocolResponse *)), this, SLOT(deckListFinished(ProtocolResponse *)));
|
||||
client->sendCommand(command);
|
||||
}
|
||||
|
||||
void RemoteDeckList_TreeWidget::deckListFinished(ProtocolResponse *r)
|
||||
{
|
||||
Response_DeckList *resp = qobject_cast<Response_DeckList *>(r);
|
||||
if (!resp)
|
||||
return;
|
||||
|
||||
clear();
|
||||
addFolderToTree(resp->getRoot(), 0);
|
||||
expandAll();
|
||||
}
|
27
cockatrice/src/remotedecklist_treewidget.h
Normal file
27
cockatrice/src/remotedecklist_treewidget.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
#ifndef REMOTEDECKLIST_TREEWIDGET_H
|
||||
#define REMOTEDECKLIST_TREEWIDGET_H
|
||||
|
||||
#include <QTreeWidget>
|
||||
|
||||
class ProtocolResponse;
|
||||
class Client;
|
||||
class DeckList_File;
|
||||
class DeckList_Directory;
|
||||
|
||||
enum { TWIFolderType = QTreeWidgetItem::UserType + 1, TWIDeckType = QTreeWidgetItem::UserType + 2 };
|
||||
|
||||
class RemoteDeckList_TreeWidget : public QTreeWidget {
|
||||
Q_OBJECT
|
||||
private:
|
||||
Client *client;
|
||||
private slots:
|
||||
void deckListFinished(ProtocolResponse *r);
|
||||
public:
|
||||
RemoteDeckList_TreeWidget(Client *_client, QWidget *parent = 0);
|
||||
void retranslateUi();
|
||||
void addFileToTree(DeckList_File *file, QTreeWidgetItem *parent);
|
||||
void addFolderToTree(DeckList_Directory *folder, QTreeWidgetItem *parent);
|
||||
void refreshTree();
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,12 +1,11 @@
|
|||
#include <QtGui>
|
||||
#include <QDebug>
|
||||
#include "tab_deck_storage.h"
|
||||
#include "remotedecklist_treewidget.h"
|
||||
#include "client.h"
|
||||
#include "decklist.h"
|
||||
#include "protocol_items.h"
|
||||
|
||||
enum { TWIFolderType = QTreeWidgetItem::UserType + 1, TWIDeckType = QTreeWidgetItem::UserType + 2 };
|
||||
|
||||
TabDeckStorage::TabDeckStorage(Client *_client)
|
||||
: QWidget(), client(_client)
|
||||
{
|
||||
|
@ -47,9 +46,7 @@ TabDeckStorage::TabDeckStorage(Client *_client)
|
|||
rightToolBarLayout->addWidget(rightToolBar);
|
||||
rightToolBarLayout->addStretch();
|
||||
|
||||
serverDirView = new QTreeWidget;
|
||||
serverDirView->header()->setResizeMode(QHeaderView::ResizeToContents);
|
||||
serverDirView->setColumnCount(3);
|
||||
serverDirView = new RemoteDeckList_TreeWidget(client);
|
||||
|
||||
QVBoxLayout *rightVbox = new QVBoxLayout;
|
||||
rightVbox->addWidget(serverDirView);
|
||||
|
@ -81,8 +78,6 @@ TabDeckStorage::TabDeckStorage(Client *_client)
|
|||
|
||||
retranslateUi();
|
||||
setLayout(hbox);
|
||||
|
||||
refreshServerList();
|
||||
}
|
||||
|
||||
void TabDeckStorage::retranslateUi()
|
||||
|
@ -95,70 +90,7 @@ void TabDeckStorage::retranslateUi()
|
|||
aNewFolder->setText(tr("New folder"));
|
||||
aDelete->setText(tr("Delete"));
|
||||
|
||||
QTreeWidgetItem *header = serverDirView->headerItem();
|
||||
header->setText(0, tr("Name"));
|
||||
header->setText(1, tr("ID"));
|
||||
header->setText(2, tr("Upload time"));
|
||||
header->setTextAlignment(1, Qt::AlignRight);
|
||||
}
|
||||
|
||||
void TabDeckStorage::refreshServerList()
|
||||
{
|
||||
Command_DeckList *command = new Command_DeckList;
|
||||
connect(command, SIGNAL(finished(ProtocolResponse *)), this, SLOT(deckListFinished(ProtocolResponse *)));
|
||||
client->sendCommand(command);
|
||||
}
|
||||
|
||||
void TabDeckStorage::addFileToTree(DeckList_File *file, QTreeWidgetItem *parent)
|
||||
{
|
||||
QFileIconProvider fip;
|
||||
QTreeWidgetItem *newDeck = new QTreeWidgetItem(TWIDeckType);
|
||||
newDeck->setIcon(0, fip.icon(QFileIconProvider::File));
|
||||
newDeck->setData(0, Qt::DisplayRole, file->getName());
|
||||
newDeck->setData(1, Qt::DisplayRole, file->getId());
|
||||
newDeck->setTextAlignment(1, Qt::AlignRight);
|
||||
newDeck->setData(2, Qt::DisplayRole, file->getUploadTime());
|
||||
|
||||
parent->addChild(newDeck);
|
||||
}
|
||||
|
||||
void TabDeckStorage::populateDeckList(DeckList_Directory *folder, QTreeWidgetItem *parent)
|
||||
{
|
||||
QFileIconProvider fip;
|
||||
QTreeWidgetItem *newItem = new QTreeWidgetItem(TWIFolderType);
|
||||
newItem->setIcon(0, fip.icon(QFileIconProvider::Folder));
|
||||
newItem->setText(0, parent ? folder->getName() : "/");
|
||||
if (parent) {
|
||||
parent->addChild(newItem);
|
||||
|
||||
QString path = parent->data(0, Qt::UserRole).toString();
|
||||
if (path.isEmpty())
|
||||
newItem->setData(0, Qt::UserRole, folder->getName());
|
||||
else
|
||||
newItem->setData(0, Qt::UserRole, path + "/" + folder->getName());
|
||||
} else {
|
||||
serverDirView->addTopLevelItem(newItem);
|
||||
newItem->setData(0, Qt::UserRole, QString());
|
||||
}
|
||||
|
||||
for (int i = 0; i < folder->size(); ++i) {
|
||||
DeckList_Directory *subFolder = dynamic_cast<DeckList_Directory *>(folder->at(i));
|
||||
if (subFolder)
|
||||
populateDeckList(subFolder, newItem);
|
||||
else
|
||||
addFileToTree(dynamic_cast<DeckList_File *>(folder->at(i)), newItem);
|
||||
}
|
||||
}
|
||||
|
||||
void TabDeckStorage::deckListFinished(ProtocolResponse *r)
|
||||
{
|
||||
Response_DeckList *resp = qobject_cast<Response_DeckList *>(r);
|
||||
if (!resp)
|
||||
return;
|
||||
|
||||
serverDirView->clear();
|
||||
populateDeckList(resp->getRoot(), 0);
|
||||
serverDirView->expandAll();
|
||||
serverDirView->retranslateUi();
|
||||
}
|
||||
|
||||
void TabDeckStorage::actUpload()
|
||||
|
@ -194,7 +126,7 @@ void TabDeckStorage::uploadFinished(ProtocolResponse *r)
|
|||
QTreeWidgetItemIterator it(serverDirView);
|
||||
while (*it) {
|
||||
if ((*it)->data(0, Qt::UserRole) == cmd->getPath()) {
|
||||
addFileToTree(resp->getFile(), *it);
|
||||
serverDirView->addFileToTree(resp->getFile(), *it);
|
||||
break;
|
||||
}
|
||||
++it;
|
||||
|
|
|
@ -13,6 +13,7 @@ class QTreeWidget;
|
|||
class QTreeWidgetItem;
|
||||
class QGroupBox;
|
||||
class ProtocolResponse;
|
||||
class RemoteDeckList_TreeWidget;
|
||||
|
||||
class TabDeckStorage : public QWidget {
|
||||
Q_OBJECT
|
||||
|
@ -22,16 +23,11 @@ private:
|
|||
QFileSystemModel *localDirModel;
|
||||
QSortFilterProxyModel *sortFilter;
|
||||
QToolBar *leftToolBar, *rightToolBar;
|
||||
QTreeWidget *serverDirView;
|
||||
RemoteDeckList_TreeWidget *serverDirView;
|
||||
QGroupBox *leftGroupBox, *rightGroupBox;
|
||||
|
||||
QAction *aUpload, *aDownload, *aNewFolder, *aDelete;
|
||||
void addFileToTree(DeckList_File *file, QTreeWidgetItem *parent);
|
||||
void populateDeckList(DeckList_Directory *folder, QTreeWidgetItem *parent);
|
||||
void refreshServerList();
|
||||
private slots:
|
||||
void deckListFinished(ProtocolResponse *r);
|
||||
|
||||
void actUpload();
|
||||
void uploadFinished(ProtocolResponse *r);
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include "decklist.h"
|
||||
#include "deck_picturecacher.h"
|
||||
#include "protocol_items.h"
|
||||
#include "dlg_load_remote_deck.h"
|
||||
#include "main.h"
|
||||
|
||||
TabGame::TabGame(Client *_client, int _gameId)
|
||||
|
@ -26,10 +27,12 @@ TabGame::TabGame(Client *_client, int _gameId)
|
|||
|
||||
loadLocalButton = new QPushButton;
|
||||
loadRemoteButton = new QPushButton;
|
||||
readyStartButton = new QPushButton;
|
||||
|
||||
QHBoxLayout *buttonHBox = new QHBoxLayout;
|
||||
buttonHBox->addWidget(loadLocalButton);
|
||||
buttonHBox->addWidget(loadRemoteButton);
|
||||
buttonHBox->addWidget(readyStartButton);
|
||||
buttonHBox->addStretch();
|
||||
deckView = new DeckView;
|
||||
QVBoxLayout *deckViewLayout = new QVBoxLayout;
|
||||
|
@ -66,6 +69,7 @@ TabGame::TabGame(Client *_client, int _gameId)
|
|||
|
||||
connect(loadLocalButton, SIGNAL(clicked()), this, SLOT(loadLocalDeck()));
|
||||
connect(loadRemoteButton, SIGNAL(clicked()), this, SLOT(loadRemoteDeck()));
|
||||
connect(readyStartButton, SIGNAL(clicked()), this, SLOT(readyStart()));
|
||||
|
||||
connect(sayEdit, SIGNAL(returnPressed()), this, SLOT(actSay()));
|
||||
|
||||
|
@ -93,6 +97,7 @@ void TabGame::retranslateUi()
|
|||
{
|
||||
loadLocalButton->setText(tr("Load &local deck"));
|
||||
loadRemoteButton->setText(tr("Load deck from &server"));
|
||||
readyStartButton->setText(tr("&Start game"));
|
||||
sayLabel->setText(tr("&Say:"));
|
||||
cardInfo->retranslateUi();
|
||||
// if (game)
|
||||
|
@ -132,7 +137,12 @@ void TabGame::loadLocalDeck()
|
|||
|
||||
void TabGame::loadRemoteDeck()
|
||||
{
|
||||
|
||||
DlgLoadRemoteDeck dlg(client);
|
||||
if (dlg.exec()) {
|
||||
Command_DeckSelect *cmd = new Command_DeckSelect(gameId, 0, dlg.getDeckId());
|
||||
connect(cmd, SIGNAL(finished(ProtocolResponse *)), this, SLOT(deckSelectFinished(ProtocolResponse *)));
|
||||
client->sendCommand(cmd);
|
||||
}
|
||||
}
|
||||
|
||||
void TabGame::deckSelectFinished(ProtocolResponse *r)
|
||||
|
@ -146,3 +156,8 @@ void TabGame::deckSelectFinished(ProtocolResponse *r)
|
|||
Deck_PictureCacher::cachePictures(resp->getDeck(), this);
|
||||
deckView->setDeck(resp->getDeck());
|
||||
}
|
||||
|
||||
void TabGame::readyStart()
|
||||
{
|
||||
client->sendCommand(new Command_ReadyStart(gameId));
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ private:
|
|||
Client *client;
|
||||
int gameId;
|
||||
|
||||
QPushButton *loadLocalButton, *loadRemoteButton;
|
||||
QPushButton *loadLocalButton, *loadRemoteButton, *readyStartButton;
|
||||
CardInfoWidget *cardInfo;
|
||||
MessageLogWidget *messageLog;
|
||||
QLabel *sayLabel;
|
||||
|
@ -41,6 +41,7 @@ private:
|
|||
private slots:
|
||||
void loadLocalDeck();
|
||||
void loadRemoteDeck();
|
||||
void readyStart();
|
||||
void deckSelectFinished(ProtocolResponse *r);
|
||||
public:
|
||||
TabGame(Client *_client, int _gameId);
|
||||
|
|
|
@ -257,7 +257,11 @@ public:
|
|||
GameEvent(const QString &_eventName, int _gameId, int _playerId);
|
||||
int getGameId() const { return gameId; }
|
||||
int getPlayerId() const { return playerId; }
|
||||
void setGameId(int _gameId) { gameId = _gameId; }
|
||||
void setGameId(int _gameId)
|
||||
{
|
||||
gameId = _gameId;
|
||||
setParameter("game_id", gameId);
|
||||
}
|
||||
};
|
||||
|
||||
class ChatEvent : public ProtocolItem {
|
||||
|
|
Loading…
Reference in a new issue