aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/hunspellinputmethod_p.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add Greek keyboard layoutJarkko Koivikko2017-08-071-1/+1
| | | | | | | [ChangeLog] Added Greek keyboard layout. Change-Id: I56a15ebcf58c768d8f544654cb8a17a77c743e3f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Hunspell: Update selection list status when loading dictionaryJarkko Koivikko2017-05-151-0/+1
| | | | | | | | | | | | | | | | | | | HunspellInputMethod must update selection list status immediately after dictionary starts load. This issue should not cause issues in normal use, but it will cause automatic tests to fail with lipi-toolkit. This is because LipiInputMethod uses HunspellInputMethod for spell correction and suggestions. The automated tests rely on selection list status when deciding if spell correction is available or not. The failing tests was test_hwrWordReselection_data. Also, fix incorrect debug stating dictionary could not be found. Change-Id: Ic6c3526a494fb60dde234c000ed9bd0d70f53335 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Automatically hide word candidate listJarkko Koivikko2017-01-201-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Replace foreach with range-based forAnton Kudryavtsev2016-03-101-1/+1
| | | | | | | | | | | Use qAsConst to prevent detaching where it's needed. qAsConst is not acceptable for rvalues, therefore catch them by const auto. Result: reduce text size. Change-Id: If773827f24dc5a45c264ad2ed6060c1a99720040 Reviewed-by: Mitch Curtis <mitch.curtis@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>
* Refactor class namesJarkko Koivikko2015-10-281-6/+6
| | | | | | | | | | | | | | | | | 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>
* Add word reselection featureJarkko Koivikko2015-10-151-0/+26
| | | | | | | | | | | | | | | | | | | | | 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>
* Move Hunspell dictionary loading to worker threadJarkko Koivikko2015-06-171-39/+18
| | | | | | | | | | | | | | | | | | | | | | | This change moves the Hunspell dictionary loading to worker thread. The dictionary loading is relatively heavy task for large dictionary files, such as Arabic, which can take more than 2 seconds to load on the Nexus 7 hardware. The Hunspell worker thread is no longer destroyed and created every time the dictionary changes, instead the worker thread is re-used. The dictionary loading happens by adding a new kind of task for the worker thread. Also, added a special function for clearing all but dictionary loading tasks from the worker task queue. This is needed for a special case where the dictionary is still loading while the user starts typing. Updated the test cases to take into account changes in delays in loading the dictionary. Change-Id: If9be14c7703b39af79f6e3b6708e297a28c49f2f Reviewed-by: Gatis Paeglis <gatis.paeglis@theqtcompany.com>
* Remove manual call to HunspellInputMethod::reset()Jarkko Koivikko2015-06-171-0/+11
| | | | | | | | | | | | | | | | | The reset() function should not be called directly from the input method because it is a virtual function and may cause side effects in the derived class. This change moves the reset() function to private class and uses that function instead. This change does not introduce any new behavior, nor it should break any existing ones. It fixes a particular issue that presents itself after introduction of the LipiInputMethod, which uses HunspellInputMethod as its base class. Change-Id: I38b56150a677f6c8fcf10a9b7b556acc3f7f4a92 Reviewed-by: Gatis Paeglis <gatis.paeglis@theqtcompany.com>
* Refactor HunspellInputMethodJarkko Koivikko2015-06-171-0/+172
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>