aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/hunspellinputmethod.h
Commit message (Collapse)AuthorAgeFilesLines
* Modularize virtual keyboard and add an extension interfaceJarkko Koivikko2018-08-061-72/+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>
* Automatically hide word candidate listJarkko Koivikko2017-01-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This change adds support for automatically hiding word candidate list when inactive. This feature includes the following enhancements: - Added new settings: * VirtualKeyboardSettings.wordCandidateList.autoHideDelay * VirtualKeyboardSettings.wordCandidateList.alwaysVisible - Automatic hiding of word candidate list when inactive and when autoHideDelay elapsed. - alwaysVisible setting restores the old functionality. - Added new signal selectionListsChanged() to input method, allowing the input method to dynamically allocate or deallocate selection lists. - HunspellInputMethod does not allocate selection list when dictionary cannot be loaded, or Qt::ImhNoPredictiveText is enabled. Also, it will no longer use pre-edit text in this case. - OpenWnnInputMethod does not allocate selection list if not needed. [ChangeLog] Automatically hide word candidate list when inactive. Change-Id: Ifa95ae8a7c47a96719ffdc2929601ff2ef9c0d2e Reviewed-by: Gordan Markus <gordan.markus@pelagicore.com> 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>
* Refactor class namesJarkko Koivikko2015-10-281-8/+8
| | | | | | | | | | | | | | | | | 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>
* 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>
* Refactor HunspellInputMethodJarkko Koivikko2015-06-171-0/+2
| | | | | | | | | | | This change allows using the HunspellInputMethod as a base class for other input methods. - Move the private class implementation in separate files. - Add protected constructor. Change-Id: Idae73744c6e2e5453dfb2d7602f8585b86485e53 Reviewed-by: Gatis Paeglis <gatis.paeglis@theqtcompany.com>
* Change copyright noticeRainer Keller2014-10-061-3/+3
| | | | | | | | | - URL points to qt.io - Update year to 2014 Change-Id: I6a77715faf32c88fe2832a6d21a912a20e5dae50 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com> Reviewed-by: Kalle Viironen <kalle.viironen@digia.com>
* Update license headers.Mitch Curtis2014-06-231-1/+1
| | | | | | | | | | | "This file is part of the Qt Quick Enterprise Controls add-on." becomes: "This file is part of the Qt Virtual Keyboard add-on for Qt Enterprise." Change-Id: Ief6e840a658fdf769d653844fe92752aa44c3bec Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Restructure and rename.Mitch Curtis2014-01-281-0/+52
This restructures the repo to match other Qt modules, like the Enterprise Controls. It also renames the plugin and usages of its name in the documentation so that the abbreviated "VKB" is not used anywhere. Change-Id: I5de3fc67846a50438e52f4be057abfa0d9be0d91 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>