[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14255] trunk/blender/source/blender:

Brecht Van Lommel brechtvanlommel at pandora.be
Wed Mar 26 21:17:50 CET 2008


Revision: 14255
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14255
Author:   blendix
Date:     2008-03-26 21:17:50 +0100 (Wed, 26 Mar 2008)

Log Message:
-----------

Fix for bug #8746: the fake user button for datablocks was not a toggle
button, while it should be.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_brush.h
    trunk/blender/source/blender/blenkernel/intern/brush.c
    trunk/blender/source/blender/src/buttons_editing.c
    trunk/blender/source/blender/src/header_image.c
    trunk/blender/source/blender/src/headerbuttons.c

Modified: trunk/blender/source/blender/blenkernel/BKE_brush.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_brush.h	2008-03-26 20:17:20 UTC (rev 14254)
+++ trunk/blender/source/blender/blenkernel/BKE_brush.h	2008-03-26 20:17:50 UTC (rev 14255)
@@ -48,7 +48,7 @@
 int brush_set_nr(struct Brush **current_brush, int nr);
 int brush_delete(struct Brush **current_brush);
 void brush_check_exists(struct Brush **brush);
-void brush_toggle_fake_user(struct Brush *brush);
+void brush_toggled_fake_user(struct Brush *brush);
 int brush_texture_set_nr(struct Brush *brush, int nr);
 int brush_texture_delete(struct Brush *brush);
 int brush_clone_image_set_nr(struct Brush *brush, int nr);

Modified: trunk/blender/source/blender/blenkernel/intern/brush.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/brush.c	2008-03-26 20:17:20 UTC (rev 14254)
+++ trunk/blender/source/blender/blenkernel/intern/brush.c	2008-03-26 20:17:50 UTC (rev 14255)
@@ -73,7 +73,8 @@
 	brush->clone.alpha= 0.5;
 
 	/* enable fake user by default */
-	brush_toggle_fake_user(brush);
+	brush->id.flag |= LIB_FAKEUSER;
+	brush_toggled_fake_user(brush);
 	
 	return brush;	
 }
@@ -95,8 +96,10 @@
 	}
 
 	/* enable fake user by default */
-	if (!(brushn->id.flag & LIB_FAKEUSER))
-		brush_toggle_fake_user(brushn);
+	if (!(brushn->id.flag & LIB_FAKEUSER)) {
+		brushn->id.flag |= LIB_FAKEUSER;
+		brush_toggled_fake_user(brushn);
+	}
 	
 	return brushn;
 }
@@ -148,8 +151,10 @@
 		new_id(0, (ID *)brush, 0);
 
 		/* enable fake user by default */
-		if (!(brush->id.flag & LIB_FAKEUSER))
-			brush_toggle_fake_user(brush);
+		if (!(brush->id.flag & LIB_FAKEUSER)) {
+			brush->id.flag |= LIB_FAKEUSER;
+			brush_toggled_fake_user(brush);
+		}
 	}
 	else if(local && lib) {
 		brushn= copy_brush(brush);
@@ -203,16 +208,14 @@
 	return 0;
 }
 
-void brush_toggle_fake_user(Brush *brush)
+void brush_toggled_fake_user(Brush *brush)
 {
 	ID *id= (ID*)brush;
 	if(id) {
 		if(id->flag & LIB_FAKEUSER) {
-			id->flag -= LIB_FAKEUSER;
+			id_us_plus(id);
+		} else {
 			id->us--;
-		} else {
-			id->flag |= LIB_FAKEUSER;
-			id_us_plus(id);
 		}
 	}
 }

Modified: trunk/blender/source/blender/src/buttons_editing.c
===================================================================
--- trunk/blender/source/blender/src/buttons_editing.c	2008-03-26 20:17:20 UTC (rev 14254)
+++ trunk/blender/source/blender/src/buttons_editing.c	2008-03-26 20:17:50 UTC (rev 14255)
@@ -5915,7 +5915,7 @@
 		}
 		break;
 	case B_BRUSHKEEPDATA:
-		brush_toggle_fake_user(settings->imapaint.brush);
+		brush_toggled_fake_user(settings->imapaint.brush);
 		allqueue(REDRAWBUTSEDIT, 0);
 		allqueue(REDRAWIMAGE, 0);
 		break;

Modified: trunk/blender/source/blender/src/header_image.c
===================================================================
--- trunk/blender/source/blender/src/header_image.c	2008-03-26 20:17:20 UTC (rev 14254)
+++ trunk/blender/source/blender/src/header_image.c	2008-03-26 20:17:50 UTC (rev 14255)
@@ -296,7 +296,7 @@
 		}
 		break;
 	case B_KEEPDATA:
-		brush_toggle_fake_user(settings->imapaint.brush);
+		brush_toggled_fake_user(settings->imapaint.brush);
 		allqueue(REDRAWIMAGE, 0);
 		allqueue(REDRAWBUTSEDIT, 0);
 		break;

Modified: trunk/blender/source/blender/src/headerbuttons.c
===================================================================
--- trunk/blender/source/blender/src/headerbuttons.c	2008-03-26 20:17:20 UTC (rev 14254)
+++ trunk/blender/source/blender/src/headerbuttons.c	2008-03-26 20:17:50 UTC (rev 14255)
@@ -384,10 +384,7 @@
 			
 		}
 		if(keepbut) {
-			if(id->flag & LIB_FAKEUSER)
-				uiDefBut(block, BUT, keepbut, "F", xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Don't save this datablock even if it has no users");  
-			else
-				uiDefBut(block, BUT, keepbut, "F", xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Saves this datablock even if it has no users");  
+			uiDefButBitS(block, TOG, LIB_FAKEUSER, keepbut, "F", xco,yco,XIC,YIC, &id->flag, 0, 0, 0, 0, "Saves this datablock even if it has no users");
 			xco+= XIC;
 		}
 	}
@@ -1649,13 +1646,11 @@
 			id= (ID *)G.saction->action;
 		}/* similar for other spacetypes ? */
 		if (id) {
-			if( id->flag & LIB_FAKEUSER) {
-				id->flag -= LIB_FAKEUSER;
-				id->us--;
-			} else {
-				id->flag |= LIB_FAKEUSER;
+			/* flag was already toggled, just need to update user count */
+			if(id->flag & LIB_FAKEUSER)
 				id->us++;
-			}
+			else
+				id->us--;
 		}
 		allqueue(REDRAWHEADERS, 0);
 





More information about the Bf-blender-cvs mailing list