Revision control

Copy as Markdown

// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtQuick.Controls.Material
Item {
id: rootItem
property bool show: true
property real showAnimation: show ? 1 : 0
function resetSettings() {
colorizationColorSelector.setValues(defaultSettings.colorizationColor.r,
defaultSettings.colorizationColor.g,
defaultSettings.colorizationColor.b);
shadowColorSelector.setValues(defaultSettings.shadowColor.r,
defaultSettings.shadowColor.g,
defaultSettings.shadowColor.b);
}
Material.theme: Material.Dark
Material.accent: Material.LightGreen
width: settings.settingsViewWidth
x: -(width + 30) * (1 - showAnimation) + 20
Behavior on showAnimation {
NumberAnimation {
duration: 400
easing.type: Easing.InOutQuad
}
}
// Open/close button
Item {
width: 30 * dp
height: 30 * dp
anchors.left: parent.right
anchors.leftMargin: 20
anchors.top: parent.top
anchors.topMargin: -10
Rectangle {
anchors.fill: parent
color: "#404040"
opacity: 0.4
border.width: 1
border.color: "#808080"
}
Image {
anchors.centerIn: parent
source: "images/arrow.png"
rotation: rootItem.showAnimation * 180
}
MouseArea {
anchors.fill: parent
anchors.margins: -30 * dp
onClicked: {
rootItem.show = !rootItem.show;
}
}
}
// Background
Rectangle {
anchors.fill: scrollView
opacity: showAnimation ? 0.6 : 0
visible: opacity
anchors.margins: -10
color: "#202020"
border.color: "#808080"
border.width: 1
}
ScrollView {
id: scrollView
anchors.fill: parent
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
ScrollBar.vertical.interactive: false
clip: true
Column {
id: settingsArea
anchors.fill: parent
opacity: showAnimation
visible: opacity
Item {
width: 1
height: 20 * dp
}
Image {
anchors.horizontalCenter: parent.horizontalCenter
fillMode: Image.PreserveAspectFit
width: parent.width * 0.8
height: width * 0.25
source: "images/Built_with_Qt_RGB_logo.png"
}
Item {
width: 1
height: 28 * dp
}
SettingsComponentView {
id: settingsViewGeneral
text: qsTr("General")
show: true
SettingsComponentCheckBox {
text: "Show Shaders"
checked: settings.showShader
onToggled: {
settings.showShader = checked;
}
}
SettingsComponentCheckBox {
text: "Show Item Size"
checked: settings.showItemSize
onToggled: {
settings.showItemSize = checked;
}
}
SettingsComponentCheckBox {
text: "AutoPadding Enabled"
checked: settings.autoPaddingEnabled
onToggled: {
settings.autoPaddingEnabled = checked;
}
}
SettingsComponentCheckBox {
text: "Show Custom MultiEffect"
checked: settings.showCustomMultiEffect
onToggled: {
settings.showCustomMultiEffect = checked;
}
}
Item {
width: 1
height: 20 * dp
}
SettingsComponentSlider {
text: qsTr("Padding Left") + ": " + value.toFixed(0)
value: settings.paddingRect.x
from: 0.0
to: 300
onMoved: {
settings.paddingRect.x = value;
}
}
SettingsComponentSlider {
text: qsTr("Padding Right") + ": " + value.toFixed(0)
value: settings.paddingRect.width
from: 0.0
to: 300
onMoved: {
settings.paddingRect.width = value;
}
}
SettingsComponentSlider {
text: qsTr("Padding Top") + ": " + value.toFixed(0)
value: settings.paddingRect.y
from: 0.0
to: 300
onMoved: {
settings.paddingRect.y = value;
}
}
SettingsComponentSlider {
text: qsTr("Padding Bottom") + ": " + value.toFixed(0)
value: settings.paddingRect.height
from: 0.0
to: 300
onMoved: {
settings.paddingRect.height = value;
}
}
}
SettingsComponentView {
text: qsTr("Color")
show: false
SettingsComponentSlider {
text: qsTr("Brightness") + ": " + value.toFixed(3)
showCheckbox: true
checked: settings.brightnessEnabled
onToggled: {
settings.brightnessEnabled = checked;
}
value: settings.brightness
from: -1
to: 1
onMoved: {
settings.brightness = value;
}
}
SettingsComponentSlider {
text: qsTr("Contrast") + ": " + value.toFixed(3)
showCheckbox: true
checked: settings.contrastEnabled
onToggled: {
settings.contrastEnabled = checked;
}
value: settings.contrast
from: -1
to: 1
onMoved: {
settings.contrast = value;
}
}
SettingsComponentSlider {
text: qsTr("Saturation") + ": " + value.toFixed(3)
showCheckbox: true
checked: settings.saturationEnabled
onToggled: {
settings.saturationEnabled = checked;
}
value: settings.saturation
from: -1
to: 1
onMoved: {
settings.saturation = value;
}
}
SettingsComponentSlider {
text: qsTr("Colorization") + ": " + value.toFixed(3)
showCheckbox: true
checked: settings.colorizationEnabled
onToggled: {
settings.colorizationEnabled = checked;
}
value: settings.colorization
from: 0
to: 1
onMoved: {
settings.colorization = value;
}
}
SettingsComponentColorSelector {
id: colorizationColorSelector
text: qsTr("Colorization Color")
width: settings.settingsViewWidth - 10
onValueChanged: {
settings.colorizationColor = value;
}
}
}
SettingsComponentView {
text: qsTr("Blur")
show: false
SettingsComponentSlider {
text: qsTr("Blur") + ": " + value.toFixed(3)
showCheckbox: true
checked: settings.blurEnabled
onToggled: {
settings.blurEnabled = checked;
}
value: settings.blur
from: 0
to: 1.0
onMoved: {
settings.blur = value;
}
}
SettingsComponentSlider {
text: qsTr("Blur Multiplier") + ": " + value.toFixed(3)
value: settings.blurMultiplier
from: 0.0
to: 2.0
onMoved: {
settings.blurMultiplier = value;
}
}
SettingsComponentSlider {
text: qsTr("Blur Max") + ": " + value.toFixed(0)
value: settings.blurMax
from: 0
to: 64
stepSize: 2
onMoved: {
settings.blurMax = value;
}
}
}
SettingsComponentView {
text: qsTr("Shadow")
show: false
SettingsComponentSlider {
text: qsTr("Shadow") + ": " + value.toFixed(3)
showCheckbox: true
checked: settings.shadowEnabled
onToggled: {
settings.shadowEnabled = checked;
}
value: settings.shadowOpacity
from: 0
to: 1.0
onMoved: {
settings.shadowOpacity = value;
}
}
SettingsComponentSlider {
text: qsTr("Shadow Blur") + ": " + value.toFixed(3)
value: settings.shadowBlur
from: 0.0
to: 1.0
onMoved: {
settings.shadowBlur = value;
}
}
SettingsComponentSlider {
text: qsTr("Shadow HorizontalOffset") + ": " + value.toFixed(1)
value: settings.shadowHorizontalOffset
from: -20.0
to: 20.0
onMoved: {
settings.shadowHorizontalOffset = value;
}
}
SettingsComponentSlider {
text: qsTr("Shadow VerticalOffset") + ": " + value.toFixed(1)
value: settings.shadowVerticalOffset
from: -20.0
to: 20.0
onMoved: {
settings.shadowVerticalOffset = value;
}
}
SettingsComponentSlider {
text: qsTr("Shadow Scale") + ": " + value.toFixed(3)
value: settings.shadowScale
from: 0.8
to: 1.2
onMoved: {
settings.shadowScale = value;
}
}
SettingsComponentColorSelector {
id: shadowColorSelector
text: qsTr("Shadow Color")
width: settings.settingsViewWidth - 10
onValueChanged: {
settings.shadowColor = value;
}
}
}
SettingsComponentView {
text: qsTr("Mask")
show: false
SettingsComponentCheckBox {
text: "Mask Enabled"
checked: settings.maskEnabled
onToggled: {
settings.maskEnabled = checked;
}
}
SettingsComponentCheckBox {
text: "Mask Inverted"
checked: settings.maskInverted
onToggled: {
settings.maskInverted = checked;
}
}
Item {
width: 1
height: 20 * dp
}
SettingsComponentSlider {
text: qsTr("Mask Threshold Min") + ": " + value.toFixed(3)
value: settings.maskThresholdMin
from: 0.0
to: 1.0
onMoved: {
settings.maskThresholdMin = value;
}
}
SettingsComponentSlider {
text: qsTr("Mask Spread At Min") + ": " + value.toFixed(3)
value: settings.maskSpreadAtMin
from: 0.0
to: 1.0
onMoved: {
settings.maskSpreadAtMin = value;
}
}
SettingsComponentSlider {
text: qsTr("Mask Threshold Max") + ": " + value.toFixed(3)
value: settings.maskThresholdMax
from: 0.0
to: 1.0
onMoved: {
settings.maskThresholdMax = value;
}
}
SettingsComponentSlider {
text: qsTr("Mask Spread At Max") + ": " + value.toFixed(3)
value: settings.maskSpreadAtMax
from: 0.0
to: 1.0
onMoved: {
settings.maskSpreadAtMax = value;
}
}
}
}
}
}