From 5765f167854acba36bcbc8bb375ae9c576166129 Mon Sep 17 00:00:00 2001
From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Tue, 9 Mar 2010 09:31:51 +0000
Subject: [PATCH] Inspector Gadget: - Added keep button to render modes - Fixed
 update in gradient editor widget

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@1793 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 .../gui/pymod/scene/combo_options_widget.py    |  7 +------
 .../gui/pymod/scene/gradient_editor_widget.py  |  2 +-
 .../gui/pymod/scene/render_options_widget.py   | 18 ++++++++++++++++--
 3 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/modules/gui/pymod/scene/combo_options_widget.py b/modules/gui/pymod/scene/combo_options_widget.py
index 251861d6a..dea16f037 100644
--- a/modules/gui/pymod/scene/combo_options_widget.py
+++ b/modules/gui/pymod/scene/combo_options_widget.py
@@ -48,9 +48,6 @@ class ComboOptionsWidget(QtGui.QWidget):
     QtCore.QObject.connect(self.combo_box_, QtCore.SIGNAL("activated(int)"), self.__UpdateView)
     
     self.setEnabled(False)
-    
-    #Entity
-    self.entities_ = None
        
     self.Update()
     
@@ -58,10 +55,8 @@ class ComboOptionsWidget(QtGui.QWidget):
     """Updates the ComboOptionsWidget and the active widget of the show area.
     
      This method calls the Update method of the active widget. 
-     If no entity is set, the ComboOptionsWidget will be disabled
     """
-    if hasattr(self, "entities_") and isinstance(self.entities_, list):
-      self.__GetCurrentPair()[1].Update()
+    self.__GetCurrentPair()[1].Update()
     
   def AddWidget(self, ident, widget):
     """Adds a Widget to this Options Widget.
diff --git a/modules/gui/pymod/scene/gradient_editor_widget.py b/modules/gui/pymod/scene/gradient_editor_widget.py
index 2653f22f5..220a4d236 100644
--- a/modules/gui/pymod/scene/gradient_editor_widget.py
+++ b/modules/gui/pymod/scene/gradient_editor_widget.py
@@ -59,7 +59,7 @@ class GradientEditor(QtGui.QWidget):
     grid.addWidget(self.gradient_preset_, 5, 0, 1, 1)
     self.setLayout(grid)
     
-    QtCore.QObject.connect(self.prop_combo_box_, QtCore.SIGNAL("currentIndexChanged(int)"), self.ChangeColor)
+    QtCore.QObject.connect(self.prop_combo_box_, QtCore.SIGNAL("currentIndexChanged(int)"), self.Update)
     QtCore.QObject.connect(self.gradient_edit_, QtCore.SIGNAL("gradientUpdated"), self.Update)
     QtCore.QObject.connect(self.gradient_preset_, QtCore.SIGNAL("gradientSelected"), self.gradient_edit_.LoadGradient)
     
diff --git a/modules/gui/pymod/scene/render_options_widget.py b/modules/gui/pymod/scene/render_options_widget.py
index e7476e5c0..4b61a1216 100644
--- a/modules/gui/pymod/scene/render_options_widget.py
+++ b/modules/gui/pymod/scene/render_options_widget.py
@@ -39,6 +39,16 @@ class RenderOptionsWidget(ComboOptionsWidget):
     #Title
     self.text_ = "Render Options"
     
+    self.keep_action_ = QtGui.QAction("K",self)
+    self.keep_action_.setCheckable(True);
+    self.keep_action_.setChecked(False)
+    self.keep_action_.setToolTip("Keep rendermodes and add current")
+    self.keep_button_ = QtGui.QToolButton(self)
+    self.keep_button_.setDefaultAction(self.keep_action_)
+    
+    self.grid_layout_.addWidget(self.keep_button_, 0, 1, 1, 1)
+    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))
@@ -59,7 +69,7 @@ class RenderOptionsWidget(ComboOptionsWidget):
       if isinstance(node, gfx.Entity):
         render_mode = item.GetRenderMode()
         if render_mode is not None:
-          node.SetRenderMode(render_mode)
+          node.SetRenderMode(render_mode)     
     
     if(scene_selection.GetActiveViewCount() > 0):
       entity = scene_selection.GetViewEntity()
@@ -67,18 +77,22 @@ class RenderOptionsWidget(ComboOptionsWidget):
         view = scene_selection.GetActiveView(i)
         render_mode = item.GetRenderMode()
         if render_mode is not None:
-          entity.SetRenderMode(item.GetRenderMode(),view,False)
+          entity.SetRenderMode(item.GetRenderMode(),view,self.keep_action_.isChecked())
         
     item.Update()
     self.DoResize()
   
   def Update(self):
+    if hasattr(self, "keep_button_"):
+      self.keep_button_.setEnabled(True)
     scene_selection = gui.SceneSelection.Instance()
     if scene_selection.GetActiveNodeCount() == 0 and scene_selection.GetActiveViewCount() == 0:
       ComboOptionsWidget.setEnabled(self,False)
       return
     
     if scene_selection.GetActiveNodeCount() > 0 :
+      if hasattr(self, "keep_button_"):
+        self.keep_button_.setEnabled(False)
       render_mode_valid = True
       render_mode = None
       for i in range(0,scene_selection.GetActiveNodeCount()):
-- 
GitLab