[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