change cards from sb<->mb with double-click (#2606)
This commit is contained in:
parent
2c551bdd35
commit
62d8f5a039
3 changed files with 37 additions and 2 deletions
|
@ -1,5 +1,6 @@
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QGraphicsSceneMouseEvent>
|
#include <QGraphicsSceneMouseEvent>
|
||||||
|
#include <QMouseEvent>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include "deckview.h"
|
#include "deckview.h"
|
||||||
#include "decklist.h"
|
#include "decklist.h"
|
||||||
|
@ -116,6 +117,39 @@ void DeckViewCard::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
||||||
setCursor(Qt::OpenHandCursor);
|
setCursor(Qt::OpenHandCursor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DeckView::mouseDoubleClickEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
if (static_cast<DeckViewScene *>(scene())->getLocked())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (event->button() == Qt::LeftButton)
|
||||||
|
{
|
||||||
|
QList<MoveCard_ToZone> result;
|
||||||
|
QList<QGraphicsItem *> sel = scene()->selectedItems();
|
||||||
|
|
||||||
|
for (int i = 0; i < sel.size(); i++) {
|
||||||
|
DeckViewCard *c = static_cast<DeckViewCard *>(sel.at(i));
|
||||||
|
DeckViewCardContainer *zone = static_cast<DeckViewCardContainer *>(c->parentItem());
|
||||||
|
MoveCard_ToZone m;
|
||||||
|
m.set_card_name(c->getName().toStdString());
|
||||||
|
m.set_start_zone(zone->getName().toStdString());
|
||||||
|
|
||||||
|
if (zone->getName() == "main")
|
||||||
|
m.set_target_zone("side");
|
||||||
|
else if (zone->getName() == "side")
|
||||||
|
m.set_target_zone("main");
|
||||||
|
else // Trying to move from another zone
|
||||||
|
m.set_target_zone(zone->getName().toStdString());
|
||||||
|
|
||||||
|
result.append(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
deckViewScene->applySideboardPlan(result);
|
||||||
|
deckViewScene->rearrangeItems();
|
||||||
|
emit deckViewScene->sideboardPlanChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void DeckViewCard::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
void DeckViewCard::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
||||||
{
|
{
|
||||||
event->accept();
|
event->accept();
|
||||||
|
|
|
@ -83,7 +83,6 @@ private:
|
||||||
qreal optimalAspectRatio;
|
qreal optimalAspectRatio;
|
||||||
void clearContents();
|
void clearContents();
|
||||||
void rebuildTree();
|
void rebuildTree();
|
||||||
void applySideboardPlan(const QList<MoveCard_ToZone> &plan);
|
|
||||||
public:
|
public:
|
||||||
DeckViewScene(QObject *parent = 0);
|
DeckViewScene(QObject *parent = 0);
|
||||||
~DeckViewScene();
|
~DeckViewScene();
|
||||||
|
@ -95,6 +94,7 @@ public:
|
||||||
void updateContents();
|
void updateContents();
|
||||||
QList<MoveCard_ToZone> getSideboardPlan() const;
|
QList<MoveCard_ToZone> getSideboardPlan() const;
|
||||||
void resetSideboardPlan();
|
void resetSideboardPlan();
|
||||||
|
void applySideboardPlan(const QList<MoveCard_ToZone> &plan);
|
||||||
};
|
};
|
||||||
|
|
||||||
class DeckView : public QGraphicsView {
|
class DeckView : public QGraphicsView {
|
||||||
|
@ -113,6 +113,7 @@ public:
|
||||||
void setDeck(const DeckList &_deck);
|
void setDeck(const DeckList &_deck);
|
||||||
void setLocked(bool _locked) { deckViewScene->setLocked(_locked); }
|
void setLocked(bool _locked) { deckViewScene->setLocked(_locked); }
|
||||||
QList<MoveCard_ToZone> getSideboardPlan() const { return deckViewScene->getSideboardPlan(); }
|
QList<MoveCard_ToZone> getSideboardPlan() const { return deckViewScene->getSideboardPlan(); }
|
||||||
|
void mouseDoubleClickEvent(QMouseEvent *event);
|
||||||
void resetSideboardPlan();
|
void resetSideboardPlan();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -277,7 +277,7 @@ void DeckViewContainer::sideboardPlanChanged()
|
||||||
Command_SetSideboardPlan cmd;
|
Command_SetSideboardPlan cmd;
|
||||||
const QList<MoveCard_ToZone> &newPlan = deckView->getSideboardPlan();
|
const QList<MoveCard_ToZone> &newPlan = deckView->getSideboardPlan();
|
||||||
for (int i = 0; i < newPlan.size(); ++i)
|
for (int i = 0; i < newPlan.size(); ++i)
|
||||||
cmd.add_move_list()->CopyFrom(newPlan[i]);
|
cmd.add_move_list()->CopyFrom(newPlan.at(i));
|
||||||
parentGame->sendGameCommand(cmd, playerId);
|
parentGame->sendGameCommand(cmd, playerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue