diff options
author | Jens Bache-Wiig <jensb.bache-wiig@nokia.com> | 2011-09-21 20:29:20 +0200 |
---|---|---|
committer | Jens Bache-Wiig <jensb.bache-wiig@nokia.com> | 2011-09-21 20:29:20 +0200 |
commit | ee22d52a4f9c70141b925e91543653ffdbf73701 (patch) | |
tree | 1d8c4f490241765a0207b970948a59bd5db90a8d /src | |
parent | 87892fce31ace521a2f229c09af56e4d41cb5174 (diff) | |
download | qtquickcontrols-ee22d52a4f9c70141b925e91543653ffdbf73701.tar.gz |
Added a workaround for TooltipArea not propagating events
Diffstat (limited to 'src')
-rw-r--r-- | src/qtooltiparea.cpp | 12 | ||||
-rw-r--r-- | src/qtooltiparea.h | 4 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/qtooltiparea.cpp b/src/qtooltiparea.cpp index c560a52e..ffb6c53c 100644 --- a/src/qtooltiparea.cpp +++ b/src/qtooltiparea.cpp @@ -5,7 +5,8 @@ #include <QGraphicsSceneEvent> QTooltipArea::QTooltipArea(QDeclarativeItem *parent) : - QDeclarativeItem(parent) + QDeclarativeItem(parent), + m_containsMouse(false) { setAcceptHoverEvents(true); connect(&m_tiptimer, SIGNAL(timeout()), this, SLOT(timeout())); @@ -27,13 +28,18 @@ void QTooltipArea::showToolTip(const QString &str) const void QTooltipArea::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { m_tiptimer.start(1000); - return QDeclarativeItem::hoverEnterEvent(event); + + m_containsMouse = true; + emit containsMouseChanged(); + QDeclarativeItem::hoverEnterEvent(event); } void QTooltipArea::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { m_tiptimer.stop(); - return QDeclarativeItem::hoverLeaveEvent(event); + m_containsMouse = false; + emit containsMouseChanged(); + QDeclarativeItem::hoverLeaveEvent(event); } void QTooltipArea::timeout() diff --git a/src/qtooltiparea.h b/src/qtooltiparea.h index 9a2c68e6..25614a1c 100644 --- a/src/qtooltiparea.h +++ b/src/qtooltiparea.h @@ -8,11 +8,13 @@ class QTooltipArea : public QDeclarativeItem { Q_OBJECT Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) + Q_PROPERTY(bool containsMouse READ containsMouse NOTIFY containsMouseChanged) public: QTooltipArea(QDeclarativeItem *parent = 0); void setText(const QString &t); QString text() const {return m_text;} + bool containsMouse() const {return m_containsMouse;} void showToolTip(const QString &str) const; void hoverEnterEvent(QGraphicsSceneHoverEvent *event); void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); @@ -22,11 +24,13 @@ public slots: signals: void textChanged(); + void containsMouseChanged(); private: QTimer m_tiptimer; QString m_text; + bool m_containsMouse; }; #endif // QTOOLTIPAREA_H |