From f3f9b2ea8a7188e22f07fc69adc0571ef176b8f1 Mon Sep 17 00:00:00 2001 From: HIDAKA Takahiro Date: Wed, 11 Sep 2024 09:51:33 +0900 Subject: [PATCH] iOS: Replace usage of deprecated QPointerDevice APIs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace usage of QPointerDevice::setType to constructor. Fixes: QTBUG-129981 Change-Id: I757ec3cde7815363539b8cfe3fd7ae46993ce33e Reviewed-by: Tor Arne Vestbø (cherry picked from commit cc24213bdb286b200ad1c637ed244c48a2a32495) Reviewed-by: Qt Cherry-pick Bot --- src/gui/kernel/qinputdevice.h | 2 +- src/plugins/platforms/ios/qiosintegration.mm | 5 ++--- src/plugins/platforms/ios/quiview.mm | 9 ++++----- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/gui/kernel/qinputdevice.h b/src/gui/kernel/qinputdevice.h index 2b7ce32d862..b7c0eb3b6f6 100644 --- a/src/gui/kernel/qinputdevice.h +++ b/src/gui/kernel/qinputdevice.h @@ -19,7 +19,7 @@ class Q_GUI_EXPORT QInputDevice : public QObject Q_DECLARE_PRIVATE(QInputDevice) Q_PROPERTY(QString name READ name CONSTANT) Q_PROPERTY(DeviceType type READ type CONSTANT) - Q_PROPERTY(Capabilities capabilities READ capabilities CONSTANT) + Q_PROPERTY(Capabilities capabilities READ capabilities) Q_PROPERTY(qint64 systemId READ systemId CONSTANT) Q_PROPERTY(QString seatName READ seatName CONSTANT) Q_PROPERTY(QRect availableVirtualGeometry READ availableVirtualGeometry diff --git a/src/plugins/platforms/ios/qiosintegration.mm b/src/plugins/platforms/ios/qiosintegration.mm index 76173ce830a..69b79b111b3 100644 --- a/src/plugins/platforms/ios/qiosintegration.mm +++ b/src/plugins/platforms/ios/qiosintegration.mm @@ -94,14 +94,13 @@ void QIOSIntegration::initialize() // Depends on a primary screen being present m_inputContext = new QIOSInputContext; - m_touchDevice = new QPointingDevice; - m_touchDevice->setType(QInputDevice::DeviceType::TouchScreen); QPointingDevice::Capabilities touchCapabilities = QPointingDevice::Capability::Position | QPointingDevice::Capability::NormalizedPosition; #if !defined(Q_OS_VISIONOS) if (mainScreen.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) touchCapabilities |= QPointingDevice::Capability::Pressure; #endif - m_touchDevice->setCapabilities(touchCapabilities); + m_touchDevice = new QPointingDevice("touchscreen", 0, QInputDevice::DeviceType::TouchScreen, + QPointingDevice::PointerType::Finger, touchCapabilities, 10, 0); QWindowSystemInterface::registerInputDevice(m_touchDevice); #if QT_CONFIG(tabletevent) QWindowSystemInterfacePrivate::TabletEvent::setPlatformSynthesizesMouse(false); diff --git a/src/plugins/platforms/ios/quiview.mm b/src/plugins/platforms/ios/quiview.mm index 7796e93c16d..fb9cfdbe7f5 100644 --- a/src/plugins/platforms/ios/quiview.mm +++ b/src/plugins/platforms/ios/quiview.mm @@ -20,6 +20,7 @@ #include #include #include +#include #include Q_LOGGING_CATEGORY(lcQpaTablet, "qt.qpa.input.tablet") @@ -346,12 +347,10 @@ inline ulong getTimeStamp(UIEvent *event) [super traitCollectionDidChange: previousTraitCollection]; QPointingDevice *touchDevice = QIOSIntegration::instance()->touchDevice(); - QPointingDevice::Capabilities touchCapabilities = touchDevice->capabilities(); + auto *devicePriv = QPointingDevicePrivate::get(touchDevice); - touchCapabilities.setFlag(QPointingDevice::Capability::Pressure, - (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable)); - - touchDevice->setCapabilities(touchCapabilities); + devicePriv->capabilities.setFlag(QPointingDevice::Capability::Pressure, + (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable)); } -(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event