visible: false
state: "hidden"
- property string configViewComponent
+ property SourceModel configModel;
//property SourceModel model;
//property SourceConfigComponentView viewComponent;
name: "showSourceConfig"
// In this state, we bring the configuration UI of the source
- PropertyChanges { target: configDialog; color: "#d0000000" }
+ PropertyChanges { target: configDialog; color: "#80000000" }
PropertyChanges { target: sourceConfigLoader; opacity: 1 }
- PropertyChanges { target: sourceConfigLoader; source: configViewComponent }
+ PropertyChanges { target: sourceConfigLoader; source: configModel.settingsComponent }
+ PropertyChanges { target: configTitle; text: configModel.name + " Settings"}
AnchorChanges { target: quitApplyConfigButton; anchors.left: undefined; anchors.right: configDialog.right }
AnchorChanges { target: quitCancelConfigButton; anchors.right: undefined; anchors.left: configDialog.left }
}
]
+ Background {
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: quitApplyConfigButton.top
+ }
+
+ Text {
+ id: configTitle
+ color: "white"
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ horizontalAlignment: Text.AlignHCenter
+ font.pixelSize: 24
+ font.bold: true
+ }
+
Loader {
id: sourceConfigLoader
opacity: 0
- anchors.top: parent.top
+ anchors.top: configTitle.bottom
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: quitApplyConfigButton.top
Behavior on opacity {
NumberAnimation { duration: 1000; easing.type: Easing.InOutQuad }
}
+
+ onLoaded: {
+ // fill the UI with information from the model
+ configModel.loadConfiguration(sourceConfigLoader.item)
+ }
}
FancyButton {
anchors.left: parent.right
onClicked: {
+ // ask the model to store the configuration
+ configModel.storeConfiguration(sourceConfigLoader.item)
+
// Store the configuration of this source, and disappear
configDialog.state = "hidden"
}