From ef3fbdd683a98bc660e073d2cd6fe91733ab22ac Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 11 Jan 2012 00:22:21 +0000 Subject: [PATCH] minor edits to xml presets - check 'SKIP_SAVE' property (used for active theme area which become annoying) - indent presets better --- release/scripts/modules/rna_xml.py | 28 ++++++++++++++------ source/blender/makesrna/intern/rna_userdef.c | 1 + 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/release/scripts/modules/rna_xml.py b/release/scripts/modules/rna_xml.py index 9019728c014..634c74178fa 100644 --- a/release/scripts/modules/rna_xml.py +++ b/release/scripts/modules/rna_xml.py @@ -32,7 +32,13 @@ def build_property_typemap(skip_classes): if issubclass(cls, skip_classes): continue - properties = cls.bl_rna.properties.keys() + ## to support skip-save we cant get all props + # properties = cls.bl_rna.properties.keys() + properties = [] + for prop_id, prop in cls.bl_rna.properties.items(): + if not prop.is_skip_save: + properties.append(prop_id) + properties.remove("rna_type") property_typemap[attr] = properties @@ -47,7 +53,8 @@ def rna2xml(fw=print_ln, root_node="", root_rna=None, # must be set root_rna_skip=set(), - ident_val=" ", + root_ident="", + ident_val=" ", skip_classes=(bpy.types.Operator, bpy.types.Panel, bpy.types.KeyingSet, @@ -173,10 +180,11 @@ def rna2xml(fw=print_ln, # needs re-workign to be generic if root_node: - fw("<%s>\n" % root_node) + fw("%s<%s>\n" % (root_ident, root_node)) # bpy.data if method == 'DATA': + ident = root_ident + ident_val for attr in dir(root_rna): # exceptions @@ -192,16 +200,16 @@ def rna2xml(fw=print_ln, ls = None if type(ls) == list: - fw("%s<%s>\n" % (ident_val, attr)) + fw("%s<%s>\n" % (ident, attr)) for blend_id in ls: - rna2xml_node(ident_val + ident_val, blend_id, None) + rna2xml_node(ident + ident_val, blend_id, None) fw("%s\n" % (ident_val, attr)) # any attribute elif method == 'ATTR': - rna2xml_node("", root_rna, None) + rna2xml_node(root_ident, root_rna, None) if root_node: - fw("\n" % root_node) + fw("%s\n" % (root_ident, root_node)) def xml2rna(root_xml, @@ -350,7 +358,11 @@ def xml_file_write(context, filepath, rna_map): for rna_path, xml_tag in rna_map: # xml_tag is ignored, we get this from the rna value = _get_context_val(context, rna_path) - rna2xml(fw, root_rna=value, method='ATTR') + rna2xml(fw, + root_rna=value, + method='ATTR', + root_ident=" ", + ident_val=" ") fw("\n") file.close() diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index c75bac8ef24..d19498776a0 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -1970,6 +1970,7 @@ static void rna_def_userdef_themes(BlenderRNA *brna) prop= RNA_def_property(srna, "theme_area", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "active_theme_area"); + RNA_def_property_flag(prop, PROP_SKIP_SAVE); RNA_def_property_enum_items(prop, active_theme_area); RNA_def_property_ui_text(prop, "Active Theme Area", "");