mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-31 18:46:02 +08:00
Merge branch 'master' of github.com:Ultimaker/Cura
This commit is contained in:
commit
059b31b25a
2
cura/BuildVolume.py
Normal file → Executable file
2
cura/BuildVolume.py
Normal file → Executable file
@ -385,7 +385,7 @@ class BuildVolume(SceneNode):
|
|||||||
self.setPosition(Vector(0, -self._raft_thickness, 0), SceneNode.TransformSpace.World)
|
self.setPosition(Vector(0, -self._raft_thickness, 0), SceneNode.TransformSpace.World)
|
||||||
self.raftThicknessChanged.emit()
|
self.raftThicknessChanged.emit()
|
||||||
|
|
||||||
def _updateExtraZClearance(self):
|
def _updateExtraZClearance(self) -> None:
|
||||||
extra_z = 0.0
|
extra_z = 0.0
|
||||||
extruders = ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())
|
extruders = ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())
|
||||||
use_extruders = False
|
use_extruders = False
|
||||||
|
@ -366,11 +366,6 @@ class CuraApplication(QtApplication):
|
|||||||
|
|
||||||
showPrintMonitor = pyqtSignal(bool, arguments = ["show"])
|
showPrintMonitor = pyqtSignal(bool, arguments = ["show"])
|
||||||
|
|
||||||
def setViewLegendItems(self, items):
|
|
||||||
self.viewLegendItemsChanged.emit(items)
|
|
||||||
|
|
||||||
viewLegendItemsChanged = pyqtSignal("QVariantList", arguments = ["items"])
|
|
||||||
|
|
||||||
## Cura has multiple locations where instance containers need to be saved, so we need to handle this differently.
|
## Cura has multiple locations where instance containers need to be saved, so we need to handle this differently.
|
||||||
#
|
#
|
||||||
# Note that the AutoSave plugin also calls this method.
|
# Note that the AutoSave plugin also calls this method.
|
||||||
|
@ -97,11 +97,11 @@ class LayerPass(RenderPass):
|
|||||||
# Create a new batch that is not range-limited
|
# Create a new batch that is not range-limited
|
||||||
batch = RenderBatch(self._layer_shader, type = RenderBatch.RenderType.Solid)
|
batch = RenderBatch(self._layer_shader, type = RenderBatch.RenderType.Solid)
|
||||||
|
|
||||||
if self._layer_view._current_layer_mesh:
|
if self._layer_view.getCurrentLayerMesh():
|
||||||
batch.addItem(node.getWorldTransformation(), self._layer_view._current_layer_mesh)
|
batch.addItem(node.getWorldTransformation(), self._layer_view.getCurrentLayerMesh())
|
||||||
|
|
||||||
if self._layer_view._current_layer_jumps:
|
if self._layer_view.getCurrentLayerJumps():
|
||||||
batch.addItem(node.getWorldTransformation(), self._layer_view._current_layer_jumps)
|
batch.addItem(node.getWorldTransformation(), self._layer_view.getCurrentLayerJumps())
|
||||||
|
|
||||||
if len(batch.items) > 0:
|
if len(batch.items) > 0:
|
||||||
batch.render(self._scene.getActiveCamera())
|
batch.render(self._scene.getActiveCamera())
|
||||||
|
56
plugins/LayerView/LayerView.py
Normal file → Executable file
56
plugins/LayerView/LayerView.py
Normal file → Executable file
@ -67,16 +67,14 @@ class LayerView(View):
|
|||||||
|
|
||||||
self._resetSettings()
|
self._resetSettings()
|
||||||
self._legend_items = None
|
self._legend_items = None
|
||||||
|
self._show_travel_moves = False
|
||||||
|
|
||||||
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("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_helpers", True)
|
Preferences.getInstance().addPreference("layerview/show_helpers", True)
|
||||||
@ -196,6 +194,7 @@ class LayerView(View):
|
|||||||
# \param extruder_nr 0..3
|
# \param extruder_nr 0..3
|
||||||
# \param opacity 0.0 .. 1.0
|
# \param opacity 0.0 .. 1.0
|
||||||
def setExtruderOpacity(self, extruder_nr, opacity):
|
def setExtruderOpacity(self, extruder_nr, opacity):
|
||||||
|
if 0 <= extruder_nr <= 3:
|
||||||
self._extruder_opacity[extruder_nr] = opacity
|
self._extruder_opacity[extruder_nr] = opacity
|
||||||
self.currentLayerNumChanged.emit()
|
self.currentLayerNumChanged.emit()
|
||||||
|
|
||||||
@ -278,12 +277,6 @@ class LayerView(View):
|
|||||||
def endRendering(self):
|
def endRendering(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def enableLegend(self):
|
|
||||||
Application.getInstance().setViewLegendItems(self._getLegendItems())
|
|
||||||
|
|
||||||
def disableLegend(self):
|
|
||||||
Application.getInstance().setViewLegendItems([])
|
|
||||||
|
|
||||||
def event(self, event):
|
def event(self, event):
|
||||||
modifiers = QApplication.keyboardModifiers()
|
modifiers = QApplication.keyboardModifiers()
|
||||||
ctrl_is_active = modifiers == Qt.ControlModifier
|
ctrl_is_active = modifiers == Qt.ControlModifier
|
||||||
@ -316,9 +309,6 @@ class LayerView(View):
|
|||||||
self._old_composite_shader = self._composite_pass.getCompositeShader()
|
self._old_composite_shader = self._composite_pass.getCompositeShader()
|
||||||
self._composite_pass.setCompositeShader(self._layerview_composite_shader)
|
self._composite_pass.setCompositeShader(self._layerview_composite_shader)
|
||||||
|
|
||||||
if self.getLayerViewType() == self.LAYER_VIEW_TYPE_LINE_TYPE or self._compatibility_mode:
|
|
||||||
self.enableLegend()
|
|
||||||
|
|
||||||
elif event.type == Event.ViewDeactivateEvent:
|
elif event.type == Event.ViewDeactivateEvent:
|
||||||
self._wireprint_warning_message.hide()
|
self._wireprint_warning_message.hide()
|
||||||
Application.getInstance().globalContainerStackChanged.disconnect(self._onGlobalStackChanged)
|
Application.getInstance().globalContainerStackChanged.disconnect(self._onGlobalStackChanged)
|
||||||
@ -328,7 +318,11 @@ class LayerView(View):
|
|||||||
self._composite_pass.setLayerBindings(self._old_layer_bindings)
|
self._composite_pass.setLayerBindings(self._old_layer_bindings)
|
||||||
self._composite_pass.setCompositeShader(self._old_composite_shader)
|
self._composite_pass.setCompositeShader(self._old_composite_shader)
|
||||||
|
|
||||||
self.disableLegend()
|
def getCurrentLayerMesh(self):
|
||||||
|
return self._current_layer_mesh
|
||||||
|
|
||||||
|
def getCurrentLayerJumps(self):
|
||||||
|
return self._current_layer_jumps
|
||||||
|
|
||||||
def _onGlobalStackChanged(self):
|
def _onGlobalStackChanged(self):
|
||||||
if self._global_container_stack:
|
if self._global_container_stack:
|
||||||
@ -370,6 +364,7 @@ class LayerView(View):
|
|||||||
return
|
return
|
||||||
self.resetLayerData() # Reset the layer data only when job is done. Doing it now prevents "blinking" data.
|
self.resetLayerData() # Reset the layer data only when job is done. Doing it now prevents "blinking" data.
|
||||||
self._current_layer_mesh = job.getResult().get("layers")
|
self._current_layer_mesh = job.getResult().get("layers")
|
||||||
|
if self._show_travel_moves:
|
||||||
self._current_layer_jumps = job.getResult().get("jumps")
|
self._current_layer_jumps = job.getResult().get("jumps")
|
||||||
self._controller.getScene().sceneChanged.emit(self._controller.getScene().getRoot())
|
self._controller.getScene().sceneChanged.emit(self._controller.getScene().getRoot())
|
||||||
|
|
||||||
@ -383,10 +378,12 @@ 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")))
|
for extruder_nr, extruder_opacity in enumerate(Preferences.getInstance().getValue("layerview/extruder_opacities").split("|")):
|
||||||
self.setExtruderOpacity(1, float(Preferences.getInstance().getValue("layerview/extruder1_opacity")))
|
try:
|
||||||
self.setExtruderOpacity(2, float(Preferences.getInstance().getValue("layerview/extruder2_opacity")))
|
opacity = float(extruder_opacity)
|
||||||
self.setExtruderOpacity(3, float(Preferences.getInstance().getValue("layerview/extruder3_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.setShowHelpers(bool(Preferences.getInstance().getValue("layerview/show_helpers")))
|
self.setShowHelpers(bool(Preferences.getInstance().getValue("layerview/show_helpers")))
|
||||||
@ -402,10 +399,7 @@ class LayerView(View):
|
|||||||
"view/only_show_top_layers",
|
"view/only_show_top_layers",
|
||||||
"view/force_layer_view_compatibility_mode",
|
"view/force_layer_view_compatibility_mode",
|
||||||
"layerview/layer_view_type",
|
"layerview/layer_view_type",
|
||||||
"layerview/extruder0_opacity",
|
"layerview/extruder_opacities",
|
||||||
"layerview/extruder1_opacity",
|
|
||||||
"layerview/extruder2_opacity",
|
|
||||||
"layerview/extruder3_opacity",
|
|
||||||
"layerview/show_travel_moves",
|
"layerview/show_travel_moves",
|
||||||
"layerview/show_helpers",
|
"layerview/show_helpers",
|
||||||
"layerview/show_skin",
|
"layerview/show_skin",
|
||||||
@ -415,24 +409,6 @@ class LayerView(View):
|
|||||||
|
|
||||||
self._updateWithPreferences()
|
self._updateWithPreferences()
|
||||||
|
|
||||||
def _getLegendItems(self):
|
|
||||||
if self._legend_items is None:
|
|
||||||
theme = Application.getInstance().getTheme()
|
|
||||||
self._legend_items = [
|
|
||||||
{"color": theme.getColor("layerview_inset_0").name(), "title": catalog.i18nc("@label:layerview polygon type", "Outer Wall")}, # Inset0Type
|
|
||||||
{"color": theme.getColor("layerview_inset_x").name(), "title": catalog.i18nc("@label:layerview polygon type", "Inner Wall")}, # InsetXType
|
|
||||||
{"color": theme.getColor("layerview_skin").name(), "title": catalog.i18nc("@label:layerview polygon type", "Top / Bottom")}, # SkinType
|
|
||||||
{"color": theme.getColor("layerview_infill").name(), "title": catalog.i18nc("@label:layerview polygon type", "Infill")}, # InfillType
|
|
||||||
{"color": theme.getColor("layerview_support").name(), "title": catalog.i18nc("@label:layerview polygon type", "Support Skin")}, # SupportType
|
|
||||||
{"color": theme.getColor("layerview_support_infill").name(), "title": catalog.i18nc("@label:layerview polygon type", "Support Infill")}, # SupportInfillType
|
|
||||||
{"color": theme.getColor("layerview_support_interface").name(), "title": catalog.i18nc("@label:layerview polygon type", "Support Interface")}, # SupportInterfaceType
|
|
||||||
{"color": theme.getColor("layerview_skirt").name(), "title": catalog.i18nc("@label:layerview polygon type", "Build Plate Adhesion")}, # SkirtType
|
|
||||||
{"color": theme.getColor("layerview_move_combing").name(), "title": catalog.i18nc("@label:layerview polygon type", "Travel Move")}, # MoveCombingType
|
|
||||||
{"color": theme.getColor("layerview_move_retraction").name(), "title": catalog.i18nc("@label:layerview polygon type", "Retraction Move")}, # MoveRetractionType
|
|
||||||
#{"color": theme.getColor("layerview_none").name(), "title": catalog.i18nc("@label:layerview polygon type", "Unknown")} # NoneType
|
|
||||||
]
|
|
||||||
return self._legend_items
|
|
||||||
|
|
||||||
|
|
||||||
class _CreateTopLayersJob(Job):
|
class _CreateTopLayersJob(Job):
|
||||||
def __init__(self, scene, layer_number, solid_layers):
|
def __init__(self, scene, layer_number, solid_layers):
|
||||||
|
@ -10,22 +10,338 @@ import UM 1.0 as UM
|
|||||||
|
|
||||||
Item
|
Item
|
||||||
{
|
{
|
||||||
width: UM.Theme.getSize("button").width
|
id: base
|
||||||
height: UM.Theme.getSize("slider_layerview_size").height
|
width: {
|
||||||
|
if (UM.LayerView.compatibilityMode) {
|
||||||
|
return UM.Theme.getSize("layerview_menu_size_compatibility").width;
|
||||||
|
} else {
|
||||||
|
return UM.Theme.getSize("layerview_menu_size").width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
height: {
|
||||||
|
if (UM.LayerView.compatibilityMode) {
|
||||||
|
return UM.Theme.getSize("layerview_menu_size_compatibility").height;
|
||||||
|
} else {
|
||||||
|
return UM.Theme.getSize("layerview_menu_size").height + UM.LayerView.extruderCount * (UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("layerview_row_spacing").height)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: layerViewMenu
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.top: parent.top
|
||||||
|
width: parent.width
|
||||||
|
height: parent.height
|
||||||
|
z: slider.z - 1
|
||||||
|
color: UM.Theme.getColor("tool_panel_background")
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
id: view_settings
|
||||||
|
|
||||||
|
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_helpers: UM.Preferences.getValue("layerview/show_helpers")
|
||||||
|
property bool show_skin: UM.Preferences.getValue("layerview/show_skin")
|
||||||
|
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
|
||||||
|
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")
|
||||||
|
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
|
spacing: UM.Theme.getSize("layerview_row_spacing").height
|
||||||
|
|
||||||
|
Label
|
||||||
|
{
|
||||||
|
id: layersLabel
|
||||||
|
anchors.left: parent.left
|
||||||
|
text: catalog.i18nc("@label","View Mode: Layers")
|
||||||
|
font.bold: true
|
||||||
|
}
|
||||||
|
|
||||||
|
Label
|
||||||
|
{
|
||||||
|
id: spaceLabel
|
||||||
|
anchors.left: parent.left
|
||||||
|
text: " "
|
||||||
|
font.pointSize: 0.5
|
||||||
|
}
|
||||||
|
|
||||||
|
Label
|
||||||
|
{
|
||||||
|
id: layerViewTypesLabel
|
||||||
|
anchors.left: parent.left
|
||||||
|
text: catalog.i18nc("@label","Color scheme")
|
||||||
|
visible: !UM.LayerView.compatibilityMode
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
ListModel // matches LayerView.py
|
||||||
|
{
|
||||||
|
id: layerViewTypes
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted:
|
||||||
|
{
|
||||||
|
layerViewTypes.append({
|
||||||
|
text: catalog.i18nc("@label:listbox", "Material Color"),
|
||||||
|
type_id: 0
|
||||||
|
})
|
||||||
|
layerViewTypes.append({
|
||||||
|
text: catalog.i18nc("@label:listbox", "Line Type"),
|
||||||
|
type_id: 1 // these ids match the switching in the shader
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
ComboBox
|
||||||
|
{
|
||||||
|
id: layerTypeCombobox
|
||||||
|
anchors.left: parent.left
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
|
||||||
|
model: layerViewTypes
|
||||||
|
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: {
|
||||||
|
// 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.
|
||||||
|
function updateLegend(type_id) {
|
||||||
|
if (UM.LayerView.compatibilityMode || (type_id == 1)) {
|
||||||
|
// Line type
|
||||||
|
view_settings.show_legend = true;
|
||||||
|
} else {
|
||||||
|
view_settings.show_legend = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Label
|
||||||
|
{
|
||||||
|
id: compatibilityModeLabel
|
||||||
|
anchors.left: parent.left
|
||||||
|
text: catalog.i18nc("@label","Compatibility Mode")
|
||||||
|
visible: UM.LayerView.compatibilityMode
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
|
||||||
|
Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
|
||||||
|
}
|
||||||
|
|
||||||
|
Label
|
||||||
|
{
|
||||||
|
id: space2Label
|
||||||
|
anchors.left: parent.left
|
||||||
|
text: " "
|
||||||
|
font.pointSize: 0.5
|
||||||
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: UM.Preferences
|
||||||
|
onPreferenceChanged:
|
||||||
|
{
|
||||||
|
layerTypeCombobox.layer_view_type = UM.Preferences.getValue("layerview/layer_view_type");
|
||||||
|
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_helpers = UM.Preferences.getValue("layerview/show_helpers");
|
||||||
|
view_settings.show_skin = UM.Preferences.getValue("layerview/show_skin");
|
||||||
|
view_settings.show_infill = UM.Preferences.getValue("layerview/show_infill");
|
||||||
|
view_settings.only_show_top_layers = UM.Preferences.getValue("view/only_show_top_layers");
|
||||||
|
view_settings.top_layer_count = UM.Preferences.getValue("view/top_layer_count");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Repeater {
|
||||||
|
model: UM.LayerView.extruderCount
|
||||||
|
CheckBox {
|
||||||
|
checked: view_settings.extruder_opacities[index] > 0.5 || view_settings.extruder_opacities[index] == undefined || view_settings.extruder_opacities[index] == ""
|
||||||
|
onClicked: {
|
||||||
|
view_settings.extruder_opacities[index] = checked ? 1.0 : 0.0
|
||||||
|
UM.Preferences.setValue("layerview/extruder_opacities", view_settings.extruder_opacities.join("|"));
|
||||||
|
}
|
||||||
|
text: catalog.i18nc("@label", "Extruder %1").arg(index + 1)
|
||||||
|
visible: !UM.LayerView.compatibilityMode
|
||||||
|
enabled: index + 1 <= 4
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
|
||||||
|
Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckBox {
|
||||||
|
checked: view_settings.show_travel_moves
|
||||||
|
onClicked: {
|
||||||
|
UM.Preferences.setValue("layerview/show_travel_moves", checked);
|
||||||
|
}
|
||||||
|
text: catalog.i18nc("@label", "Show Travels")
|
||||||
|
Rectangle {
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: 2
|
||||||
|
anchors.right: parent.right
|
||||||
|
width: UM.Theme.getSize("layerview_legend_size").width
|
||||||
|
height: UM.Theme.getSize("layerview_legend_size").height
|
||||||
|
color: UM.Theme.getColor("layerview_move_combing")
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
|
border.color: UM.Theme.getColor("lining")
|
||||||
|
visible: view_settings.show_legend
|
||||||
|
}
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
|
||||||
|
Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
|
||||||
|
}
|
||||||
|
CheckBox {
|
||||||
|
checked: view_settings.show_helpers
|
||||||
|
onClicked: {
|
||||||
|
UM.Preferences.setValue("layerview/show_helpers", checked);
|
||||||
|
}
|
||||||
|
text: catalog.i18nc("@label", "Show Helpers")
|
||||||
|
Rectangle {
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: 2
|
||||||
|
anchors.right: parent.right
|
||||||
|
width: UM.Theme.getSize("layerview_legend_size").width
|
||||||
|
height: UM.Theme.getSize("layerview_legend_size").height
|
||||||
|
color: UM.Theme.getColor("layerview_support")
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
|
border.color: UM.Theme.getColor("lining")
|
||||||
|
visible: view_settings.show_legend
|
||||||
|
}
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
|
||||||
|
Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
|
||||||
|
}
|
||||||
|
CheckBox {
|
||||||
|
checked: view_settings.show_skin
|
||||||
|
onClicked: {
|
||||||
|
UM.Preferences.setValue("layerview/show_skin", checked);
|
||||||
|
}
|
||||||
|
text: catalog.i18nc("@label", "Show Shell")
|
||||||
|
Rectangle {
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: 2
|
||||||
|
anchors.right: parent.right
|
||||||
|
width: UM.Theme.getSize("layerview_legend_size").width
|
||||||
|
height: UM.Theme.getSize("layerview_legend_size").height
|
||||||
|
color: UM.Theme.getColor("layerview_inset_0")
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
|
border.color: UM.Theme.getColor("lining")
|
||||||
|
visible: view_settings.show_legend
|
||||||
|
}
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
|
||||||
|
Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
|
||||||
|
}
|
||||||
|
CheckBox {
|
||||||
|
checked: view_settings.show_infill
|
||||||
|
onClicked: {
|
||||||
|
UM.Preferences.setValue("layerview/show_infill", checked);
|
||||||
|
}
|
||||||
|
text: catalog.i18nc("@label", "Show Infill")
|
||||||
|
Rectangle {
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: 2
|
||||||
|
anchors.right: parent.right
|
||||||
|
width: UM.Theme.getSize("layerview_legend_size").width
|
||||||
|
height: UM.Theme.getSize("layerview_legend_size").height
|
||||||
|
color: UM.Theme.getColor("layerview_infill")
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
|
border.color: UM.Theme.getColor("lining")
|
||||||
|
visible: view_settings.show_legend
|
||||||
|
}
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
|
||||||
|
Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
|
||||||
|
}
|
||||||
|
CheckBox {
|
||||||
|
checked: view_settings.only_show_top_layers
|
||||||
|
onClicked: {
|
||||||
|
UM.Preferences.setValue("view/only_show_top_layers", checked ? 1.0 : 0.0);
|
||||||
|
}
|
||||||
|
text: catalog.i18nc("@label", "Only Show Top Layers")
|
||||||
|
visible: UM.LayerView.compatibilityMode
|
||||||
|
}
|
||||||
|
CheckBox {
|
||||||
|
checked: view_settings.top_layer_count == 5
|
||||||
|
onClicked: {
|
||||||
|
UM.Preferences.setValue("view/top_layer_count", checked ? 5 : 1);
|
||||||
|
}
|
||||||
|
text: catalog.i18nc("@label", "Show 5 Detailed Layers On Top")
|
||||||
|
visible: UM.LayerView.compatibilityMode
|
||||||
|
}
|
||||||
|
|
||||||
|
Label
|
||||||
|
{
|
||||||
|
id: topBottomLabel
|
||||||
|
anchors.left: parent.left
|
||||||
|
text: catalog.i18nc("@label","Top / Bottom")
|
||||||
|
Rectangle {
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: 2
|
||||||
|
anchors.right: parent.right
|
||||||
|
width: UM.Theme.getSize("layerview_legend_size").width
|
||||||
|
height: UM.Theme.getSize("layerview_legend_size").height
|
||||||
|
color: UM.Theme.getColor("layerview_skin")
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
|
border.color: UM.Theme.getColor("lining")
|
||||||
|
}
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
|
||||||
|
Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
|
||||||
|
visible: view_settings.show_legend
|
||||||
|
}
|
||||||
|
|
||||||
|
Label
|
||||||
|
{
|
||||||
|
id: innerWallLabel
|
||||||
|
anchors.left: parent.left
|
||||||
|
text: catalog.i18nc("@label","Inner Wall")
|
||||||
|
Rectangle {
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: 2
|
||||||
|
anchors.right: parent.right
|
||||||
|
width: UM.Theme.getSize("layerview_legend_size").width
|
||||||
|
height: UM.Theme.getSize("layerview_legend_size").height
|
||||||
|
color: UM.Theme.getColor("layerview_inset_x")
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
|
border.color: UM.Theme.getColor("lining")
|
||||||
|
visible: view_settings.show_legend
|
||||||
|
}
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: UM.Theme.getSize("layerview_row").height
|
||||||
|
Layout.preferredWidth: UM.Theme.getSize("layerview_row").width
|
||||||
|
visible: view_settings.show_legend
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
Slider
|
Slider
|
||||||
{
|
{
|
||||||
id: sliderMinimumLayer
|
id: sliderMinimumLayer
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
bottom: parent.bottom
|
||||||
|
right: layerViewMenu.right
|
||||||
|
margins: UM.Theme.getSize("slider_layerview_margin").height
|
||||||
|
rightMargin: UM.Theme.getSize("slider_layerview_margin").width * 0.8
|
||||||
|
}
|
||||||
width: UM.Theme.getSize("slider_layerview_size").width
|
width: UM.Theme.getSize("slider_layerview_size").width
|
||||||
height: UM.Theme.getSize("slider_layerview_size").height
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: UM.Theme.getSize("slider_layerview_margin").width * 0.2
|
|
||||||
orientation: Qt.Vertical
|
orientation: Qt.Vertical
|
||||||
minimumValue: 0;
|
minimumValue: 0;
|
||||||
maximumValue: UM.LayerView.numLayers - 1;
|
maximumValue: UM.LayerView.numLayers - 1;
|
||||||
stepSize: 1
|
stepSize: 1
|
||||||
|
|
||||||
property real pixelsPerStep: ((height - UM.Theme.getSize("slider_handle").height) / (maximumValue - minimumValue)) * stepSize;
|
property real pixelsPerStep: ((height - UM.Theme.getSize("slider_handle").height) / (maximumValue - minimumValue)) * stepSize
|
||||||
|
|
||||||
value: UM.LayerView.minimumLayer
|
value: UM.LayerView.minimumLayer
|
||||||
onValueChanged: {
|
onValueChanged: {
|
||||||
@ -41,10 +357,16 @@ Item
|
|||||||
Slider
|
Slider
|
||||||
{
|
{
|
||||||
id: slider
|
id: slider
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
bottom: parent.bottom
|
||||||
|
right: layerViewMenu.right
|
||||||
|
margins: UM.Theme.getSize("slider_layerview_margin").height
|
||||||
|
rightMargin: UM.Theme.getSize("slider_layerview_margin").width * 0.2
|
||||||
|
}
|
||||||
width: UM.Theme.getSize("slider_layerview_size").width
|
width: UM.Theme.getSize("slider_layerview_size").width
|
||||||
height: UM.Theme.getSize("slider_layerview_size").height
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: UM.Theme.getSize("slider_layerview_margin").width * 0.8
|
|
||||||
orientation: Qt.Vertical
|
orientation: Qt.Vertical
|
||||||
minimumValue: 0;
|
minimumValue: 0;
|
||||||
maximumValue: UM.LayerView.numLayers;
|
maximumValue: UM.LayerView.numLayers;
|
||||||
@ -124,188 +446,5 @@ Item
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: slider_background
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
z: slider.z - 1
|
|
||||||
width: UM.Theme.getSize("slider_layerview_background").width
|
|
||||||
height: slider.height + UM.Theme.getSize("default_margin").height * 2
|
|
||||||
color: UM.Theme.getColor("tool_panel_background");
|
|
||||||
border.width: UM.Theme.getSize("default_lining").width
|
|
||||||
border.color: UM.Theme.getColor("lining")
|
|
||||||
|
|
||||||
MouseArea {
|
|
||||||
id: sliderMouseArea
|
|
||||||
property double manualStepSize: slider.maximumValue / 11
|
|
||||||
anchors.fill: parent
|
|
||||||
onWheel: {
|
|
||||||
slider.value = wheel.angleDelta.y < 0 ? slider.value - sliderMouseArea.manualStepSize : slider.value + sliderMouseArea.manualStepSize
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
anchors.top: slider_background.bottom
|
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
|
||||||
width: UM.Theme.getSize("slider_layerview_background").width * 3
|
|
||||||
height: slider.height + UM.Theme.getSize("default_margin").height * 2
|
|
||||||
color: UM.Theme.getColor("tool_panel_background");
|
|
||||||
border.width: UM.Theme.getSize("default_lining").width
|
|
||||||
border.color: UM.Theme.getColor("lining")
|
|
||||||
|
|
||||||
ListModel // matches LayerView.py
|
|
||||||
{
|
|
||||||
id: layerViewTypes
|
|
||||||
ListElement {
|
|
||||||
text: "Material Color"
|
|
||||||
type_id: 0
|
|
||||||
}
|
|
||||||
ListElement {
|
|
||||||
text: "Line Type"
|
|
||||||
type_id: 1 // these ids match the switching in the shader
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ComboBox
|
|
||||||
{
|
|
||||||
id: layerTypeCombobox
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.left: parent.left
|
|
||||||
model: layerViewTypes
|
|
||||||
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: {
|
|
||||||
// Combobox selection
|
|
||||||
var type_id = layerViewTypes.get(index).type_id;
|
|
||||||
UM.Preferences.setValue("layerview/layer_view_type", type_id);
|
|
||||||
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
|
|
||||||
UM.LayerView.enableLegend();
|
|
||||||
} else {
|
|
||||||
UM.LayerView.disableLegend();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Label
|
|
||||||
{
|
|
||||||
id: compatibilityModeLabel
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.left: parent.left
|
|
||||||
text: catalog.i18nc("@label","Compatibility Mode")
|
|
||||||
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_helpers = UM.Preferences.getValue("layerview/show_helpers");
|
|
||||||
view_settings.show_skin = UM.Preferences.getValue("layerview/show_skin");
|
|
||||||
view_settings.show_infill = UM.Preferences.getValue("layerview/show_infill");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ColumnLayout {
|
|
||||||
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_helpers: UM.Preferences.getValue("layerview/show_helpers")
|
|
||||||
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.topMargin: UM.Theme.getSize("default_margin").height
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
|
||||||
|
|
||||||
CheckBox {
|
|
||||||
checked: view_settings.extruder0_checked
|
|
||||||
onClicked: {
|
|
||||||
UM.Preferences.setValue("layerview/extruder0_opacity", checked ? 1.0 : 0.0);
|
|
||||||
}
|
|
||||||
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 {
|
|
||||||
checked: view_settings.show_travel_moves
|
|
||||||
onClicked: {
|
|
||||||
UM.Preferences.setValue("layerview/show_travel_moves", checked);
|
|
||||||
}
|
|
||||||
text: catalog.i18nc("@label", "Show Travel Moves")
|
|
||||||
}
|
|
||||||
CheckBox {
|
|
||||||
checked: view_settings.show_helpers
|
|
||||||
onClicked: {
|
|
||||||
UM.Preferences.setValue("layerview/show_helpers", checked);
|
|
||||||
}
|
|
||||||
text: catalog.i18nc("@label", "Show Helpers")
|
|
||||||
}
|
|
||||||
CheckBox {
|
|
||||||
checked: view_settings.show_skin
|
|
||||||
onClicked: {
|
|
||||||
UM.Preferences.setValue("layerview/show_skin", checked);
|
|
||||||
}
|
|
||||||
text: catalog.i18nc("@label", "Show Shell")
|
|
||||||
}
|
|
||||||
CheckBox {
|
|
||||||
checked: view_settings.show_infill
|
|
||||||
onClicked: {
|
|
||||||
UM.Preferences.setValue("layerview/show_infill", checked);
|
|
||||||
}
|
|
||||||
text: catalog.i18nc("@label", "Show Infill")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,6 @@ class LayerViewProxy(QObject):
|
|||||||
active_view = self._controller.getActiveView()
|
active_view = self._controller.getActiveView()
|
||||||
if type(active_view) == LayerView.LayerView.LayerView:
|
if type(active_view) == LayerView.LayerView.LayerView:
|
||||||
return active_view.getMaxLayers()
|
return active_view.getMaxLayers()
|
||||||
#return 100
|
|
||||||
|
|
||||||
@pyqtProperty(int, notify = currentLayerChanged)
|
@pyqtProperty(int, notify = currentLayerChanged)
|
||||||
def currentLayer(self):
|
def currentLayer(self):
|
||||||
@ -124,18 +123,6 @@ class LayerViewProxy(QObject):
|
|||||||
return active_view.getExtruderCount()
|
return active_view.getExtruderCount()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@pyqtSlot()
|
|
||||||
def enableLegend(self):
|
|
||||||
active_view = self._controller.getActiveView()
|
|
||||||
if type(active_view) == LayerView.LayerView.LayerView:
|
|
||||||
active_view.enableLegend()
|
|
||||||
|
|
||||||
@pyqtSlot()
|
|
||||||
def disableLegend(self):
|
|
||||||
active_view = self._controller.getActiveView()
|
|
||||||
if type(active_view) == LayerView.LayerView.LayerView:
|
|
||||||
active_view.disableLegend()
|
|
||||||
|
|
||||||
def _layerActivityChanged(self):
|
def _layerActivityChanged(self):
|
||||||
self.activityChanged.emit()
|
self.activityChanged.emit()
|
||||||
|
|
||||||
|
12
resources/qml/Cura.qml
Normal file → Executable file
12
resources/qml/Cura.qml
Normal file → Executable file
@ -306,18 +306,6 @@ UM.MainWindow
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Legend
|
|
||||||
{
|
|
||||||
id: legend
|
|
||||||
anchors
|
|
||||||
{
|
|
||||||
top: parent.top
|
|
||||||
topMargin: UM.Theme.getSize("default_margin").height
|
|
||||||
right: sidebar.left
|
|
||||||
rightMargin: UM.Theme.getSize("default_margin").width
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
JobSpecs
|
JobSpecs
|
||||||
{
|
{
|
||||||
id: jobSpecs
|
id: jobSpecs
|
||||||
|
@ -1,65 +0,0 @@
|
|||||||
// Copyright (c) 2015 Ultimaker B.V.
|
|
||||||
// Cura is released under the terms of the AGPLv3 or higher.
|
|
||||||
|
|
||||||
import QtQuick 2.2
|
|
||||||
import QtQuick.Controls 1.1
|
|
||||||
import QtQuick.Controls.Styles 1.1
|
|
||||||
import QtQuick.Layouts 1.1
|
|
||||||
|
|
||||||
import UM 1.1 as UM
|
|
||||||
import Cura 1.0 as Cura
|
|
||||||
|
|
||||||
Item {
|
|
||||||
id: base
|
|
||||||
|
|
||||||
UM.I18nCatalog { id: catalog; name:"cura"}
|
|
||||||
|
|
||||||
width: childrenRect.width
|
|
||||||
height: childrenRect.height
|
|
||||||
|
|
||||||
Connections
|
|
||||||
{
|
|
||||||
target: Printer
|
|
||||||
onViewLegendItemsChanged:
|
|
||||||
{
|
|
||||||
legendItemRepeater.model = items
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Column
|
|
||||||
{
|
|
||||||
Repeater
|
|
||||||
{
|
|
||||||
id: legendItemRepeater
|
|
||||||
|
|
||||||
Item {
|
|
||||||
anchors.right: parent.right
|
|
||||||
height: childrenRect.height
|
|
||||||
width: childrenRect.width
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: swatch
|
|
||||||
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.verticalCenter: label.verticalCenter
|
|
||||||
height: UM.Theme.getSize("setting_control").height / 2
|
|
||||||
width: height
|
|
||||||
|
|
||||||
color: modelData.color
|
|
||||||
border.width: UM.Theme.getSize("default_lining").width
|
|
||||||
border.color: UM.Theme.getColor("text_subtext")
|
|
||||||
}
|
|
||||||
Label {
|
|
||||||
id: label
|
|
||||||
|
|
||||||
text: modelData.title
|
|
||||||
font: UM.Theme.getFont("small")
|
|
||||||
color: UM.Theme.getColor("text_subtext")
|
|
||||||
|
|
||||||
anchors.right: swatch.left
|
|
||||||
anchors.rightMargin: UM.Theme.getSize("default_margin").width / 2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
38
resources/qml/Preferences/GeneralPage.qml
Normal file → Executable file
38
resources/qml/Preferences/GeneralPage.qml
Normal file → Executable file
@ -259,44 +259,6 @@ UM.PreferencesPage
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UM.TooltipArea {
|
|
||||||
width: childrenRect.width;
|
|
||||||
height: childrenRect.height;
|
|
||||||
text: catalog.i18nc("@info:tooltip","Display 5 top layers in layer view or only the top-most layer. Rendering 5 layers takes longer, but may show more information.")
|
|
||||||
|
|
||||||
CheckBox
|
|
||||||
{
|
|
||||||
id: topLayerCountCheckbox
|
|
||||||
text: catalog.i18nc("@action:button","Display five top layers in layer view compatibility mode");
|
|
||||||
checked: UM.Preferences.getValue("view/top_layer_count") == 5
|
|
||||||
onClicked:
|
|
||||||
{
|
|
||||||
if(UM.Preferences.getValue("view/top_layer_count") == 5)
|
|
||||||
{
|
|
||||||
UM.Preferences.setValue("view/top_layer_count", 1)
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
UM.Preferences.setValue("view/top_layer_count", 5)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
UM.TooltipArea {
|
|
||||||
width: childrenRect.width
|
|
||||||
height: childrenRect.height
|
|
||||||
text: catalog.i18nc("@info:tooltip", "Should only the top layers be displayed in layerview?")
|
|
||||||
|
|
||||||
CheckBox
|
|
||||||
{
|
|
||||||
id: topLayersOnlyCheckbox
|
|
||||||
text: catalog.i18nc("@option:check", "Only display top layer(s) in layer view compatibility mode")
|
|
||||||
checked: boolCheck(UM.Preferences.getValue("view/only_show_top_layers"))
|
|
||||||
onCheckedChanged: UM.Preferences.setValue("view/only_show_top_layers", checked)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
UM.TooltipArea {
|
UM.TooltipArea {
|
||||||
width: childrenRect.width
|
width: childrenRect.width
|
||||||
height: childrenRect.height
|
height: childrenRect.height
|
||||||
|
@ -290,9 +290,15 @@
|
|||||||
|
|
||||||
"slider_groove": [0.5, 0.5],
|
"slider_groove": [0.5, 0.5],
|
||||||
"slider_handle": [1.5, 1.5],
|
"slider_handle": [1.5, 1.5],
|
||||||
"slider_layerview_size": [1.0, 16.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": [3.0, 3.0],
|
"slider_layerview_margin": [3.0, 1.0],
|
||||||
|
|
||||||
|
"layerview_menu_size": [16.5, 21.0],
|
||||||
|
"layerview_menu_size_compatibility": [22, 23.0],
|
||||||
|
"layerview_legend_size": [1.0, 1.0],
|
||||||
|
"layerview_row": [11.0, 1.5],
|
||||||
|
"layerview_row_spacing": [0.0, 0.5],
|
||||||
|
|
||||||
"checkbox": [2.0, 2.0],
|
"checkbox": [2.0, 2.0],
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user