aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-11-26 12:56:18 +0100
committerLiang Qi <liang.qi@qt.io>2016-11-26 19:55:26 +0100
commit573fb399f9917713621d25e0c0aeb48fbc085af5 (patch)
treeedb575544ccc2e48a410f41472a3827ea1f00477
parent947a55149aec2724158934efde1be496b3c5e04e (diff)
parente67e97e9543eae2de42666eec3ff4d3cdca81db3 (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.qml6
-rw-r--r--src/virtualkeyboard/content/layouts/en_GB/digits.qml6
-rw-r--r--src/virtualkeyboard/doc/qtvirtualkeyboard.qdocconf14
-rw-r--r--src/virtualkeyboard/doc/src/build.qdoc2
-rw-r--r--src/virtualkeyboard/doc/src/deployment-guide.qdoc2
-rw-r--r--src/virtualkeyboard/doc/src/qtvirtualkeyboard-index.qdoc40
-rw-r--r--src/virtualkeyboard/doc/src/qtvirtualkeyboard-module-cpp.qdoc48
-rw-r--r--src/virtualkeyboard/inputcontext.cpp23
-rw-r--r--src/virtualkeyboard/inputengine.cpp4
-rw-r--r--src/virtualkeyboard/selectionlistmodel.cpp4
-rw-r--r--src/virtualkeyboard/shifthandler.cpp12
-rw-r--r--src/virtualkeyboard/styles/styles_plugin.cpp11
-rw-r--r--src/virtualkeyboard/virtualkeyboardsettings.cpp13
-rw-r--r--sync.profile15
-rw-r--r--tests/auto/inputpanel/data/inputpanel/inputpanel.qml7
-rw-r--r--tests/auto/inputpanel/data/tst_inputpanel.qml24
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 })