Use globalStackExtruderIds instead of extruderIds. extruderIds notifys change before the extruders change when doing a machine swap. Fixing this will take a long time so this is a workaround. If you are reading this 🙏 good luck fixing it 🙏

CURA-9793
This commit is contained in:
Joey de l'Arago 2022-12-07 16:57:35 +01:00
parent f601229390
commit 443252ae10
4 changed files with 10 additions and 3 deletions

View file

@ -63,6 +63,13 @@ class ExtruderManager(QObject):
# The emit function can't be directly connected to another signal. This wrapper function is required.
self.globalStackExtrudersChanged.emit()
@pyqtProperty("QVariantMap", notify = globalStackExtrudersChanged)
def globalStackExtruderIds(self) -> Dict[str, str]:
# The extruderIds property notifys changed before the extruders are changed on switching machines
# trying to fix this broke to many things. This is a workaround. Don't use this unless you need to read
# extruderIds directly after a machine update.
return self.extruderIds
@pyqtProperty(str, notify = activeExtruderChanged)
def activeExtruderStackId(self) -> Optional[str]:
"""Gets the unique identifier of the currently active extruder stack.