[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/plasma/applets/fifteenPuzzle/src
From: Aaron J. Seigo <aseigo () kde ! org>
Date: 2008-01-22 23:39:24
Message-ID: 1201045164.353829.32107.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 765006 by aseigo:
context menus are nice
M +20 -3 piece.cpp
M +3 -0 piece.h
--- trunk/extragear/plasma/applets/fifteenPuzzle/src/piece.cpp #765005:765006
@@ -24,10 +24,13 @@
#include <QPen>
#include <QPainter>
-#include <QDebug>
#include <QGraphicsSceneMouseEvent>
#include <QFontMetrics>
+#include <KDebug>
+
+#include <plasma/widgets/widget.h>
+
Piece::Piece(int size, int id, QGraphicsItem *parent)
: QGraphicsPixmapItem(parent)
{
@@ -85,9 +88,23 @@
void Piece::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(event);
- if (m_id == 0) {
- return;
+ if (m_id == 0 || event->button() != Qt::LeftButton) {
+ event->ignore();
+ return;
}
+ event->accept();
emit pressed(this);
}
+
+void Piece::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
+{
+ // HACK: QGraphicsItem's documentation says that the event will be passed
+ // to the parent if it's not handled, but it isn't passed. This can be
+ // removed when Qt4.4 becomes a requirement. See Qt bug #176902.
+ Plasma::Widget *parentWidget = Plasma::Widget::parent(this);
+ if (parentWidget) {
+ parentWidget->contextMenuEvent(event);
+ }
+}
+
--- trunk/extragear/plasma/applets/fifteenPuzzle/src/piece.h #765005:765006
@@ -23,6 +23,8 @@
#include <QGraphicsItem>
#include <QObject>
+class QGraphicsSceneContextMenuEvent;
+
class Piece : public QObject, public QGraphicsPixmapItem
{
Q_OBJECT
@@ -40,6 +42,7 @@
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event);
+ void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
signals:
void pressed(QGraphicsItem *item);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic