aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/lipiworker.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Modularize virtual keyboard and add an extension interfaceJarkko Koivikko2018-08-061-256/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the extension interface it is possible to add new input method and/or languages without recompiling the Qt Virtual Keyboard plugin itself. The existing input methods are now isolated into plugins. So installing a new input method is a matter of copying the corresponding extension plugin to the plugins/virtualkeyboard directory (and any collateral required by the extension plugin itself). This change also renames the HunspellInputMethod to DefaultInputMethod. This change is necessary because some other extension plugin may want to provide the default input method instead. Implementation plan =================== [x] Create virtualkeyboard-private module [x] Create plugin library [x] Define interface for input method plugin [x] Define interface for keyboard layouts [x] Move existing input methods and layouts to plugins [x] HangulInputMethod [x] HunspellInputMethod [x] Maybe create a private library for sharing between HunspellInputMethod and LipiInputMethod [x] LipiInputMethod [x] OpenWnnInputMethod [x] PinyinInputMethod [x] T9WriteInputMethod [x] TCInputMethod [o] Rename some C++ classes (too generic name?) [x] Think again replacing the QtVirtualKeyboard namespace [x] Update documentation [x] General instructions for creating a plugin [x] For the C++ interfaces too (previously removed) [ChangeLog][Important Behavior Changes] Introduce an extension interface for the virtual keyboard. All the current input methods and some special keyboard layouts (e.g. Hunspell, OpenWnn, etc.) have been moved to extensions. The extension interface allows third party to create a new input method without having to modify or rebuild the virtual keyboard. In addition, this change makes it possible to add features and languages independently by copying the desired extension to the system. [ChangeLog][Important Behavior Changes] Introduce a virtualkeyboard module, which can be linked against an extension plugin. This module provides the C++ API necessary for creating an input method. [ChangeLog][Important Behavior Changes] Wrap the entire virtual keyboard API into Qt namespace (e.g. QT_BEGIN_NAMESPACE/QT_END_NAMESPACE). Task-number: QTBUG-57602 Change-Id: I449f4429109f596a7a1df7517c81f97d4aada27c Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Compile fix for MSVC 2015 as it does not work with QAtomicInteger<bool>Andy Shaw2017-08-151-2/+2
| | | | | | | This fixes the original commit - 9db37be7210d4071c8b2c7bfa98d1822075ab452 Change-Id: I6679ce07a4890f7d8d332f0400a5bbd2cc6bb577 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* License updateKalle Viironen2016-01-121-9/+17
| | | | | | Change-Id: I0dc6af72a3ae52a0b97b704df84fb1a8197aeeb8 Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com> Reviewed-by: Rainer Keller <rainer.keller@theqtcompany.com>
* Wrap C++ API into namespaceJarkko Koivikko2015-10-271-0/+29
| | | | | | | | | | | | | | | This change wraps the entire C++ API into namespace. In practice, all the C++ interfaces inside the qtvirtualkeyboard plugin are private, except the QPlatformInputContext plugin API. Even the AbstractInputMethod and AbstractInputPanel are not really a public in the sense that they could be used outside the plugin. At least it does not make sense, since there is no way to extend the virtual keyboard functionality without recompiling the plugin. Task-number: QTRD-3628 Change-Id: I1037ee247abca3219efeaa4e4150baaff7c3d668 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* License Headers UpdateKalle Viironen2015-10-261-9/+12
| | | | | Change-Id: Iba2bd21b95dde1aac5750ac77856716e0c61e577 Reviewed-by: Kalle Viironen <kalle.viironen@theqtcompany.com>
* Correct license headers.Mitch Curtis2015-09-151-10/+10
| | | | | | | | | | Using the commercial template found here: https://wiki.it.local/display/QTCOM/Header+templates+to+be+used+in+Qt+Code Change-Id: If401d8fa3ff4dab6ea1e74477d5c02b5dcd09eea Task-number: QTRD-3693 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* Run lipi HWR task in parallel with the recognition timerJarkko Koivikko2015-08-271-5/+58
| | | | | | | | | | | | | | | | | | | | | | | This change improves the user experience by reducing the time spent waiting the HWR task to complete. Previously the recognition was started after the recognition timer expired. This caused the total overhead of the recognition to be summed on top of the recognition timer, reducing the user experience in low performance devices. Now the idle time (during the recognition timer) is used for the benefit of HWR task, so that in optimal case, the recognition result is available immediately after the recognition timer expires. If the HWR task takes longer to process than the recognition timer, the results will be provided as soon as the HWR task is done. Ongoing recognition task is cancelled if the user continues drawing while the recognition timer is running. If the recognition task is already completed, the current result is ignored and the result from the next recognition task is used instead. Change-Id: I9ba797223d8a9b8daf423e500fcf9d5250caaa5a Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* Add lipi-toolkit implementation of handwriting input methodJarkko Koivikko2015-06-171-0/+163
This change adds a reference implementation of the handwriting input method. The handwriting support is enabled by adding CONFIG+=lipi-toolkit to the qmake command line. The current implementation uses alphanumeric model for handwriting recognition, which come bundled in the lipi toolkit. Change-Id: I1fcc0a0c0620dd7f9503a2a584cea0003e8a032e Reviewed-by: Gatis Paeglis <gatis.paeglis@theqtcompany.com>