From 8f1de2c9c030acd2c5e06feff267291351163e03 Mon Sep 17 00:00:00 2001
From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Mon, 22 Mar 2010 13:33:45 +0000
Subject: [PATCH] RenderOp, modified XML export format from int to a readable
 string

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@1870 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 .../gui/pymod/scene/preset_editor_widget.py   | 31 ++++++++++++-------
 modules/gui/pymod/scene/presets.xml           |  4 +--
 modules/gui/pymod/scene/render_op.py          | 10 +++---
 3 files changed, 27 insertions(+), 18 deletions(-)

diff --git a/modules/gui/pymod/scene/preset_editor_widget.py b/modules/gui/pymod/scene/preset_editor_widget.py
index 4ecd8293c..513040bfc 100644
--- a/modules/gui/pymod/scene/preset_editor_widget.py
+++ b/modules/gui/pymod/scene/preset_editor_widget.py
@@ -544,14 +544,23 @@ class RenderOpWidget(QtGui.QDialog):
     
     render_label = QtGui.QLabel("Rendermode")
     self.render_modes_ = QtGui.QComboBox()
-    self.render_modes_.addItem("Fast Bonds",QtCore.QVariant(gfx.RenderMode.SIMPLE))
-    self.render_modes_.addItem("Ball & Stick",QtCore.QVariant(gfx.RenderMode.CUSTOM))
-    self.render_modes_.addItem("Spheres",QtCore.QVariant(gfx.RenderMode.CPK))
-    self.render_modes_.addItem("Fast Trace",QtCore.QVariant(gfx.RenderMode.LINE_TRACE))
-    self.render_modes_.addItem("Trace",QtCore.QVariant(gfx.RenderMode.TRACE))
-    self.render_modes_.addItem("Fast Spline",QtCore.QVariant(gfx.RenderMode.SLINE))
-    self.render_modes_.addItem("Smooth Tube",QtCore.QVariant(gfx.RenderMode.TUBE))
-    self.render_modes_.addItem("Helix & Strand Cartoon",QtCore.QVariant(gfx.RenderMode.HSC))
+    self.render_modes_.addItem("Fast Bonds")
+    self.render_modes_.addItem("Ball & Stick")
+    self.render_modes_.addItem("Spheres")
+    self.render_modes_.addItem("Fast Trace")
+    self.render_modes_.addItem("Trace")
+    self.render_modes_.addItem("Fast Spline")
+    self.render_modes_.addItem("Smooth Tube")
+    self.render_modes_.addItem("Helix & Strand Cartoon")
+    
+    self.render_modes_list_ = [gfx.RenderMode.SIMPLE,
+                               gfx.RenderMode.CUSTOM,
+                               gfx.RenderMode.CPK,
+                               gfx.RenderMode.LINE_TRACE,
+                               gfx.RenderMode.TRACE,
+                               gfx.RenderMode.SLINE,
+                               gfx.RenderMode.TUBE,
+                               gfx.RenderMode.HSC]
     
     self.hbox_ = QtGui.QHBoxLayout()
     self.ok_button_ = QtGui.QPushButton("OK")
@@ -576,15 +585,15 @@ class RenderOpWidget(QtGui.QDialog):
     
   def GetOp(self):
     selection = str(self.selection_edit_.text())
-    render_mode = self.render_modes_.itemData(self.render_modes_.currentIndex()).toPyObject()
-    ro = RenderOp(gfx.RenderMode(render_mode), selection, self.keep_.isChecked())
+    render_mode = self.render_modes_list_[self.render_modes_.currentIndex()]
+    ro = RenderOp(render_mode, selection, self.keep_.isChecked())
     return ro
 
   def SetOp(self, ro):
     self.selection_edit_.setText(ro.GetSelection())
     found=False
     for i in range(0,self.render_modes_.count()):
-      render_mode = self.render_modes_.itemData(i).toPyObject()
+      render_mode = self.render_modes_list_[i]
       if render_mode == ro.GetRenderMode():
         self.render_modes_.setCurrentIndex(i)
         found = True
diff --git a/modules/gui/pymod/scene/presets.xml b/modules/gui/pymod/scene/presets.xml
index a8a491855..f73dbd879 100644
--- a/modules/gui/pymod/scene/presets.xml
+++ b/modules/gui/pymod/scene/presets.xml
@@ -15,8 +15,8 @@
     <ColorOp>1 rtype!=ext,helix</ColorOp>1.0 0.8 0.2 1</Op>
   </Preset>
   <Preset Name="Highlight Ligand (Carbon)" >
-   <Op Keep="0" RenderMode="11" ClassName="RenderOp" Index="0" ></Op>
-   <Op Keep="0" RenderMode="5" ClassName="RenderOp" Index="1" >ishetatm=1 and not rname==HOH</Op>
+   <Op Keep="0" RenderMode="HSC" ClassName="RenderOp" Index="0" ></Op>
+   <Op Keep="0" RenderMode="CUSTOM" ClassName="RenderOp" Index="1" >ishetatm=1 and not rname==HOH</Op>
    <Op ClassName="ByElementColorOp" Index="2" >3 </Op>
    <Op ClassName="UniformColorOp" Index="3">
     <ColorOp>2 ishetatm=1 and ele=C</ColorOp>0     1       0       1</Op>
diff --git a/modules/gui/pymod/scene/render_op.py b/modules/gui/pymod/scene/render_op.py
index d36a45308..722bf7bc8 100644
--- a/modules/gui/pymod/scene/render_op.py
+++ b/modules/gui/pymod/scene/render_op.py
@@ -26,7 +26,7 @@ class RenderOp():
   RENDERMODE_ATTRIBUTE_NAME = "RenderMode"
   KEEP_ATTRIBUTE_NAME = "Keep"
     
-  def __init__(self, render_mode, selection, keep=False):    
+  def __init__(self, render_mode, selection, keep=False):
     self.render_mode_ = render_mode
     self.selection_ = selection
     self.keep_ = keep
@@ -54,16 +54,16 @@ class RenderOp():
       entity.SetRenderMode(self.GetRenderMode(),entity.view.Select(self.GetSelection()),self.IsKept())
   
   def ToInfo(self,group):
-      group.SetAttribute(RenderOp.RENDERMODE_ATTRIBUTE_NAME, str(int(self.GetRenderMode())))
-      group.SetAttribute(RenderOp.KEEP_ATTRIBUTE_NAME, str(int(self.IsKept())))
-      group.SetTextData(str(self.GetSelection()))
+    group.SetAttribute(RenderOp.RENDERMODE_ATTRIBUTE_NAME, str(self.GetRenderMode().name))
+    group.SetAttribute(RenderOp.KEEP_ATTRIBUTE_NAME, str(int(self.IsKept())))
+    group.SetTextData(str(self.GetSelection()))
     
   @staticmethod
   def FromInfo(group):
     render_op = None
     if (group.HasAttribute(RenderOp.RENDERMODE_ATTRIBUTE_NAME) 
     and  group.HasAttribute(RenderOp.KEEP_ATTRIBUTE_NAME)):
-      render_mode = gfx.RenderMode(int(group.GetAttribute(RenderOp.RENDERMODE_ATTRIBUTE_NAME)))
+      render_mode = getattr(gfx.RenderMode, group.GetAttribute(RenderOp.RENDERMODE_ATTRIBUTE_NAME))
       keep = bool(int(group.GetAttribute(RenderOp.KEEP_ATTRIBUTE_NAME)))
       selection = group.GetTextData()
       render_op = RenderOp(render_mode,selection,keep)
-- 
GitLab