[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