aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorJarkko Koivikko <jarkko.koivikko@code-q.fi>2015-12-11 09:54:32 +0200
committerJarkko Koivikko <jarkko.koivikko@code-q.fi>2015-12-14 13:41:43 +0000
commit91273471991b8f1097780f8171f19e7efc622be5 (patch)
treee1f1d67a0ca5485cf9998dcd7317529cd0be3d66 /examples
parentc34a3ef3c5283df834577577bb0becd48470aa55 (diff)
Remove AutoScroller component
The AutoScroller component is not well maintained and has not been validated to be working correctly except for the example app. This change moves the AutoScroller component to the example application. There was also a bug in the component. References to the flickable components were not cleared before updating. Task-number: QTRD-3784 Change-Id: Ie15b4b994c016a9d0c065a2e469f928fec15d265 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com> Reviewed-by: Rainer Keller <rainer.keller@theqtcompany.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/quick/enterprise/virtualkeyboard/virtualkeyboard/VirtualKeyboard-b2qt.qml1
-rw-r--r--examples/quick/enterprise/virtualkeyboard/virtualkeyboard/content/AutoScroller.qml99
-rw-r--r--examples/quick/enterprise/virtualkeyboard/virtualkeyboard/demo.qrc1
-rw-r--r--examples/quick/enterprise/virtualkeyboard/virtualkeyboard/virtualkeyboard.pro1
4 files changed, 102 insertions, 0 deletions
diff --git a/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/VirtualKeyboard-b2qt.qml b/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/VirtualKeyboard-b2qt.qml
index cdb18b97..50cf5d4b 100644
--- a/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/VirtualKeyboard-b2qt.qml
+++ b/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/VirtualKeyboard-b2qt.qml
@@ -124,6 +124,7 @@ Item {
}
}
}
+ AutoScroller {}
}
}
}
diff --git a/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/content/AutoScroller.qml b/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/content/AutoScroller.qml
new file mode 100644
index 00000000..33aab92a
--- /dev/null
+++ b/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/content/AutoScroller.qml
@@ -0,0 +1,99 @@
+/******************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module.
+**
+** $QT_BEGIN_LICENSE:COMM$
+**
+** 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 http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** $QT_END_LICENSE$
+**
+******************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Enterprise.VirtualKeyboard 2.0
+
+Item {
+
+ property var innerFlickable
+ property var outerFlickable
+ property var inputItem: InputContext.inputItem
+
+ onInputItemChanged: {
+ innerFlickable = null
+ outerFlickable = null
+ if (inputItem !== null) {
+ var parent_ = inputItem.parent
+ while (parent_) {
+ if (parent_.maximumFlickVelocity) {
+ if (innerFlickable) {
+ outerFlickable = parent_
+ break
+ } else {
+ innerFlickable = parent_
+ }
+ }
+ parent_ = parent_.parent
+ }
+ delayedLoading.triggered()
+ }
+ }
+
+ function ensureVisible(flickable) {
+ if (Qt.inputMethod.visible && inputItem && flickable && flickable.visible && flickable.interactive) {
+
+ var verticallyFlickable = (flickable.flickableDirection === Flickable.HorizontalAndVerticalFlick || flickable.flickableDirection === Flickable.VerticalFlick
+ || (flickable.flickableDirection === Flickable.AutoFlickDirection && flickable.contentHeight > flickable.height))
+ var horizontallyFlickable = (flickable.flickableDirection === Flickable.HorizontalAndVerticalFlick || flickable.flickableDirection === Flickable.HorizontalFlick
+ || (flickable.flickableDirection === Flickable.AutoFlickDirection && flickable.contentWidth > flickable.width))
+
+ if ((!verticallyFlickable && !horizontallyFlickable) || !inputItem.hasOwnProperty("cursorRectangle"))
+ return
+
+ var cursorRectangle = flickable.contentItem.mapFromItem(inputItem, inputItem.cursorRectangle.x, inputItem.cursorRectangle.y)
+
+ var oldContentY = flickable.contentY
+ if (verticallyFlickable) {
+ var scrollMarginVertical = (flickable && flickable.scrollMarginVertical) ? flickable.scrollMarginVertical : 10
+ if (flickable.contentY >= cursorRectangle.y - scrollMarginVertical)
+ flickable.contentY = Math.max(0, cursorRectangle.y - scrollMarginVertical)
+ else if (flickable.contentY + flickable.height <= cursorRectangle.y + inputItem.cursorRectangle.height + scrollMarginVertical)
+ flickable.contentY = Math.min(flickable.contentHeight - flickable.height, cursorRectangle.y + inputItem.cursorRectangle.height - flickable.height + scrollMarginVertical)
+ }
+ if (horizontallyFlickable) {
+ var scrollMarginHorizontal = (flickable && flickable.scrollMarginHorizontal) ? flickable.scrollMarginHorizontal : 10
+ if (flickable.contentX >= cursorRectangle.x - scrollMarginHorizontal)
+ flickable.contentX = Math.max(0, cursorRectangle.x - scrollMarginHorizontal)
+ else if (flickable.contentX + flickable.width <= cursorRectangle.x + inputItem.cursorRectangle.width + scrollMarginHorizontal)
+ flickable.contentX = Math.min(flickable.contentWidth - flickable.width, cursorRectangle.x + inputItem.cursorRectangle.width - flickable.width + scrollMarginHorizontal)
+ }
+ }
+ }
+ Timer {
+ id: delayedLoading
+ interval: 10
+ onTriggered: {
+ ensureVisible(innerFlickable)
+ ensureVisible(outerFlickable)
+ }
+ }
+ Connections {
+ ignoreUnknownSignals: true
+ target: inputItem && !Qt.inputMethod.animating ? Qt.inputMethod : null
+ onKeyboardRectangleChanged: delayedLoading.triggered()
+ }
+ Connections {
+ ignoreUnknownSignals: true
+ target: inputItem && inputItem.activeFocus ? inputItem : null
+ onCursorRectangleChanged: delayedLoading.triggered()
+ }
+}
diff --git a/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/demo.qrc b/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/demo.qrc
index bcb4a9d4..92258cbb 100644
--- a/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/demo.qrc
+++ b/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/demo.qrc
@@ -2,6 +2,7 @@
<qresource prefix="/">
<file>VirtualKeyboard-b2qt.qml</file>
<file>VirtualKeyboard.qml</file>
+ <file>content/AutoScroller.qml</file>
<file>content/ScrollBar.qml</file>
<file>content/TextArea.qml</file>
<file>content/TextBase.qml</file>
diff --git a/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/virtualkeyboard.pro b/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/virtualkeyboard.pro
index b8396bdf..28cc4dcc 100644
--- a/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/virtualkeyboard.pro
+++ b/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/virtualkeyboard.pro
@@ -21,6 +21,7 @@ RESOURCES += \
OTHER_FILES += \
VirtualKeyboard.qml \
VirtualKeyboard-b2qt.qml \
+ content/AutoScroller.qml \
content/HandwritingModeButton.qml \
content/ScrollBar.qml \
content/TextArea.qml \