[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21244] branches/blender2.5/blender: 2. 5 filebrowser

Andrea Weikert elubie at gmx.net
Mon Jun 29 22:23:40 CEST 2009


Revision: 21244
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21244
Author:   elubie
Date:     2009-06-29 22:23:40 +0200 (Mon, 29 Jun 2009)

Log Message:
-----------
2.5 filebrowser 
* start of filebrowser RNA 
* system files, bookmarks, etc. now nicely inside panels to allow collapsing etc.
* filebrowser header now defined in space_filebrowser.py

TODO:
* button type for bookmarks etc. not final yet, at least should get centered still. Suggestions welcome here.

Modified Paths:
--------------
    branches/blender2.5/blender/projectfiles_vc9/blender/editors/ED_editors.vcproj
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    branches/blender2.5/blender/source/blender/editors/include/ED_fileselect.h
    branches/blender2.5/blender/source/blender/editors/interface/interface_panel.c
    branches/blender2.5/blender/source/blender/editors/space_file/file_draw.c
    branches/blender2.5/blender/source/blender/editors/space_file/file_intern.h
    branches/blender2.5/blender/source/blender/editors/space_file/file_ops.c
    branches/blender2.5/blender/source/blender/editors/space_file/filelist.c
    branches/blender2.5/blender/source/blender/editors/space_file/filelist.h
    branches/blender2.5/blender/source/blender/editors/space_file/filesel.c
    branches/blender2.5/blender/source/blender/editors/space_file/space_file.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h
    branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c
    branches/blender2.5/blender/source/blender/windowmanager/WM_types.h
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c

Added Paths:
-----------
    branches/blender2.5/blender/release/ui/space_filebrowser.py

Modified: branches/blender2.5/blender/projectfiles_vc9/blender/editors/ED_editors.vcproj
===================================================================
--- branches/blender2.5/blender/projectfiles_vc9/blender/editors/ED_editors.vcproj	2009-06-29 20:15:59 UTC (rev 21243)
+++ branches/blender2.5/blender/projectfiles_vc9/blender/editors/ED_editors.vcproj	2009-06-29 20:23:40 UTC (rev 21244)
@@ -763,6 +763,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\..\source\blender\editors\space_file\file_panels.c"
+				>
+			</File>
+			<File
 				RelativePath="..\..\..\source\blender\editors\space_file\filelist.c"
 				>
 			</File>

Added: branches/blender2.5/blender/release/ui/space_filebrowser.py
===================================================================
--- branches/blender2.5/blender/release/ui/space_filebrowser.py	                        (rev 0)
+++ branches/blender2.5/blender/release/ui/space_filebrowser.py	2009-06-29 20:23:40 UTC (rev 21244)
@@ -0,0 +1,43 @@
+
+import bpy
+
+
+class FILEBROWSER_HT_header(bpy.types.Header):
+	__space_type__ = "FILE_BROWSER"
+	__idname__ = "FILEBROWSER_HT_header"
+
+	def draw(self, context):
+		st = context.space_data
+		layout = self.layout
+		
+		params = st.params 
+		layout.template_header(context)
+
+		row = layout.row(align=True)
+		row.itemO("FILE_OT_parent", text="", icon='ICON_FILE_PARENT')
+		row.itemO("FILE_OT_refresh", text="", icon='ICON_FILE_REFRESH')
+
+		layout.itemR(params, "display", expand=True, text="")
+		layout.itemR(params, "sort", expand=True, text="")
+		
+		layout.itemR(params, "hide_dot")
+		layout.itemR(params, "do_filter")
+		
+		row = layout.row(align=True)
+		row.itemR(params, "filter_folder", text="");
+		row.itemR(params, "filter_blender", text="");
+		row.itemR(params, "filter_image", text="");
+		row.itemR(params, "filter_movie", text="");
+		row.itemR(params, "filter_script", text="");
+		row.itemR(params, "filter_font", text="");
+		row.itemR(params, "filter_sound", text="");
+		row.itemR(params, "filter_text", text="");
+
+		if params.do_filter:
+			row.active = True
+		else: 
+			row.active = False
+			
+bpy.types.register(FILEBROWSER_HT_header)
+
+

Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-06-29 20:15:59 UTC (rev 21243)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-06-29 20:23:40 UTC (rev 21244)
@@ -5595,21 +5595,6 @@
 				/* temporarily hide it */
 				ar->flag = RGN_FLAG_HIDDEN;
 				break;
-				
-			case SPACE_FILE:
-				/* channel (bookmarks/directories) region */
-				ar= MEM_callocN(sizeof(ARegion), "area region from do_versions");
-				BLI_addtail(lb, ar);
-				ar->regiontype= RGN_TYPE_CHANNELS;
-				ar->alignment= RGN_ALIGN_LEFT;
-				ar->v2d.scroll= V2D_SCROLL_RIGHT;
-				/* button UI region */
-				ar= MEM_callocN(sizeof(ARegion), "area region from do_versions");
-				BLI_addtail(lb, ar);
-				ar->regiontype= RGN_TYPE_UI;
-				ar->alignment= RGN_ALIGN_TOP;
-				break;
-
 #if 0
 			case SPACE_BUTS:
 				/* context UI region */

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_fileselect.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_fileselect.h	2009-06-29 20:15:59 UTC (rev 21243)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_fileselect.h	2009-06-29 20:23:40 UTC (rev 21244)
@@ -29,35 +29,9 @@
 #define ED_FILES_H
 
 struct SpaceFile;
+struct ARegion;
+struct FileSelectParams;
 
-#define FILE_SHORTDISPLAY	1
-#define FILE_LONGDISPLAY	2
-#define FILE_IMGDISPLAY		3
-
-typedef struct FileSelectParams {
-	char title[24]; /* title, also used for the text of the execute button */
-	char dir[240]; /* directory */
-	char file[80]; /* file */
-
-	short flag; /* settings for filter, hiding files and display mode */
-	short sort; /* sort order */
-	short display; /* display mode flag */
-	short filter; /* filter when (flags & FILE_FILTER) is true */
-
-	/* XXX - temporary, better move to filelist */
-	short active_bookmark;
-	int	active_file;
-	int selstate;
-
-	/* XXX --- still unused -- */
-	short f_fp; /* show font preview */
-	char fp_str[8]; /* string to use for font preview */
-	
-	char *pupmenu; /* allows menu for save options - result stored in menup */
-	short menu; /* currently selected option in pupmenu */
-	/* XXX --- end unused -- */
-} FileSelectParams;
-
 #define FILE_LAYOUT_HOR 1
 #define FILE_LAYOUT_VER 2
 
@@ -93,7 +67,7 @@
 	float column_widths[MAX_FILE_COLUMN];
 } FileLayout;
 
-FileSelectParams* ED_fileselect_get_params(struct SpaceFile *sfile);
+struct FileSelectParams* ED_fileselect_get_params(struct SpaceFile *sfile);
 
 short ED_fileselect_set_params(struct SpaceFile *sfile, const char *title, const char *path, 
 						   short flag, short display, short filter, short sort);

Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_panel.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_panel.c	2009-06-29 20:15:59 UTC (rev 21243)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_panel.c	2009-06-29 20:23:40 UTC (rev 21244)
@@ -104,6 +104,8 @@
 		SpaceButs *sbuts= sa->spacedata.first;
 		return sbuts->align;
 	}
+	else if(sa->spacetype==SPACE_FILE && ar->regiontype == RGN_TYPE_CHANNELS)
+		return BUT_VERTICAL;
 	else if(ELEM(ar->regiontype, RGN_TYPE_UI, RGN_TYPE_TOOLS))
 		return BUT_VERTICAL;
 	
@@ -126,6 +128,8 @@
 	}
 	else if(ar->regiontype==RGN_TYPE_UI)
 		return 1;
+	else if(sa->spacetype==SPACE_FILE && ar->regiontype == RGN_TYPE_CHANNELS)
+		return 1;
 
 	/* in case panel is added or disappears */
 	for(pa=ar->panels.first; pa; pa=pa->next) {

Modified: branches/blender2.5/blender/source/blender/editors/space_file/file_draw.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_file/file_draw.c	2009-06-29 20:15:59 UTC (rev 21243)
+++ branches/blender2.5/blender/source/blender/editors/space_file/file_draw.c	2009-06-29 20:23:40 UTC (rev 21244)
@@ -550,132 +550,4 @@
 	}
 }
 
-static void file_draw_fsmenu_category_name(ARegion *ar, const char *category_name, short *starty)
-{
-	short sx, sy;
-	int bmwidth = ar->v2d.cur.xmax - ar->v2d.cur.xmin - 2*TILE_BORDER_X - ICON_DEFAULT_WIDTH - 4;
-	int fontsize = file_font_pointsize();
 
-	sx = ar->v2d.cur.xmin + TILE_BORDER_X;
-	sy = *starty;
-
-	UI_ThemeColor(TH_TEXT_HI);
-	file_draw_string(sx, sy, category_name, bmwidth, fontsize, FILE_SHORTEN_END);
-	
-	sy -= fontsize*2.0f;
-
-	*starty= sy;
-}
-
-static void file_draw_fsmenu_category(const bContext *C, ARegion *ar, FSMenuCategory category, short *starty)
-{
-	struct FSMenu* fsmenu = fsmenu_get();
-	char bookmark[FILE_MAX];
-	int nentries = fsmenu_get_nentries(fsmenu, category);
-	
-	short sx, sy, xpos, ypos;
-	int bmwidth = ar->v2d.cur.xmax - ar->v2d.cur.xmin - 2*TILE_BORDER_X - ICON_DEFAULT_WIDTH - 4;
-	int fontsize = file_font_pointsize();
-	int cat_icon;
-	int i;
-
-	sx = ar->v2d.cur.xmin + TILE_BORDER_X;
-	sy = *starty;
-
-	switch(category) {
-		case FS_CATEGORY_SYSTEM:
-			cat_icon = ICON_DISK_DRIVE; break;
-		case FS_CATEGORY_BOOKMARKS:
-			cat_icon = ICON_BOOKMARKS; break;
-		case FS_CATEGORY_RECENT:
-			cat_icon = ICON_FILE_FOLDER; break;
-	}
-
-	for (i=0; i< nentries && (sy > ar->v2d.cur.ymin) ;++i) {
-		char *fname = fsmenu_get_entry(fsmenu, category, i);
-
-		if (fname) {
-			int sl;
-			BLI_strncpy(bookmark, fname, FILE_MAX);
-		
-			sl = strlen(bookmark)-1;
-			if (sl > 1) {
-			while (bookmark[sl] == '\\' || bookmark[sl] == '/') {
-				bookmark[sl] = '\0';
-				sl--;
-			}
-			}
-			
-			if (fsmenu_is_selected(fsmenu, category, i) ) {
-				UI_ThemeColor(TH_HILITE);
-				uiRoundBox(sx, sy - fontsize*2.0f, ar->v2d.cur.xmax - TILE_BORDER_X, sy, 4.0f);
-				UI_ThemeColor(TH_TEXT);
-			} else {
-				UI_ThemeColor(TH_TEXT_HI);
-			}
-
-			xpos = sx;
-			ypos = sy - (TILE_BORDER_Y * 0.5);
-			
-			file_draw_icon(xpos, ypos, cat_icon, ICON_DEFAULT_WIDTH, ICON_DEFAULT_WIDTH);
-			xpos += ICON_DEFAULT_WIDTH + 4;
-			file_draw_string(xpos, ypos, bookmark, bmwidth, fontsize, FILE_SHORTEN_FRONT);
-			sy -= fontsize*2.0;
-			fsmenu_set_pos(fsmenu, category, i, xpos, ypos);
-		}
-	}
-
-	*starty = sy;
-}
-
-void file_draw_fsmenu_operator(const bContext *C, ARegion *ar, wmOperator *op, short *starty)
-{
-	uiStyle *style= U.uistyles.first;
-	uiBlock *block;
-	uiLayout *layout;
-	int sy;
-
-	sy= *starty;
-	
-	block= uiBeginBlock(C, ar, "file_options", UI_EMBOSS);
-	layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, TILE_BORDER_X, sy, ar->winx-2*TILE_BORDER_X, 20, style);
-
-    RNA_STRUCT_BEGIN(op->ptr, prop) {
-        if(strcmp(RNA_property_identifier(prop), "rna_type") == 0)
-            continue;
-        if(strcmp(RNA_property_identifier(prop), "filename") == 0)
-            continue;
-
-        uiItemFullR(layout, NULL, 0, op->ptr, prop, -1, 0, 0, 0, 0);
-    }
-    RNA_STRUCT_END;
-
-	uiBlockLayoutResolve(C, block, NULL, &sy);
-	uiEndBlock(C, block);
-	uiDrawBlock(C, block);
-
-	*starty= sy;
-}
-
-void file_draw_fsmenu(const bContext *C, ARegion *ar)
-{
-	SpaceFile *sfile= (SpaceFile*)CTX_wm_space_data(C);
-	int linestep = file_font_pointsize()*2.0f;
-	short sy= ar->v2d.cur.ymax-2*TILE_BORDER_Y;
-
-	file_draw_fsmenu_category_name(ar, "SYSTEM", &sy);
-	file_draw_fsmenu_category(C, ar, FS_CATEGORY_SYSTEM, &sy);
-	sy -= linestep;
-	file_draw_fsmenu_category_name(ar, "BOOKMARKS", &sy);
-	file_draw_fsmenu_category(C, ar, FS_CATEGORY_BOOKMARKS, &sy);
-	sy -= linestep;
-	file_draw_fsmenu_category_name(ar, "RECENT", &sy);
-	file_draw_fsmenu_category(C, ar, FS_CATEGORY_RECENT, &sy);
-
-	if(sfile->op) {
-		sy -= linestep;
-		file_draw_fsmenu_category_name(ar, "OPTIONS", &sy);
-		file_draw_fsmenu_operator(C, ar, sfile->op, &sy);
-	}
-}
-

Modified: branches/blender2.5/blender/source/blender/editors/space_file/file_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_file/file_intern.h	2009-06-29 20:15:59 UTC (rev 21243)
+++ branches/blender2.5/blender/source/blender/editors/space_file/file_intern.h	2009-06-29 20:23:40 UTC (rev 21244)
@@ -30,6 +30,9 @@
 
 /* internal exports only */
 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list