From b365ea2ed62b03eb724274bef842f457ce6ac68c Mon Sep 17 00:00:00 2001 From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08> Date: Fri, 4 Jun 2010 14:27:23 +0000 Subject: [PATCH] InspectorGadget, change rendermode for MapIsos git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2338 5a81b35b-ba03-0410-adc8-b2c5c5119f08 --- .../gui/pymod/scene/color_options_widget.py | 14 ++-- .../gui/pymod/scene/render_options_widget.py | 79 +++++++++++++------ 2 files changed, 65 insertions(+), 28 deletions(-) diff --git a/modules/gui/pymod/scene/color_options_widget.py b/modules/gui/pymod/scene/color_options_widget.py index ea43ab17f..11ce3fe29 100644 --- a/modules/gui/pymod/scene/color_options_widget.py +++ b/modules/gui/pymod/scene/color_options_widget.py @@ -90,16 +90,18 @@ class ColorOptionsWidget(ComboOptionsWidget): if (not _img_present) or (not isinstance(node, gfx.MapIso)): all_img = False - if not all_entity and not all_img: - ComboOptionsWidget.setEnabled(self,False) - return - if all_img: + if all_img and (not all_entity): for w in self.img_widgets_: self.AddWidget(w[0], w[1]) - if all_entity: + elif all_entity and (not all_img): for w in self.entity_widgets_: self.AddWidget(w[0], w[1]) - + else: + ComboOptionsWidget.setEnabled(self,False) + return + + self.GetCurrentWidget().Update() + def GetText(self): return self.text_ diff --git a/modules/gui/pymod/scene/render_options_widget.py b/modules/gui/pymod/scene/render_options_widget.py index 4b61a1216..93f88e35a 100644 --- a/modules/gui/pymod/scene/render_options_widget.py +++ b/modules/gui/pymod/scene/render_options_widget.py @@ -21,6 +21,12 @@ import sys from ost import gui from ost import gfx +try: + from ost import img + _img_present=True +except ImportError: + _img_present=False + pass from PyQt4 import QtCore, QtGui from combo_options_widget import ComboOptionsWidget from custom_widget import CustomWidget @@ -50,15 +56,21 @@ class RenderOptionsWidget(ComboOptionsWidget): self.grid_layout_.addWidget(self.stacked_widget_, 1, 0, 1, 2) #Add options to menu - ComboOptionsWidget.AddWidget(self, "", EmptyMode()) - ComboOptionsWidget.AddWidget(self, gfx.RenderMode.SIMPLE, SimpleWidget(self)) - ComboOptionsWidget.AddWidget(self, gfx.RenderMode.CUSTOM, CustomWidget(self)) - ComboOptionsWidget.AddWidget(self, gfx.RenderMode.CPK, CPKWidget(self)) - ComboOptionsWidget.AddWidget(self, gfx.RenderMode.LINE_TRACE, LineTraceWidget(self)) - ComboOptionsWidget.AddWidget(self, gfx.RenderMode.TRACE, TraceWidget(self)) - ComboOptionsWidget.AddWidget(self, gfx.RenderMode.SLINE, SlineWidget(self)) - ComboOptionsWidget.AddWidget(self, gfx.RenderMode.TUBE, TubeWidget(self)) - ComboOptionsWidget.AddWidget(self, gfx.RenderMode.HSC, HSCWidget(self)) + self.entity_widgets_ = list() + self.entity_widgets_.append(["", EmptyMode()]) + self.entity_widgets_.append([gfx.RenderMode.SIMPLE, SimpleWidget()]) + self.entity_widgets_.append([gfx.RenderMode.CUSTOM, CustomWidget()]) + self.entity_widgets_.append([gfx.RenderMode.CPK, CPKWidget()]) + self.entity_widgets_.append([gfx.RenderMode.LINE_TRACE, LineTraceWidget()]) + self.entity_widgets_.append([gfx.RenderMode.TRACE, TraceWidget()]) + self.entity_widgets_.append([gfx.RenderMode.SLINE, SlineWidget()]) + self.entity_widgets_.append([gfx.RenderMode.TUBE, TubeWidget()]) + self.entity_widgets_.append([gfx.RenderMode.HSC, HSCWidget()]) + + self.img_widgets_ = list() + self.img_widgets_.append(["", EmptyMode()]) + self.img_widgets_.append([gfx.RenderMode.SIMPLE, EmptyMode("Wireframe",gfx.RenderMode.SIMPLE)]) + self.img_widgets_.append([gfx.RenderMode.FILL, EmptyMode("Fill",gfx.RenderMode.FILL)]) self.setMinimumSize(250,200) @@ -66,7 +78,7 @@ class RenderOptionsWidget(ComboOptionsWidget): scene_selection = gui.SceneSelection.Instance() for i in range(0,scene_selection.GetActiveNodeCount()): node = scene_selection.GetActiveNode(i) - if isinstance(node, gfx.Entity): + if isinstance(node, gfx.Entity) or (_img_present and isinstance(node, gfx.MapIso)): render_mode = item.GetRenderMode() if render_mode is not None: node.SetRenderMode(render_mode) @@ -94,18 +106,29 @@ class RenderOptionsWidget(ComboOptionsWidget): if hasattr(self, "keep_button_"): self.keep_button_.setEnabled(False) render_mode_valid = True + all_entity = True + all_img = True render_mode = None for i in range(0,scene_selection.GetActiveNodeCount()): - entity = scene_selection.GetActiveNode(i) - if isinstance(scene_selection.GetActiveNode(i), gfx.Entity): + node = scene_selection.GetActiveNode(i) + if not isinstance(node, gfx.Entity): + all_entity = False + if (not _img_present) or (not isinstance(node, gfx.MapIso)): + all_img = False + if isinstance(scene_selection.GetActiveNode(i), gfx.GfxObj): if render_mode is None: - render_mode = entity.GetRenderMode() - elif render_mode != entity.GetRenderMode(): + render_mode = node.GetRenderMode() + elif render_mode != node.GetRenderMode(): render_mode_valid = False - break - else: - ComboOptionsWidget.setEnabled(self,False) - return + if all_img and (not all_entity): + for w in self.img_widgets_: + self.AddWidget(w[0], w[1]) + elif all_entity and (not all_img): + for w in self.entity_widgets_: + self.AddWidget(w[0], w[1]) + else: + ComboOptionsWidget.setEnabled(self,False) + return if(render_mode_valid): ComboOptionsWidget.ChangeSelectedItem(self,render_mode) else: @@ -119,15 +142,27 @@ class RenderOptionsWidget(ComboOptionsWidget): return self.text_ class EmptyMode(QtGui.QWidget): - def __init__(self, parent=None): + def __init__(self, text="", render_mode=None, parent=None): QtGui.QLabel.__init__(self, parent) self.setMinimumSize(250,30) - + self.text = text + self.render_mode = render_mode + if(render_mode): + text_label = QtGui.QLabel(text) + font = text_label.font() + font.setBold(True) + grid = QtGui.QGridLayout() + grid.addWidget(text_label,0,0,1,1) + grid.addWidget(QtGui.QLabel("No Settings available"), 1, 0, 1, 3) + grid.setRowStretch(2,1) + self.setLayout(grid) + self.setMinimumSize(250,60) + def Update(self): True #Do Nothing def GetText(self): - return "" + return self.text def GetRenderMode(self): - return None + return self.render_mode -- GitLab