[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16576] trunk/blender/source/blender/ blenkernel/intern/group.c: Bugfix #14412

Ton Roosendaal ton at blender.org
Wed Sep 17 19:48:45 CEST 2008


Revision: 16576
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16576
Author:   ton
Date:     2008-09-17 19:47:59 +0200 (Wed, 17 Sep 2008)

Log Message:
-----------
Bugfix #14412

Outliner option 'unlink group' didn't remove its members, in case the
group members were local in file, a confusing situation happened. Now
it removes members.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/group.c

Modified: trunk/blender/source/blender/blenkernel/intern/group.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/group.c	2008-09-17 16:59:52 UTC (rev 16575)
+++ trunk/blender/source/blender/blenkernel/intern/group.c	2008-09-17 17:47:59 UTC (rev 16576)
@@ -91,6 +91,16 @@
 			ma->group= NULL;
 	}
 	for (sce= G.main->scene.first; sce; sce= sce->id.next) {
+		Base *base= sce->base.first;
+		
+		/* ensure objects are not in this group */
+		for(; base; base= base->next) {
+			if(rem_from_group(group, base->object) && find_group(base->object, NULL)==NULL) {
+				base->object->flag &= ~OB_FROMGROUP;
+				base->flag &= ~OB_FROMGROUP;
+			}
+		}			
+		
 		for(srl= sce->r.layers.first; srl; srl= srl->next) {
 			if (srl->light_override==group)
 				srl->light_override= NULL;
@@ -117,6 +127,9 @@
 				psys->part->eff_group= NULL;
 		}
 	}
+	
+	/* group stays in library, but no members */
+	free_group(group);
 	group->id.us= 0;
 }
 





More information about the Bf-blender-cvs mailing list