Warning, /multimedia/kdenlive/src/effects/effectstack/view/qml/EffectSlider.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2017 Jean-Baptiste Mardelle <jb@kdenlive.org> 0003 SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 */ 0005 0006 import QtQuick 2.15 0007 import QtQuick.Controls 2.15 0008 import QtQuick.Controls.Styles 1.4 0009 import QtQuick.Layouts 1.15 0010 0011 Item { 0012 id: sliderroot 0013 property string sliderIcon 0014 property string sliderLabel 0015 property string paramName 0016 property int slider_max: 100 0017 property int slider_min: 0 0018 property int slider_def: 100 0019 property bool blockSignals: false 0020 implicitHeight: 20 0021 anchors.fill: parent 0022 0023 function resetSlider() { 0024 slider.value = sliderroot.slider_def 0025 } 0026 0027 function setValue(val) { 0028 sliderroot.blockSignals = true 0029 slider.value = val 0030 sliderroot.blockSignals = false 0031 } 0032 0033 RowLayout{ 0034 spacing: 0 0035 anchors.fill: parent 0036 anchors.margins: 0 0037 ToolButton { 0038 id: enableButton 0039 implicitHeight: 20 0040 implicitWidth: 20 0041 iconName: sliderroot.sliderIcon 0042 visible: sliderroot.sliderIcon != '' 0043 checkable: true 0044 checked: true 0045 Layout.rightMargin: 2 0046 } 0047 Slider { 0048 id: slider 0049 Layout.fillWidth: true 0050 Layout.minimumWidth: 50 0051 Layout.maximumWidth: 500 0052 //TODO: don't hardcode 0053 height: sliderroot.sliderLabel == '' ? 12 : 20 0054 tickmarksEnabled: false 0055 maximumValue: sliderroot.slider_max 0056 minimumValue: sliderroot.slider_min 0057 value: sliderroot.slider_def 0058 stepSize: 1 0059 enabled: enableButton.checked 0060 opacity: enabled ? 1 : 0.4 0061 updateValueWhileDragging: true 0062 onValueChanged: { 0063 spinbox.value = value 0064 if (!sliderroot.blockSignals) { 0065 root.valueChanged(sliderroot.paramName, value) 0066 } 0067 } 0068 /*Text { 0069 text: sliderroot.sliderLabel 0070 leftPadding: 5 0071 opacity: 0.5 0072 color: activePalette.text 0073 }*/ 0074 style: SliderStyle { 0075 handle: Rectangle { 0076 height: slider.height 0077 width: 4 0078 radius: 2 0079 color: container.containsMouse ? activePalette.highlight : activePalette.text 0080 } 0081 groove: Rectangle { 0082 anchors.bottom: parent.bottom 0083 implicitHeight: slider.height / 4 0084 implicitWidth: 100 0085 radius: 4 0086 border.color: activePalette.dark 0087 color: activePalette.base 0088 Rectangle { 0089 height: parent.height 0090 width: styleData.handlePosition + 2 0091 implicitHeight: slider.height 0092 implicitWidth: 100 0093 radius: 4 0094 color: activePalette.highlight 0095 opacity: container.containsMouse ? 0.6 : 0.3 0096 } 0097 } 0098 0099 } 0100 Repeater { 0101 id: repeater 0102 model: 9 0103 Rectangle { 0104 color: activePalette.text 0105 width: 1 ; height: (index % 2 == 0) ? 5 : 3 0106 y: slider.height - height 0107 x: (index * slider.width) / (repeater.count-1) 0108 opacity: 0.5 0109 } 0110 } 0111 Component.onCompleted: { 0112 // Create some controls. 0113 //slider.onValueChanged.connect(appWindow.sliderChanged) 0114 //spinBox.onValueChanged.connect(appWindow.spinBoxChanged) 0115 } 0116 } 0117 SpinBox { 0118 id: spinbox 0119 maximumValue: sliderroot.slider_max 0120 minimumValue: sliderroot.slider_min 0121 value: sliderroot.slider_def 0122 enabled: enableButton.checked 0123 onValueChanged: { 0124 slider.value = value 0125 } 0126 style: SpinBoxStyle{ 0127 textColor: activePalette.highlight 0128 background: Rectangle { 0129 implicitWidth: 60 0130 implicitHeight: 20 0131 //control.hoverEnabled: true 0132 border.color: control.focus ? "red" : control.hovered ? activePalette.highlight : "transparent" 0133 color: 'transparent' 0134 radius: 2 0135 } 0136 } 0137 } 0138 } 0139 MouseArea { 0140 id: container 0141 anchors.fill: parent 0142 hoverEnabled: true 0143 acceptedButtons: Qt.NoButton 0144 enabled: enableButton.checked 0145 } 0146 }