mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 14:37:29 -06:00
Autoslice could cause slicing to start before init done.
This could cause slicing to hang forever until settings where changed. So stop too-early slicing, but keep a memo of wether we've already been requested to slice in the initialization interval, so auto-slice doesn't fail either. CURA-11815
This commit is contained in:
parent
6f6c000755
commit
480322354b
1 changed files with 12 additions and 0 deletions
|
@ -68,6 +68,9 @@ class CuraEngineBackend(QObject, Backend):
|
|||
"""
|
||||
|
||||
super().__init__()
|
||||
self._init_done = False
|
||||
self._immediate_slice_after_init = False
|
||||
|
||||
# Find out where the engine is located, and how it is called.
|
||||
# This depends on how Cura is packaged and which OS we are running on.
|
||||
executable_name = "CuraEngine"
|
||||
|
@ -268,6 +271,10 @@ class CuraEngineBackend(QObject, Backend):
|
|||
self._machine_error_checker = application.getMachineErrorChecker()
|
||||
self._machine_error_checker.errorCheckFinished.connect(self._onStackErrorCheckFinished)
|
||||
|
||||
self._init_done = True
|
||||
if self._immediate_slice_after_init:
|
||||
self.slice()
|
||||
|
||||
def close(self) -> None:
|
||||
"""Terminate the engine process.
|
||||
|
||||
|
@ -342,6 +349,11 @@ class CuraEngineBackend(QObject, Backend):
|
|||
def slice(self) -> None:
|
||||
"""Perform a slice of the scene."""
|
||||
|
||||
if not self._init_done:
|
||||
self._immediate_slice_after_init = True
|
||||
return
|
||||
self._immediate_slice_after_init = False
|
||||
|
||||
self._createSnapshot()
|
||||
|
||||
self.startPlugins()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue