aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/desktopinputselectioncontrol.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix DesktopInputSelectionControlJarkko Koivikko2023-03-241-3/+5
| | | | | | | | | | | Previously, the desktop selection handles were not functioning correctly. They were displayed at the wrong location and were not always appearing when needed. This issue has been resolved, ensuring the selection handles are now working as intended. Pick-to: 6.5 Change-Id: Ic546361285a88c06bf3d28cd545c2bda17ddadac Reviewed-by: Inho Lee <inho.lee@qt.io>
* Use SPDX license identifiersLucie Gérard2022-06-141-28/+2
| | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. License files are organized under LICENSES directory. Pick-to: 6.4 Task-number: QTBUG-67283 Change-Id: Iaeb3cb05cd781031a35e40f712805fa265116076 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Port qtvirtualkeyboard to declarative type registrationJarkko Koivikko2022-04-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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>
* Fix warnings from using deprecated APIsVolker Hilsheimer2020-09-161-4/+4
| | | | | | | | | | As of 557623cc4f22295e5e89462dfdff20d78b3b9cdc in qtbase, QLibraryInfo::location is QLibraryInfo::path. And fix warnings from using deprecated event APIs Change-Id: Idd397448c6e2e17e0224cfd955fb2c1dee7f5bb6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Qtify new APIMitch Curtis2018-09-271-1/+1
| | | | | | | | | | | | | | | Add "is" to C++ getter functions returning bool (where applicable). Add "Active" to "shift" and "capsLock" QML properties, etc. By making these names more explicit, it's clearer what they do and also future-proofs the API by allowing us to add related properties in the future if necessary. [ChangeLog][InputContext] Deprecated shift and capsLock properties in favor of shiftActive and capsLockActive. Change-Id: I66f2c85b50622a6e5fe6b25fb24f13be27acaf9d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Prefix non-namespaced header file names with qvirtualkeyboardJarkko Koivikko2018-08-271-2/+2
| | | | | | Change-Id: Idf2447736ef72fa0fb4dfeacc3386ed7b4fe41c9 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* Remove QtVirtualKeyboard namespace from the public APIJarkko Koivikko2018-08-271-10/+10
| | | | | | | | | | | | | | | | | This change removes the QtVirtualKeyboard namespace from the public API. This change was suggested in the API review. Use of namespace is uncommon in a public Qt module. Prefixed names are preferred instead. [ChangeLog] Removed QtVirtualKeyboard namespace from the public C++ API and prefixed class names with QVirtualKeyboard. The new class names are QVirtualKeyboardAbstractInputMethod, QVirtualKeyboardInputContext, QVirtualKeyboardInputEngine, QVirtualKeyboardSelectionListModel and QVirtualKeyboardTrace. Change-Id: I52d35090b544dc7e8c8c8e5632ce24c455730755 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* Trim InputContext APIJarkko Koivikko2018-08-271-2/+3
| | | | | | | | | | | | | | | | | The purpose of this change is to reduce the number of public API in the virtual keyboard. This change moves a lot of stuff from InputContext to ShiftHandler and InputContextPrivate and exposes the private API to QML through InputContext.priv property. Almost all the unrelevant APIs were moved away, except some properties and methods needed by selection control. These were left intact because moving them is not trivial. Change-Id: I1f23f5f54bc21c68996cb220a66d16d34b5d14ce Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* Use module include path instead of local include pathJarkko Koivikko2018-08-071-5/+5
| | | | | | | | 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-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Use QSharedPointer::create() moreMarc Mutz2017-07-211-2/+2
| | | | | | | | | | | | Reduces allocations. This is the result of running the (experimental) clang-tidy check qt-modernize-qsharedpointer-create Discarded changes: none. Change-Id: I9ef1ccd46315f1bb8f3cc30a652f17c18b46232c Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Consistently check qApp and equivalents before using themUlf Hermann2017-05-051-1/+4
| | | | | | | | | | | 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>
* Add selection handles for the dedicated vkbJan Arve Sæther2016-10-281-0/+323
The handles are implemented using top level windows, which will allow them to be used for widgets and other input editors supporting the IM framework [ChangeLog] Added support for selection handles for the dedicated VKB. Change-Id: I5078689310f99c4ec752a0aad47a48c5a66aface Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>