From 7c1de0c0d2500391649797e10799bb6fbba83332 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 25 Sep 2017 11:28:08 +0200 Subject: [PATCH 1/6] Make Solid View a required plugin. There is no plugin with the id "MeshView" --- cura/CuraApplication.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index c4f3217a1a..1113478937 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -211,7 +211,7 @@ class CuraApplication(QtApplication): self.setRequiredPlugins([ "CuraEngineBackend", - "MeshView", + "SolidView", "LayerView", "STLReader", "SelectionTool", From a44c6e3a4f1a8765500f14562e0eadb36bad8518 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 26 Sep 2017 09:05:37 +0200 Subject: [PATCH 2/6] Fix spelling mistake Found by Anraf1000. Thanks. --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index ece8fd48a4..93fcb481fa 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4134,7 +4134,7 @@ "raft_smoothing": { "label": "Raft Smoothing", - "description": "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle.", + "description": "This setting controls how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle.", "unit": "mm", "type": "float", "default_value": 5, From a2e0f4d64fcab35e0eeada795a20b725480013eb Mon Sep 17 00:00:00 2001 From: alekseisasin Date: Wed, 27 Sep 2017 11:27:29 +0200 Subject: [PATCH 3/6] For discard changed window retrieve data from setting "value" property instead of "resolve" CURA-4358 --- cura/Settings/GlobalStack.py | 5 +++-- cura/Settings/UserChangesModel.py | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index bee82e2272..cfab45bfed 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -89,10 +89,11 @@ class GlobalStack(CuraContainerStack): # # \param key The setting key to get the property of. # \param property_name The property to get the value of. + # \param skip_container The container ID to skip. # # \return The value of the property for the specified setting, or None if not found. @override(ContainerStack) - def getProperty(self, key: str, property_name: str, context: Optional[PropertyEvaluationContext] = None) -> Any: + def getProperty(self, key: str, property_name: str, context: Optional[PropertyEvaluationContext] = None, skip_container: str = None) -> Any: if not self.definition.findDefinitions(key = key): return None @@ -121,7 +122,7 @@ class GlobalStack(CuraContainerStack): else: Logger.log("e", "Setting {setting} has limit_to_extruder but is not settable per extruder!", setting = key) - result = super().getProperty(key, property_name, context) + result = super().getProperty(key, property_name, context, skip_container) context.popContainer() return result diff --git a/cura/Settings/UserChangesModel.py b/cura/Settings/UserChangesModel.py index 8b61186650..fbbd721f9f 100644 --- a/cura/Settings/UserChangesModel.py +++ b/cura/Settings/UserChangesModel.py @@ -90,9 +90,11 @@ class UserChangesModel(ListModel): for container in containers: if stack == global_stack: - resolve = global_stack.getProperty(setting_key, "resolve") - if resolve is not None: - original_value = resolve + + #Find default value without checking user changed settings. + default_value = global_stack.getProperty(setting_key, "value", skip_container = user_changes.getId()) + if default_value is not None: + original_value = default_value break original_value = container.getProperty(setting_key, "value") From f5310ad2ff7d3cf1bf05c4ad49c864ed3b2d5b35 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 27 Sep 2017 14:16:56 +0200 Subject: [PATCH 4/6] Revert "For discard changed window retrieve data from setting "value" property instead of "resolve"" This reverts commit a2e0f4d64fcab35e0eeada795a20b725480013eb. --- cura/Settings/GlobalStack.py | 5 ++--- cura/Settings/UserChangesModel.py | 8 +++----- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index cfab45bfed..bee82e2272 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -89,11 +89,10 @@ class GlobalStack(CuraContainerStack): # # \param key The setting key to get the property of. # \param property_name The property to get the value of. - # \param skip_container The container ID to skip. # # \return The value of the property for the specified setting, or None if not found. @override(ContainerStack) - def getProperty(self, key: str, property_name: str, context: Optional[PropertyEvaluationContext] = None, skip_container: str = None) -> Any: + def getProperty(self, key: str, property_name: str, context: Optional[PropertyEvaluationContext] = None) -> Any: if not self.definition.findDefinitions(key = key): return None @@ -122,7 +121,7 @@ class GlobalStack(CuraContainerStack): else: Logger.log("e", "Setting {setting} has limit_to_extruder but is not settable per extruder!", setting = key) - result = super().getProperty(key, property_name, context, skip_container) + result = super().getProperty(key, property_name, context) context.popContainer() return result diff --git a/cura/Settings/UserChangesModel.py b/cura/Settings/UserChangesModel.py index fbbd721f9f..8b61186650 100644 --- a/cura/Settings/UserChangesModel.py +++ b/cura/Settings/UserChangesModel.py @@ -90,11 +90,9 @@ class UserChangesModel(ListModel): for container in containers: if stack == global_stack: - - #Find default value without checking user changed settings. - default_value = global_stack.getProperty(setting_key, "value", skip_container = user_changes.getId()) - if default_value is not None: - original_value = default_value + resolve = global_stack.getProperty(setting_key, "resolve") + if resolve is not None: + original_value = resolve break original_value = container.getProperty(setting_key, "value") From aa93c67a94bf74ff82256f57c8c09b15f236514e Mon Sep 17 00:00:00 2001 From: Mark Date: Wed, 27 Sep 2017 14:27:04 +0200 Subject: [PATCH 5/6] Re-add the margin between infill and support checkbox CURA-4380 --- resources/qml/SidebarSimple.qml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index c2664c37a3..3a104e81a1 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -598,7 +598,7 @@ Item visible: enableSupportCheckBox.visible anchors.top: infillCellRight.bottom - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height * 1.5 anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width anchors.verticalCenter: enableSupportCheckBox.verticalCenter @@ -613,8 +613,7 @@ Item id: enableSupportCheckBox property alias _hovered: enableSupportMouseArea.containsMouse - anchors.top: infillCellRight.bottom - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.top: enableSupportLabel.top anchors.left: infillCellRight.left style: UM.Theme.styles.checkbox; From 3be8f45636b973370e44191badf4be52adb07268 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 27 Sep 2017 15:18:53 +0200 Subject: [PATCH 6/6] Move the quality indicator to the center when there is only one quality available Fixes #2485 CURA-4383 --- resources/qml/SidebarSimple.qml | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 3a104e81a1..e222de8aa5 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -186,7 +186,10 @@ Item x: { // Make sure the text aligns correctly with each tick - if (index == 0) { + if (qualityModel.totalTicks == 0) { + // If there is only one tick, align it centrally + return ((base.width * 0.55) - width) / 2 + } else if (index == 0) { return (base.width * 0.55 / qualityModel.totalTicks) * index } else if (index == qualityModel.totalTicks) { return (base.width * 0.55 / qualityModel.totalTicks) * index - width @@ -223,7 +226,7 @@ Item Repeater { id: qualityRepeater - model: qualityModel + model: qualityModel.availableTotalTicks > 0 ? qualityModel : 0 Rectangle { @@ -236,13 +239,22 @@ Item } } + Rectangle { + id: disabledHandleButton + visible: !qualitySlider.visible + anchors.centerIn: parent + color: UM.Theme.getColor("quality_slider_unavailable") + implicitWidth: 10 * screenScaleFactor + implicitHeight: implicitWidth + radius: width / 2 + } Slider { id: qualitySlider height: UM.Theme.getSize("sidebar_margin").height anchors.bottom: speedSlider.bottom - enabled: qualityModel.availableTotalTicks > 0 + visible: qualityModel.availableTotalTicks > 0 updateValueWhileDragging : false minimumValue: qualityModel.qualitySliderAvailableMin >= 0 ? qualityModel.qualitySliderAvailableMin : 0 @@ -262,16 +274,16 @@ Item groove: Rectangle { implicitHeight: 2 * screenScaleFactor color: UM.Theme.getColor("quality_slider_available") - radius: 1 * screenScaleFactor + radius: height / 2 } handle: Item { Rectangle { id: qualityhandleButton anchors.centerIn: parent - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + color: UM.Theme.getColor("quality_slider_available") implicitWidth: 10 * screenScaleFactor - implicitHeight: 10 * screenScaleFactor - radius: 10 * screenScaleFactor + implicitHeight: implicitWidth + radius: implicitWidth / 2 } } }