[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12187] trunk/blender/source/blender: == imagebrowser ==

Andrea Weikert elubie at gmx.net
Tue Oct 2 11:11:50 CEST 2007


Revision: 12187
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12187
Author:   elubie
Date:     2007-10-02 11:11:50 +0200 (Tue, 02 Oct 2007)

Log Message:
-----------
== imagebrowser ==
- activated image browser for texture databrowse (texture buttons)
- activated image browser for brush texture databrowse (+small fix of callback function)
- activated image browser for image databrowse in UV/image editor
- fixed: filter didn't work with databrowse and append/link. 
- filter buttons in header now don't appear when doing databrowse or append/link
- loading previews for textures added when linking/appending.

Modified Paths:
--------------
    trunk/blender/source/blender/blenloader/intern/readblenentry.c
    trunk/blender/source/blender/src/buttons_editing.c
    trunk/blender/source/blender/src/editimasel.c
    trunk/blender/source/blender/src/filelist.c
    trunk/blender/source/blender/src/header_image.c
    trunk/blender/source/blender/src/header_imasel.c
    trunk/blender/source/blender/src/headerbuttons.c
    trunk/blender/source/blender/src/interface_icons.c

Modified: trunk/blender/source/blender/blenloader/intern/readblenentry.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readblenentry.c	2007-10-02 07:12:48 UTC (rev 12186)
+++ trunk/blender/source/blender/blenloader/intern/readblenentry.c	2007-10-02 09:11:50 UTC (rev 12187)
@@ -233,7 +233,7 @@
 	for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead)) {
 		if (bhead->code==ofblocktype) {
 			ID *id= (ID*) (bhead+1);
-			if (GS(id->name) == ID_MA) {
+			if ( (GS(id->name) == ID_MA) || (GS(id->name) == ID_TE)) {
 				new_prv = MEM_callocN(sizeof(PreviewImage), "newpreview");
 				BLI_linklist_prepend(&previews, new_prv);
 				looking = 1;

Modified: trunk/blender/source/blender/src/buttons_editing.c
===================================================================
--- trunk/blender/source/blender/src/buttons_editing.c	2007-10-02 07:12:48 UTC (rev 12186)
+++ trunk/blender/source/blender/src/buttons_editing.c	2007-10-02 09:11:50 UTC (rev 12187)
@@ -5064,7 +5064,11 @@
 			if(G.buts->menunr==-2) {
 				MTex *mtex= brush->mtex[brush->texact];
 				ID *id= (ID*)((mtex)? mtex->tex: NULL);
-				activate_databrowse(id, ID_TE, 0, B_BTEXBROWSE, &G.buts->menunr, do_global_buttons);
+				if(G.qual & LR_CTRLKEY) {
+					activate_databrowse_imasel(id, ID_TE, 0, B_BTEXBROWSE, &G.buts->menunr, do_fpaintbuts);
+				} else {
+					activate_databrowse(id, ID_TE, 0, B_BTEXBROWSE, &G.buts->menunr, do_fpaintbuts);
+				}
 				break;
 			}
 			else if(G.buts->menunr < 0) break;

Modified: trunk/blender/source/blender/src/editimasel.c
===================================================================
--- trunk/blender/source/blender/src/editimasel.c	2007-10-02 07:12:48 UTC (rev 12186)
+++ trunk/blender/source/blender/src/editimasel.c	2007-10-02 09:11:50 UTC (rev 12187)
@@ -619,7 +619,7 @@
 			simasel->file[0] = '\0';			
 			simasel->scrollpos = 0;
 			simasel->active_file = -1;
-			scrarea_queue_winredraw(curarea);
+			scrarea_queue_redraw(curarea);
 		}
 
 		simasel->active_file = -1;
@@ -632,7 +632,7 @@
 		simasel->file[0] = '\0';
 		simasel->active_file = -1;
 		simasel->scrollpos = 0;
-		scrarea_queue_winredraw(curarea);
+		scrarea_queue_redraw(curarea);
 	}
 	else if(event== B_FS_LOAD) {
 		if(simasel->type) 
@@ -812,6 +812,7 @@
 	char str[FILE_MAXDIR+FILE_MAXFILE+12];
 	short mval[2];
 	short do_draw = 0;
+	short do_headdraw = 0;
 	int numfiles;
 	struct direntry *file;
 	float scrollstep = 0;
@@ -931,6 +932,7 @@
 						simasel->active_file = -1;
 						simasel->scrollpos = 0;
 						do_draw = 1;
+						do_headdraw = 1;
 						
 					}
 					else if (file)
@@ -972,7 +974,7 @@
 								simasel->file[0] = '\0';			
 								simasel->scrollpos = 0;
 								simasel->active_file = -1;
-								scrarea_queue_winredraw(curarea);
+								do_headdraw = 1;
 							}
 						}
 					} else {
@@ -1054,6 +1056,7 @@
 				simasel->file[0] = '\0';
 				simasel->active_file = -1;
 				simasel->scrollpos = 0;
+				do_headdraw = 1;
 			}
 			do_draw = 1;	
 			break;
@@ -1089,7 +1092,10 @@
 		/* XXX, stupid patch, curarea can become undone
 		 * because of file loading... fixme zr
 		 */
-	if(do_draw && curarea) scrarea_queue_winredraw(curarea);
+	if(curarea) {
+		if(do_draw) scrarea_queue_winredraw(curarea);
+		if(do_headdraw) scrarea_queue_headredraw(curarea);
+	}
 }
 
 

Modified: trunk/blender/source/blender/src/filelist.c
===================================================================
--- trunk/blender/source/blender/src/filelist.c	2007-10-02 07:12:48 UTC (rev 12186)
+++ trunk/blender/source/blender/src/filelist.c	2007-10-02 09:11:50 UTC (rev 12187)
@@ -265,12 +265,18 @@
 
 void BIF_filelist_filter(FileList* filelist)
 {
+	char dir[FILE_MAX], group[GROUP_MAX];
 	int num_filtered = 0;
 	int i, j;
-
+	
 	if (!filelist->filelist)
 		return;
 	
+	if ( ( (filelist->type == FILE_LOADLIB) &&  BIF_filelist_islibrary(filelist, dir, group)) 
+		|| (filelist->type == FILE_MAIN) ) {
+		filelist->filter = 0;
+	}
+
 	if (!filelist->filter) {
 		if (filelist->fidx) {
 			MEM_freeN(filelist->fidx);
@@ -912,6 +918,9 @@
 	BIF_filelist_sort(filelist, FILE_SORTALPHA);
 
 	BLI_strncpy(G.sce, filename, sizeof(filename));	// prevent G.sce to change
+
+	filelist->filter = 0;
+	BIF_filelist_filter(filelist);
 }
 
 void BIF_filelist_append_library(struct FileList *filelist, char *dir, char *file, short flag, int idcode)
@@ -1066,6 +1075,8 @@
 			qsort(firstlib, totlib, sizeof(struct direntry), compare_name);
 		}
 	}
+	filelist->filter = 0;
+	BIF_filelist_filter(filelist);
 }
 
 

Modified: trunk/blender/source/blender/src/header_image.c
===================================================================
--- trunk/blender/source/blender/src/header_image.c	2007-10-02 07:12:48 UTC (rev 12186)
+++ trunk/blender/source/blender/src/header_image.c	2007-10-02 09:11:50 UTC (rev 12187)
@@ -117,8 +117,13 @@
 
 	case B_SIMABROWSE:	
 		if(G.sima->imanr== -2) {
-			activate_databrowse((ID *)G.sima->image, ID_IM, 0, B_SIMABROWSE,
+			if(G.qual & LR_CTRLKEY) {
+				activate_databrowse_imasel((ID *)G.sima->image, ID_IM, 0, B_SIMABROWSE,
 											&G.sima->imanr, do_image_buttons);
+			} else {
+				activate_databrowse((ID *)G.sima->image, ID_IM, 0, B_SIMABROWSE,
+											&G.sima->imanr, do_image_buttons);
+			}
 			return;
 		}
 		if(G.sima->imanr < 0) break;
@@ -308,7 +313,11 @@
 			if(G.sima->menunr==-2) {
 				MTex *mtex= brush->mtex[brush->texact];
 				ID *id= (ID*)((mtex)? mtex->tex: NULL);
-				activate_databrowse(id, ID_TE, 0, B_SIMABTEXBROWSE, &G.sima->menunr, do_global_buttons);
+				if(G.qual & LR_CTRLKEY) {
+					activate_databrowse_imasel(id, ID_TE, 0, B_SIMABTEXBROWSE, &G.sima->menunr, do_image_buttons);
+				} else {
+					activate_databrowse(id, ID_TE, 0, B_SIMABTEXBROWSE, &G.sima->menunr, do_image_buttons);
+				}
 				break;
 			}
 			else if(G.sima->menunr < 0) break;

Modified: trunk/blender/source/blender/src/header_imasel.c
===================================================================
--- trunk/blender/source/blender/src/header_imasel.c	2007-10-02 07:12:48 UTC (rev 12186)
+++ trunk/blender/source/blender/src/header_imasel.c	2007-10-02 09:11:50 UTC (rev 12187)
@@ -44,8 +44,11 @@
 #endif
 
 #include "BMF_Api.h"
-#include "BIF_language.h"
 
+#include "BKE_global.h"
+#include "BKE_main.h"
+#include "BKE_utildefines.h"
+
 #include "DNA_ID.h"
 #include "DNA_screen_types.h"
 #include "DNA_space_types.h"
@@ -55,10 +58,9 @@
 #include "BIF_gl.h"
 #include "BIF_imasel.h"
 #include "BIF_interface.h"
+#include "BIF_language.h"
 #include "BIF_resources.h"
 #include "BIF_screen.h"
-#include "BKE_global.h"
-#include "BKE_main.h"
 #include "BSE_headerbuttons.h"
 
 #include "blendef.h"
@@ -102,6 +104,9 @@
 	uiBlock *block;
 	short xco, xcotitle;
 	char naam[256];
+	char dir[FILE_MAXDIR], group[32];
+	short type;
+	int do_filter = 0;
 
 	simasel= curarea->spacedata.first;
 
@@ -148,21 +153,29 @@
 	uiDefIconButBitS(block, TOG, FILE_HIDE_DOT, B_RELOADIMASELDIR, ICON_GHOST,xco+=XIC,0,XIC,YIC, &simasel->flag, 0, 0, 0, 0, "Hides dot files");		
 	uiBlockEndAlign(block);
 	xco+=20;
-		
-	uiDefIconButBitS(block, TOG, FILE_FILTER, B_FILTERIMASELDIR, ICON_SORTBYEXT,xco+=XIC,0,XIC,YIC, &simasel->flag, 0, 0, 0, 0, "Filter files");
-	if (simasel->flag & FILE_FILTER) {
-		xco+=4;
-		uiBlockBeginAlign(block);
-		uiDefIconButBitS(block, TOG, IMAGEFILE, B_FILTERIMASELDIR, ICON_IMAGE_COL,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show images");
-		uiDefIconButBitS(block, TOG, BLENDERFILE, B_FILTERIMASELDIR, ICON_BLENDER,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show .blend files");
-		uiDefIconButBitS(block, TOG, MOVIEFILE, B_FILTERIMASELDIR, ICON_SEQUENCE,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show movies");
-		uiDefIconButBitS(block, TOG, PYSCRIPTFILE, B_FILTERIMASELDIR, ICON_PYTHON,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show python scripts");
-		uiDefIconButBitS(block, TOG, FTFONTFILE, B_FILTERIMASELDIR, ICON_SYNTAX,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show fonts");
-		uiDefIconButBitS(block, TOG, SOUNDFILE, B_FILTERIMASELDIR, ICON_SOUND,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show sound files");
-		uiDefIconButBitS(block, TOG, TEXTFILE, B_FILTERIMASELDIR, ICON_TEXT,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show text files");
-		uiDefIconButBitS(block, TOG, FOLDERFILE, B_FILTERIMASELDIR, ICON_FILESEL,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show folders");
-		uiBlockEndAlign(block);
+	
+	type = simasel->type;
+	if (type == FILE_LOADLIB) {
+		do_filter = !BIF_filelist_islibrary(simasel->files, dir, group);
+	} else {
+		do_filter = (type != FILE_MAIN);
 	}
+	if ( do_filter ) {
+		uiDefIconButBitS(block, TOG, FILE_FILTER, B_FILTERIMASELDIR, ICON_SORTBYEXT,xco+=XIC,0,XIC,YIC, &simasel->flag, 0, 0, 0, 0, "Filter files");
+		if (simasel->flag & FILE_FILTER) {
+			xco+=4;
+			uiBlockBeginAlign(block);
+			uiDefIconButBitS(block, TOG, IMAGEFILE, B_FILTERIMASELDIR, ICON_IMAGE_COL,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show images");
+			uiDefIconButBitS(block, TOG, BLENDERFILE, B_FILTERIMASELDIR, ICON_BLENDER,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show .blend files");
+			uiDefIconButBitS(block, TOG, MOVIEFILE, B_FILTERIMASELDIR, ICON_SEQUENCE,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show movies");
+			uiDefIconButBitS(block, TOG, PYSCRIPTFILE, B_FILTERIMASELDIR, ICON_PYTHON,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show python scripts");
+			uiDefIconButBitS(block, TOG, FTFONTFILE, B_FILTERIMASELDIR, ICON_SYNTAX,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show fonts");
+			uiDefIconButBitS(block, TOG, SOUNDFILE, B_FILTERIMASELDIR, ICON_SOUND,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show sound files");
+			uiDefIconButBitS(block, TOG, TEXTFILE, B_FILTERIMASELDIR, ICON_TEXT,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show text files");
+			uiDefIconButBitS(block, TOG, FOLDERFILE, B_FILTERIMASELDIR, ICON_FILESEL,xco+=XIC,0,XIC,YIC, &simasel->filter, 0, 0, 0, 0, "Show folders");
+			uiBlockEndAlign(block);
+		}
+	}
 
 	uiDefButBitS(block, TOG, FILE_STRINGCODE, 0, "Relative Paths", xco+=XIC+20,0,100,YIC, &simasel->flag, 0, 0, 0, 0, "Makes sure returned paths are relative to the current .blend file");
 	xco+=90;

Modified: trunk/blender/source/blender/src/headerbuttons.c
===================================================================

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list