aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2022-01-06 17:36:51 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-01-16 13:08:29 +0000
commit36009c8eece8b016601c01f5654b00f6430f1b7e (patch)
tree154495752899b5635e55fab2cafdafdbeeaf8230 /src
parentcc5f6a7e3a5e3f41e5f8db66c51afd900cd8646b (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.cpp11
-rw-r--r--src/quick/items/qquickitem.cpp7
-rw-r--r--src/quick/items/qquickpathview.cpp2
-rw-r--r--src/quick/util/qquickdeliveryagent.cpp36
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;