diff options
author | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2018-08-24 10:54:56 +0300 |
---|---|---|
committer | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2018-09-06 09:46:11 +0000 |
commit | 35102b362db11828e01e7356c42c4a9e8764ac60 (patch) | |
tree | 921508408bfe566f52427cf2294bc75af7cac174 /src/virtualkeyboard | |
parent | ee16df4f0f4ec884abf5b676706ecd1c8851b8a0 (diff) |
Move QML types registration to import modules
This change moves the QML type registration from platform input
context plugin to respective QML plugins:
QtQuick.VirtualKeyboard (import.pro)
QtQuick.VirtualKeyboard.Settings (settings.pro)
Input method types (e.g. from the virtual keyboard plugins) are still
registered in the qtvirtualkeyboard module, but with new URI:
QtQuick.VirtualKeyboard.Plugins (plugin.pro)
This change is necessary, because the Quick.VirtualKeyboard URI is now
reserved for the QML module.
Like before, the Quick.VirtualKeyboard module cannot be used without
setting QT_IM_MODULE=qtvirtualkeyboard environment variable.
The main motivation for this change was to make plugins.qmltypes
generation possible for C++ based QML types.
Change-Id: Ieb449eb73e0fa33e9a1686d471cc4284982ea1bd
Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/virtualkeyboard')
47 files changed, 158 insertions, 45 deletions
diff --git a/src/virtualkeyboard/content/components/Keyboard.qml b/src/virtualkeyboard/content/components/Keyboard.qml index 6003bb03..84717450 100644 --- a/src/virtualkeyboard/content/components/Keyboard.qml +++ b/src/virtualkeyboard/content/components/Keyboard.qml @@ -33,6 +33,7 @@ import QtQuick.Window 2.2 import QtQuick.VirtualKeyboard 2.3 import QtQuick.VirtualKeyboard.Styles 2.1 import QtQuick.VirtualKeyboard.Settings 2.2 +import QtQuick.VirtualKeyboard.Plugins 2.3 import Qt.labs.folderlistmodel 2.0 Item { @@ -82,7 +83,7 @@ Item { function initDefaultInputMethod() { try { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; DefaultInputMethod {}', keyboard, "defaultInputMethod") + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; DefaultInputMethod {}', keyboard, "defaultInputMethod") } catch (e) { } return plainInputMethod } @@ -1583,7 +1584,7 @@ Item { } function isHandwritingAvailable() { - return VirtualKeyboardInputMethods.indexOf("HandwritingInputMethod") !== -1 && layoutExists(locale, "handwriting") + return InputContext.priv.inputMethods.indexOf("HandwritingInputMethod") !== -1 && layoutExists(locale, "handwriting") } function setHandwritingMode(enabled, resetInputMode) { diff --git a/src/virtualkeyboard/content/layouts/ar_AR/digits.qml b/src/virtualkeyboard/content/layouts/ar_AR/digits.qml index 4e8fd690..6d7047f4 100644 --- a/src/virtualkeyboard/content/layouts/ar_AR/digits.qml +++ b/src/virtualkeyboard/content/layouts/ar_AR/digits.qml @@ -30,6 +30,7 @@ import QtQuick 2.0 import QtQuick.Layouts 1.0 import QtQuick.VirtualKeyboard 2.1 +import QtQuick.VirtualKeyboard.Plugins 2.3 KeyboardLayout { inputMethod: PlainInputMethod {} diff --git a/src/virtualkeyboard/content/layouts/ar_AR/handwriting.qml b/src/virtualkeyboard/content/layouts/ar_AR/handwriting.qml index f614b76f..f82e4b6c 100644 --- a/src/virtualkeyboard/content/layouts/ar_AR/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/ar_AR/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] inputMode: InputEngine.InputMode.Arabic diff --git a/src/virtualkeyboard/content/layouts/ar_AR/numbers.qml b/src/virtualkeyboard/content/layouts/ar_AR/numbers.qml index b3f5fc72..fe709489 100644 --- a/src/virtualkeyboard/content/layouts/ar_AR/numbers.qml +++ b/src/virtualkeyboard/content/layouts/ar_AR/numbers.qml @@ -30,6 +30,7 @@ import QtQuick 2.0 import QtQuick.Layouts 1.0 import QtQuick.VirtualKeyboard 2.1 +import QtQuick.VirtualKeyboard.Plugins 2.3 KeyboardLayout { inputMethod: PlainInputMethod {} diff --git a/src/virtualkeyboard/content/layouts/bg_BG/handwriting.qml b/src/virtualkeyboard/content/layouts/bg_BG/handwriting.qml index 60e8fe4c..16f078cb 100644 --- a/src/virtualkeyboard/content/layouts/bg_BG/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/bg_BG/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] diff --git a/src/virtualkeyboard/content/layouts/cs_CZ/handwriting.qml b/src/virtualkeyboard/content/layouts/cs_CZ/handwriting.qml index 6ec47501..caf820ae 100644 --- a/src/virtualkeyboard/content/layouts/cs_CZ/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/cs_CZ/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] inputMode: InputEngine.InputMode.Latin diff --git a/src/virtualkeyboard/content/layouts/el_GR/handwriting.qml b/src/virtualkeyboard/content/layouts/el_GR/handwriting.qml index 742e2874..b010ecf4 100644 --- a/src/virtualkeyboard/content/layouts/el_GR/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/el_GR/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] diff --git a/src/virtualkeyboard/content/layouts/es_ES/handwriting.qml b/src/virtualkeyboard/content/layouts/es_ES/handwriting.qml index aa0e7399..d4896408 100644 --- a/src/virtualkeyboard/content/layouts/es_ES/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/es_ES/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] inputMode: InputEngine.InputMode.Latin diff --git a/src/virtualkeyboard/content/layouts/es_MX/handwriting.qml b/src/virtualkeyboard/content/layouts/es_MX/handwriting.qml index aa0e7399..d4896408 100644 --- a/src/virtualkeyboard/content/layouts/es_MX/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/es_MX/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] inputMode: InputEngine.InputMode.Latin diff --git a/src/virtualkeyboard/content/layouts/fa_FA/digits.qml b/src/virtualkeyboard/content/layouts/fa_FA/digits.qml index 73fc6035..ed92201f 100644 --- a/src/virtualkeyboard/content/layouts/fa_FA/digits.qml +++ b/src/virtualkeyboard/content/layouts/fa_FA/digits.qml @@ -30,6 +30,7 @@ import QtQuick 2.0 import QtQuick.Layouts 1.0 import QtQuick.VirtualKeyboard 2.1 +import QtQuick.VirtualKeyboard.Plugins 2.3 KeyboardLayout { inputMethod: PlainInputMethod {} diff --git a/src/virtualkeyboard/content/layouts/fa_FA/handwriting.qml b/src/virtualkeyboard/content/layouts/fa_FA/handwriting.qml index bf89784c..1a43b05e 100644 --- a/src/virtualkeyboard/content/layouts/fa_FA/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/fa_FA/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] inputMode: InputEngine.InputMode.Arabic diff --git a/src/virtualkeyboard/content/layouts/fa_FA/numbers.qml b/src/virtualkeyboard/content/layouts/fa_FA/numbers.qml index 6292d92f..e32a1e71 100644 --- a/src/virtualkeyboard/content/layouts/fa_FA/numbers.qml +++ b/src/virtualkeyboard/content/layouts/fa_FA/numbers.qml @@ -30,6 +30,7 @@ import QtQuick 2.0 import QtQuick.Layouts 1.0 import QtQuick.VirtualKeyboard 2.1 +import QtQuick.VirtualKeyboard.Plugins 2.3 KeyboardLayout { inputMethod: PlainInputMethod {} diff --git a/src/virtualkeyboard/content/layouts/fallback/dialpad.qml b/src/virtualkeyboard/content/layouts/fallback/dialpad.qml index 37e8c6a8..89f6873a 100644 --- a/src/virtualkeyboard/content/layouts/fallback/dialpad.qml +++ b/src/virtualkeyboard/content/layouts/fallback/dialpad.qml @@ -30,6 +30,7 @@ import QtQuick 2.0 import QtQuick.Layouts 1.0 import QtQuick.VirtualKeyboard 2.1 +import QtQuick.VirtualKeyboard.Plugins 2.3 KeyboardLayout { inputMethod: PlainInputMethod {} diff --git a/src/virtualkeyboard/content/layouts/fallback/digits.qml b/src/virtualkeyboard/content/layouts/fallback/digits.qml index 4cbae92d..432984a1 100644 --- a/src/virtualkeyboard/content/layouts/fallback/digits.qml +++ b/src/virtualkeyboard/content/layouts/fallback/digits.qml @@ -30,6 +30,7 @@ import QtQuick 2.0 import QtQuick.Layouts 1.0 import QtQuick.VirtualKeyboard 2.1 +import QtQuick.VirtualKeyboard.Plugins 2.3 KeyboardLayout { inputMethod: PlainInputMethod {} diff --git a/src/virtualkeyboard/content/layouts/fallback/handwriting.qml b/src/virtualkeyboard/content/layouts/fallback/handwriting.qml index 126cde2d..1da3fc8e 100644 --- a/src/virtualkeyboard/content/layouts/fallback/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/fallback/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] diff --git a/src/virtualkeyboard/content/layouts/fallback/numbers.qml b/src/virtualkeyboard/content/layouts/fallback/numbers.qml index 461af67a..7fd0a2ab 100644 --- a/src/virtualkeyboard/content/layouts/fallback/numbers.qml +++ b/src/virtualkeyboard/content/layouts/fallback/numbers.qml @@ -30,6 +30,7 @@ import QtQuick 2.0 import QtQuick.Layouts 1.0 import QtQuick.VirtualKeyboard 2.1 +import QtQuick.VirtualKeyboard.Plugins 2.3 KeyboardLayout { inputMethod: PlainInputMethod {} diff --git a/src/virtualkeyboard/content/layouts/he_IL/handwriting.qml b/src/virtualkeyboard/content/layouts/he_IL/handwriting.qml index e369de68..66914c71 100644 --- a/src/virtualkeyboard/content/layouts/he_IL/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/he_IL/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] diff --git a/src/virtualkeyboard/content/layouts/hi_IN/handwriting.qml b/src/virtualkeyboard/content/layouts/hi_IN/handwriting.qml index 2eb4cc21..1ae1fa4f 100644 --- a/src/virtualkeyboard/content/layouts/hi_IN/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/hi_IN/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.1 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.1; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.1; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] diff --git a/src/virtualkeyboard/content/layouts/hr_HR/handwriting.qml b/src/virtualkeyboard/content/layouts/hr_HR/handwriting.qml index d601568c..968bae8e 100644 --- a/src/virtualkeyboard/content/layouts/hr_HR/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/hr_HR/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] inputMode: InputEngine.InputMode.Latin diff --git a/src/virtualkeyboard/content/layouts/hu_HU/handwriting.qml b/src/virtualkeyboard/content/layouts/hu_HU/handwriting.qml index 6ec47501..caf820ae 100644 --- a/src/virtualkeyboard/content/layouts/hu_HU/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/hu_HU/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] inputMode: InputEngine.InputMode.Latin diff --git a/src/virtualkeyboard/content/layouts/ja_JP/handwriting.qml b/src/virtualkeyboard/content/layouts/ja_JP/handwriting.qml index 98bdb667..08a74384 100644 --- a/src/virtualkeyboard/content/layouts/ja_JP/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/ja_JP/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] KeyboardRow { diff --git a/src/virtualkeyboard/content/layouts/ja_JP/main.qml b/src/virtualkeyboard/content/layouts/ja_JP/main.qml index dca39066..d3fb6ae1 100644 --- a/src/virtualkeyboard/content/layouts/ja_JP/main.qml +++ b/src/virtualkeyboard/content/layouts/ja_JP/main.qml @@ -32,7 +32,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayoutLoader { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; JapaneseInputMethod {}', parent, "japaneseInputMethod") + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; JapaneseInputMethod {}', parent, "japaneseInputMethod") } sharedLayouts: ['symbols'] sourceComponent: InputContext.inputEngine.inputMode === InputEngine.InputMode.FullwidthLatin ? page2 : page1 diff --git a/src/virtualkeyboard/content/layouts/ja_JP/symbols.qml b/src/virtualkeyboard/content/layouts/ja_JP/symbols.qml index bec30ada..66a4985b 100644 --- a/src/virtualkeyboard/content/layouts/ja_JP/symbols.qml +++ b/src/virtualkeyboard/content/layouts/ja_JP/symbols.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.1 KeyboardLayoutLoader { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.1; JapaneseInputMethod {}', parent, "japaneseInputMethod") + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.1; JapaneseInputMethod {}', parent, "japaneseInputMethod") } sharedLayouts: ['main'] property int page diff --git a/src/virtualkeyboard/content/layouts/ko_KR/handwriting.qml b/src/virtualkeyboard/content/layouts/ko_KR/handwriting.qml index b3027e2c..563239a4 100644 --- a/src/virtualkeyboard/content/layouts/ko_KR/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/ko_KR/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] inputMode: preferredInputMode() diff --git a/src/virtualkeyboard/content/layouts/ko_KR/main.qml b/src/virtualkeyboard/content/layouts/ko_KR/main.qml index 525a0392..cb7b567f 100644 --- a/src/virtualkeyboard/content/layouts/ko_KR/main.qml +++ b/src/virtualkeyboard/content/layouts/ko_KR/main.qml @@ -32,7 +32,7 @@ import QtQuick.VirtualKeyboard 2.1 KeyboardLayoutLoader { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.1; HangulInputMethod {}', parent, "hangulInputMethod") + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.1; HangulInputMethod {}', parent, "hangulInputMethod") } sourceComponent: InputContext.shift ? page2 : page1 sharedLayouts: ['symbols'] diff --git a/src/virtualkeyboard/content/layouts/ko_KR/symbols.qml b/src/virtualkeyboard/content/layouts/ko_KR/symbols.qml index 201810ec..352a69e1 100644 --- a/src/virtualkeyboard/content/layouts/ko_KR/symbols.qml +++ b/src/virtualkeyboard/content/layouts/ko_KR/symbols.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.1 KeyboardLayoutLoader { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.1; HangulInputMethod {}', parent, "hangulInputMethod") + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.1; HangulInputMethod {}', parent, "hangulInputMethod") } sharedLayouts: ['main'] property bool secondPage diff --git a/src/virtualkeyboard/content/layouts/ro_RO/handwriting.qml b/src/virtualkeyboard/content/layouts/ro_RO/handwriting.qml index c28ac34d..1d5dedb9 100644 --- a/src/virtualkeyboard/content/layouts/ro_RO/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/ro_RO/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] inputMode: InputEngine.InputMode.Latin diff --git a/src/virtualkeyboard/content/layouts/sr_SP/handwriting.qml b/src/virtualkeyboard/content/layouts/sr_SP/handwriting.qml index f5f2d44c..6f9cbb98 100644 --- a/src/virtualkeyboard/content/layouts/sr_SP/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/sr_SP/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] diff --git a/src/virtualkeyboard/content/layouts/th_TH/main.qml b/src/virtualkeyboard/content/layouts/th_TH/main.qml index a44de2a4..f3448c4f 100644 --- a/src/virtualkeyboard/content/layouts/th_TH/main.qml +++ b/src/virtualkeyboard/content/layouts/th_TH/main.qml @@ -34,7 +34,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayoutLoader { inputMode: InputEngine.InputMode.Latin function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; ThaiInputMethod {}', parent, "thaiInputMethod") + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; ThaiInputMethod {}', parent, "thaiInputMethod") } sharedLayouts: [ "symbols" ] sourceComponent: InputContext.shift ? page2 : page1 diff --git a/src/virtualkeyboard/content/layouts/uk_UA/main.qml b/src/virtualkeyboard/content/layouts/uk_UA/main.qml index dfe36b2e..c2731452 100644 --- a/src/virtualkeyboard/content/layouts/uk_UA/main.qml +++ b/src/virtualkeyboard/content/layouts/uk_UA/main.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 2.10 +import QtQuick 2.0 import QtQuick.VirtualKeyboard 2.3 KeyboardLayoutLoader { diff --git a/src/virtualkeyboard/content/layouts/vi_VN/main.qml b/src/virtualkeyboard/content/layouts/vi_VN/main.qml index fabc6c46..9a5c7e37 100644 --- a/src/virtualkeyboard/content/layouts/vi_VN/main.qml +++ b/src/virtualkeyboard/content/layouts/vi_VN/main.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 2.10 +import QtQuick 2.0 import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { diff --git a/src/virtualkeyboard/content/layouts/vi_VN/symbols.qml b/src/virtualkeyboard/content/layouts/vi_VN/symbols.qml index 8684f9ad..da5281b3 100644 --- a/src/virtualkeyboard/content/layouts/vi_VN/symbols.qml +++ b/src/virtualkeyboard/content/layouts/vi_VN/symbols.qml @@ -27,8 +27,8 @@ ** ****************************************************************************/ -import QtQuick 2.10 -import QtQuick.Layouts 1.3 +import QtQuick 2.0 +import QtQuick.Layouts 1.0 import QtQuick.VirtualKeyboard 2.3 KeyboardLayoutLoader { diff --git a/src/virtualkeyboard/content/layouts/zh_CN/handwriting.qml b/src/virtualkeyboard/content/layouts/zh_CN/handwriting.qml index 61ed186a..fee04320 100644 --- a/src/virtualkeyboard/content/layouts/zh_CN/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/zh_CN/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] inputMode: preferredInputMode() diff --git a/src/virtualkeyboard/content/layouts/zh_CN/main.qml b/src/virtualkeyboard/content/layouts/zh_CN/main.qml index 44b0ceb7..349a14c8 100644 --- a/src/virtualkeyboard/content/layouts/zh_CN/main.qml +++ b/src/virtualkeyboard/content/layouts/zh_CN/main.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.1 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.1; PinyinInputMethod {}', parent, "pinyinInputMethod") + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.1; PinyinInputMethod {}', parent, "pinyinInputMethod") } sharedLayouts: ['symbols'] keyWeight: 160 diff --git a/src/virtualkeyboard/content/layouts/zh_CN/symbols.qml b/src/virtualkeyboard/content/layouts/zh_CN/symbols.qml index 0133387b..4ad06baf 100644 --- a/src/virtualkeyboard/content/layouts/zh_CN/symbols.qml +++ b/src/virtualkeyboard/content/layouts/zh_CN/symbols.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.1 KeyboardLayoutLoader { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.1; PinyinInputMethod {}', parent, "pinyinInputMethod") + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.1; PinyinInputMethod {}', parent, "pinyinInputMethod") } sharedLayouts: ['main'] property int page diff --git a/src/virtualkeyboard/content/layouts/zh_TW/handwriting.qml b/src/virtualkeyboard/content/layouts/zh_TW/handwriting.qml index 61ed186a..fee04320 100644 --- a/src/virtualkeyboard/content/layouts/zh_TW/handwriting.qml +++ b/src/virtualkeyboard/content/layouts/zh_TW/handwriting.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayout { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; HandwritingInputMethod {}', parent) } sharedLayouts: ['symbols'] inputMode: preferredInputMode() diff --git a/src/virtualkeyboard/content/layouts/zh_TW/main.qml b/src/virtualkeyboard/content/layouts/zh_TW/main.qml index 32a8c393..bd9c1451 100644 --- a/src/virtualkeyboard/content/layouts/zh_TW/main.qml +++ b/src/virtualkeyboard/content/layouts/zh_TW/main.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.3 KeyboardLayoutLoader { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; TCInputMethod {}', parent, "tcInputMethod") + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.3; TCInputMethod {}', parent, "tcInputMethod") } sharedLayouts: ['symbols'] sourceComponent: InputContext.inputEngine.inputMode === InputEngine.InputMode.Cangjie ? pageCangjie : pageZhuyin diff --git a/src/virtualkeyboard/content/layouts/zh_TW/symbols.qml b/src/virtualkeyboard/content/layouts/zh_TW/symbols.qml index 60d63e3a..3d43ae69 100644 --- a/src/virtualkeyboard/content/layouts/zh_TW/symbols.qml +++ b/src/virtualkeyboard/content/layouts/zh_TW/symbols.qml @@ -33,7 +33,7 @@ import QtQuick.VirtualKeyboard 2.1 KeyboardLayoutLoader { function createInputMethod() { - return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.1; TCInputMethod {}', parent, "tcInputMethod") + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard.Plugins 2.1; TCInputMethod {}', parent, "tcInputMethod") } sharedLayouts: ['main'] property int page diff --git a/src/virtualkeyboard/doc/src/build.qdoc b/src/virtualkeyboard/doc/src/build.qdoc index 7280d87c..bca5ab39 100644 --- a/src/virtualkeyboard/doc/src/build.qdoc +++ b/src/virtualkeyboard/doc/src/build.qdoc @@ -42,15 +42,23 @@ The project is split into the following subprojects: \li \e examples/virtualkeyboard/basic/basic.pro \li Qt Virtual Keyboard Demo application \row + \li \e src/virtualkeyboard/import/ + \li Qt Virtual Keyboard QML plugin (QtQuick.VirtualKeyboard) +\row \li \e src/virtualkeyboard/plugin/ - \li Qt Virtual Keyboard platform input context plugin + \li Qt Virtual Keyboard platform input context plugin. This plugin + provides the QPlatformInputContext interface for the Qt and is + also responsible for loading the Virtual Keyboard Plugins + (QtQuick.VirtualKeyboard.Plugins). \row \li \e src/virtualkeyboard/plugins/ \li A directory containing Qt Virtual Keyboard plugins, such as the Hunspell plugin \row + \li \e src/virtualkeyboard/settings/ + \li Qt Virtual Keyboard Settings QML plugin (QtQuick.VirtualKeyboard.Settings) +\row \li \e src/virtualkeyboard/styles/styles.pro - \li Qt Virtual Keyboard Style plugin that enables style decorations for the - keyboard + \li Qt Virtual Keyboard Styles QML plugin (QtQuick.VirtualKeyboard.Styles) \row \li \e src/virtualkeyboard/virtualkeyboard.pro \li Qt Virtual Keyboard module, QML components and layouts diff --git a/src/virtualkeyboard/platforminputcontext.cpp b/src/virtualkeyboard/platforminputcontext.cpp index d876fbea..24b70f35 100644 --- a/src/virtualkeyboard/platforminputcontext.cpp +++ b/src/virtualkeyboard/platforminputcontext.cpp @@ -213,6 +213,16 @@ bool PlatformInputContext::eventFilter(QObject *object, QEvent *event) return false; } +void PlatformInputContext::setInputMethods(const QStringList &inputMethods) +{ + m_inputMethods = inputMethods; +} + +QStringList PlatformInputContext::inputMethods() const +{ + return m_inputMethods; +} + void PlatformInputContext::sendEvent(QEvent *event) { if (m_focusObject) { diff --git a/src/virtualkeyboard/platforminputcontext_p.h b/src/virtualkeyboard/platforminputcontext_p.h index 70f3a781..50ccf561 100644 --- a/src/virtualkeyboard/platforminputcontext_p.h +++ b/src/virtualkeyboard/platforminputcontext_p.h @@ -90,6 +90,9 @@ public: virtual bool eventFilter(QObject *object, QEvent *event); + void setInputMethods(const QStringList &inputMethods); + QStringList inputMethods() const; + signals: void focusObjectChanged(); @@ -107,6 +110,7 @@ private: friend class ::QVirtualKeyboardInputContext; friend class ::QVirtualKeyboardInputContextPrivate; QPointer<QVirtualKeyboardInputContext> m_inputContext; + QStringList m_inputMethods; QPointer<AbstractInputPanel> m_inputPanel; QPointer<DesktopInputSelectionControl> m_selectionControl; QPointer<QObject> m_focusObject; diff --git a/src/virtualkeyboard/qvirtualkeyboard_staticplugin_p.h b/src/virtualkeyboard/qvirtualkeyboard_staticplugin_p.h new file mode 100644 index 00000000..00ac394c --- /dev/null +++ b/src/virtualkeyboard/qvirtualkeyboard_staticplugin_p.h @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QVIRTUALKEYBOARD_STATICPLUGIN_P_H +#define QVIRTUALKEYBOARD_STATICPLUGIN_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#if defined(QT_STATICPLUGIN) +#include <QtPlugin> +#include <QPluginLoader> + +QT_BEGIN_NAMESPACE + +// This macro is similar to Q_IMPORT_PLUGIN, except it does not +// register duplicate entries as static plugins. +// The check is required since the application may already have +// initialized the plugin by its own dependencies. +#define Q_VKB_IMPORT_PLUGIN(PLUGIN) \ + extern const QT_PREPEND_NAMESPACE(QStaticPlugin) qt_static_plugin_##PLUGIN(); \ + class Static##PLUGIN##PluginInstance{ \ + public: \ + Static##PLUGIN##PluginInstance() { \ + if (!QPluginLoader::staticInstances().contains(qt_static_plugin_##PLUGIN().instance())) \ + qRegisterStaticPluginFunction(qt_static_plugin_##PLUGIN()); \ + } \ + }; \ + static Static##PLUGIN##PluginInstance static##PLUGIN##Instance; + +QT_END_NAMESPACE + +#endif + +#endif // QVIRTUALKEYBOARD_STATICPLUGIN_P_H diff --git a/src/virtualkeyboard/qvirtualkeyboardinputcontext.cpp b/src/virtualkeyboard/qvirtualkeyboardinputcontext.cpp index 6b1b7819..9e684c3b 100644 --- a/src/virtualkeyboard/qvirtualkeyboardinputcontext.cpp +++ b/src/virtualkeyboard/qvirtualkeyboardinputcontext.cpp @@ -67,8 +67,9 @@ using namespace QtVirtualKeyboard; Constructs an input context with \a parent as the platform input context. */ -QVirtualKeyboardInputContext::QVirtualKeyboardInputContext(QtVirtualKeyboard::PlatformInputContext *parent) : - d_ptr(new QVirtualKeyboardInputContextPrivate(this, parent)) +QVirtualKeyboardInputContext::QVirtualKeyboardInputContext(QObject *parent) : + QObject(parent), + d_ptr(new QVirtualKeyboardInputContextPrivate(this)) { Q_D(QVirtualKeyboardInputContext); d->init(); diff --git a/src/virtualkeyboard/qvirtualkeyboardinputcontext.h b/src/virtualkeyboard/qvirtualkeyboardinputcontext.h index b5547c69..ac061c2b 100644 --- a/src/virtualkeyboard/qvirtualkeyboardinputcontext.h +++ b/src/virtualkeyboard/qvirtualkeyboardinputcontext.h @@ -70,7 +70,7 @@ class QVIRTUALKEYBOARD_EXPORT QVirtualKeyboardInputContext : public QObject Q_PROPERTY(QVirtualKeyboardInputContextPrivate *priv READ priv CONSTANT) public: - explicit QVirtualKeyboardInputContext(QtVirtualKeyboard::PlatformInputContext *parent = nullptr); + explicit QVirtualKeyboardInputContext(QObject *parent = nullptr); ~QVirtualKeyboardInputContext(); bool shift() const; diff --git a/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp b/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp index 529545c1..d2308b04 100644 --- a/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp +++ b/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp @@ -36,6 +36,8 @@ #include <QtVirtualKeyboard/qvirtualkeyboardinputengine.h> #include <QGuiApplication> +#include <QtGui/qpa/qplatformintegration.h> +#include <QtGui/private/qguiapplication_p.h> QT_BEGIN_NAMESPACE @@ -49,10 +51,10 @@ bool operator==(const QInputMethodEvent::Attribute &attribute1, const QInputMeth using namespace QtVirtualKeyboard; -QVirtualKeyboardInputContextPrivate::QVirtualKeyboardInputContextPrivate(QVirtualKeyboardInputContext *q_ptr, PlatformInputContext *platformInputContext) : +QVirtualKeyboardInputContextPrivate::QVirtualKeyboardInputContextPrivate(QVirtualKeyboardInputContext *q_ptr) : QObject(nullptr), q_ptr(q_ptr), - platformInputContext(platformInputContext), + platformInputContext(nullptr), inputEngine(nullptr), _shiftHandler(nullptr), keyboardRect(), @@ -83,7 +85,10 @@ QVirtualKeyboardInputContextPrivate::QVirtualKeyboardInputContextPrivate(QVirtua void QVirtualKeyboardInputContextPrivate::init() { Q_Q(QVirtualKeyboardInputContext); - Q_ASSERT(inputEngine == nullptr); + QGuiApplicationPrivate *guiApplicationPrivate = QGuiApplicationPrivate::instance(); + QPlatformIntegration *platformIntegration = guiApplicationPrivate->platformIntegration(); + QPlatformInputContext *unknownPlatformInputContext = platformIntegration->inputContext(); + platformInputContext = qobject_cast<PlatformInputContext *>(unknownPlatformInputContext); inputEngine = new QVirtualKeyboardInputEngine(q); _shiftHandler = new ShiftHandler(q); inputEngine->init(); @@ -156,7 +161,7 @@ void QVirtualKeyboardInputContextPrivate::setPreviewVisible(bool visible) QString QVirtualKeyboardInputContextPrivate::locale() const { - return platformInputContext->locale().name(); + return platformInputContext ? platformInputContext->locale().name() : QString(); } void QVirtualKeyboardInputContextPrivate::setLocale(const QString &locale) @@ -185,6 +190,11 @@ ShadowInputContext *QVirtualKeyboardInputContextPrivate::shadow() const return const_cast<ShadowInputContext *>(&_shadow); } +QStringList QVirtualKeyboardInputContextPrivate::inputMethods() const +{ + return platformInputContext ? platformInputContext->inputMethods() : QStringList(); +} + bool QVirtualKeyboardInputContextPrivate::fileExists(const QUrl &fileUrl) { QString fileName; diff --git a/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.h b/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.h index c836e6c5..05349d38 100644 --- a/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.h +++ b/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.h @@ -68,8 +68,9 @@ class QVIRTUALKEYBOARD_EXPORT QVirtualKeyboardInputContextPrivate : public QObje Q_PROPERTY(QObject *inputItem READ inputItem NOTIFY inputItemChanged) Q_PROPERTY(QtVirtualKeyboard::ShiftHandler *shiftHandler READ shiftHandler CONSTANT) Q_PROPERTY(QtVirtualKeyboard::ShadowInputContext *shadow READ shadow CONSTANT) + Q_PROPERTY(QStringList inputMethods READ inputMethods CONSTANT) - explicit QVirtualKeyboardInputContextPrivate(QVirtualKeyboardInputContext *q_ptr, QtVirtualKeyboard::PlatformInputContext *platformInputContext); + explicit QVirtualKeyboardInputContextPrivate(QVirtualKeyboardInputContext *q_ptr); void init(); public: @@ -98,6 +99,7 @@ public: QObject *inputItem() const; QtVirtualKeyboard::ShiftHandler *shiftHandler() const; QtVirtualKeyboard::ShadowInputContext *shadow() const; + QStringList inputMethods() const; // Helper functions Q_INVOKABLE bool fileExists(const QUrl &fileUrl); diff --git a/src/virtualkeyboard/virtualkeyboard.pro b/src/virtualkeyboard/virtualkeyboard.pro index 591e7ae2..ea9e6d95 100644 --- a/src/virtualkeyboard/virtualkeyboard.pro +++ b/src/virtualkeyboard/virtualkeyboard.pro @@ -63,7 +63,8 @@ HEADERS += \ gesturerecognizer_p.h \ handwritinggesturerecognizer_p.h \ qvirtualkeyboard_global.h \ - qvirtualkeyboardextensionplugin.h + qvirtualkeyboardextensionplugin.h \ + qvirtualkeyboard_staticplugin_p.h !no-builtin-style: RESOURCES += \ content/styles/default/default_style.qrc \ |