Port examples away from deprecated QTouchEvent APIs
Use the QEventPoints API instead. Change-Id: I7310fd34df110cad508f6188a41ad452a3cf848d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This commit is contained in:
parent
7709463b55
commit
6a4aa096e9
@ -622,11 +622,11 @@ bool PathStrokeRenderer::event(QEvent *e)
|
||||
case QEvent::TouchUpdate:
|
||||
{
|
||||
const QTouchEvent *const event = static_cast<const QTouchEvent*>(e);
|
||||
const QList<QTouchEvent::TouchPoint> points = event->touchPoints();
|
||||
for (const QTouchEvent::TouchPoint &touchPoint : points) {
|
||||
const int id = touchPoint.id();
|
||||
switch (touchPoint.state()) {
|
||||
case Qt::TouchPointPressed:
|
||||
const auto points = event->points();
|
||||
for (const auto &point : points) {
|
||||
const int id = point.id();
|
||||
switch (point.state()) {
|
||||
case QEventPoint::Pressed:
|
||||
{
|
||||
// find the point, move it
|
||||
const auto mappedPoints = m_fingerPointMapping.values();
|
||||
@ -638,32 +638,32 @@ bool PathStrokeRenderer::event(QEvent *e)
|
||||
if (activePoints.contains(i))
|
||||
continue;
|
||||
|
||||
qreal d = QLineF(touchPoint.position(), m_points.at(i)).length();
|
||||
qreal d = QLineF(point.position(), m_points.at(i)).length();
|
||||
if ((distance < 0 && d < 12 * m_pointSize) || d < distance) {
|
||||
distance = d;
|
||||
activePoint = i;
|
||||
}
|
||||
}
|
||||
if (activePoint != -1) {
|
||||
m_fingerPointMapping.insert(touchPoint.id(), activePoint);
|
||||
m_points[activePoint] = touchPoint.position();
|
||||
m_fingerPointMapping.insert(point.id(), activePoint);
|
||||
m_points[activePoint] = point.position();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Qt::TouchPointReleased:
|
||||
case QEventPoint::Released:
|
||||
{
|
||||
// move the point and release
|
||||
QHash<int,int>::iterator it = m_fingerPointMapping.find(id);
|
||||
m_points[it.value()] = touchPoint.position();
|
||||
m_points[it.value()] = point.position();
|
||||
m_fingerPointMapping.erase(it);
|
||||
break;
|
||||
}
|
||||
case Qt::TouchPointMoved:
|
||||
case QEventPoint::Updated:
|
||||
{
|
||||
// move the point
|
||||
const int pointIdx = m_fingerPointMapping.value(id, -1);
|
||||
if (pointIdx >= 0)
|
||||
m_points[pointIdx] = touchPoint.position();
|
||||
m_points[pointIdx] = point.position();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
@ -176,12 +176,12 @@ bool HoverPoints::eventFilter(QObject *object, QEvent *event)
|
||||
case QEvent::TouchUpdate:
|
||||
{
|
||||
const QTouchEvent *const touchEvent = static_cast<const QTouchEvent*>(event);
|
||||
const QList<QTouchEvent::TouchPoint> points = touchEvent->touchPoints();
|
||||
const auto points = touchEvent->points();
|
||||
const qreal pointSize = qMax(m_pointSize.width(), m_pointSize.height());
|
||||
for (const QTouchEvent::TouchPoint &touchPoint : points) {
|
||||
const int id = touchPoint.id();
|
||||
switch (touchPoint.state()) {
|
||||
case Qt::TouchPointPressed:
|
||||
for (const auto &point : points) {
|
||||
const int id = point.id();
|
||||
switch (point.state()) {
|
||||
case QEventPoint::Pressed:
|
||||
{
|
||||
// find the point, move it
|
||||
const auto mappedPoints = m_fingerPointMapping.values();
|
||||
@ -197,7 +197,7 @@ bool HoverPoints::eventFilter(QObject *object, QEvent *event)
|
||||
if (activePoints.contains(i))
|
||||
continue;
|
||||
|
||||
qreal d = QLineF(touchPoint.position(), m_points.at(i)).length();
|
||||
qreal d = QLineF(point.position(), m_points.at(i)).length();
|
||||
if ((distance < 0 && d < 12 * pointSize) || d < distance) {
|
||||
distance = d;
|
||||
activePoint = i;
|
||||
@ -206,25 +206,25 @@ bool HoverPoints::eventFilter(QObject *object, QEvent *event)
|
||||
}
|
||||
}
|
||||
if (activePoint != -1) {
|
||||
m_fingerPointMapping.insert(touchPoint.id(), activePoint);
|
||||
movePoint(activePoint, touchPoint.position());
|
||||
m_fingerPointMapping.insert(point.id(), activePoint);
|
||||
movePoint(activePoint, point.position());
|
||||
}
|
||||
}
|
||||
break;
|
||||
case Qt::TouchPointReleased:
|
||||
case QEventPoint::Released:
|
||||
{
|
||||
// move the point and release
|
||||
QHash<int,int>::iterator it = m_fingerPointMapping.find(id);
|
||||
movePoint(it.value(), touchPoint.position());
|
||||
movePoint(it.value(), point.position());
|
||||
m_fingerPointMapping.erase(it);
|
||||
}
|
||||
break;
|
||||
case Qt::TouchPointMoved:
|
||||
case QEventPoint::Updated:
|
||||
{
|
||||
// move the point
|
||||
const int pointIdx = m_fingerPointMapping.value(id, -1);
|
||||
if (pointIdx >= 0) // do we track this point?
|
||||
movePoint(pointIdx, touchPoint.position());
|
||||
movePoint(pointIdx, point.position());
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -196,11 +196,11 @@ bool ScribbleArea::event(QEvent *event)
|
||||
case QEvent::TouchEnd:
|
||||
{
|
||||
const QTouchEvent *touch = static_cast<QTouchEvent *>(event);
|
||||
const QList<QTouchEvent::TouchPoint> touchPoints = static_cast<QTouchEvent *>(event)->touchPoints();
|
||||
const auto touchPoints = static_cast<QTouchEvent *>(event)->points();
|
||||
for (const QTouchEvent::TouchPoint &touchPoint : touchPoints) {
|
||||
switch (touchPoint.state()) {
|
||||
case Qt::TouchPointStationary:
|
||||
case Qt::TouchPointReleased:
|
||||
case QEventPoint::Stationary:
|
||||
case QEventPoint::Released:
|
||||
// don't do anything if this touch point hasn't moved or has been released
|
||||
continue;
|
||||
default:
|
||||
|
@ -77,11 +77,11 @@ bool Knob::sceneEvent(QEvent *event)
|
||||
{
|
||||
QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event);
|
||||
|
||||
if (touchEvent->touchPoints().count() == 2) {
|
||||
const QTouchEvent::TouchPoint &touchPoint1 = touchEvent->touchPoints().first();
|
||||
const QTouchEvent::TouchPoint &touchPoint2 = touchEvent->touchPoints().last();
|
||||
if (touchEvent->points().count() == 2) {
|
||||
const QEventPoint &touchPoint1 = touchEvent->points().first();
|
||||
const QEventPoint &touchPoint2 = touchEvent->points().last();
|
||||
|
||||
QLineF line1(touchPoint1.lastScenePos(), touchPoint2.lastScenePos());
|
||||
QLineF line1(touchPoint1.sceneLastPosition(), touchPoint2.sceneLastPosition());
|
||||
QLineF line2(touchPoint1.scenePosition(), touchPoint2.scenePosition());
|
||||
|
||||
setTransform(QTransform().rotate(line2.angleTo(line1)), true);
|
||||
|
@ -68,15 +68,15 @@ bool GraphicsView::viewportEvent(QEvent *event)
|
||||
case QEvent::TouchEnd:
|
||||
{
|
||||
QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event);
|
||||
QList<QTouchEvent::TouchPoint> touchPoints = touchEvent->touchPoints();
|
||||
const auto touchPoints = touchEvent->points();
|
||||
if (touchPoints.count() == 2) {
|
||||
// determine scale factor
|
||||
const QTouchEvent::TouchPoint &touchPoint0 = touchPoints.first();
|
||||
const QTouchEvent::TouchPoint &touchPoint1 = touchPoints.last();
|
||||
const QEventPoint &touchPoint0 = touchPoints.first();
|
||||
const QEventPoint &touchPoint1 = touchPoints.last();
|
||||
qreal currentScaleFactor =
|
||||
QLineF(touchPoint0.position(), touchPoint1.position()).length()
|
||||
/ QLineF(touchPoint0.pressPosition(), touchPoint1.pressPosition()).length();
|
||||
if (touchEvent->touchPointStates() & Qt::TouchPointReleased) {
|
||||
if (touchEvent->touchPointStates() & QEventPoint::Released) {
|
||||
// if one of the fingers is released, remember the current scale
|
||||
// factor so that adding another finger later will continue zooming
|
||||
// by adding new scale factor to the existing remembered value.
|
||||
|
Loading…
x
Reference in New Issue
Block a user