diff --git a/YACReaderLibrary/qml.qrc b/YACReaderLibrary/qml.qrc index ae0b04ff..ce33b3d5 100644 --- a/YACReaderLibrary/qml.qrc +++ b/YACReaderLibrary/qml.qrc @@ -1,7 +1,6 @@ qml/GridComicsView.qml - qml/YACReaderScrollView.qml qml/tick.png qml/reading.png qml/star_menu.png @@ -27,6 +26,5 @@ qml/InfoTick.qml qml/InfoFavorites.qml qml/InfoRating.qml - qml/YACReaderScrollViewStyle.qml diff --git a/YACReaderLibrary/qml/YACReaderScrollView.qml b/YACReaderLibrary/qml/YACReaderScrollView.qml deleted file mode 100644 index 363d26ec..00000000 --- a/YACReaderLibrary/qml/YACReaderScrollView.qml +++ /dev/null @@ -1,357 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt Quick Controls module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.2 -import QtQuick.Controls 1.2 -import QtQuick.Controls.Private 1.0 -import QtQuick.Controls.Styles 1.1 - -/*! - \qmltype ScrollView - \inqmlmodule QtQuick.Controls - \since 5.1 - \ingroup views - \ingroup controls - \brief Provides a scrolling view within another Item. - - \image scrollview.png - - A ScrollView can be used either to replace a \l Flickable or decorate an - existing \l Flickable. Depending on the platform, it will add scroll bars and - a content frame. - - Only one Item can be a direct child of the ScrollView and the child is implicitly anchored - to fill the scroll view. - - Example: - \code - ScrollView { - Image { source: "largeImage.png" } - } - \endcode - - In the previous example the Image item will implicitly get scroll behavior as if it was - used within a \l Flickable. The width and height of the child item will be used to - define the size of the content area. - - Example: - \code - ScrollView { - ListView { - ... - } - } - \endcode - - In this case the content size of the ScrollView will simply mirror that of its contained - \l flickableItem. - - You can create a custom appearance for a ScrollView by - assigning a \l {ScrollViewStyle}. -*/ - -FocusScope { - id: root - - implicitWidth: 240 - implicitHeight: 150 - - /*! - This property tells the ScrollView if it should render - a frame around its content. - - The default value is \c false. - */ - property bool frameVisible: false - - /*! \qmlproperty enumeration ScrollView::horizontalScrollBarPolicy - \since QtQuick.Controls 1.3 - - This property holds the policy for showing the horizontal scrollbar. - It can be any of the following values: - \list - \li Qt.ScrollBarAsNeeded - \li Qt.ScrollBarAlwaysOff - \li Qt.ScrollBarAlwaysOn - \endlist - - The default policy is \c Qt.ScrollBarAsNeeded. - */ - property alias horizontalScrollBarPolicy: scroller.horizontalScrollBarPolicy - - /*! \qmlproperty enumeration ScrollView::verticalScrollBarPolicy - \since QtQuick.Controls 1.3 - - This property holds the policy for showing the vertical scrollbar. - It can be any of the following values: - \list - \li Qt.ScrollBarAsNeeded - \li Qt.ScrollBarAlwaysOff - \li Qt.ScrollBarAlwaysOn - \endlist - - The default policy is \c Qt.ScrollBarAsNeeded. - */ - property alias verticalScrollBarPolicy: scroller.verticalScrollBarPolicy - - /*! - This property controls if there should be a highlight - around the frame when the ScrollView has input focus. - - The default value is \c false. - - \note This property is only applicable on some platforms, such - as Mac OS. - */ - property bool highlightOnFocus: false - - /*! - \qmlproperty Item ScrollView::viewport - - The viewport determines the current "window" on the contentItem. - In other words, it clips it and the size of the viewport tells you - how much of the content area is visible. - */ - property alias viewport: viewportItem - - /*! - \qmlproperty Item ScrollView::flickableItem - - The flickableItem of the ScrollView. If the contentItem provided - to the ScrollView is a Flickable, it will be the \l contentItem. - */ - readonly property alias flickableItem: internal.flickableItem - - /*! - The contentItem of the ScrollView. This is set by the user. - - Note that the definition of contentItem is somewhat different to that - of a Flickable, where the contentItem is implicitly created. - */ - default property Item contentItem - - /*! \internal */ - property alias __scroller: scroller - /*! \internal */ - property alias __verticalScrollbarOffset: scroller.verticalScrollbarOffset - /*! \internal */ - property alias __wheelAreaScrollSpeed: wheelArea.scrollSpeed - /*! \internal */ - property int __scrollBarTopMargin: 0 - /*! \internal */ - property int __viewTopMargin: 0 - /*! \internal */ - property alias __horizontalScrollBar: scroller.horizontalScrollBar - /*! \internal */ - property alias __verticalScrollBar: scroller.verticalScrollBar - /*! \qmlproperty Component ScrollView::style - - The style Component for this control. - \sa {Qt Quick Controls Styles QML Types} - - */ - property Component style: Settings.styleComponent(Settings.style, "ScrollViewStyle.qml", root) - - /*! \internal */ - property Style __style: styleLoader.item - - activeFocusOnTab: true - - onContentItemChanged: { - - if (contentItem.hasOwnProperty("contentY") && // Check if flickable - contentItem.hasOwnProperty("contentHeight")) { - internal.flickableItem = contentItem // "Use content if it is a flickable - internal.flickableItem.parent = viewportItem - } else { - internal.flickableItem = flickableComponent.createObject(viewportItem) - contentItem.parent = internal.flickableItem.contentItem - } - internal.flickableItem.anchors.fill = viewportItem - if (!Settings.hasTouchScreen) - internal.flickableItem.interactive = false - } - - - children: Item { - id: internal - - property Flickable flickableItem - - Loader { - id: styleLoader - sourceComponent: style - onStatusChanged: { - if (status === Loader.Error) - console.error("Failed to load Style for", root) - } - property alias __control: root - } - - Binding { - target: flickableItem - property: "contentHeight" - when: contentItem !== flickableItem - value: contentItem ? contentItem.height : 0 - } - - Binding { - target: flickableItem - when: contentItem !== flickableItem - property: "contentWidth" - value: contentItem ? contentItem.width : 0 - } - - Connections { - target: flickableItem - - onContentYChanged: { - scroller.blockUpdates = true - scroller.verticalScrollBar.value = flickableItem.contentY - flickableItem.originY - scroller.blockUpdates = false - } - - onContentXChanged: { - scroller.blockUpdates = true - scroller.horizontalScrollBar.value = flickableItem.contentX - flickableItem.originX - scroller.blockUpdates = false - } - - } - - anchors.fill: parent - - Component { - id: flickableComponent - Flickable {} - } - - WheelArea { - id: wheelArea - parent: flickableItem - z: -1 - // ### Note this is needed due to broken mousewheel behavior in Flickable. - - anchors.fill: parent - - property int acceleration: 40 - property int flickThreshold: Settings.dragThreshold - property real speedThreshold: 3 - property real ignored: 0.001 // ## flick() does not work with 0 yVelocity - property int maxFlick: 400 - - property bool horizontalRecursionGuard: false - property bool verticalRecursionGuard: false - - horizontalMinimumValue: 0 - horizontalMaximumValue: flickableItem ? flickableItem.contentWidth - viewport.width : 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 && __style.__wheelScrollLines || 1) - - Connections { - target: flickableItem - - onContentYChanged: { - wheelArea.verticalRecursionGuard = true - wheelArea.verticalValue = flickableItem.contentY - flickableItem.originY - wheelArea.verticalRecursionGuard = false - } - onContentXChanged: { - wheelArea.horizontalRecursionGuard = true - wheelArea.horizontalValue = flickableItem.contentX - flickableItem.originX - wheelArea.horizontalRecursionGuard = false - } - } - - onVerticalValueChanged: { - if (!verticalRecursionGuard) { - var effectiveContentY = flickableItem.contentY - flickableItem.originY - if (effectiveContentY < flickThreshold && verticalDelta > speedThreshold) { - flickableItem.flick(ignored, Math.min(maxFlick, acceleration * verticalDelta)) - } else if (effectiveContentY > flickableItem.contentHeight - flickThreshold - viewport.height - && verticalDelta < -speedThreshold) { - flickableItem.flick(ignored, Math.max(-maxFlick, acceleration * verticalDelta)) - } else { - flickableItem.contentY = verticalValue + flickableItem.originY - } - flickableItem.contentY = Math.min(verticalMaximumValue, Math.max(0, flickableItem.contentY)); - } - } - - onHorizontalValueChanged: { - if (!horizontalRecursionGuard) - flickableItem.contentX = horizontalValue + flickableItem.originX - } - } - - ScrollViewHelper { - id: scroller - anchors.fill: parent - active: wheelArea.active - 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 - property int horizontalScrollbarOffset: horizontalScrollBar.visible && !horizontalScrollBar.isTransient ? - horizontalScrollBar.height + scrollBarSpacing : 0 - Loader { - id: frameLoader - sourceComponent: __style ? __style.frame : null - anchors.fill: parent - anchors.rightMargin: scroller.outerFrame ? 0 : scroller.verticalScrollbarOffset - anchors.bottomMargin: scroller.outerFrame ? 0 : scroller.horizontalScrollbarOffset - } - - Item { - id: viewportItem - anchors.fill: frameLoader - anchors.topMargin: frameVisible ? __style.padding.top : 0 - anchors.leftMargin: frameVisible ? __style.padding.left : 0 - anchors.rightMargin: (frameVisible ? __style.padding.right : 0) + (scroller.outerFrame ? scroller.verticalScrollbarOffset : 0) - anchors.bottomMargin: (frameVisible ? __style.padding.bottom : 0) + (scroller.outerFrame ? scroller.horizontalScrollbarOffset : 0) - clip: true - } - } - FocusFrame { visible: highlightOnFocus && root.activeFocus } - } -} diff --git a/YACReaderLibrary/qml/YACReaderScrollViewStyle.qml b/YACReaderLibrary/qml/YACReaderScrollViewStyle.qml deleted file mode 100644 index 09bc7da3..00000000 --- a/YACReaderLibrary/qml/YACReaderScrollViewStyle.qml +++ /dev/null @@ -1,403 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt Quick Controls module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.2 -import QtQuick.Controls 1.2 -import QtQuick.Controls.Private 1.0 - -/*! - \qmltype ScrollViewStyle - \inqmlmodule QtQuick.Controls.Styles - \since 5.1 - \ingroup viewsstyling - \ingroup controlsstyling - \brief Provides custom styling for ScrollView -*/ -Style { - id: root - - /*! The \l ScrollView this style is attached to. */ - readonly property ScrollView control: __control - - /*! This property controls the frame border padding of the scrollView. */ - padding {left: 1; top: 1; right: 1; bottom: 1} - - /*! This Component paints the corner area between scroll bars */ - property Component corner: Rectangle { color: "#ccc" } - - /*! This component determines if the flickable should reposition itself at the - mouse location when clicked. */ - property bool scrollToClickedPosition: true - - /*! This property holds whether the scroll bars are transient. Transient scroll bars - appear when the content is scrolled and disappear when they are no longer needed. - - The default value is platform dependent. */ - property bool transientScrollBars: Settings.isMobile && Settings.hasTouchScreen - - /*! This Component paints the frame around scroll bars. */ - property Component frame: Rectangle { - color: control["backgroundVisible"] ? "white": "transparent" - border.color: "#999" - border.width: 1 - radius: 1 - visible: control.frameVisible - } - - /*! This is the minimum extent of the scroll bar handle. - - The default value is \c 30. - */ - - property int minimumHandleLength: 30 - - /*! This property controls the edge overlap - between the handle and the increment/decrement buttons. - - The default value is \c 30. - */ - - property int handleOverlap: 1 - - /*! This component controls the appearance of the - scroll bar background. - - You can access the following state properties: - - \table - \row \li property bool \b styleData.hovered - \row \li property bool \b styleData.horizontal - \endtable - */ - - property Component scrollBarBackground: Item { - property bool sticky: false - property bool hovered: styleData.hovered - implicitWidth: Math.round(TextSingleton.implicitHeight) - implicitHeight: Math.round(TextSingleton.implicitHeight) - clip: true - opacity: transientScrollBars ? 0.5 : 1.0 - visible: !Settings.hasTouchScreen && (!transientScrollBars || sticky) - Rectangle { - anchors.fill: parent - color: "#ddd" - border.color: "#aaa" - anchors.rightMargin: styleData.horizontal ? -2 : -1 - anchors.leftMargin: styleData.horizontal ? -2 : 0 - anchors.topMargin: styleData.horizontal ? 0 : -2 - anchors.bottomMargin: styleData.horizontal ? -1 : -2 - } - onHoveredChanged: if (hovered) sticky = true - onVisibleChanged: if (!visible) sticky = false - } - - /*! This component controls the appearance of the - scroll bar handle. - - You can access the following state properties: - - \table - \row \li property bool \b styleData.hovered - \row \li property bool \b styleData.pressed - \row \li property bool \b styleData.horizontal - \endtable - */ - - property Component handle: Item { - property bool sticky: false - property bool hovered: __activeControl !== "none" - implicitWidth: Math.round(TextSingleton.implicitHeight) + 1 - implicitHeight: Math.round(TextSingleton.implicitHeight) + 1 - BorderImage { - id: img - opacity: styleData.pressed && !transientScrollBars ? 0.5 : styleData.hovered ? 1 : 0.8 - source: "images/scrollbar-handle-" + (transientScrollBars ? "transient" : styleData.horizontal ? "horizontal" : "vertical") + ".png" - border.left: transientScrollBars ? 5 : 2 - border.top: transientScrollBars ? 5 : 2 - border.right: transientScrollBars ? 5 : 2 - border.bottom: transientScrollBars ? 5 : 2 - anchors.top: !styleData.horizontal ? parent.top : undefined - anchors.margins: transientScrollBars ? 2 : 0 - anchors.bottom: parent.bottom - anchors.right: parent.right - anchors.left: styleData.horizontal ? parent.left : undefined - width: !styleData.horizontal && transientScrollBars ? sticky ? 13 : 10 : parent.width - height: styleData.horizontal && transientScrollBars ? sticky ? 13 : 10 : parent.height - Behavior on width { enabled: !styleData.horizontal && transientScrollBars; NumberAnimation { duration: 100 } } - Behavior on height { enabled: styleData.horizontal && transientScrollBars; NumberAnimation { duration: 100 } } - } - onHoveredChanged: if (hovered) sticky = true - onVisibleChanged: if (!visible) sticky = false - } - - /*! This component controls the appearance of the - scroll bar increment button. - - You can access the following state properties: - - \table - \row \li property bool \b styleData.hovered - \row \li property bool \b styleData.pressed - \row \li property bool \b styleData.horizontal - \endtable - */ - property Component incrementControl: Rectangle { - visible: !transientScrollBars - implicitWidth: transientScrollBars ? 0 : Math.round(TextSingleton.implicitHeight) - implicitHeight: transientScrollBars ? 0 : Math.round(TextSingleton.implicitHeight) - Rectangle { - anchors.fill: parent - anchors.bottomMargin: -1 - anchors.rightMargin: -1 - border.color: "#aaa" - Rectangle { - anchors.fill: parent - anchors.margins: 1 - color: "transparent" - border.color: "#44ffffff" - } - Image { - source: styleData.horizontal ? "images/arrow-right.png" : "images/arrow-down.png" - anchors.centerIn: parent - opacity: control.enabled ? 0.6 : 0.5 - } - gradient: Gradient { - GradientStop {color: styleData.pressed ? "lightgray" : "white" ; position: 0} - GradientStop {color: styleData.pressed ? "lightgray" : "lightgray" ; position: 1} - } - } - } - - /*! This component controls the appearance of the - scroll bar decrement button. - - You can access the following state properties: - - \table - \row \li property bool \b styleData.hovered - \row \li property bool \b styleData.pressed - \row \li property bool \b styleData.horizontal - \endtable - */ - property Component decrementControl: Rectangle { - visible: !transientScrollBars - implicitWidth: transientScrollBars ? 0 : Math.round(TextSingleton.implicitHeight) - implicitHeight: transientScrollBars ? 0 : Math.round(TextSingleton.implicitHeight) - Rectangle { - anchors.fill: parent - anchors.topMargin: styleData.horizontal ? 0 : -1 - anchors.leftMargin: styleData.horizontal ? -1 : 0 - anchors.bottomMargin: styleData.horizontal ? -1 : 0 - anchors.rightMargin: styleData.horizontal ? 0 : -1 - color: "lightgray" - Rectangle { - anchors.fill: parent - anchors.margins: 1 - color: "transparent" - border.color: "#44ffffff" - } - Image { - source: styleData.horizontal ? "images/arrow-left.png" : "images/arrow-up.png" - anchors.centerIn: parent - anchors.verticalCenterOffset: styleData.horizontal ? 0 : -1 - anchors.horizontalCenterOffset: styleData.horizontal ? -1 : 0 - opacity: control.enabled ? 0.6 : 0.5 - } - gradient: Gradient { - GradientStop {color: styleData.pressed ? "lightgray" : "white" ; position: 0} - GradientStop {color: styleData.pressed ? "lightgray" : "lightgray" ; position: 1} - } - border.color: "#aaa" - } - } - - /*! \internal */ - property Component __scrollbar: Item { - id: panel - property string activeControl: "none" - property bool scrollToClickPosition: true - property bool isTransient: transientScrollBars - - property bool on: false - property bool raised: false - property bool sunken: __styleData.upPressed | __styleData.downPressed | __styleData.handlePressed - - states: State { - name: "out" - when: isTransient - && (!__stickyScrollbars || !flickableItem.moving) - && panel.activeControl === "none" - && !panel.on - && !panel.raised - PropertyChanges { target: panel; opacity: 0 } - } - - transitions: Transition { - to: "out" - SequentialAnimation { - PauseAnimation { duration: root.__scrollBarFadeDelay } - NumberAnimation { properties: "opacity"; duration: root.__scrollBarFadeDuration } - PropertyAction { target: panel; property: "visible"; value: false } - } - } - - implicitWidth: __styleData.horizontal ? 200 : bg.implicitWidth - implicitHeight: __styleData.horizontal ? bg.implicitHeight : 200 - - function pixelMetric(arg) { - if (arg === "scrollbarExtent") - return (__styleData.horizontal ? bg.height : bg.width); - return 0; - } - - function styleHint(arg) { - return false; - } - - function hitTest(argX, argY) { - if (itemIsHit(handleControl, argX, argY)) - return "handle" - else if (itemIsHit(incrementLoader, argX, argY)) - return "up"; - else if (itemIsHit(decrementLoader, argX, argY)) - return "down"; - else if (itemIsHit(bg, argX, argY)) { - if (__styleData.horizontal && argX < handleControl.x || !__styleData.horizontal && argY < handleControl.y) - return "upPage" - else - return "downPage" - } - - return "none"; - } - - function subControlRect(arg) { - if (arg === "handle") { - return Qt.rect(handleControl.x, handleControl.y, handleControl.width, handleControl.height); - } else if (arg === "groove") { - if (__styleData.horizontal) { - return Qt.rect(incrementLoader.width - handleOverlap, - 0, - __control.width - (incrementLoader.width + decrementLoader.width - handleOverlap * 2), - __control.height); - } else { - return Qt.rect(0, - incrementLoader.height - handleOverlap, - __control.width, - __control.height - (incrementLoader.height + decrementLoader.height - handleOverlap * 2)); - } - } - return Qt.rect(0,0,0,0); - } - - function itemIsHit(argItem, argX, argY) { - var pos = argItem.mapFromItem(__control, argX, argY); - return (pos.x >= 0 && pos.x <= argItem.width && pos.y >= 0 && pos.y <= argItem.height); - } - - Loader { - id: incrementLoader - anchors.top: parent.top - anchors.left: parent.left - sourceComponent: decrementControl - property QtObject styleData: QtObject { - readonly property bool hovered: activeControl === "up" - readonly property bool pressed: __styleData.upPressed - readonly property bool horizontal: __styleData.horizontal - } - } - - Loader { - id: bg - anchors.top: __styleData.horizontal ? undefined : incrementLoader.bottom - anchors.bottom: __styleData.horizontal ? undefined : decrementLoader.top - anchors.left: __styleData.horizontal ? incrementLoader.right : undefined - anchors.right: __styleData.horizontal ? decrementLoader.left : undefined - sourceComponent: scrollBarBackground - property QtObject styleData: QtObject { - readonly property bool horizontal: __styleData.horizontal - readonly property bool hovered: activeControl !== "none" - } - } - - Loader { - id: decrementLoader - anchors.bottom: __styleData.horizontal ? undefined : parent.bottom - anchors.right: __styleData.horizontal ? parent.right : undefined - sourceComponent: incrementControl - property QtObject styleData: QtObject { - readonly property bool hovered: activeControl === "down" - readonly property bool pressed: __styleData.downPressed - readonly property bool horizontal: __styleData.horizontal - } - } - - property var flickableItem: control.flickableItem - property int extent: Math.max(minimumHandleLength, __styleData.horizontal ? - (flickableItem ? flickableItem.width/flickableItem.contentWidth : 0 ) * bg.width : - (flickableItem ? flickableItem.height/flickableItem.contentHeight : 0) * bg.height) - readonly property real range: __control.maximumValue - __control.minimumValue - readonly property real begin: __control.value - __control.minimumValue - - Loader { - id: handleControl - height: __styleData.horizontal ? implicitHeight : extent - width: __styleData.horizontal ? extent : implicitWidth - anchors.top: bg.top - anchors.left: bg.left - anchors.topMargin: __styleData.horizontal || range === 0 ? 0 : -handleOverlap + (2 * begin * (bg.height + (2 * handleOverlap) - extent) + range) / (2 * range) - anchors.leftMargin: __styleData.horizontal && range !== 0 ? -handleOverlap + (2 * begin * (bg.width + (2 * handleOverlap) - extent) + range) / (2 * range) : 0 - sourceComponent: handle - property QtObject styleData: QtObject { - readonly property bool hovered: activeControl === "handle" - readonly property bool pressed: __styleData.handlePressed - readonly property bool horizontal: __styleData.horizontal - } - readonly property alias __activeControl: panel.activeControl - } - } - - /*! \internal */ - property bool __externalScrollBars: false - /*! \internal */ - property int __scrollBarSpacing: 4 - /*! \internal */ - property int __scrollBarFadeDelay: 450 - /*! \internal */ - property int __scrollBarFadeDuration: 200 - /*! \internal */ - property bool __stickyScrollbars: false -}