Factor out repeated extruder visibility checkboxes

This commit is contained in:
fieldOfView 2017-02-20 12:20:54 +01:00
parent 61e0cd4ff5
commit f8a3c3b0ba
2 changed files with 21 additions and 50 deletions

View file

@ -73,10 +73,7 @@ class LayerView(View):
Preferences.getInstance().addPreference("view/force_layer_view_compatibility_mode", False) Preferences.getInstance().addPreference("view/force_layer_view_compatibility_mode", False)
Preferences.getInstance().addPreference("layerview/layer_view_type", 0) Preferences.getInstance().addPreference("layerview/layer_view_type", 0)
Preferences.getInstance().addPreference("layerview/extruder0_opacity", 1.0) Preferences.getInstance().addPreference("layerview/extruder_opacities", "")
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/show_travel_moves", False) Preferences.getInstance().addPreference("layerview/show_travel_moves", False)
Preferences.getInstance().addPreference("layerview/show_support", True) 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.setLayerViewType(int(float(Preferences.getInstance().getValue("layerview/layer_view_type"))));
self.setExtruderOpacity(0, float(Preferences.getInstance().getValue("layerview/extruder0_opacity"))) extruder_nr = 0
self.setExtruderOpacity(1, float(Preferences.getInstance().getValue("layerview/extruder1_opacity"))) for extruder_opacity in Preferences.getInstance().getValue("layerview/extruder_opacities").split(","):
self.setExtruderOpacity(2, float(Preferences.getInstance().getValue("layerview/extruder2_opacity"))) try:
self.setExtruderOpacity(3, float(Preferences.getInstance().getValue("layerview/extruder3_opacity"))) 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.setShowTravelMoves(bool(Preferences.getInstance().getValue("layerview/show_travel_moves")))
self.setShowSupport(bool(Preferences.getInstance().getValue("layerview/show_support"))) self.setShowSupport(bool(Preferences.getInstance().getValue("layerview/show_support")))

View file

@ -214,10 +214,7 @@ Item
onPreferenceChanged: onPreferenceChanged:
{ {
layerTypeCombobox.layer_view_type = UM.Preferences.getValue("layerview/layer_view_type"); 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.extruder_opacities = UM.Preferences.getValue("layerview/extruder_opacities").split(",");
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.show_travel_moves = UM.Preferences.getValue("layerview/show_travel_moves"); 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_support = UM.Preferences.getValue("layerview/show_support");
view_settings.show_adhesion = UM.Preferences.getValue("layerview/show_adhesion"); view_settings.show_adhesion = UM.Preferences.getValue("layerview/show_adhesion");
@ -231,10 +228,7 @@ Item
ColumnLayout { ColumnLayout {
id: view_settings id: view_settings
property bool extruder0_checked: UM.Preferences.getValue("layerview/extruder0_opacity") > 0.5 property var extruder_opacities: UM.Preferences.getValue("layerview/extruder_opacities").split(",")
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 bool show_travel_moves: UM.Preferences.getValue("layerview/show_travel_moves") 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_support: UM.Preferences.getValue("layerview/show_support")
property bool show_adhesion: UM.Preferences.getValue("layerview/show_adhesion") property bool show_adhesion: UM.Preferences.getValue("layerview/show_adhesion")
@ -248,42 +242,19 @@ Item
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width anchors.leftMargin: UM.Theme.getSize("default_margin").width
CheckBox { Repeater {
checked: view_settings.extruder0_checked model: UM.LayerView.extruderCount
onClicked: { CheckBox {
UM.Preferences.setValue("layerview/extruder0_opacity", checked ? 1.0 : 0.0); 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 { CheckBox {
checked: view_settings.show_travel_moves checked: view_settings.show_travel_moves
onClicked: { onClicked: {