From 91273471991b8f1097780f8171f19e7efc622be5 Mon Sep 17 00:00:00 2001
From: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
Date: Fri, 11 Dec 2015 09:54:32 +0200
Subject: [PATCH] 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>
---
 .../virtualkeyboard/VirtualKeyboard-b2qt.qml                | 1 +
 .../virtualkeyboard/content}/AutoScroller.qml               | 6 ++++--
 .../enterprise/virtualkeyboard/virtualkeyboard/demo.qrc     | 1 +
 .../virtualkeyboard/virtualkeyboard/virtualkeyboard.pro     | 1 +
 src/virtualkeyboard/content/InputPanel.qml                  | 1 -
 src/virtualkeyboard/content/content.qrc                     | 1 -
 src/virtualkeyboard/doc/src/deployment-guide.qdoc           | 3 ---
 src/virtualkeyboard/plugin.cpp                              | 2 --
 8 files changed, 7 insertions(+), 9 deletions(-)
 rename {src/virtualkeyboard/content/components => examples/quick/enterprise/virtualkeyboard/virtualkeyboard/content}/AutoScroller.qml (95%)

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/src/virtualkeyboard/content/components/AutoScroller.qml b/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/content/AutoScroller.qml
similarity index 95%
rename from src/virtualkeyboard/content/components/AutoScroller.qml
rename to examples/quick/enterprise/virtualkeyboard/virtualkeyboard/content/AutoScroller.qml
index 7d7202f8..33aab92a 100644
--- a/src/virtualkeyboard/content/components/AutoScroller.qml
+++ b/examples/quick/enterprise/virtualkeyboard/virtualkeyboard/content/AutoScroller.qml
@@ -29,6 +29,8 @@ Item {
     property var inputItem: InputContext.inputItem
 
     onInputItemChanged: {
+        innerFlickable = null
+        outerFlickable = null
         if (inputItem !== null) {
             var parent_ = inputItem.parent
             while (parent_) {
@@ -86,12 +88,12 @@ Item {
     }
     Connections {
         ignoreUnknownSignals: true
-        target: InputContext.inputItem && Qt.inputMethod.animating ? Qt.inputMethod : null
+        target: inputItem && !Qt.inputMethod.animating ? Qt.inputMethod : null
         onKeyboardRectangleChanged: delayedLoading.triggered()
     }
     Connections {
         ignoreUnknownSignals: true
-        target: InputContext.inputItem && InputContext.inputItem.activeFocus ? InputContext.inputItem : null
+        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 \
diff --git a/src/virtualkeyboard/content/InputPanel.qml b/src/virtualkeyboard/content/InputPanel.qml
index 6f4c6fb3..84d2832d 100644
--- a/src/virtualkeyboard/content/InputPanel.qml
+++ b/src/virtualkeyboard/content/InputPanel.qml
@@ -56,7 +56,6 @@ Item {
         anchors.right: parent.right
         anchors.bottom: parent.bottom
     }
-    AutoScroller { }
     MouseArea {
         z: -1
         anchors.fill: keyboard
diff --git a/src/virtualkeyboard/content/content.qrc b/src/virtualkeyboard/content/content.qrc
index ee406a73..35375564 100644
--- a/src/virtualkeyboard/content/content.qrc
+++ b/src/virtualkeyboard/content/content.qrc
@@ -3,7 +3,6 @@
         <file>InputPanel.qml</file>
         <file>HandwritingInputPanel.qml</file>
         <file>components/AlternativeKeys.qml</file>
-        <file>components/AutoScroller.qml</file>
         <file>components/BackspaceKey.qml</file>
         <file>components/BaseKey.qml</file>
         <file>components/ChangeLanguageKey.qml</file>
diff --git a/src/virtualkeyboard/doc/src/deployment-guide.qdoc b/src/virtualkeyboard/doc/src/deployment-guide.qdoc
index 8ccfae6e..b05147e4 100644
--- a/src/virtualkeyboard/doc/src/deployment-guide.qdoc
+++ b/src/virtualkeyboard/doc/src/deployment-guide.qdoc
@@ -136,7 +136,4 @@ as it would then overlap with the contents of the application. Also, the
 input panel height will be automatically updated according to the available
 width; the aspect ratio of the input panel is constant.
 
-If the application contains Flickable elements, they will be automatically
-scrolled to the focused element.
-
 */
diff --git a/src/virtualkeyboard/plugin.cpp b/src/virtualkeyboard/plugin.cpp
index db5ab90e..8acbb64e 100644
--- a/src/virtualkeyboard/plugin.cpp
+++ b/src/virtualkeyboard/plugin.cpp
@@ -184,8 +184,6 @@ QPlatformInputContext *QVirtualKeyboardPlugin::create(const QString &system, con
     const QString componentsPath = path + QStringLiteral("components/");
     qmlRegisterType(QUrl(componentsPath + QLatin1String("AlternativeKeys.qml")), pluginUri, 1, 0, "AlternativeKeys");
     qmlRegisterType(QUrl(componentsPath + QLatin1String("AlternativeKeys.qml")), pluginUri, 2, 0, "AlternativeKeys");
-    qmlRegisterType(QUrl(componentsPath + QLatin1String("AutoScroller.qml")), pluginUri, 1, 0, "AutoScroller");
-    qmlRegisterType(QUrl(componentsPath + QLatin1String("AutoScroller.qml")), pluginUri, 2, 0, "AutoScroller");
     qmlRegisterType(QUrl(componentsPath + QLatin1String("BackspaceKey.qml")), pluginUri, 1, 0, "BackspaceKey");
     qmlRegisterType(QUrl(componentsPath + QLatin1String("BackspaceKey.qml")), pluginUri, 2, 0, "BackspaceKey");
     qmlRegisterType(QUrl(componentsPath + QLatin1String("BaseKey.qml")), pluginUri, 1, 0, "BaseKey");
-- 
GitLab