double click on zones opens zone view

This commit is contained in:
brukie 2009-06-17 18:05:17 +02:00
parent 04a3d311be
commit a246a8d561
3 changed files with 14 additions and 5 deletions

View file

@ -27,6 +27,12 @@ void CardZone::clearContents()
cards->clear(); cards->clear();
} }
void CardZone::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
{
if (doubleClickAction)
doubleClickAction->trigger();
}
void CardZone::mousePressEvent(QGraphicsSceneMouseEvent *event) void CardZone::mousePressEvent(QGraphicsSceneMouseEvent *event)
{ {
if (event->button() == Qt::RightButton) { if (event->button() == Qt::RightButton) {

View file

@ -7,6 +7,7 @@
class Player; class Player;
class ZoneViewZone; class ZoneViewZone;
class QMenu; class QMenu;
class QAction;
class QPainter; class QPainter;
class CardZone : public QGraphicsItem { class CardZone : public QGraphicsItem {
@ -16,8 +17,10 @@ protected:
CardList *cards; CardList *cards;
ZoneViewZone *view; ZoneViewZone *view;
QMenu *menu; QMenu *menu;
QAction *doubleClickAction;
bool hasCardAttr; bool hasCardAttr;
bool isShufflable; bool isShufflable;
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
void mousePressEvent(QGraphicsSceneMouseEvent *event); void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual void addCardImpl(CardItem *card, int x, int y) = 0; virtual void addCardImpl(CardItem *card, int x, int y) = 0;
void paintCardNumberEllipse(QPainter *painter); void paintCardNumberEllipse(QPainter *painter);
@ -31,7 +34,7 @@ public:
bool getHasCardAttr() const { return hasCardAttr; } bool getHasCardAttr() const { return hasCardAttr; }
bool getIsShufflable() const { return isShufflable; } bool getIsShufflable() const { return isShufflable; }
QMenu *getMenu() const { return menu; } QMenu *getMenu() const { return menu; }
void setMenu(QMenu *_menu) { menu = _menu; } void setMenu(QMenu *_menu, QAction *_doubleClickAction = 0) { menu = _menu; doubleClickAction = _doubleClickAction; }
QString getName() const { return name; } QString getName() const { return name; }
Player *getPlayer() const { return player; } Player *getPlayer() const { return player; }
bool contentsKnown() const { return cards->getContentsKnown(); } bool contentsKnown() const { return cards->getContentsKnown(); }

View file

@ -47,19 +47,19 @@ Player::Player(const QString &_name, int _id, QPointF _base, bool _local, CardDa
QMenu *libraryMenu = playerMenu->addMenu(tr("&Library")); QMenu *libraryMenu = playerMenu->addMenu(tr("&Library"));
libraryMenu->addAction(aViewLibrary); libraryMenu->addAction(aViewLibrary);
libraryMenu->addAction(aViewTopCards); libraryMenu->addAction(aViewTopCards);
zones.findZone("deck")->setMenu(libraryMenu); zones.findZone("deck")->setMenu(libraryMenu, aViewLibrary);
QMenu *graveMenu = playerMenu->addMenu(tr("&Graveyard")); QMenu *graveMenu = playerMenu->addMenu(tr("&Graveyard"));
graveMenu->addAction(aViewGraveyard); graveMenu->addAction(aViewGraveyard);
zones.findZone("grave")->setMenu(graveMenu); zones.findZone("grave")->setMenu(graveMenu, aViewGraveyard);
QMenu *rfgMenu = playerMenu->addMenu(tr("&Removed cards")); QMenu *rfgMenu = playerMenu->addMenu(tr("&Removed cards"));
rfgMenu->addAction(aViewRfg); rfgMenu->addAction(aViewRfg);
zones.findZone("rfg")->setMenu(rfgMenu); zones.findZone("rfg")->setMenu(rfgMenu, aViewRfg);
QMenu *sbMenu = playerMenu->addMenu(tr("&Sideboard")); QMenu *sbMenu = playerMenu->addMenu(tr("&Sideboard"));
sbMenu->addAction(aViewSideboard); sbMenu->addAction(aViewSideboard);
zones.findZone("sb")->setMenu(sbMenu); zones.findZone("sb")->setMenu(sbMenu, aViewSideboard);
} }
Player::~Player() Player::~Player()