aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/items/qsgpincharea.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/items/qsgpincharea.cpp')
-rw-r--r--src/declarative/items/qsgpincharea.cpp46
1 files changed, 19 insertions, 27 deletions
diff --git a/src/declarative/items/qsgpincharea.cpp b/src/declarative/items/qsgpincharea.cpp
index b37dcaf646..d02477ee34 100644
--- a/src/declarative/items/qsgpincharea.cpp
+++ b/src/declarative/items/qsgpincharea.cpp
@@ -42,8 +42,9 @@
#include "qsgpincharea_p_p.h"
#include "qsgcanvas.h"
-#include <QtGui/qgraphicssceneevent.h>
-#include <QtGui/qapplication.h>
+#include <QtGui/qevent.h>
+#include <QtGui/qguiapplication.h>
+#include <QtGui/qstylehints.h>
#include <float.h>
#include <math.h>
@@ -341,7 +342,7 @@ void QSGPinchArea::updatePinch()
d->initPinch = true;
}
if (d->pinchActivated && !d->pinchRejected){
- const int dragThreshold = QApplication::startDragDistance();
+ const int dragThreshold = qApp->styleHints()->startDragDistance();
QPointF p1 = touchPoint1.scenePos();
QPointF p2 = touchPoint2.scenePos();
qreal dx = p1.x() - p2.x();
@@ -462,7 +463,7 @@ void QSGPinchArea::updatePinch()
}
}
-void QSGPinchArea::mousePressEvent(QGraphicsSceneMouseEvent *event)
+void QSGPinchArea::mousePressEvent(QMouseEvent *event)
{
Q_D(QSGPinchArea);
d->stealMouse = false;
@@ -474,7 +475,7 @@ void QSGPinchArea::mousePressEvent(QGraphicsSceneMouseEvent *event)
}
}
-void QSGPinchArea::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
+void QSGPinchArea::mouseMoveEvent(QMouseEvent *event)
{
Q_D(QSGPinchArea);
if (!d->absorb) {
@@ -483,7 +484,7 @@ void QSGPinchArea::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
}
}
-void QSGPinchArea::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
+void QSGPinchArea::mouseReleaseEvent(QMouseEvent *event)
{
Q_D(QSGPinchArea);
d->stealMouse = false;
@@ -502,36 +503,27 @@ void QSGPinchArea::mouseUngrabEvent()
setKeepMouseGrab(false);
}
-bool QSGPinchArea::sendMouseEvent(QGraphicsSceneMouseEvent *event)
+bool QSGPinchArea::sendMouseEvent(QMouseEvent *event)
{
Q_D(QSGPinchArea);
- QGraphicsSceneMouseEvent mouseEvent(event->type());
QRectF myRect = mapRectToScene(QRectF(0, 0, width(), height()));
QSGCanvas *c = canvas();
QSGItem *grabber = c ? c->mouseGrabberItem() : 0;
bool stealThisEvent = d->stealMouse;
- if ((stealThisEvent || myRect.contains(event->scenePos().toPoint())) && (!grabber || !grabber->keepMouseGrab())) {
+ if ((stealThisEvent || myRect.contains(event->windowPos())) && (!grabber || !grabber->keepMouseGrab())) {
+ QMouseEvent mouseEvent(event->type(), mapFromScene(event->windowPos()), event->windowPos(), event->screenPos(),
+ event->button(), event->buttons(), event->modifiers());
mouseEvent.setAccepted(false);
- for (int i = 0x1; i <= 0x10; i <<= 1) {
- if (event->buttons() & i) {
- Qt::MouseButton button = Qt::MouseButton(i);
- mouseEvent.setButtonDownPos(button, mapFromScene(event->buttonDownPos(button)));
- }
- }
- mouseEvent.setScenePos(event->scenePos());
- mouseEvent.setLastScenePos(event->lastScenePos());
- mouseEvent.setPos(mapFromScene(event->scenePos()));
- mouseEvent.setLastPos(mapFromScene(event->lastScenePos()));
switch(mouseEvent.type()) {
- case QEvent::GraphicsSceneMouseMove:
+ case QEvent::MouseMove:
mouseMoveEvent(&mouseEvent);
break;
- case QEvent::GraphicsSceneMousePress:
+ case QEvent::MouseButtonPress:
mousePressEvent(&mouseEvent);
break;
- case QEvent::GraphicsSceneMouseRelease:
+ case QEvent::MouseButtonRelease:
mouseReleaseEvent(&mouseEvent);
break;
default:
@@ -543,7 +535,7 @@ bool QSGPinchArea::sendMouseEvent(QGraphicsSceneMouseEvent *event)
return stealThisEvent;
}
- if (mouseEvent.type() == QEvent::GraphicsSceneMouseRelease) {
+ if (event->type() == QEvent::MouseButtonRelease) {
d->stealMouse = false;
if (c && c->mouseGrabberItem() == this)
ungrabMouse();
@@ -558,10 +550,10 @@ bool QSGPinchArea::childMouseEventFilter(QSGItem *i, QEvent *e)
if (!d->absorb || !isVisible())
return QSGItem::childMouseEventFilter(i, e);
switch (e->type()) {
- case QEvent::GraphicsSceneMousePress:
- case QEvent::GraphicsSceneMouseMove:
- case QEvent::GraphicsSceneMouseRelease:
- return sendMouseEvent(static_cast<QGraphicsSceneMouseEvent *>(e));
+ case QEvent::MouseButtonPress:
+ case QEvent::MouseMove:
+ case QEvent::MouseButtonRelease:
+ return sendMouseEvent(static_cast<QMouseEvent *>(e));
break;
case QEvent::TouchBegin:
case QEvent::TouchUpdate: {