mirror of
https://github.com/Swordfish90/cool-retro-term.git
synced 2025-02-20 20:09:14 +00:00
Fixing checkable slider. It now behaves consistently and avoids binding loops.
This commit is contained in:
parent
1c97a08b8d
commit
abb485f828
@ -23,30 +23,48 @@ import QtQuick.Controls 1.1
|
||||
import QtQuick.Layouts 1.1
|
||||
|
||||
RowLayout {
|
||||
property bool enabled: true
|
||||
property alias name: check.text
|
||||
property double value: (check.checked) ? _value : 0.0
|
||||
property alias _value: slider.value
|
||||
|
||||
property double value
|
||||
property alias min_value: slider.minimumValue
|
||||
property alias max_value: slider.maximumValue
|
||||
property alias stepSize: slider.stepSize
|
||||
|
||||
signal newValue(real newValue);
|
||||
|
||||
id: setting_component
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
spacing: 25
|
||||
|
||||
onValueChanged: {
|
||||
check.checked = !(value == 0);
|
||||
if(check.checked)
|
||||
slider.value = value;
|
||||
}
|
||||
|
||||
CheckBox{
|
||||
id: check
|
||||
implicitWidth: 150
|
||||
Component.onCompleted: checked = (_value !== 0);
|
||||
enabled: parent.enabled
|
||||
onClicked: {
|
||||
if(!checked){
|
||||
checked = false;
|
||||
slider.enabled = false;
|
||||
newValue(0);
|
||||
} else {
|
||||
checked = true;
|
||||
newValue(slider.value);
|
||||
slider.enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Slider{
|
||||
id: slider
|
||||
stepSize: parent.stepSize
|
||||
Layout.fillWidth: true
|
||||
enabled: check.checked && parent.enabled
|
||||
onValueChanged: {
|
||||
newValue(value);
|
||||
}
|
||||
}
|
||||
Text{
|
||||
id: textfield
|
||||
|
@ -30,49 +30,49 @@ Tab{
|
||||
anchors.fill: parent
|
||||
CheckableSlider{
|
||||
name: qsTr("Bloom")
|
||||
onValueChanged: shadersettings.bloom_strength = value
|
||||
_value: shadersettings.bloom_strength
|
||||
onNewValue: shadersettings.bloom_strength = newValue
|
||||
value: shadersettings.bloom_strength
|
||||
}
|
||||
CheckableSlider{
|
||||
name: qsTr("Motion Blur")
|
||||
onValueChanged: shadersettings.motion_blur = value
|
||||
_value: shadersettings.motion_blur
|
||||
onNewValue: shadersettings.motion_blur = newValue
|
||||
value: shadersettings.motion_blur
|
||||
}
|
||||
CheckableSlider{
|
||||
name: qsTr("Noise")
|
||||
onValueChanged: shadersettings.noise_strength = value
|
||||
_value: shadersettings.noise_strength
|
||||
onNewValue: shadersettings.noise_strength = newValue
|
||||
value: shadersettings.noise_strength
|
||||
}
|
||||
CheckableSlider{
|
||||
name: qsTr("Jitter")
|
||||
onValueChanged: shadersettings.jitter = value
|
||||
_value: shadersettings.jitter
|
||||
onNewValue: shadersettings.jitter = newValue
|
||||
value: shadersettings.jitter
|
||||
}
|
||||
CheckableSlider{
|
||||
name: qsTr("Glow")
|
||||
onValueChanged: shadersettings.glowing_line_strength = value;
|
||||
_value: shadersettings.glowing_line_strength
|
||||
onNewValue: shadersettings.glowing_line_strength = newValue;
|
||||
value: shadersettings.glowing_line_strength
|
||||
}
|
||||
CheckableSlider{
|
||||
name: qsTr("Screen distortion")
|
||||
onValueChanged: shadersettings.screen_distortion = value;
|
||||
_value: shadersettings.screen_distortion;
|
||||
onNewValue: shadersettings.screen_distortion = newValue;
|
||||
value: shadersettings.screen_distortion;
|
||||
}
|
||||
CheckableSlider{
|
||||
name: qsTr("Ambient light")
|
||||
onValueChanged: shadersettings.ambient_light = value;
|
||||
_value: shadersettings.ambient_light
|
||||
onNewValue: shadersettings.ambient_light = newValue;
|
||||
value: shadersettings.ambient_light
|
||||
enabled: shadersettings.frames_index !== 0
|
||||
}
|
||||
CheckableSlider{
|
||||
name: qsTr("Brightness flickering")
|
||||
onValueChanged: shadersettings.brightness_flickering= value;
|
||||
_value: shadersettings.brightness_flickering;
|
||||
onNewValue: shadersettings.brightness_flickering = newValue;
|
||||
value: shadersettings.brightness_flickering;
|
||||
}
|
||||
CheckableSlider{
|
||||
name: qsTr("Horizontal flickering")
|
||||
onValueChanged: shadersettings.horizontal_sincronization = value;
|
||||
_value: shadersettings.horizontal_sincronization;
|
||||
onNewValue: shadersettings.horizontal_sincronization = newValue;
|
||||
value: shadersettings.horizontal_sincronization;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -115,13 +115,14 @@ Tab{
|
||||
Layout.fillWidth: true
|
||||
CheckableSlider{
|
||||
name: qsTr("Chroma Color")
|
||||
onValueChanged: shadersettings.chroma_color = value
|
||||
_value: shadersettings.chroma_color
|
||||
onNewValue: shadersettings.chroma_color = newValue
|
||||
value: shadersettings.chroma_color
|
||||
}
|
||||
CheckableSlider{
|
||||
name: qsTr("Saturation Color")
|
||||
onValueChanged: shadersettings.saturation_color = value
|
||||
_value: shadersettings.saturation_color
|
||||
onNewValue: shadersettings.saturation_color = newValue
|
||||
value: shadersettings.saturation_color
|
||||
enabled: shadersettings.chroma_color !== 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user