Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package qt6-virtualkeyboard for
openSUSE:Factory checked in at 2026-10-18 19:21:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-virtualkeyboard (Old)
and /work/SRC/openSUSE:Factory/.qt6-virtualkeyboard.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qt6-virtualkeyboard"
Sun Oct 18 19:21:41 2026 rev:43 rq:1384419 version:6.12.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-virtualkeyboard/qt6-virtualkeyboard.changes
2026-08-21 16:52:27.010112312 +0200
+++
/work/SRC/openSUSE:Factory/.qt6-virtualkeyboard.new.3698736/qt6-virtualkeyboard.changes
2026-10-18 19:21:58.592408450 +0200
@@ -1,0 +2,6 @@
+Wed Sep 30 16:16:15 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.12.0
+ https://www.qt.io/blog/qt-6.12-released
+
+-------------------------------------------------------------------
Old:
----
qtvirtualkeyboard-everywhere-src-6.11.2.tar.xz
New:
----
qtvirtualkeyboard-everywhere-src-6.12.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qt6-virtualkeyboard.spec ++++++
--- /var/tmp/diff_new_pack.hIRgOA/_old 2026-10-18 19:21:59.401441991 +0200
+++ /var/tmp/diff_new_pack.hIRgOA/_new 2026-10-18 19:21:59.403442074 +0200
@@ -16,8 +16,8 @@
#
-%define real_version 6.11.2
-%define short_version 6.11
+%define real_version 6.12.0
+%define short_version 6.12
%define tar_name qtvirtualkeyboard-everywhere-src
%define tar_suffix %{nil}
#
@@ -27,7 +27,7 @@
%endif
#
Name: qt6-virtualkeyboard%{?pkg_suffix}
-Version: 6.11.2
+Version: 6.12.0
Release: 0
Summary: Framework for writing or integrating input methods and engines
for Qt 6
License: GPL-3.0-only
++++++ qtvirtualkeyboard-everywhere-src-6.11.2.tar.xz ->
qtvirtualkeyboard-everywhere-src-6.12.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtvirtualkeyboard-everywhere-src-6.11.2/.cmake.conf
new/qtvirtualkeyboard-everywhere-src-6.12.0/.cmake.conf
--- old/qtvirtualkeyboard-everywhere-src-6.11.2/.cmake.conf 2026-08-12
18:35:10.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.12.0/.cmake.conf 2026-09-26
19:45:24.000000000 +0200
@@ -1,4 +1,4 @@
-set(QT_REPO_MODULE_VERSION "6.11.2")
+set(QT_REPO_MODULE_VERSION "6.12.0")
set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
set(QT_EXTRA_INTERNAL_TARGET_DEFINES
"QT_NO_CONTEXTLESS_CONNECT=1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtvirtualkeyboard-everywhere-src-6.11.2/.tag
new/qtvirtualkeyboard-everywhere-src-6.12.0/.tag
--- old/qtvirtualkeyboard-everywhere-src-6.11.2/.tag 2026-08-12
18:35:10.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.12.0/.tag 2026-09-26
19:45:24.000000000 +0200
@@ -1 +1 @@
-043d7629ccb62ce09b8c30cba7cc2a97248dfea9
+934b432b13cae5c64357a5e98547280bd191f806
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/CONTRIBUTING.md
new/qtvirtualkeyboard-everywhere-src-6.12.0/CONTRIBUTING.md
--- old/qtvirtualkeyboard-everywhere-src-6.11.2/CONTRIBUTING.md 1970-01-01
01:00:00.000000000 +0100
+++ new/qtvirtualkeyboard-everywhere-src-6.12.0/CONTRIBUTING.md 2026-09-26
19:45:24.000000000 +0200
@@ -0,0 +1,11 @@
+## Qt contribution guidelines
+
+We welcome contributions to Qt!
+
+Note that we cannot accept pull requests on GitHub. All contributions
+to the Qt project are exclusively handled through the
+[Gerrit code review system](https://codereview.qt-project.org).
+
+See
+[contribute.qt-project.org](https://contribute.qt-project.org/) to learn
+more.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtvirtualkeyboard-everywhere-src-6.11.2/REUSE.toml
new/qtvirtualkeyboard-everywhere-src-6.12.0/REUSE.toml
--- old/qtvirtualkeyboard-everywhere-src-6.11.2/REUSE.toml 2026-08-12
18:35:10.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.12.0/REUSE.toml 2026-09-26
19:45:24.000000000 +0200
@@ -41,7 +41,8 @@
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR BSD-3-Clause"
[[annotations]]
-path = ["**/doc/images/**", "**/README*", "**.qdocconf", "**.qdocinc"]
+path = ["**/doc/images/**", "**.qdocconf", "**.qdocinc",
+ "**/README*", "CONTRIBUTING.md"]
comment = "documentation"
precedence = "closest"
SPDX-FileCopyrightText = "Copyright (C) The Qt Company Ltd."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/config.tests/hunspell/main.cpp
new/qtvirtualkeyboard-everywhere-src-6.12.0/config.tests/hunspell/main.cpp
--- old/qtvirtualkeyboard-everywhere-src-6.11.2/config.tests/hunspell/main.cpp
2026-08-12 18:35:10.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.12.0/config.tests/hunspell/main.cpp
2026-09-26 19:45:24.000000000 +0200
@@ -1,5 +1,6 @@
// Copyright (C) 2020 The Qt Company Ltd.
// SPDX-License-Identifier: BSD-3-Clause
+// Qt-Security score:insignificant reason:build-system
#include <hunspell/hunspell.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/dependencies.yaml
new/qtvirtualkeyboard-everywhere-src-6.12.0/dependencies.yaml
--- old/qtvirtualkeyboard-everywhere-src-6.11.2/dependencies.yaml
2026-08-12 18:35:10.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.12.0/dependencies.yaml
2026-09-26 19:45:24.000000000 +0200
@@ -1,13 +1,13 @@
dependencies:
../qtbase:
- ref: ef55f427f2c8b410d34f8a7681020a3000cf6866
+ ref: 025bdad181de241e81bf853c8a2d7bf3d19261a9
required: true
../qtdeclarative:
- ref: 4e3399c26ec57246c08de019cfcbda8d23604cfa
+ ref: 4332fbbb4c340463dc8cee36dda0c85d932122d8
required: true
../qtmultimedia:
- ref: 6f162ccac1425edbd7b4d1582fabab5973b43d6c
+ ref: 6ca885f084a3984749d53bb50a0e08bdc60e86cc
required: false
../qtsvg:
- ref: 17ca512f903f935282ebeca496aac5d11ba4199a
+ ref: 883a58532078d003cefef0a549bfe9f885ce41f5
required: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/licenseRule.json
new/qtvirtualkeyboard-everywhere-src-6.12.0/licenseRule.json
--- old/qtvirtualkeyboard-everywhere-src-6.11.2/licenseRule.json
2026-08-12 18:35:10.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.12.0/licenseRule.json
2026-09-26 19:45:24.000000000 +0200
@@ -58,8 +58,9 @@
},
{
"comment": "Files with the following endings are Documentation
licensed.",
- "file_pattern_ending": [".qdoc", ".qdocinc" , ".qdocconf", "README",
"qt_attribution.json",
- "README.md", "README.txt"],
+ "file_pattern_ending": [".qdoc", ".qdocinc" , ".qdocconf",
+ "README", "README.md", "README.txt",
"CONTRIBUTING.md",
+ "qt_attribution.json"],
"location":{
"": {
"comment": "",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/components/BaseKey.qml
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/components/BaseKey.qml
--- old/qtvirtualkeyboard-everywhere-src-6.11.2/src/components/BaseKey.qml
2026-08-12 18:35:10.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.12.0/src/components/BaseKey.qml
2026-09-26 19:45:24.000000000 +0200
@@ -179,9 +179,13 @@
/*! Sets the show preview attribute.
- By default, the character preview popup is not shown for function keys.
+ By default, the character preview popup is not shown for function keys,
+ nor when the focused input item hides the text it displays, for example
+ a password field. In the latter case the preview would reveal the
+ characters the input item masks.
*/
- property bool showPreview: enabled && !functionKey &&
!keyboard.navigationModeActive
+ property bool showPreview: enabled && !functionKey &&
!keyboard.navigationModeActive &&
+ keyboard.inputItemEchoMode === TextInput.Normal
/*! This property holds the pressed status of the key.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/components/Keyboard.qml
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/components/Keyboard.qml
--- old/qtvirtualkeyboard-everywhere-src-6.11.2/src/components/Keyboard.qml
2026-08-12 18:35:10.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.12.0/src/components/Keyboard.qml
2026-09-26 19:45:24.000000000 +0200
@@ -38,6 +38,21 @@
readonly property bool dialableCharactersOnly:
InputContext.inputMethodHints & Qt.ImhDialableCharactersOnly
readonly property bool formattedNumbersOnly: InputContext.inputMethodHints
& Qt.ImhFormattedNumbersOnly
readonly property bool digitsOnly: InputContext.inputMethodHints &
Qt.ImhDigitsOnly
+ /* Echo mode of the focused input item.
+
+ Qt Quick input items clear Qt.ImhHiddenText for TextInput.Password and
+ TextInput.PasswordEchoOnEdit, and set Qt.ImhSensitiveData instead, so
+ the input method hints alone do not tell whether the input item hides
+ the text it displays. Therefore the echo mode of the input item is used
+ when it provides one, and the input method hints only as a fallback.
+ */
+ readonly property int inputItemEchoMode: {
+ const inputItem = InputContext.priv.inputItem
+ const echoMode = inputItem ? inputItem.echoMode : undefined
+ if (echoMode !== undefined)
+ return echoMode
+ return (InputContext.inputMethodHints & Qt.ImhHiddenText) ?
TextInput.Password : TextInput.Normal
+ }
property string layout
property string layoutType: {
if (keyboard.handwritingMode) return "handwriting"
@@ -655,7 +670,11 @@
anchors.bottom: wordCandidateView.top
width: Math.min(shadowInputControl.contentWidth, parent.width)
height: shadowInputControl.contentHeight
- visible: fullScreenMode && (shadowInputControlVisibleTimer.running ||
InputContext.animating)
+ // An input item with TextInput.NoEcho displays nothing, and so does
the
+ // shadow input which mirrors it. Leave it out entirely in that case,
+ // instead of reserving space for a control that cannot show anything.
+ visible: fullScreenMode && keyboard.inputItemEchoMode !==
TextInput.NoEcho &&
+ (shadowInputControlVisibleTimer.running ||
InputContext.animating)
Connections {
target: keyboard
@@ -686,7 +705,8 @@
inputContext: InputContext.priv.shadow
anchors.top: shadowInputControl.top
anchors.left: shadowInputControl.left
- enabled: keyboard.enabled && fullScreenMode
+ // The handles belong to the shadow input, so they follow its
visibility.
+ enabled: keyboard.enabled && fullScreenMode &&
keyboard.inputItemEchoMode !== TextInput.NoEcho
}
ListView {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/components/ShadowInputControl.qml
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/components/ShadowInputControl.qml
---
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/components/ShadowInputControl.qml
2026-08-12 18:35:10.000000000 +0200
+++
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/components/ShadowInputControl.qml
2026-09-26 19:45:24.000000000 +0200
@@ -84,7 +84,10 @@
color: keyboard.style.fullScreenInputColor
selectionColor: keyboard.style.fullScreenInputSelectionColor
selectedTextColor: keyboard.style.fullScreenInputSelectedTextColor
- echoMode: (InputContext.inputMethodHints & Qt.ImhHiddenText) ?
TextInput.Password : TextInput.Normal
+ // Mask PasswordEchoOnEdit like Password: this input never has the
+ // active focus, so it must not echo the text in clear.
+ echoMode: keyboard.inputItemEchoMode ===
TextInput.PasswordEchoOnEdit ?
+ TextInput.Password : keyboard.inputItemEchoMode
selectByMouse: !!InputContext.inputItem &&
!!InputContext.inputItem.selectByMouse
onCursorPositionChanged: {
cursorSyncTimer.restart()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/plugin/plugin.cpp
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/plugin/plugin.cpp
--- old/qtvirtualkeyboard-everywhere-src-6.11.2/src/plugin/plugin.cpp
2026-08-12 18:35:10.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.12.0/src/plugin/plugin.cpp
2026-09-26 19:45:24.000000000 +0200
@@ -3,6 +3,7 @@
// Qt-Security score:significant reason:default
#include "plugin.h"
+#include <private/settings_p.h>
#include <QtVirtualKeyboard/private/platforminputcontext_p.h>
#include <QLoggingCategory>
#if defined(Q_OS_WIN)
@@ -10,27 +11,68 @@
#endif
#include <qpa/qplatforminputcontextfactory_p.h>
+#include <algorithm>
+
QT_BEGIN_NAMESPACE
+using namespace Qt::StringLiterals;
+
using namespace QtVirtualKeyboard;
Q_LOGGING_CATEGORY(qlcVirtualKeyboard, "qt.virtualkeyboard")
-static const char pluginName[] = "qtvirtualkeyboard";
+static constexpr auto pluginName = "qtvirtualkeyboard"_L1;
QStringList QVirtualKeyboardPlugin::keys() const
{
- return QStringList(QLatin1String(pluginName));
+ return QStringList(pluginName);
}
-QPlatformInputContext *QVirtualKeyboardPlugin::create(const QString &system,
const QStringList ¶mList)
+static bool evaluateParameter(QStringView param)
{
- Q_UNUSED(paramList);
+ if (param == "wordCandidateListVisible"_L1) {
+ Settings::instance()->setWclAlwaysVisible(true);
+ return true;
+ }
+ if (param == "wordCandidateListAutoCommitWord"_L1) {
+ Settings::instance()->setWclAutoCommitWord(true);
+ return true;
+ }
+ if (param == "fullScreen"_L1) {
+ Settings::instance()->setFullScreenMode(true);
+ return true;
+ }
+
+ const auto equalsPos = param.indexOf(u'=');
+ if (equalsPos == -1 || equalsPos == param.size() - 1)
+ return false;
+
+ const auto keyword = param.sliced(0, equalsPos);
+ const auto value = param.sliced(equalsPos + 1);
+ if (keyword == "style"_L1) {
+ Settings::instance()->setStyleName(value.toString());
+ return true;
+ }
+ if (keyword == "locale"_L1) {
+ Settings::instance()->setLocale(value.toString());
+ return true;
+ }
- if
(!QPlatformInputContextFactory::requested().contains(QLatin1StringView(pluginName)))
+ return false;
+}
+
+static bool vkbRequested(const QString &req)
+{
+ return req.startsWith(pluginName);
+}
+
+QPlatformInputContext *QVirtualKeyboardPlugin::create(const QString &system,
const QStringList ¶mList)
+{
+ const auto &requested = QPlatformInputContextFactory::requested();
+ if (std::none_of(requested.cbegin(), requested.cend(), vkbRequested))
return nullptr;
- if (system.compare(system, QLatin1String(pluginName), Qt::CaseInsensitive)
!= 0)
+ if (system.compare(pluginName, Qt::CaseInsensitive) != 0)
return nullptr;
#if defined(Q_OS_WIN)
@@ -38,6 +80,17 @@
ImmDisableIME(0);
#endif
+ for (const auto ¶m : paramList) {
+ QStringView paramV{param};
+ const auto params = paramV.split(u',');
+ for (const auto ¶m : params) {
+ if (!evaluateParameter(param)) {
+ qCWarning(qlcVirtualKeyboard, "Invalid parameter \"%s\".",
+ qPrintable(param.toString()));
+ }
+ }
+ }
+
PlatformInputContext *platformInputContext = new PlatformInputContext();
return platformInputContext;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/plugins/hunspell/module/CMakeLists.txt
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/plugins/hunspell/module/CMakeLists.txt
---
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/plugins/hunspell/module/CMakeLists.txt
2026-08-12 18:35:10.000000000 +0200
+++
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/plugins/hunspell/module/CMakeLists.txt
2026-09-26 19:45:24.000000000 +0200
@@ -28,7 +28,8 @@
LIBRARIES
Qt::Core
Qt::Gui
- PUBLIC_LIBRARIES
+ Qt::VirtualKeyboardPrivate
+ PRIVATE_MODULE_INTERFACE
Qt::VirtualKeyboardPrivate
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/styles/KeyboardStyle.qml
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/styles/KeyboardStyle.qml
--- old/qtvirtualkeyboard-everywhere-src-6.11.2/src/styles/KeyboardStyle.qml
2026-08-12 18:35:10.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.12.0/src/styles/KeyboardStyle.qml
2026-09-26 19:45:24.000000000 +0200
@@ -16,20 +16,85 @@
The design size specifies the aspect ratio of the virtual keyboard.
Styles are scalable according to \l scaleHint, which is
calculated from the keyboard's actual height and design height.
+
+ The keyboard is laid out at a fixed design size, defined by
+ \l keyboardDesignWidth and \l keyboardDesignHeight, and then scaled to
+ fit the available width. The rendered height follows from the design
+ aspect ratio: \c {keyboardDesignHeight * width / keyboardDesignWidth}.
+ \l keyboardHeight reflects the actual, scaled height used at run time.
+
+ \l keyboardDesignMaximumHeight can optionally cap that height. While the
+ cap is not in effect, the key area spans the full available width. When the
+ scaled height would exceed the maximum, the design aspect ratio is
+ preserved and the whole keyboard is scaled by
+ \c {keyboardDesignMaximumHeight / keyboardDesignHeight} instead, so the
+ keyboard never grows taller than the maximum. In that clamped case the key
+ area becomes narrower than the available width and is centered, leaving
+ empty margins on both sides; only the keyboard background still spans the
+ full width. \l scaleHint is the ratio of \l keyboardHeight to
+ \l keyboardDesignHeight and should be used to keep all pixel dimensions
+ proportional.
+
+ Note that \l keyboardDesignWidth and \l keyboardDesignHeight are
+ authoring units (the built-in styles use \c {2560x800} and are never
+ rendered at that size), whereas \l keyboardDesignMaximumHeight is in
+ logical pixels, because it is compared directly against the rendered
+ height (which is also in logical pixels).
*/
QtObject {
- /*! The current height of the keyboard. */
+ /*!
+ The current height of the keyboard, in logical pixels.
+
+ This is the actual, scaled height at which the keyboard is rendered.
+ It is set by the keyboard implementation (bound to the height of the
+ key area container) and reflects the layout that results from applying
+ \l keyboardDesignWidth, \l keyboardDesignHeight and, if set,
+ \l keyboardDesignMaximumHeight to the available width. Use it together
+ with \l keyboardDesignHeight to obtain \l scaleHint.
+ */
property real keyboardHeight
- /*! The design width of the keyboard. */
+ /*!
+ The design width of the keyboard, in authoring units.
+
+ Together with \l keyboardDesignHeight it defines the design aspect
+ ratio of the keyboard layout. The style is authored at this size and
+ then scaled to the actual width; the rendered height is derived from
+ \c {keyboardDesignHeight * width / keyboardDesignWidth}.
+ */
property real keyboardDesignWidth
- /*! The design height of the keyboard. */
+ /*!
+ The design height of the keyboard, in authoring units.
+
+ Together with \l keyboardDesignWidth it defines the design aspect
+ ratio of the keyboard layout. The rendered height is
+ \c {keyboardDesignHeight * width / keyboardDesignWidth}, unless that
+ value exceeds \l keyboardDesignMaximumHeight, in which case the design
+ aspect ratio is preserved and the whole keyboard is scaled by
+ \c {keyboardDesignMaximumHeight / keyboardDesignHeight} instead. It is
+ also the reference height used by \l scaleHint.
+ */
property real keyboardDesignHeight
/*!
- The maximum design height of the keyboard.
+ The maximum design height of the keyboard, in logical pixels.
+
+ When set to a value greater than \c 0, it caps the rendered height
+ that would otherwise result from scaling \l keyboardDesignHeight to
+ the available width. If the scaled height exceeds this maximum, the
+ keyboard is rendered at \l keyboardDesignMaximumHeight; the design
+ aspect ratio is preserved and the whole keyboard is scaled by
+ \c {keyboardDesignMaximumHeight / keyboardDesignHeight} instead, so
+ the keyboard never grows taller than the maximum. A value of \c 0 or
+ less (the default) means there is no maximum, so the height follows
+ \l keyboardDesignHeight scaled to the width.
+
+ Unlike \l keyboardDesignWidth and \l keyboardDesignHeight, this value
+ is in logical pixels, because it is compared directly against the
+ rendered height.
+
\since 6.11
*/
property real keyboardDesignMaximumHeight
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/virtualkeyboard/doc/src/build.qdoc
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/virtualkeyboard/doc/src/build.qdoc
---
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/virtualkeyboard/doc/src/build.qdoc
2026-08-12 18:35:10.000000000 +0200
+++
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/virtualkeyboard/doc/src/build.qdoc
2026-09-26 19:45:24.000000000 +0200
@@ -18,7 +18,7 @@
\li Qt Virtual Keyboard Demo application
\row
\li \e src/components/
- \li Qt Virtual Keyboard Components QML plugin
(QtQuick.VirtualKeyboard.Components)
+ \li Qt Virtual Keyboard Components QML plugin
(\l{QtQuick.VirtualKeyboard.Components})
\row
\li \e src/plugin/
\li Qt Virtual Keyboard platform input context plugin. This plugin
@@ -26,16 +26,16 @@
layer between QML input context and platform.
\row
\li \e src/plugins/
- \li A directory containing Qt Virtual Keyboard plugins
(QtQuick.VirtualKeyboard.Plugins),
+ \li A directory containing Qt Virtual Keyboard plugins
(\l{QtQuick.VirtualKeyboard}.Plugins),
which implement complex input methods, such as the \e
HunspellInputMethod.
Build time configuration specifies which plugins are built and loaded
at runtime.
\row
\li \e src/settings/
- \li Qt Virtual Keyboard Settings QML plugin
(QtQuick.VirtualKeyboard.Settings).
+ \li Qt Virtual Keyboard Settings QML plugin
(\l{QtQuick.VirtualKeyboard.Settings}).
This plugin provides application-configurable settings for the virtual
keyboard.
\row
\li \e src/styles/
- \li Qt Virtual Keyboard Styles QML plugin (QtQuick.VirtualKeyboard.Styles).
+ \li Qt Virtual Keyboard Styles QML plugin
(\l{QtQuick.VirtualKeyboard.Styles}).
\row
\li \e src/virtualkeyboard/
\li Qt Virtual Keyboard module and QML plugin.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/virtualkeyboard/doc/src/deployment-guide.qdoc
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/virtualkeyboard/doc/src/deployment-guide.qdoc
---
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/virtualkeyboard/doc/src/deployment-guide.qdoc
2026-08-12 18:35:10.000000000 +0200
+++
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/virtualkeyboard/doc/src/deployment-guide.qdoc
2026-09-26 19:45:24.000000000 +0200
@@ -181,6 +181,34 @@
input panel height will be automatically updated according to the available
width; the aspect ratio of the input panel is constant.
+\section1 Plugin Parameters
+
+Some parameters may be specified by appending them to the value of the
+ \c QT_IM_MODULE (following a colon), for example
+\c QT_IM_MODULE=qtvirtualkeyboard:wordCandidateListVisible .
+Some parameters are key value pairs separated by \c "=".
+
+\table
+ \header
+ \li Parameter
+ \li Purpose
+ \row
+ \li wordCandidateListVisible
+ \li Shows the word candidate list.
+ \row
+ \li wordCandidateListAutoCommitWord
+ \li Enables AutoCommit for the word candidate list.
+ \row
+ \li fullScreen
+ \li Use full screen mode
+ \row
+ \li style=<name>
+ \li Set the style
+ \row
+ \li locale=<name>
+ \li Set the locale
+\endtable
+
\section1 Environment Variables
There are several environment variables defined by the module that are listed
below:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/virtualkeyboard/qvirtualkeyboardselectionlistmodel.cpp
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/virtualkeyboard/qvirtualkeyboardselectionlistmodel.cpp
---
old/qtvirtualkeyboard-everywhere-src-6.11.2/src/virtualkeyboard/qvirtualkeyboardselectionlistmodel.cpp
2026-08-12 18:35:10.000000000 +0200
+++
new/qtvirtualkeyboard-everywhere-src-6.12.0/src/virtualkeyboard/qvirtualkeyboardselectionlistmodel.cpp
2026-09-26 19:45:24.000000000 +0200
@@ -210,7 +210,7 @@
\property QVirtualKeyboardSelectionListModel::count
\internal
*/
-/*
+/*!
\internal
*/
int QVirtualKeyboardSelectionListModel::count() const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/tests/auto/inputpanel/data/tst_inputpanel.qml
new/qtvirtualkeyboard-everywhere-src-6.12.0/tests/auto/inputpanel/data/tst_inputpanel.qml
---
old/qtvirtualkeyboard-everywhere-src-6.11.2/tests/auto/inputpanel/data/tst_inputpanel.qml
2026-08-12 18:35:10.000000000 +0200
+++
new/qtvirtualkeyboard-everywhere-src-6.12.0/tests/auto/inputpanel/data/tst_inputpanel.qml
2026-09-26 19:45:24.000000000 +0200
@@ -376,6 +376,8 @@
{ initText: "", initInputMethodHints: Qt.ImhNoPredictiveText |
Qt.ImhNoAutoUppercase, inputKey: Qt.Key_AsciiTilde, outputKeyCountMin: 1,
outputKey: Qt.Key_AsciiTilde, preview: true, outputKeyText: "~",
outputKeyModifiers: Qt.NoModifier, outputKeyRepeat: false, outputText: "~" },
// alternative key press, i.e. long key press
{ initText: "", initInputMethodHints: Qt.ImhNoPredictiveText |
Qt.ImhNoAutoUppercase, inputKey: "\u00E4", outputKeyCountMin: 1, outputKey:
Qt.Key_A, preview: true, outputKeyText: "\u00E4", outputKeyModifiers:
Qt.NoModifier, outputKeyRepeat: false, outputText: "\u00E4" },
+ // no preview when the input item hides the text it displays
+ { initText: "", initInputMethodHints: Qt.ImhNoPredictiveText |
Qt.ImhNoAutoUppercase | Qt.ImhHiddenText, inputKey: Qt.Key_A,
outputKeyCountMin: 1, outputKey: Qt.Key_A, preview: false, outputKeyText: "a",
outputKeyModifiers: Qt.NoModifier, outputKeyRepeat: false, outputText: "a" },
// function key press
{ initText: "x", initInputMethodHints: Qt.ImhNoPredictiveText
| Qt.ImhNoAutoUppercase, inputKey: Qt.Key_Shift, outputKeyCountMin: 1,
outputKey: Qt.Key_Shift, preview: false, outputKeyText: "", outputKeyModifiers:
Qt.NoModifier, outputKeyRepeat: false, outputText: "x" },
{ initText: "x", initInputMethodHints: Qt.ImhNoPredictiveText
| Qt.ImhNoAutoUppercase, inputKey: Qt.Key_Backspace, outputKeyCountMin: 1,
outputKey: Qt.Key_Backspace, preview: false, outputKeyText: "",
outputKeyModifiers: Qt.NoModifier, outputKeyRepeat: false, outputText: "" },
@@ -410,6 +412,24 @@
compare(textInput.text, data.outputText)
}
+ function test_keyPressNoPreviewForPasswordField() {
+ prepareTest()
+
+ // A Qt Quick password field reports Qt.ImhSensitiveData instead of
+ // Qt.ImhHiddenText, so the preview must follow the echo mode of
the
+ // input item rather than the input method hints.
+ let passwordField = createTemporaryObject(textFieldComp,
container, {echoMode: TextInput.Password})
+ passwordField.forceActiveFocus()
+ waitForRendering(inputPanel)
+ verify(passwordField.activeFocus === true)
+ verify(inputPanel.visible === true)
+
+ inputPanel.characterPreviewBubbleSpy.clear()
+ verify(inputPanel.virtualKeyClick(Qt.Key_A))
+ compare(inputPanel.characterPreviewBubbleSpy.count, 0)
+ compare(passwordField.text, "a")
+ }
+
function test_keyReleaseInaccuracy() {
prepareTest({ initInputMethodHints: Qt.ImhNoPredictiveText })
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/tests/auto/shadowinput/data/inputpanel/inputpanel.qml
new/qtvirtualkeyboard-everywhere-src-6.12.0/tests/auto/shadowinput/data/inputpanel/inputpanel.qml
---
old/qtvirtualkeyboard-everywhere-src-6.11.2/tests/auto/shadowinput/data/inputpanel/inputpanel.qml
2026-08-12 18:35:10.000000000 +0200
+++
new/qtvirtualkeyboard-everywhere-src-6.12.0/tests/auto/shadowinput/data/inputpanel/inputpanel.qml
2026-09-26 19:45:24.000000000 +0200
@@ -16,6 +16,7 @@
property bool fullScreenMode: true
property bool shadowInputVisible: keyboard.shadowInputControl.visible
property string shadowInputText: keyboard.shadowInputControl.textEdit.text
+ property int shadowInputEchoMode:
keyboard.shadowInputControl.textEdit.echoMode
Binding {
target: VirtualKeyboardSettings
property: "fullScreenMode"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtvirtualkeyboard-everywhere-src-6.11.2/tests/auto/shadowinput/data/tst_shadowinput.qml
new/qtvirtualkeyboard-everywhere-src-6.12.0/tests/auto/shadowinput/data/tst_shadowinput.qml
---
old/qtvirtualkeyboard-everywhere-src-6.11.2/tests/auto/shadowinput/data/tst_shadowinput.qml
2026-08-12 18:35:10.000000000 +0200
+++
new/qtvirtualkeyboard-everywhere-src-6.12.0/tests/auto/shadowinput/data/tst_shadowinput.qml
2026-09-26 19:45:24.000000000 +0200
@@ -69,6 +69,16 @@
}
}
+ Component {
+ id: passwordInputComp
+ TextInput {
+ visible: true
+ focus: true
+ echoMode: TextInput.Password
+ color: "white"
+ }
+ }
+
function test_fullScreenModeBindingWorks() {
prepareTest()
@@ -88,5 +98,22 @@
textInput.text = "world"
compare(inputPanel.shadowInputText, "")
}
+
+ function test_shadowInputMasksPasswordInput() {
+ prepareTest()
+
+ inputPanel.fullScreenMode = true
+ waitForRendering(inputPanel)
+
+ let passwordInput = createTemporaryObject(passwordInputComp,
container)
+ passwordInput.forceActiveFocus()
+ waitForRendering(inputPanel)
+ verify(passwordInput.activeFocus === true)
+
+ // A Qt Quick password field reports Qt.ImhSensitiveData instead of
+ // Qt.ImhHiddenText, so the shadow input must follow the echo mode
+ // of the input item rather than the input method hints.
+ compare(inputPanel.shadowInputEchoMode, TextInput.Password)
+ }
}
}