Don't update model if extruders haven't all been loaded yet

This model is created while the extruder stacks have not yet been filled in. You can't connect yet. When the extruder is ready, _extrudersChanged will be called again and then the new extruder will also get connected.

Contributes to issue CURA-4243.
This commit is contained in:
Ruben D 2017-11-30 00:33:10 +01:00
parent c1ba64fd9e
commit f9c59c7e1e
No known key found for this signature in database
GPG key ID: 6B42C9465E304A62

View file

@ -142,6 +142,8 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel):
self._active_machine_extruders = [] self._active_machine_extruders = []
extruder_manager = ExtruderManager.getInstance() extruder_manager = ExtruderManager.getInstance()
for extruder in extruder_manager.getExtruderStacks(): for extruder in extruder_manager.getExtruderStacks():
if extruder is None: #This extruder wasn't loaded yet. This happens asynchronously while this model is constructed from QML.
continue
extruder.containersChanged.connect(self._onExtruderStackContainersChanged) extruder.containersChanged.connect(self._onExtruderStackContainersChanged)
self._active_machine_extruders.append(extruder) self._active_machine_extruders.append(extruder)