Fix mode switching issue in LayerView

CURA-3730
This commit is contained in:
Lipu Fei 2017-05-04 15:15:35 +02:00
parent f06562bc6e
commit 0171d9637c

View File

@ -43,7 +43,8 @@ Item
property bool show_helpers: UM.Preferences.getValue("layerview/show_helpers") property bool show_helpers: UM.Preferences.getValue("layerview/show_helpers")
property bool show_skin: UM.Preferences.getValue("layerview/show_skin") property bool show_skin: UM.Preferences.getValue("layerview/show_skin")
property bool show_infill: UM.Preferences.getValue("layerview/show_infill") property bool show_infill: UM.Preferences.getValue("layerview/show_infill")
property bool show_legend: UM.LayerView.compatibilityMode || UM.Preferences.getValue("layerview/layer_view_type") == 1 // if we are in compatibility mode, we only show the "line type"
property bool show_legend: UM.LayerView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type") == 1
property bool only_show_top_layers: UM.Preferences.getValue("view/only_show_top_layers") property bool only_show_top_layers: UM.Preferences.getValue("view/only_show_top_layers")
property int top_layer_count: UM.Preferences.getValue("view/top_layer_count") property int top_layer_count: UM.Preferences.getValue("view/top_layer_count")
@ -107,27 +108,23 @@ Item
visible: !UM.LayerView.compatibilityMode visible: !UM.LayerView.compatibilityMode
style: UM.Theme.styles.combobox style: UM.Theme.styles.combobox
property int layer_view_type: UM.Preferences.getValue("layerview/layer_view_type") onActivated:
currentIndex: layer_view_type // index matches type_id {
onActivated: { UM.Preferences.setValue("layerview/layer_view_type", index);
// Combobox selection
var type_id = index;
UM.Preferences.setValue("layerview/layer_view_type", type_id);
updateLegend(type_id);
}
onModelChanged: {
updateLegend(UM.Preferences.getValue("layerview/layer_view_type"));
} }
// Update visibility of legend. Component.onCompleted:
function updateLegend(type_id) { {
if (UM.LayerView.compatibilityMode || (type_id == 1)) { currentIndex = UM.LayerView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type");
// Line type updateLegends(currentIndex);
view_settings.show_legend = true;
} else {
view_settings.show_legend = false;
}
} }
function updateLegends(type_id)
{
// update visibility of legends
view_settings.show_legend = UM.LayerView.compatibilityMode || (type_id == 1);
}
} }
Label Label
@ -153,7 +150,8 @@ Item
target: UM.Preferences target: UM.Preferences
onPreferenceChanged: onPreferenceChanged:
{ {
layerTypeCombobox.layer_view_type = UM.Preferences.getValue("layerview/layer_view_type"); layerTypeCombobox.currentIndex = UM.LayerView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type");
layerTypeCombobox.updateLegends(layerTypeCombobox.currentIndex);
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_travel_moves = UM.Preferences.getValue("layerview/show_travel_moves");
view_settings.show_helpers = UM.Preferences.getValue("layerview/show_helpers"); view_settings.show_helpers = UM.Preferences.getValue("layerview/show_helpers");
@ -274,19 +272,17 @@ Item
typesLegenModelNoCheck.append({ typesLegenModelNoCheck.append({
label: catalog.i18nc("@label", "Top / Bottom"), label: catalog.i18nc("@label", "Top / Bottom"),
colorId: "layerview_skin", colorId: "layerview_skin",
visible: UM.Preferences.getValue("layerview/layer_view_type") != 0
}); });
typesLegenModelNoCheck.append({ typesLegenModelNoCheck.append({
label: catalog.i18nc("@label", "Inner Wall"), label: catalog.i18nc("@label", "Inner Wall"),
colorId: "layerview_inset_x", colorId: "layerview_inset_x",
visible: UM.Preferences.getValue("layerview/layer_view_type") != 0
}); });
} }
} }
Label { Label {
text: label text: label
visible: model.visible && view_settings.show_legend visible: view_settings.show_legend
Rectangle { Rectangle {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right anchors.right: parent.right
@ -295,7 +291,7 @@ Item
color: UM.Theme.getColor(model.colorId) color: UM.Theme.getColor(model.colorId)
border.width: UM.Theme.getSize("default_lining").width border.width: UM.Theme.getSize("default_lining").width
border.color: UM.Theme.getColor("lining") border.color: UM.Theme.getColor("lining")
visible: model.visible && view_settings.show_legend visible: view_settings.show_legend
} }
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height Layout.preferredHeight: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height