mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-30 10:33:54 -07:00
show hand context menu when hand counter is rightclicked
This commit is contained in:
parent
683c57bb88
commit
3211801e39
5 changed files with 26 additions and 3 deletions
|
|
@ -86,13 +86,21 @@ void CardZone::mouseDoubleClickEvent(QGraphicsSceneMouseEvent */*event*/)
|
||||||
doubleClickAction->trigger();
|
doubleClickAction->trigger();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CardZone::showContextMenu(const QPoint &screenPos)
|
||||||
|
{
|
||||||
|
if (menu) {
|
||||||
|
menu->exec(screenPos);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void CardZone::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
void CardZone::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
||||||
{
|
{
|
||||||
if (event->button() == Qt::RightButton) {
|
if (event->button() == Qt::RightButton) {
|
||||||
if (menu) {
|
if (showContextMenu(event->screenPos()))
|
||||||
menu->exec(event->screenPos());
|
|
||||||
event->accept();
|
event->accept();
|
||||||
} else
|
else
|
||||||
event->ignore();
|
event->ignore();
|
||||||
} else
|
} else
|
||||||
event->ignore();
|
event->ignore();
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ signals:
|
||||||
void cardCountChanged();
|
void cardCountChanged();
|
||||||
public slots:
|
public slots:
|
||||||
void moveAllToZone();
|
void moveAllToZone();
|
||||||
|
bool showContextMenu(const QPoint &screenPos);
|
||||||
public:
|
public:
|
||||||
enum { Type = typeZone };
|
enum { Type = typeZone };
|
||||||
int type() const { return Type; }
|
int type() const { return Type; }
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QSvgRenderer>
|
#include <QSvgRenderer>
|
||||||
#include <QPixmapCache>
|
#include <QPixmapCache>
|
||||||
|
#include <QGraphicsSceneMouseEvent>
|
||||||
#include "handcounter.h"
|
#include "handcounter.h"
|
||||||
#include "cardzone.h"
|
#include "cardzone.h"
|
||||||
|
|
||||||
|
|
@ -48,3 +49,11 @@ void HandCounter::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*op
|
||||||
|
|
||||||
paintNumberEllipse(number, 24, Qt::white, -1, -1, painter);
|
paintNumberEllipse(number, 24, Qt::white, -1, -1, painter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HandCounter::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
||||||
|
{
|
||||||
|
if (event->button() == Qt::RightButton) {
|
||||||
|
emit showContextMenu(event->screenPos());
|
||||||
|
event->accept();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,12 @@ class HandCounter : public AbstractGraphicsItem {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
private:
|
private:
|
||||||
int number;
|
int number;
|
||||||
|
protected:
|
||||||
|
void mousePressEvent(QGraphicsSceneMouseEvent *event);
|
||||||
public slots:
|
public slots:
|
||||||
void updateNumber();
|
void updateNumber();
|
||||||
|
signals:
|
||||||
|
void showContextMenu(const QPoint &screenPos);
|
||||||
public:
|
public:
|
||||||
enum { Type = typeOther };
|
enum { Type = typeOther };
|
||||||
int type() const { return Type; }
|
int type() const { return Type; }
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,7 @@ Player::Player(ServerInfo_User *info, int _id, bool _local, TabGame *_parent)
|
||||||
|
|
||||||
hand = new HandZone(this, _local || (_parent->getSpectator() && _parent->getSpectatorsSeeEverything()), (int) table->boundingRect().height(), this);
|
hand = new HandZone(this, _local || (_parent->getSpectator() && _parent->getSpectatorsSeeEverything()), (int) table->boundingRect().height(), this);
|
||||||
connect(hand, SIGNAL(cardCountChanged()), handCounter, SLOT(updateNumber()));
|
connect(hand, SIGNAL(cardCountChanged()), handCounter, SLOT(updateNumber()));
|
||||||
|
connect(handCounter, SIGNAL(showContextMenu(const QPoint &)), hand, SLOT(showContextMenu(const QPoint &)));
|
||||||
|
|
||||||
updateBoundingRect();
|
updateBoundingRect();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue