From 5bdcb2dff27e5c52c33728d09152178120009e0c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 21 Dec 2009 23:14:16 +0000 Subject: [PATCH] py error fix and minor changes to rna info class --- release/scripts/modules/rna_info.py | 31 ++++++++++++++++++++++------- release/scripts/op/object.py | 4 ++-- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/release/scripts/modules/rna_info.py b/release/scripts/modules/rna_info.py index 8e1d16a46cd..1de750a4ff2 100644 --- a/release/scripts/modules/rna_info.py +++ b/release/scripts/modules/rna_info.py @@ -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 diff --git a/release/scripts/op/object.py b/release/scripts/op/object.py index 6a7b735e04b..2ecd7b31b34 100644 --- a/release/scripts/op/object.py +++ b/release/scripts/op/object.py @@ -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