| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Change-Id: I0dc6af72a3ae52a0b97b704df84fb1a8197aeeb8
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
Reviewed-by: Rainer Keller <rainer.keller@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Iba2bd21b95dde1aac5750ac77856716e0c61e577
Reviewed-by: Kalle Viironen <kalle.viironen@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
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>
|