Solved (with an ugly fix) that after loading some projects, 'Slicing...' appears without doing anything. CURA-1263

This commit is contained in:
Jack Ha 2016-12-14 16:52:49 +01:00
parent a6194aa2cf
commit a9a9390aa6
5 changed files with 13 additions and 1 deletions

View file

@ -32,6 +32,7 @@ class SettingInheritanceManager(QObject):
def getChildrenKeysWithOverride(self, key): def getChildrenKeysWithOverride(self, key):
definitions = self._global_container_stack.getBottom().findDefinitions(key=key) definitions = self._global_container_stack.getBottom().findDefinitions(key=key)
if not definitions: if not definitions:
Logger.log("w", "Could not find definition for key [%s]", key)
return [] return []
result = [] result = []
for key in definitions[0].getAllKeys(): for key in definitions[0].getAllKeys():
@ -51,6 +52,7 @@ class SettingInheritanceManager(QObject):
definitions = self._global_container_stack.getBottom().findDefinitions(key=key) definitions = self._global_container_stack.getBottom().findDefinitions(key=key)
if not definitions: if not definitions:
Logger.log("w", "Could not find definition for key [%s] (2)", key)
return [] return []
result = [] result = []
for key in definitions[0].getAllKeys(): for key in definitions[0].getAllKeys():

View file

@ -144,6 +144,11 @@ class WorkspaceDialog(QObject):
if key in self._result: if key in self._result:
self._result[key] = strategy self._result[key] = strategy
## Close the backend: otherwise one could end up with "Slicing..."
@pyqtSlot()
def closeBackend(self):
Application.getInstance().getBackend().close()
def setMaterialConflict(self, material_conflict): def setMaterialConflict(self, material_conflict):
self._has_material_conflict = material_conflict self._has_material_conflict = material_conflict
self.materialConflictChanged.emit() self.materialConflictChanged.emit()

View file

@ -305,7 +305,7 @@ UM.Dialog
{ {
id: ok_button id: ok_button
text: catalog.i18nc("@action:button","OK"); text: catalog.i18nc("@action:button","OK");
onClicked: { manager.onOkButtonClicked() } onClicked: { manager.closeBackend(); manager.onOkButtonClicked() }
enabled: true enabled: true
}, },
Button Button

View file

@ -149,6 +149,7 @@ class CuraEngineBackend(Backend):
## Perform a slice of the scene. ## Perform a slice of the scene.
def slice(self): def slice(self):
Logger.log("d", "Starting slice job...")
self._slice_start_time = time() self._slice_start_time = time()
if not self._enabled or not self._global_container_stack: # We shouldn't be slicing. if not self._enabled or not self._global_container_stack: # We shouldn't be slicing.
# try again in a short time # try again in a short time

View file

@ -230,6 +230,10 @@ Item {
} }
// Setting does have a limit_to_extruder property, so use that one instead. // Setting does have a limit_to_extruder property, so use that one instead.
if (definition.key === undefined) {
// Observed when loading workspace, probably when SettingItems are removed.
return false;
}
return Cura.SettingInheritanceManager.getOverridesForExtruder(definition.key, globalPropertyProvider.properties.limit_to_extruder).indexOf(definition.key) >= 0; return Cura.SettingInheritanceManager.getOverridesForExtruder(definition.key, globalPropertyProvider.properties.limit_to_extruder).indexOf(definition.key) >= 0;
} }