diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-29 12:49:37 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-29 12:49:37 +0200 |
commit | 8b88e37bf79a53eb0cb34226aacb25ad9b01d7cf (patch) | |
tree | 6087ee08b55f69f9c4981d9026d3162f2ee50c31 /src/quick | |
parent | 61edb86ed4cc0ac31d77d3793936fa1e8476b504 (diff) | |
parent | 7ceca6ac0535a957e9f87f789119c288f6d93837 (diff) |
Merge remote-tracking branch 'origin/5.3' into dev
Change-Id: Id95f7b01de36bccecbb7b73acc041654a1fe2ebe
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/qquickflickable.cpp | 41 | ||||
-rw-r--r-- | src/quick/items/qquickflickable_p_p.h | 2 | ||||
-rw-r--r-- | src/quick/items/qquickmousearea_p.h | 34 | ||||
-rw-r--r-- | src/quick/items/qquickscreen_p.h | 18 | ||||
-rw-r--r-- | src/quick/items/qquickshadereffectsource.cpp | 2 |
5 files changed, 49 insertions, 48 deletions
diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp index ee71ea8a76..63dde661d9 100644 --- a/src/quick/items/qquickflickable.cpp +++ b/src/quick/items/qquickflickable.cpp @@ -763,15 +763,8 @@ void QQuickFlickable::setInteractive(bool interactive) Q_D(QQuickFlickable); if (interactive != d->interactive) { d->interactive = interactive; - if (!interactive && (d->hData.flicking || d->vData.flicking)) { - d->clearTimeline(); - d->hData.vTime = d->vData.vTime = d->timeline.time(); - d->hData.flicking = false; - d->vData.flicking = false; - emit flickingChanged(); - emit flickingHorizontallyChanged(); - emit flickingVerticallyChanged(); - emit flickEnded(); + if (!interactive) { + d->cancelInteraction(); } emit interactiveChanged(); } @@ -2015,18 +2008,24 @@ bool QQuickFlickable::yflick() const void QQuickFlickable::mouseUngrabEvent() { Q_D(QQuickFlickable); - if (d->pressed) { - // if our mouse grab has been removed (probably by another Flickable), - // fix our state - d->clearDelayedPress(); - d->pressed = false; - d->draggingEnding(); - d->stealMouse = false; - setKeepMouseGrab(false); - d->fixupX(); - d->fixupY(); - if (!d->isViewMoving()) - movementEnding(); + // if our mouse grab has been removed (probably by another Flickable), + // fix our state + d->cancelInteraction(); +} + +void QQuickFlickablePrivate::cancelInteraction() +{ + Q_Q(QQuickFlickable); + if (pressed) { + clearDelayedPress(); + pressed = false; + draggingEnding(); + stealMouse = false; + q->setKeepMouseGrab(false); + fixupX(); + fixupY(); + if (!isViewMoving()) + q->movementEnding(); } } diff --git a/src/quick/items/qquickflickable_p_p.h b/src/quick/items/qquickflickable_p_p.h index 33a642eb69..13af2e055c 100644 --- a/src/quick/items/qquickflickable_p_p.h +++ b/src/quick/items/qquickflickable_p_p.h @@ -200,6 +200,8 @@ public: bool isViewMoving() const; + void cancelInteraction(); + public: QQuickItem *contentItem; diff --git a/src/quick/items/qquickmousearea_p.h b/src/quick/items/qquickmousearea_p.h index d303852311..5dcb6b46a4 100644 --- a/src/quick/items/qquickmousearea_p.h +++ b/src/quick/items/qquickmousearea_p.h @@ -144,25 +144,25 @@ protected: bool setPressed(Qt::MouseButton button, bool); bool sendMouseEvent(QMouseEvent *event); - virtual void mousePressEvent(QMouseEvent *event); - virtual void mouseReleaseEvent(QMouseEvent *event); - virtual void mouseDoubleClickEvent(QMouseEvent *event); - virtual void mouseMoveEvent(QMouseEvent *event); - virtual void mouseUngrabEvent(); - virtual void hoverEnterEvent(QHoverEvent *event); - virtual void hoverMoveEvent(QHoverEvent *event); - virtual void hoverLeaveEvent(QHoverEvent *event); + void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void mouseDoubleClickEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void mouseUngrabEvent() Q_DECL_OVERRIDE; + void hoverEnterEvent(QHoverEvent *event) Q_DECL_OVERRIDE; + void hoverMoveEvent(QHoverEvent *event) Q_DECL_OVERRIDE; + void hoverLeaveEvent(QHoverEvent *event) Q_DECL_OVERRIDE; #ifndef QT_NO_WHEELEVENT - virtual void wheelEvent(QWheelEvent *event); + void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE; #endif - virtual bool childMouseEventFilter(QQuickItem *i, QEvent *e); - virtual void timerEvent(QTimerEvent *event); - virtual void windowDeactivateEvent(); - - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - virtual void itemChange(ItemChange change, const ItemChangeData& value); - virtual QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *); + bool childMouseEventFilter(QQuickItem *i, QEvent *e) Q_DECL_OVERRIDE; + void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE; + void windowDeactivateEvent() Q_DECL_OVERRIDE; + + void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry) Q_DECL_OVERRIDE; + void itemChange(ItemChange change, const ItemChangeData& value) Q_DECL_OVERRIDE; + QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) Q_DECL_OVERRIDE; private: void handlePress(); diff --git a/src/quick/items/qquickscreen_p.h b/src/quick/items/qquickscreen_p.h index a155ff1843..25a1805a44 100644 --- a/src/quick/items/qquickscreen_p.h +++ b/src/quick/items/qquickscreen_p.h @@ -58,13 +58,13 @@ class Q_AUTOTEST_EXPORT QQuickScreenAttached : public QObject { Q_OBJECT - Q_PROPERTY(QString name READ name NOTIFY nameChanged REVISION 1); + Q_PROPERTY(QString name READ name NOTIFY nameChanged); Q_PROPERTY(int width READ width NOTIFY widthChanged) Q_PROPERTY(int height READ height NOTIFY heightChanged) - Q_PROPERTY(int desktopAvailableWidth READ desktopAvailableWidth NOTIFY desktopGeometryChanged REVISION 1) - Q_PROPERTY(int desktopAvailableHeight READ desktopAvailableHeight NOTIFY desktopGeometryChanged REVISION 1) - Q_PROPERTY(qreal logicalPixelDensity READ logicalPixelDensity NOTIFY logicalPixelDensityChanged REVISION 1) - Q_PROPERTY(qreal pixelDensity READ pixelDensity NOTIFY pixelDensityChanged REVISION 2) + Q_PROPERTY(int desktopAvailableWidth READ desktopAvailableWidth NOTIFY desktopGeometryChanged) + Q_PROPERTY(int desktopAvailableHeight READ desktopAvailableHeight NOTIFY desktopGeometryChanged) + Q_PROPERTY(qreal logicalPixelDensity READ logicalPixelDensity NOTIFY logicalPixelDensityChanged) + Q_PROPERTY(qreal pixelDensity READ pixelDensity NOTIFY pixelDensityChanged) Q_PROPERTY(Qt::ScreenOrientation primaryOrientation READ primaryOrientation NOTIFY primaryOrientationChanged) Q_PROPERTY(Qt::ScreenOrientation orientation READ orientation NOTIFY orientationChanged) @@ -87,12 +87,12 @@ public: void windowChanged(QQuickWindow*); Q_SIGNALS: - Q_REVISION(1) void nameChanged(); + void nameChanged(); void widthChanged(); void heightChanged(); - Q_REVISION(1) void desktopGeometryChanged(); - Q_REVISION(1) void logicalPixelDensityChanged(); - Q_REVISION(2) void pixelDensityChanged(); + void desktopGeometryChanged(); + void logicalPixelDensityChanged(); + void pixelDensityChanged(); void primaryOrientationChanged(); void orientationChanged(); diff --git a/src/quick/items/qquickshadereffectsource.cpp b/src/quick/items/qquickshadereffectsource.cpp index 163ee3eada..7603495e1b 100644 --- a/src/quick/items/qquickshadereffectsource.cpp +++ b/src/quick/items/qquickshadereffectsource.cpp @@ -1037,7 +1037,7 @@ QSGNode *QQuickShaderEffectSource::updatePaintNode(QSGNode *oldNode, UpdatePaint } // Don't create the paint node if we're not spanning any area - if (width() == 0 || height() == 0) { + if (width() <= 0 || height() <= 0) { delete oldNode; return 0; } |