mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-09 07:56:22 -06:00
Add a collapse button to the Simulation View panel
See https://github.com/Ultimaker/Cura/pull/2732
This commit is contained in:
parent
a42d054505
commit
532331bd44
2 changed files with 172 additions and 140 deletions
|
@ -20,7 +20,9 @@ Item
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
height: {
|
height: {
|
||||||
if (UM.SimulationView.compatibilityMode) {
|
if (viewSettings.collapsed) {
|
||||||
|
return UM.Theme.getSize("layerview_menu_size_collapsed").height;
|
||||||
|
} else if (UM.SimulationView.compatibilityMode) {
|
||||||
return UM.Theme.getSize("layerview_menu_size_compatibility").height;
|
return UM.Theme.getSize("layerview_menu_size_compatibility").height;
|
||||||
} else if (UM.Preferences.getValue("layerview/layer_view_type") == 0) {
|
} else if (UM.Preferences.getValue("layerview/layer_view_type") == 0) {
|
||||||
return UM.Theme.getSize("layerview_menu_size_material_color_mode").height + UM.SimulationView.extruderCount * (UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("layerview_row_spacing").height)
|
return UM.Theme.getSize("layerview_menu_size_material_color_mode").height + UM.SimulationView.extruderCount * (UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("layerview_row_spacing").height)
|
||||||
|
@ -28,6 +30,7 @@ Item
|
||||||
return UM.Theme.getSize("layerview_menu_size").height + UM.SimulationView.extruderCount * (UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("layerview_row_spacing").height)
|
return UM.Theme.getSize("layerview_menu_size").height + UM.SimulationView.extruderCount * (UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("layerview_row_spacing").height)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Behavior on height { NumberAnimation { duration: 100 } }
|
||||||
|
|
||||||
property var buttonTarget: {
|
property var buttonTarget: {
|
||||||
if(parent != null)
|
if(parent != null)
|
||||||
|
@ -40,21 +43,49 @@ Item
|
||||||
|
|
||||||
visible: parent != null ? !parent.parent.monitoringPrint: true
|
visible: parent != null ? !parent.parent.monitoringPrint: true
|
||||||
|
|
||||||
UM.PointingRectangle {
|
Rectangle {
|
||||||
id: layerViewMenu
|
id: layerViewMenu
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: parent.height
|
height: parent.height
|
||||||
|
clip: true
|
||||||
z: layerSlider.z - 1
|
z: layerSlider.z - 1
|
||||||
color: UM.Theme.getColor("tool_panel_background")
|
color: UM.Theme.getColor("tool_panel_background")
|
||||||
borderWidth: UM.Theme.getSize("default_lining").width
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
borderColor: UM.Theme.getColor("lining")
|
border.color: UM.Theme.getColor("lining")
|
||||||
arrowSize: 0 // hide arrow until weird issue with first time rendering is fixed
|
|
||||||
|
Button {
|
||||||
|
id: collapseButton
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: Math.floor(UM.Theme.getSize("default_margin").height + (UM.Theme.getSize("layerview_row").height - UM.Theme.getSize("default_margin").height) / 2)
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||||
|
|
||||||
|
width: UM.Theme.getSize("standard_arrow").width
|
||||||
|
height: UM.Theme.getSize("standard_arrow").height
|
||||||
|
|
||||||
|
onClicked: viewSettings.collapsed = !viewSettings.collapsed
|
||||||
|
|
||||||
|
style: ButtonStyle
|
||||||
|
{
|
||||||
|
background: UM.RecolorImage
|
||||||
|
{
|
||||||
|
width: control.width
|
||||||
|
height: control.height
|
||||||
|
sourceSize.width: width
|
||||||
|
sourceSize.height: width
|
||||||
|
color: UM.Theme.getColor("setting_control_text")
|
||||||
|
source: viewSettings.collapsed ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom")
|
||||||
|
}
|
||||||
|
label: Label{ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: view_settings
|
id: viewSettings
|
||||||
|
|
||||||
|
property bool collapsed: false
|
||||||
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_travel_moves: UM.Preferences.getValue("layerview/show_travel_moves")
|
||||||
property bool show_helpers: UM.Preferences.getValue("layerview/show_helpers")
|
property bool show_helpers: UM.Preferences.getValue("layerview/show_helpers")
|
||||||
|
@ -135,7 +166,7 @@ Item
|
||||||
function updateLegends(type_id)
|
function updateLegends(type_id)
|
||||||
{
|
{
|
||||||
// update visibility of legends
|
// update visibility of legends
|
||||||
view_settings.show_legend = UM.SimulationView.compatibilityMode || (type_id == 1);
|
viewSettings.show_legend = UM.SimulationView.compatibilityMode || (type_id == 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -165,13 +196,13 @@ Item
|
||||||
{
|
{
|
||||||
layerTypeCombobox.currentIndex = UM.SimulationView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type");
|
layerTypeCombobox.currentIndex = UM.SimulationView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type");
|
||||||
layerTypeCombobox.updateLegends(layerTypeCombobox.currentIndex);
|
layerTypeCombobox.updateLegends(layerTypeCombobox.currentIndex);
|
||||||
view_settings.extruder_opacities = UM.Preferences.getValue("layerview/extruder_opacities").split("|");
|
viewSettings.extruder_opacities = UM.Preferences.getValue("layerview/extruder_opacities").split("|");
|
||||||
view_settings.show_travel_moves = UM.Preferences.getValue("layerview/show_travel_moves");
|
viewSettings.show_travel_moves = UM.Preferences.getValue("layerview/show_travel_moves");
|
||||||
view_settings.show_helpers = UM.Preferences.getValue("layerview/show_helpers");
|
viewSettings.show_helpers = UM.Preferences.getValue("layerview/show_helpers");
|
||||||
view_settings.show_skin = UM.Preferences.getValue("layerview/show_skin");
|
viewSettings.show_skin = UM.Preferences.getValue("layerview/show_skin");
|
||||||
view_settings.show_infill = UM.Preferences.getValue("layerview/show_infill");
|
viewSettings.show_infill = UM.Preferences.getValue("layerview/show_infill");
|
||||||
view_settings.only_show_top_layers = UM.Preferences.getValue("view/only_show_top_layers");
|
viewSettings.only_show_top_layers = UM.Preferences.getValue("view/only_show_top_layers");
|
||||||
view_settings.top_layer_count = UM.Preferences.getValue("view/top_layer_count");
|
viewSettings.top_layer_count = UM.Preferences.getValue("view/top_layer_count");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,10 +210,10 @@ Item
|
||||||
model: Cura.ExtrudersModel{}
|
model: Cura.ExtrudersModel{}
|
||||||
CheckBox {
|
CheckBox {
|
||||||
id: extrudersModelCheckBox
|
id: extrudersModelCheckBox
|
||||||
checked: view_settings.extruder_opacities[index] > 0.5 || view_settings.extruder_opacities[index] == undefined || view_settings.extruder_opacities[index] == ""
|
checked: viewSettings.extruder_opacities[index] > 0.5 || viewSettings.extruder_opacities[index] == undefined || viewSettings.extruder_opacities[index] == ""
|
||||||
onClicked: {
|
onClicked: {
|
||||||
view_settings.extruder_opacities[index] = checked ? 1.0 : 0.0
|
viewSettings.extruder_opacities[index] = checked ? 1.0 : 0.0
|
||||||
UM.Preferences.setValue("layerview/extruder_opacities", view_settings.extruder_opacities.join("|"));
|
UM.Preferences.setValue("layerview/extruder_opacities", viewSettings.extruder_opacities.join("|"));
|
||||||
}
|
}
|
||||||
visible: !UM.SimulationView.compatibilityMode
|
visible: !UM.SimulationView.compatibilityMode
|
||||||
enabled: index + 1 <= 4
|
enabled: index + 1 <= 4
|
||||||
|
@ -195,7 +226,7 @@ Item
|
||||||
radius: width / 2
|
radius: width / 2
|
||||||
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: !view_settings.show_legend & !view_settings.show_gradient
|
visible: !viewSettings.show_legend & !viewSettings.show_gradient
|
||||||
}
|
}
|
||||||
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
|
||||||
|
@ -223,25 +254,25 @@ Item
|
||||||
{
|
{
|
||||||
typesLegendModel.append({
|
typesLegendModel.append({
|
||||||
label: catalog.i18nc("@label", "Show Travels"),
|
label: catalog.i18nc("@label", "Show Travels"),
|
||||||
initialValue: view_settings.show_travel_moves,
|
initialValue: viewSettings.show_travel_moves,
|
||||||
preference: "layerview/show_travel_moves",
|
preference: "layerview/show_travel_moves",
|
||||||
colorId: "layerview_move_combing"
|
colorId: "layerview_move_combing"
|
||||||
});
|
});
|
||||||
typesLegendModel.append({
|
typesLegendModel.append({
|
||||||
label: catalog.i18nc("@label", "Show Helpers"),
|
label: catalog.i18nc("@label", "Show Helpers"),
|
||||||
initialValue: view_settings.show_helpers,
|
initialValue: viewSettings.show_helpers,
|
||||||
preference: "layerview/show_helpers",
|
preference: "layerview/show_helpers",
|
||||||
colorId: "layerview_support"
|
colorId: "layerview_support"
|
||||||
});
|
});
|
||||||
typesLegendModel.append({
|
typesLegendModel.append({
|
||||||
label: catalog.i18nc("@label", "Show Shell"),
|
label: catalog.i18nc("@label", "Show Shell"),
|
||||||
initialValue: view_settings.show_skin,
|
initialValue: viewSettings.show_skin,
|
||||||
preference: "layerview/show_skin",
|
preference: "layerview/show_skin",
|
||||||
colorId: "layerview_inset_0"
|
colorId: "layerview_inset_0"
|
||||||
});
|
});
|
||||||
typesLegendModel.append({
|
typesLegendModel.append({
|
||||||
label: catalog.i18nc("@label", "Show Infill"),
|
label: catalog.i18nc("@label", "Show Infill"),
|
||||||
initialValue: view_settings.show_infill,
|
initialValue: viewSettings.show_infill,
|
||||||
preference: "layerview/show_infill",
|
preference: "layerview/show_infill",
|
||||||
colorId: "layerview_infill"
|
colorId: "layerview_infill"
|
||||||
});
|
});
|
||||||
|
@ -262,7 +293,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: view_settings.show_legend
|
visible: viewSettings.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
|
||||||
|
@ -284,7 +315,7 @@ Item
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckBox {
|
CheckBox {
|
||||||
checked: view_settings.only_show_top_layers
|
checked: viewSettings.only_show_top_layers
|
||||||
onClicked: {
|
onClicked: {
|
||||||
UM.Preferences.setValue("view/only_show_top_layers", checked ? 1.0 : 0.0);
|
UM.Preferences.setValue("view/only_show_top_layers", checked ? 1.0 : 0.0);
|
||||||
}
|
}
|
||||||
|
@ -293,7 +324,7 @@ Item
|
||||||
style: UM.Theme.styles.checkbox
|
style: UM.Theme.styles.checkbox
|
||||||
}
|
}
|
||||||
CheckBox {
|
CheckBox {
|
||||||
checked: view_settings.top_layer_count == 5
|
checked: viewSettings.top_layer_count == 5
|
||||||
onClicked: {
|
onClicked: {
|
||||||
UM.Preferences.setValue("view/top_layer_count", checked ? 5 : 1);
|
UM.Preferences.setValue("view/top_layer_count", checked ? 5 : 1);
|
||||||
}
|
}
|
||||||
|
@ -320,7 +351,7 @@ Item
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: label
|
text: label
|
||||||
visible: view_settings.show_legend
|
visible: viewSettings.show_legend
|
||||||
id: typesLegendModelLabel
|
id: typesLegendModelLabel
|
||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
@ -330,7 +361,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: view_settings.show_legend
|
visible: viewSettings.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
|
||||||
|
@ -343,7 +374,7 @@ Item
|
||||||
// Text for the minimum, maximum and units for the feedrates and layer thickness
|
// Text for the minimum, maximum and units for the feedrates and layer thickness
|
||||||
Item {
|
Item {
|
||||||
id: gradientLegend
|
id: gradientLegend
|
||||||
visible: view_settings.show_gradient
|
visible: viewSettings.show_gradient
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: UM.Theme.getSize("layerview_row").height
|
height: UM.Theme.getSize("layerview_row").height
|
||||||
anchors {
|
anchors {
|
||||||
|
@ -419,7 +450,7 @@ Item
|
||||||
Rectangle { // In QML 5.9 can be changed by LinearGradient
|
Rectangle { // In QML 5.9 can be changed by LinearGradient
|
||||||
// Invert values because then the bar is rotated 90 degrees
|
// Invert values because then the bar is rotated 90 degrees
|
||||||
id: gradient
|
id: gradient
|
||||||
visible: view_settings.show_gradient
|
visible: viewSettings.show_gradient
|
||||||
anchors.left: parent.right
|
anchors.left: parent.right
|
||||||
height: parent.width
|
height: parent.width
|
||||||
width: UM.Theme.getSize("layerview_row").height * 1.5
|
width: UM.Theme.getSize("layerview_row").height * 1.5
|
||||||
|
@ -450,6 +481,7 @@ Item
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: slidersBox
|
id: slidersBox
|
||||||
|
@ -579,7 +611,6 @@ Item
|
||||||
simulationTimer.start()
|
simulationTimer.start()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Timer
|
Timer
|
||||||
{
|
{
|
||||||
|
|
|
@ -348,6 +348,7 @@
|
||||||
|
|
||||||
"layerview_menu_size": [15, 20],
|
"layerview_menu_size": [15, 20],
|
||||||
"layerview_menu_size_material_color_mode": [15, 16],
|
"layerview_menu_size_material_color_mode": [15, 16],
|
||||||
|
"layerview_menu_size_collapsed": [15, 6],
|
||||||
"layerview_menu_size_compatibility": [22, 22.0],
|
"layerview_menu_size_compatibility": [22, 22.0],
|
||||||
"layerview_legend_size": [1.0, 1.0],
|
"layerview_legend_size": [1.0, 1.0],
|
||||||
"layerview_row": [11.0, 1.5],
|
"layerview_row": [11.0, 1.5],
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue