aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/shifthandler.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add Hebrew keyboard layoutJarkko Koivikko2017-08-241-1/+1
| | | | | | | [ChangeLog] Added Hebrew keyboard layout. Change-Id: I7779db4e5ac3c5a99937a0d7b7e572db65f0d811 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Clear toggle shift timer when appropriateJarkko Koivikko2017-08-241-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The timer in the ShiftHandler is used for detecting double click events for shift key. A double click event will trigger caps lock if the initial shift state is lower case. However, the implementation did not handle a case where the keyboard layout changes between the first and second press. This can be done with multitouch. The second problem was with the automatic test cases, where the test code toggles the shift to see if there is a secondary layout triggered by the shift key, e.g. in Arabic and Farsi. However, if the keyboard layout does not contain secondary layout, rapid shift state change will trigger caps lock instead. This issue was identified with certain test case for Hebrew layout. This change fixes the issue by clearing the shift toggle timer when the layout changes and in the automatic tests while checking for the secondary layout with the shift key. Also, update test code so that the shift press is simulated with mouse. This will ensure the key exists in the layout and that the key is enabled. Change-Id: I2a528f1b82c30e8b8d9746d380b32ee370b38004 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add support for Japanese handwriting (T9 Write CJK)Jarkko Koivikko2017-07-081-1/+1
| | | | | | | This change adds handwriting support for Japanese. Change-Id: Ifc8f0e32c8b3211c13aee8be5cb2e05fae09d3b7 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add support for Korean handwriting (T9 Write CJK)Jarkko Koivikko2017-07-081-1/+1
| | | | | | | This change adds handwriting support for Korean. Change-Id: I77eb322020c39259d9609051100c40b271a62c04 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add support for T9 Write CJKJarkko Koivikko2017-07-081-1/+1
| | | | | | | | | | | | | 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>
* Consistently check qApp and equivalents before using themUlf Hermann2017-05-051-2/+7
| | | | | | | | | | | We might run an event loop after destroying qApp and additional events may be generated from that. Therefore we should not access qApp unchecked from event handlers. In most places we did already check qApp for null. Now we do it everywhere. Task-number: QTBUG-60000 Change-Id: Id72bbf133989e4f8127d85ee63cba64f915d3649 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Merge remote-tracking branch 'origin/5.8' into devLiang Qi2017-01-251-0/+17
|\ | | | | | | | | | | | | | | Conflicts: .qmake.conf src/virtualkeyboard/shifthandler.cpp Change-Id: I1f95238b9ac5deed3bec6d85f7433cafe219f7ea
| * Defer shift state change until input panel becomes visibleJarkko Koivikko2016-12-191-0/+18
| | | | | | | | | | | | | | | | | | Monitor the visible state of the QInputMethod and defer shift state handling until it becomes visible. Task-number: QTBUG-57082 Change-Id: I6e63e57e2630de37d49a522f05257c9c4dd72286 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-121-4/+8
|\| | | | | | | | | | | | | | | Conflicts: src/config.pri tests/auto/inputpanel/data/tst_inputpanel.qml Change-Id: Ib84bbfee8097cf807dbdffb37dfdfc344fc2dbbf
| * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-11-251-3/+5
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/virtualkeyboard/content/InputPanel.qml Change-Id: I6839198e123f682a88132f8efbed0bdaf8835e7e
| | * Fix duplicate shift state change when focus object changesJarkko Koivikko2016-11-251-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the shift state could be set twice when focus object changed, first in reset() method and then in autoCapitalize() method. This change eliminates the initial shift state in reset() method. Task-number: QTBUG-57082 Change-Id: I4bba5c85aae1d0d631e7e30577d0d4068c9cc582 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * | Doc: Mark the remaining C++ API \internalLeena Miettinen2016-10-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Hide the C++ classes entry from the help file (.qdocconf) - Remove link to the C++ classes from the module front page - Mark classes and namespace \internal - Mark the C++ module page \internal Change-Id: I07b04af84b45d048c5cbb133bd5d70f8b38f25dd Reviewed-by: Topi Reiniƶ <topi.reinio@theqtcompany.com>
| * | Doc: Use standard documentation structure for the moduleLeena Miettinen2016-10-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Link to separate QML types and C++ classes topics from front page (instead of listing the types there) - Turn the \page topic that lists all QML types into the \qmlmodule topic for the module - Add a \module topic to list C++ classes - Add \ingroup, \title, and \brief commands to \qmlmodule topics to display the docs correctly in tables - Add standard content to \qmlmodule topics - Remove unused \qmlmodule topics - Fix \inmodule commands as necessary Change-Id: I6f6538264fff2ad38994114a2fed7212495a18c2 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Topi Reiniƶ <topi.reinio@theqtcompany.com>
* | | Implemented proper double click behavior of shift handlerBramastyo Harimukti2016-09-271-1/+17
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, there is nothing to separate whether the button command is a single click or a double click. Every time we click the shift button, it always look for the second click and always activate the caps lock. There is no time limit to specify if there will be a second click and always recognized the upcoming click to activate the caps lock. The correct be- havior of a shift button is that a single click is used to enable the upper-case and automatically turned into lower case when the next letter is typed. Another case, within a specific time, if a second click comes, the caps-lock is activated and keep the upper-case mode, otherwise the upcoming click is used to abort the upper-case and change the keyboard mode back to lower-case. Unit test is also updated. [ChangeLog] Changed behavior of shift handler to only activate caps lock if the shift key is double-clicked. Change-Id: Ia04a61ca6df5407f37eb73b9de65c6ccd0128547 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Remove 'enterprise' from QML imports and QRC prefixesMitch Curtis2016-04-261-1/+1
| | | | | | | | | | | | | | | | | | [ChangeLog] Renamed QML import from "import QtQuick.Enterprise.VirtualKeyboard" to "import QtQuick.VirtualKeyboard", as the module is now open-source. Change-Id: I240a3c1b598ca4aa41d2aad02b6e548622308833 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | 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>
* Add Zhuyin input method for Traditional ChineseJarkko Koivikko2015-11-271-2/+2
| | | | | | | | | | | | | Zhuyin can be enabled with CONFIG+=tcime or CONFIG+=zhuyin qmake flags. Note that CONFIG+=tcime enables both Cangjie and Zhuyin input methods. You can also enable the Cangjie input method with CONFIG+=cangjie, in which case the Zhuyin input method will not be activated, unless the config contains CONFIG+=zhuyin also. Change-Id: Iddea01f3e3d7f1dafff80e17da5b7cf89d4cfc55 Task-number: QTRD-3726 Reviewed-by: Rainer Keller <rainer.keller@theqtcompany.com> Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
* Refactor class namesJarkko Koivikko2015-10-281-0/+322
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>