From 7a43ec131cb376ac572c667fabbeec82b9ca0f6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sat, 9 Apr 2016 11:39:33 +0200 Subject: [PATCH] Updated YACReaderScrollView to the latest SrollView version --- YACReaderLibrary/qml/YACReaderScrollView.qml | 38 +++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/YACReaderLibrary/qml/YACReaderScrollView.qml b/YACReaderLibrary/qml/YACReaderScrollView.qml index c71c9cbc..ad26d4b3 100644 --- a/YACReaderLibrary/qml/YACReaderScrollView.qml +++ b/YACReaderLibrary/qml/YACReaderScrollView.qml @@ -44,6 +44,7 @@ import QtQuick.Controls.Styles 1.1 \inqmlmodule QtQuick.Controls \since 5.1 \ingroup views + \ingroup controls \brief Provides a scrolling view within another Item. \image scrollview.png @@ -163,7 +164,9 @@ FocusScope { default property Item contentItem /*! \internal */ - property Item __scroller: scroller + property alias __scroller: scroller + /*! \internal */ + property alias __verticalScrollbarOffset: scroller.verticalScrollbarOffset /*! \internal */ property alias __wheelAreaScrollSpeed: wheelArea.scrollSpeed /*! \internal */ @@ -237,13 +240,13 @@ FocusScope { onContentYChanged: { scroller.blockUpdates = true - scroller.verticalScrollBar.value = flickableItem.contentY + scroller.verticalScrollBar.value = flickableItem.contentY - flickableItem.originY scroller.blockUpdates = false } onContentXChanged: { scroller.blockUpdates = true - scroller.horizontalScrollBar.value = flickableItem.contentX + scroller.horizontalScrollBar.value = flickableItem.contentX - flickableItem.originX scroller.blockUpdates = false } @@ -273,42 +276,43 @@ FocusScope { property bool horizontalRecursionGuard: false property bool verticalRecursionGuard: false - horizontalMinimumValue: flickableItem ? flickableItem.originX : 0 - horizontalMaximumValue: flickableItem ? flickableItem.originX + flickableItem.contentWidth - viewport.width : 0 + horizontalMinimumValue: 0 + horizontalMaximumValue: flickableItem ? flickableItem.contentWidth - viewport.width : 0 - verticalMinimumValue: flickableItem ? flickableItem.originY : 0 - verticalMaximumValue: flickableItem ? flickableItem.originY + flickableItem.contentHeight - viewport.height + __viewTopMargin : 0 + verticalMinimumValue: 0 + verticalMaximumValue: flickableItem ? flickableItem.contentHeight - viewport.height + __viewTopMargin : 0 // The default scroll speed for typical angle-based mouse wheels. The value // comes originally from QTextEdit, which sets 20px steps by default, as well as // QQuickWheelArea. // TODO: centralize somewhere, QPlatformTheme? - scrollSpeed: 20 * (__style.__wheelScrollLines || 1) + scrollSpeed: 20 * (__style && __style.__wheelScrollLines || 1) Connections { target: flickableItem onContentYChanged: { wheelArea.verticalRecursionGuard = true - wheelArea.verticalValue = flickableItem.contentY + wheelArea.verticalValue = flickableItem.contentY - flickableItem.originY wheelArea.verticalRecursionGuard = false } onContentXChanged: { wheelArea.horizontalRecursionGuard = true - wheelArea.horizontalValue = flickableItem.contentX + wheelArea.horizontalValue = flickableItem.contentX - flickableItem.originX wheelArea.horizontalRecursionGuard = false } } onVerticalValueChanged: { if (!verticalRecursionGuard) { - if (flickableItem.contentY < flickThreshold && verticalDelta > speedThreshold) { + var effectiveContentY = flickableItem.contentY - flickableItem.originY + if (effectiveContentY < flickThreshold && verticalDelta > speedThreshold) { flickableItem.flick(ignored, Math.min(maxFlick, acceleration * verticalDelta)) - } else if (flickableItem.contentY > flickableItem.contentHeight - - flickThreshold - viewport.height && verticalDelta < -speedThreshold) { + } else if (effectiveContentY > flickableItem.contentHeight - flickThreshold - viewport.height + && verticalDelta < -speedThreshold) { flickableItem.flick(ignored, Math.max(-maxFlick, acceleration * verticalDelta)) } else { - flickableItem.contentY = verticalValue + flickableItem.contentY = verticalValue + flickableItem.originY } flickableItem.contentY = Math.min(verticalMaximumValue, Math.max(0, flickableItem.contentY)); } @@ -316,7 +320,7 @@ FocusScope { onHorizontalValueChanged: { if (!horizontalRecursionGuard) - flickableItem.contentX = horizontalValue + flickableItem.contentX = horizontalValue + flickableItem.originX } } @@ -327,9 +331,9 @@ FocusScope { property bool outerFrame: !frameVisible || !(__style ? __style.__externalScrollBars : 0) property int scrollBarSpacing: outerFrame ? 0 : (__style ? __style.__scrollBarSpacing : 0) property int verticalScrollbarOffset: verticalScrollBar.visible && !verticalScrollBar.isTransient ? - verticalScrollBar.width + scrollBarSpacing : 0 + verticalScrollBar.width + scrollBarSpacing : 0 property int horizontalScrollbarOffset: horizontalScrollBar.visible && !horizontalScrollBar.isTransient ? - horizontalScrollBar.height + scrollBarSpacing : 0 + horizontalScrollBar.height + scrollBarSpacing : 0 Loader { id: frameLoader sourceComponent: __style ? __style.frame : null