[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56595] trunk/blender/release/scripts/ startup/nodeitems_builtins.py: Added filter to the node group items callback to remove recursive node groups right from the start .

Campbell Barton ideasman42 at gmail.com
Thu May 9 04:04:17 CEST 2013


bpy.data.node_groups['%s']" % group.name
... should probably be
bpy.data.node_groups[%r]" % group.name
- to ensure chars are escaped properly.


On Thu, May 9, 2013 at 1:41 AM, Lukas Toenne
<lukas.toenne at googlemail.com> wrote:
> Revision: 56595
>           http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56595
> Author:   lukastoenne
> Date:     2013-05-08 15:41:07 +0000 (Wed, 08 May 2013)
> Log Message:
> -----------
> Added filter to the node group items callback to remove recursive node groups right from the start. These tree pointers would be polled out internally as well, but this way they don't show up in the menus in the first place.
>
> Modified Paths:
> --------------
>     trunk/blender/release/scripts/startup/nodeitems_builtins.py
>
> Modified: trunk/blender/release/scripts/startup/nodeitems_builtins.py
> ===================================================================
> --- trunk/blender/release/scripts/startup/nodeitems_builtins.py 2013-05-08 15:41:05 UTC (rev 56594)
> +++ trunk/blender/release/scripts/startup/nodeitems_builtins.py 2013-05-08 15:41:07 UTC (rev 56595)
> @@ -61,11 +61,26 @@
>      if not ntree:
>          return
>
> +    def contains_group(nodetree, group):
> +        if nodetree == group:
> +            return True
> +        else:
> +            for node in nodetree.nodes:
> +                if node.bl_idname in node_tree_group_type.values() and node.node_tree is not None:
> +                    if contains_group(node.node_tree, group):
> +                        return True
> +        return False
> +
>      for group in context.blend_data.node_groups:
> -        if group.bl_idname == ntree.bl_idname:
> -            yield NodeItem(node_tree_group_type[group.bl_idname], group.name, { "node_tree" : "bpy.data.node_groups['%s']" % group.name })
> +        if group.bl_idname != ntree.bl_idname:
> +            continue
> +        # filter out recursive groups
> +        if contains_group(ntree, group):
> +            continue
>
> +        yield NodeItem(node_tree_group_type[group.bl_idname], group.name, { "node_tree" : "bpy.data.node_groups['%s']" % group.name })
>


More information about the Bf-committers mailing list