summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/input/shared
Commit message (Collapse)AuthorAgeFilesLines
* Replace qgetenv() calls converted to QString with qEnvironmentVariable()Thiago Macieira2025-01-011-4/+4
| | | | | | | | It's slightly more efficient. Pick-to: 6.9 Change-Id: Id5ac04fc27eee108c8e5fffd786c3d5f793a0a9d Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* Extract QEvdevTouchFilter to shared classesMichał Łoś2024-10-301-0/+143
| | | | | | | | | | | | | | `QEvdevTouchFilter` is not specific to evdev, but we will need it in a separate plugin. Extract this class to header in input/shared, rename it to `QTouchFilter` and add header guards. This is a preparatory change to introduce VxWorks-specific touch handler. Task-number: QTBUG-115777 Change-Id: Ia39844fe91f0d6e9f85a39f37be39b6ecdf9cda9 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Karim Pinter <karim.pinter@qt.io>
* Enable device discovery using VxWorks evdevMichał Łoś2024-10-301-0/+4
| | | | | | | | | | | | | | Provide VxWorks-specific implementation of keyboard and mouse device discovery, and enable usage of VxWorks evdev implementation on this platform. Note that currently code requires using VxWorks compatible mode of input devices in VxWorks, optimized mode is not supported. Task-number: QTBUG-115777 Change-Id: Ibd18c416f1c870ec02820c1001e5d129e4485dab Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Karim Pinter <karim.pinter@qt.io>
* Extract QEvdevKeyboardMap to shared headerMichał Łoś2024-10-181-0/+112
| | | | | | | | | | | We need `QEvdevKeyboardMap` in to-be-created plugin. Extract it to separate header in shared. This is a preparatory change. Task-number: QTBUG-115777 Change-Id: I0d646eb2f357e1f1a49be357d145eb3224987441 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Extract QKeycodeAction from QEvdevKeyboardMichał Łoś2024-10-181-0/+43
| | | | | | | | | | | | We will need this enum in newly created plugin, extract it to shared. In order to prevent exposing enum fields to Qt namespace, change `enum` to `enum class`, adjust code accordingly. This is a preparatory change. Task-number: QTBUG-115777 Change-Id: I8ea804b78dc7eb93d871f46c8fd9a2f3e83455fa Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Extract QFdContainer from QEvdevKeyboardHandlerMichał Łoś2024-10-152-0/+57
| | | | | | | | | | | | Extract `QFdContainer` class from `QEvdevKeyboardHandler` header, as it will be used by other handlers. This is a preparatory change. Task-number: QTBUG-115777 Change-Id: Ia0a9fd905de44464322eb2e314b7e29774cece67 Reviewed-by: Karim Pinter <karim.pinter@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-111-1/+1
| | | | | | | | | | | | | | | | We've been requiring C++17 since Qt 6.0, and our qAsConst use finally starts to bother us (QTBUG-99313), so time to port away from it now. Since qAsConst has exactly the same semantics as std::as_const (down to rvalue treatment, constexpr'ness and noexcept'ness), there's really nothing more to it than a global search-and-replace, with manual unstaging of the actual definition and documentation in dist/, src/corelib/doc/ and src/corelib/global/. Task-number: QTBUG-99313 Change-Id: I4c7114444a325ad4e62d0fcbfd347d2bbfb21541 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-165-190/+10
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Platformsupport: use _L1 for for creating Latin-1 string literalsSona Kurazyan2022-04-262-2/+6
| | | | | | | Task-number: QTBUG-98434 Change-Id: I4fa7ca58b4a298e81d35f19b439ed7702bd9700d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Platformsupport: stop using QLatin1Char() for creating char literalsSona Kurazyan2022-04-261-2/+2
| | | | | | | | Required for porting away from QLatin1Char/QLatin1String in scope of QTBUG-98434. Change-Id: I58e00618fc8c82fad8d35a66c1d46e459bfc9de6 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Make sure all qtbase private headers include at least one otherThiago Macieira2022-02-243-0/+3
| | | | | | | | | | See script in qtbase/util/includeprivate for the rules. Since these files are being touched anyway, I also ran the updatecopyright.pl script too. Change-Id: Ib056b47dde3341ef9a52ffff13ef677e471674b6 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Remove the qmake project filesJoerg Bornemann2021-01-071-8/+0
| | | | | | | | | | | | | | | | Remove the qmake project files for most of Qt. Leave the qmake project files for examples, because we still test those in the CI to ensure qmake does not regress. Also leave the qmake project files for utils and other minor parts that lack CMake project files. Task-number: QTBUG-88742 Change-Id: I6cdf059e6204816f617f9624f3ea9822703f73cc Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* webOS: Support mapping evdev keyboard and touchscreen to specific windowElvis Lee2020-10-273-13/+68
| | | | | | | | | | | | | | | | | | | | | | First we refactor QTouchOutputMapping into a QOutputMapping base class and a QDefaultOutputMapping subclass, because it will be used to map more kinds of devices, not only touchscreens. On WebOS, the plan is to have a custom subclass that overrides an additional windowForDeviceNode() virtual function, so that events from specific devices can be sent to specific windows. But in the future, Qt may have a more generic mechanism for mapping devices to screens, and of course windows are displayed on screens; so this direct device->window mapping is likely to be temporary. In the QT_QPA_EGLFS_KMS_CONFIG JSON configuration, symlinked device nodes are now supported. Task-number: QTBUG-85268 Change-Id: Id1f0bb59f4a439abaec6bd35016c95de1cbdb26a Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Use QList instead of QVector in platformsupportJarek Kobus2020-07-061-2/+2
| | | | | | Task-number: QTBUG-84469 Change-Id: I8e4e6626cc840bc9c8bce014c595da9080025dd8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Port platformsupport to QStringViewLars Knoll2020-06-152-4/+4
| | | | | | Task-number: QTBUG-84319 Change-Id: I8032382904bc8481fe0a147ca38f3de9cfb1890f Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* QEvdev: Extract Method parseSpecification()Marc Mutz2019-06-133-0/+148
| | | | | | | | | | | | | | | | | | | | | | | | | All four manager classes contained roughly the same code in their ctors that parsed out devices from a colon-separated string. Extract shared code, and port the parsing to QStringRef (later to be ported to QStringView). Saves ~2.4KiB on optimized Linux GCC 9.1 AMD64 builds across all .so's that link to libQtInputSupport.a. Change-Id: I3db826ee2b422cfc02f8d49bd21985a03b6c0935 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QEvdev: Replace manual memory management with unique_ptrMarc Mutz2019-06-122-0/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | Make create() return, and m_mice/m_keyboards/etc store, handlers by unique_ptr. In most cases, we can't use qt_make_unique(), since the ctor we're calling is marked as private. Since QHash can't hold move-only types, use a std::vector<{QString, unique_ptr}> instead. As this pattern repeats in all four QEvdev*Manager classes, create a small class template. Saves almost 6KiB on optimized Linux AMD64 GCC 9.1 builds across all .so's that link to QtInputSupport.a. Change-Id: I8f62b6b629d6e1855314c0a4fb4fc069db9ae0ce Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* eglfs: Add missing virtual layout setting for DRM/KMSLaszlo Agocs2016-09-222-8/+8
| | | | | | | | | | | | | Just setting virtualDesktopLayout and virtualIndex are not always enough. To create more complex shapes (e.g. a T-shaped cluster) the top-left position has to be specified explicitly. Enable this via an optional virtualPos property. This also involves improving evdevtouch's mapping functionality. Instead of fragile indices, rely on the screen name instead. Change-Id: I138840779032ad9da674bfef7763adfdfc74ccd4 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* evdevtouch: Enable touch in multi-screen eglfs environmentsLaszlo Agocs2016-08-113-0/+167
Parse the touchDevice property from the KMS/DRM config file. When all outputs have an explicitly specified index in the virtual desktop, we can set up a mapping between the device node and the screen index. It is somewhat fragile (device nodes may change, requires explicit virtualIndex properties for all outputs, etc.) but better than nothing. For example, having the screen on DisplayPort as primary and the touchscreen on HDMI as the secondary screen breaks by default because touching the second screen generates touch (and synthesized mouse) events for the first screen. Assuming the touchscreen is /dev/input/event5, the issue can now be fixed by setting QT_QPA_EGLFS_KMS_CONFIG with a configuration like the following: { "device": "drm-nvdc", "outputs": [ { "name": "HDMI1", "touchDevice": "/dev/input/event5", "virtualIndex": 1 }, { "name": "DP1", "virtualIndex": 0 } ] } Task-number: QTBUG-54151 Change-Id: If97fa18a65599ccfe64ce408ea43086ec3863682 Reviewed-by: Andy Nichols <andy.nichols@qt.io>