Add gitreview file for Lucky Lamprey branch
[apps/mixer.git] / app / Mixer.qml
index 725c2bb..b14ae68 100644 (file)
  * 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 {}
+       }
+}