Browse Source

Merge branch '3.2' of github.com:Ultimaker/Cura into 3.2

Jack Ha 7 years ago
parent
commit
956b793b6b

+ 1 - 5
cura/CuraApplication.py

@@ -1055,7 +1055,7 @@ class CuraApplication(QtApplication):
                 continue  # Node that doesnt have a mesh and is not a group.
             if only_selectable and not node.isSelectable():
                 continue
-            if not node.callDecoration("isSliceable"):
+            if not node.callDecoration("isSliceable") and not node.callDecoration("getLayerData") and not node.callDecoration("isGroup"):
                 continue  # Only remove nodes that are selectable.
             if node.getParent() and node.getParent().callDecoration("isGroup"):
                 continue  # Grouped nodes don't need resetting as their parent (the group) is resetted)
@@ -1071,10 +1071,6 @@ class CuraApplication(QtApplication):
 
         # Reset the print information:
         self.getController().getScene().sceneChanged.emit(node)
-        # self._print_information.setToZeroPrintInformation(self.getBuildPlateModel().activeBuildPlate)
-
-        # stay on the same build plate
-        #self.getCuraSceneController().setActiveBuildPlate(0)  # Select first build plate
 
     ## Reset all translation on nodes with mesh data.
     @pyqtSlot()

+ 12 - 19
plugins/3MFReader/ThreeMFWorkspaceReader.py

@@ -754,25 +754,18 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
             # If not extruder stacks were saved in the project file (pre 3.1) create one manually
             # We re-use the container registry's addExtruderStackForSingleExtrusionMachine method for this
             if not extruder_stacks:
-                if self._resolve_strategies["machine"] == "new":
-                    stack = self._container_registry.addExtruderStackForSingleExtrusionMachine(global_stack, "fdmextruder")
+                stack = self._container_registry.addExtruderStackForSingleExtrusionMachine(global_stack, "fdmextruder")
+                if global_stack.quality.getId() in ("empty", "empty_quality"):
+                    stack.quality = empty_quality_container
+                if self._resolve_strategies["machine"] == "override":
+                    # in case the extruder is newly created (for a single-extrusion machine), we need to override
+                    # the existing extruder stack.
+                    existing_extruder_stack = global_stack.extruders[stack.getMetaDataEntry("position")]
+                    for idx in range(len(_ContainerIndexes.IndexTypeMap)):
+                        existing_extruder_stack.replaceContainer(idx, stack._containers[idx], postpone_emit = True)
+                    extruder_stacks.append(existing_extruder_stack)
                 else:
-                    stack = global_stack.extruders.get("0")
-                    if not stack:
-                        # this should not happen
-                        Logger.log("e", "Cannot find any extruder in an existing global stack [%s].", global_stack.getId())
-                if stack:
-                    if global_stack.quality.getId() in ("empty", "empty_quality"):
-                        stack.quality = empty_quality_container
-                    if self._resolve_strategies["machine"] == "override":
-                        # in case the extruder is newly created (for a single-extrusion machine), we need to override
-                        # the existing extruder stack.
-                        existing_extruder_stack = global_stack.extruders[stack.getMetaDataEntry("position")]
-                        for idx in range(len(_ContainerIndexes.IndexTypeMap)):
-                            existing_extruder_stack.replaceContainer(idx, stack._containers[idx], postpone_emit = True)
-                        extruder_stacks.append(existing_extruder_stack)
-                    else:
-                        extruder_stacks.append(stack)
+                    extruder_stacks.append(stack)
 
         except:
             Logger.logException("w", "We failed to serialize the stack. Trying to clean up.")
@@ -870,7 +863,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
                 #                  We will first find the correct quality profile for the extruder, then apply the same
                 #                  quality profile for the global stack.
                 #
-                if len(extruder_stacks) == 1:
+                if has_extruder_stack_files and len(extruder_stacks) == 1:
                     extruder_stack = extruder_stacks[0]
 
                     search_criteria = {"type": "quality", "quality_type": global_stack.quality.getMetaDataEntry("quality_type")}

+ 1 - 1
plugins/3MFWriter/ThreeMFWorkspaceWriter.py

@@ -97,7 +97,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter):
         file_in_archive.compress_type = zipfile.ZIP_DEFLATED
 
         # Do not include the network authentication keys
-        ignore_keys = {"network_authentication_id", "network_authentication_key"}
+        ignore_keys = {"network_authentication_id", "network_authentication_key", "octoprint_api_key"}
         serialized_data = container.serialize(ignored_metadata_keys = ignore_keys)
 
         archive.writestr(file_in_archive, serialized_data)