mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
LayerView checkboxes are not remembered; added switching Legend on for compatibility mode. CURA-3273
This commit is contained in:
parent
bb030c724b
commit
b229d38a88
3 changed files with 107 additions and 27 deletions
|
@ -241,7 +241,6 @@ class CuraApplication(QtApplication):
|
||||||
Preferences.getInstance().addPreference("mesh/scale_tiny_meshes", True)
|
Preferences.getInstance().addPreference("mesh/scale_tiny_meshes", True)
|
||||||
Preferences.getInstance().addPreference("cura/dialog_on_project_save", True)
|
Preferences.getInstance().addPreference("cura/dialog_on_project_save", True)
|
||||||
Preferences.getInstance().addPreference("cura/asked_dialog_on_project_save", False)
|
Preferences.getInstance().addPreference("cura/asked_dialog_on_project_save", False)
|
||||||
Preferences.getInstance().addPreference("view/force_layer_view_compatibility_mode", False)
|
|
||||||
|
|
||||||
Preferences.getInstance().addPreference("cura/currency", "€")
|
Preferences.getInstance().addPreference("cura/currency", "€")
|
||||||
Preferences.getInstance().addPreference("cura/material_settings", "{}")
|
Preferences.getInstance().addPreference("cura/material_settings", "{}")
|
||||||
|
|
|
@ -70,8 +70,22 @@ class LayerView(View):
|
||||||
|
|
||||||
Preferences.getInstance().addPreference("view/top_layer_count", 5)
|
Preferences.getInstance().addPreference("view/top_layer_count", 5)
|
||||||
Preferences.getInstance().addPreference("view/only_show_top_layers", False)
|
Preferences.getInstance().addPreference("view/only_show_top_layers", False)
|
||||||
|
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/show_travel_moves", False)
|
||||||
|
Preferences.getInstance().addPreference("layerview/show_support", True)
|
||||||
|
Preferences.getInstance().addPreference("layerview/show_adhesion", True)
|
||||||
|
Preferences.getInstance().addPreference("layerview/show_skin", True)
|
||||||
|
Preferences.getInstance().addPreference("layerview/show_infill", True)
|
||||||
|
|
||||||
Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged)
|
Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged)
|
||||||
|
self._updateWithPreferences()
|
||||||
|
|
||||||
self._solid_layers = int(Preferences.getInstance().getValue("view/top_layer_count"))
|
self._solid_layers = int(Preferences.getInstance().getValue("view/top_layer_count"))
|
||||||
self._only_show_top_layers = bool(Preferences.getInstance().getValue("view/only_show_top_layers"))
|
self._only_show_top_layers = bool(Preferences.getInstance().getValue("view/only_show_top_layers"))
|
||||||
|
@ -370,18 +384,48 @@ class LayerView(View):
|
||||||
|
|
||||||
self._top_layers_job = None
|
self._top_layers_job = None
|
||||||
|
|
||||||
def _onPreferencesChanged(self, preference):
|
def _updateWithPreferences(self):
|
||||||
if preference not in {"view/top_layer_count", "view/only_show_top_layers", "view/force_layer_view_compatibility_mode"}:
|
|
||||||
return
|
|
||||||
|
|
||||||
self._solid_layers = int(Preferences.getInstance().getValue("view/top_layer_count"))
|
self._solid_layers = int(Preferences.getInstance().getValue("view/top_layer_count"))
|
||||||
self._only_show_top_layers = bool(Preferences.getInstance().getValue("view/only_show_top_layers"))
|
self._only_show_top_layers = bool(Preferences.getInstance().getValue("view/only_show_top_layers"))
|
||||||
self._compatibility_mode = OpenGLContext.isLegacyOpenGL() or bool(
|
self._compatibility_mode = OpenGLContext.isLegacyOpenGL() or bool(
|
||||||
Preferences.getInstance().getValue("view/force_layer_view_compatibility_mode"))
|
Preferences.getInstance().getValue("view/force_layer_view_compatibility_mode"))
|
||||||
|
|
||||||
|
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")))
|
||||||
|
|
||||||
|
self.setShowTravelMoves(bool(Preferences.getInstance().getValue("layerview/show_travel_moves")))
|
||||||
|
self.setShowSupport(bool(Preferences.getInstance().getValue("layerview/show_support")))
|
||||||
|
self.setShowAdhesion(bool(Preferences.getInstance().getValue("layerview/show_adhesion")))
|
||||||
|
self.setShowSkin(bool(Preferences.getInstance().getValue("layerview/show_skin")))
|
||||||
|
self.setShowInfill(bool(Preferences.getInstance().getValue("layerview/show_infill")))
|
||||||
|
|
||||||
self._startUpdateTopLayers()
|
self._startUpdateTopLayers()
|
||||||
self.preferencesChanged.emit()
|
self.preferencesChanged.emit()
|
||||||
|
|
||||||
|
def _onPreferencesChanged(self, preference):
|
||||||
|
if preference not in {
|
||||||
|
"view/top_layer_count",
|
||||||
|
"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/show_travel_moves",
|
||||||
|
"layerview/show_support",
|
||||||
|
"layerview/show_adhesion",
|
||||||
|
"layerview/show_skin",
|
||||||
|
"layerview/show_infill",
|
||||||
|
}:
|
||||||
|
return
|
||||||
|
|
||||||
|
self._updateWithPreferences()
|
||||||
|
|
||||||
def _getLegendItems(self):
|
def _getLegendItems(self):
|
||||||
if self._legend_items is None:
|
if self._legend_items is None:
|
||||||
theme = Application.getInstance().getTheme()
|
theme = Application.getInstance().getTheme()
|
||||||
|
|
|
@ -177,19 +177,27 @@ Item
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
model: layerViewTypes
|
model: layerViewTypes
|
||||||
visible: !UM.LayerView.compatibilityMode
|
visible: !UM.LayerView.compatibilityMode
|
||||||
|
property int layer_view_type: UM.Preferences.getValue("layerview/layer_view_type")
|
||||||
|
currentIndex: layer_view_type // index matches type_id
|
||||||
onActivated: {
|
onActivated: {
|
||||||
|
// Combobox selection
|
||||||
var type_id = layerViewTypes.get(index).type_id;
|
var type_id = layerViewTypes.get(index).type_id;
|
||||||
UM.LayerView.setLayerViewType(type_id);
|
UM.Preferences.setValue("layerview/layer_view_type", type_id);
|
||||||
if (type_id == 1) {
|
updateLegend();
|
||||||
|
}
|
||||||
|
onModelChanged: {
|
||||||
|
updateLegend();
|
||||||
|
}
|
||||||
|
// Update visibility of legend.
|
||||||
|
function updateLegend() {
|
||||||
|
var type_id = layerViewTypes.get(currentIndex).type_id;
|
||||||
|
if (UM.LayerView.compatibilityMode || (type_id == 1)) {
|
||||||
// Line type
|
// Line type
|
||||||
UM.LayerView.enableLegend();
|
UM.LayerView.enableLegend();
|
||||||
} else {
|
} else {
|
||||||
UM.LayerView.disableLegend();
|
UM.LayerView.disableLegend();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onModelChanged: {
|
|
||||||
currentIndex = UM.LayerView.getLayerViewType();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Label
|
Label
|
||||||
|
@ -201,41 +209,69 @@ Item
|
||||||
visible: UM.LayerView.compatibilityMode
|
visible: UM.LayerView.compatibilityMode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: UM.Preferences
|
||||||
|
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.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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: view_settings
|
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 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")
|
||||||
|
property bool show_skin: UM.Preferences.getValue("layerview/show_skin")
|
||||||
|
property bool show_infill: UM.Preferences.getValue("layerview/show_infill")
|
||||||
|
|
||||||
anchors.top: UM.LayerView.compatibilityMode ? compatibilityModeLabel.bottom : layerTypeCombobox.bottom
|
anchors.top: UM.LayerView.compatibilityMode ? compatibilityModeLabel.bottom : layerTypeCombobox.bottom
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
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 {
|
CheckBox {
|
||||||
checked: true
|
checked: view_settings.extruder0_checked
|
||||||
onClicked: {
|
onClicked: {
|
||||||
UM.LayerView.setExtruderOpacity(0, checked ? 1.0 : 0.0);
|
UM.Preferences.setValue("layerview/extruder0_opacity", checked ? 1.0 : 0.0);
|
||||||
}
|
}
|
||||||
text: "Extruder 1"
|
text: "Extruder 1"
|
||||||
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 1)
|
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 1)
|
||||||
}
|
}
|
||||||
CheckBox {
|
CheckBox {
|
||||||
checked: true
|
checked: view_settings.extruder1_checked
|
||||||
onClicked: {
|
onClicked: {
|
||||||
UM.LayerView.setExtruderOpacity(1, checked ? 1.0 : 0.0);
|
UM.Preferences.setValue("layerview/extruder1_opacity", checked ? 1.0 : 0.0);
|
||||||
}
|
}
|
||||||
text: "Extruder 2"
|
text: "Extruder 2"
|
||||||
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 2)
|
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 2)
|
||||||
}
|
}
|
||||||
CheckBox {
|
CheckBox {
|
||||||
checked: true
|
checked: view_settings.extruder2_checked
|
||||||
onClicked: {
|
onClicked: {
|
||||||
UM.LayerView.setExtruderOpacity(2, checked ? 1.0 : 0.0);
|
UM.Preferences.setValue("layerview/extruder2_opacity", checked ? 1.0 : 0.0);
|
||||||
}
|
}
|
||||||
text: "Extruder 3"
|
text: "Extruder 3"
|
||||||
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 3)
|
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 3)
|
||||||
}
|
}
|
||||||
CheckBox {
|
CheckBox {
|
||||||
checked: true
|
checked: view_settings.extruder3_checked
|
||||||
onClicked: {
|
onClicked: {
|
||||||
UM.LayerView.setExtruderOpacity(3, checked ? 1.0 : 0.0);
|
UM.Preferences.setValue("layerview/extruder3_opacity", checked ? 1.0 : 0.0);
|
||||||
}
|
}
|
||||||
text: "Extruder 4"
|
text: "Extruder 4"
|
||||||
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 4)
|
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 4)
|
||||||
|
@ -245,36 +281,37 @@ Item
|
||||||
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 5)
|
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 5)
|
||||||
}
|
}
|
||||||
CheckBox {
|
CheckBox {
|
||||||
|
checked: view_settings.show_travel_moves
|
||||||
onClicked: {
|
onClicked: {
|
||||||
UM.LayerView.setShowTravelMoves(checked ? 1 : 0);
|
UM.Preferences.setValue("layerview/show_travel_moves", checked);
|
||||||
}
|
}
|
||||||
text: "Show travel moves"
|
text: "Show travel moves"
|
||||||
}
|
}
|
||||||
CheckBox {
|
CheckBox {
|
||||||
checked: true
|
checked: view_settings.show_support
|
||||||
onClicked: {
|
onClicked: {
|
||||||
UM.LayerView.setShowSupport(checked ? 1 : 0);
|
UM.Preferences.setValue("layerview/show_support", checked);
|
||||||
}
|
}
|
||||||
text: "Show support"
|
text: "Show support"
|
||||||
}
|
}
|
||||||
CheckBox {
|
CheckBox {
|
||||||
checked: true
|
checked: view_settings.show_adhesion
|
||||||
onClicked: {
|
onClicked: {
|
||||||
UM.LayerView.setShowAdhesion(checked ? 1 : 0);
|
UM.Preferences.setValue("layerview/show_adhesion", checked);
|
||||||
}
|
}
|
||||||
text: "Show adhesion"
|
text: "Show adhesion"
|
||||||
}
|
}
|
||||||
CheckBox {
|
CheckBox {
|
||||||
checked: true
|
checked: view_settings.show_skin
|
||||||
onClicked: {
|
onClicked: {
|
||||||
UM.LayerView.setShowSkin(checked ? 1 : 0);
|
UM.Preferences.setValue("layerview/show_skin", checked);
|
||||||
}
|
}
|
||||||
text: "Show skin"
|
text: "Show skin"
|
||||||
}
|
}
|
||||||
CheckBox {
|
CheckBox {
|
||||||
checked: true
|
checked: view_settings.show_infill
|
||||||
onClicked: {
|
onClicked: {
|
||||||
UM.LayerView.setShowInfill(checked ? 1 : 0);
|
UM.Preferences.setValue("layerview/show_infill", checked);
|
||||||
}
|
}
|
||||||
text: "Show infill"
|
text: "Show infill"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue