From 0c212d01b9053007a7218379c31604384f11d9f9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Dec 2016 15:28:38 +0100 Subject: [PATCH 1/7] Tighten regex for floats You're no longer allowed to type multiple radices, for instance. Contributes to issue CURA-3157. --- resources/qml/Settings/SettingTextField.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index d89f540aa3..eada681627 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -100,7 +100,7 @@ SettingItem maximumLength: 10; - validator: RegExpValidator { regExp: (definition.type == "int") ? /^-?[0-9]{0,10}/ : /^-?[0-9.,]{0,10}/ } // definition.type property from parent loader used to disallow fractional number entry + validator: RegExpValidator { regExp: (definition.type == "int") ? /^-?[0-9]{0,10}$/ : /^-?[0-9]?[.,]?[0-9]{0,10}$/ } // definition.type property from parent loader used to disallow fractional number entry Binding { From 0e31de3ed96fbe7cf23e0794d17777edad20e638 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Dec 2016 16:13:15 +0100 Subject: [PATCH 2/7] No longer crash when numeric settings are empty strings They may temporarily be empty strings while the user is typing, but that currently makes the setting red. However, if we crash during the build plate updating, the front-end gets in some half-updated state in which settings get reset to their previous state every time the user changes anything. So don't crash here. Contributes to issue CURA-3157. --- cura/BuildVolume.py | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 629f7ba6d8..56fa8d7b3b 100644 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -721,7 +721,12 @@ class BuildVolume(SceneNode): # # \return A sequence of setting values, one for each extruder. def _getSettingFromAllExtruders(self, setting_key, property = "value"): - return ExtruderManager.getInstance().getAllExtruderSettings(setting_key, property) + all_values = ExtruderManager.getInstance().getAllExtruderSettings(setting_key, property) + all_types = ExtruderManager.getInstance().getAllExtruderSettings(setting_key, "type") + for i in range(len(all_values)): + if not all_values[i] and (all_types[i] == "int" or all_types[i] == "float"): + all_values[i] = 0 + return all_values ## Private convenience function to get a setting from the support infill # extruder. @@ -745,16 +750,21 @@ class BuildVolume(SceneNode): multi_extrusion = self._global_container_stack.getProperty("machine_extruder_count", "value") > 1 if not multi_extrusion: - return self._global_container_stack.getProperty(setting_key, property) + stack = self._global_container_stack + else: + extruder_index = self._global_container_stack.getProperty(extruder_setting_key, "value") - extruder_index = self._global_container_stack.getProperty(extruder_setting_key, "value") + if extruder_index == "-1": # If extruder index is -1 use global instead + stack = self._global_container_stack + else: + extruder_stack_id = ExtruderManager.getInstance().extruderIds[str(extruder_index)] + stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = extruder_stack_id)[0] - if extruder_index == "-1": # If extruder index is -1 use global instead - return self._global_container_stack.getProperty(setting_key, property) - - extruder_stack_id = ExtruderManager.getInstance().extruderIds[str(extruder_index)] - stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = extruder_stack_id)[0] - return stack.getProperty(setting_key, property) + value = stack.getProperty(setting_key, property) + setting_type = stack.getProperty(setting_key, "type") + if not value and (setting_type == "int" or setting_type == "float"): + return 0 + return value ## Convenience function to calculate the disallowed radius around the edge. # From 39c0a367b66c9f787e8ddee1ff1a75ad3bbb32af Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Dec 2016 16:16:51 +0100 Subject: [PATCH 3/7] Update documentation of this stack description I found Not really related, but doesn't hurt. So... does not contribute to issue CURA-3157. --- resources/qml/Settings/SettingTextField.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index eada681627..427b482cea 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -113,7 +113,8 @@ SettingItem // 2: quality // 3: material -> user changed material in materialspage // 4: variant - // 5: machine + // 5: machine_changes + // 6: machine if ((base.resolve != "None" && base.resolve) && (stackLevel != 0) && (stackLevel != 1)) { // We have a resolve function. Indicates that the setting is not settable per extruder and that // we have to choose between the resolved value (default) and the global value From 263b0847147c259eba9cb3eb73a1bfa3b2bfa31a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Dec 2016 16:55:03 +0100 Subject: [PATCH 4/7] Remove commented material names repeater Nallath intended to remove this, he says. Contributes to issue CURA-1263. --- resources/qml/WorkspaceSummaryDialog.qml | 31 ------------------------ 1 file changed, 31 deletions(-) diff --git a/resources/qml/WorkspaceSummaryDialog.qml b/resources/qml/WorkspaceSummaryDialog.qml index c87830fe5c..55a6b41315 100644 --- a/resources/qml/WorkspaceSummaryDialog.qml +++ b/resources/qml/WorkspaceSummaryDialog.qml @@ -207,37 +207,6 @@ UM.Dialog } } - /*Item // Spacer - { - height: spacerHeight - width: height - } - - Label - { - text: catalog.i18nc("@action:label", "Material settings") - font.bold: true - } - - Repeater - { - model: Cura.MachineManager.activeMaterialNames - delegate: Row - { - width: parent.width - height: childrenRect.height - Label - { - text: catalog.i18nc("@action:label", "Name") - width: parent.width / 3 - } - Label - { - text: modelData - width: parent.width / 3 - } - } - }*/ Item // Spacer { From 33c79245acf25ebf8c2e2dfab4766a97cefc73e0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Dec 2016 17:08:57 +0100 Subject: [PATCH 5/7] Fix plural form for number of overrides Contributes to issue CURA-1263. --- resources/qml/WorkspaceSummaryDialog.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/WorkspaceSummaryDialog.qml b/resources/qml/WorkspaceSummaryDialog.qml index 55a6b41315..1afc6c0f1e 100644 --- a/resources/qml/WorkspaceSummaryDialog.qml +++ b/resources/qml/WorkspaceSummaryDialog.qml @@ -186,7 +186,7 @@ UM.Dialog } Label { - text: catalog.i18nc("@action:label", "%1 override(s)").arg(Cura.MachineManager.numUserSettings) + text: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", Cura.MachineManager.numUserSettings).arg(Cura.MachineManager.numUserSettings) width: parent.width / 3 } visible: Cura.MachineManager.numUserSettings From 5b82098afc5c009dfb58821df294d032a6636c61 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Dec 2016 17:15:32 +0100 Subject: [PATCH 6/7] Fix more plural forms Forgot these ones. Contributes to issue CURA-1263. --- plugins/3MFReader/WorkspaceDialog.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index cb8e667872..7d7f921001 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -200,7 +200,7 @@ UM.Dialog } Label { - text: catalog.i18nc("@action:label", "%1 override(s)").arg(manager.numUserSettings) + text: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.numUserSettings).arg(manager.numUserSettings) width: parent.width / 3 } visible: manager.numUserSettings != 0 @@ -216,6 +216,7 @@ UM.Dialog } Label { + text: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges) text: catalog.i18nc("@action:label", "%1, %2 override(s)" ).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges) width: parent.width / 3 } From 76c2e87749243e317651a5e52fcab767e717be90 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Dec 2016 17:15:32 +0100 Subject: [PATCH 7/7] Fix more plural forms Forgot these ones. Contributes to issue CURA-1263. --- plugins/3MFReader/WorkspaceDialog.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index cb8e667872..f1fba4c5de 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -200,7 +200,7 @@ UM.Dialog } Label { - text: catalog.i18nc("@action:label", "%1 override(s)").arg(manager.numUserSettings) + text: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.numUserSettings).arg(manager.numUserSettings) width: parent.width / 3 } visible: manager.numUserSettings != 0 @@ -216,7 +216,7 @@ UM.Dialog } Label { - text: catalog.i18nc("@action:label", "%1, %2 override(s)" ).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges) + text: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges) width: parent.width / 3 } visible: manager.numSettingsOverridenByQualityChanges != 0