aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/t9writeinputmethod.h
Commit message (Collapse)AuthorAgeFilesLines
* Modularize virtual keyboard and add an extension interfaceJarkko Koivikko2018-08-061-86/+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>
* 3rdparty/t9write: Fix non-blocking recognitionJarkko Koivikko2017-09-081-0/+4
| | | | | | | | | | | | | | | | | | | | | | | Previously the handwriting recognition with T9 Write was blocking at the beginning of new handwriting arc. This was due to the fact that while the recognition was done in background task, the arc addition was done in main thread, so we'd had to wait for the background recognition task to complete to avoid accessing the T9 Write session in parallel. This change moves the arc addition to background task, so the main thread does not have to block for the background tasks while the handwriting is ongoing. The rationale for this change is the new UCR input mode, which consumes a lot more CPU during recognition, and the UI will become non responding. [ChangeLog] Optimize UI performance by eliminating the need to wait for previous results to be completed during T9 Write handwriting. Change-Id: I8d0cecfa4599b63ccb21c1f6a691e5f21c93158c Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add support for T9 Write CJKJarkko Koivikko2017-07-081-1/+4
| | | | | | | | | | | | | This change adds support for handwriting in Simplified Chinese. The integration is based on T9 Write CJK SDK v7.8.1. [ChangeLog] Added support for CJK (Chinese/Japanese/Korean) handwriting via T9 Write. Change-Id: I18481cfd897987ecb471c49ecfcac62ea0c3489c Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Liang Qi <liang.qi@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>
* Refactor class namesJarkko Koivikko2015-10-281-12/+12
| | | | | | | | | | | | | | | | | Since the virtual keyboard C++ interface is wrapped inside a namespace, it is possible to get rid of "Declarative" name in the class names, that would otherwise conflict with the QML namespace in the documentation. - Rename DeclarativeSettings to VirtualKeyboardSettings - Remove "Declarative" from class names The rationale for this change is that the name Declarative refers to now obsolete QtQuick1 module. Also, the class names are now the same in C++ and QML name spaces. Change-Id: Ide050d47110443d894d95d35dddf0df5891587be Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* Wrap C++ API into namespaceJarkko Koivikko2015-10-271-0/+4
| | | | | | | | | | | | | | | 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>
* Add word reselection featureJarkko Koivikko2015-10-151-0/+2
| | | | | | | | | | | | | | | | | | | | | This change adds support for word reselection. By definition, word reselection means the ability to reselect any of the existing words in the text by touching/clicking the word. This change implements previously unused functionality provided by QPlatformInputContext::invokeMethod(). This functionality is essential for handling touch events inside a pre-edit text. The virtual keyboard example app was previously blocking this function by overriding the default touch handling for TextInput and TextEdit components. Word reselection is currently implemented for the following input methods: - HunspellInputMethod - LipiInputMethod (by inheriting HunspellInputMethod) - T9WriteInputMethod. Change-Id: I66731e2d2831d4b3d43dac0503cd564ffb4d490f Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* Add T9Write implementation of HandwritingInputMethodJarkko Koivikko2015-10-071-0/+62
This change adds T9Write implementation of HandwritingInputMethod. To use the T9Write, the contents of T9Write sdk must be extracted to srv/virtualkeyboard/3rdparty/t9write directory and the qmake command line must contain CONFIG+=t9write. Change-Id: Ib56d1d3dc553bb5d5677ab03e213dc8fed43ac68 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>