Hi Campbell, this broke "Add Image" operator in the sequencer - http://www.pasteall.org/pic/show.php?id=13792 right now I can't select individual images, and using 'a' (to select all) select only folders.
I wonder if the solution is to allow "Add Image" to select a directory (and use all images from it). Or to revert it to previous behaviour (and one select the images from the interested folder). Thanks, Dalai 2011/6/16 Campbell Barton <ideasma...@gmail.com> > Revision: 37552 > > http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37552 > Author: campbellbarton > Date: 2011-06-16 15:01:22 +0000 (Thu, 16 Jun 2011) > Log Message: > ----------- > directory only filesel for operators which don't have a filepath or > filename property. > > Modified Paths: > -------------- > trunk/blender/source/blender/editors/space_file/file_draw.c > trunk/blender/source/blender/editors/space_file/file_ops.c > trunk/blender/source/blender/editors/space_file/filelist.c > trunk/blender/source/blender/editors/space_file/filesel.c > trunk/blender/source/blender/makesdna/DNA_space_types.h > > Modified: trunk/blender/source/blender/editors/space_file/file_draw.c > =================================================================== > --- trunk/blender/source/blender/editors/space_file/file_draw.c 2011-06-16 > 13:24:44 UTC (rev 37551) > +++ trunk/blender/source/blender/editors/space_file/file_draw.c 2011-06-16 > 15:01:22 UTC (rev 37552) > @@ -185,16 +185,18 @@ > uiButSetCompleteFunc(but, autocomplete_directory, NULL); > uiButSetFlag(but, UI_BUT_NO_UTF8); > > - but = uiDefBut(block, TEX, B_FS_FILENAME, "", > - min_x, line2_y, line2_w-chan_offs, btn_h, > - params->file, 0.0, (float)FILE_MAXFILE-1, > 0, 0, > - overwrite_alert ?"File name, overwrite > existing." : "File name."); > - uiButSetCompleteFunc(but, autocomplete_file, NULL); > - uiButSetFlag(but, UI_BUT_NO_UTF8); > - > - /* check if this overrides a file and if the operator > option is used */ > - if(overwrite_alert) { > - uiButSetFlag(but, UI_BUT_REDALERT); > + if((params->flag & FILE_DIRSEL_ONLY) == 0) { > + but = uiDefBut(block, TEX, B_FS_FILENAME, "", > + min_x, line2_y, line2_w-chan_offs, > btn_h, > + params->file, 0.0, > (float)FILE_MAXFILE-1, 0, 0, > + overwrite_alert ?"File name, > overwrite existing." : "File name."); > + uiButSetCompleteFunc(but, autocomplete_file, NULL); > + uiButSetFlag(but, UI_BUT_NO_UTF8); > + > + /* check if this overrides a file and if the > operator option is used */ > + if(overwrite_alert) { > + uiButSetFlag(but, UI_BUT_REDALERT); > + } > } > > /* clear func */ > @@ -202,7 +204,7 @@ > } > > /* Filename number increment / decrement buttons. */ > - if (fnumbuttons) { > + if (fnumbuttons && (params->flag & FILE_DIRSEL_ONLY) == 0) { > uiBlockBeginAlign(block); > but = uiDefIconButO(block, BUT, "FILE_OT_filenum", 0, > ICON_ZOOMOUT, > min_x + line2_w + separator - chan_offs, > line2_y, > > Modified: trunk/blender/source/blender/editors/space_file/file_ops.c > =================================================================== > --- trunk/blender/source/blender/editors/space_file/file_ops.c 2011-06-16 > 13:24:44 UTC (rev 37551) > +++ trunk/blender/source/blender/editors/space_file/file_ops.c 2011-06-16 > 15:01:22 UTC (rev 37552) > @@ -205,9 +205,10 @@ > SpaceFile *sfile= CTX_wm_space_file(C); > FileSelect retval = FILE_SELECT_NOTHING; > FileSelection sel= file_selection_get(C, rect, fill); /* get the > selection */ > + const FileCheckType check_type= (sfile->params->flag & > FILE_DIRSEL_ONLY) ? CHECK_DIRS : CHECK_ALL; > > /* flag the files as selected in the filelist */ > - filelist_select(sfile->files, &sel, select, SELECTED_FILE, > CHECK_ALL); > + filelist_select(sfile->files, &sel, select, SELECTED_FILE, > check_type); > > /* Don't act on multiple selected files */ > if (sel.first != sel.last) select = 0; > @@ -216,7 +217,7 @@ > if ( (sel.last >= 0) && ((select == FILE_SEL_ADD) || (select == > FILE_SEL_TOGGLE)) ) > { > /* Check last selection, if selected, act on the file or dir > */ > - if (filelist_is_selected(sfile->files, sel.last, > CHECK_ALL)) { > + if (filelist_is_selected(sfile->files, sel.last, > check_type)) { > retval = file_select_do(C, sel.last); > } > } > @@ -378,9 +379,11 @@ > /* select all only if previously no file was selected */ > if (is_selected) { > filelist_select(sfile->files, &sel, FILE_SEL_REMOVE, > SELECTED_FILE, CHECK_ALL); > - } else { > - filelist_select(sfile->files, &sel, FILE_SEL_ADD, > SELECTED_FILE, CHECK_FILES); > } > + else { > + const FileCheckType check_type= (sfile->params->flag & > FILE_DIRSEL_ONLY) ? CHECK_DIRS : CHECK_FILES; > + filelist_select(sfile->files, &sel, FILE_SEL_ADD, > SELECTED_FILE, check_type); > + } > ED_area_tag_redraw(sa); > return OPERATOR_FINISHED; > } > > Modified: trunk/blender/source/blender/editors/space_file/filelist.c > =================================================================== > --- trunk/blender/source/blender/editors/space_file/filelist.c 2011-06-16 > 13:24:44 UTC (rev 37551) > +++ trunk/blender/source/blender/editors/space_file/filelist.c 2011-06-16 > 15:01:22 UTC (rev 37552) > @@ -915,6 +915,8 @@ > int check_ok = 0; > switch (check) { > case CHECK_DIRS: > + check_ok = S_ISDIR(file->type); > + break; > case CHECK_ALL: > check_ok = 1; > break; > > Modified: trunk/blender/source/blender/editors/space_file/filesel.c > =================================================================== > --- trunk/blender/source/blender/editors/space_file/filesel.c 2011-06-16 > 13:24:44 UTC (rev 37551) > +++ trunk/blender/source/blender/editors/space_file/filesel.c 2011-06-16 > 15:01:22 UTC (rev 37552) > @@ -121,6 +121,9 @@ > > /* set the parameters from the operator, if it exists */ > if (op) { > + short is_filename= FALSE; > + short is_dir= FALSE; > + > BLI_strncpy(params->title, op->type->name, > sizeof(params->title)); > > if(RNA_struct_find_property(op->ptr, "filemode")) > @@ -128,7 +131,7 @@ > else > params->type = FILE_SPECIAL; > > - if (RNA_struct_find_property(op->ptr, "filepath") && > RNA_property_is_set(op->ptr, "filepath")) { > + if ((is_dir= is_filename= RNA_struct_find_property(op->ptr, > "filepath")!=NULL) && RNA_property_is_set(op->ptr, "filepath")) { > char name[FILE_MAX]; > RNA_string_get(op->ptr, "filepath", name); > if (params->type == FILE_LOADLIB) { > @@ -140,12 +143,13 @@ > } > } > else { > - if (RNA_struct_find_property(op->ptr, "directory") > && RNA_property_is_set(op->ptr, "directory")) { > + if ((is_dir= RNA_struct_find_property(op->ptr, > "directory")!=NULL) && RNA_property_is_set(op->ptr, "directory")) { > RNA_string_get(op->ptr, "directory", > params->dir); > sfile->params->file[0]= '\0'; > + is_dir= TRUE; > } > > - if (RNA_struct_find_property(op->ptr, "filename") > && RNA_property_is_set(op->ptr, "filename")) { > + if ((is_filename= RNA_struct_find_property(op->ptr, > "filename")!=NULL) && RNA_property_is_set(op->ptr, "filename")) { > RNA_string_get(op->ptr, "filename", > params->file); > } > } > @@ -155,6 +159,10 @@ > BLI_path_abs(params->dir, G.main->name); > } > > + if(is_dir==TRUE && is_filename==FALSE) { > + params->flag |= FILE_DIRSEL_ONLY; > + } > + > params->filter = 0; > if(RNA_struct_find_property(op->ptr, "filter_blender")) > params->filter |= RNA_boolean_get(op->ptr, > "filter_blender") ? BLENDERFILE : 0; > > Modified: trunk/blender/source/blender/makesdna/DNA_space_types.h > =================================================================== > --- trunk/blender/source/blender/makesdna/DNA_space_types.h 2011-06-16 > 13:24:44 UTC (rev 37551) > +++ trunk/blender/source/blender/makesdna/DNA_space_types.h 2011-06-16 > 15:01:22 UTC (rev 37552) > @@ -696,19 +696,20 @@ > #define FILE_OPENFILE 0 > #define FILE_SAVE 1 > > -/* sfile->flag and simasel->flag */ > -#define FILE_SHOWSHORT 1 > -#define FILE_RELPATH 2 /* was FILE_STRINGCODE */ > -#define FILE_LINK 4 > -#define FILE_HIDE_DOT 8 > -#define FILE_AUTOSELECT 16 > -#define FILE_ACTIVELAY 32 > -#define FILE_ATCURSOR 64 > -#define FILE_SYNCPOSE 128 > -#define FILE_FILTER 256 > -#define FILE_BOOKMARKS 512 > -#define FILE_GROUP_INSTANCE 1024 > +/* sfile->params->flag and simasel->flag */ > +#define FILE_SHOWSHORT (1<<0) > +#define FILE_RELPATH (1<<1) /* was FILE_STRINGCODE */ > +#define FILE_LINK (1<<2) > +#define FILE_HIDE_DOT (1<<3) > +#define FILE_AUTOSELECT (1<<4) > +#define FILE_ACTIVELAY (1<<5) > +#define FILE_ATCURSOR (1<<6) > +#define FILE_DIRSEL_ONLY (1<<7) > +#define FILE_FILTER (1<<8) > +#define FILE_BOOKMARKS (1<<9) > +#define FILE_GROUP_INSTANCE (1<<10) > > + > /* files in filesel list: file types */ > #define BLENDERFILE (1<<2) > #define BLENDERFILE_BACKUP (1<<3) > > _______________________________________________ > Bf-blender-cvs mailing list > bf-blender-...@blender.org > http://lists.blender.org/mailman/listinfo/bf-blender-cvs > _______________________________________________ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers