aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/virtualkeyboardsettings.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Port qtvirtualkeyboard to declarative type registrationJarkko Koivikko2022-04-071-626/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Port settings plugin to declarative type registration - Port styles plugin to declarative type registration - Dissect Components QML module from QtQuick.VirtualKeyboard Previously the QML components included in this module were located in the resources of virtualkeyboard Qt module and registered via manual type registration. Since migrating away from manual type registration, it is time to move these components out of the QtQuick.VirtualKeyboard namespace where they did not belong in the first place. They are implementation detail of the VirtualKeyboard and the VirtualKeyboard layouts. There is no use for them outside of this scope. - Add QtQuick.VirtualKeyboard.Plugins QML module - Port hangul to declarative type registrations - Port openwnn to declarative type registrations - Port tcime to declarative type registrations - Port thai to declarative type registrations - Port hunspell to declarative type registrations - Port pinyin to declarative type registrations - Port cerence to declarative type registrations - Port myscript to declarative type registrations - Add VirtualKeyboardFeatures namespace for feature detection - Remove QVirtualKeyboardInputContextPrivate::inputMethods property This is no longer needed (and cannot be supported) because of the new QML module based extensions model. Runtime feature detection is happens on the VirtualKeyboardFeatures namespace. - Remove Q_VKB_IMPORT_PLUGIN - Remove extensionloader (replaced with QML modules) This is no longer needed as all the extensions have been ported to QML modules. - Remove QML dependency from platforminputcontext plugin Since all the extra functionality (extensions, qml types registrations) have been moved out of this plugin, we can remove the dependency to QML module too. - Move keyboard layouts to Layouts plugin (but keep them as resources) Previously the keyboard layouts were located in the resources of the QtQuick.VirtualKeyboard plugin. This change moves them to new QtQuick.VirtualKeyboard.Layouts QML module. This module is loaded by explicit (qmldir) import at QtQuick.VirtualKeyboard plugin. We cannot make the layouts as compiled qml, because it will prevent from using resource path overload currently used by vendor plugins to override keyboard layouts. - Move builtin styles to new module QtQuick.VirtualKeyboard.Styles.Builtin No changes to style loading mechanism - the styles are still loaded using Loader. The internal resource path for builtin styles changed from :/QtQuick/VirtualKeyboard/content/styles to :/QtQuick/VirtualKeyboard/Styles/Builtin This has no impact on external users, because it can already specify custom style path using settings API. [ChangeLog] Virtual Keyboard extension mechanism was replaced with QML modules. Previously the virtual keyboard was using plugin mechanism with custom interface to load extensions. With the introduction of declarative type registration, this interface became obsolete. All of the existing virtual keyboard extensions are now registered as standard QML modules, loaded implicitly by the QtQuick.VirtualKeyboard module. This change does not impact the users of the virtual keyboard public API. Task-number: QTBUG-100783 Fixes: QTBUG-92212 Fixes: QTBUG-100705 Fixes: QTBUG-95680 Fixes: QTBUG-95660 Change-Id: Id2f87670d2678fa0b18bae56ee172bf206d99d3a Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Doc: Add \readonly command to VirtualKeyboardSettings::availableLocalesLuca Di Sera2021-08-121-0/+1
| | | | | | | Fixes: QTBUG-95664 Pick-to: 6.2 6.1 5.15 Change-Id: Ic27fffc7e1888a9f7904716f3bb4b32eb672b4fb Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Add new settings defaultInputMethodDisabled, defaultDictionaryDisabledJarkko Koivikko2021-01-291-0/+38
| | | | | | | | [ChangeLog] Add new settings VirtualKeyboardSettings.defaultInputMethodDisabled and VirtualKeyboardSettings.defaultDictionaryDisabled. Change-Id: Ica735c1072bb87d97f9cc9a0fb515d3eb6da2aa2 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add new setting for disabling handwriting modeJarkko Koivikko2021-01-291-0/+23
| | | | | | | | | | This property allows to disable handwriting mode at runtime. [ChangeLog] Add new setting VirtualKeyboardSettings.disableHandwritingMode, which allows to disable handwriting mode at runtime. Change-Id: I5f057cccb6d6e88470d01f43e8f4735fdd436f30 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add new setting for input method hintsJarkko Koivikko2021-01-291-0/+22
| | | | | | | | | | | This property allows to set persistent input method hints. [ChangeLog] Add new setting VirtualKeyboardSettings.inputMethodHints, which allows the application to set persistent application wide input method hints. Change-Id: Iaa54a360d80c5def88f53aa8b8510c7cf041208c Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add new setting for handwriting timeoutJarkko Koivikko2021-01-291-0/+40
| | | | | | | | | | | | | - Added new properties VirtualKeyboardSettings.hwrTimeoutForAlphabetic and VirtualKeyboardSettings.hwrTimeoutForCjk. - The usage of these properties depends on the plugins (e.g. T9 Write). [ChangeLog] Add new settings VirtualKeyboardSettings.hwrTimeoutForAlphabetic and VirtualKeyboardSettings.hwrTimeoutForCjk to allow the application to adjust the handwriting recognition timeout. Change-Id: Id80de20c3ebc8ff97741cf6514b987070d55d66e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add new setting for user data pathJarkko Koivikko2021-01-271-0/+29
| | | | | | | | | | | | | | | - The default userDataPath is set to QStandardPaths::GenericConfigLocation. - Add a signal for application to indicate user data reset. [ChangeLog] Added new property to settings VirtualKeyboardSettings.userDataPath. This allows the application or middleware to change the path to user files at runtime. Added also a signal to indicate user data reset - when the application triggers the signal, the virtual keyboard closes all files in the user's directory. Change-Id: I248a5b08c86b3fe7124a8d3f362c8f72e07b92c0 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Sort language list by active languagesJarkko Koivikko2021-01-181-0/+2
| | | | | | | | [ChangeLog] The language list can now be sorted in any order by specifying the order in the active language list. Change-Id: Id61433a9d4503c1fe779b3b9377c3346d457c777 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Automatically register the latest import versionv5.13.0-beta3Kai Koehne2019-04-121-4/+4
| | | | | | | | | | | | | This follows what was done in d28c9f6a for Qt Quick Controls 2. The latest import version (e.g. 2.14 in Qt 5.14) will automatically be registered whenever the Qt version is bumped. This avoids needing to wait until a new type is added (or a new revision is added to an existing type) before being able to use the newest Qt Quick version. Change-Id: Ic2b59f50bfae8fed5148eae9596578adb0aadb52 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix string castJarkko Koivikko2018-09-071-10/+10
| | | | | | | | Enforce proper string cast using QT_NO_CAST_TO_ASCII and friends. Change-Id: I039b23144c8d57f12aad1c27f29654b382078222 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Use module include path instead of local include pathJarkko Koivikko2018-08-071-3/+3
| | | | | | | | Include all the virtual keyboard header files using module include path. Change-Id: I93eada70edeb66313b05df6cecf6a9412d7bc0c4 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Modularize virtual keyboard and add an extension interfaceJarkko Koivikko2018-08-061-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-07-171-3/+4
|\ | | | | | | Change-Id: Ic443284cb2ae46839cbd90d133c6a503bf721058
| * Migrate VirtualKeyboardSettings to QRegularExpressionSamuel Gaist2018-07-161-3/+4
| | | | | | | | | | | | | | | | | | This patch updates the VirtualKeyboardSettings class to use QRegularExpression in place of QRegExp which is to be considered deprecated. Change-Id: Ib7cecc0070f86b63793e3f3876a44710a0ecc394 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-06-131-1/+1
|\| | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/virtualkeyboard/pinyindecoderservice.cpp src/virtualkeyboard/tcinputmethod.cpp Change-Id: Ie111173f60bc622ceda18bd5ee4a0e4b0e0a00ae
| * Fix encoding of path environment variablesJarkko Koivikko2018-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change modifies encoding of the following environment variables: - QT_VIRTUALKEYBOARD_HUNSPELL_DATA_PATH - QT_VIRTUALKEYBOARD_PINYIN_DICTIONARY - QT_VIRTUALKEYBOARD_CANGJIE_DICTIONARY - QT_VIRTUALKEYBOARD_ZHUYIN_DICTIONARY - QT_VIRTUALKEYBOARD_PHRASE_DICTIONARY - QT_VIRTUALKEYBOARD_LAYOUT_PATH - LIPI_ROOT - LIPI_LIB Previously they were read using qgetenv and latin1 encoding. Now they are read using qEnvironmentVariable, which handles the encoding properly. [ChangeLog] Fixed encoding of path environment variables. Task-number: QTBUG-62328 Change-Id: I8e32c111a498d3b57259fe6dd96290545f10030a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Add build time option to exclude all styles from the pluginJarkko Koivikko2018-05-111-0/+3
|/ | | | | | | | [ChangeLog] Added build time option to exclude all styles from the plugin. Change-Id: I7b965cfb10eb0c140c2910c5321615758bb18b95 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Remove QtQuickCompiler workaroundsSamuli Piippo2018-02-051-5/+0
| | | | | | | | | QtQuickCompiler workarounds are no longer required with Qt 5.11 and need to be removed to fix build failure where private/qqmlmetatype_p.h was not found, since QT+=qml-private is no longer done by qtquickcompiler.prf. Change-Id: I48f640a5b7196b295de89589d14061011ed920fc Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QRegExp include cleanupSamuel Gaist2017-03-131-0/+1
| | | | | | | This patch adds the missing include statements for QRegExp. Change-Id: I8dc1f257e34b20e93ba4d64da9c7ab8f5f97e88d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Add full screen input mode for super wide screensJarkko Koivikko2017-01-301-0/+33
| | | | | | | | | | | | | In full screen mode the virtual keyboard replicates the contents of the focused input field to full screen input field located on top of keyboard. This mode can be activated by VirtualKeyboardSettings.fullScreenMode. [ChangeLog] Added full screen input mode for super wide screens. Change-Id: Ib2650c04767fb0945cc2bedc5b1801d254a15a41 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add new feature "Auto commit word"Jarkko Koivikko2017-01-201-0/+22
| | | | | | | | | | | | | | | This feature, when enabled, automatically commits the remaining single word in the word candidate list, when there was initially multiple candidates. This feature can be enabled from settings using VirtualKeyboardSettings.wordSelectionList.autoCommitWord property. [ChangeLog] Added support for automatic selection of the only remaining word in the suggestion list. Change-Id: Iecfafcaeb3ccb72e1d8e53b92c395b0d1dc84163 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Automatically hide word candidate listJarkko Koivikko2017-01-201-4/+69
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-121-2/+11
|\ | | | | | | | | | | | | | | Conflicts: src/config.pri tests/auto/inputpanel/data/tst_inputpanel.qml Change-Id: Ib84bbfee8097cf807dbdffb37dfdfc344fc2dbbf
| * Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-261-2/+11
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/virtualkeyboard/doc/qtvirtualkeyboard.qdocconf Change-Id: I2aac70f4bf65794c73096ec575c9f72bc63ec61c
| | * Doc: Use standard documentation structure for the moduleLeena Miettinen2016-10-131-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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>
| | * Doc: Fix typo in type nameLeena Miettinen2016-10-121-1/+1
| | | | | | | | | | | | | | | Change-Id: Ic5248c0fad4c23bb3b3fbe0c71d315fbdf07f54c Reviewed-by: Nico Vertriest <nico.vertriest@theqtcompany.com>
* | | Implement external keyboard layouts supportGordan Markuš2016-11-161-0/+50
|/ / | | | | | | | | | | | | | | | | | | | | | | | | * Add possibility to override and exclude built-in keyboard layouts * Add QT_VIRTUALKEYBOARD_LAYOUT_PATH environment variable specifying the layout location on the file system or inside a qrc resource * Update documentation accordingly [ChangeLog] Add support for external keyboard layouts, which allows overriding and exclusion of the built-in keyboard layouts Task-number: QTBUG-54254 Change-Id: I960b942c031221d29dbdf1cabed78be8d32f43ef Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* / Enable loading styles from multiple import pathsJeremy Katz2016-07-201-4/+1
|/ | | | | | | | | | | | | | | | Import was previously allowed from two locations: * qrc:/QtQuick/VirtualKeyboard/content/styles/ * The first import path containing QtQuick/VirtualKeyboard/Styles/ This prevents an application-supplied style outside of these locations from being used, even if the style name is unique. [ChangeLog] Added support for styles in any Qml import path under the directory QtQuick/VirtualKeyboard/Styles/<style> Change-Id: Ie6034709182f182efacb0317e49d095d51ced5a6 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Remove 'enterprise' from QML imports and QRC prefixesMitch Curtis2016-04-261-8/+8
| | | | | | | | | [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>
* Use {QFile,QFileInfo}::exists(f) instead of {QFile,QFileInfo}(f).exists().Anton Kudryavtsev2016-03-171-1/+1
| | | | | | | It's faster. Change-Id: Ic8fba4775a45d0eeb3cfd45eb40e51d14d3dce3f Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* 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>
* Merge remote-tracking branch 'origin/5.6' into 5.7v5.7.0-alpha1Liang Qi2016-02-241-4/+11
|\ | | | | | | Change-Id: Ib2e0f6c524f72a6048ce4880fcd5494a26a0d199
| * Look for styles in all import paths.Friedemann Kleint2016-01-291-4/+11
| | | | | | | | | | | | | | | | | | The assumption that the QML import path is always last fails for the deployed case, in which the imports are directory under the binaries. Task-number: QTBUG-50730 Change-Id: Iea8b73d78375b6d211095fcb8ecc00e2127f4884 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 resource pathsJarkko Koivikko2015-10-281-1/+1
| | | | | | | | This change modifies the internal resource paths and makes them unique in the global context to avoid conflict with the application namespace. Change-Id: I72b17b744e07f5a94bb5ba99f3632d7f67b307ae Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* Refactor class namesJarkko Koivikko2015-10-281-0/+278
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>