* Fix context.cloth, was not being set correct.
* Fix errors with context pinning, scripts should
not assume context.object to be there.
* Always show preview even if e.g. the material is not
set, to keep ID buttons from jumping while you're
using them.
__label__ = "Skeleton"
def poll(self, context):
- return (context.object.type == 'ARMATURE' or context.armature)
+ return ((context.object and context.object.type == 'ARMATURE') or context.armature)
def draw(self, context):
layout = self.layout
bpy.types.register(DATA_PT_skeleton)
bpy.types.register(DATA_PT_display)
bpy.types.register(DATA_PT_paths)
-bpy.types.register(DATA_PT_ghost)
\ No newline at end of file
+bpy.types.register(DATA_PT_ghost)
__label__ = "Lens"
def poll(self, context):
- return (context.object.type == 'CAMERA')
+ return (context.object and context.object.type == 'CAMERA')
def draw(self, context):
layout = self.layout
col.itemR(cam, "draw_size", text="Size")
bpy.types.register(DATA_PT_camera)
-bpy.types.register(DATA_PT_camera_display)
\ No newline at end of file
+bpy.types.register(DATA_PT_camera_display)
__context__ = "data"
def poll(self, context):
- return (context.object.type == 'CURVE' and context.curve)
+ return (context.object and context.object.type == 'CURVE' and context.curve)
class DATA_PT_shape_curve(DataButtonsPanel):
__idname__ = "DATA_PT_shape_curve"
__label__ = "Shape"
def poll(self, context):
- return (context.object.type == 'CURVE')
+ return (context.object and context.object.type == 'CURVE')
def draw(self, context):
layout = self.layout
bpy.types.register(DATA_PT_shape_curve)
bpy.types.register(DATA_PT_geometry)
bpy.types.register(DATA_PT_pathanim)
-bpy.types.register(DATA_PT_current_curve)
\ No newline at end of file
+bpy.types.register(DATA_PT_current_curve)
__context__ = "data"
def poll(self, context):
- return (context.object.type == 'EMPTY')
+ return (context.object and context.object.type == 'EMPTY')
class DATA_PT_empty(DataButtonsPanel):
__idname__ = "DATA_PT_empty"
layout.itemR(ob, "empty_draw_type")
layout.itemR(ob, "empty_draw_size")
-bpy.types.register(DATA_PT_empty)
\ No newline at end of file
+bpy.types.register(DATA_PT_empty)
__label__ = "Lamp"
def poll(self, context):
- return (context.object.type == 'LAMP')
+ return ((context.object and context.object.type == 'LAMP') or context.lamp)
def draw(self, context):
layout = self.layout
bpy.types.register(DATA_PT_shadow)
bpy.types.register(DATA_PT_sunsky)
bpy.types.register(DATA_PT_spot)
-bpy.types.register(DATA_PT_falloff_curve)
\ No newline at end of file
+bpy.types.register(DATA_PT_falloff_curve)
__label__ = "Lattice"
def poll(self, context):
- return (context.object.type == 'LATTICE')
+ return (context.object and context.object.type == 'LATTICE')
def draw(self, context):
layout = self.layout
row.itemR(lat, "outside")
row.itemR(lat, "shape_keys")
-bpy.types.register(DATA_PT_lattice)
\ No newline at end of file
+bpy.types.register(DATA_PT_lattice)
__label__ = "Mesh"
def poll(self, context):
- return (context.object.type == 'MESH')
+ return (context.object and context.object.type == 'MESH')
def draw(self, context):
layout = self.layout
layout.itemR(mesh, "texco_mesh")
-bpy.types.register(DATA_PT_mesh)
\ No newline at end of file
+bpy.types.register(DATA_PT_mesh)
__context__ = "data"
def poll(self, context):
- return (context.object.type == 'TEXT' and context.curve)
+ return (context.object and context.object.type == 'TEXT' and context.curve)
class DATA_PT_shape_text(DataButtonsPanel):
__idname__ = "DATA_PT_shape_text"
def poll(self, context):
ob = context.object
- return (context.object.type == 'TEXT')
+ return (context.object and context.object.type == 'TEXT')
def draw(self, context):
layout = self.layout
__idname__= "MATERIAL_PT_preview"
__label__ = "Preview"
+ def poll(self, context):
+ return (context.material or context.material_slot)
+
def draw(self, context):
layout = self.layout
mat = context.material
__label__ = "Material"
def poll(self, context):
- return (context.object != None)
+ return (context.material or context.material_slot)
def draw(self, context):
layout = self.layout
bpy.types.register(MATERIAL_PT_sss)
bpy.types.register(MATERIAL_PT_halo)
bpy.types.register(MATERIAL_PT_strand)
-bpy.types.register(MATERIAL_PT_options)
\ No newline at end of file
+bpy.types.register(MATERIAL_PT_options)
def draw_header(self, context):
layout = self.layout
- cloth = context.cloth.settings
+ cloth = context.cloth.collision_settings
layout.itemR(cloth, "enable_collision", text="")
def draw(self, context):
layout = self.layout
- cloth = context.cloth.settings
+ cloth = context.cloth.collision_settings
layout.active = cloth.enable_collision
bpy.types.register(Physic_PT_cloth)
bpy.types.register(Physic_PT_cloth_collision)
-bpy.types.register(Physic_PT_cloth_stiffness)
\ No newline at end of file
+bpy.types.register(Physic_PT_cloth_stiffness)
__idname__= "TEXTURE_PT_preview"
__label__ = "Preview"
+ def poll(self, context):
+ return (context.material or context.world or context.lamp or context.texture)
+
def draw(self, context):
layout = self.layout
tex = context.texture
__label__ = "Texture"
def poll(self, context):
- return (context.material or context.world or context.lamp)
+ return (context.material or context.world or context.lamp or context.texture)
def draw(self, context):
layout = self.layout
class WORLD_PT_preview(WorldButtonsPanel):
__label__ = "Preview"
+ def poll(self, context):
+ return (context.scene or context.world)
+
def draw(self, context):
layout = self.layout
world = context.world
bpy.types.register(WORLD_PT_ambient_occlusion)
bpy.types.register(WORLD_PT_mist)
bpy.types.register(WORLD_PT_stars)
-bpy.types.register(WORLD_PT_color_correction)
\ No newline at end of file
+bpy.types.register(WORLD_PT_color_correction)
return 1;
}
else if(CTX_data_equals(member, "cloth")) {
- set_pointer_type(path, result, &RNA_ClothModifier);
- return 1;
+ PointerRNA *ptr= get_pointer_type(path, &RNA_Object);
+
+ if(ptr && ptr->data) {
+ Object *ob= ptr->data;
+ ModifierData *md= modifiers_findByType(ob, eModifierType_Cloth);
+ CTX_data_pointer_set(result, &ob->id, &RNA_ClothModifier, md);
+ return 1;
+ }
}
else if(CTX_data_equals(member, "soft_body")) {
PointerRNA *ptr= get_pointer_type(path, &RNA_Object);