From 553d6b147a58c85570b70fe0a6162aa181dcef56 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Fri, 22 Nov 2019 13:21:47 +0100 Subject: [PATCH] Fix the create a scene button --- nymea-app/ui/MainPage.qml | 15 +++++++++++++-- nymea-app/ui/magic/EditRulePage.qml | 28 ++++++++++++++++------------ nymea-app/ui/magic/NewScenePage.qml | 1 + 3 files changed, 30 insertions(+), 14 deletions(-) diff --git a/nymea-app/ui/MainPage.qml b/nymea-app/ui/MainPage.qml index d44d6ac6..4eadf7cf 100644 --- a/nymea-app/ui/MainPage.qml +++ b/nymea-app/ui/MainPage.qml @@ -275,8 +275,19 @@ Page { if (engine.deviceManager.devices.count === 0) { pageStack.push(Qt.resolvedUrl("thingconfiguration/NewThingPage.qml")) } else { - var page = pageStack.push(Qt.resolvedUrl("magic/NewScenePage.qml")) -// page.addRule() + var newRule = engine.ruleManager.createNewRule(); + var editRulePage = pageStack.push(Qt.resolvedUrl("magic/EditRulePage.qml"), {rule: newRule }); + editRulePage.startAddAction(); + editRulePage.StackView.onRemoved.connect(function() { + newRule.destroy(); + }) + editRulePage.onAccept.connect(function() { + editRulePage.busy = true; + engine.ruleManager.addRule(d.editRulePage.rule); + }) + editRulePage.onCancel.connect(function() { + pageStack.pop(); + }) } } } diff --git a/nymea-app/ui/magic/EditRulePage.qml b/nymea-app/ui/magic/EditRulePage.qml index 5d749b3c..c96d29b7 100644 --- a/nymea-app/ui/magic/EditRulePage.qml +++ b/nymea-app/ui/magic/EditRulePage.qml @@ -221,6 +221,20 @@ Page { }) } + function startAddAction() { + if (root.isEmpty) { + root.rule.executable = true; + } + if (root.initialDeviceToBeAdded !== null) { + var ruleAction = root.rule.actions.createNewRuleAction(); + ruleAction.deviceId = root.initialDeviceToBeAdded.id; + root.initialDeviceToBeAdded = null; + selectRuleActionData(root.rule.actions, ruleAction) + } else { + var page = pageStack.push(ruleActionQuestionPageComponent, {exitAction: false}); + } + } + header: NymeaHeader { text: root.rule.name.length === 0 ? qsTr("Add new magic") : qsTr("Edit %1").arg(root.rule.name) onBackPressed: { @@ -620,18 +634,8 @@ Page { Layout.margins: app.margins text: root.isEmpty ? qsTr("Configure...") : actionsRepeater.count == 0 ? qsTr("Add an action...") : qsTr("Add another action...") - onClicked: { - if (root.isEmpty) { - root.rule.executable = true; - } - if (root.initialDeviceToBeAdded !== null) { - var ruleAction = root.rule.actions.createNewRuleAction(); - ruleAction.deviceId = root.initialDeviceToBeAdded.id; - root.initialDeviceToBeAdded = null; - selectRuleActionData(root.rule.actions, ruleAction) - } else { - var page = pageStack.push(ruleActionQuestionPageComponent, {exitAction: false}); - } + onClicked: { + root.startAddAction(); } visible: root.actionsVisible } diff --git a/nymea-app/ui/magic/NewScenePage.qml b/nymea-app/ui/magic/NewScenePage.qml index cdd0b77c..d5abeda6 100644 --- a/nymea-app/ui/magic/NewScenePage.qml +++ b/nymea-app/ui/magic/NewScenePage.qml @@ -18,6 +18,7 @@ Page { ListView { anchors.fill: parent model: RuleTemplatesFilterModel { + ruleTemplates: RuleTemplates {} filterByDevices: DevicesProxy { engine: _engine