[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24603] trunk/blender/release/scripts/ modules/rna_prop_ui.py: nicer UI, allow editing of values without pressing edit for basic types

Campbell Barton ideasman42 at gmail.com
Tue Nov 17 11:30:57 CET 2009


Revision: 24603
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24603
Author:   campbellbarton
Date:     2009-11-17 11:30:54 +0100 (Tue, 17 Nov 2009)

Log Message:
-----------
nicer UI, allow editing of values without pressing edit for basic types

Modified Paths:
--------------
    trunk/blender/release/scripts/modules/rna_prop_ui.py

Modified: trunk/blender/release/scripts/modules/rna_prop_ui.py
===================================================================
--- trunk/blender/release/scripts/modules/rna_prop_ui.py	2009-11-17 10:12:35 UTC (rev 24602)
+++ trunk/blender/release/scripts/modules/rna_prop_ui.py	2009-11-17 10:30:54 UTC (rev 24603)
@@ -69,41 +69,45 @@
     
     for key, val in items:
         row = layout.row()
-        
-        try:
+        convert_to_pyobject = getattr(val, "convert_to_pyobject", None)
+        if convert_to_pyobject:
             val_draw = val = val.convert_to_pyobject()
-        except:
+            val_draw = str(val_draw)
+        else:
             if type(val)==str:
                 val_draw = '"' + val + '"'
             else:
                 val_draw = val
-        
+
         box = row.box()
         
-        
         if key == global_prop_orig and context_member == global_path:
-            split = box.split(percentage=0.7)
+            split = box.split(percentage=0.75)
             
-            col = split.row()
-            col.itemR(scene, EVIL_PROP_PROP)
-            col.itemR(scene, EVIL_PROP_VALUE)
+            row = split.row()
+            row.itemR(scene, EVIL_PROP_PROP)
+            row.itemR(scene, EVIL_PROP_VALUE)
             
-            col = split.column()
-            prop = col.itemO("wm.properties_edit_end", properties=True, text="done")
-            assign_props(prop, val, key)
+            row = split.column()
+            prop = row.itemO("wm.properties_edit_end", properties=True, text="done")
+            assign_props(prop, val_draw, key)
             
         else:
-            split = box.split(percentage=0.5)
-            col = split.column()
-            col.itemL(text="%s = %s" % (key, str(val_draw)))
+            split = box.split(percentage=0.75)
+            row = split.row()
+            row.itemL(text=key)
+            if convert_to_pyobject:
+                row.itemL(text=val_draw)
+            else:
+                row.itemR(rna_item, key, text="")
+                
             
-            col = split.column()
-            prop = col.itemO("wm.properties_edit_begin", properties=True, text="edit")
-            assign_props(prop, val, key)
+            row = split.row(align=True)
+            prop = row.itemO("wm.properties_edit_begin", properties=True, text="edit")
+            assign_props(prop, val_draw, key)
             
-            col = split.column()
-            prop = col.itemO("wm.properties_remove", properties=True, text="del")
-            assign_props(prop, val, key)
+            prop = row.itemO("wm.properties_remove", properties=True, text="", icon='ICON_ZOOMOUT')
+            assign_props(prop, val_draw, key)
     
 
 from bpy.props import *





More information about the Bf-blender-cvs mailing list