[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [580] trunk/py/scripts/addons/ space_view3d_edit_object_parameters.py: * Version 0.1.4

Martin Buerbaum martin.buerbaum at gmx.at
Thu Apr 15 10:18:04 CEST 2010


Revision: 580
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-extensions&revision=580
Author:   pontiac
Date:     2010-04-15 10:18:04 +0200 (Thu, 15 Apr 2010)

Log Message:
-----------
* Version 0.1.4
* Recall data is now stored as ob['recall'] = {'op': op_idname, 'args': op_args}

Modified Paths:
--------------
    trunk/py/scripts/addons/space_view3d_edit_object_parameters.py

Modified: trunk/py/scripts/addons/space_view3d_edit_object_parameters.py
===================================================================
--- trunk/py/scripts/addons/space_view3d_edit_object_parameters.py	2010-04-14 14:22:03 UTC (rev 579)
+++ trunk/py/scripts/addons/space_view3d_edit_object_parameters.py	2010-04-15 08:18:04 UTC (rev 580)
@@ -27,7 +27,9 @@
     'version': '0.1.3',
     'blender': (2, 5, 3),
     'location': 'View3D > Tool Shelf > Edit Object Parameters',
-    'description': 're-call an object menu that was created with a Add Mesh operator',
+    'description': 'Re-call an object menu that was created' \
+        ' with an Add Mesh operator. This operator must have stored'\
+        ' the recall data though.',
     'url': 'http://wiki.blender.org/index.php/Extensions:2.5/Py/' \
         'Scripts/3D_interaction/Edit_Object_Parameters',
     'category': '3D View'}
@@ -125,11 +127,12 @@
             and ob.items()):
 
             if 'recall' in ob:
-                r = ob['recall'].convert_to_pyobject()
+                recall_props = ob['recall'].convert_to_pyobject()
 
                 # Check if an operator string was defined.
-                if "recall_op" in r:
-                    op_idname = r["recall_op"]
+                if 'op' in recall_props:
+                    op_idname = recall_props['op']
+                    op_args = recall_props['args']
 
                     print("Recalling operator: " + op_idname)
 
@@ -137,11 +140,8 @@
                     op = get_operator_by_idname(op_idname)
                     if op:
                         # Prepare the stored data as arguments for the op.
-                        args = dict([(k[0], k[1]) for k in r.items()])
+                        args = dict([(k[0], k[1]) for k in op_args.items()])
 
-                        # We need to remove the "recall_op" string.
-                        del args["recall_op"]
-
                         # Execute the operator with the unpacked parameters.
                         op(**args)
 
@@ -150,7 +150,7 @@
                         return {'CANCELLED'}
 
                 else:
-                    print("No operator found in recall data!")
+                    print("No operator prop found in recall data!")
                     return {'CANCELLED'}
 
             else:
@@ -197,35 +197,35 @@
         scene = context.scene
         ob = scene.objects.active
 
-        r = ob['recall']
+        if ob:
+            row = layout.row()
 
-        row = layout.row()
+            recall_props = ob['recall']
+            if 'op' in recall_props:
+                op_idname = recall_props['op']
+                op_args = recall_props['args']
 
-        if "recall_op" in r:
-            op_idname = r["recall_op"]
+                # Find and recall operator
+                type = get_operator_class_by_idname(op_idname)
 
-            # Find and recall operator
-            type = get_operator_class_by_idname(op_idname)
+                if type:
+                    row.label(text="Operator:")
 
-            if type:
-                row.label(text="Operator:")
+                    box = layout.column().box()
+                    column = box.column()
+                    row = column.row()
 
-                box = layout.column().box()
-                column = box.column()
-                row = column.row()
+                    row.label(text=type.bl_label)
 
-                row.label(text=type.bl_label)
+                    if op_args:
+                        row = layout.row()
+                        row.label(text="Properties:")
 
-                if len(r) > 1:
-                    row = layout.row()
-                    row.label(text="Properties:")
+                        box = layout.column().box()
+                        column = box.column()
+                        row = column.row()
 
-                    box = layout.column().box()
-                    column = box.column()
-                    row = column.row()
-
-                    for prop_name in r:
-                        if prop_name != "recall_op":
+                        for prop_name, prop_val in op_args.items():
                             row = column.row()
                             name = prop_name
                             if hasattr(type, prop_name):
@@ -235,14 +235,15 @@
                                     name = prop_full_name
 
                             row.label(text=name)
-                            row.label(text=str(r[prop_name]))
+                            row.label(text=str(prop_val))
 
+                else:
+                    row.label(text="Could not find operator "
+                        + op_idname + "!",
+                        icon='ERROR')
             else:
-                row.label(text="Could not find operator " + op_idname + "!",
+                row.label(text="Could not find operatorID in object.",
                     icon='ERROR')
-        else:
-            row.label(text="Could not find operator info.",
-                icon='ERROR')
 
 ################################
 




More information about the Bf-extensions-cvs mailing list