Commit Graph

90 Commits (fd6821740fece8650cac7494a2cffe63e2bebb9c)

Author SHA1 Message Date
Sérgio Martins 507b6b3e4b Use QList::reserve(), reduces reallocations
Change-Id: I9f218bdd65a97ad9c867b695f3ba27ab64a54d2a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-06-27 11:48:36 +00:00
Friedemann Kleint 4201d85cde QPA plugins: Use _iid macros instead of strings in Q_PLUGIN_METADATA.
This makes it easier to change the version numbers by changing
the macros in QtGui.

Task-number: QTBUG-46009
Change-Id: I94c9591ec6f7c9173a698df9e1fe8fd6a904caf4
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-05-13 12:41:09 +00:00
Laszlo Agocs 2314286883 evdevtouch: Add hotplug support
Follow the exact same structure as evdevmouse and keyboard.

We must do monitoring via device discovery just like we do for keyboards and mice.
Otherwise the usage of touchscreens that connect via USB or can be turned on/off
independently from the board becomes troublesome.

Change-Id: I2de3b519e8d617b0612e5df486e481bbc09b9c8c
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
2015-04-09 09:58:15 +00:00
Jani Heikkinen 83a5694dc2 Update copyright headers
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.

Outdated header.LGPL removed (use header.LGPL21 instead)

Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing
combination. New header.LGPL-COMM taken in the use file which were
using old header.LGPL3 (src/plugins/platforms/android/extract.cpp)

Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license
combination

Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe
Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
2015-02-11 06:49:51 +00:00
Laszlo Agocs e78ec1c48a Add libinput support
Supports relative pointer, axis, keyboard and touch events.

libinput support is only available in combination with libudev.
libxkbcommon is required to perform key mapping. For now the
default keymap is used always (selected when building xkbcommon).

[ChangeLog][QtGui] Added a plugin to get mouse, keyboard and touch events
via libinput.

Change-Id: I469d8992c0cd3e79225cefaeb931697baf86a92b
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-12-20 23:26:49 +01:00
Robin Burchell eb2014382b Long live the TuioTouch input plugin!
This is an import of the tuio2qt plugin (https://github.com/rburchell/tuio2qt),
as of sha 9b1f163ac52ea440e83f16b3906f9b55e21b87be henceforth to be developed as
a part of Qt itself.

This plugin offers touch events via QPA interfaces, using data offered over the
TUIO protocol (http://www.tuio.org).

It is useful for accepting touch input on devices which otherwise don't have
touch input (such as desktops) for the purposes of development, as well as
accepting input from some hardware which offers up touch events specifically
over the TUIO protocol.

Known "shortcomings" at this time, as documented in the README:
 * Multiple TUIO sources sending data at the same time will conflict. This will
   not cause problems, strictly speaking, but it will not work well (repeated
   touchpoint release/press events for the same IDs)
 * TCP transport is not currently supported. I don't see a need for it at this
   time, but I have left the capability in terms of port acceptance open for it
   to be made available.

Change-Id: I7178f9db13c635268db8460fbe4d4ea6be654c05
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-12-19 00:01:15 +01:00
Olivier Goffart 5180f32c5a Add Q_DECL_OVERRIDE in the src subdirectory
Done automatically with clang-modernize on linux

(But does not add Q_DECL_OVERRIDE to the function that are marked
 as inline because it a compilation error with MSVC2010)

Change-Id: I2196ee26e3e6fe20816834ecea5ea389eeab3171
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-12-03 09:57:11 +01:00
Laszlo Agocs cf046ccec0 Clean up tslib plugin
The code is now cleaned up, properly divided between platformsupport and
the actual plugin (like evdev) and categorized logging is in use.

This will allow us to use tslib as a built-in input handler in eglfs in
the future.

Change-Id: Ic87cdcfe8049bb98530e7f26ffa7a77611a8ede3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2014-10-16 13:08:06 +02:00
Matti Paaso 974c210835 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL

Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-09-24 12:26:19 +02:00
Allan Sandfeld Jensen 28fe4e3a86 Remove specific maemo/meego codepaths
We no longer support the maemo/meego platform, so we can remove the
specific code for that platform.

Change-Id: Ia7f0730eba2d96794b97b7ca4753f63a2d7bc2a8
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2014-08-06 15:48:02 +02:00
Oswald Buddenhagen 08672adb97 make cmake registration of qt plugins make use of PLUGIN_EXTENDS
instead of assigning plugins to the first module which claims the whole
type, try to assign it to a module which the plugin claims to extend.

as we are getting stricter in that go, somebody needs to claim the
'generic', 'platformthemes', and 'platforminputcontexts' plugin types.
the natural claimant is QtGui. however, as we don't want to auto-link
any of these plugins, make them all claim that they extend a
non-existing module.
QtGui also claims 'iconengines' plugins.
the 'printsupport' plugins are also claimed by the respective module.

Change-Id: I7af7c16089f137b8d4a4ed93d1577bd85815c87b
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-09 20:53:06 +02:00
Laszlo Agocs f65a0b6e3f Update evdevtouch readme
Removed/updated some out of date information.

Change-Id: Iec2105f15c83f04dafbed15a9600e3de0e03f0de
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-03-25 12:45:08 +01:00
Rolf Eike Beer 9ba7cc07db Tslib plugin: also apply missing release coordinate code to non-raw mode
Even if the normal mode is used the release events may have zero coordinates.

Change-Id: I2eac8cf50dfcf9e62d8cec2423419a6579266849
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-06 17:22:55 +01:00
Samuel Gaist be51772d02 Cleanup TSLib plugin
This patch cleans up the coding style and includes

Change-Id: I710d4a60795e9975d4f8ee79599018e05d85debe
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-02-11 16:03:02 +01:00
Robin Burchell 5923196bc3 mtdev: Change to use configure detection instead of requiring source hacking.
This coincidentally fixes a case of accidental BIC in qevdevtouch_p.h, where not
all users would necessarily define USE_MTDEV: having it centralized inside Qt
makes this now, blessedly, impossible.

Change-Id: I196a8f21742830705759aa917a823afdc94ba2b5
Done-with: Michael Brasser <michael.brasser@jollamobile.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-12-30 16:51:23 +01:00
Daniel Giurcanu dbf3c559da tslib: Derive default device value from TSLIB_TSDEVICE environment variable
Most devices that use tslib have the device path defined by
the TSLIB_TSDEVICE env. variable.

Change-Id: I89fc17cb2c7fba7741de2fd348aacd608cb21a2a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-12-18 21:57:44 +01:00
Frederik Gladhorn 521f2163b1 Fix typos
Change-Id: I27cbcd8c59bdc34493931f341341cc25b4aba9e7
Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-08-06 11:08:49 +02:00
Jorgen Lind 03285044a0 Add how to create a udev rule for the evdev plugins
Change-Id: Icd7a192701958673fe216f40ddab710f5f63a8b8
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-08-02 21:00:23 +02:00
Robin Burchell 6060716066 Correct location of mtdev define.
evdevtouch moved to platform support, so the location in the plugin is now wrong
(as was the file name)

Change-Id: I976f5d7ee68f5da5ed1f61773b3d5da683e12c6f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-03 00:37:48 +02:00
Michael Brasser bb4e2e4faf Allow tslib to be specified at configure time.
Change-Id: I0ebf0eeea7e6a0b8136fb805f34f04082bc58c5e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-26 21:44:15 +01:00
Sergio Ahumada 07e3bcdc10 Remove QT_{BEGIN,END}_HEADER macro usage
The macro was made empty in ba3dc5f3b5
and is no longer necessary or used.

Discussed-on: http://lists.qt-project.org/pipermail/development/2013-January/009284.html
Change-Id: Id2bb2e2cabde059305d4af5f12593344ba30f001
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-01-29 01:06:04 +01:00
Sergio Ahumada 48e0c4df23 Update copyright year in Digia's license headers
Change-Id: Ic804938fc352291d011800d21e549c10acac66fb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-01-18 09:07:35 +01:00
Miikka Heikkinen c9d40ef2c1 Add PLUGIN_CLASS_NAME to qtbase plugins
Needed for automating static plugin loading.

Task-number: QTBUG-28131
Change-Id: Icd993c0fc8335f29aeec30e853a408d888069399
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-10 15:32:33 +01:00
Oswald Buddenhagen 8c39b4c05f beef up qt_plugin.prf
it now defines the DESTDIR and creates an INSTALLS rule.

Change-Id: I15a462ccad9acbe3521c352fa98327825dc27c05
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-01 20:17:57 +01:00
Simon Hausmann 9362474805 Fix initial window orientation with Qt on MeeGo 1.2 Harmattan
The window orientation changes are handled through a generic QPA plugin and
sends an initial window orientation change event on startup for the initial
orientation and subsequent updates when the device orientation changes.

Unfortunately the plugin was never loaded after the introduction of the new
plugin loading mechanism, because the factory key ("MeeGoIntegration") was
not provided to the plugin registry.

Change-Id: Ib7324561993abfbac1dccb0839aab0a8e870d231
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
2012-09-26 19:54:34 +02:00
Iikka Eklund be15856f61 Change copyrights from Nokia to Digia
Change copyrights and license headers from Nokia to Digia

Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2012-09-22 19:20:11 +02:00
Laszlo Papp 83b1ed1ea8 Make maemo scope syntax in project files more generic
It is necessary to use the n9 device file for now in scratchbox or/and on the
community open build service because the maemo platform mkspecs file assumes
that a cross-toolchain is used all the time. If no platform file is used, then
for instance certain plugins may not be built in general. There is currently an
ongoing issue with the meego plugin for context management in the Harmattan
components project. That is currently not built due to this issue, so no
orientation works in those applications.

The nice solution would be to make the maemo platform file work with cross and
native toolchains as well, but that requires a decent amount of investigation
and work. Thereby, the scope is extended this way for now.

Change-Id: I172c7d152bdbb2db279526d9fd1ca5648d0cd0a9
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-09-14 19:07:15 +02:00
Paul Olav Tvete 3d0af143ca Revert "Move QWindowSystemInterface out of qpa."
This reverts commit 784a877d3c.

Conflicts:

	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/testlib/qtestkeyboard.h
	src/testlib/qtestmouse.h
	src/testlib/qtesttouch.h

Change-Id: Iebfed179b3eb7f30e4c95edcae5a8ad6fd50330e
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-03 00:38:09 +02:00
Stephen Kelly 784a877d3c Move QWindowSystemInterface out of qpa.
Public QtTest headers require it, so all unit tests would have to use private Qt
headers otherwise, which is not practical.

Change-Id: I5d4466ec30b6a57ebdfc34413e716e657eb51368
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-19 15:28:18 +02:00
Marc Mutz 279893cd5f meego: normalize signals/slots
This is the result of running util/normalize --modify
from Qt 4.7  with manual review.

Change-Id: I9dcff4e0982be616313e9f162203a21b447df64b
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-13 04:17:37 +02:00
Girish Ramakrishnan 3517949390 Make QGenericPlugin and QGenericPluginFactory public API
These classes are not specific to QPA.

Discussed in QtCS 2012.

Change-Id: I32bc5fad4f0fa5e7095af86d61966fdf4d9e4ad7
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-04 14:40:20 +02:00
Girish Ramakrishnan 122741c671 Suppress QWindowSystemInterface inclusion warnings.
Since QWindowSystemInterface is now part of QPA API. The correct
inclusion is:
    #include <qpa/qwindowsysteminterface.h>
    #include <qpa/qwindowsysteminterface_p.h>

Bulk of the work was done by:
    find . -type f | xargs sed -i -e 's,#include <\(QtGui/\)\?QWindowSystemInterface>,#include <qpa/qwindowsysteminterface.h>,g'

Change-Id: If75fc32611e72ef1cf58505794def375b1acf74a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-03 14:24:20 +02:00
Lars Knoll 72cd356200 Use the new plugin system
Convert the last remaining three plugins over from
the old plugin system.

Change-Id: I355e6bb068ec4afb58a2ee9542f86e2913b3851d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-25 00:19:15 +02:00
Girish Ramakrishnan 17d35cfdca Add gui-private to generic plugins
QWindowSystemInterface will shortly be marked as QPA API.

Change-Id: I0b7cb1a75e3a4f0fc4627329edd3bfd21583a0a6
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-06-22 15:42:44 +02:00
Lars Knoll d173da37ee Remove QFactoryInterface from the generic plugins
Change-Id: I5a4351ca4b6605f9628496701bb8c6063cf36c78
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:09 +02:00
Laszlo Agocs bc3cfebc66 evdevtablet plugin
Change-Id: Ie8fbaac929180e6d4c626253c4c20d1b3a9083f5
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-04 22:29:10 +02:00
Laszlo Agocs b6535f65e1 Fix touchpads with evdevmouse
evdevmouse only worked properly with real mice, the ABS event handling
was somewhat broken, it wasn't possible to properly move a mouse cursor
with a touchpad due to unwanted jumps. The button handling is also
corrected.

Change-Id: Id04ef65d867a75bcfc54240d192a78224a4481d6
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-06-04 09:26:09 +02:00
Laszlo Agocs bb4e8e37d2 Add QEvdev prefix in evdevtouch and update readme
Now that the code is in platformsupport we need to avoid too generic
names so rename the classes a bit.

Change-Id: I7241aa1a3449be772de369ebd08df01e886dbfa3
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-01 15:24:30 +02:00
Laszlo Agocs 22ef98c0b1 Migrate tslib to new plugin format
Also rename the binary and avoid crashes when tslib initialization
fails.

Change-Id: Ia7ccf7c997e1b1484bd475626ca16c9a9642466e
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-01 03:15:52 +02:00
Girish Ramakrishnan 3aac6768f8 Move evdev to platformsupport
Also wraps various string literals with QLatin1String.

Change-Id: Ia0681bfae00006d9e9ad51f05d0e0d0f45cf2cec
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
2012-06-01 01:21:24 +02:00
Laszlo Agocs 115f45ff41 Prevent evdevkeyboard file opening from failing
On many systems the device nodes will not be writable normally. There
is no reason to open for writing in any case. Also switched back to
non-blocking I/O.

Change-Id: I9290e6b1ce7e3bc6cb0e75069b3968f647ffbeee
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-31 17:49:50 +02:00
Girish Ramakrishnan 56cfd5d83f Add QObject parent parameter to constructors
Also drop the explicit keyword in constructors with multiple
args since it has no effect on multi-arg constructors.

Change-Id: I48af6ede6cc968c52720c6107cadf3aa4dbfc7f7
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-05-31 17:49:39 +02:00
Johannes Zellner e6a4d6054d evdev: Cleanup mouse and keyboard plugins
Remove fallback event0 device usage. All available devices should be
detected automatically from DeviceDiscovery either through udev or the
static fallback discovery method. This also removes the never used 'key'
argument, which was pulled over from Qt4.

Change-Id: Iffe8bd80f0770664024019a220cbbc6f98843340
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-30 04:25:48 +02:00
Johannes Zellner ce5c1db2d3 udev: UDevHelper becomes DeviceDiscovery
Rename QUDeviceHelper to QDeviceDiscovery and add a static device
discovery fallback in case we dont have udev. The fallback so far only
scans /dev/input/event* and /dev/dri/card* at startup and detects device
nodes only by device path.

Change-Id: I7a423910b30ae16a10d8f1f47b86c6b4d2c2ec36
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
2012-05-24 07:15:02 +02:00
Johannes Zellner 39c5bad574 input: Synchronize multiple mice handled through evdevmouse plugin
EvdevMouseManager now receives relative pointer coordinates from each
connected mouse and is then responsible for clamping and forwarding them
to the QWindowSystemInterface. This avoids jumping cursors when multiple
pointer devices are connected. This does not change behavior together
with devices handled through the evdevtouch plugin.

Change-Id: I7feb358f68c3b3ebd138116224b4747c88c6761f
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-21 16:02:06 +02:00
Johannes Zellner 278e9cb65d Input: evdevmouse plugin cleanup
Remove unused code and variables from the evdevmouse plugin.

Change-Id: Id7881bc726b5ffb2fa452e4d4dd082fe70f7ed28
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-21 03:10:49 +02:00
Johannes Zellner 7a304015bd input: Use UDev or specific device paths
Keyboard,mouse and touch plugins using evdev now either
use udev for device discovery or the plugin arguments
for fixed device paths.

Change-Id: I72606ad48c15c55a49724a82f7bc285dd3984c43
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-15 20:44:36 +02:00
Thiago Macieira 61a3615c46 QGuiApplication::activeWindow() is deprecated
Change-Id: Id66740eb42fdaa86807222fbebc148de9434fa6e
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-05-11 19:41:25 +02:00
Friedemann Kleint 39b4e528e1 Fix warnings in evdevkeyboard-plugin.
- Fix warning about set-but-unused variable in case QT_NO_LIBUDEV.
- Compile with QT_NO_CAST_FROM_ASCII, string usages.

Change-Id: Ie98f1b4283919be878f8bbfc6e7378ad655152f8
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-05-10 17:08:46 +02:00
Laszlo Agocs 52bc65dc8a Enable float coords in evdevtouch
There is no reason to truncate the touch position.

Change-Id: I2bdcd43d3bb06a664e909d92704a701ece603847
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-09 17:51:18 +02:00