diff options
author | Liang Qi <liang.qi@qt.io> | 2016-11-26 12:56:18 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-11-26 19:55:26 +0100 |
commit | 573fb399f9917713621d25e0c0aeb48fbc085af5 (patch) | |
tree | edb575544ccc2e48a410f41472a3827ea1f00477 | |
parent | 947a55149aec2724158934efde1be496b3c5e04e (diff) | |
parent | e67e97e9543eae2de42666eec3ff4d3cdca81db3 (diff) |
Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts:
src/virtualkeyboard/doc/qtvirtualkeyboard.qdocconf
Change-Id: I2aac70f4bf65794c73096ec575c9f72bc63ec61c
-rw-r--r-- | src/virtualkeyboard/content/InputPanel.qml | 6 | ||||
-rw-r--r-- | src/virtualkeyboard/content/layouts/en_GB/digits.qml | 6 | ||||
-rw-r--r-- | src/virtualkeyboard/doc/qtvirtualkeyboard.qdocconf | 14 | ||||
-rw-r--r-- | src/virtualkeyboard/doc/src/build.qdoc | 2 | ||||
-rw-r--r-- | src/virtualkeyboard/doc/src/deployment-guide.qdoc | 2 | ||||
-rw-r--r-- | src/virtualkeyboard/doc/src/qtvirtualkeyboard-index.qdoc | 40 | ||||
-rw-r--r-- | src/virtualkeyboard/doc/src/qtvirtualkeyboard-module-cpp.qdoc | 48 | ||||
-rw-r--r-- | src/virtualkeyboard/inputcontext.cpp | 23 | ||||
-rw-r--r-- | src/virtualkeyboard/inputengine.cpp | 4 | ||||
-rw-r--r-- | src/virtualkeyboard/selectionlistmodel.cpp | 4 | ||||
-rw-r--r-- | src/virtualkeyboard/shifthandler.cpp | 12 | ||||
-rw-r--r-- | src/virtualkeyboard/styles/styles_plugin.cpp | 11 | ||||
-rw-r--r-- | src/virtualkeyboard/virtualkeyboardsettings.cpp | 13 | ||||
-rw-r--r-- | sync.profile | 15 | ||||
-rw-r--r-- | tests/auto/inputpanel/data/inputpanel/inputpanel.qml | 7 | ||||
-rw-r--r-- | tests/auto/inputpanel/data/tst_inputpanel.qml | 24 |
16 files changed, 160 insertions, 71 deletions
diff --git a/src/virtualkeyboard/content/InputPanel.qml b/src/virtualkeyboard/content/InputPanel.qml index 1ac2eb86..2e500a1b 100644 --- a/src/virtualkeyboard/content/InputPanel.qml +++ b/src/virtualkeyboard/content/InputPanel.qml @@ -46,11 +46,13 @@ import QtQuick.VirtualKeyboard 2.1 Item { id: inputPanel - /*! \qmlproperty bool Active state of the input panel + /*! + \qmlproperty bool InputPanel::active \since QtQuick.VirtualKeyboard 2.0 This property reflects the active status of the input panel. - The keyboard should be made visible to user when the active is true. + The keyboard should be made visible to the user when this property is + \c true. */ property alias active: keyboard.active diff --git a/src/virtualkeyboard/content/layouts/en_GB/digits.qml b/src/virtualkeyboard/content/layouts/en_GB/digits.qml index 16eb1be8..5a59d3f3 100644 --- a/src/virtualkeyboard/content/layouts/en_GB/digits.qml +++ b/src/virtualkeyboard/content/layouts/en_GB/digits.qml @@ -100,8 +100,10 @@ KeyboardLayout { text: "0" } Key { - key: Qt.Key_Period - text: "." + // The decimal key, if it is not "," then we fallback to + // "." in case it is an unhandled different result + key: Qt.locale().decimalPoint === "," ? Qt.Key_Comma : Qt.Key_Period + text: Qt.locale().decimalPoint === "," ? "," : "." } EnterKey {} } diff --git a/src/virtualkeyboard/doc/qtvirtualkeyboard.qdocconf b/src/virtualkeyboard/doc/qtvirtualkeyboard.qdocconf index 17bb5ad2..2698378e 100644 --- a/src/virtualkeyboard/doc/qtvirtualkeyboard.qdocconf +++ b/src/virtualkeyboard/doc/qtvirtualkeyboard.qdocconf @@ -15,7 +15,7 @@ exampledirs += ../../../examples/virtualkeyboard \ examplesinstallpath = virtualkeyboard imagedirs += images -depends += qtcore qtgui qtqml qtquick +depends += qtdoc qtcore qtgui qtqml qtquick qhp.projects = QtVirtualKeyboard @@ -29,12 +29,12 @@ qhp.QtVirtualKeyboard.filterAttributes = qtvirtualkeyboard $QT_ qhp.QtVirtualKeyboard.customFilters.Qt.name = QtVirtualKeyboard $QT_VERSION qhp.QtVirtualKeyboard.customFilters.Qt.filterAttributes = qtvirtualkeyboard $QT_VERSION -qhp.QtVirtualKeyboard.subprojects = classes qmltypes examples +qhp.QtVirtualKeyboard.subprojects = qmltypes examples # classes -qhp.QtVirtualKeyboard.subprojects.classes.title = C++ Classes -qhp.QtVirtualKeyboard.subprojects.classes.indexTitle = Qt Virtual Keyboard C++ Classes -qhp.QtVirtualKeyboard.subprojects.classes.selectors = class -qhp.QtVirtualKeyboard.subprojects.classes.sortPages = true +# qhp.QtVirtualKeyboard.subprojects.classes.title = C++ Classes +# qhp.QtVirtualKeyboard.subprojects.classes.indexTitle = Qt Virtual Keyboard C++ Classes +# qhp.QtVirtualKeyboard.subprojects.classes.selectors = class +# qhp.QtVirtualKeyboard.subprojects.classes.sortPages = true qhp.QtVirtualKeyboard.subprojects.qmltypes.title = QML Types qhp.QtVirtualKeyboard.subprojects.qmltypes.indexTitle = Qt Virtual Keyboard QML Types @@ -48,4 +48,4 @@ qhp.QtVirtualKeyboard.subprojects.examples.sortPages = true navigation.landingpage = "Qt Virtual Keyboard" navigation.qmltypespage = "Qt Virtual Keyboard QML Types" -navigation.cppclassespage = "Qt Virtual Keyboard C++ Classes" +# navigation.cppclassespage = "Qt Virtual Keyboard C++ Classes" diff --git a/src/virtualkeyboard/doc/src/build.qdoc b/src/virtualkeyboard/doc/src/build.qdoc index 01836252..1e75ef32 100644 --- a/src/virtualkeyboard/doc/src/build.qdoc +++ b/src/virtualkeyboard/doc/src/build.qdoc @@ -29,7 +29,7 @@ /*! -\page build.html +\page qtvirtualkeyboard-build.html \contentspage {Building Qt Virtual Keyboard} {Contents} \title Building Qt Virtual Keyboard diff --git a/src/virtualkeyboard/doc/src/deployment-guide.qdoc b/src/virtualkeyboard/doc/src/deployment-guide.qdoc index 4e4bfd1a..843d2f38 100644 --- a/src/virtualkeyboard/doc/src/deployment-guide.qdoc +++ b/src/virtualkeyboard/doc/src/deployment-guide.qdoc @@ -29,7 +29,7 @@ /*! -\page deployment-guide.html +\page qtvirtualkeyboard-deployment-guide.html \contentspage {Deployment Guide} {Contents} \title Deployment Guide diff --git a/src/virtualkeyboard/doc/src/qtvirtualkeyboard-index.qdoc b/src/virtualkeyboard/doc/src/qtvirtualkeyboard-index.qdoc index 1c23af89..94339df7 100644 --- a/src/virtualkeyboard/doc/src/qtvirtualkeyboard-index.qdoc +++ b/src/virtualkeyboard/doc/src/qtvirtualkeyboard-index.qdoc @@ -99,17 +99,11 @@ \li \l {User Guide} \endlist - \section1 QML Types + \section1 API Reference - \annotatedlist qtvirtualkeyboard-qml - - Styling components: - - \annotatedlist qtvirtualkeyboard-styles-qml - - Settings components: - - \annotatedlist qtvirtualkeyboard-settings-qml + \list + \li \l{Qt Virtual Keyboard QML Types}{QML Types} + \endlist \section1 Examples @@ -130,17 +124,29 @@ */ /*! -\page qt-virtual-keyboard-qmltypes.html +\qmlmodule QtQuick.VirtualKeyboard 2.0 \title Qt Virtual Keyboard QML Types -\inmodule qtvirtualkeyboard +\ingroup qmlmodules +\brief Provides QML types for an input framework and a reference keyboard front +end. + + The QML types can be imported into your application using the following + import statements in your .qml file: + + \badcode + import QtQuick.VirtualKeyboard 2.0 + import QtQuick.VirtualKeyboard.Styles 2.0 + import QtQuick.VirtualKeyboard.Settings 2.0 + \endcode + +Styling: -\annotatedlist qtvirtualkeyboard-qml +\generatelist qmltypesbymodule QtQuick.VirtualKeyboard.Styles -Styling components: +Settings: -\annotatedlist qtvirtualkeyboard-styles-qml +\generatelist qmltypesbymodule QtQuick.VirtualKeyboard.Settings -Settings components: +Input framework and keys: -\annotatedlist qtvirtualkeyboard-settings-qml */ diff --git a/src/virtualkeyboard/doc/src/qtvirtualkeyboard-module-cpp.qdoc b/src/virtualkeyboard/doc/src/qtvirtualkeyboard-module-cpp.qdoc new file mode 100644 index 00000000..a0514fe9 --- /dev/null +++ b/src/virtualkeyboard/doc/src/qtvirtualkeyboard-module-cpp.qdoc @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \module QtVirtualKeyboard + \title Qt Virtual Keyboard C++ Classes + \brief Provides classes to implement input methods for virtual keyboards. + + \internal + + \qtvariable virtualkeyboard + + To include the definitions of the module's classes, use the following directive: + + \code + #include <QVirtualKeyboard> + \endcode + + To link against the module, add this line to your qmake .pro file: + + \badcode + QT += virtualkeyboard + \endcode +*/ diff --git a/src/virtualkeyboard/inputcontext.cpp b/src/virtualkeyboard/inputcontext.cpp index 36583204..06c95d4d 100644 --- a/src/virtualkeyboard/inputcontext.cpp +++ b/src/virtualkeyboard/inputcontext.cpp @@ -54,24 +54,11 @@ bool operator==(const QInputMethodEvent::Attribute &attribute1, const QInputMeth QT_END_NAMESPACE /*! - \qmlmodule QtQuick.VirtualKeyboard 2.0 - - This module provides a collection of QML components for Qt Virtual Keyboard. -*/ - -/*! - \module InputFramework - - \title Input Framework - - \brief Contains classes for integrating input methods. -*/ - -/*! \namespace QtVirtualKeyboard - \inmodule InputFramework + \inmodule QtVirtualKeyboard \brief Namespace for the Qt Virtual Keyboard C++ API. + \internal */ namespace QtVirtualKeyboard { @@ -160,8 +147,9 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(InputContextPrivate::StateFlags) /*! \class QtVirtualKeyboard::InputContext - \inmodule InputFramework + \inmodule QtVirtualKeyboard \brief Provides access to an input context. + \internal */ /*! @@ -569,6 +557,9 @@ bool InputContext::hasEnterKeyAction(QObject *item) const return item != 0 && qmlAttachedPropertiesObject<EnterKeyAction>(item, false); } +/*! + \internal +*/ void InputContext::setSelectionOnFocusObject(const QPointF &anchorPos, const QPointF &cursorPos) { QPlatformInputContext::setSelectionOnFocusObject(anchorPos, cursorPos); diff --git a/src/virtualkeyboard/inputengine.cpp b/src/virtualkeyboard/inputengine.cpp index 9b6b3a5f..f9c447c6 100644 --- a/src/virtualkeyboard/inputengine.cpp +++ b/src/virtualkeyboard/inputengine.cpp @@ -131,10 +131,12 @@ private: /*! \class QtVirtualKeyboard::InputEngine - \inmodule InputFramework + \inmodule QtVirtualKeyboard \brief The InputEngine class provides an input engine that supports C++ and QML integration. + \internal + The input engine is responsible for routing input events to input methods. The actual input logic is implemented by the input methods. diff --git a/src/virtualkeyboard/selectionlistmodel.cpp b/src/virtualkeyboard/selectionlistmodel.cpp index 32e6096f..88f79ff7 100644 --- a/src/virtualkeyboard/selectionlistmodel.cpp +++ b/src/virtualkeyboard/selectionlistmodel.cpp @@ -83,10 +83,12 @@ public: /*! \class QtVirtualKeyboard::SelectionListModel - \inmodule InputFramework + \inmodule QtVirtualKeyboard \brief List model for selection lists. + \internal + This class acts as a bridge between the UI and the input method that provides the data for selection lists. diff --git a/src/virtualkeyboard/shifthandler.cpp b/src/virtualkeyboard/shifthandler.cpp index cdb6baa9..d6252fa9 100644 --- a/src/virtualkeyboard/shifthandler.cpp +++ b/src/virtualkeyboard/shifthandler.cpp @@ -74,8 +74,10 @@ public: /*! \class QtVirtualKeyboard::ShiftHandler - \inmodule InputFramework + \inmodule QtVirtualKeyboard \brief Manages the shift state. + + \internal */ ShiftHandler::ShiftHandler(InputContext *parent) : @@ -199,10 +201,13 @@ void ShiftHandler::reset() autoCapitalizationEnabled = false; toggleShiftEnabled = false; } - d->inputContext->setShift(preferUpperCase); - d->inputContext->setCapsLock(preferUpperCase); setToggleShiftEnabled(toggleShiftEnabled); setAutoCapitalizationEnabled(autoCapitalizationEnabled); + d->inputContext->setCapsLock(preferUpperCase); + if (preferUpperCase) + d->inputContext->setShift(preferUpperCase); + else + autoCapitalize(); } } @@ -235,7 +240,6 @@ void ShiftHandler::autoCapitalize() void ShiftHandler::restart() { reset(); - autoCapitalize(); } void ShiftHandler::shiftChanged() diff --git a/src/virtualkeyboard/styles/styles_plugin.cpp b/src/virtualkeyboard/styles/styles_plugin.cpp index e5915b87..975ab401 100644 --- a/src/virtualkeyboard/styles/styles_plugin.cpp +++ b/src/virtualkeyboard/styles/styles_plugin.cpp @@ -35,8 +35,17 @@ /*! \qmlmodule QtQuick.VirtualKeyboard.Styles 2.0 + \title Qt Quick Virtual Keyboard Styles QML Types + \ingroup qmlmodules - This module provides styling components for the Qt Virtual Keyboard. + \brief Provides styling for Qt Virtual Keyboard. + + The QML types can be imported into your application using the following + import statements in your .qml file: + + \badcode + import QtQuick.VirtualKeyboard.Styles 2.0 + \endcode */ void QtVirtualKeyboardStylesPlugin::registerTypes(const char *uri) diff --git a/src/virtualkeyboard/virtualkeyboardsettings.cpp b/src/virtualkeyboard/virtualkeyboardsettings.cpp index 479c8d43..12bc226e 100644 --- a/src/virtualkeyboard/virtualkeyboardsettings.cpp +++ b/src/virtualkeyboard/virtualkeyboardsettings.cpp @@ -94,8 +94,17 @@ public: /*! \qmlmodule QtQuick.VirtualKeyboard.Settings 2.0 + \title Qt Quick Virtual Keyboard Settings QML Types + \ingroup qmlmodules - This module provides settings components for Qt Virtual Keyboard. + \brief Provides settings for Qt Virtual Keyboard. + + The QML types can be imported into your application using the following + import statements in your .qml file: + + \badcode + import QtQuick.VirtualKeyboard.Settings 2.0 + \endcode */ /*! @@ -105,7 +114,7 @@ public: \since QtQuick.VirtualKeyboard 1.2 \brief Provides settings for virtual keyboard. - This module provides VirtualKeyboarSettings singleton instance, + This type provides a VirtualKeyboardSettings singleton instance, which can be used to configure the virtual keyboard settings. Please note that the settings have only effect in the current diff --git a/sync.profile b/sync.profile index 68349249..dfc1d5d6 100644 --- a/sync.profile +++ b/sync.profile @@ -2,18 +2,3 @@ ); %moduleheaders = ( # restrict the module headers to those found in relative path ); -# Module dependencies. -# Every module that is required to build this module should have one entry. -# Each of the module version specifiers can take one of the following values: -# - A specific Git revision. -# - any git symbolic ref resolvable from the module's repository (e.g. "refs/heads/master" to track master branch) -# - an empty string to use the same branch under test (dependencies will become "refs/heads/master" if we are in the master branch) -# -%dependencies = ( - "qtbase" => "", - "qtdeclarative" => "", - "qtmultimedia" => "", - "qtquickcontrols" => "", - "qtsvg" => "", - "qtxmlpatterns" => "", -); diff --git a/tests/auto/inputpanel/data/inputpanel/inputpanel.qml b/tests/auto/inputpanel/data/inputpanel/inputpanel.qml index 5a7dfc11..4d42d941 100644 --- a/tests/auto/inputpanel/data/inputpanel/inputpanel.qml +++ b/tests/auto/inputpanel/data/inputpanel/inputpanel.qml @@ -83,6 +83,7 @@ InputPanel { property alias soundEffectSpy: soundEffectSpy property alias inputMethodResultSpy: inputMethodResultSpy property alias wordCandidateListChangedSpy: wordCandidateListChangedSpy + property alias shiftStateSpy: shiftStateSpy signal inputMethodResult(var text) @@ -162,6 +163,12 @@ InputPanel { signalName: "dataChanged" } + SignalSpy { + id: shiftStateSpy + target: InputContext + signalName: "onShiftChanged" + } + function findChildByProperty(parent, propertyName, propertyValue, compareCb) { var obj = null if (parent === null) diff --git a/tests/auto/inputpanel/data/tst_inputpanel.qml b/tests/auto/inputpanel/data/tst_inputpanel.qml index 4c5c8879..915d7441 100644 --- a/tests/auto/inputpanel/data/tst_inputpanel.qml +++ b/tests/auto/inputpanel/data/tst_inputpanel.qml @@ -327,10 +327,11 @@ Rectangle { } function test_inputMethodHints_data() { + var decmialPoint = Qt.locale().decimalPoint return [ { initInputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhUppercaseOnly, inputSequence: "uppercase text? yes.", outputText: "UPPERCASE TEXT? YES." }, { initInputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhLowercaseOnly, inputSequence: "uppercase text? no.", outputText: "uppercase text? no." }, - { initInputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhDigitsOnly, inputSequence: "1234567890.", outputText: "1234567890." }, + { initInputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhDigitsOnly, inputSequence: "1234567890" + decmialPoint, outputText: "1234567890" + decmialPoint }, { initInputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhFormattedNumbersOnly, inputSequence: "1234567890+-,.()", outputText: "1234567890+-,.()" }, { initInputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhDialableCharactersOnly, inputSequence: "1234567890+*#", outputText: "1234567890+*#" }, ] @@ -383,6 +384,27 @@ Rectangle { compare(textInput.text, data.outputText) } + function test_focusAndShiftState() { + prepareTest() + + // Initial focus is set to textInput, shift state should not change + // when focus is set to container + inputPanel.shiftStateSpy.clear() + container.forceActiveFocus() + compare(inputPanel.shiftStateSpy.count, 0, "Unexpected number of shift state changes after focus change (ImhNone -> ImhNone)") + + // Change to lower case + inputPanel.shiftStateSpy.clear() + inputPanel.toggleShift() + compare(inputPanel.shiftStateSpy.count, 1, "Unexpected number of shift state changes after shift key press") + + // Set focus back to textInput, and expect that shift state is changed + // to auto upper case + inputPanel.shiftStateSpy.clear() + textInput.forceActiveFocus() + compare(inputPanel.shiftStateSpy.count, 1, "Unexpected number of shift state changes after focus change (auto upper case)") + } + function test_symbolMode() { prepareTest({ initInputMethodHints: Qt.ImhNoPredictiveText }) |