From 61e0cd4ff5abbd25aa27a4f18221061ce3ad720d Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 20 Feb 2017 11:09:34 +0100 Subject: [PATCH 1/6] Move legacy options to layerview options --- plugins/LayerView/LayerView.qml | 20 ++++++++++++ resources/qml/Preferences/GeneralPage.qml | 40 ----------------------- 2 files changed, 20 insertions(+), 40 deletions(-) diff --git a/plugins/LayerView/LayerView.qml b/plugins/LayerView/LayerView.qml index 66fd6d3f7b..e2581a568c 100644 --- a/plugins/LayerView/LayerView.qml +++ b/plugins/LayerView/LayerView.qml @@ -223,6 +223,8 @@ Item view_settings.show_adhesion = UM.Preferences.getValue("layerview/show_adhesion"); view_settings.show_skin = UM.Preferences.getValue("layerview/show_skin"); view_settings.show_infill = UM.Preferences.getValue("layerview/show_infill"); + view_settings.only_show_top_layers = UM.Preferences.getValue("view/only_show_top_layers"); + view_settings.top_layer_count = UM.Preferences.getValue("view/top_layer_count"); } } @@ -238,6 +240,8 @@ Item property bool show_adhesion: UM.Preferences.getValue("layerview/show_adhesion") property bool show_skin: UM.Preferences.getValue("layerview/show_skin") property bool show_infill: UM.Preferences.getValue("layerview/show_infill") + property bool only_show_top_layers: UM.Preferences.getValue("view/only_show_top_layers") + property int top_layer_count: UM.Preferences.getValue("view/only_show_top_layers") anchors.top: UM.LayerView.compatibilityMode ? compatibilityModeLabel.bottom : layerTypeCombobox.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height @@ -315,6 +319,22 @@ Item } text: catalog.i18nc("@label", "Show Infill") } + CheckBox { + checked: view_settings.only_show_top_layers + onClicked: { + UM.Preferences.setValue("view/only_show_top_layers", checked ? 1.0 : 0.0); + } + text: catalog.i18nc("@label", "Only Show Top Layers") + visible: UM.LayerView.compatibilityMode + } + CheckBox { + checked: view_settings.top_layer_count == 5 + onClicked: { + UM.Preferences.setValue("view/top_layer_count", checked ? 5 : 1); + } + text: catalog.i18nc("@label", "Show 5 Detailed Layers On Top") + visible: UM.LayerView.compatibilityMode + } } } } diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 94b589a636..fc178ec19e 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -45,8 +45,6 @@ UM.PreferencesPage showOverhangCheckbox.checked = boolCheck(UM.Preferences.getValue("view/show_overhang")) UM.Preferences.resetPreference("view/center_on_select"); centerOnSelectCheckbox.checked = boolCheck(UM.Preferences.getValue("view/center_on_select")) - UM.Preferences.resetPreference("view/top_layer_count"); - topLayerCountCheckbox.checked = boolCheck(UM.Preferences.getValue("view/top_layer_count")) if (plugins.find("id", "SliceInfoPlugin") > -1) { UM.Preferences.resetPreference("info/send_slice_info") @@ -232,44 +230,6 @@ UM.PreferencesPage } } - UM.TooltipArea { - width: childrenRect.width; - height: childrenRect.height; - text: catalog.i18nc("@info:tooltip","Display 5 top layers in layer view or only the top-most layer. Rendering 5 layers takes longer, but may show more information.") - - CheckBox - { - id: topLayerCountCheckbox - text: catalog.i18nc("@action:button","Display five top layers in layer view compatibility mode"); - checked: UM.Preferences.getValue("view/top_layer_count") == 5 - onClicked: - { - if(UM.Preferences.getValue("view/top_layer_count") == 5) - { - UM.Preferences.setValue("view/top_layer_count", 1) - } - else - { - UM.Preferences.setValue("view/top_layer_count", 5) - } - } - } - } - - UM.TooltipArea { - width: childrenRect.width - height: childrenRect.height - text: catalog.i18nc("@info:tooltip", "Should only the top layers be displayed in layerview?") - - CheckBox - { - id: topLayersOnlyCheckbox - text: catalog.i18nc("@option:check", "Only display top layer(s) in layer view compatibility mode") - checked: boolCheck(UM.Preferences.getValue("view/only_show_top_layers")) - onCheckedChanged: UM.Preferences.setValue("view/only_show_top_layers", checked) - } - } - UM.TooltipArea { width: childrenRect.width height: childrenRect.height From f8a3c3b0ba9e5c2cca0b152d8027e53471943dc2 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 20 Feb 2017 12:20:54 +0100 Subject: [PATCH 2/6] Factor out repeated extruder visibility checkboxes --- plugins/LayerView/LayerView.py | 16 +++++----- plugins/LayerView/LayerView.qml | 55 ++++++++------------------------- 2 files changed, 21 insertions(+), 50 deletions(-) diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index fc75026475..63831a4bb8 100644 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -73,10 +73,7 @@ class LayerView(View): Preferences.getInstance().addPreference("view/force_layer_view_compatibility_mode", False) Preferences.getInstance().addPreference("layerview/layer_view_type", 0) - Preferences.getInstance().addPreference("layerview/extruder0_opacity", 1.0) - Preferences.getInstance().addPreference("layerview/extruder1_opacity", 1.0) - Preferences.getInstance().addPreference("layerview/extruder2_opacity", 1.0) - Preferences.getInstance().addPreference("layerview/extruder3_opacity", 1.0) + Preferences.getInstance().addPreference("layerview/extruder_opacities", "") Preferences.getInstance().addPreference("layerview/show_travel_moves", False) Preferences.getInstance().addPreference("layerview/show_support", True) @@ -392,10 +389,13 @@ class LayerView(View): self.setLayerViewType(int(float(Preferences.getInstance().getValue("layerview/layer_view_type")))); - self.setExtruderOpacity(0, float(Preferences.getInstance().getValue("layerview/extruder0_opacity"))) - self.setExtruderOpacity(1, float(Preferences.getInstance().getValue("layerview/extruder1_opacity"))) - self.setExtruderOpacity(2, float(Preferences.getInstance().getValue("layerview/extruder2_opacity"))) - self.setExtruderOpacity(3, float(Preferences.getInstance().getValue("layerview/extruder3_opacity"))) + extruder_nr = 0 + for extruder_opacity in Preferences.getInstance().getValue("layerview/extruder_opacities").split(","): + try: + opacity = float(extruder_opacity) + except ValueError: + opacity = 1.0 + self.setExtruderOpacity(extruder_nr, opacity) self.setShowTravelMoves(bool(Preferences.getInstance().getValue("layerview/show_travel_moves"))) self.setShowSupport(bool(Preferences.getInstance().getValue("layerview/show_support"))) diff --git a/plugins/LayerView/LayerView.qml b/plugins/LayerView/LayerView.qml index e2581a568c..f9143a89ad 100644 --- a/plugins/LayerView/LayerView.qml +++ b/plugins/LayerView/LayerView.qml @@ -214,10 +214,7 @@ Item onPreferenceChanged: { layerTypeCombobox.layer_view_type = UM.Preferences.getValue("layerview/layer_view_type"); - view_settings.extruder0_checked = UM.Preferences.getValue("layerview/extruder0_opacity") > 0.5; - view_settings.extruder1_checked = UM.Preferences.getValue("layerview/extruder1_opacity") > 0.5; - view_settings.extruder2_checked = UM.Preferences.getValue("layerview/extruder2_opacity") > 0.5; - view_settings.extruder3_checked = UM.Preferences.getValue("layerview/extruder3_opacity") > 0.5; + view_settings.extruder_opacities = UM.Preferences.getValue("layerview/extruder_opacities").split(","); view_settings.show_travel_moves = UM.Preferences.getValue("layerview/show_travel_moves"); view_settings.show_support = UM.Preferences.getValue("layerview/show_support"); view_settings.show_adhesion = UM.Preferences.getValue("layerview/show_adhesion"); @@ -231,10 +228,7 @@ Item ColumnLayout { id: view_settings - property bool extruder0_checked: UM.Preferences.getValue("layerview/extruder0_opacity") > 0.5 - property bool extruder1_checked: UM.Preferences.getValue("layerview/extruder1_opacity") > 0.5 - property bool extruder2_checked: UM.Preferences.getValue("layerview/extruder2_opacity") > 0.5 - property bool extruder3_checked: UM.Preferences.getValue("layerview/extruder3_opacity") > 0.5 + property var extruder_opacities: UM.Preferences.getValue("layerview/extruder_opacities").split(",") property bool show_travel_moves: UM.Preferences.getValue("layerview/show_travel_moves") property bool show_support: UM.Preferences.getValue("layerview/show_support") property bool show_adhesion: UM.Preferences.getValue("layerview/show_adhesion") @@ -248,42 +242,19 @@ Item anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width - CheckBox { - checked: view_settings.extruder0_checked - onClicked: { - UM.Preferences.setValue("layerview/extruder0_opacity", checked ? 1.0 : 0.0); + Repeater { + model: UM.LayerView.extruderCount + CheckBox { + checked: [undefined, ""].indexOf(view_settings.extruder_opacities[index]) >= 0 || view_settings.extruder_opacities[index] > 0.5 + onClicked: { + view_settings.extruder_opacities[index] = checked ? 1.0 : 0.0 + UM.Preferences.setValue("layerview/extruder_opacities", view_settings.extruder_opacities.toString()); + } + text: catalog.i18nc("@label", "Extruder %1").arg(index + 1) + visible: !UM.LayerView.compatibilityMode } - text: "Extruder 1" - visible: !UM.LayerView.compatibilityMode && (UM.LayerView.extruderCount >= 1) - } - CheckBox { - checked: view_settings.extruder1_checked - onClicked: { - UM.Preferences.setValue("layerview/extruder1_opacity", checked ? 1.0 : 0.0); - } - text: "Extruder 2" - visible: !UM.LayerView.compatibilityMode && (UM.LayerView.extruderCount >= 2) - } - CheckBox { - checked: view_settings.extruder2_checked - onClicked: { - UM.Preferences.setValue("layerview/extruder2_opacity", checked ? 1.0 : 0.0); - } - text: "Extruder 3" - visible: !UM.LayerView.compatibilityMode && (UM.LayerView.etruderCount >= 3) - } - CheckBox { - checked: view_settings.extruder3_checked - onClicked: { - UM.Preferences.setValue("layerview/extruder3_opacity", checked ? 1.0 : 0.0); - } - text: "Extruder 4" - visible: !UM.LayerView.compatibilityMode && (UM.LayerView.extruderCount >= 4) - } - Label { - text: "Other extruders always visible" - visible: !UM.LayerView.compatibilityMode && (UM.LayerView.extruderCount >= 5) } + CheckBox { checked: view_settings.show_travel_moves onClicked: { From 26fe46ce1f26f819cbfa8f6f4a6621fc4c501632 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 20 Feb 2017 12:32:49 +0100 Subject: [PATCH 3/6] Translate layerview mode types --- plugins/LayerView/LayerView.qml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/plugins/LayerView/LayerView.qml b/plugins/LayerView/LayerView.qml index f9143a89ad..be2a0fdd7e 100644 --- a/plugins/LayerView/LayerView.qml +++ b/plugins/LayerView/LayerView.qml @@ -160,14 +160,18 @@ Item ListModel // matches LayerView.py { id: layerViewTypes - ListElement { - text: "Material Color" + } + + Component.onCompleted: + { + layerViewTypes.append({ + text: catalog.i18nc("@title:layerview mode", "Material Color"), type_id: 0 - } - ListElement { - text: "Line Type" + }) + layerViewTypes.append({ + text: catalog.i18nc("@title:layerview mode", "Line Type"), type_id: 1 // these ids match the switching in the shader - } + }) } ComboBox From 73253d380704343f530471d0660cc6fb036a3cf3 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 20 Feb 2017 13:19:38 +0100 Subject: [PATCH 4/6] Fix loading opacities from preferences --- plugins/LayerView/LayerView.py | 1 + plugins/LayerView/LayerView.qml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index 63831a4bb8..828030a076 100644 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -396,6 +396,7 @@ class LayerView(View): except ValueError: opacity = 1.0 self.setExtruderOpacity(extruder_nr, opacity) + extruder_nr += 1 self.setShowTravelMoves(bool(Preferences.getInstance().getValue("layerview/show_travel_moves"))) self.setShowSupport(bool(Preferences.getInstance().getValue("layerview/show_support"))) diff --git a/plugins/LayerView/LayerView.qml b/plugins/LayerView/LayerView.qml index be2a0fdd7e..a06a498158 100644 --- a/plugins/LayerView/LayerView.qml +++ b/plugins/LayerView/LayerView.qml @@ -249,7 +249,7 @@ Item Repeater { model: UM.LayerView.extruderCount CheckBox { - checked: [undefined, ""].indexOf(view_settings.extruder_opacities[index]) >= 0 || view_settings.extruder_opacities[index] > 0.5 + checked: view_settings.extruder_opacities[index] > 0.5 || view_settings.extruder_opacities[index] == undefined || view_settings.extruder_opacities[index] == "" onClicked: { view_settings.extruder_opacities[index] = checked ? 1.0 : 0.0 UM.Preferences.setValue("layerview/extruder_opacities", view_settings.extruder_opacities.toString()); From aef34d468858d2e7256679caacb7600dc7cbedff Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 21 Feb 2017 22:28:47 +0100 Subject: [PATCH 5/6] Fix i18n context --- plugins/LayerView/LayerView.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/LayerView/LayerView.qml b/plugins/LayerView/LayerView.qml index a06a498158..41e39ef2c3 100644 --- a/plugins/LayerView/LayerView.qml +++ b/plugins/LayerView/LayerView.qml @@ -165,11 +165,11 @@ Item Component.onCompleted: { layerViewTypes.append({ - text: catalog.i18nc("@title:layerview mode", "Material Color"), + text: catalog.i18nc("@label:listbox", "Material Color"), type_id: 0 }) layerViewTypes.append({ - text: catalog.i18nc("@title:layerview mode", "Line Type"), + text: catalog.i18nc("@label:listbox", "Line Type"), type_id: 1 // these ids match the switching in the shader }) } From 7a336bbe679bc0782088746154065d2eb354d012 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 21 Feb 2017 22:37:32 +0100 Subject: [PATCH 6/6] Change separator for extruder_opacities to | Comma as a separator might cause confusion/(user-)errors with localised floating point numbers. --- plugins/LayerView/LayerView.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/LayerView/LayerView.qml b/plugins/LayerView/LayerView.qml index 41e39ef2c3..c254adcbb6 100644 --- a/plugins/LayerView/LayerView.qml +++ b/plugins/LayerView/LayerView.qml @@ -218,7 +218,7 @@ Item onPreferenceChanged: { layerTypeCombobox.layer_view_type = UM.Preferences.getValue("layerview/layer_view_type"); - view_settings.extruder_opacities = UM.Preferences.getValue("layerview/extruder_opacities").split(","); + view_settings.extruder_opacities = UM.Preferences.getValue("layerview/extruder_opacities").split("|"); view_settings.show_travel_moves = UM.Preferences.getValue("layerview/show_travel_moves"); view_settings.show_support = UM.Preferences.getValue("layerview/show_support"); view_settings.show_adhesion = UM.Preferences.getValue("layerview/show_adhesion"); @@ -232,7 +232,7 @@ Item ColumnLayout { id: view_settings - property var extruder_opacities: UM.Preferences.getValue("layerview/extruder_opacities").split(",") + property var extruder_opacities: UM.Preferences.getValue("layerview/extruder_opacities").split("|") property bool show_travel_moves: UM.Preferences.getValue("layerview/show_travel_moves") property bool show_support: UM.Preferences.getValue("layerview/show_support") property bool show_adhesion: UM.Preferences.getValue("layerview/show_adhesion") @@ -252,7 +252,7 @@ Item checked: view_settings.extruder_opacities[index] > 0.5 || view_settings.extruder_opacities[index] == undefined || view_settings.extruder_opacities[index] == "" onClicked: { view_settings.extruder_opacities[index] = checked ? 1.0 : 0.0 - UM.Preferences.setValue("layerview/extruder_opacities", view_settings.extruder_opacities.toString()); + UM.Preferences.setValue("layerview/extruder_opacities", view_settings.extruder_opacities.join("|")); } text: catalog.i18nc("@label", "Extruder %1").arg(index + 1) visible: !UM.LayerView.compatibilityMode