py error fix and minor changes to rna info class

This commit is contained in:
Campbell Barton 2009-12-21 23:14:16 +00:00
parent 8f3a529585
commit 5bdcb2dff2
2 changed files with 26 additions and 9 deletions

@ -20,6 +20,13 @@
import bpy
def range_str(val):
if val < -10000000: return '-inf'
if val > 10000000: return 'inf'
if type(val)==float:
return '%g' % val
else:
return str(val)
class InfoStructRNA:
global_lookup = {}
@ -43,7 +50,7 @@ class InfoStructRNA:
def build(self):
rna_type = self.bl_rna
parent_id = self.identifier
self.properties[:] = [GetInfoPropertyRNA(rna_prop, parent_id) for rna_prop in rna_type.properties.values()]
self.properties[:] = [GetInfoPropertyRNA(rna_prop, parent_id) for rna_id, rna_prop in rna_type.properties.items() if rna_id != "rna_type"]
self.functions[:] = [GetInfoFunctionRNA(rna_prop, parent_id) for rna_prop in rna_type.functions.values()]
def getNestedProperties(self, ls = None):
@ -84,12 +91,20 @@ class InfoPropertyRNA:
rna_prop = self.bl_prop
self.enum_items = []
self.min = -1
self.max = -1
self.min = getattr(rna_prop, "hard_min", -1)
self.max = getattr(rna_prop, "hard_max", -1)
self.array_length = getattr(rna_prop, "array_length", 0)
self.type = rna_prop.type.lower()
self.fixed_type = GetInfoStructRNA(rna_prop.fixed_type) # valid for pointer/collections
fixed_type = getattr(rna_prop, "fixed_type", "")
if fixed_type:
self.fixed_type = GetInfoStructRNA(fixed_type) # valid for pointer/collections
else:
self.fixed_type = None
if self.type == "enum":
self.enum_items[:] = rna_prop.items.keys()
self.srna = GetInfoStructRNA(rna_prop.srna) # valid for pointer/collections
def __repr__(self):
@ -347,9 +362,11 @@ def BuildRNAInfo():
for rna_info in InfoStructRNA.global_lookup.values():
rna_info.build()
for rna_info in InfoStructRNA.global_lookup.values():
print(rna_info)
for prop in rna_info.properties:
prop.build()
#for rna_info in InfoStructRNA.global_lookup.values():
# print(rna_info)
return InfoStructRNA.global_lookup, InfoFunctionRNA.global_lookup, InfoPropertyRNA.global_lookup

@ -87,8 +87,8 @@ class SubdivisionSet(bpy.types.Operator):
default=1, min=0, max=100, soft_min=0, soft_max=6)
def poll(self, context):
ob = context.active_object
return (ob and ob.type == 'MESH')
obs = context.selected_editable_objects
return (obs is not None)
def execute(self, context):
level = self.properties.level