diff --git a/app/CheckableSlider.qml b/app/CheckableSlider.qml index d8a952a..683317b 100644 --- a/app/CheckableSlider.qml +++ b/app/CheckableSlider.qml @@ -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 diff --git a/app/SettingsEffectsTab.qml b/app/SettingsEffectsTab.qml index a72a1fd..093801d 100644 --- a/app/SettingsEffectsTab.qml +++ b/app/SettingsEffectsTab.qml @@ -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; } } } diff --git a/app/SettingsTerminalTab.qml b/app/SettingsTerminalTab.qml index f8116c8..af1c067 100644 --- a/app/SettingsTerminalTab.qml +++ b/app/SettingsTerminalTab.qml @@ -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 } } }