Browse Source

Solved merge conflicts #1479 CURA-3321

Jack Ha 8 years ago
parent
commit
f9a5dc885c

+ 11 - 32
plugins/LayerView/LayerView.py

@@ -74,10 +74,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_helpers", True)
@@ -197,8 +194,9 @@ class LayerView(View):
     #   \param extruder_nr 0..3
     #   \param opacity 0.0 .. 1.0
     def setExtruderOpacity(self, extruder_nr, opacity):
-        self._extruder_opacity[extruder_nr] = opacity
-        self.currentLayerNumChanged.emit()
+        if extruder_nr <= 3:
+            self._extruder_opacity[extruder_nr] = opacity
+            self.currentLayerNumChanged.emit()
 
     def getExtruderOpacities(self):
         return self._extruder_opacity
@@ -380,10 +378,12 @@ 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")))
+        for extruder_nr, extruder_opacity in enumerate(Preferences.getInstance().getValue("layerview/extruder_opacities").split("|")):
+            try:
+                opacity = float(extruder_opacity)
+            except ValueError:
+                opacity = 1.0
+            self.setExtruderOpacity(extruder_nr, opacity)
 
         self._show_travel_moves = bool(Preferences.getInstance().getValue("layerview/show_travel_moves"))
         self.setShowTravelMoves(self._show_travel_moves)
@@ -400,10 +400,7 @@ class LayerView(View):
             "view/only_show_top_layers",
             "view/force_layer_view_compatibility_mode",
             "layerview/layer_view_type",
-            "layerview/extruder0_opacity",
-            "layerview/extruder1_opacity",
-            "layerview/extruder2_opacity",
-            "layerview/extruder3_opacity",
+            "layerview/extruder_opacities",
             "layerview/show_travel_moves",
             "layerview/show_helpers",
             "layerview/show_skin",
@@ -413,24 +410,6 @@ class LayerView(View):
 
         self._updateWithPreferences()
 
-    def _getLegendItems(self):
-        if self._legend_items is None:
-            theme = Application.getInstance().getTheme()
-            self._legend_items = [
-                {"color": theme.getColor("layerview_inset_0").name(), "title": catalog.i18nc("@label:layerview polygon type", "Outer Wall")}, # Inset0Type
-                {"color": theme.getColor("layerview_inset_x").name(), "title": catalog.i18nc("@label:layerview polygon type", "Inner Wall")}, # InsetXType
-                {"color": theme.getColor("layerview_skin").name(), "title": catalog.i18nc("@label:layerview polygon type", "Top / Bottom")}, # SkinType
-                {"color": theme.getColor("layerview_infill").name(), "title": catalog.i18nc("@label:layerview polygon type", "Infill")}, # InfillType
-                {"color": theme.getColor("layerview_support").name(), "title": catalog.i18nc("@label:layerview polygon type", "Support Skin")}, # SupportType
-                {"color": theme.getColor("layerview_support_infill").name(), "title": catalog.i18nc("@label:layerview polygon type", "Support Infill")}, # SupportInfillType
-                {"color": theme.getColor("layerview_support_interface").name(), "title": catalog.i18nc("@label:layerview polygon type", "Support Interface")},  # SupportInterfaceType
-                {"color": theme.getColor("layerview_skirt").name(), "title": catalog.i18nc("@label:layerview polygon type", "Build Plate Adhesion")}, # SkirtType
-                {"color": theme.getColor("layerview_move_combing").name(), "title": catalog.i18nc("@label:layerview polygon type", "Travel Move")}, # MoveCombingType
-                {"color": theme.getColor("layerview_move_retraction").name(), "title": catalog.i18nc("@label:layerview polygon type", "Retraction Move")}, # MoveRetractionType
-                #{"color": theme.getColor("layerview_none").name(), "title": catalog.i18nc("@label:layerview polygon type", "Unknown")} # NoneType
-            ]
-        return self._legend_items
-
 
 class _CreateTopLayersJob(Job):
     def __init__(self, scene, layer_number, solid_layers):

+ 60 - 60
plugins/LayerView/LayerView.qml

@@ -35,11 +35,26 @@ Item
             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_helpers: UM.Preferences.getValue("layerview/show_helpers")
             property bool show_skin: UM.Preferences.getValue("layerview/show_skin")
             property bool show_infill: UM.Preferences.getValue("layerview/show_infill")
             property bool show_legend: false
+            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")
+
+            /*
+                layerTypeCombobox.layer_view_type = UM.Preferences.getValue("layerview/layer_view_type");
+                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");
+                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");
+            */
 
             anchors.top: parent.top
             anchors.topMargin: UM.Theme.getSize("default_margin").height
@@ -75,14 +90,18 @@ Item
             ListModel  // matches LayerView.py
             {
                 id: layerViewTypes
-                ListElement {
-                    text: "Material Color"
+            }
+
+            Component.onCompleted:
+            {
+                layerViewTypes.append({
+                    text: catalog.i18nc("@label:listbox", "Material Color"),
                     type_id: 0
-                }
-                ListElement {
-                    text: "Line Type"
+                })
+                layerViewTypes.append({
+                    text: catalog.i18nc("@label:listbox", "Line Type"),
                     type_id: 1  // these ids match the switching in the shader
-                }
+                })
             }
 
             ComboBox
@@ -98,7 +117,7 @@ Item
                 currentIndex: layer_view_type  // index matches type_id
                 onActivated: {
                     // Combobox selection
-                    var type_id = layerViewTypes.get(index).type_id;
+                    var type_id = index;  // layerViewTypes.get(index).type_id;
                     UM.Preferences.setValue("layerview/layer_view_type", type_id);
                     updateLegend();
                 }
@@ -108,7 +127,7 @@ Item
 
                 // Update visibility of legend.
                 function updateLegend() {
-                    var type_id = layerViewTypes.get(currentIndex).type_id;
+                    var type_id = model.get(currentIndex).type_id;
                     if (UM.LayerView.compatibilityMode || (type_id == 1)) {
                         // Line type
                         view_settings.show_legend = true;
@@ -121,7 +140,6 @@ Item
             Label
             {
                 id: compatibilityModeLabel
-                //anchors.top: layersLabel.bottom
                 anchors.left: parent.left
                 text: catalog.i18nc("@label","Compatibility Mode")
                 visible: UM.LayerView.compatibilityMode
@@ -143,67 +161,33 @@ 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_helpers = UM.Preferences.getValue("layerview/show_helpers");
                     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");
                 }
             }
 
-            CheckBox {
-                id: extruder0CheckBox
-                checked: view_settings.extruder0_checked
-                onClicked: {
-                    UM.Preferences.setValue("layerview/extruder0_opacity", checked ? 1.0 : 0.0);
+            Repeater {
+                model: UM.LayerView.extruderCount
+                CheckBox {
+                    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.join("|"));
+                    }
+                    text: catalog.i18nc("@label", "Extruder %1").arg(index + 1)
+                    visible: !UM.LayerView.compatibilityMode
+                    enabled: index + 1 <= 4
+                    Layout.fillWidth: true
+                    Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
+                    Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
                 }
-                text: "Extruder 1"
-                visible: !UM.LayerView.compatibilityMode && (UM.LayerView.extruderCount >= 1)
-                Layout.fillWidth: true
-                Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
-                Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
             }
 
-            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)
-                Layout.fillWidth: true
-                Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
-                Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
-            }
-            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.extruderCount >= 3)
-                Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
-                Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
-            }
-            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)
-                Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
-                Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
-            }
-            Label {
-                text: "Other extr. always visible"
-                visible: !UM.LayerView.compatibilityMode && (UM.LayerView.extruderCount >= 5)
-                Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
-                Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
-            }
             CheckBox {
                 checked: view_settings.show_travel_moves
                 onClicked: {
@@ -448,6 +432,22 @@ Item
                     visible: UM.LayerView.busy;
                 }
             }
+            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
+            }
         }
     }
 }

+ 0 - 12
resources/qml/Cura.qml

@@ -306,18 +306,6 @@ UM.MainWindow
                 }
             }
 
-            Legend
-            {
-                id: legend
-                anchors
-                {
-                    top: parent.top
-                    topMargin: UM.Theme.getSize("default_margin").height
-                    right: sidebar.left
-                    rightMargin: UM.Theme.getSize("default_margin").width
-                }
-            }
-
             JobSpecs
             {
                 id: jobSpecs

+ 0 - 65
resources/qml/Legend.qml

@@ -1,65 +0,0 @@
-// Copyright (c) 2015 Ultimaker B.V.
-// Cura is released under the terms of the AGPLv3 or higher.
-
-import QtQuick 2.2
-import QtQuick.Controls 1.1
-import QtQuick.Controls.Styles 1.1
-import QtQuick.Layouts 1.1
-
-import UM 1.1 as UM
-import Cura 1.0 as Cura
-
-Item {
-    id: base
-
-    UM.I18nCatalog { id: catalog; name:"cura"}
-
-    width: childrenRect.width
-    height: childrenRect.height
-
-    Connections
-    {
-        target: Printer
-        onViewLegendItemsChanged:
-        {
-            legendItemRepeater.model = items
-        }
-    }
-
-    Column
-    {
-        Repeater
-        {
-            id: legendItemRepeater
-
-            Item {
-                anchors.right: parent.right
-                height: childrenRect.height
-                width: childrenRect.width
-
-                Rectangle {
-                    id: swatch
-
-                    anchors.right: parent.right
-                    anchors.verticalCenter: label.verticalCenter
-                    height: UM.Theme.getSize("setting_control").height / 2
-                    width: height
-
-                    color: modelData.color
-                    border.width: UM.Theme.getSize("default_lining").width
-                    border.color: UM.Theme.getColor("text_subtext")
-                }
-                Label {
-                    id: label
-
-                    text: modelData.title
-                    font: UM.Theme.getFont("small")
-                    color: UM.Theme.getColor("text_subtext")
-
-                    anchors.right: swatch.left
-                    anchors.rightMargin: UM.Theme.getSize("default_margin").width / 2
-                }
-            }
-        }
-    }
-}

+ 0 - 40
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")
@@ -257,44 +255,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

+ 1 - 1
resources/themes/cura/theme.json

@@ -294,7 +294,7 @@
         "slider_layerview_background": [4.0, 0.0],
         "slider_layerview_margin": [3.0, 1.0],
 
-        "layerview_menu_size": [16.5, 20.0],
+        "layerview_menu_size": [16.5, 17.0],
         "layerview_legend_size": [1.0, 1.0],
         "layerview_row": [11.0, 1.5],
         "layerview_row_spacing": [0.0, 0.5],