Merge branch 'fieldOfView-feature_simulation_ux_tweaks'

This commit is contained in:
Diego Prado Gesto 2017-11-22 10:19:50 +01:00
parent 1ea9379913
commit d0c1569da6
2 changed files with 183 additions and 153 deletions

View file

@ -20,7 +20,12 @@ Item
} }
} }
height: { height: {
if (viewSettings.collapsed) {
if (UM.SimulationView.compatibilityMode) { if (UM.SimulationView.compatibilityMode) {
return UM.Theme.getSize("layerview_menu_size_compatibility_collapsed").height;
}
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 +33,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 +46,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")
@ -70,9 +104,9 @@ Item
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
spacing: UM.Theme.getSize("layerview_row_spacing").height
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width anchors.rightMargin: UM.Theme.getSize("default_margin").width
spacing: UM.Theme.getSize("layerview_row_spacing").height
Label Label
{ {
@ -121,7 +155,6 @@ Item
visible: !UM.SimulationView.compatibilityMode visible: !UM.SimulationView.compatibilityMode
style: UM.Theme.styles.combobox style: UM.Theme.styles.combobox
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: 10 * screenScaleFactor
onActivated: onActivated:
{ {
@ -137,7 +170,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);
} }
} }
@ -155,12 +188,10 @@ Item
Layout.preferredWidth: UM.Theme.getSize("layerview_row").width Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
} }
Label Item
{ {
id: space2Label height: Math.floor(UM.Theme.getSize("default_margin").width / 2)
anchors.left: parent.left width: width
text: " "
font.pointSize: 0.5
} }
Connections { Connections {
@ -170,13 +201,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);
playButton.pauseSimulation(); playButton.pauseSimulation();
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");
} }
} }
@ -184,24 +215,23 @@ 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
Rectangle { Rectangle {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.right: extrudersModelCheckBox.right anchors.right: extrudersModelCheckBox.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width
width: UM.Theme.getSize("layerview_legend_size").width width: UM.Theme.getSize("layerview_legend_size").width
height: UM.Theme.getSize("layerview_legend_size").height height: UM.Theme.getSize("layerview_legend_size").height
color: model.color color: model.color
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
@ -229,25 +259,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"
}); });
@ -263,13 +293,12 @@ Item
Rectangle { Rectangle {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.right: legendModelCheckBox.right anchors.right: legendModelCheckBox.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width
width: UM.Theme.getSize("layerview_legend_size").width width: UM.Theme.getSize("layerview_legend_size").width
height: UM.Theme.getSize("layerview_legend_size").height height: UM.Theme.getSize("layerview_legend_size").height
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
@ -291,7 +320,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);
} }
@ -300,7 +329,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);
} }
@ -327,18 +356,17 @@ 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
anchors.right: typesLegendModelLabel.right anchors.right: typesLegendModelLabel.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width
width: UM.Theme.getSize("layerview_legend_size").width width: UM.Theme.getSize("layerview_legend_size").width
height: UM.Theme.getSize("layerview_legend_size").height height: UM.Theme.getSize("layerview_legend_size").height
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
@ -351,7 +379,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 {
@ -427,7 +455,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
@ -458,6 +486,7 @@ Item
} }
} }
} }
}
Item { Item {
id: slidersBox id: slidersBox
@ -474,8 +503,9 @@ Item
PathSlider { PathSlider {
id: pathSlider id: pathSlider
width: parent.width
height: UM.Theme.getSize("slider_handle").width height: UM.Theme.getSize("slider_handle").width
anchors.right: playButton.left
anchors.rightMargin: UM.Theme.getSize("default_margin").width
anchors.left: parent.left anchors.left: parent.left
visible: !UM.SimulationView.compatibilityMode visible: !UM.SimulationView.compatibilityMode
@ -510,8 +540,8 @@ Item
height: UM.Theme.getSize("layerview_menu_size").height height: UM.Theme.getSize("layerview_menu_size").height
anchors { anchors {
top: pathSlider.bottom top: !UM.SimulationView.compatibilityMode ? playButton.bottom : parent.top
topMargin: UM.Theme.getSize("slider_layerview_margin").height topMargin: !UM.SimulationView.compatibilityMode ? UM.Theme.getSize("default_margin").height : 0
right: parent.right right: parent.right
rightMargin: UM.Theme.getSize("slider_layerview_margin").width rightMargin: UM.Theme.getSize("slider_layerview_margin").width
} }
@ -548,15 +578,14 @@ Item
// Play simulation button // Play simulation button
Button { Button {
id: playButton id: playButton
implicitWidth: UM.Theme.getSize("button").width * 0.75; implicitWidth: Math.floor(UM.Theme.getSize("button").width * 0.75)
implicitHeight: UM.Theme.getSize("button").height * 0.75; implicitHeight: Math.floor(UM.Theme.getSize("button").height * 0.75)
iconSource: "./resources/simulation_resume.svg" iconSource: "./resources/simulation_resume.svg"
style: UM.Theme.styles.tool_button style: UM.Theme.styles.tool_button
visible: !UM.SimulationView.compatibilityMode visible: !UM.SimulationView.compatibilityMode
anchors { anchors {
horizontalCenter: layerSlider.horizontalCenter horizontalCenter: layerSlider.horizontalCenter
top: layerSlider.bottom verticalCenter: pathSlider.verticalCenter
topMargin: UM.Theme.getSize("slider_layerview_margin").width
} }
property var status: 0 // indicates if it's stopped (0) or playing (1) property var status: 0 // indicates if it's stopped (0) or playing (1)
@ -587,7 +616,6 @@ Item
simulationTimer.start() simulationTimer.start()
} }
} }
}
Timer Timer
{ {

View file

@ -344,11 +344,13 @@
"slider_handle": [1.0, 1.0], "slider_handle": [1.0, 1.0],
"slider_layerview_size": [1.0, 22.0], "slider_layerview_size": [1.0, 22.0],
"slider_layerview_background": [4.0, 0.0], "slider_layerview_background": [4.0, 0.0],
"slider_layerview_margin": [1.0, 1.0], "slider_layerview_margin": [1.0, 1.5],
"layerview_menu_size": [15, 19.5], "layerview_menu_size": [15, 20],
"layerview_menu_size_material_color_mode": [15, 15.5], "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_menu_size_compatibility_collapsed": [15, 3.5],
"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],
"layerview_row_spacing": [0.0, 0.5], "layerview_row_spacing": [0.0, 0.5],