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

Martin Buerbaum martin.buerbaum at gmx.at
Wed Mar 24 17:23:21 CET 2010


Revision: 519
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-extensions&revision=519
Author:   pontiac
Date:     2010-03-24 17:23:21 +0100 (Wed, 24 Mar 2010)

Log Message:
-----------
* Version 0.1.3
* Display operator name and stored recall parameters.
* TODO: Make parameter list collapsible?

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-03-24 12:23:32 UTC (rev 518)
+++ trunk/py/scripts/addons/space_view3d_edit_object_parameters.py	2010-03-24 16:23:21 UTC (rev 519)
@@ -24,7 +24,7 @@
 bl_addon_info = {
     'name': '3D View: Edit Object Parameters',
     'author': 'Buerbaum Martin (Pontiac)',
-    'version': '0.1.2',
+    'version': '0.1.3',
     'blender': (2, 5, 3),
     'location': 'View3D > Tool Shelf > Edit Object Parameters',
     'url': 'http://wiki.blender.org/index.php/Extensions:2.5/Py/' \
@@ -57,6 +57,7 @@
 This also means that "align to view" may affect
 rotation of the new object.
 
+v0.1.3 - Display operator name and stored recall parameters.
 v0.1.2 - Changed the name of the operator(s) ('Edit object parameters')
      Added warning about mesh-deletion.
 v0.1.1 - Removed changes to 3D cursor.
@@ -96,6 +97,17 @@
     return op
 
 
+# Find operator class by bl_idname.
+# <SPACE>_OT_xxxx
+def get_operator_class_by_idname(bl_idname):
+    type = getattr(bpy.types, bl_idname, None)
+
+    if not type:
+        return None
+
+    return type
+
+
 class VIEW3D_OT_recall_object_operator(bpy.types.Operator):
     '''Recall object operator'''
     bl_idname = "view3d.recall_object_operator"
@@ -181,6 +193,56 @@
         row = layout.row()
         row.label(text="Manual changes to the mesh geometry will be lost!")
 
+        scene = context.scene
+        ob = scene.objects.active
+
+        r = ob['recall']
+
+        row = layout.row()
+
+        if "recall_op" in r:
+            op_idname = r["recall_op"]
+
+            # Find and recall operator
+            type = get_operator_class_by_idname(op_idname)
+
+            if type:
+                row.label(text="Operator:")
+
+                box = layout.column().box()
+                column = box.column()
+                row = column.row()
+
+                row.label(text=type.bl_label)
+
+                if len(r) > 1:
+                    row = layout.row()
+                    row.label(text="Properties:")
+
+                    box = layout.column().box()
+                    column = box.column()
+                    row = column.row()
+
+                    for prop_name in r:
+                        if prop_name != "recall_op":
+                            row = column.row()
+                            name = prop_name
+                            if hasattr(type, prop_name):
+                                at = getattr(type, prop_name)
+                                prop_full_name = at[1]["name"]
+                                if prop_full_name != "":
+                                    name = prop_full_name
+
+                            row.label(text=name)
+                            row.label(text=str(r[prop_name]))
+
+            else:
+                row.label(text="Could not find operator " + op_idname + "!",
+                    icon='ERROR')
+        else:
+            row.label(text="Could not find operator info.",
+                icon='ERROR')
+
 ################################
 
 




More information about the Bf-extensions-cvs mailing list