aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/pinyininputmethod.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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-24/+24
| | | | | | | | | | | | | | | | | 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/+9
| | | | | | | | | | | | | | | 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>
* Fix uninitialized variable warning in PinyinInputMethodJarkko Koivikko2015-10-141-1/+1
| | | | | | Task-number: QTRD-3598 Change-Id: I7b25cbc1fa93463c32b005c00b767c9d83dfa8d5 Reviewed-by: Rainer Keller <rainer.keller@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>
* Preserve the input state in Pinyin if the key does not produce textJarkko Koivikko2015-04-091-1/+1
| | | | | | | | This preserves the current input state when switching between the symbol and the main layouts, and also when the shift key is pressed. Change-Id: Ic12db55c3c0743cd66fd4533ae578250f6d40bfa Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* Optimize the selection list updates in PinyinInputMethodJarkko Koivikko2015-02-251-12/+41
| | | | | | | | | | | | | | | | This issue was discovered when experimenting with the selection list add and remove transitions. The issue was that in PinyinInputMethod the candidate list is updated in some cases twice or more where only one update call is needed. Added a helper class which updates the candidate list automatically by monitoring the total candidate count and the existing candidate list. Change-Id: I0abbe01198ccce99f33cbdf20c6b5bfd1d063815 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* Change copyright noticeRainer Keller2014-10-061-2/+2
| | | | | | | | | - 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>
* Make the keyboard layout changeable in password / url input modeJarkko Koivikko2014-08-141-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | Removed latin-only restriction with specific input method hints. More specifically, the latin-only keyboard was previously enforced when password, hidden, sensitive or latin-only flags were set for the input control. Now it is possible to use non-latin input methods and keyboard layouts with these modes too. However, this change implies some additional changes to the Pinyin and Hunspell input methods. Changes to PinyinInputMethod: - Disable the user dictionary when sensitive data flag is set. This is required so that sensitive data (such as passwords) is not stored in the user dictionary. Changes to HunspellInputMethod: - Disable the auto space functionality when the input mode is not latin, or the exclusive input mode is set to url or email input. Task-number: QTRD-3210 Change-Id: I444c4b87c9805b69dc773ef6cac76f1c11dd220a Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Rainer Keller <rainer.keller@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>
* Add PinyinInputMethodJarkko Koivikko2014-06-191-0/+438
Added new PinyinInputMethod which is using the PinyinIME engine as backend. The PinyinIME is Apache 2.0 licensed. https://android.googlesource.com/platform/packages/inputmethods/PinyinIME/ The pinyin input method is enabled by using CONFIG+=pinyin configuration flag on the qmake command line. Dictionaries ============ The pinyin engine uses two kinds of dictionaries: sys_dict and usr_dict. The sys_dict is a pre-built dictionary containing a search model for Chinese words. The sys_dict is built using the dictionary tool included in the source tree. The sys_dict is deployed in to the $$[QT_INSTALL_DATA]/qtvirtualkeyboard/pinyin directory on the target system. This path will become the default location where the dictionary is searched in. The default location can be overridden by specifying an alternative path to the dictionary file in an environment variable QT_VIRTUALKEYBOARD_PINYIN_DICTIONARY. The usr_dict contains custom lemmas which the user is most frequently using. Initially, the usr_dict may not exist, in which case it is automatically created. The usr_dict is located at subdirectory qtvirtualkeyboard/pinyin under the location returned by QStandardPaths::writableLocation(QStandardPaths::ConfigLocation). Usage ===== The pinyin input mode is activated by changing the input locale to zh_CN. Chinese words are entered by typing the phonetic form of the Chinese words and then selecting words from the selection list. The first item in the selection list always contains the complete phrase. By selecting the first item, the pinyin completes the entire phrase and ends the current input. The user can also select the entire phrase by pressing the space key. The subsequent items in the selection list are the segments comprising one or more Chinese words. By selecting segments of previously unknown lemma, the input method learns this by adding a new entry to the usr_dict. Once the user enters the same pinyin sequence again, the input method can suggest the same phrase as the first or the second item in the selection list. The characters sequences, which are not valid pinyin spellings, are displayed in lower case letters. The user can either delete these characters by pressing the backspace key, or select and accept them as input from the selection list. After the user completes the phrase, or moves the cursor in the text, the pinyin input can predict words by looking at text up to 3 characters in history. In prediction mode the user is not required to select any items from the prediction list. The user can enter plain latin characters by accepting the input sequence with the return key. Change-Id: I46bfc0df112a4d9c892222916cb7455132dd5059 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Liang Qi <liang.qi@digia.com>