deck list editing in deck storage tab; mouse hover event for deck view
This commit is contained in:
parent
d23ece59ea
commit
e0c7df1694
20 changed files with 251 additions and 45 deletions
|
@ -16,6 +16,7 @@
|
|||
<file>resources/icon_phase_main2.svg</file>
|
||||
<file>resources/icon_phase_cleanup.svg</file>
|
||||
<file>resources/icon_nextturn.svg</file>
|
||||
<file>resources/pencil.svg</file>
|
||||
<file>resources/hr.jpg</file>
|
||||
<file>translations/cockatrice_de.qm</file>
|
||||
<file>translations/cockatrice_en.qm</file>
|
||||
|
|
123
cockatrice/resources/pencil.svg
Normal file
123
cockatrice/resources/pencil.svg
Normal file
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2"
|
||||
inkscape:version="0.47 r22583"
|
||||
sodipodi:docname="pencil.svg">
|
||||
<metadata
|
||||
id="metadata18">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="752"
|
||||
id="namedview16"
|
||||
showgrid="false"
|
||||
inkscape:zoom="7.84375"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="31.124883"
|
||||
inkscape:window-x="-4"
|
||||
inkscape:window-y="-3"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<defs
|
||||
id="defs4">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 32 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="64 : 32 : 1"
|
||||
inkscape:persp3d-origin="32 : 21.333333 : 1"
|
||||
id="perspective20" />
|
||||
</defs>
|
||||
<path
|
||||
style="fill:#f2f2f2;stroke:black;stroke-width:0.30000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4310"
|
||||
d="M 14.147411,6.62251 L 14.147411,54.43507 L 44.866161,54.43507 L 49.209911,50.09127 L 49.209911,6.62251 L 14.147411,6.62251 z" />
|
||||
<path
|
||||
style="opacity:0.43930634;fill:black;stroke:none"
|
||||
id="rect4314-9-2"
|
||||
d="M 44.512517,49.84357 L 49.329349,49.84357 L 44.512517,54.57907 L 44.512517,49.84357 z" />
|
||||
<path
|
||||
style="fill:#f2f2f2;stroke:black;stroke-width:0.28564885;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4314-9-5"
|
||||
d="M 44.916303,50.21837 L 49.043604,50.21837 L 44.916303,54.34577 L 44.916303,50.21837 z" />
|
||||
<path
|
||||
style="opacity:0.43930634;fill:black;stroke:none"
|
||||
id="rect4120-3"
|
||||
d="M 9.8460881,48.28234 L 9.8738241,48.31601 L 6.6088088,50.899738 L 7.2796951,51.719454 L 8.3419311,53.01728 L 8.9849081,53.802907 L 12.249922,51.219179 L 37.119612,31.538824 L 37.147347,31.572494 L 39.245137,27.492709 L 34.715431,28.601144 L 9.8457411,48.281638 z" />
|
||||
<rect
|
||||
style="fill:#fc0;stroke:black;stroke-width:0.28297317;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4120"
|
||||
transform="matrix(0.78188456,-0.62342324,0.63622425,0.77150419,0,0)"
|
||||
y="42.451607"
|
||||
x="-23.630877"
|
||||
height="3.7814219"
|
||||
width="31.701616" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;stroke:black;stroke-width:0.28297317;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4122"
|
||||
transform="matrix(0.78188456,-0.62342324,0.63622425,0.77150419,0,0)"
|
||||
y="42.465313"
|
||||
x="-27.800512"
|
||||
height="3.7620518"
|
||||
width="4.171114" />
|
||||
<path
|
||||
style="fill:#ffe680;stroke:black;stroke-width:0.28295398;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4124"
|
||||
d="M 33.311356,27.702864 L 37.827686,26.555289 L 35.752692,30.663272 L 33.311356,27.702864 z" />
|
||||
<path
|
||||
style="fill:black;stroke:black;stroke-width:0.28295398;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4127"
|
||||
d="M 36.490872,26.906857 L 37.818176,26.572264 L 37.211194,27.780304 L 36.490872,26.906857 z" />
|
||||
<rect
|
||||
style="fill:#333;stroke:black;stroke-width:0.28297317;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4122-4"
|
||||
transform="matrix(0.78188456,-0.62342324,0.63622425,0.77150419,0,0)"
|
||||
y="43.521946"
|
||||
x="-27.795927"
|
||||
height="1.698899"
|
||||
width="4.171114" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;stroke:black;stroke-width:0.28297317;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4122-8"
|
||||
transform="matrix(0.78188456,-0.62342324,0.63622425,0.77150419,0,0)"
|
||||
y="45.227886"
|
||||
x="-27.795927"
|
||||
height="1.0045688"
|
||||
width="4.171114" />
|
||||
<rect
|
||||
style="fill:#a80;stroke:black;stroke-width:0.28297317;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4122-4-7"
|
||||
transform="matrix(0.78188456,-0.62342324,0.63622425,0.77150419,0,0)"
|
||||
y="43.521858"
|
||||
x="-23.635288"
|
||||
height="1.698899"
|
||||
width="31.643009" />
|
||||
</svg>
|
After Width: | Height: | Size: 4.7 KiB |
|
@ -137,6 +137,17 @@ void AbstractCardItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
|||
event->accept();
|
||||
}
|
||||
|
||||
void AbstractCardItem::processHoverEvent()
|
||||
{
|
||||
emit hovered(this);
|
||||
}
|
||||
|
||||
void AbstractCardItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
||||
{
|
||||
processHoverEvent();
|
||||
QGraphicsItem::hoverEnterEvent(event);
|
||||
}
|
||||
|
||||
QVariant AbstractCardItem::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
|
||||
{
|
||||
if (change == ItemSelectedHasChanged) {
|
||||
|
|
|
@ -23,6 +23,8 @@ protected:
|
|||
bool tapped;
|
||||
private slots:
|
||||
void pixmapUpdated();
|
||||
signals:
|
||||
void hovered(AbstractCardItem *card);
|
||||
public:
|
||||
enum { Type = typeCard };
|
||||
int type() const { return Type; }
|
||||
|
@ -35,8 +37,10 @@ public:
|
|||
void setName(const QString &_name = QString());
|
||||
bool getTapped() const { return tapped; }
|
||||
void setTapped(bool _tapped);
|
||||
void processHoverEvent();
|
||||
protected:
|
||||
void mousePressEvent(QGraphicsSceneMouseEvent *event);
|
||||
void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
|
||||
QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value);
|
||||
};
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ void CardInfoWidget::setCard(const QString &cardName)
|
|||
setCard(db->getCard(cardName));
|
||||
}
|
||||
|
||||
void CardInfoWidget::setCard(CardItem *card)
|
||||
void CardInfoWidget::setCard(AbstractCardItem *card)
|
||||
{
|
||||
setCard(card->getInfo());
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
class QLabel;
|
||||
class QTextEdit;
|
||||
class CardItem;
|
||||
class AbstractCardItem;
|
||||
class CardInfo;
|
||||
|
||||
class CardInfoWidget : public QFrame {
|
||||
|
@ -28,7 +28,7 @@ public:
|
|||
public slots:
|
||||
void setCard(CardInfo *card);
|
||||
void setCard(const QString &cardName);
|
||||
void setCard(CardItem *card);
|
||||
void setCard(AbstractCardItem *card);
|
||||
private slots:
|
||||
void updatePixmap();
|
||||
};
|
||||
|
|
|
@ -170,14 +170,3 @@ void CardItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
|
|||
table->handleDropEventByGrid(id, zone, gridPoint, false);
|
||||
}
|
||||
}
|
||||
|
||||
void CardItem::processHoverEvent()
|
||||
{
|
||||
emit hovered(this);
|
||||
}
|
||||
|
||||
void CardItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
||||
{
|
||||
processHoverEvent();
|
||||
QGraphicsItem::hoverEnterEvent(event);
|
||||
}
|
||||
|
|
|
@ -49,14 +49,10 @@ public:
|
|||
|
||||
CardDragItem *createDragItem(int _id, const QPointF &_pos, const QPointF &_scenePos, bool faceDown);
|
||||
void deleteDragItem();
|
||||
void processHoverEvent();
|
||||
signals:
|
||||
void hovered(CardItem *card);
|
||||
protected:
|
||||
void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
|
||||
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
|
||||
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
|
||||
void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -156,8 +156,8 @@ void CardZone::moveAllToZone()
|
|||
|
||||
// Cards need to be moved in reverse order so that the other
|
||||
// cards' list index doesn't change
|
||||
// for (int i = cards.size() - 1; i >= 0; i--)
|
||||
// player->client->moveCard(cards.at(i)->getId(), getName(), targetZone, targetX);
|
||||
for (int i = cards.size() - 1; i >= 0; i--)
|
||||
player->sendGameCommand(new Command_MoveCard(-1, getName(), cards.at(i)->getId(), getName(), targetX));
|
||||
}
|
||||
|
||||
QPointF CardZone::closestGridPoint(const QPointF &point)
|
||||
|
|
|
@ -316,6 +316,13 @@ void DeckListModel::cleanList()
|
|||
reset();
|
||||
}
|
||||
|
||||
void DeckListModel::setDeckList(DeckList *_deck)
|
||||
{
|
||||
delete deckList;
|
||||
deckList = _deck;
|
||||
rebuildTree();
|
||||
}
|
||||
|
||||
void DeckListModel::printDeckListNode(QTextCursor *cursor, InnerDecklistNode *node)
|
||||
{
|
||||
static const int totalColumns = 3;
|
||||
|
|
|
@ -44,6 +44,7 @@ public:
|
|||
void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
|
||||
void cleanList();
|
||||
DeckList *getDeckList() const { return deckList; }
|
||||
void setDeckList(DeckList *_deck);
|
||||
private:
|
||||
DeckList *deckList;
|
||||
InnerDecklistNode *root;
|
||||
|
|
|
@ -119,8 +119,11 @@ void DeckViewScene::rebuildTree()
|
|||
if (!currentCard)
|
||||
continue;
|
||||
|
||||
for (int k = 0; k < currentCard->getNumber(); ++k)
|
||||
container->addCard(new DeckViewCard(currentCard->getName(), container));
|
||||
for (int k = 0; k < currentCard->getNumber(); ++k) {
|
||||
DeckViewCard *newCard = new DeckViewCard(currentCard->getName(), container);
|
||||
container->addCard(newCard);
|
||||
emit newCardAdded(newCard);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -155,6 +158,7 @@ DeckView::DeckView(QWidget *parent)
|
|||
setScene(deckViewScene);
|
||||
|
||||
connect(deckViewScene, SIGNAL(sceneRectChanged(const QRectF &)), this, SLOT(updateSceneRect(const QRectF &)));
|
||||
connect(deckViewScene, SIGNAL(newCardAdded(AbstractCardItem *)), this, SIGNAL(newCardAdded(AbstractCardItem *)));
|
||||
}
|
||||
|
||||
void DeckView::resizeEvent(QResizeEvent *event)
|
||||
|
|
|
@ -35,6 +35,8 @@ public:
|
|||
|
||||
class DeckViewScene : public QGraphicsScene {
|
||||
Q_OBJECT
|
||||
signals:
|
||||
void newCardAdded(AbstractCardItem *card);
|
||||
private:
|
||||
DeckList *deck;
|
||||
QMap<QString, DeckViewCardContainer *> cardContainers;
|
||||
|
@ -54,6 +56,8 @@ protected:
|
|||
void resizeEvent(QResizeEvent *event);
|
||||
public slots:
|
||||
void updateSceneRect(const QRectF &rect);
|
||||
signals:
|
||||
void newCardAdded(AbstractCardItem *card);
|
||||
public:
|
||||
DeckView(QWidget *parent = 0);
|
||||
void setDeck(DeckList *_deck);
|
||||
|
|
|
@ -45,7 +45,7 @@ class Player : public QObject, public QGraphicsItem {
|
|||
signals:
|
||||
void closeZoneView(ZoneViewZone *zone);
|
||||
void toggleZoneView(Player *player, QString zoneName, int number);
|
||||
void newCardAdded(CardItem *card);
|
||||
void newCardAdded(AbstractCardItem *card);
|
||||
// Log events
|
||||
void logDeckSelect(Player *player, int deckId);
|
||||
void logSay(Player *player, QString message);
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include "client.h"
|
||||
#include "decklist.h"
|
||||
#include "protocol_items.h"
|
||||
#include "window_deckeditor.h"
|
||||
|
||||
TabDeckStorage::TabDeckStorage(Client *_client)
|
||||
: Tab(), client(_client)
|
||||
|
@ -59,9 +60,15 @@ TabDeckStorage::TabDeckStorage(Client *_client)
|
|||
hbox->addWidget(leftGroupBox);
|
||||
hbox->addWidget(rightGroupBox);
|
||||
|
||||
aOpenLocalDeck = new QAction(this);
|
||||
aOpenLocalDeck->setIcon(QIcon(":/resources/pencil.svg"));
|
||||
connect(aOpenLocalDeck, SIGNAL(triggered()), this, SLOT(actOpenLocalDeck()));
|
||||
aUpload = new QAction(this);
|
||||
aUpload->setIcon(QIcon(":/resources/arrow_right_green.svg"));
|
||||
connect(aUpload, SIGNAL(triggered()), this, SLOT(actUpload()));
|
||||
aOpenRemoteDeck = new QAction(this);
|
||||
aOpenRemoteDeck->setIcon(QIcon(":/resources/pencil.svg"));
|
||||
connect(aOpenRemoteDeck, SIGNAL(triggered()), this, SLOT(actOpenRemoteDeck()));
|
||||
aDownload = new QAction(this);
|
||||
aDownload->setIcon(QIcon(":/resources/arrow_left_green.svg"));
|
||||
connect(aDownload, SIGNAL(triggered()), this, SLOT(actDownload()));
|
||||
|
@ -72,7 +79,9 @@ TabDeckStorage::TabDeckStorage(Client *_client)
|
|||
aDelete->setIcon(QIcon(":/resources/remove_row.svg"));
|
||||
connect(aDelete, SIGNAL(triggered()), this, SLOT(actDelete()));
|
||||
|
||||
leftToolBar->addAction(aOpenLocalDeck);
|
||||
leftToolBar->addAction(aUpload);
|
||||
rightToolBar->addAction(aOpenRemoteDeck);
|
||||
rightToolBar->addAction(aDownload);
|
||||
rightToolBar->addAction(aNewFolder);
|
||||
rightToolBar->addAction(aDelete);
|
||||
|
@ -86,12 +95,29 @@ void TabDeckStorage::retranslateUi()
|
|||
leftGroupBox->setTitle(tr("Local file system"));
|
||||
rightGroupBox->setTitle(tr("Server deck storage"));
|
||||
|
||||
aOpenLocalDeck->setText(tr("Open in deck editor"));
|
||||
aUpload->setText(tr("Upload deck"));
|
||||
aOpenRemoteDeck->setText(tr("Open in deck editor"));
|
||||
aDownload->setText(tr("Download deck"));
|
||||
aNewFolder->setText(tr("New folder"));
|
||||
aDelete->setText(tr("Delete"));
|
||||
}
|
||||
|
||||
void TabDeckStorage::actOpenLocalDeck()
|
||||
{
|
||||
QModelIndex curLeft = sortFilter->mapToSource(localDirView->selectionModel()->currentIndex());
|
||||
if (localDirModel->isDir(curLeft))
|
||||
return;
|
||||
QString filePath = localDirModel->filePath(curLeft);
|
||||
DeckList *deck = new DeckList;
|
||||
if (!deck->loadFromFile(filePath, DeckList::CockatriceFormat))
|
||||
return;
|
||||
|
||||
WndDeckEditor *deckEditor = new WndDeckEditor;
|
||||
deckEditor->setDeck(deck, filePath, DeckList::CockatriceFormat);
|
||||
deckEditor->show();
|
||||
}
|
||||
|
||||
void TabDeckStorage::actUpload()
|
||||
{
|
||||
QModelIndex curLeft = sortFilter->mapToSource(localDirView->selectionModel()->currentIndex());
|
||||
|
@ -134,6 +160,28 @@ void TabDeckStorage::uploadFinished(ProtocolResponse *r)
|
|||
serverDirView->addFileToTree(resp->getFile(), serverDirView->getNodeByPath(cmd->getPath()));
|
||||
}
|
||||
|
||||
void TabDeckStorage::actOpenRemoteDeck()
|
||||
{
|
||||
RemoteDeckList_TreeModel::FileNode *curRight = dynamic_cast<RemoteDeckList_TreeModel::FileNode *>(serverDirView->getCurrentItem());
|
||||
if (!curRight)
|
||||
return;
|
||||
|
||||
Command_DeckDownload *command = new Command_DeckDownload(curRight->getId());
|
||||
connect(command, SIGNAL(finished(ProtocolResponse *)), this, SLOT(openRemoteDeckFinished(ProtocolResponse *)));
|
||||
client->sendCommand(command);
|
||||
}
|
||||
|
||||
void TabDeckStorage::openRemoteDeckFinished(ProtocolResponse *r)
|
||||
{
|
||||
Response_DeckDownload *resp = qobject_cast<Response_DeckDownload *>(r);
|
||||
if (!resp)
|
||||
return;
|
||||
|
||||
WndDeckEditor *deckEditor = new WndDeckEditor;
|
||||
deckEditor->setDeck(new DeckList(resp->getDeck()));
|
||||
deckEditor->show();
|
||||
}
|
||||
|
||||
void TabDeckStorage::actDownload()
|
||||
{
|
||||
QString filePath;
|
||||
|
|
|
@ -26,11 +26,16 @@ private:
|
|||
RemoteDeckList_TreeWidget *serverDirView;
|
||||
QGroupBox *leftGroupBox, *rightGroupBox;
|
||||
|
||||
QAction *aUpload, *aDownload, *aNewFolder, *aDelete;
|
||||
QAction *aOpenLocalDeck, *aUpload, *aOpenRemoteDeck, *aDownload, *aNewFolder, *aDelete;
|
||||
private slots:
|
||||
void actOpenLocalDeck();
|
||||
|
||||
void actUpload();
|
||||
void uploadFinished(ProtocolResponse *r);
|
||||
|
||||
void actOpenRemoteDeck();
|
||||
void openRemoteDeckFinished(ProtocolResponse *r);
|
||||
|
||||
void actDownload();
|
||||
void downloadFinished(ProtocolResponse *r);
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ TabGame::TabGame(Client *_client, int _gameId, int _localPlayerId, bool _spectat
|
|||
buttonHBox->addWidget(readyStartButton);
|
||||
buttonHBox->addStretch();
|
||||
deckView = new DeckView;
|
||||
connect(deckView, SIGNAL(newCardAdded(AbstractCardItem *)), this, SLOT(newCardAdded(AbstractCardItem *)));
|
||||
QVBoxLayout *deckViewLayout = new QVBoxLayout;
|
||||
deckViewLayout->addLayout(buttonHBox);
|
||||
deckViewLayout->addWidget(deckView);
|
||||
|
@ -213,7 +214,7 @@ Player *TabGame::addPlayer(int playerId, const QString &playerName)
|
|||
Player *newPlayer = new Player(playerName, playerId, playerId == localPlayerId, client, this);
|
||||
scene->addPlayer(newPlayer);
|
||||
|
||||
connect(newPlayer, SIGNAL(newCardAdded(CardItem *)), this, SLOT(newCardAdded(CardItem *)));
|
||||
connect(newPlayer, SIGNAL(newCardAdded(AbstractCardItem *)), this, SLOT(newCardAdded(AbstractCardItem *)));
|
||||
connect(newPlayer, SIGNAL(toggleZoneView(Player *, QString, int)), zoneLayout, SLOT(toggleZoneView(Player *, QString, int)));
|
||||
connect(newPlayer, SIGNAL(closeZoneView(ZoneViewZone *)), zoneLayout, SLOT(removeItem(ZoneViewZone *)));
|
||||
messageLog->connectToPlayer(newPlayer);
|
||||
|
@ -440,7 +441,7 @@ void TabGame::readyStart()
|
|||
client->sendCommand(new Command_ReadyStart(gameId));
|
||||
}
|
||||
|
||||
void TabGame::newCardAdded(CardItem *card)
|
||||
void TabGame::newCardAdded(AbstractCardItem *card)
|
||||
{
|
||||
connect(card, SIGNAL(hovered(CardItem *)), cardInfo, SLOT(setCard(CardItem *)));
|
||||
connect(card, SIGNAL(hovered(AbstractCardItem *)), cardInfo, SLOT(setCard(AbstractCardItem *)));
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ class Event_SetActivePhase;
|
|||
class Event_Ping;
|
||||
class Player;
|
||||
class CardZone;
|
||||
class AbstractCardItem;
|
||||
class CardItem;
|
||||
|
||||
class TabGame : public Tab {
|
||||
|
@ -85,7 +86,7 @@ private slots:
|
|||
void loadRemoteDeck();
|
||||
void readyStart();
|
||||
void deckSelectFinished(ProtocolResponse *r);
|
||||
void newCardAdded(CardItem *card);
|
||||
void newCardAdded(AbstractCardItem *card);
|
||||
|
||||
void actConcede();
|
||||
void actLeaveGame();
|
||||
|
|
|
@ -36,9 +36,9 @@ WndDeckEditor::WndDeckEditor(QWidget *parent)
|
|||
databaseView->setModel(databaseDisplayModel);
|
||||
databaseView->setUniformRowHeights(true);
|
||||
databaseView->setAlternatingRowColors(true);
|
||||
databaseView->header()->setResizeMode(QHeaderView::ResizeToContents);
|
||||
databaseView->setSortingEnabled(true);
|
||||
databaseView->sortByColumn(0, Qt::AscendingOrder);
|
||||
databaseView->resizeColumnToContents(0);
|
||||
connect(databaseView->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(updateCardInfoLeft(const QModelIndex &, const QModelIndex &)));
|
||||
connect(databaseView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(actAddCard()));
|
||||
searchEdit->setTreeView(databaseView);
|
||||
|
@ -68,6 +68,7 @@ WndDeckEditor::WndDeckEditor(QWidget *parent)
|
|||
deckView = new QTreeView();
|
||||
deckView->setModel(deckModel);
|
||||
deckView->setUniformRowHeights(true);
|
||||
deckView->header()->setResizeMode(QHeaderView::ResizeToContents);
|
||||
connect(deckView->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(updateCardInfoRight(const QModelIndex &, const QModelIndex &)));
|
||||
|
||||
QLabel *nameLabel = new QLabel(tr("Deck &name:"));
|
||||
|
@ -167,7 +168,6 @@ WndDeckEditor::WndDeckEditor(QWidget *parent)
|
|||
|
||||
WndDeckEditor::~WndDeckEditor()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void WndDeckEditor::updateName(const QString &name)
|
||||
|
@ -216,9 +216,10 @@ bool WndDeckEditor::confirmClose()
|
|||
|
||||
void WndDeckEditor::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
if (confirmClose())
|
||||
if (confirmClose()) {
|
||||
event->accept();
|
||||
else
|
||||
deleteLater();
|
||||
} else
|
||||
event->ignore();
|
||||
}
|
||||
|
||||
|
@ -247,19 +248,11 @@ void WndDeckEditor::actLoadDeck()
|
|||
|
||||
QString fileName = dialog.selectedFiles().at(0);
|
||||
DeckList::FileFormat fmt = DeckList::getFormatFromNameFilter(dialog.selectedNameFilter());
|
||||
DeckList *l = deckModel->getDeckList();
|
||||
if (l->loadFromFile(fileName, fmt)) {
|
||||
lastFileName = fileName;
|
||||
lastFileFormat = fmt;
|
||||
nameEdit->setText(l->getName());
|
||||
commentsEdit->setText(l->getComments());
|
||||
deckModel->sort(1);
|
||||
deckView->expandAll();
|
||||
deckView->resizeColumnToContents(0);
|
||||
setWindowModified(false);
|
||||
|
||||
Deck_PictureCacher::cachePictures(l, this);
|
||||
}
|
||||
DeckList *l = new DeckList;
|
||||
if (l->loadFromFile(fileName, fmt))
|
||||
setDeck(l, fileName, fmt);
|
||||
else
|
||||
delete l;
|
||||
}
|
||||
|
||||
bool WndDeckEditor::actSaveDeck()
|
||||
|
@ -377,3 +370,20 @@ void WndDeckEditor::actDecrement()
|
|||
deckModel->setData(numberIndex, count - 1, Qt::EditRole);
|
||||
setWindowModified(true);
|
||||
}
|
||||
|
||||
void WndDeckEditor::setDeck(DeckList *_deck, const QString &_lastFileName, DeckList::FileFormat _lastFileFormat)
|
||||
{
|
||||
deckModel->setDeckList(_deck);
|
||||
|
||||
lastFileName = _lastFileName;
|
||||
lastFileFormat = _lastFileFormat;
|
||||
nameEdit->setText(_deck->getName());
|
||||
commentsEdit->setText(_deck->getComments());
|
||||
deckModel->sort(1);
|
||||
deckView->expandAll();
|
||||
setWindowModified(false);
|
||||
|
||||
Deck_PictureCacher::cachePictures(_deck, this);
|
||||
deckView->expandAll();
|
||||
setWindowModified(false);
|
||||
}
|
||||
|
|
|
@ -71,6 +71,7 @@ private:
|
|||
public:
|
||||
WndDeckEditor(QWidget *parent = 0);
|
||||
~WndDeckEditor();
|
||||
void setDeck(DeckList *_deck, const QString &_lastFileName = QString(), DeckList::FileFormat _lastFileFormat = DeckList::CockatriceFormat);
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *event);
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue