Warning, /maui/nomad-style/RangeSlider.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 * Copyright 2017 Marco Martin <mart@kde.org>
0003 * Copyright 2017 The Qt Company Ltd.
0004 *
0005 * GNU Lesser General Public License Usage
0006 * Alternatively, this file may be used under the terms of the GNU Lesser
0007 * General Public License version 3 as published by the Free Software
0008 * Foundation and appearing in the file LICENSE.LGPLv3 included in the
0009 * packaging of this file. Please review the following information to
0010 * ensure the GNU Lesser General Public License version 3 requirements
0011 * will be met: https://www.gnu.org/licenses/lgpl.html.
0012 *
0013 * GNU General Public License Usage
0014 * Alternatively, this file may be used under the terms of the GNU
0015 * General Public License version 2.0 or later as published by the Free
0016 * Software Foundation and appearing in the file LICENSE.GPL included in
0017 * the packaging of this file. Please review the following information to
0018 * ensure the GNU General Public License version 2.0 requirements will be
0019 * met: http://www.gnu.org/licenses/gpl-2.0.html.
0020 */
0021
0022
0023 import QtQuick 2.6
0024 import QtQuick.Controls 2.3
0025 import QtQuick.Templates 2.3 as T
0026 import org.kde.kirigami 2.2 as Kirigami
0027
0028 T.RangeSlider {
0029 id: control
0030
0031 implicitWidth: Math.max(background ? background.implicitWidth : 0,
0032 Math.max(first.handle ? first.handle.implicitWidth : 0,
0033 second.handle ? second.handle.implicitWidth : 0) + leftPadding + rightPadding)
0034 implicitHeight: Math.max(background ? background.implicitHeight : 0,
0035 Math.max(first.handle ? first.handle.implicitHeight : 0,
0036 second.handle ? second.handle.implicitHeight : 0) + topPadding + bottomPadding)
0037
0038 padding: 6
0039
0040 first.handle: Rectangle {
0041 property bool horizontal: control.orientation === Qt.Horizontal
0042 x: control.leftPadding + (horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
0043 y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
0044 implicitWidth: 18
0045 implicitHeight: 18
0046 radius: width / 2
0047 property color borderColor: Kirigami.Theme.textColor
0048 border.color: control.activeFocus ? Kirigami.Theme.highlightColor : Qt.rgba(borderColor.r, borderColor.g, borderColor.b, 0.3)
0049 color: Kirigami.Theme.backgroundColor
0050 Rectangle {
0051 z: -1
0052 x: 1
0053 y: 1
0054 width: parent.width
0055 height: parent.height
0056 radius: width / 2
0057 color: Qt.rgba(0, 0, 0, 0.15)
0058 }
0059 }
0060
0061 second.handle: Rectangle {
0062 property bool horizontal: control.orientation === Qt.Horizontal
0063 x: control.leftPadding + (horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
0064 y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
0065 implicitWidth: 18
0066 implicitHeight: 18
0067 radius: width / 2
0068 property color borderColor: Kirigami.Theme.textColor
0069 border.color: control.activeFocus ? Kirigami.Theme.highlightColor : Qt.rgba(borderColor.r, borderColor.g, borderColor.b, 0.3)
0070 color: Kirigami.Theme.backgroundColor
0071 Rectangle {
0072 z: -1
0073 x: 1
0074 y: 1
0075 width: parent.width
0076 height: parent.height
0077 radius: width / 2
0078 color: Qt.rgba(0, 0, 0, 0.15)
0079 }
0080 }
0081
0082 background: Rectangle {
0083 readonly property bool horizontal: control.orientation === Qt.Horizontal
0084 implicitWidth: horizontal ? 200 : 6
0085 implicitHeight: horizontal ? 6 : 200
0086 width: horizontal ? control.availableWidth : implicitWidth
0087 height: horizontal ? implicitHeight : control.availableHeight
0088 radius: Math.round(Math.min(width/2, height/2))
0089 property color bgColor: Kirigami.Theme.textColor
0090 color: Qt.rgba(bgColor.r, bgColor.g, bgColor.b, 0.3)
0091 anchors.centerIn: parent
0092
0093 Rectangle {
0094 x: parent.horizontal ? control.first.position * parent.width : 0
0095 y: parent.horizontal ? 0 : control.second.visualPosition * parent.height + 6
0096 width: parent.horizontal ? control.second.position * parent.width - control.first.position * parent.width - 6 : 6
0097 height: parent.horizontal ? 6 : control.second.position * parent.height - control.first.position * parent.height - 6
0098 color: Kirigami.Theme.highlightColor
0099 }
0100 }
0101 }