diff --git a/cura/Settings/SettingInheritanceManager.py b/cura/Settings/SettingInheritanceManager.py index 6560f2b227..735feeee99 100644 --- a/cura/Settings/SettingInheritanceManager.py +++ b/cura/Settings/SettingInheritanceManager.py @@ -32,6 +32,7 @@ class SettingInheritanceManager(QObject): def getChildrenKeysWithOverride(self, key): definitions = self._global_container_stack.getBottom().findDefinitions(key=key) if not definitions: + Logger.log("w", "Could not find definition for key [%s]", key) return [] result = [] for key in definitions[0].getAllKeys(): @@ -51,6 +52,7 @@ class SettingInheritanceManager(QObject): definitions = self._global_container_stack.getBottom().findDefinitions(key=key) if not definitions: + Logger.log("w", "Could not find definition for key [%s] (2)", key) return [] result = [] for key in definitions[0].getAllKeys(): diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index dadfe60d73..e3425078e7 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -144,6 +144,11 @@ class WorkspaceDialog(QObject): if key in self._result: 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): self._has_material_conflict = material_conflict self.materialConflictChanged.emit() diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 16e012dcef..fa69bc08c7 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -305,7 +305,7 @@ UM.Dialog { id: ok_button text: catalog.i18nc("@action:button","OK"); - onClicked: { manager.onOkButtonClicked() } + onClicked: { manager.closeBackend(); manager.onOkButtonClicked() } enabled: true }, Button diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 9d448e11bb..b2df2563d0 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -149,6 +149,7 @@ class CuraEngineBackend(Backend): ## Perform a slice of the scene. def slice(self): + Logger.log("d", "Starting slice job...") self._slice_start_time = time() if not self._enabled or not self._global_container_stack: # We shouldn't be slicing. # try again in a short time diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index 7a1f99961b..7b50809baa 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -230,6 +230,10 @@ Item { } // 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; }