aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--src/import/qtquickvirtualkeyboardplugin.cpp3
-rw-r--r--src/plugin/extensionloader.cpp6
-rw-r--r--src/plugin/extensionloader.h4
-rw-r--r--src/plugin/plugin.cpp2
-rw-r--r--src/virtualkeyboard/content/components/Keyboard.qml38
-rw-r--r--src/virtualkeyboard/content/components/ShadowInputControl.qml2
-rw-r--r--tests/auto/inputpanel/data/inputpanel/handwritinginputpanel.qml4
-rw-r--r--tests/auto/inputpanel/data/inputpanel/inputpanel.qml7
-rw-r--r--tests/auto/inputpanel/data/tst_inputpanel.qml13
10 files changed, 49 insertions, 32 deletions
diff --git a/.qmake.conf b/.qmake.conf
index 09a75f0b..b3c7403c 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -2,4 +2,4 @@ load(qt_build_config)
DEFINES += QT_NO_FOREACH QT_NO_JAVA_STYLE_ITERATORS QT_NO_LINKED_LIST
-MODULE_VERSION = 5.14.1
+MODULE_VERSION = 5.15.0
diff --git a/src/import/qtquickvirtualkeyboardplugin.cpp b/src/import/qtquickvirtualkeyboardplugin.cpp
index ba866023..ed0ea4a6 100644
--- a/src/import/qtquickvirtualkeyboardplugin.cpp
+++ b/src/import/qtquickvirtualkeyboardplugin.cpp
@@ -77,7 +77,8 @@ void QtQuickVirtualKeyboardPlugin::registerTypes(const char *uri)
qmlRegisterUncreatableType<QVirtualKeyboardAbstractInputMethod>(uri, 2, 0, "AbstractInputMethod", QLatin1String("Cannot create abstract input method"));
qmlRegisterType<InputMethod>(uri, 1, 0, "InputMethod");
qmlRegisterType<InputMethod>(uri, 2, 0, "InputMethod");
- qmlRegisterType<EnterKeyActionAttachedType>();
+ qmlRegisterAnonymousType<EnterKeyActionAttachedType>(uri, 1);
+ qmlRegisterAnonymousType<EnterKeyActionAttachedType>(uri, 2);
qmlRegisterType<EnterKeyAction>(uri, 1, 0, "EnterKeyAction");
qmlRegisterType<EnterKeyAction>(uri, 2, 0, "EnterKeyAction");
qmlRegisterType<QVirtualKeyboardTrace>(uri, 2, 0, "Trace");
diff --git a/src/plugin/extensionloader.cpp b/src/plugin/extensionloader.cpp
index e3f1b28e..6b41f328 100644
--- a/src/plugin/extensionloader.cpp
+++ b/src/plugin/extensionloader.cpp
@@ -35,14 +35,14 @@ QT_BEGIN_NAMESPACE
namespace QtVirtualKeyboard {
QMutex ExtensionLoader::m_mutex;
-QHash<QString, QJsonObject> ExtensionLoader::m_plugins;
+QMultiHash<QString, QJsonObject> ExtensionLoader::m_plugins;
bool ExtensionLoader::m_alreadyDiscovered = false;
Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader,
(QVirtualKeyboardExtensionPluginFactoryInterface_iid,
QLatin1String("/virtualkeyboard")))
-QHash<QString, QJsonObject> ExtensionLoader::plugins(bool reload)
+QMultiHash<QString, QJsonObject> ExtensionLoader::plugins(bool reload)
{
QMutexLocker lock(&m_mutex);
@@ -105,7 +105,7 @@ void ExtensionLoader::loadPluginMetadata()
QString name = obj.value(QLatin1String("Name")).toString();
if (!name.isEmpty()) {
obj.insert(QLatin1String("index"), i);
- m_plugins.insertMulti(name, obj);
+ m_plugins.insert(name, obj);
}
}
}
diff --git a/src/plugin/extensionloader.h b/src/plugin/extensionloader.h
index 4d18ad30..8cdb49bd 100644
--- a/src/plugin/extensionloader.h
+++ b/src/plugin/extensionloader.h
@@ -40,7 +40,7 @@ class ExtensionLoader
{
Q_DISABLE_COPY(ExtensionLoader)
public:
- static QHash<QString, QJsonObject> plugins(bool reload = false);
+ static QMultiHash<QString, QJsonObject> plugins(bool reload = false);
static QJsonObject loadMeta(const QString &extensionName);
static QVirtualKeyboardExtensionPlugin *loadPlugin(QJsonObject metaData);
@@ -49,7 +49,7 @@ private:
private:
static QMutex m_mutex;
- static QHash<QString, QJsonObject> m_plugins;
+ static QMultiHash<QString, QJsonObject> m_plugins;
static bool m_alreadyDiscovered;
};
diff --git a/src/plugin/plugin.cpp b/src/plugin/plugin.cpp
index 2c50d324..bf58bc2f 100644
--- a/src/plugin/plugin.cpp
+++ b/src/plugin/plugin.cpp
@@ -78,7 +78,7 @@ QPlatformInputContext *QVirtualKeyboardPlugin::create(const QString &system, con
qmlRegisterType<PlainInputMethod>(pluginsUri, 2, 0, "PlainInputMethod");
qmlRegisterType<PlainInputMethod>(pluginsUri, 2, 3, "PlainInputMethod");
- QHash<QString, QJsonObject> extensions = ExtensionLoader::plugins();
+ QMultiHash<QString, QJsonObject> extensions = ExtensionLoader::plugins();
for (const QString &extensionName : extensions.uniqueKeys()) {
QJsonObject metaData = ExtensionLoader::loadMeta(extensionName);
if (metaData.isEmpty()) {
diff --git a/src/virtualkeyboard/content/components/Keyboard.qml b/src/virtualkeyboard/content/components/Keyboard.qml
index 1c6f174f..347f1076 100644
--- a/src/virtualkeyboard/content/components/Keyboard.qml
+++ b/src/virtualkeyboard/content/components/Keyboard.qml
@@ -105,16 +105,16 @@ Item {
}
Connections {
target: VirtualKeyboardSettings
- onLocaleChanged: {
+ function onLocaleChanged() {
updateDefaultLocale()
localeIndex = defaultLocaleIndex
}
- onActiveLocalesChanged: {
+ function onActiveLocalesChanged() {
updateDefaultLocale()
if (!isValidLocale(localeIndex) || VirtualKeyboardSettings.locale)
localeIndex = defaultLocaleIndex
}
- onFullScreenModeChanged: {
+ function onFullScreenModeChanged() {
wordCandidateView.disableAnimation = VirtualKeyboardSettings.fullScreenMode
keyboard.fullScreenMode = VirtualKeyboardSettings.fullScreenMode
}
@@ -153,23 +153,23 @@ Item {
Connections {
target: InputContext
- onInputMethodHintsChanged: {
+ function onInputMethodHintsChanged() {
if (InputContext.priv.focus)
updateInputMethod()
}
}
Connections {
target: InputContext.priv
- onInputItemChanged: {
+ function onInputItemChanged() {
keyboard.hideLanguagePopup()
if (active && symbolMode && !preferNumbers)
symbolMode = false
}
- onFocusChanged: {
+ function onFocusChanged() {
if (InputContext.priv.focus)
updateInputMethod()
}
- onNavigationKeyPressed: {
+ function onNavigationKeyPressed(key, isAutoRepeat) {
var initialKey
var direction = wordCandidateView.effectiveLayoutDirection == Qt.LeftToRight ? 1 : -1
switch (key) {
@@ -393,7 +393,7 @@ Item {
break
}
}
- onNavigationKeyReleased: {
+ function onNavigationKeyReleased(key, isAutoRepeat) {
switch (key) {
case Qt.Key_Return:
if (!keyboard.navigationModeActive) {
@@ -439,7 +439,7 @@ Item {
}
Connections {
target: InputContext.inputEngine
- onVirtualKeyClicked: {
+ function onVirtualKeyClicked(key, text, modifiers, isAutoRepeat) {
if (isAutoRepeat && keyboard.activeKey)
soundEffect.play(keyboard.activeKey.soundEffect)
if (key !== Qt.Key_unknown && keyboardInputArea.dragSymbolMode) {
@@ -459,7 +459,7 @@ Item {
}
Connections {
target: layoutsModel
- onCountChanged: {
+ function onCountChanged() {
updateDefaultLocale()
localeIndex = defaultLocaleIndex
}
@@ -630,7 +630,7 @@ Item {
Connections {
target: keyboard
- onActiveChanged: {
+ function onActiveChanged() {
if (keyboard.active)
shadowInputControlVisibleTimer.start()
else
@@ -688,9 +688,9 @@ Item {
onCurrentItemChanged: if (currentItem) soundEffect.register(currentItem.soundEffect)
Connections {
target: wordCandidateView.model ? wordCandidateView.model : null
- onActiveItemChanged: wordCandidateView.currentIndex = index
- onItemSelected: if (wordCandidateView.currentItem) soundEffect.play(wordCandidateView.currentItem.soundEffect)
- onCountChanged: {
+ function onActiveItemChanged(index) { wordCandidateView.currentIndex = index }
+ function onItemSelected() { if (wordCandidateView.currentItem) soundEffect.play(wordCandidateView.currentItem.soundEffect) }
+ function onCountChanged() {
var empty = wordCandidateView.model.count === 0
if (empty)
wordCandidateViewAutoHideTimer.restart()
@@ -702,11 +702,11 @@ Item {
}
Connections {
target: InputContext.priv
- onInputItemChanged: wordCandidateViewAutoHideTimer.stop()
+ function onInputItemChanged() { wordCandidateViewAutoHideTimer.stop() }
}
Connections {
target: InputContext.inputEngine
- onWordCandidateListVisibleHintChanged: wordCandidateViewAutoHideTimer.stop()
+ function onWordCandidateListVisibleHintChanged() { wordCandidateViewAutoHideTimer.stop() }
}
Timer {
id: wordCandidateViewAutoHideTimer
@@ -757,7 +757,7 @@ Item {
Connections {
target: VirtualKeyboardSettings
- onStyleNameChanged: {
+ function onStyleNameChanged() {
soundEffect.__sounds = {}
soundEffect.available = false
}
@@ -848,7 +848,7 @@ Item {
Connections {
target: keyboardLayoutLoader
- onStatusChanged: {
+ function onStatusChanged() {
if (keyboardLayoutLoader.status == Loader.Ready &&
keyboard.navigationModeActive &&
keyboardInputArea.navigationCursor !== Qt.point(-1, -1))
@@ -857,7 +857,7 @@ Item {
}
Connections {
target: keyboard
- onNavigationModeActiveChanged: {
+ function onNavigationModeActiveChanged() {
if (!keyboard.navigationModeActive) {
keyboardInputArea.navigationCursor = Qt.point(-1, -1)
keyboardInputArea.reset()
diff --git a/src/virtualkeyboard/content/components/ShadowInputControl.qml b/src/virtualkeyboard/content/components/ShadowInputControl.qml
index caa835ea..e3cde2e1 100644
--- a/src/virtualkeyboard/content/components/ShadowInputControl.qml
+++ b/src/virtualkeyboard/content/components/ShadowInputControl.qml
@@ -90,7 +90,7 @@ Item {
selectionColor: keyboard.style.fullScreenInputSelectionColor
selectedTextColor: keyboard.style.fullScreenInputSelectedTextColor
echoMode: (InputContext.inputMethodHints & Qt.ImhHiddenText) ? TextInput.Password : TextInput.Normal
- selectByMouse: true
+ selectByMouse: !!InputContext.inputItem && !!InputContext.inputItem.selectByMouse
onCursorPositionChanged: {
cursorSyncTimer.restart()
blinkStatus = true
diff --git a/tests/auto/inputpanel/data/inputpanel/handwritinginputpanel.qml b/tests/auto/inputpanel/data/inputpanel/handwritinginputpanel.qml
index aa7ae714..f3dc4ace 100644
--- a/tests/auto/inputpanel/data/inputpanel/handwritinginputpanel.qml
+++ b/tests/auto/inputpanel/data/inputpanel/handwritinginputpanel.qml
@@ -47,12 +47,12 @@ HandwritingInputPanel {
Connections {
target: InputContext
- onPreeditTextChanged: if (InputContext.preeditText.length > 0) inputMethodResult(InputContext.preeditText)
+ function onPreeditTextChanged() { if (InputContext.preeditText.length > 0) inputMethodResult(InputContext.preeditText) }
}
Connections {
target: InputContext.inputEngine
- onVirtualKeyClicked: inputMethodResult(text)
+ function onVirtualKeyClicked(key, text, modifiers, isAutoRepeat) { inputMethodResult(text) }
}
SignalSpy {
diff --git a/tests/auto/inputpanel/data/inputpanel/inputpanel.qml b/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
index 62361824..dd46a5b9 100644
--- a/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
+++ b/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
@@ -101,12 +101,15 @@ InputPanel {
Connections {
target: InputContext
- onPreeditTextChanged: if (InputContext.preeditText.length > 0) inputMethodResult(InputContext.preeditText)
+ function onPreeditTextChanged() {
+ if (InputContext.preeditText.length > 0)
+ inputMethodResult(InputContext.preeditText)
+ }
}
Connections {
target: InputContext.inputEngine
- onVirtualKeyClicked: inputMethodResult(text)
+ function onVirtualKeyClicked(key, text, modifiers, isAutoRepeat) { inputMethodResult(text) }
}
SignalSpy {
diff --git a/tests/auto/inputpanel/data/tst_inputpanel.qml b/tests/auto/inputpanel/data/tst_inputpanel.qml
index ea3394af..d46f29ce 100644
--- a/tests/auto/inputpanel/data/tst_inputpanel.qml
+++ b/tests/auto/inputpanel/data/tst_inputpanel.qml
@@ -104,6 +104,7 @@ Rectangle {
textInput.text = ""
}
textInput.inputMethodHints = data !== undefined && data.hasOwnProperty("initInputMethodHints") ? data.initInputMethodHints : Qt.ImhNone
+ textInput.selectByMouse = false
handwritingInputPanel.available = false
inputPanel.setHandwritingMode(false)
textInput.forceActiveFocus()
@@ -2080,6 +2081,18 @@ Rectangle {
compare(inputPanel.shadowInput.text, "")
}
+ function test_fullScreenModeSelectByMouse() {
+ prepareTest()
+
+ inputPanel.setFullScreenMode(true)
+
+ // The default value for TextInput/TextEdit is false.
+ compare(inputPanel.shadowInput.selectByMouse, false)
+
+ textInput.selectByMouse = true
+ compare(inputPanel.shadowInput.selectByMouse, true)
+ }
+
function test_userDictionary_data() {
return [
{ inputSequence: ['a','s','d','f'], initShift: false },