From a246a8d561658a5c5e611dbb17a13972ca59aba0 Mon Sep 17 00:00:00 2001 From: brukie Date: Wed, 17 Jun 2009 18:05:17 +0200 Subject: [PATCH] double click on zones opens zone view --- cockatrice/src/cardzone.cpp | 6 ++++++ cockatrice/src/cardzone.h | 5 ++++- cockatrice/src/player.cpp | 8 ++++---- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/cockatrice/src/cardzone.cpp b/cockatrice/src/cardzone.cpp index e0d239ba..708fc149 100644 --- a/cockatrice/src/cardzone.cpp +++ b/cockatrice/src/cardzone.cpp @@ -27,6 +27,12 @@ void CardZone::clearContents() cards->clear(); } +void CardZone::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + if (doubleClickAction) + doubleClickAction->trigger(); +} + void CardZone::mousePressEvent(QGraphicsSceneMouseEvent *event) { if (event->button() == Qt::RightButton) { diff --git a/cockatrice/src/cardzone.h b/cockatrice/src/cardzone.h index 7d43fe55..ed2cc701 100644 --- a/cockatrice/src/cardzone.h +++ b/cockatrice/src/cardzone.h @@ -7,6 +7,7 @@ class Player; class ZoneViewZone; class QMenu; +class QAction; class QPainter; class CardZone : public QGraphicsItem { @@ -16,8 +17,10 @@ protected: CardList *cards; ZoneViewZone *view; QMenu *menu; + QAction *doubleClickAction; bool hasCardAttr; bool isShufflable; + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void addCardImpl(CardItem *card, int x, int y) = 0; void paintCardNumberEllipse(QPainter *painter); @@ -31,7 +34,7 @@ public: bool getHasCardAttr() const { return hasCardAttr; } bool getIsShufflable() const { return isShufflable; } 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; } Player *getPlayer() const { return player; } bool contentsKnown() const { return cards->getContentsKnown(); } diff --git a/cockatrice/src/player.cpp b/cockatrice/src/player.cpp index 45b3b753..8a325907 100644 --- a/cockatrice/src/player.cpp +++ b/cockatrice/src/player.cpp @@ -47,19 +47,19 @@ Player::Player(const QString &_name, int _id, QPointF _base, bool _local, CardDa QMenu *libraryMenu = playerMenu->addMenu(tr("&Library")); libraryMenu->addAction(aViewLibrary); libraryMenu->addAction(aViewTopCards); - zones.findZone("deck")->setMenu(libraryMenu); + zones.findZone("deck")->setMenu(libraryMenu, aViewLibrary); QMenu *graveMenu = playerMenu->addMenu(tr("&Graveyard")); graveMenu->addAction(aViewGraveyard); - zones.findZone("grave")->setMenu(graveMenu); + zones.findZone("grave")->setMenu(graveMenu, aViewGraveyard); QMenu *rfgMenu = playerMenu->addMenu(tr("&Removed cards")); rfgMenu->addAction(aViewRfg); - zones.findZone("rfg")->setMenu(rfgMenu); + zones.findZone("rfg")->setMenu(rfgMenu, aViewRfg); QMenu *sbMenu = playerMenu->addMenu(tr("&Sideboard")); sbMenu->addAction(aViewSideboard); - zones.findZone("sb")->setMenu(sbMenu); + zones.findZone("sb")->setMenu(sbMenu, aViewSideboard); } Player::~Player()