diff --git a/cura/QualityManager.py b/cura/QualityManager.py index 4849e8d67d..76cb7c4d56 100644 --- a/cura/QualityManager.py +++ b/cura/QualityManager.py @@ -90,8 +90,8 @@ class QualityManager: # Fall back to using generic materials and qualities if nothing could be found. if not result and material_containers and len(material_containers) == 1: - basic_material = self._getBasicMaterial(material_containers[0]) - result = self._getFilteredContainersForStack(machine_definition, [basic_material], **criteria) + basic_materials = self._getBasicMaterials(material_containers[0]) + result = self._getFilteredContainersForStack(machine_definition, basic_materials, **criteria) return result[0] if result else None ## Find all suitable qualities for a combination of machine and material. @@ -103,8 +103,8 @@ class QualityManager: criteria = {"type": "quality" } result = self._getFilteredContainersForStack(machine_definition, [material_container], **criteria) if not result: - basic_material = self._getBasicMaterial(material_container) - result = self._getFilteredContainersForStack(machine_definition, [basic_material], **criteria) + basic_materials = self._getBasicMaterials(material_container) + result = self._getFilteredContainersForStack(machine_definition, basic_materials, **criteria) return result ## Find all quality changes for a machine. @@ -154,16 +154,24 @@ class QualityManager: # # This tries to find a generic or basic version of the given material. # \param material_container \type{InstanceContainer} the material - # \return \type{Option[InstanceContainer]} the basic material or None if one could not be found. - def _getBasicMaterial(self, material_container): + # \return \type{List[InstanceContainer]} the basic material or None if one could not be found. + def _getBasicMaterials(self, material_container): base_material = material_container.getMetaDataEntry("material") + if material_container.getDefinition().getMetaDataEntry("has_machine_quality"): + definition_id = material_container.getDefinition().getMetaDataEntry("quality_definition", material_container.getDefinition().getId()) + else: + definition_id = "fdmprinter" + if base_material: # There is a basic material specified - criteria = { "type": "material", "name": base_material, "definition": "fdmprinter" } + criteria = { "type": "material", "name": base_material, "definition": definition_id } containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(**criteria) - return containers[0] if containers else None + containers = [basic_material for basic_material in containers if + basic_material.getMetaDataEntry("variant") == material_container.getMetaDataEntry( + "variant")] + return containers - return None + return [] def _getFilteredContainers(self, **kwargs): return self._getFilteredContainersForStack(None, None, **kwargs) diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index a917718e61..7f2555af03 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -480,6 +480,7 @@ class ContainerManager(QObject): new_changes = self._createQualityChanges(quality_container, unique_name, UM.Application.getInstance().getGlobalContainerStack().getBottom(), extruder_id) + self._performMerge(new_changes, quality_changes_container, clear_settings = False) self._performMerge(new_changes, user_container) self._container_registry.addContainer(new_changes) @@ -694,7 +695,7 @@ class ContainerManager(QObject): def createContainerManager(engine, js_engine): return ContainerManager.getInstance() - def _performMerge(self, merge_into, merge): + def _performMerge(self, merge_into, merge, clear_settings = True): assert isinstance(merge, type(merge_into)) if merge == merge_into: @@ -703,7 +704,8 @@ class ContainerManager(QObject): for key in merge.getAllKeys(): merge_into.setProperty(key, "value", merge.getProperty(key, "value")) - merge.clear() + if clear_settings: + merge.clear() def _updateContainerNameFilters(self): self._container_name_filters = {} diff --git a/cura/Settings/QualitySettingsModel.py b/cura/Settings/QualitySettingsModel.py index 09d6a3c821..638a53e4b8 100644 --- a/cura/Settings/QualitySettingsModel.py +++ b/cura/Settings/QualitySettingsModel.py @@ -27,8 +27,8 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel): self._extruder_id = None self._extruder_definition_id = None - self._quality = None - self._material = None + self._quality_id = None + self._material_id = None self.addRoleName(self.KeyRole, "key") self.addRoleName(self.LabelRole, "label") @@ -61,29 +61,29 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel): return self._extruder_definition_id def setQuality(self, quality): - if quality != self._quality: - self._quality = quality + if quality != self._quality_id: + self._quality_id = quality self._update() self.qualityChanged.emit() qualityChanged = pyqtSignal() @pyqtProperty(str, fset = setQuality, notify = qualityChanged) def quality(self): - return self._quality + return self._quality_id def setMaterial(self, material): - if material != self._material: - self._material = material + if material != self._material_id: + self._material_id = material self._update() self.materialChanged.emit() materialChanged = pyqtSignal() @pyqtProperty(str, fset = setMaterial, notify = materialChanged) def material(self): - return self._material + return self._material_id def _update(self): - if not self._quality: + if not self._quality_id: return items = [] @@ -91,9 +91,9 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel): settings = collections.OrderedDict() definition_container = UM.Application.getInstance().getGlobalContainerStack().getBottom() - containers = self._container_registry.findInstanceContainers(id = self._quality) + containers = self._container_registry.findInstanceContainers(id = self._quality_id) if not containers: - UM.Logger.log("w", "Could not find a quality container with id %s", self._quality) + UM.Logger.log("w", "Could not find a quality container with id %s", self._quality_id) return quality_container = None @@ -110,8 +110,8 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel): "definition": quality_changes_container.getDefinition().getId() } - if self._material: - criteria["material"] = self._material + if self._material_id and self._material_id != "empty_material": + criteria["material"] = self._material_id quality_container = self._container_registry.findInstanceContainers(**criteria) if not quality_container: @@ -124,8 +124,8 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel): criteria = {"type": "quality", "quality_type": quality_type, "definition": definition_id} - if self._material: - criteria["material"] = self._material + if self._material_id and self._material_id != "empty_material": + criteria["material"] = self._material_id criteria["extruder"] = self._extruder_id diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index d24845d8a1..52c45652c6 100644 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -77,6 +77,7 @@ class ThreeMFReader(MeshReader): mesh_data = mesh_builder.build().getTransformed(rotation) if not len(mesh_data.getVertices()): + Logger.log("d", "One of the objects does not have vertices. Skipping it.") continue # This object doesn't have data, so skip it. node.setMeshData(mesh_data) @@ -114,6 +115,7 @@ class ThreeMFReader(MeshReader): try: node.getBoundingBox() # Selftest - There might be more functions that should fail except: + Logger.log("w", "Bounding box test for object failed. Skipping this object") continue result.addChild(node) @@ -125,7 +127,10 @@ class ThreeMFReader(MeshReader): group_decorator = GroupDecorator() result.addDecorator(group_decorator) elif len(objects) == 1: - result = result.getChildren()[0] # Only one object found, return that. + if result.getChildren(): + result = result.getChildren()[0] # Only one object found, return that. + else: # we failed to load any data + return None except Exception as e: Logger.log("e", "exception occured in 3mf reader: %s", e) try: # Selftest - There might be more functions that should fail diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index a08b4948fe..678a286ddb 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1211,7 +1211,7 @@ "minimum_value": "0", "minimum_value_warning": "1", "maximum_value": "machine_max_feedrate_e", - "maximum_value_warning": "25", + "maximum_value_warning": "70", "enabled": "retraction_enable", "settable_per_mesh": false, "settable_per_extruder": true, @@ -1225,7 +1225,7 @@ "minimum_value": "0", "maximum_value": "machine_max_feedrate_e", "minimum_value_warning": "1", - "maximum_value_warning": "25", + "maximum_value_warning": "70", "enabled": "retraction_enable", "value": "retraction_speed", "settable_per_mesh": false, @@ -1240,7 +1240,7 @@ "minimum_value": "0", "maximum_value": "machine_max_feedrate_e", "minimum_value_warning": "1", - "maximum_value_warning": "25", + "maximum_value_warning": "70", "enabled": "retraction_enable", "value": "retraction_speed", "settable_per_mesh": false, @@ -1363,7 +1363,9 @@ "enabled": "retraction_enable", "default_value": 20, "minimum_value": "0.1", - "maximum_value_warning": "25", + "minimum_value_warning": "1", + "maximum_value": "machine_max_feedrate_e", + "maximum_value_warning": "70", "settable_per_mesh": false, "settable_per_extruder": true, "children": @@ -1378,7 +1380,9 @@ "default_value": 20, "value": "switch_extruder_retraction_speeds", "minimum_value": "0.1", - "maximum_value_warning": "25", + "minimum_value_warning": "1", + "maximum_value": "machine_max_feedrate_e", + "maximum_value_warning": "70", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -1392,7 +1396,9 @@ "default_value": 20, "value": "switch_extruder_retraction_speeds", "minimum_value": "0.1", - "maximum_value_warning": "25", + "minimum_value_warning": "1", + "maximum_value": "machine_max_feedrate_e", + "maximum_value_warning": "70", "settable_per_mesh": false, "settable_per_extruder": true } @@ -2865,7 +2871,7 @@ "type": "float", "default_value": 15, "minimum_value_warning": "raft_interface_line_width", - "maximum_value_warning": "10", + "maximum_value_warning": "20", "enabled": "resolveOrValue('adhesion_type') == 'raft'", "limit_to_extruder": "adhesion_extruder_nr", "settable_per_mesh": false, @@ -2893,7 +2899,7 @@ "default_value": 0.22, "value": "raft_airgap / 2", "minimum_value": "0", - "maximum_value_warning": "layer_height", + "maximum_value_warning": "raft_airgap", "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, "settable_per_extruder": true, @@ -2970,7 +2976,7 @@ "value": "layer_height * 1.5", "minimum_value": "0.001", "minimum_value_warning": "0.04", - "maximum_value_warning": "0.75 * extruderValue(adhesion_extruder_nr, 'machine_nozzle_size')", + "maximum_value_warning": "0.75 * extruderValue(adhesion_extruder_nr, 'raft_interface_line_width')", "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, "settable_per_extruder": true, @@ -3018,7 +3024,7 @@ "value": "resolveOrValue('layer_height_0') * 1.2", "minimum_value": "0.001", "minimum_value_warning": "0.04", - "maximum_value_warning": "0.75 * extruderValue(adhesion_extruder_nr, 'machine_nozzle_size')", + "maximum_value_warning": "0.75 * extruderValue(adhesion_extruder_nr, 'raft_base_line_width')", "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, "settable_per_extruder": true, diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 8bd593dd11..607d0a24ca 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -161,10 +161,6 @@ Rectangle visible: showProgress; indeterminate: { - if(!showProgress) - { - return false; //Never be indeterminate when not visible, since that triggers a redraw of the screen. - } switch(Cura.MachineManager.printerOutputDevices[0].jobState) { case "pausing": diff --git a/resources/quality/high.inst.cfg b/resources/quality/high.inst.cfg index ec3ab18fd6..9e3e9f1f67 100644 --- a/resources/quality/high.inst.cfg +++ b/resources/quality/high.inst.cfg @@ -6,7 +6,7 @@ definition = fdmprinter [metadata] type = quality quality_type = high -weight = -3 +weight = 1 [values] layer_height = 0.06 diff --git a/resources/quality/normal.inst.cfg b/resources/quality/normal.inst.cfg index cfd70de49c..e940bbda35 100644 --- a/resources/quality/normal.inst.cfg +++ b/resources/quality/normal.inst.cfg @@ -6,6 +6,6 @@ definition = fdmprinter [metadata] type = quality quality_type = normal -weight = -2 +weight = 0 [values] diff --git a/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg index 18d74386cf..868f1dc016 100644 --- a/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_pla_ultimaker2_plus_0.25_mm -weight = -2 +weight = 1 quality_type = high [values] diff --git a/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg index ff542c7c19..c2b15d1074 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_pla_ultimaker2_plus_0.4_mm -weight = -3 +weight = 1 quality_type = high [values] diff --git a/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg index 79d868f25f..9a84f5c04a 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_pla_ultimaker2_plus_0.4_mm -weight = -2 +weight = 0 quality_type = normal [values] diff --git a/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg index 63beca8fbb..fd4c2c120a 100644 --- a/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] material = generic_pla_ultimaker2_plus_0.6_mm type = quality -weight = -2 +weight = 0 quality_type = normal [values] diff --git a/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg index f2b78846a8..cd4c591640 100644 --- a/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] material = generic_pla_ultimaker2_plus_0.8_mm type = quality -weight = -2 +weight = -1 quality_type = fast [values] diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg index 8457d5cd2b..94ddd58081 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_abs_ultimaker2_plus_0.25_mm -weight = -2 +weight = 1 quality_type = high [values] diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg index f2235abd41..c6ea33da2d 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_abs_ultimaker2_plus_0.4_mm -weight = -3 +weight = 1 quality_type = high [values] diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg index 1b8c1035db..ba7886276b 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_abs_ultimaker2_plus_0.4_mm -weight = -2 +weight = 0 quality_type = normal [values] diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg index 4ef0f34484..3a0af33a6a 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_abs_ultimaker2_plus_0.6_mm -weight = -2 +weight = 0 quality_type = normal [values] diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg index ca2f736c01..e8885fc73a 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_abs_ultimaker2_plus_0.8_mm -weight = -2 +weight = -1 quality_type = fast [values] diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg index 0f2a612619..b86bb877f6 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_cpe_ultimaker2_plus_0.25_mm -weight = -2 +weight = -1 quality_type = high [values] diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg index abc5e562f7..bb6a1ee079 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_cpe_ultimaker2_plus_0.4_mm -weight = -3 +weight = 1 quality_type = high [values] diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg index 5531f245f0..54122164da 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_cpe_ultimaker2_plus_0.4_mm -weight = -2 +weight = 0 quality_type = normal [values] diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg index 3765f98709..00a6160f46 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_cpe_ultimaker2_plus_0.6_mm -weight = -2 +weight = 0 quality_type = normal [values] diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg index 179b554973..83714ca40a 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_cpe_ultimaker2_plus_0.8_mm -weight = -2 +weight = -1 quality_type = fast [values] diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg index 7e4ae3911d..ebb4c87f01 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_cpe_plus_ultimaker2_plus_0.4_mm -weight = 0 +weight = -2 quality_type = draft [values] diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg index 069f7cb9f3..be6e962949 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_cpe_plus_ultimaker2_plus_0.6_mm -weight = 0 +weight = -2 quality_type = draft [values] diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg index ccfe46dc2a..2cd6ef9dac 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_cpe_plus_ultimaker2_plus_0.8_mm -weight = 0 +weight = -2 quality_type = draft [values] diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg index 2cf00fdbf4..c1f39614a6 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_nylon_ultimaker2_plus_0.25_mm -weight = 0 +weight = 1 quality_type = high [values] diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg index b09113943b..88d8855a6a 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_nylon_ultimaker2_plus_0.4_mm -weight = 0 +weight = -1 quality_type = fast [values] diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg index cdecab8f91..72dbc51e0f 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_nylon_ultimaker2_plus_0.6_mm -weight = 0 +weight = -1 quality_type = fast [values] diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg index 89852991bf..f7975730c2 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_nylon_ultimaker2_plus_0.8_mm -weight = 0 +weight = -2 quality_type = draft [values] diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg index 5358afd2be..91e75c2450 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_pc_ultimaker2_plus_0.25_mm -weight = 0 +weight = 1 quality_type = high [values] diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg index c4af6dd366..e05cbb0dd0 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_pc_ultimaker2_plus_0.4_mm -weight = 0 +weight = -1 quality_type = fast [values] diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg index ef6d1a20b3..bfd239e3cc 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_pc_ultimaker2_plus_0.6_mm -weight = 0 +weight = -1 quality_type = fast [values] diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg index 1207b562ee..52e61a8145 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_pc_ultimaker2_plus_0.8_mm -weight = 0 +weight = -2 quality_type = draft [values] diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg index 5ca9c7f055..1da2a667e6 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_tpu_ultimaker2_plus_0.25_mm -weight = 0 +weight = 1 quality_type = high [values] diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg index 9ef7263e63..a2f3a57541 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] type = quality material = generic_tpu_ultimaker2_plus_0.6_mm -weight = 0 +weight = -1 quality_type = fast [values] diff --git a/resources/themes/cura/styles.qml b/resources/themes/cura/styles.qml index 8c419fb245..cc6bdfed77 100644 --- a/resources/themes/cura/styles.qml +++ b/resources/themes/cura/styles.qml @@ -237,7 +237,7 @@ QtObject { SequentialAnimation on x { id: xAnim property int animEndPoint: Theme.getSize("message").width - (Theme.getSize("default_margin").width * 2) - Theme.getSize("progressbar_control").width - running: control.indeterminate + running: control.indeterminate && control.visible loops: Animation.Infinite NumberAnimation { from: 0; to: xAnim.animEndPoint; duration: 2000;} NumberAnimation { from: xAnim.animEndPoint; to: 0; duration: 2000;}