summaryrefslogtreecommitdiffstats
path: root/src/plugins/generic
Commit message (Collapse)AuthorAgeFilesLines
* Use the new plugin systemLars Knoll2012-06-251-2/+1
| | | | | | | | Convert the last remaining three plugins over from the old plugin system. Change-Id: I355e6bb068ec4afb58a2ee9542f86e2913b3851d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add gui-private to generic pluginsGirish Ramakrishnan2012-06-226-5/+7
| | | | | | | QWindowSystemInterface will shortly be marked as QPA API. Change-Id: I0b7cb1a75e3a4f0fc4627329edd3bfd21583a0a6 Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
* Remove QFactoryInterface from the generic pluginsLars Knoll2012-06-085-33/+0
| | | | | Change-Id: I5a4351ca4b6605f9628496701bb8c6063cf36c78 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* evdevtablet pluginLaszlo Agocs2012-06-045-1/+140
| | | | | | Change-Id: Ie8fbaac929180e6d4c626253c4c20d1b3a9083f5 Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Fix touchpads with evdevmouseLaszlo Agocs2012-06-041-1/+4
| | | | | | | | | | 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>
* Add QEvdev prefix in evdevtouch and update readmeLaszlo Agocs2012-06-012-14/+19
| | | | | | | | 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>
* Migrate tslib to new plugin formatLaszlo Agocs2012-06-014-6/+17
| | | | | | | | Also rename the binary and avoid crashes when tslib initialization fails. Change-Id: Ia7ccf7c997e1b1484bd475626ca16c9a9642466e Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Move evdev to platformsupportGirish Ramakrishnan2012-06-0117-2902/+6
| | | | | | | | 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>
* Prevent evdevkeyboard file opening from failingLaszlo Agocs2012-05-311-1/+1
| | | | | | | | | 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>
* Add QObject parent parameter to constructorsGirish Ramakrishnan2012-05-316-8/+9
| | | | | | | | 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>
* evdev: Cleanup mouse and keyboard pluginsJohannes Zellner2012-05-306-47/+20
| | | | | | | | | | 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>
* udev: UDevHelper becomes DeviceDiscoveryJohannes Zellner2012-05-245-56/+24
| | | | | | | | | | | 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>
* input: Synchronize multiple mice handled through evdevmouse pluginJohannes Zellner2012-05-214-32/+54
| | | | | | | | | | | 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>
* Input: evdevmouse plugin cleanupJohannes Zellner2012-05-212-22/+13
| | | | | | | Remove unused code and variables from the evdevmouse plugin. Change-Id: Id7881bc726b5ffb2fa452e4d4dd082fe70f7ed28 Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* input: Use UDev or specific device pathsJohannes Zellner2012-05-153-19/+23
| | | | | | | | | 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>
* QGuiApplication::activeWindow() is deprecatedThiago Macieira2012-05-111-1/+1
| | | | | Change-Id: Id66740eb42fdaa86807222fbebc148de9434fa6e Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
* Fix warnings in evdevkeyboard-plugin.Friedemann Kleint2012-05-103-8/+9
| | | | | | | | - 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>
* Enable float coords in evdevtouchLaszlo Agocs2012-05-091-4/+4
| | | | | | | | 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>
* Initialize membersLars Knoll2012-05-011-1/+2
| | | | | Change-Id: I786de497af63a45d9c38780e856a3f27c5ce8468 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Made the evdev mouse plugin clamp coordinates to screen.Samuel Rødal2012-04-162-4/+23
| | | | | | | | Useful when we get relative events, as otherwise the mouse might end up far outside the screen boundaries. Change-Id: I8e3884ab2acb03eaa6afce8926f503dbd03b0c5d Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Fixed broken logic in evdev input plugins.Samuel Rødal2012-04-153-29/+41
| | | | | | | | | If we do multiple reads we need to accumulate the total amount of bytes read, instead of just taking the last read amount into account. Change-Id: Iaa9b90c269f3ed9d09dae67452ca816d9db6217f Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Fix compiler warning in evdevmouse plugin.Friedemann Kleint2012-04-131-1/+3
| | | | | Change-Id: I3b203b485079ff2cc96044789b06525ab2cde448 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Remove input plugins hard libudev dependencyBhooshan Supe2012-04-1210-7/+34
| | | | | | | | | | libudev extends the base functionality of these plugins but should not be mandatory as it is missing on many embedded devices that still actually require input devices (keyboard and/or mouse and/or touchscreen) support Change-Id: Ieeb949f1af5e774578f689a63f47a8c48f546ac1 Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* remove obsolete qudevhelper and adopt mouse and touch pluginsJohannes Zellner2012-03-149-50/+299
| | | | | | | | | | | | The QUDevHelper class is now replaced by QUDeviceHelper class. All evdev input plugins are using the new udev helper now to enable hotplugin for keyboard and mouse input. EvdevTouch plugin still only uses the first detected device by udev, this cannot be tested on my side, due to the lack of multiple touch input devices. Change-Id: I01a4cfe1a80000bfb27c67a2f53faf560906b73c Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
* Query udev build parameters from pkg-configDonald Carr2012-03-073-2/+6
| | | | | | | | Change-Id: Ia3b7329d7359684ee7bf572a7e5fb681105108f4 Reviewed-by: Donald Carr <donald.carr@nokia.com> Reviewed-by: Holger Freyther <holger+qt@freyther.de> Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Fix the bit test for ABS_MT_SLOT to detect protocol BShawn Rutledge2012-03-071-1/+1
| | | | | | | | | I tested, it didn't work. This is from a previous patch I had already gotten working before 40a5ba4d3fccb449dcfd8d9a0deaf4c7f0fe12bc was submitted. Change-Id: I868f069fe834b3122ed9b5b3dc9af0781d6e1d0d Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
* Support 16+4 mouse buttons within the generic/evdevmouse plugin.Rick Stockton2012-03-021-4/+19
| | | | | | | | | | | | The Kernel's evdev module is capable of presenting up to 16 mouse buttons, plus wheel events (UP, DOWN, LEFT, and RIGHT). This patch updates our Plugin, so that it tranlates all of those button numbers into corresponding MouseEvent Qt::MouseButton values. Task-number: QTBUG-24590 Change-Id: Ib8cbb9500280c76f06a51ce95095e22ae84de1c6 Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
* Add protocol type B support to the evdevtouch pluginLaszlo Agocs2012-03-024-11/+102
| | | | | | | | | Also adds optional support for libmtdev (a helper library which translates transparently from type A to B when using type A kernel drivers). Change-Id: Ic9c065b2fd130e9db2dd07e7dc103e9d45c08c99 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Add UDev helper class for evdev pluginsJohannes Zellner2012-02-243-168/+43
| | | | | | | Adopt evdevkeyboard plugin to use new UDev helper Change-Id: Ie914c77dde9a28a8cf7f7cd972acd963c13bc698 Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
* Migrate evdev plugins to the new plugin systemLaszlo Agocs2012-02-229-6/+33
| | | | | Change-Id: I7eb283646b7529080c8c2f41c267b0135c8f57e4 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fix another typo in the evdev keyboard plugin.Friedemann Kleint2012-02-171-1/+1
| | | | | | | Amend 3296b7327bd84f420df7e5561d192c0a8d0bb409 Change-Id: Ide58a6b8cbd980eda6ff91948c8f4fb45a30e527 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Fixed typo.Rohan McGovern2012-02-151-1/+1
| | | | | | | | keyboar -> keyboard Change-Id: Ia305237ac92ac5b0d5c8b0d3cc638292238cec02 Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com> Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
* Fixed compile with -qtnamespaceRohan McGovern2012-02-132-0/+6
| | | | | | | | | Add missing (unbalanced) macros. Some files had QT_BEGIN_NAMESPACE without a corresponding QT_END_NAMESPACE. Change-Id: I50226a37a3710eda80ad76320d11efee39aa1fd8 Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
* Add evdev based generic linux keyboard pluginJohannes Zellner2012-02-118-1/+1911
| | | | | | | | | | | This introduces a udev based evdev keyboard plugin. It contains a default US keyboard map to fit the QKey enumeration. Most of the udev related code was developed by ICS. Major parts of the keyboard handler itself is reused from Qt 4 codebase. Change-Id: I383d05eecfde1c8916b0007dd101bfcb66711968 Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Reorganize evdev pluginsLaszlo Agocs2012-02-0818-740/+406
| | | | | | | | | | | | | | | | | | | | | | | | | linuxinput becomes evdevmouse. The experimental touch code is removed, now the plugin's purpose is solely to generate mouse events from absolute and relative pointer events. The plugin key is EvdevMouse. touchscreen becomes evdevtouch. The plugin key is EvdevTouch. In case keyboard support appears some day, it will fit nicely in the system by the name of evdevkeyboard or similar. Some little udev code is moved to platformsupport so it can be shared between the plugins. This may be extended later if more sophisticated udev support is needed. N.B. the intention is to keep this as simple as possible. We are shipping these plug-ins as reference examples, not as full-featured drivers. evdev and udev support has configure time tests from now on. This means the "drivers" (generic plugins) will get built automatically when the support is available. Change-Id: Iaf6260b5c2edfb9f25d070d2764466725adc6b4e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-3016-16/+16
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Fix compilation of MeeGo/Maliit related code after Qt::ScreenOrientation API ↵Simon Hausmann2012-01-271-1/+1
| | | | | | | | | changes Qt::UnknownOrientation is now Qt::PrimaryOrientation. Change-Id: I2846a90bd11ecd1416c29b7bd861f180ccb129a1 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-2316-16/+16
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Support current screen orientation changes on HarmattanSimon Hausmann2012-01-177-0/+397
| | | | | | | | Subscribe to the corresponding property via DBus and report it through QWindowSystemInterface::handleScreenOrientationChanged. Change-Id: Ibd2901de798866e177aba898374ee2b9877310ed Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Update touchscreen plug-in's readmeLaszlo Agocs2012-01-131-5/+3
| | | | | | | | To match the new mouse-for-unhandled-touch-event feature in QGuiApplication. Change-Id: Ifa3872ab51a8e95bee235a3681b0a9d1ec13081c Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Do not mark any touch points as primary when no mouse event is sentLaszlo Agocs2012-01-121-4/+0
| | | | | | | | | The touchscreen plug-in generates touch events only and therefore no touch point must be marked as primary because that would mean there is also a mouse event created from that point which is not the case. Change-Id: I80c5fdbc52b048cd74c834900b6c8100963210e6 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Update year in Nokia copyright headers.Jason McDonald2012-01-108-8/+8
| | | | | | | | The previous change missed some headers from years prior to 2011, and a few new files were merged after the previous change. Change-Id: Ib7d1a2b7062228c2a5373da64242b2ee1f0981e1 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-053-3/+3
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update the touchscreen plug-in.Laszlo Agocs2011-12-195-148/+188
| | | | | | | | | | | | | | | | | | | | | | | | | Now works with bcm5974: Added manual contact tracking for drivers that do not report a tracking id and fixed abs limit querying to use ABS_MT_* instead of ABS_*. Fixed reported area: The incoming point was the top-left point instead of the center which was incorrect. Added pressure support. Tracking of event type has been removed as handleTouchEvent no longer needs it. Broken debug prints have been removed. Changed udev auto-detection to pick only /dev/input/event*. Fixed multiple released state reports with some drivers. Name and capabilities are now set properly for the QTouchDevice. Change-Id: I8f026c9a14465bfb6d567f4dcf36c5c03f843868 Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Store the primary status in the touch point flags.Laszlo Agocs2011-12-122-7/+8
| | | | | | | | | | | | | | | | | For some reason the primary bit has previously been encoded in the touch point state, even though it has nothing to do with the regular states like Pressed, Released, etc. The value is now stored in the recently introduced flags member of the touch points. This also reduces the need for error-prone internal masking of the state value. The structure used by QWindowSystemInterface::handleTouchEvent also becomes cleaner because the primary status can now be set in the flags member and the isPrimary bool can be dropped. Change-Id: I1da2cb99154afd97e1e3a5943ab115cae3a8232f Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Remove event type parameter from handleTouchEvent.Laszlo Agocs2011-12-094-6/+5
| | | | | | | | | | | Requiring platform and generic plug-ins to pass TouchBegin, TouchUpdate, or TouchEnd is unnecessary. The type can be easily deduced from the touch point states. In fact handleTouchEvent already collected the combined point states, it was just not utilized until now. Change-Id: Icf3c787fefdebc51609a763bc4286c18a0b6aac2 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Extend touch events.Laszlo Agocs2011-12-092-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The capability flags indicate which information is valid in the touch points. Previously there was no way to tell if e.g. the value returned by pressure() is actually the value provided by the driver/device or it is just something bogus due to pressure not being supported. The points' flags return information about the individual touch points. One use case is to differentiate between touches made by finger and pen. Velocity, if available, is now also exposed. Each touch point can now contain an additional list of "raw" positions. These points are not reported individually but are taken into account in some way by the underlying device and drivers to generate the final, "accurate" touch point. In case the underlying drivers expose these additional positions, they are made available in the lists returned by the touch points' rawScreenPosition(). The raw positions are only available in screen coordinates to prevent wasting time with mapping from global positions in applications that do not use this data. Instead, apps can query the QWindow to which the touch event was sent via QTouchEvent::window() and can call mapFromGlobal() manually if they need local raw positions. The capability and device type information is now held in a new QTouchDevice class. Each touch event will contain only a pointer to one of the global QTouchDevice instances. On top of type and capability, the new class also contains a name which can be used to differentiate between multiple touch input devices (i.e. to tell from which one a given QTouchEvent originates from). The introduction of QTouchDevice has three implications: The QTouchEvent constructor and QWindowSystemInterface::handleTouchEvent need to be changed (to pass a QTouchDevice pointer instead of merely a device type value), and each platform or generic plug-in is now responsible for registering one or more devices using the new API QWindowSystemInterface::registerTouchDevice. Change-Id: Ic1468d3e43933d8b5691d75aa67c43e1bc7ffe3e Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Remove mtdev dependency from the touchscreen QPA plugin.Laszlo Agocs2011-10-216-142/+145
| | | | | | | | | | There is no reason to enforce the usage of the mtdev library. As long as ABS_MT_TRACKING_ID is provided protocol type A is perfectly enough. This makes the plugin more suitable for embedded systems. Change-Id: I73ce4a1056a6dc27daacb69dc4761bca393a7e43 Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
* Calculate an area in the touchscreen qpa plugin.Laszlo Agocs2011-10-132-3/+6
| | | | | | | | | | | | Instead of ignoring the touch major/minor and returning a rectangle with width and height of 1, the size of the area is now calculated based on the major. This is incomplete and far from perfect but at least it makes visualizers, like the fingerpaint example app, work out of the box. Change-Id: I3bb70b4d7247f289e5cae4e7de2460ecf2c9d009 Reviewed-on: http://codereview.qt-project.org/6566 Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
* Migrate the touchscreen generic qpa plugin to QWindow.Laszlo Agocs2011-10-131-4/+5
| | | | | | | | | This plugin was still using QApplication and QDesktopWidget. The code is now migrated to QGuiApplication, QWindow, and QScreen. Change-Id: I22a7e15982efea16cbf560d09c8831cd82ed29d0 Reviewed-on: http://codereview.qt-project.org/6528 Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>