Somewhat better layout, added legend

This commit is contained in:
Jack Ha 2017-01-03 09:18:26 +01:00
parent f0e0d65635
commit 55dd08eff8
3 changed files with 67 additions and 5 deletions

View file

@ -16,6 +16,7 @@ from UM.Logger import Logger
from UM.Math.Vector import Vector from UM.Math.Vector import Vector
from cura.Settings.ExtruderManager import ExtruderManager
from cura import LayerDataBuilder from cura import LayerDataBuilder
from cura import LayerDataDecorator from cura import LayerDataDecorator
from cura import LayerPolygon from cura import LayerPolygon
@ -159,11 +160,7 @@ class ProcessSlicedLayersJob(Job):
# We are done processing all the layers we got from the engine, now create a mesh out of the data # We are done processing all the layers we got from the engine, now create a mesh out of the data
# Find out colors per extruder # Find out colors per extruder
# TODO: move to a better place. Code is similar to code in ExtrudersModel global_container_stack = Application.getInstance().getGlobalContainerStack()
from cura.Settings.ExtruderManager import ExtruderManager
import UM
global_container_stack = UM.Application.getInstance().getGlobalContainerStack()
manager = ExtruderManager.getInstance() manager = ExtruderManager.getInstance()
extruders = list(manager.getMachineExtruders(global_container_stack.getId())) extruders = list(manager.getMachineExtruders(global_container_stack.getId()))
if extruders: if extruders:
@ -182,6 +179,7 @@ class ProcessSlicedLayersJob(Job):
color = colorCodeToRGBA(color_code) color = colorCodeToRGBA(color_code)
material_color_map[0, :] = color material_color_map[0, :] = color
# We have to scale the colors for compatibility mode
if bool(Preferences.getInstance().getValue("view/compatibility_mode")): if bool(Preferences.getInstance().getValue("view/compatibility_mode")):
line_type_brightness = 0.5 line_type_brightness = 0.5
else: else:

View file

@ -181,8 +181,10 @@ Item
} }
ColumnLayout { ColumnLayout {
id: view_settings
anchors.top: layer_type_combobox.bottom anchors.top: layer_type_combobox.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height anchors.topMargin: UM.Theme.getSize("default_margin").height
x: UM.Theme.getSize("default_margin").width
CheckBox { CheckBox {
checked: true checked: true
@ -243,5 +245,60 @@ Item
} }
} }
// legend
ListView {
visible: (UM.LayerView.getLayerViewType() == 1) // line type
anchors.top: view_settings.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height
//width: parent.width
//height: childrenRect.height
delegate: Row
{
Rectangle
{
id: rect
x: UM.Theme.getSize("default_margin").width
y: index * UM.Theme.getSize("section_icon").height
//width: UM.Theme.getSize("section_icon").width
//height: 0.5 * UM.Theme.getSize("section_icon").height
width: UM.Theme.getSize("setting_control").height / 2
height: UM.Theme.getSize("setting_control").height / 2
//Behavior on height { NumberAnimation { duration: 50; } }
border.width: UM.Theme.getSize("default_lining").width;
border.color: UM.Theme.getColor("slider_groove_border");
color: model.color;
}
Label
{
anchors.left: rect.right
anchors.verticalCenter: rect.verticalCenter
anchors.leftMargin: UM.Theme.getSize("default_margin").width
text: model.label
}
}
model: ListModel
{
id: legendModel
}
Component.onCompleted:
{
// see LayerPolygon
legendModel.append({ label:catalog.i18nc("@label", "Inset0"), color: "#ff0000" });
legendModel.append({ label:catalog.i18nc("@label", "InsetX"), color: "#00ff00" });
legendModel.append({ label:catalog.i18nc("@label", "Skin"), color: "#ffff00" });
legendModel.append({ label:catalog.i18nc("@label", "Support, Skirt, SupportInfill"), color: "#00ffff" });
legendModel.append({ label:catalog.i18nc("@label", "Infill"), color: "#ffbf00" });
legendModel.append({ label:catalog.i18nc("@label", "MoveCombing"), color: "#0000ff" });
legendModel.append({ label:catalog.i18nc("@label", "MoveRetraction"), color: "#8080ff" });
legendModel.append({ label:catalog.i18nc("@label", "SupportInterface"), color: "#3fbfff" });
}
}
} }
} }

View file

@ -76,6 +76,13 @@ class LayerViewProxy(QObject):
if type(active_view) == LayerView.LayerView.LayerView: if type(active_view) == LayerView.LayerView.LayerView:
active_view.setLayerViewType(layer_view_type) active_view.setLayerViewType(layer_view_type)
@pyqtProperty(bool)
def getLayerViewType(self):
active_view = self._controller.getActiveView()
if type(active_view) == LayerView.LayerView.LayerView:
return active_view.getLayerViewType()
return 0
@pyqtSlot(bool) @pyqtSlot(bool)
def setOnlyColorActiveExtruder(self, only_color_active_extruder): def setOnlyColorActiveExtruder(self, only_color_active_extruder):
active_view = self._controller.getActiveView() active_view = self._controller.getActiveView()