diff options
author | Marc Mutz <marc.mutz@qt.io> | 2022-01-06 17:36:51 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-01-16 13:08:29 +0000 |
commit | 36009c8eece8b016601c01f5654b00f6430f1b7e (patch) | |
tree | 154495752899b5635e55fab2cafdafdbeeaf8230 /src | |
parent | cc5f6a7e3a5e3f41e5f8db66c51afd900cd8646b (diff) |
Port users of QMutableEventPoint::from() to new static setters
In QQuickItem, added an opportunistic std::move() as a drive-by.
Task-number: QTBUG-99615
Change-Id: Ib9426ae7e749036541d5f97824800636b5ccfb5e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit f988168432068f04c0f9a0c485bc1c6584f0aa5e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquickflickable.cpp | 11 | ||||
-rw-r--r-- | src/quick/items/qquickitem.cpp | 7 | ||||
-rw-r--r-- | src/quick/items/qquickpathview.cpp | 2 | ||||
-rw-r--r-- | src/quick/util/qquickdeliveryagent.cpp | 36 |
4 files changed, 27 insertions, 29 deletions
diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp index 1d839efc3e..3ad53c6173 100644 --- a/src/quick/items/qquickflickable.cpp +++ b/src/quick/items/qquickflickable.cpp @@ -1472,11 +1472,10 @@ void QQuickFlickable::mouseReleaseEvent(QMouseEvent *event) // Now send the release if (auto grabber = qmlobject_cast<QQuickItem *>(event->exclusiveGrabber(event->point(0)))) { // not copying or detaching anything, so make sure we return the original event unchanged - QMutableSinglePointEvent *localized = QMutableSinglePointEvent::from(event); - const auto oldPosition = localized->mutablePoint().position(); - localized->mutablePoint().setPosition(grabber->mapFromScene(localized->scenePosition())); - QCoreApplication::sendEvent(window(), localized); - localized->mutablePoint().setPosition(oldPosition); + const auto oldPosition = event->point(0).position(); + QMutableEventPoint::setPosition(event->point(0), grabber->mapFromScene(event->scenePosition())); + QCoreApplication::sendEvent(window(), event); + QMutableEventPoint::setPosition(event->point(0), oldPosition); } // And the event has been consumed @@ -1747,7 +1746,7 @@ void QQuickFlickablePrivate::replayDelayedPress() qCDebug(lcReplay) << "replaying" << event.data(); // Put scenePosition into position, for the sake of QQuickWindowPrivate::translateTouchEvent() // TODO remove this if we remove QQuickWindowPrivate::translateTouchEvent() - QMutableEventPoint::from(firstPoint).setPosition(firstPoint.scenePosition()); + QMutableEventPoint::setPosition(firstPoint, firstPoint.scenePosition()); // Send it through like a fresh press event, and let QQuickWindow // (more specifically, QQuickWindowPrivate::deliverPressOrReleaseEvent) // find the item or handler that should receive it, as usual. diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 8ff4c77b56..b1d61e7329 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -8917,12 +8917,11 @@ void QQuickItemPrivate::localizedTouchEvent(const QTouchEvent *event, bool isFil if ((p.state() == QEventPoint::State::Pressed || p.state() == QEventPoint::State::Released) && isInside) anyPressOrReleaseInside = true; QEventPoint pCopy(p); - QMutableEventPoint mut = QMutableEventPoint::from(pCopy); eventStates |= p.state(); if (p.state() == QEventPoint::State::Released) - mut.detach(); - mut.setPosition(localPos); - touchPoints << mut; + QMutableEventPoint::detach(pCopy); + QMutableEventPoint::setPosition(pCopy, localPos); + touchPoints.append(std::move(pCopy)); } // Now touchPoints will have only points which are inside the item. diff --git a/src/quick/items/qquickpathview.cpp b/src/quick/items/qquickpathview.cpp index 228ccefa6f..d6ce5d7769 100644 --- a/src/quick/items/qquickpathview.cpp +++ b/src/quick/items/qquickpathview.cpp @@ -1861,7 +1861,7 @@ bool QQuickPathView::childMouseEventFilter(QQuickItem *i, QEvent *e) if ((stealThisEvent || contains(localPos)) && (!grabber || !grabber->keepMouseGrab() || grabberDisabled)) { // Make a localized copy of the QMouseEvent. QMutableSinglePointEvent localizedEvent(*static_cast<QMouseEvent *>(pe)); - QMutableEventPoint::from(localizedEvent.point(0)).setPosition(localPos); + QMutableEventPoint::setPosition(localizedEvent.point(0), localPos); localizedEvent.setAccepted(false); switch (localizedEvent.type()) { diff --git a/src/quick/util/qquickdeliveryagent.cpp b/src/quick/util/qquickdeliveryagent.cpp index 478facfed5..931d27726b 100644 --- a/src/quick/util/qquickdeliveryagent.cpp +++ b/src/quick/util/qquickdeliveryagent.cpp @@ -308,8 +308,8 @@ void QQuickDeliveryAgentPrivate::removeGrabber(QQuickItem *grabber, bool mouse, void QQuickDeliveryAgentPrivate::translateTouchEvent(QTouchEvent *touchEvent) { for (qsizetype i = 0; i != touchEvent->pointCount(); ++i) { - auto &pt = QMutableEventPoint::from(touchEvent->point(i)); - pt.setScenePosition(pt.position()); + auto &pt = touchEvent->point(i); + QMutableEventPoint::setScenePosition(pt, pt.position()); } } @@ -894,11 +894,11 @@ QQuickDeliveryAgentPrivate::~QQuickDeliveryAgentPrivate() QPointerEvent *QQuickDeliveryAgentPrivate::clonePointerEvent(QPointerEvent *event, std::optional<QPointF> transformedLocalPos) { QPointerEvent *ret = event->clone(); - QMutableEventPoint &point = QMutableEventPoint::from(ret->point(0)); - point.detach(); - point.setTimestamp(event->timestamp()); + QEventPoint &point = ret->point(0); + QMutableEventPoint::detach(point); + QMutableEventPoint::setTimestamp(point, event->timestamp()); if (transformedLocalPos) - point.setPosition(*transformedLocalPos); + QMutableEventPoint::setPosition(point, *transformedLocalPos); return ret; } @@ -947,10 +947,10 @@ bool QQuickDeliveryAgentPrivate::sendHoverEvent(QEvent::Type type, QQuickItem *i hoverEvent.setTimestamp(timestamp); hoverEvent.setAccepted(true); const QTransform transformToGlobal = itemPrivate->windowToGlobalTransform(); - QMutableEventPoint &point = QMutableEventPoint::from(hoverEvent.point(0)); - point.setScenePosition(scenePos); - point.setGlobalPosition(transformToGlobal.map(scenePos)); - point.setGlobalLastPosition(transformToGlobal.map(lastScenePos)); + QEventPoint &point = hoverEvent.point(0); + QMutableEventPoint::setScenePosition(point, scenePos); + QMutableEventPoint::setGlobalPosition(point, transformToGlobal.map(scenePos)); + QMutableEventPoint::setGlobalLastPosition(point, transformToGlobal.map(lastScenePos)); hasFiltered.clear(); if (sendFilteredMouseEvent(&hoverEvent, item, item->parentItem())) @@ -1271,8 +1271,8 @@ bool QQuickDeliveryAgentPrivate::allUpdatedPointsAccepted(const QPointerEvent *e void QQuickDeliveryAgentPrivate::localizePointerEvent(QPointerEvent *ev, const QQuickItem *dest) { for (int i = 0; i < ev->pointCount(); ++i) { - auto &point = QMutableEventPoint::from(ev->point(i)); - QMutableEventPoint::from(point).setPosition(dest->mapFromScene(point.scenePosition())); + auto &point = ev->point(i); + QMutableEventPoint::setPosition(point, dest->mapFromScene(point.scenePosition())); qCDebug(lcPtrLoc) << ev->type() << "@" << point.scenePosition() << "to" << dest << "@" << dest->mapToScene(QPointF()) << "->" << point; } @@ -1401,7 +1401,7 @@ bool QQuickDeliveryAgentPrivate::compressTouchEvent(QTouchEvent *event) } if (tpDelayed.state() == QEventPoint::State::Updated && tp.state() == QEventPoint::State::Stationary) - QMutableEventPoint::from(tpts[i]).setState(QEventPoint::State::Updated); + QMutableEventPoint::setState(tpts[i], QEventPoint::State::Updated); } // matching touch event? then give delayedTouch a merged set of touchpoints @@ -1680,10 +1680,10 @@ void QQuickDeliveryAgentPrivate::deliverPointerEvent(QPointerEvent *event) if (sceneTransform) { originalScenePositions.resize(event->pointCount()); for (int i = 0; i < event->pointCount(); ++i) { - auto &mut = QMutableEventPoint::from(event->point(i)); - originalScenePositions[i] = mut.scenePosition(); - mut.setScenePosition(sceneTransform->map(mut.scenePosition())); - qCDebug(lcPtrLoc) << q << event->type() << mut.id() << "transformed scene pos" << mut.scenePosition(); + auto &pt = event->point(i); + originalScenePositions[i] = pt.scenePosition(); + QMutableEventPoint::setScenePosition(pt, sceneTransform->map(pt.scenePosition())); + qCDebug(lcPtrLoc) << q << event->type() << pt.id() << "transformed scene pos" << pt.scenePosition(); } } else if (isSubsceneAgent) { qCDebug(lcPtrLoc) << q << event->type() << "no scene transform set"; @@ -1715,7 +1715,7 @@ void QQuickDeliveryAgentPrivate::deliverPointerEvent(QPointerEvent *event) eventsInDelivery.pop(); if (sceneTransform) { for (int i = 0; i < event->pointCount(); ++i) - QMutableEventPoint::from(event->point(i)).setScenePosition(originalScenePositions.at(i)); + QMutableEventPoint::setScenePosition(event->point(i), originalScenePositions.at(i)); } --pointerEventRecursionGuard; lastUngrabbed = nullptr; |