summaryrefslogtreecommitdiffstats
path: root/src/input
Commit message (Collapse)AuthorAgeFilesLines
* Unify license header usageAntti Kokko2016-01-26119-1309/+1666
| | | | | | | Update old header.LGPL3 to header.LGPL Change-Id: I8eac0cd6bbc276a56df487249cc459c0d4fab165 Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* QInputAspect: create EventSourceSetterHelper in main threadPaul Lemire2016-01-225-16/+33
| | | | | | | | | | | | Turns out that on initialize is called in the AspectThread. Since event filters objects need to be created in the same thread as the event source (the main thread), code has to be corrected. Now the eventSourceHelper is created directly by the InputHandler when it is created (as it's created in the main thread). Then onInitialize only takes care of setting the eventFilterService which isn't available before. Change-Id: I2cb18372337793230625f699a2ed51c7331af971 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QAspectEngine/QAbstractAspects: get rid of setDataPaul Lemire2016-01-222-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Getting rid of set data and the refactoring on setting the surface implies that: - Given the FrameGraph configuration, there may be several RenderViews each having a different RenderSurfaceSelector/Window - This means that the Renderer/QRenderAspect can't know about the surface before reading the scene - This means that the Renderer may be dealing with more than 1 window - This means that initialization, render and shutdown procedures will have to be updated accordingly Therefore the Renderer was refactored to: - Be initialized without knowing about a surface - For each RenderView, check the surface and if different from the previous one: * Make the context current with it * Create the appropriate glHelpers (as Surfaces may have != formats) TO DO: - Fix picking - Fix windows exposition - Fix shutdown / detection of all windows beging closed Change-Id: I49d070b05f46be4b26cfb57e494feba145d1da9c Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QInputSettings: add missing export and clone macrosPaul Lemire2016-01-191-1/+3
| | | | | Change-Id: I2edf49248cff1bc8087f6ea5398e11f5fd7965c4 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QInputAspect: hookup EventSourceHelper/InputSetingsPaul Lemire2016-01-196-4/+24
| | | | | Change-Id: Idab8e24f80ae2be457bbc790f6784db8e02d5a2f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QInputAspect/InputHandler: add EventSourceSetterHelper memberPaul Lemire2016-01-193-4/+29
| | | | | Change-Id: I4445f150016db8a79997ecc5324e42b024b489b8 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add EventSourceHelperSetterPaul Lemire2016-01-193-2/+169
| | | | | Change-Id: I91b76f1206fa0b6c398f0913586757c6419936b4 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QInputAspect: register backend type for QInputSettingsPaul Lemire2016-01-191-0/+4
| | | | | Change-Id: I6fae57e8d76f464be3bfcd0cc4e63b7ca5fe3e48 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* InputSettings: add creator functorPaul Lemire2016-01-192-0/+52
| | | | | | | Takes care of setting the settings on the InputHandler at most once. Change-Id: Ie674f778aec9ccd81d1a41ebbfec3cf61fb21bc4 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add InputSettings member on InputHandlerPaul Lemire2016-01-192-0/+12
| | | | | Change-Id: I33be7349d5c61554402d9373ff04547b186d2d8e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* InputSettings: backend for QInputSettings addedPaul Lemire2016-01-193-2/+156
| | | | | Change-Id: I4f8ba75e95ab479c816a9f6eca341edd45c01e3c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QInputSettings addedPaul Lemire2016-01-194-2/+224
| | | | | | | | Will be used to specify the event source for mouse/keyboard to be used by the QInputAspect as a replacement for setData Change-Id: Icd3ab33f5e2d7a198c4747683da5bc902de62221 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Aggregate action functionalityColin Ogilvie2016-01-197-18/+173
| | | | | Change-Id: Iac5e6bfd2ad67b3c1c9a794ea528204eff238d20 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAxisActionHandler: properly set parent on QLogicalDevicePaul Lemire2016-01-192-4/+7
| | | | | | | Otherwise the backend node for the logical device may not be created Change-Id: I90e8185b4e1f1cf4333d7f8b06e654e1e2b6de57 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Move QCamera/QCameraLens to Qt3DRenderPaul Lemire2016-01-167-572/+4
| | | | | | | | Also get rid of Qt3DRender::QWindow and of the hard codes camera controller. Change-Id: I307735d01caf97b7a690b28de8dc99fc9866c35f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Added link for inputs between sequential front and back endColin Ogilvie2016-01-163-4/+37
| | | | | Change-Id: I0b6a0456195d64c284a599e3bf08781e30bb723b Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Backend Nodes for Aggregate ActionsColin Ogilvie2016-01-1610-2/+405
| | | | | Change-Id: I51dbd9eaedfd8b152e3f65c0c9e16cf81e69fb02 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Added initial parameters to input sequence and inputchordColin Ogilvie2016-01-164-0/+96
| | | | | Change-Id: Ib3128b7942c896a987b04d0e9fdddff9f295da93 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Say hello to GenericDeviceBogDan Vatra2016-01-1617-28/+540
| | | | | | | | | | | | | | GenericDevice can be used to deliver events to Qt3D from any device which is not handled already by Qt3D. What the user need to do is to instantiate a GenericDevice object, set GenericDevice::axesMap and GenericDevice::buttonsMap properties, then use GenericDevice::axisEvent and GenericDevice::buttonEvent signals to deliver the events. [ChangeLog][Input] added GenericDevice Change-Id: Iaef3ff8fabf5002de41d55587ddf1352e6a3e458 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Merge branch '5.6' into devSean Harmer2016-01-156-11/+11
|\ | | | | | | | | | | | | Conflicts: examples/qt3d/qgltf/main.qml Change-Id: I03d4cc679a7812fb114461609e481d43a0bc5390
| * Make axisIdentifier & buttonIdentifier constBogDan Vatra2016-01-145-10/+10
| | | | | | | | | | Change-Id: Idedf3cab5d8a30d1a417ceb10555170b53b00d26 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * "cleanup" method needs to be virtual.BogDan Vatra2016-01-121-1/+1
| | | | | | | | | | Change-Id: I0075adf8b927a29f06be6ab883622b216cca5b44 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Don't use deprecated API for plugin loadingSean Harmer2016-01-151-2/+2
| | | | | | | | | | Change-Id: I6ea0e9cc8dc296f00a0547f71cda67a9d26443a5 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Use a more suitable name for qt3d input devices.BogDan Vatra2016-01-142-1/+2
| | | | | | | | | | | | | | Export proper MODULE_PLUGIN_TYPES Change-Id: Id1b51aafd318b1c0800cc194e006e5585d8c159d Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Added front end classes as a start to support aggregate actionsColin Ogilvie2016-01-128-2/+533
| | | | | | | | | | Change-Id: Ic852ccf3994bb8604924687165bb49cb1dec3077 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Start at implementing QAbstractAction InputColin Ogilvie2016-01-128-18/+137
|/ | | | | Change-Id: I392dd326cb0bf1b8c12b72d8554a866156d43e76 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add "We mean it" warningSean Harmer2016-01-021-0/+11
| | | | | | Change-Id: I3bcc071091e4d89090393d0b65704bef15bcc342 Reviewed-by: Mike Krus <mike.krus@kdab.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Stop using enum references that require C++11.Raphael Kubo da Costa2015-12-302-27/+27
| | | | | | | | | | | Use Qt::Foo instead of Qt::Enum::Foo, which is a C++11 extension. When building with clang without -std=c++11, this results in warnings. With older GCC versions, the code simply does not build. This is similar to commit deffdaf9 ("GraphicsHelper: fix switch"). Change-Id: I28389b90bafb3df87187742ef55267ce2df1ba1a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Allow device integration impls to see the aspectKevin Ottens2015-12-212-0/+9
| | | | | Change-Id: I257ecd56a454ba7ad969859fad94fc45a8e729c4 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Move services() and jobManager() to the pimplKevin Ottens2015-12-171-1/+1
| | | | | | | This way we avoid leaking private types through public API. Change-Id: Ifb30d7e57d8b995bba8cf9a95ae77f8d7818d79a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QInputDeviceIntegration can register backend typesKevin Ottens2015-12-173-2/+24
| | | | | | | | No need to make registerBackendType() public on QInputAspect anymore, it's properly exposed to the QInputDeviceIntegration sub classes only. Change-Id: Ica44e0d37f9e6eecb099d87b0420a7b8bbc6ab59 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Make QInputDeviceIntegration::initialize() saferKevin Ottens2015-12-175-4/+17
| | | | | | | | initialize() is now public and non virtual, only recording the aspect pointer, while doInitialize() is private and pure virtual. Change-Id: Ic68b7b729205d9ec01927e9dc576cab16f53d18e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add missing pimpl to QInputeDeviceIntegrationKevin Ottens2015-12-174-2/+91
| | | | | Change-Id: I87cc1525adf0dc0665affe3797f3be79ae1294b5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Remove useless reimplementationsKevin Ottens2015-12-162-10/+0
| | | | | Change-Id: I0b19646de41014274674c75650028980076b8349 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Only aspect subclasses register backend typesKevin Ottens2015-12-161-0/+2
| | | | | | | | Also make registerBackendType public on QInputAspect for now since its plugins will also need to register backend types. Change-Id: I7b07162d806b5644daf12f6b22161677f16da38e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Smoothly transition from deadzone by adjusting gradient of responseSean Harmer2015-12-161-2/+25
| | | | | Change-Id: Ibb76111afb7d7ae6fb14aadf2e7225895e45152e Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Implement low pass filtering of axis valuesSean Harmer2015-12-164-7/+38
| | | | | Change-Id: Ie9a7677db6c86cfd51732d0e009e5de6442ee931 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Implement dead zone supportSean Harmer2015-12-169-17/+180
| | | | | Change-Id: Icd5d31ba690484dc310de872be9df3ec9a520c63 Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* Turn all services private for nowKevin Ottens2015-12-122-3/+3
| | | | | Change-Id: I9da605c77c5489b9bef4f07079e05f8babb9559f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Rename Q3D*Event to Q*Event and handle namespaceMike Krus2015-12-1026-197/+196
| | | | | | | | Q3DMouseEvent, Q3DWheelEvent, Q3DKeyEvent Also removed unused variables and fixed some formatting Change-Id: Ie4c531f2084875fe4d8b6ac9bafd2b3c085dead4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Use lists of ints for axes on axis settingsSean Harmer2015-12-094-13/+27
| | | | | Change-Id: Ie1cc4b46f7888f4e9ecdecb0b204c30703da36ee Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Added parameters to signals and made setters Q_SLOTSTomi Korpipää2015-12-0916-51/+58
| | | | | | Change-Id: Icec2f9f207221e35ffdeeb594bb9b4dc6ef890f1 Task-number: QTBUG-49797 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add sensitivity property to QMouseControllerSean Harmer2015-12-075-4/+47
| | | | | | | | | | | | | | The sensitivity is defined as the recipricol of the number of pixels the mouse is required to move to obtain the extreme axis value (-1 or +1). That is if you set it to 0.1 you need to move the mouse 10 pixels to get an axis value of magnitude 1. If it is 0.01, 100 pixels gives an axis value of magnitude 1. The user is responsible for applying any additional transformations in a suitable handler. Change-Id: I51cd28a17d4fc0b8461ac3e49efb26b2c66081b3 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* MouseController: various fixesPaul Lemire2015-12-074-10/+26
| | | | | Change-Id: Ie6f90a8b0ffca4a20b90edebb70b41a210246d2a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* KeyboardController: fix PageUp positionPaul Lemire2015-12-071-1/+1
| | | | | Change-Id: Icc2c30ba030285da45dd8631210990b9b7a6d718 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Input: fix, event filters can't be registered with the same priorityPaul Lemire2015-12-071-2/+2
| | | | | Change-Id: I74609baa9f39bc741b67e27b0a9a74ad65fe5cca Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QMouseController: converted to QAbstractPhysicalDevicePaul Lemire2015-12-077-15/+138
| | | | | Change-Id: I532e7378fe459ec201629b3ec3f0c9a69acf691f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Input: make KeyboardController a physical devicePaul Lemire2015-12-0711-13/+910
| | | | | Change-Id: I8b3de65348006fda1156adc9b55744055eef969c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAxisInput/QActionInput: use list of int rather than int maskPaul Lemire2015-12-049-31/+53
| | | | | | | Needed to allow devices like keyboards which have more than 64 keys Change-Id: Ia837285ba9c5b7c26d3d89046d7d9f7a4cddb2ba Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAbstractPhysicalDevice: Remove axis/buttons methodsPaul Lemire2015-12-041-3/+0
| | | | | | | They do not need to be on the frontend node Change-Id: I16cd5ad9a2d556916a3d8f4e6856eddf00fb7d3e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>