X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=app%2FMixer.qml;h=b14ae68ce819139e2b0c246f34c0737619fe991b;hb=refs%2Ftags%2Flamprey_12.1.18;hp=8b1ba069b5e4d9d18de21e6481c528bafe74c015;hpb=63dc51c35d26c837295ac0ef33c1b8e41353ea35;p=apps%2Fmixer.git diff --git a/app/Mixer.qml b/app/Mixer.qml index 8b1ba06..b14ae68 100644 --- a/app/Mixer.qml +++ b/app/Mixer.qml @@ -14,94 +14,56 @@ * limitations under the License. */ -// BUG: ValueChanged event is raised by sliders when you are moving the caret, should be raised only when you release it. -// TODO: Call mixer.setVolume(sliderName, Value) on value change -// TODO: Call mixer.getVolume(sliderName) on load - import QtQuick 2.6 import QtQuick.Layouts 1.1 import QtQuick.Controls 2.0 import AGL.Demo.Controls 1.0 import Mixer 1.0 +import QtQuick.Window 2.13 + ApplicationWindow { - id: root + // ----- Signals - Mixer { - id: mixer - Component.objectName: { - mixer.open(bindingAddress) - } - onRolesChanged: { - // Remove existing sliders - for(var i = sliders.children.length; i > 0 ; --i) { - console.log("destroying: " + i) - sliders.children[i-1].destroy() - } + // ----- Properties + property Component volumeSlider - // Add slider for each role - for(var j = 0; j < mixer.roles.length; ++j) { - addSlider(mixer.roles[j]) - } - } + // ----- Setup + id: root + width: Window.width * roles.scale + height: Window.height * roles.scale - function addSlider(name) { - Qt.createQmlObject(" -import QtQuick.Layouts 1.1 -import QtQuick.Controls 2.0 -RowLayout { - property int value - id: slider_" + name + " - Layout.minimumHeight: 75 - Label { - font.pixelSize: 24 - text: \"" + name+ "\" - Layout.minimumWidth: 150 - } - Label { - id: slider_" + name + "_textvalue - font.pixelSize: 24 - text: \"0 %\" - } - Slider { - id: slider_" + name + "_slider - Layout.fillWidth: true - from: 0 - to: 100 - stepSize: 1 - snapMode: Slider.SnapOnRelease - onValueChanged: { - slider_" + name + "_textvalue.text = value + \" %\" - mixer.setVolume(\"" + name + "\", value) - } - Component.objectName: { - mixer.getVolume(\"" + name + "\") - } - } - }", sliders, "volumeslider") - } + // ----- Childs + Label { + id: title + font.pixelSize: 48 + text: "Mixer" + anchors.horizontalCenter: parent.horizontalCenter + } - function deleteChilds(item) { - for(var i = item.children.length; i > 0 ; i--) { - deleteChilds(item.children[i-1]) - } - item.destroy() - } - } + Mixer { + signal sliderVolumeChanged(string role, int value) - Label { - id: title - font.pixelSize: 48 - text: "Mixer" - anchors.horizontalCenter: parent.horizontalCenter - } + id: mixer - ColumnLayout { - id: sliders - anchors.margins: 80 - anchors.top: title.bottom - anchors.left: parent.left - anchors.right: parent.right - } -} + Component.onCompleted: { + mixer.open(bindingAddress); + } + } + + ListView { + id: roles + model: mixer.roles + //scale: scale_factor + scale: 1 + anchors.margins: 80 + anchors.top: title.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + spacing: 10 + + delegate: VolumeSlider {} + } +}