mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-12 00:58:58 +08:00
Merge pull request #9462 from Ultimaker/CURA-7813_fix_crash_globalstack
Workaround: Before closing the window, remove the global stack
This commit is contained in:
commit
a277adae64
@ -603,6 +603,15 @@ class CuraApplication(QtApplication):
|
||||
@pyqtSlot()
|
||||
def closeApplication(self) -> None:
|
||||
Logger.log("i", "Close application")
|
||||
|
||||
# Workaround: Before closing the window, remove the global stack.
|
||||
# This is necessary because as the main window gets closed, hundreds of QML elements get updated which often
|
||||
# request the global stack. However as the Qt-side of the Machine Manager is being dismantled, the conversion of
|
||||
# the Global Stack to a QObject fails.
|
||||
# If instead we first take down the global stack, PyQt will just convert `None` to `null` which succeeds, and
|
||||
# the QML code then gets `null` as the global stack and can deal with that as it deems fit.
|
||||
self.getMachineManager().setActiveMachine(None)
|
||||
|
||||
main_window = self.getMainWindow()
|
||||
if main_window is not None:
|
||||
main_window.close()
|
||||
|
Loading…
x
Reference in New Issue
Block a user