From 6c19bc1c16c15329539c9275581c80842f516cb1 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 8 Feb 2017 11:08:59 +0100 Subject: [PATCH] Only show legend in color: line_type --- plugins/LayerView/LayerView.py | 15 +++++++++++++-- plugins/LayerView/LayerView.qml | 11 +++++++++-- plugins/LayerView/LayerViewProxy.py | 12 ++++++++++++ 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index 468fc01ec3..6217ebdad2 100644 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -36,6 +36,10 @@ import os.path ## View used to display g-code paths. class LayerView(View): + # Must match LayerView.qml + LAYER_VIEW_TYPE_MATERIAL_TYPE = 0 + LAYER_VIEW_TYPE_LINE_TYPE = 1 + def __init__(self): super().__init__() @@ -260,6 +264,12 @@ class LayerView(View): def endRendering(self): pass + def enableLegend(self): + Application.getInstance().setViewLegendItems(self._getLegendItems()) + + def disableLegend(self): + Application.getInstance().setViewLegendItems([]) + def event(self, event): modifiers = QApplication.keyboardModifiers() ctrl_is_active = modifiers == Qt.ControlModifier @@ -292,7 +302,8 @@ class LayerView(View): self._old_composite_shader = self._composite_pass.getCompositeShader() self._composite_pass.setCompositeShader(self._layerview_composite_shader) - Application.getInstance().setViewLegendItems(self._getLegendItems()) + if self.getLayerViewType() == self.LAYER_VIEW_TYPE_LINE_TYPE: + self.enableLegend() elif event.type == Event.ViewDeactivateEvent: self._wireprint_warning_message.hide() @@ -303,7 +314,7 @@ class LayerView(View): self._composite_pass.setLayerBindings(self._old_layer_bindings) self._composite_pass.setCompositeShader(self._old_composite_shader) - Application.getInstance().setViewLegendItems([]) + self.disableLegend() def _onGlobalStackChanged(self): if self._global_container_stack: diff --git a/plugins/LayerView/LayerView.qml b/plugins/LayerView/LayerView.qml index ee109b7f04..c2b2fb3559 100644 --- a/plugins/LayerView/LayerView.qml +++ b/plugins/LayerView/LayerView.qml @@ -158,7 +158,7 @@ Item border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") - ListModel + ListModel // matches LayerView.py { id: layerViewTypes ListElement { @@ -179,7 +179,14 @@ Item model: layerViewTypes visible: !UM.LayerView.compatibilityMode onActivated: { - UM.LayerView.setLayerViewType(layerViewTypes.get(index).type_id); + var type_id = layerViewTypes.get(index).type_id; + UM.LayerView.setLayerViewType(type_id); + if (type_id == 1) { + // Line type + UM.LayerView.enableLegend(); + } else { + UM.LayerView.disableLegend(); + } } } diff --git a/plugins/LayerView/LayerViewProxy.py b/plugins/LayerView/LayerViewProxy.py index 7eb4cc65da..d386b53d01 100644 --- a/plugins/LayerView/LayerViewProxy.py +++ b/plugins/LayerView/LayerViewProxy.py @@ -129,6 +129,18 @@ class LayerViewProxy(QObject): return active_view.getExtruderCount() 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): self.activityChanged.emit()