Browse Source

Merge branch 'master' of github.com:Ultimaker/Cura

Jaime van Kessel 8 years ago
parent
commit
e282e35b9c

+ 1 - 0
README.md

@@ -46,6 +46,7 @@ Third party plugins
 * [Post Processing Plugin](https://github.com/nallath/PostProcessingPlugin): Allows for post-processing scripts to run on g-code.
 * [Barbarian Plugin](https://github.com/nallath/BarbarianPlugin): Simple scale tool for imperial to metric.
 * [X3G Writer](https://github.com/Ghostkeeper/X3GWriter): Adds support for exporting X3G files.
+* [Auto orientation](https://github.com/nallath/CuraOrientationPlugin): Calculate the optimal orientation for a model.
 
 Making profiles for other printers
 ----------------------------------

+ 8 - 2
cura/Settings/MachineManager.py

@@ -520,6 +520,8 @@ class MachineManager(QObject):
             if extruder_stack != self._active_container_stack and extruder_stack.getProperty(key, "value") != new_value:
                 extruder_stack.getTop().setProperty(key, "value", new_value)
 
+    ## Set the active material by switching out a container
+    #  Depending on from/to material+current variant, a quality profile is chosen and set.
     @pyqtSlot(str)
     def setActiveMaterial(self, material_id):
         containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = material_id)
@@ -533,7 +535,9 @@ class MachineManager(QObject):
         if not old_material:
             Logger.log("w", "While trying to set the active material, no material was found to replace it.")
             return
-        if old_quality_changes.getId() == "empty_quality_changes": #Don't want the empty one.
+        if (old_quality_changes.getId() == "empty_quality_changes" or #Don't want the empty one.
+            old_quality_changes.getMetaDataEntry("material") != material_id):  # The quality change is based off a different material; the quality change is probably a custom quality.
+
             old_quality_changes = None
         self.blurSettings.emit()
         old_material.nameChanged.disconnect(self._onMaterialNameChanged)
@@ -551,7 +555,9 @@ class MachineManager(QObject):
 
         if old_quality:
             if old_quality_changes:
-                new_quality = self._updateQualityChangesContainer(old_quality.getMetaDataEntry("quality_type"), old_quality_changes.getMetaDataEntry("name"))
+                new_quality = self._updateQualityChangesContainer(
+                    old_quality.getMetaDataEntry("quality_type"),
+                    preferred_quality_changes_name = old_quality_changes.getMetaDataEntry("name"))
             else:
                 new_quality = self._updateQualityContainer(self._global_container_stack.getBottom(), old_variant, containers[0], old_quality.getName())
         else:

+ 1 - 1
resources/definitions/fdmprinter.def.json

@@ -2231,7 +2231,7 @@
                             "default_value": 1,
                             "minimum_value": "0",
                             "maximum_value_warning": "100",
-                            "value": "max(0, int(round((cool_fan_full_at_height - layer_height_0) / layer_height, 0)))",
+                            "value": "max(0, int(math.floor((cool_fan_full_at_height - layer_height_0) / layer_height) + 1))",
                             "settable_per_mesh": false,
                             "settable_per_extruder": true
                         }

+ 5 - 1
resources/qml/Menus/ProfileMenu.qml

@@ -38,7 +38,11 @@ Menu
         id: customProfileInstantiator
         model: UM.InstanceContainersModel
         {
-            filter: { "type": "quality_changes", "extruder": null, "definition": Cura.MachineManager.filterQualityByMachine ? Cura.MachineManager.activeQualityDefinitionId : "fdmprinter" };
+            filter: menu.getFilter({
+                "type": "quality_changes",
+                "extruder": null,
+                "definition": Cura.MachineManager.filterQualityByMachine ? Cura.MachineManager.activeQualityDefinitionId : "fdmprinter"
+                });
             onModelReset: customSeparator.visible = rowCount() > 0
         }
 

+ 1 - 0
resources/qml/Preferences/MachinesPage.qml

@@ -207,6 +207,7 @@ UM.ManagementPage
             anchors.topMargin: UM.Theme.getSize("default_margin").width
 
             spacing: UM.Theme.getSize("default_margin").width
+            visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId
 
             Component.onCompleted:
             {