WIP: Fix NozzleMenu warning on non-notifiable bindings

This commit is contained in:
Lipu Fei 2018-02-15 15:06:15 +01:00
parent 1e0a078af8
commit 4468f4d620
2 changed files with 17 additions and 2 deletions

View file

@ -1302,6 +1302,12 @@ class MachineManager(QObject):
def createMachineManager(): def createMachineManager():
return MachineManager() return MachineManager()
@pyqtSlot(int, result = "QVariant")
def getExtruder(self, position: int):
if self._global_container_stack:
return self._global_container_stack.extruders.get(str(position))
return None
@deprecated("Use ExtruderStack.material = ... and it won't be necessary", "2.7") @deprecated("Use ExtruderStack.material = ... and it won't be necessary", "2.7")
def _updateMaterialContainer(self, definition: "DefinitionContainer", stack: "ContainerStack", variant_container: Optional["InstanceContainer"] = None, preferred_material_name: Optional[str] = None) -> InstanceContainer: def _updateMaterialContainer(self, definition: "DefinitionContainer", stack: "ContainerStack", variant_container: Optional["InstanceContainer"] = None, preferred_material_name: Optional[str] = None) -> InstanceContainer:
if not definition.getMetaDataEntry("has_materials"): if not definition.getMetaDataEntry("has_materials"):
@ -1357,7 +1363,6 @@ class MachineManager(QObject):
# #
# New # New
# #
@pyqtProperty("QVariant", notify = rootMaterialChanged) @pyqtProperty("QVariant", notify = rootMaterialChanged)
def currentRootMaterialId(self): def currentRootMaterialId(self):
# initial filling the current_root_material_id # initial filling the current_root_material_id

View file

@ -19,6 +19,16 @@ Menu
id: nozzleModel id: nozzleModel
} }
property var extruderStack: Cura.MachineManager.getExtruder(extruderIndex)
Connections
{
target: Cura.MachineManager
onGlobalContainerChanged: {
menu.extruderStack = Cura.MachineManager.getExtruder(extruderIndex)
}
}
Instantiator Instantiator
{ {
model: nozzleModel model: nozzleModel
@ -27,7 +37,7 @@ Menu
{ {
text: model.hotend_name text: model.hotend_name
checkable: true checkable: true
checked: Cura.MachineManager.activeMachine.extruders[extruderIndex].variant.name == model.hotend_name checked: extruderStack.variant.name == model.hotend_name
exclusiveGroup: group exclusiveGroup: group
onTriggered: { onTriggered: {
Cura.MachineManager.setVariantGroup(extruderIndex, model.container_node); Cura.MachineManager.setVariantGroup(extruderIndex, model.container_node);