From 3f8a65d9260fdc23c9eae8f876898851b9298ee2 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 1 Aug 2019 11:51:58 +0200 Subject: [PATCH] Fix the settings menu not reacting to onTriggered signals --- resources/qml/Menus/NozzleMenu.qml | 1 + resources/qml/Menus/SettingsMenu.qml | 32 +++------------------------- 2 files changed, 4 insertions(+), 29 deletions(-) diff --git a/resources/qml/Menus/NozzleMenu.qml b/resources/qml/Menus/NozzleMenu.qml index 886216dab0..3d7dd1b6c5 100644 --- a/resources/qml/Menus/NozzleMenu.qml +++ b/resources/qml/Menus/NozzleMenu.qml @@ -31,6 +31,7 @@ Menu return Cura.MachineManager.activeVariantNames[extruderIndex] == model.hotend_name } exclusiveGroup: group + onTriggered: { Cura.MachineManager.setVariant(menu.extruderIndex, model.container_node); } diff --git a/resources/qml/Menus/SettingsMenu.qml b/resources/qml/Menus/SettingsMenu.qml index 346f645efc..28761866dd 100644 --- a/resources/qml/Menus/SettingsMenu.qml +++ b/resources/qml/Menus/SettingsMenu.qml @@ -15,15 +15,10 @@ Menu PrinterMenu { title: catalog.i18nc("@title:menu menubar:settings", "&Printer") } property var activeMachine: Cura.MachineManager.activeMachine - - onAboutToShow: extruderInstantiator.active = true - onAboutToHide: extruderInstantiator.active = false Instantiator { id: extruderInstantiator model: activeMachine == null ? null : activeMachine.extruderList - active: false - asynchronous: true Menu { title: modelData.name @@ -39,41 +34,20 @@ Menu MenuItem { text: catalog.i18nc("@action:inmenu", "Set as Active Extruder") - // HACK: Instead of directly binding to the onTriggered handle, we have to use this workaround. - // I've narrowed it down to it being an issue with the instantiator (removing that makes the - // onTriggered work directly again). - Component.onCompleted: - { - var index = model.index - triggered.connect(function(){Cura.ExtruderManager.setActiveExtruderIndex(index)}) - } + onTriggered: Cura.ExtruderManager.setActiveExtruderIndex(model.index) } MenuItem { text: catalog.i18nc("@action:inmenu", "Enable Extruder") - // HACK: Instead of directly binding to the onTriggered handle, we have to use this workaround. - // I've narrowed it down to it being an issue with the instantiator (removing that makes the - // onTriggered work directly again). - Component.onCompleted: - { - var index = model.index - triggered.connect(function(){Cura.MachineManager.setExtruderEnabled(index, true)}) - } + onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true) visible: !Cura.MachineManager.getExtruder(model.index).isEnabled } MenuItem { text: catalog.i18nc("@action:inmenu", "Disable Extruder") - // HACK: Instead of directly binding to the onTriggered handle, we have to use this workaround. - // I've narrowed it down to it being an issue with the instantiator (removing that makes the - // onTriggered work directly again). - Component.onCompleted: - { - var index = model.index - triggered.connect(function(){Cura.MachineManager.setExtruderEnabled(index, false)}) - } + onTriggered: Cura.MachineManager.setExtruderEnabled(index, false) visible: Cura.MachineManager.getExtruder(model.index).isEnabled enabled: Cura.MachineManager.numberExtrudersEnabled > 1 }