X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=app%2FMixer.qml;h=b14ae68ce819139e2b0c246f34c0737619fe991b;hb=refs%2Ftags%2F12.1.11;hp=725c2bbd32abc9f40113e8e220816d0a51ea972f;hpb=d009b2e3665ab49ce8885a7d1f59d67bdaf4cd7e;p=apps%2Fmixer.git diff --git a/app/Mixer.qml b/app/Mixer.qml index 725c2bb..b14ae68 100644 --- a/app/Mixer.qml +++ b/app/Mixer.qml @@ -14,79 +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 { - property Component volumeSlider + // ----- Signals - id: root + // ----- Properties + property Component volumeSlider - Mixer { - id: mixer - Component.onCompleted: { - root.volumeSlider = Qt.createComponent("VolumeSlider.qml"); - if (root.VolumeSlider.status !== Component.Ready) { - console.log("Failed to load the VolumeSlider.qml component: " + root.volumeSlider.errorString()); - } - 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(); - } + // ----- Setup + id: root + width: Window.width * roles.scale + height: Window.height * roles.scale - // Add slider for each role - for(var j = 0; j < mixer.roles.length; ++j) { - addSlider(mixer.roles[j]); - } - } + // ----- Childs + Label { + id: title + font.pixelSize: 48 + text: "Mixer" + anchors.horizontalCenter: parent.horizontalCenter + } - onVolumeChanged: { - for(var i = 0; i < sliders.children.length ; i++) { - console.log("Slider found: " + i); - //if (sliders[i].role === name) { - // sliders[i].value = value; - //} - } - } + Mixer { + signal sliderVolumeChanged(string role, int value) - function addSlider(name) { - var sld = root.volumeSlider.createObject(sliders); - sld.role = name; - mixer.getVolume(name); // Update volume - } + id: mixer - function deleteChilds(item) { - for(var i = item.children.length; i > 0 ; i--) { - deleteChilds(item.children[i-1]); - } - item.destroy(); - } - } + Component.onCompleted: { + mixer.open(bindingAddress); + } + } - Label { - id: title - font.pixelSize: 48 - text: "Mixer" - anchors.horizontalCenter: parent.horizontalCenter - } + ListView { + id: roles + model: mixer.roles + //scale: scale_factor + scale: 1 - ColumnLayout { - id: sliders - anchors.margins: 80 - anchors.top: title.bottom - anchors.left: parent.left - anchors.right: parent.right - } -} + anchors.margins: 80 + anchors.top: title.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + spacing: 10 + delegate: VolumeSlider {} + } +}