[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11849] branches/imgbrowser-elubie: NEW FEATURES:

Andrea Weikert elubie at gmx.net
Mon Aug 27 22:29:32 CEST 2007


Revision: 11849
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11849
Author:   elubie
Date:     2007-08-27 22:29:32 +0200 (Mon, 27 Aug 2007)

Log Message:
-----------
NEW FEATURES:
1. large image preview panel popup in imagebrowser
* BKEY in imagebrowser pops up panel with image currently selected in file button.

2. bookmark management
* New button in header toggles bookmark display on/off
* To add current directory to bookmarks, hit the button with the 'B' on top.
* To jump to a bookmark directory, LMB on the name (will be highlighted).
* To delete bookmark, press XKEY while bookmark is highlighted.
OTHER CHANGES:
* Cleanup of drawing
* general code cleanup
* Added missing png file for the larger folder and file type icons provided by Samir Bharadwaj (samirbharadwaj at yahoo.com)

TODO and ISSUES:
* Accented characters do not display correctly with international fonts
* Crash was reported when browsing in directory with movie files
* Bookmark management probably still needs some UI work (second scrollbar?), feedback here is welcome!

Also, please test and report issues, merging with trunk is planned soon!

Modified Paths:
--------------
    branches/imgbrowser-elubie/projectfiles_vc7/blender/src/BL_src.vcproj
    branches/imgbrowser-elubie/source/blender/blenloader/intern/readfile.c
    branches/imgbrowser-elubie/source/blender/include/BIF_filelist.h
    branches/imgbrowser-elubie/source/blender/include/BIF_fsmenu.h
    branches/imgbrowser-elubie/source/blender/include/BIF_resources.h
    branches/imgbrowser-elubie/source/blender/include/BIF_space.h
    branches/imgbrowser-elubie/source/blender/include/BSE_drawimasel.h
    branches/imgbrowser-elubie/source/blender/makesdna/DNA_space_types.h
    branches/imgbrowser-elubie/source/blender/src/drawimasel.c
    branches/imgbrowser-elubie/source/blender/src/editimasel.c
    branches/imgbrowser-elubie/source/blender/src/filelist.c
    branches/imgbrowser-elubie/source/blender/src/filesel.c
    branches/imgbrowser-elubie/source/blender/src/header_imasel.c
    branches/imgbrowser-elubie/source/blender/src/imasel.c
    branches/imgbrowser-elubie/source/blender/src/interface.c
    branches/imgbrowser-elubie/source/blender/src/prvicons.c
    branches/imgbrowser-elubie/source/blender/src/usiblender.c

Added Paths:
-----------
    branches/imgbrowser-elubie/release/datafiles/prvicons

Modified: branches/imgbrowser-elubie/projectfiles_vc7/blender/src/BL_src.vcproj
===================================================================
--- branches/imgbrowser-elubie/projectfiles_vc7/blender/src/BL_src.vcproj	2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/projectfiles_vc7/blender/src/BL_src.vcproj	2007-08-27 20:29:32 UTC (rev 11849)
@@ -338,6 +338,9 @@
 				RelativePath="..\..\..\source\blender\src\fluidsim.c">
 			</File>
 			<File
+				RelativePath="..\..\..\source\blender\src\fsmenu.c">
+			</File>
+			<File
 				RelativePath="..\..\..\source\blender\src\ghostwinlay.c">
 			</File>
 			<File

Added: branches/imgbrowser-elubie/release/datafiles/prvicons
===================================================================
(Binary files differ)


Property changes on: branches/imgbrowser-elubie/release/datafiles/prvicons
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: branches/imgbrowser-elubie/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/imgbrowser-elubie/source/blender/blenloader/intern/readfile.c	2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/blenloader/intern/readfile.c	2007-08-27 20:29:32 UTC (rev 11849)
@@ -3466,6 +3466,7 @@
 						simasel->returnfunc= NULL;
 						simasel->menup= NULL;
 						simasel->pupmenu= NULL;
+						simasel->img= NULL;
 					}
 					else if(sl->spacetype==SPACE_ACTION) {
 						SpaceAction *saction= (SpaceAction *)sl;

Modified: branches/imgbrowser-elubie/source/blender/include/BIF_filelist.h
===================================================================
--- branches/imgbrowser-elubie/source/blender/include/BIF_filelist.h	2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/include/BIF_filelist.h	2007-08-27 20:29:32 UTC (rev 11849)
@@ -43,7 +43,9 @@
 
 struct FileList *	BIF_filelist_new();
 void				BIF_filelist_init_icons();
+void				BIF_filelist_free_icons();
 struct FileList *	BIF_filelist_copy(struct FileList* filelist);
+int					BIF_filelist_find(struct FileList* filelist, char *file);
 void				BIF_filelist_free(struct FileList* filelist);
 void				BIF_filelist_freelib(struct FileList* filelist);
 void				BIF_filelist_sort(struct FileList* filelist, short sort);
@@ -60,8 +62,7 @@
 void				BIF_filelist_loadimage(struct FileList* filelist, int index);
 struct ImBuf *		BIF_filelist_getimage(struct FileList* filelist, int index);
 
-void				BIF_filelist_readdir(struct FileList* filelist, const char* dir);
-void				BIF_filelist_refresh(struct FileList* filelist);
+void				BIF_filelist_readdir(struct FileList* filelist);
 
 int					BIF_filelist_empty(struct FileList* filelist);
 void				BIF_filelist_parent(struct FileList* filelist);

Modified: branches/imgbrowser-elubie/source/blender/include/BIF_fsmenu.h
===================================================================
--- branches/imgbrowser-elubie/source/blender/include/BIF_fsmenu.h	2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/include/BIF_fsmenu.h	2007-08-27 20:29:32 UTC (rev 11849)
@@ -55,17 +55,20 @@
 	/** Append a seperator to the FSMenu, inserts always follow the
 	 * last seperator.
 	 */
-void	fsmenu_append_seperator	(void);
+void	fsmenu_append_separator	(void);
 
 	/** Inserts a new fsmenu entry with the given @a path.
 	 * Duplicate entries are not added.
 	 * @param sorted Should entry be inserted in sorted order?
 	 */
-void	fsmenu_insert_entry		(char *path, int sorted);
+void	fsmenu_insert_entry		(char *path, int sorted, short save);
 
 	/** Removes the fsmenu entry at the given @a index. */
 void	fsmenu_remove_entry		(int index);
 
+	/** saves the 'favourites' to the specified file */
+void	fsmenu_write_file(const char *filename);
+
 	/** Free's all the memory associated with the fsmenu */
 void	fsmenu_free				(void);
 

Modified: branches/imgbrowser-elubie/source/blender/include/BIF_resources.h
===================================================================
--- branches/imgbrowser-elubie/source/blender/include/BIF_resources.h	2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/include/BIF_resources.h	2007-08-27 20:29:32 UTC (rev 11849)
@@ -164,7 +164,7 @@
 	ICON_FACESEL_DEHLT,
 	ICON_FACESEL_HLT,
 	ICON_EDIT_DEHLT,
-	ICON_BLANK19,
+	ICON_BOOKMARKS,
 	ICON_BLANK20,
 	ICON_BLANK21,
 	ICON_BLANK22,

Modified: branches/imgbrowser-elubie/source/blender/include/BIF_space.h
===================================================================
--- branches/imgbrowser-elubie/source/blender/include/BIF_space.h	2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/include/BIF_space.h	2007-08-27 20:29:32 UTC (rev 11849)
@@ -75,6 +75,9 @@
 /* sequence handler codes */
 #define SEQ_HANDLER_PROPERTIES	60
 
+/* imasel handler codes */
+#define IMASEL_HANDLER_IMAGE	70
+
 /* theme codes */
 #define B_ADD_THEME 	3301
 #define B_DEL_THEME 	3302

Modified: branches/imgbrowser-elubie/source/blender/include/BSE_drawimasel.h
===================================================================
--- branches/imgbrowser-elubie/source/blender/include/BSE_drawimasel.h	2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/include/BSE_drawimasel.h	2007-08-27 20:29:32 UTC (rev 11849)
@@ -33,11 +33,28 @@
 #ifndef BSE_DRAWIMASEL_H
 #define BSE_DRAWIMASEL_H
 
+
+/* button events */
+#define B_FS_FILENAME	1
+#define B_FS_DIRNAME	2
+#define B_FS_DIR_MENU	3
+#define B_FS_PARDIR	4
+#define B_FS_LOAD	5
+#define B_FS_CANCEL	6
+#define B_FS_LIBNAME	7
+#define B_FS_BOOKMARK	8
+
+/* ui geometry */
+#define IMASEL_BUTTONS_HEIGHT 60
+#define TILE_BORDER_X 8
+#define TILE_BORDER_Y 8
+
 struct ScrArea;
 struct SpaceImaSel;
 
 void drawimaselspace(struct ScrArea *sa, void *spacedata);   
 void calc_imasel_rcts(SpaceImaSel *simasel, int winx, int winy);
+void do_imasel_buttonevents(short event, SpaceImaSel *simasel);
 
 #endif  /*  BSE_DRAWIMASEL_H */
 

Modified: branches/imgbrowser-elubie/source/blender/makesdna/DNA_space_types.h
===================================================================
--- branches/imgbrowser-elubie/source/blender/makesdna/DNA_space_types.h	2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/makesdna/DNA_space_types.h	2007-08-27 20:29:32 UTC (rev 11849)
@@ -363,19 +363,22 @@
 	int numtilesy;
 
 	int selstate;
-	float scrollpos;
-	float scrollheight;
-	float scrollarea;
 
+	struct rcti viewrect;
+	struct rcti bookmarkrect;
+
+	float scrollpos; /* current position of scrollhandle */
+	float scrollheight; /* height of the scrollhandle */
+	float scrollarea; /* scroll region, scrollpos is from 0 to scrollarea */
+
 	float aspect;
 	unsigned short retval;		/* event */
 
 	short ipotype;
 	
 	short filter;
-	short pad;
-	short pad1;
-	short pad2;
+	short active_bookmark;
+	short pad, pad1;
 
 	/* view settings */
 	short prv_w;
@@ -389,6 +392,8 @@
 	void *arg1, *arg2;
 	short *menup;	/* pointer to menu result or ID browsing */
 	char *pupmenu;	/* optional menu in header */
+
+	struct ImBuf *img;
 } SpaceImaSel;
 
 
@@ -409,7 +414,7 @@
 #define FILE_MAX			240
 
 /* filesel types */
-#define FILE_UNIX			7
+#define FILE_UNIX			8
 #define FILE_BLENDER		8
 #define FILE_SPECIAL		9
 
@@ -427,6 +432,7 @@
 #define FILE_ATCURSOR		64
 #define FILE_SYNCPOSE		128
 #define FILE_FILTER			256
+#define FILE_BOOKMARKS		512
 
 /* sfile->sort */
 #define FILE_SORTALPHA		0

Modified: branches/imgbrowser-elubie/source/blender/src/drawimasel.c
===================================================================
--- branches/imgbrowser-elubie/source/blender/src/drawimasel.c	2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/src/drawimasel.c	2007-08-27 20:29:32 UTC (rev 11849)
@@ -52,6 +52,7 @@
 #include "DNA_screen_types.h"
 #include "DNA_space_types.h"
 #include "DNA_scene_types.h"
+#include "DNA_userdef_types.h"
 #include "DNA_object_types.h"
 #include "DNA_material_types.h"
 
@@ -64,7 +65,7 @@
 #include "BKE_global.h"
 #include "BKE_library.h"
 #include "BKE_icons.h"
-
+#include "BKE_utildefines.h"
 #include "BIF_filelist.h"
 
 #include "BIF_gl.h"
@@ -98,22 +99,67 @@
 
 #include "interface.h"	/* urm...  for rasterpos_safe, roundbox */
 
-#define FONTSIZE 20
+#define BUTTONWIDTH 20
+#define BOOKMARKWIDTH_MAX 240
 
 void calc_imasel_rcts(SpaceImaSel *simasel, int winx, int winy)
 {	
 	int width = (int)20.0f*simasel->aspect;
+	int numtiles;
+	int numfiles = 0;
+	int tilewidth = simasel->prv_w + TILE_BORDER_X*4;
+	int tileheight = simasel->prv_h + TILE_BORDER_Y*4 + U.fontsize;
 
-	simasel->v2d.vert.xmax= winx- 10;
-	simasel->v2d.vert.xmin= winx- width -10;
-	simasel->v2d.vert.ymin= 10;
-	simasel->v2d.vert.ymax= winy-10-60;
+	// complete area of the space
+	simasel->v2d.mask.xmin= simasel->v2d.mask.ymin = 0;
+	simasel->v2d.mask.xmax= winx;
+	simasel->v2d.mask.ymax= winy;
+
+	// vertical scroll bar
+	simasel->v2d.vert= simasel->v2d.mask;
+	simasel->v2d.vert.xmax -= TILE_BORDER_X;
+	simasel->v2d.vert.xmin= simasel->v2d.vert.xmax- width - TILE_BORDER_X;
+	simasel->v2d.vert.ymax -= IMASEL_BUTTONS_HEIGHT + TILE_BORDER_Y + 1;
+	simasel->v2d.vert.ymin += TILE_BORDER_Y + 1;
+	// simasel->v2d.mask.xmax= simasel->v2d.vert.xmin;
 	
-	simasel->v2d.mask.xmin= 10;
-	simasel->v2d.mask.xmax= simasel->v2d.vert.xmin-10;
+	if (simasel->flag & FILE_BOOKMARKS) {
+		int bmwidth = (simasel->v2d.vert.xmin - simasel->v2d.mask.xmin)/4.0f;
+		if (bmwidth > BOOKMARKWIDTH_MAX) bmwidth = BOOKMARKWIDTH_MAX;
 
-	simasel->v2d.mask.ymin= simasel->v2d.vert.ymin;
-	simasel->v2d.mask.ymax= simasel->v2d.vert.ymax;
+		simasel->bookmarkrect.xmin = simasel->v2d.mask.xmin + TILE_BORDER_X;
+		simasel->bookmarkrect.xmax = simasel->v2d.mask.xmin + bmwidth - TILE_BORDER_X;
+		simasel->bookmarkrect.ymax = simasel->v2d.mask.ymax - IMASEL_BUTTONS_HEIGHT - TILE_BORDER_Y;	
+		simasel->bookmarkrect.ymin = simasel->v2d.mask.ymin + TILE_BORDER_Y;
+
+		simasel->viewrect.xmin = simasel->bookmarkrect.xmax + TILE_BORDER_X;
+		simasel->viewrect.xmax = simasel->v2d.vert.xmin - TILE_BORDER_X;
+		simasel->viewrect.ymax = simasel->v2d.mask.ymax - IMASEL_BUTTONS_HEIGHT - TILE_BORDER_Y;	
+		simasel->viewrect.ymin = simasel->v2d.mask.ymin + TILE_BORDER_Y;	
+	} else {
+		simasel->viewrect.xmin = simasel->v2d.mask.xmin + TILE_BORDER_X;
+		simasel->viewrect.xmax = simasel->v2d.vert.xmin - TILE_BORDER_X;

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list