[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 .

Lukas Tönne lukas.toenne at gmail.com
Thu May 9 10:05:38 CEST 2013


Oh thanks, nice catch, fixed in r56610.


On Thu, May 9, 2013 at 4:04 AM, Campbell Barton <ideasman42 at gmail.com>wrote:

> 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 })
> >
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>


More information about the Bf-committers mailing list