[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25829] trunk/blender/release/scripts: custom properties panels for most ID types.

Campbell Barton ideasman42 at gmail.com
Fri Jan 8 09:54:41 CET 2010


Revision: 25829
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25829
Author:   campbellbarton
Date:     2010-01-08 09:54:41 +0100 (Fri, 08 Jan 2010)

Log Message:
-----------
custom properties panels for most ID types. use subclassing to keep panel UI definitions minimal

Modified Paths:
--------------
    trunk/blender/release/scripts/modules/rna_prop_ui.py
    trunk/blender/release/scripts/ui/properties_data_armature.py
    trunk/blender/release/scripts/ui/properties_data_bone.py
    trunk/blender/release/scripts/ui/properties_data_camera.py
    trunk/blender/release/scripts/ui/properties_data_curve.py
    trunk/blender/release/scripts/ui/properties_data_lamp.py
    trunk/blender/release/scripts/ui/properties_data_lattice.py
    trunk/blender/release/scripts/ui/properties_data_mesh.py
    trunk/blender/release/scripts/ui/properties_data_metaball.py
    trunk/blender/release/scripts/ui/properties_material.py
    trunk/blender/release/scripts/ui/properties_object.py
    trunk/blender/release/scripts/ui/properties_particle.py
    trunk/blender/release/scripts/ui/properties_scene.py
    trunk/blender/release/scripts/ui/properties_texture.py
    trunk/blender/release/scripts/ui/properties_world.py

Modified: trunk/blender/release/scripts/modules/rna_prop_ui.py
===================================================================
--- trunk/blender/release/scripts/modules/rna_prop_ui.py	2010-01-08 06:05:42 UTC (rev 25828)
+++ trunk/blender/release/scripts/modules/rna_prop_ui.py	2010-01-08 08:54:41 UTC (rev 25829)
@@ -124,6 +124,18 @@
             assign_props(prop, val_draw, key)
 
 
+class PropertyPanel(bpy.types.Panel):
+    """
+    The subclass should have its own poll function 
+    and the variable '_context_path' MUST be set.
+    """
+    bl_label = "Custom Properties"
+    bl_default_closed = True
+
+    def draw(self, context):
+        draw(self.layout, context, self._context_path)
+
+
 from bpy.props import *
 
 
@@ -257,3 +269,4 @@
         item = eval("context.%s" % self.properties.path)
         del item[self.properties.property]
         return {'FINISHED'}
+

Modified: trunk/blender/release/scripts/ui/properties_data_armature.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_data_armature.py	2010-01-08 06:05:42 UTC (rev 25828)
+++ trunk/blender/release/scripts/ui/properties_data_armature.py	2010-01-08 08:54:41 UTC (rev 25829)
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from rna_prop_ui import PropertyPanel
 
 narrowui = 180
 
@@ -55,6 +56,10 @@
             layout.template_ID(ob, "data")
 
 
+class DATA_PT_custom_props_arm(DataButtonsPanel, PropertyPanel):
+    _context_path = "object.data"
+
+
 class DATA_PT_skeleton(DataButtonsPanel):
     bl_label = "Skeleton"
 
@@ -293,16 +298,6 @@
                 row.prop(itasc, "dampeps", text="Eps", slider=True)
 
 
-class DATA_PT_properties(DataButtonsPanel):
-    bl_label = "Properties"
-    bl_default_closed = True
-
-    def draw(self, context):
-        import rna_prop_ui
-
-        rna_prop_ui.draw(self.layout, context, "object.data")
-
-
 bpy.types.register(DATA_PT_context_arm)
 bpy.types.register(DATA_PT_skeleton)
 bpy.types.register(DATA_PT_display)
@@ -310,4 +305,5 @@
 bpy.types.register(DATA_PT_paths)
 bpy.types.register(DATA_PT_ghost)
 bpy.types.register(DATA_PT_iksolver_itasc)
-bpy.types.register(DATA_PT_properties)
+
+bpy.types.register(DATA_PT_custom_props_arm)

Modified: trunk/blender/release/scripts/ui/properties_data_bone.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_data_bone.py	2010-01-08 06:05:42 UTC (rev 25828)
+++ trunk/blender/release/scripts/ui/properties_data_bone.py	2010-01-08 08:54:41 UTC (rev 25829)
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from rna_prop_ui import PropertyPanel
 
 narrowui = 180
 
@@ -47,6 +48,17 @@
         row.prop(bone, "name", text="")
 
 
+class BONE_PT_custom_props(BoneButtonsPanel, PropertyPanel):
+
+    @property
+    def _context_path(self):
+        obj = bpy.context.object
+        if obj and obj.mode == 'POSE':
+            return "active_pose_bone"
+        else:
+            return "active_bone"
+
+
 class BONE_PT_transform(BoneButtonsPanel):
     bl_label = "Transform"
 
@@ -376,21 +388,6 @@
         col.prop(bone, "cyclic_offset")
 
 
-class BONE_PT_properties(BoneButtonsPanel):
-    bl_label = "Properties"
-    bl_default_closed = True
-
-    def draw(self, context):
-        import rna_prop_ui
-        # reload(rna_prop_ui)
-        obj = context.object
-        if obj and obj.mode == 'POSE':
-            item = "active_pose_bone"
-        else:
-            item = "active_bone"
-
-        rna_prop_ui.draw(self.layout, context, item)
-
 bpy.types.register(BONE_PT_context_bone)
 bpy.types.register(BONE_PT_transform)
 bpy.types.register(BONE_PT_transform_locks)
@@ -398,4 +395,5 @@
 bpy.types.register(BONE_PT_display)
 bpy.types.register(BONE_PT_inverse_kinematics)
 bpy.types.register(BONE_PT_deform)
-bpy.types.register(BONE_PT_properties)
+
+bpy.types.register(BONE_PT_custom_props)

Modified: trunk/blender/release/scripts/ui/properties_data_camera.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_data_camera.py	2010-01-08 06:05:42 UTC (rev 25828)
+++ trunk/blender/release/scripts/ui/properties_data_camera.py	2010-01-08 08:54:41 UTC (rev 25829)
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from rna_prop_ui import PropertyPanel
 
 narrowui = 180
 
@@ -58,6 +59,10 @@
                 layout.template_ID(space, "pin_id")
 
 
+class DATA_PT_custom_props_camera(DataButtonsPanel, PropertyPanel):
+    _context_path = "object.data"
+
+
 class DATA_PT_camera(DataButtonsPanel):
     bl_label = "Lens"
 
@@ -140,6 +145,9 @@
         sub.active = cam.show_passepartout
         sub.prop(cam, "passepartout_alpha", text="Alpha", slider=True)
 
+
 bpy.types.register(DATA_PT_context_camera)
 bpy.types.register(DATA_PT_camera)
 bpy.types.register(DATA_PT_camera_display)
+
+bpy.types.register(DATA_PT_custom_props_camera)

Modified: trunk/blender/release/scripts/ui/properties_data_curve.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_data_curve.py	2010-01-08 06:05:42 UTC (rev 25828)
+++ trunk/blender/release/scripts/ui/properties_data_curve.py	2010-01-08 08:54:41 UTC (rev 25829)
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from rna_prop_ui import PropertyPanel
 
 narrowui = 180
 
@@ -72,6 +73,10 @@
             layout.template_ID(ob, "data")
 
 
+class DATA_PT_custom_props_curve(DataButtonsPanel, PropertyPanel):
+    _context_path = "object.data"
+
+
 class DATA_PT_shape_curve(DataButtonsPanel):
     bl_label = "Shape"
 
@@ -377,6 +382,7 @@
             col.prop(box, "x", text="X")
             col.prop(box, "y", text="Y")
 
+
 bpy.types.register(DATA_PT_context_curve)
 bpy.types.register(DATA_PT_shape_curve)
 bpy.types.register(DATA_PT_geometry_curve)
@@ -385,3 +391,5 @@
 bpy.types.register(DATA_PT_font)
 bpy.types.register(DATA_PT_paragraph)
 bpy.types.register(DATA_PT_textboxes)
+
+bpy.types.register(DATA_PT_custom_props_curve)

Modified: trunk/blender/release/scripts/ui/properties_data_lamp.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_data_lamp.py	2010-01-08 06:05:42 UTC (rev 25828)
+++ trunk/blender/release/scripts/ui/properties_data_lamp.py	2010-01-08 08:54:41 UTC (rev 25829)
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from rna_prop_ui import PropertyPanel
 
 narrowui = 180
 
@@ -65,6 +66,10 @@
                 layout.template_ID(space, "pin_id")
 
 
+class DATA_PT_custom_props_lamp(DataButtonsPanel, PropertyPanel):
+    _context_path = "object.data"
+
+
 class DATA_PT_lamp(DataButtonsPanel):
     bl_label = "Lamp"
 
@@ -374,6 +379,7 @@
 
         self.layout.template_curve_mapping(lamp, "falloff_curve")
 
+
 bpy.types.register(DATA_PT_context_lamp)
 bpy.types.register(DATA_PT_preview)
 bpy.types.register(DATA_PT_lamp)
@@ -382,3 +388,5 @@
 bpy.types.register(DATA_PT_spot)
 bpy.types.register(DATA_PT_shadow)
 bpy.types.register(DATA_PT_sunsky)
+
+bpy.types.register(DATA_PT_custom_props_lamp)

Modified: trunk/blender/release/scripts/ui/properties_data_lattice.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_data_lattice.py	2010-01-08 06:05:42 UTC (rev 25828)
+++ trunk/blender/release/scripts/ui/properties_data_lattice.py	2010-01-08 08:54:41 UTC (rev 25829)
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from rna_prop_ui import PropertyPanel
 
 narrowui = 180
 
@@ -58,6 +59,10 @@
                 layout.template_ID(space, "pin_id")
 
 
+class DATA_PT_custom_props_lattice(DataButtonsPanel, PropertyPanel):
+    _context_path = "object.data"
+
+
 class DATA_PT_lattice(DataButtonsPanel):
     bl_label = "Lattice"
 
@@ -90,5 +95,8 @@
 
         layout.prop(lat, "outside")
 
+
 bpy.types.register(DATA_PT_context_lattice)
 bpy.types.register(DATA_PT_lattice)
+
+bpy.types.register(DATA_PT_custom_props_lattice)

Modified: trunk/blender/release/scripts/ui/properties_data_mesh.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_data_mesh.py	2010-01-08 06:05:42 UTC (rev 25828)
+++ trunk/blender/release/scripts/ui/properties_data_mesh.py	2010-01-08 08:54:41 UTC (rev 25829)
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from rna_prop_ui import PropertyPanel
 
 narrowui = 180
 
@@ -58,6 +59,10 @@
                 layout.template_ID(space, "pin_id")
 
 
+class DATA_PT_custom_props_mesh(DataButtonsPanel, PropertyPanel):
+    _context_path = "object.data"
+
+
 class DATA_PT_normals(DataButtonsPanel):
     bl_label = "Normals"
 
@@ -292,3 +297,6 @@
 bpy.types.register(DATA_PT_shape_keys)
 bpy.types.register(DATA_PT_uv_texture)
 bpy.types.register(DATA_PT_vertex_colors)
+
+bpy.types.register(DATA_PT_custom_props_mesh)
+

Modified: trunk/blender/release/scripts/ui/properties_data_metaball.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_data_metaball.py	2010-01-08 06:05:42 UTC (rev 25828)
+++ trunk/blender/release/scripts/ui/properties_data_metaball.py	2010-01-08 08:54:41 UTC (rev 25829)
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from rna_prop_ui import PropertyPanel
 
 narrowui = 180
 
@@ -58,6 +59,10 @@
                 layout.template_ID(space, "pin_id")
 
 
+class DATA_PT_custom_props_metaball(DataButtonsPanel, PropertyPanel):
+    _context_path = "object.data"
+
+
 class DATA_PT_metaball(DataButtonsPanel):
     bl_label = "Metaball"
 
@@ -133,3 +138,7 @@
 bpy.types.register(DATA_PT_context_metaball)
 bpy.types.register(DATA_PT_metaball)
 bpy.types.register(DATA_PT_metaball_element)
+
+bpy.types.register(DATA_PT_custom_props_metaball)
+
+

Modified: trunk/blender/release/scripts/ui/properties_material.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_material.py	2010-01-08 06:05:42 UTC (rev 25828)
+++ trunk/blender/release/scripts/ui/properties_material.py	2010-01-08 08:54:41 UTC (rev 25829)
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from rna_prop_ui import PropertyPanel
 
 narrowui = 180
 
@@ -125,6 +126,11 @@
                 layout.prop(mat, "type", text="")
 
 
+class MATERIAL_PT_custom_props(MaterialButtonsPanel, PropertyPanel):
+    COMPAT_ENGINES = {'BLENDER_RENDER'}
+    _context_path = "material"
+
+
 class MATERIAL_PT_shading(MaterialButtonsPanel):
     bl_label = "Shading"

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list