aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix license headers to be GPLKai Köhne2021-11-261-15/+5
| | | | | | | | | | It makes little sense to just have these two only files as LGPL, while the rest of the module is GPL. The LGPL header was only an oversight. Pick-to: 6.2 Change-Id: I8a7ef9f4c29265cc332bcbfee8d582943e55ecdd Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Update the Hangul mode key label in the Korean symbol layoutJarkko Koivikko2021-11-111-2/+2
| | | | | | | | | | | The current label 알파벳 reads "alphabet", which is generally not used for Hangul keyboards. Change the label to 한글 which reads "Hangul". This change is based of feedback from native speakers. Pick-to: 6.2 Change-Id: I1a6e91b27083b7ff1ea41bf2c93e627b23edf52c Reviewed-by: <ben.cho@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Plugins: Fix the port to QPluginParsedMetaData and CBORThiago Macieira2021-11-093-36/+26
| | | | | | | | | Commit c78599e1777168050d03f76e93f653669c94c023 was incomplete. Change-Id: I3eb1bd30e0124f89a052fffd16a6f2d82ad568af Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Doc: Mention plugin dependencies in the deployment guideTopi Reinio2021-11-081-8/+18
| | | | | | | | | | | | | | | As the plugin can be used also in widgets-based application, discuss the deployment of required libraries for such applications. Replace the qmake-specific notation in listed paths to make the guide build-system agnostic, and remove specific mentions of the major Qt version. Pick-to: 6.2 5.15 Fixes: QTBUG-96578 Change-Id: I92f1a67b0cab0cbd046c7d4ab90519a8acd59e8f Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* CMake: Don't build pinyin if QT_FEATURE_thread is OFFAlexandru Croitor2021-11-051-0/+1
| | | | | | | | | | | The plugin depends on pthread which might not be available on certain platforms (like WebAssembly). Only build the bundled library and plugin if the thread feature is enabled. Pick-to: 6.2 Change-Id: I14c713da87153697e76d7a8ef79d7b692fb5c126 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* CMake: Fix static package dependencies for vkb pluginsAlexandru Croitor2021-11-057-9/+9
| | | | | | | | | | | | | The 3rdpaty bundled libraries need to be prefixed with Qt:: so that the dependencies are written into the QtFooPluginDependencies.cmake file and thus correctly found when using a static Qt in an application project. Pick-to: 6.2 Fixes: QTBUG-97983 Change-Id: I6dc89fe82168d9eb5a9fc4f284a085203d5e39c2 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* Use a containment mask to keep input panel working during modal sessionVolker Hilsheimer2021-11-032-18/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of reparenting the input panel to be on top of the overlay as introduced in 4e8b3dd45ae4cc66a1b77cce901f80406b2a0f69, set a the input context as a containment mask on the dimmer that is modally blocking the UI elements underneath the overlay. Since modality is a Qt Quick Control concept that doesn't exist in Qt Quick, we have to use the dynamic property through which the dimmer registers itself within the item hierarchy. If called, the contains() implementation then lets all input events through that occur within the rectangles occupied by the virtual keyboard. Remove the documentation about the reparenting during modal sessions, we no longer have to do that. [ChangeLog][QtVirtualKeyboard][InputPanel] Since Qt 5.15, the virtual keyboard's input panel has automatically been reparented to prevent the keyboard UI from being blocked by modal dialogs. This is no longer done; the input panel instead uses a containment mask on the dimmer item that blocks input during modal sessions, allowing clicks through to the keyboard UI. Task-number: QTBUG-97075 Task-number: QTBUG-56918 Task-number: QTBUG-92881 Pick-to: 6.2 Change-Id: I2627a4602913e29233778ed190b44a1ce47f5259 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Migrate to autogenerated cpp exportsAlexey Edelev2021-11-0342-67/+45
| | | | | | | | | | | Replace the hardcoded cpp exports with a generated one where it's applicable. Task-number: QTBUG-90492 Change-Id: I19c7b0b39aa2bd2acf58c67360f3ccb3c49fee1c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Plugins: Port to QPluginParsedMetaData and CBORKai Köhne2021-11-021-2/+2
| | | | | | | | | QFactoryLoader now no longer converts its internal metadata to JSON, so we may as well not do it here either. All of this is internal API, so we can change. Change-Id: Ie0d8712f4527a8131ed89b86111b4e98c49c00f4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Enforce zero documentation warnings in CITopi Reinio2021-11-021-0/+3
| | | | | | | | | Include the documentation build step in coin/module_config.yaml and set the documentation warning limit to zero. This prevents new documentation warnings from being introduced. Change-Id: I61bb2915a3ab17b81b344bc9ab7690462e7d9d56 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Fix whitespace (cosmit)Ivan Tkachenko2021-10-1921-21/+21
| | | | | Change-Id: I439b110e24086d6366823a4df91a9502bb5855e4 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* cerence-hwr: Fix compilation with the latest Cerence SDK (v9)Jarkko Koivikko2021-10-181-5/+7
| | | | | | | | | [ChangeLog][Cerence] Added support for the latest Cerence SDK (9.x). Pick-to: 6.2 Change-Id: I5f90aa06d552a984822e49df56e7c68f8d9c993d Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Change label for InputModeKey (Japanese)Jarkko Koivikko2021-10-181-3/+3
| | | | | | | | | | | - Change label for Hiragana (あ -> かな), Katakana (カ -> カナ) and Romaji (ローマ字 -> ABC). - Based on feedback. Change-Id: Ifead06a3f682858362fa4a25cc52e8d97157ac54 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Tasuku Suzuki <tasuku.suzuki@signal-slot.co.jp>
* Document the reparenting of InputPanel during modal sessionsVolker Hilsheimer2021-10-181-3/+9
| | | | | | | | Amends 5564f1c96322d7c3f884d2e6f9b3a95e3134fb9f. Pick-to: 6.2 5.15 Change-Id: Ia690fd996a35d7c35408028523c5af2443f86781 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Only reparent the InputPanel when necessaryVolker Hilsheimer2021-10-182-4/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The input panel needs to work also while a modal popup is open. Since the concept of modality does not exist in Qt Quick, and is implemented with an event-eating overlay, 4e8b3dd45ae4cc66a1b77cce901f80406b2a0f69 introduced the automatic reparenting of the integrated input panel so that it a sibling of the overlay, with a higher z-value. This effectively changed the parent item, and had negative side effects to mechanisms such as anchoring. This change only reparents the input panel if there is an overlay (using the mechanism also used by the Qt Quick Control class QQuickOverlay) that is visible when the input item changes, and sets the z-value to be one above the overlay's. The prevents modal blocking during the overlay session. When the input item changes again and the overlay is no longer visible, then the parent and z value get reset. This improves the situation, but is still not ideal, as during modal sessions the anchoring of the input panel will still not work as expected. Add a test case that verifies that clicks go through to the keyboard while a modal dialog is open. Fixes: QTBUG-97075 Task-number: QTBUG-56918 Task-number: QTBUG-92881 Pick-to: 6.2 5.15 Change-Id: I7a5bcfebe7b69780234737a2311e08b2a6f60a4e Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Doc: Add a section for using the module with CMakeVenugopal Shivashankar2021-09-133-2/+14
| | | | | | | | | All the Qt module pages for C++ offer info. about using the module with CMake and qmake. Pick-to: 6.2 Change-Id: I0f9dcd76ef5e6da16102797af6b0eea058d62f3b Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Add reset method for QVirtualKeyboardDictionary::contents propertyVolker Hilsheimer2021-09-092-2/+3
| | | | | Change-Id: Id6d0723f19b0c23cf9385136c807a979d0ae7e30 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Doc: add a link and clarify how to reset a dictionaryVolker Hilsheimer2021-09-091-1/+2
| | | | | | | | | | As of now, the QVirtualKeyboardDicationary::contents property has no reset function. To be added in a follow-up commit for 6.3. Pick-to: 6.2 Change-Id: Ia2c709017a4b2535b93663a6228d90d7291a5c4c Reviewed-by: Luca Di Sera <luca.disera@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Doc: Fix qdoc warningsVenugopal Shivashankar2021-09-092-2/+2
| | | | | | | | | | | | | The following warnings were fixed: - src/styles/KeyboardStyle.qml:531: (qdoc) warning: Can't link to 'QtVirtualKeyboard.KeyboardFunction' - src/virtualkeyboard/doc/src/xt9.qdoc:28: (qdoc) warning: Can't link to 'VirtualKeyboardSettings::VirtualKeyboardSettings.defaultDictionaryDisabled' Task-number: QTBUG-96255 Pick-to: 6.2 Change-Id: I634ed1e1a9531544c9ba941d85803b72e69c16d9 Reviewed-by: Topi Reiniö <topi.reinio@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Doc: fix prototypes of QVirtualKeyboardDictionaryManager propertiesVolker Hilsheimer2021-09-071-5/+10
| | | | | | | | | Fix qdoc warnings. Also add parameter documentation and add see-alsos. Pick-to: 6.2 Change-Id: I4bc7132ae028ca849d15dade7aa52ccd6b028ca2 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Luca Di Sera <luca.disera@qt.io>
* [MyScript] Add CMake script for building MyScript HWR pluginYuntaek RIM2021-09-038-80/+169
| | | | | | | Pick-to: 6.2 Change-Id: Ia1857d967f7dbe99ae8b95c25fc2630551943682 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Yuntaek Rim <yuntaek.rim@myscript.com>
* cerence: xt9: Add special case for an invalid input (as reported by xt9)Jarkko Koivikko2021-09-028-12/+68
| | | | | | | | | | | | If the xt9 selection list build fails due to ET9STATUS_INVALID_INPUT, remove the symbol and select preferred candidate from the previous selection list. After this, start new input sequence using the rejected symbol as initial symbol. Pick-to: 6.2 Change-Id: Ib55d7391045c8d9c1db109e3ecd3855c71f45449 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* cerence: hwr: Add userDataReset handlerJarkko Koivikko2021-09-021-10/+23
| | | | | | | | | | | | | | Bind to Settings::userDataReset signal and react as follows: - Disconnect DLM - Deactivate XT9 Both of these will be reactivated on the next focus change (setInputMode call). Pick-to: 6.2 Change-Id: I8e69fa2c972f644ed1a10cc1bf42e38768df8d01 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Add debug print for available input modesJarkko Koivikko2021-09-021-1/+3
| | | | | | Pick-to: 6.2 Change-Id: I48dc2dc28096fc07f6124db475ef0e3a80db60d8 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Avoid reparenting of InputPanel when the window is being destroyedJarkko Koivikko2021-08-311-2/+4
| | | | | | | | Fixes: QTBUG-95996 Pick-to: 5.15 6.1 6.2 Change-Id: Iac4d06cacf2e672bf4a7676f478798f27ab6f4a2 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add missing documentation for the dictionary APIJarkko Koivikko2021-08-272-0/+114
| | | | | | | Fixes: QTBUG-95893 Pick-to: 6.1 6.1.3 6.2 Change-Id: I4b3bd72caff39935fc85f19bb5f25d802f23abb3 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Remove space before end-of-sentence dot in debug outputIvan Tkachenko2021-08-251-1/+1
| | | | | | | | | | | | | | | | | It may get quite annoying when showing up each time an application starts up on developer machine, which in my case was too often enough to get irritated to the point where I just spend time actually fixing it. Grammar was messed up in ae8c8fdf92df18849376b943955063b5d5723454, it used to spell: > "... for the" << locale << "language. Search paths" ... So, it made sense before removal of the "language" word. Change-Id: I2c0c51e4f14c4a7eb7001fe9cc074f8b43e89f26 Pick-to: 6.2 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Doc: Remove unsupported customFiltersKai Köhne2021-08-251-4/+0
| | | | | | Task-number: QTBUG-95987 Change-Id: I655653907c8454e6ef354879232cb7edceb7f628 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Hunspellinputmethod : commit only if the final word is not emptyInho Lee2021-08-231-1/+2
| | | | | | | | Hunspellinputmethod's update always makes commit but sometimes it makes redundant commit with an empty commitstring. This patch will prevent it. Change-Id: I049aebc6a7081ebf5128e9ca2860c7e9c31add75 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Doc: Fix qdoc warningsVenugopal Shivashankar2021-08-232-5/+7
| | | | | | | | | | | | | | The following warnings are fixed: qt5/qtvirtualkeyboard/src/styles/KeyboardStyle.qml:531: (qdoc) warning: Can't link to 'QtVirtualKeyboard.KeyboardFunction' qt5/qtvirtualkeyboard/src/virtualkeyboard/content/InputPanel.qml:83: (qdoc) warning: Can't link to 'QtQml::Qt::locale()' qt5/qtvirtualkeyboard/src/virtualkeyboard/doc/src/xt9.qdoc:28: (qdoc) warning: Can't link to 'QVirtualKeyboardDictionaryManager' qt5/qtvirtualkeyboard/src/virtualkeyboard/doc/src/xt9.qdoc:28: (qdoc) warning: Can't link to 'VirtualKeyboardSettings.defaultDictionaryDisabled' Task-number: QTBUG-95860 Pick-to: 6.2 Change-Id: I34be6017bca7e1bd4cf1d8850181a72dec70e068 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Doc: Fix link errors Qt VirtualkeyboardNico Vertriest2021-08-122-2/+2
| | | | | | | | Corrected link to qmake advanced configuration options. Pick-to: 6.1 6.2 Change-Id: Ia69f48c0a629bad1f24af9838ecf767d21bcc03d Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Doc: Add \readonly command to VirtualKeyboardSettings::availableLocalesLuca Di Sera2021-08-121-0/+1
| | | | | | | Fixes: QTBUG-95664 Pick-to: 6.2 6.1 5.15 Change-Id: Ic27fffc7e1888a9f7904716f3bb4b32eb672b4fb Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* CMake: Use renamed qt6_add_plugin PLUGIN_TYPE optionAlexandru Croitor2021-08-1010-10/+10
| | | | | | | Task-number: QTBUG-95170 Pick-to: 6.2 Change-Id: Iedd5df88d65c9b957d2f99edc5871b043fed4377 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* pinyin: Do not accept invalid input as pinyin initialJarkko Koivikko2021-08-101-4/+4
| | | | | | | | | | | | | | | When entering an invalid pinyin sequence, such as "fi", the engine would accept "i" as initial, which seems incorrect, because after that the word suggestions list is empty. Fix this by only accepting the character as initial if the spell parser can identify it as "endable". Fixes: QTBUG-94715 Pick-to: 5.15 6.1 6.2 Change-Id: I07d92554acb4cdf93eb7787f2090d7a2a57352f1 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* pinyin: Prevent crash when pinyin dictionary cannot be loadedJarkko Koivikko2021-08-051-1/+1
| | | | | | | | | | | | In case the pinyin (system) dictionary cannot be found, the pinyin engine is nullptr. This can lead to a crash when update() is called. Prevent the crash by adding a nullptr check. Fixes: QTBUG-68412 Pick-to: 5.15 6.1 6.2 Change-Id: I04a13ff3abe4aef4a6edd2986aa943fc6d3d995d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* CMake: Don't give plugins PUBLIC usage requirementsJoerg Bornemann2021-07-079-16/+13
| | | | | | | | | | | | | | | | | | | | The pro2cmake.py conversion script faithfully reproduced the .pro files for the plugins, which specified the libraries as public. But in CMake, the implications of this are that public usage requirements should then be propagated to consumers. We don't expect any consumers, since a plugin is created as a MODULE library in CMake, so for Windows we don't even have an import library to link with. The only exception to this is for static builds where plugins are created as STATIC libraries instead, but only in certain controlled situations do we then link to plugins. Even then, usage requirements are not expected to propagate to the consumers, so these relationships should always be specified as private. Pick-to: 6.2 Task-number: QTBUG-90819 Change-Id: I97ac6b81cfc89ded50e9f4038f53c8c7c98c3f4c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix linking against imm32 with mingw-w64Marius Kittler2021-07-051-1/+1
| | | | | | Pick-to: 6.1 6.2 Change-Id: Id026f83dcd0da6faf1f8ff3a5d453d2e762f1231 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* plugins/cerence-hwr: Fix waiting of recognition results during key eventJarkko Koivikko2021-06-222-5/+33
| | | | | | | | | | | | | | | | | | | | | | Key events (from virtual keys) are captured and handled by T9WriteInputMethod. If the recognition results are currently being processed, it will block and wait until results are handled. Unfortunately, the wait function was broken, because it actually failed to process the results. The results were processed by a slot connected to a signal via queued connection, so it was impossible to wait without breaking out from the event loop. Fix the issue by separating the resultList handover to a slot connected via direct connection and the resultList processing to a slot connected via queued connection. This makes it possible to wait for resultList handover process the results immediately. Pick-to: 6.2 Change-Id: Ia7be4ddcc5071775d43a7dddf36e7c33cf1d1e96 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* plugins/openwnn: reset() should not modify pre-edit textJarkko Koivikko2021-06-211-2/+4
| | | | | | | | | | | | | | | | | Per contract, the reset() function should not modify pre-edit text. This method is called by the input engine when the input method needs to be reset. The input method must reset its internal state only. The main difference to the update() method is that reset() modifies only the input method state, i.e. it must not modify the input context. Fix by clearing the internal state to avoid modifying pre-edit text. Task-number: QTBUG-94017 Pick-to: 5.15 6.1 6.2 Change-Id: I4482188bbe18292d3ef1721e529f09c6054baa5d Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Fix processing of hard Qt::Key_Backspace and Qt::Key_DeleteJarkko Koivikko2021-06-211-3/+11
| | | | | | | | | | | | | | | | | | | | Even though the virtual keyboard does not support hard keys at the moment, this kind of processing could be possible in the future. In the mean time, fix processing of backspace and delete keys. In particular, if such key is pressed the pre-edit text is not empty: - Reset input method state (should not modify pre-edit) - Clear pre-edit - Return true (to indicate no further processing is required) [ChangeLog] Fix processing of hard backspace and delete keys. Fixes: QTBUG-94017 Pick-to: 5.15 6.1 6.2 Change-Id: I7035f7612e966de6d17d92e754ecd7bdb3a6e530 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Remove old configure-related filesJoerg Bornemann2021-06-173-1191/+0
| | | | | | | | | | | | | Remove the configure.json and configure.pri files that were used for the qmake-based configure. Remove the .prev_*.cmake files that were a by-product of configurejson2cmake.py. Pick-to: 6.2 Task-number: QTBUG-89536 Change-Id: I2dfb358e7f22f64db15f600d639df633124781cc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* plugins/openwnn: Set word candidate index when item is selectedJarkko Koivikko2021-06-171-0/+1
| | | | | | | | | | | When an item is selected from the word candidate list, the activeWordIndex variable was not updated to match the selected index, resulting in a missed list update. Fixes: QTBUG-94560 Pick-to: 5.15 6.1 6.2 Change-Id: I5757081a1269439fe39d5b5e93dd6f43382cce15 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Disable Windows IME when Qt Virtual Keyboard plugin is loadedJarkko Koivikko2021-06-152-0/+14
| | | | | | | | | | | | | | Windows IME (TSF) causes a crash when used together with Qt Virtual Keyboard. [ChangeLog] Disable Windows IME when Qt Virtual Keyboard plugin is loaded Fixes: QTBUG-93042 Pick-to: 6.2 6.1 5.15 Change-Id: If3d4d192147b316e198fc060863c615c12f7a3a1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix high CPU utilization caused by key repeat timerJarkko Koivikko2021-06-091-2/+4
| | | | | | | | | | | | | | | | | | Key repeat timer has been broken since the beginning. The key repeat timer leaked timer instances while processing the event, causing the accumulation of unprocessed timer events and high CPU utilization. Fix the issue by killing the original timer (long press delay 600 ms) and starting the key repeat timer (repeat delay 50 ms) once. [ChangeLog] Fixed high CPU utilization caused by key repeat timer. Pick-to: 5.12 5.15 6.1 6.2 Fixes: QTBUG-94259 Change-Id: Iff47249db27cda3750f497cb02c1cb642261e032 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Fix QML TypeError Cannot read property 'selectionListHeight' of nullJarkko Koivikko2021-06-082-4/+4
| | | | | | | | | | | | | | These errors started to appear with the latest qtdeclarative: qrc:/QtQuick/VirtualKeyboard/content/components/AlternativeKeys.qml:63:9: TypeError: Cannot read property 'alternateKeysListBottomMargin' of null qrc:/QtQuick/VirtualKeyboard/content/components/AlternativeKeys.qml:61:9: TypeError: Cannot read property 'alternateKeysListItemHeight' of null qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:729:9: TypeError: Cannot read property 'selectionListHeight' of null qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:864:13: TypeError: Cannot read property 'keyboardDesignHeight' of null Fix by adding conditional binding. Change-Id: I00f3d410d3984e3a33ce25ebdb149dfa3a7cd964 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix usage of legacy CMake APIJoerg Bornemann2021-06-073-4/+4
| | | | | | Change-Id: I458167eded5739b5220e8223ce2976eaa44ebe65 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* CMake: Update to latest qml CMake APIAlexandru Croitor2021-06-053-35/+18
| | | | | | Task-number: QTBUG-91621 Change-Id: I85b413168dd70acc8dc2c80dc31bf1220b6f30a5 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Add Cerence HWR and Cerence XT9 extension pluginsJarkko Koivikko2021-06-03111-1326/+12704
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cerence SDK enables two extension plugins for the Qt Virtual Keyboard. - Cerence HWR: Handwriting extension know previously as T9 Write - Cerence XT9: Advanced keyboard extension, supporting various languages This commit removes the previous T9 Write extension and reintroduces it as the Cerence HWR extension. This commit also adds the Cerence XT9 as a new feature. The Cerence HWR can also utilize the XT9 for some additional features. Here is a list of changes made to the handwriting extension: - Move the T9 Write extension to the general "cerence" directory, which allows data and code to be shared between T9 Write and XT9. - Update unpack.py to match the latest Cerence SDK. Drop support for legacy delivery rules, as they interfere with the latest SDK. - Alphabetic API was renamed from decuma* to decumaUcr at version number 21 - Add extra parameter to BeginArcAddition and set bMinimizePreProcessing to 1 to avoid defining the parameter. - Do not pass the support lines to engine as they are not supported/needed. For example, the latest CJK SDK returns error when the support lines are defined. - Remove reference to decumaFunctionalSupport.h, which is not part of the official SDK. As a consequence, disable support for recognition interrupt, which is not critical feature anyway. - Fix several compiler warnings. - Enable UCR mode for new languages. - Filter out duplicate candidates (after case formatting) - Use handwriting recognition timeout setting - Check and recover from an init failure when UCR not supported - Use common dictionary management with XT9 - Add user defined search path for HWR db QT_VIRTUALKEYBOARD_T9WRITE_DB_PATH - Use generic dictionary API - Add user dictionary (DLM) - Limit too many simultaneous input - Add support for the latest SDK (removed support from previous versions of the SDK) - Add support for background recognition supported by the engine. This improves latencies and removes delays in certain situations. - Clear old traces from screen after specified delay. Previously, old traces were cleared from the screen based on the information from the engine to identify strokes of the recognized characters. Unfortunately, the engine does not provide this information at the same detail in UCR mode. This change introduces a timer-based approach, where traces are removed after a specified time, calculated from the recognition result. This time can be adjusted in the virtual keyboard settings. - Add auto correction for alphabetic languages - Add predictions from custom dictionary (XT9 Nav) - Fix language id mapping between Qt6 QLocale::Language and Cerence HWR. Change-Id: Iff4daea67cbb8adee1caf2e9513198482da48a38 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Make sure keyboard layout observer returns correct geometryJarkko Koivikko2021-06-031-2/+8
| | | | | | | | | | | | | | The scanLayout() function may be called at any time, even during the layout process. This means, that some parts of the layout may overlap the layout geometry. The user (e.g. the XT9 layout engine) reports an error if any of the keys overlap the layout geometry. This change adjusts the geometry of the reported layout if necessary. Change-Id: I8d2ccec695484518c650a29da33e02de5e513126 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add protected constructor for QVirtualKeyboardAbstractInputMethodJarkko Koivikko2021-06-035-19/+117
| | | | | | | | Add QObjectPrivate based constructor to be able to share the private class. QObjectPrivate enables private slots. Change-Id: Ibc0bc6c8cb751b03a3e0162d02520eaa669696fb Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>