Revision: 27523
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27523
Author: elubie
Date: 2010-03-15 21:28:13 +0100 (Mon, 15 Mar 2010)
Log Message:
-----------
Fix [#21618] Wrong Icon For BLEND file on File/Append
While the folder icon was originally planned when in append/link mode, it's
easier to distinguish with a blender icon, so the folder icon is now replaced.
Also fixed issue introduced in rev. 27491 where filter settings were
incorrectly set when moving out of .blend file again.
Modified Paths:
--------------
trunk/blender/source/blender/editors/space_file/file_draw.c
trunk/blender/source/blender/editors/space_file/filelist.c
trunk/blender/source/blender/editors/space_file/filesel.c
trunk/blender/source/blender/editors/space_file/space_file.c
trunk/blender/source/blender/makesdna/DNA_space_types.h
trunk/blender/source/blender/makesrna/intern/rna_space.c
Modified: trunk/blender/source/blender/editors/space_file/file_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/file_draw.c 2010-03-15
20:23:06 UTC (rev 27522)
+++ trunk/blender/source/blender/editors/space_file/file_draw.c 2010-03-15
20:28:13 UTC (rev 27523)
@@ -298,6 +298,9 @@
if ( strcmp(file->relname, "..") == 0) {
return ICON_FILE_PARENT;
}
+ if(file->flags & BLENDERFILE) {
+ return ICON_FILE_BLEND;
+ }
return ICON_FILE_FOLDER;
}
else if (file->flags & BLENDERFILE)
Modified: trunk/blender/source/blender/editors/space_file/filelist.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/filelist.c 2010-03-15
20:23:06 UTC (rev 27522)
+++ trunk/blender/source/blender/editors/space_file/filelist.c 2010-03-15
20:28:13 UTC (rev 27523)
@@ -627,13 +627,13 @@
fidx = filelist->fidx[index];
file = &filelist->filelist[fidx];
if (file->type & S_IFDIR) {
- if ( strcmp(filelist->filelist[fidx].relname, "..") ==
0) {
- ibuf = gSpecialFileImages[SPECIAL_IMG_PARENT];
- } else if ( strcmp(filelist->filelist[fidx].relname,
".") == 0) {
- ibuf = gSpecialFileImages[SPECIAL_IMG_REFRESH];
- } else {
- ibuf = gSpecialFileImages[SPECIAL_IMG_FOLDER];
- }
+ if ( strcmp(filelist->filelist[fidx].relname, "..") == 0) {
+ ibuf = gSpecialFileImages[SPECIAL_IMG_PARENT];
+ } else if ( strcmp(filelist->filelist[fidx].relname, ".") ==
0) {
+ ibuf = gSpecialFileImages[SPECIAL_IMG_REFRESH];
+ } else {
+ ibuf = gSpecialFileImages[SPECIAL_IMG_FOLDER];
+ }
} else {
ibuf = gSpecialFileImages[SPECIAL_IMG_UNKNOWNFILE];
}
@@ -788,8 +788,12 @@
file->type= file->s.st_mode; /* restore the mess below */
/* Don't check extensions for directories */
- if (file->type & S_IFDIR)
+ if (file->type & S_IFDIR) {
+ if(BLO_has_bfile_extension(file->relname)) {
+ file->flags |= BLENDERFILE;
+ }
continue;
+ }
if(BLO_has_bfile_extension(file->relname)) {
file->flags |= BLENDERFILE;
Modified: trunk/blender/source/blender/editors/space_file/filesel.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/filesel.c 2010-03-15
20:23:06 UTC (rev 27522)
+++ trunk/blender/source/blender/editors/space_file/filesel.c 2010-03-15
20:28:13 UTC (rev 27523)
@@ -194,7 +194,7 @@
params->filter = 0;
params->sort = FILE_SORT_ALPHA;
}
-
+ params->oldflag = params->flag;
return 1;
}
@@ -414,6 +414,9 @@
char dir[FILE_MAX];
if (filelist_islibrary(sfile->files, dir, group)) {
sfile->params->flag &= ~FILE_FILTER;
+ } else {
+ /* reset the old flag */
+ sfile->params->flag = sfile->params->oldflag;
}
}
if(folderlist_clear_next(sfile))
Modified: trunk/blender/source/blender/editors/space_file/space_file.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/space_file.c
2010-03-15 20:23:06 UTC (rev 27522)
+++ trunk/blender/source/blender/editors/space_file/space_file.c
2010-03-15 20:28:13 UTC (rev 27523)
@@ -140,8 +140,6 @@
}
if (sfile->params) {
- if(sfile->params->pupmenu)
- MEM_freeN(sfile->params->pupmenu);
MEM_freeN(sfile->params);
sfile->params= NULL;
}
@@ -208,6 +206,8 @@
filelist_readdir(sfile->files);
thumbnails_start(sfile->files, C);
BLI_strncpy(params->dir, filelist_dir(sfile->files), FILE_MAX);
+ } else {
+ filelist_filter(sfile->files);
}
if(params->sort!=FILE_SORT_NONE) filelist_sort(sfile->files,
params->sort);
Modified: trunk/blender/source/blender/makesdna/DNA_space_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_space_types.h 2010-03-15
20:23:06 UTC (rev 27522)
+++ trunk/blender/source/blender/makesdna/DNA_space_types.h 2010-03-15
20:28:13 UTC (rev 27523)
@@ -162,21 +162,23 @@
short type; /* XXXXX for now store type here, should be moved to the
operator */
short flag; /* settings for filter, hiding dots files,... */
+ short oldflag; /* temp storage of original flag settings */
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;
+ short pad;
int active_file;
int selstate;
/* short */
/* XXX --- still unused -- */
short f_fp; /* show font preview */
- short menu; /* currently selected option in pupmenu */
+ short pad2;
char fp_str[8]; /* string to use for font preview */
- char *pupmenu; /* allows menu for save options - result stored in menup
*/
+
/* XXX --- end unused -- */
} FileSelectParams;
Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_space.c 2010-03-15
20:23:06 UTC (rev 27522)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c 2010-03-15
20:28:13 UTC (rev 27523)
@@ -567,6 +567,14 @@
ED_sequencer_update_view(C, view);
}
+static void rna_FileSelectParams_flag_update(Main *bmain, Scene *scene,
PointerRNA *ptr)
+{
+ FileSelectParams* params = (FileSelectParams*)ptr->data;
+ if (params) {
+ params->oldflag = params->flag;
+ }
+}
+
#else
static void rna_def_space(BlenderRNA *brna)
@@ -1838,12 +1846,12 @@
prop= RNA_def_property(srna, "do_filter", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", FILE_FILTER);
RNA_def_property_ui_text(prop, "Filter Files", "Enable filtering of
files");
- RNA_def_property_update(prop, NC_SPACE|ND_SPACE_FILE_PARAMS, NULL);
+ RNA_def_property_update(prop, NC_SPACE|ND_SPACE_FILE_PARAMS,
"rna_FileSelectParams_flag_update");
prop= RNA_def_property(srna, "hide_dot", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", FILE_HIDE_DOT);
RNA_def_property_ui_text(prop, "Hide Dot Files", "Hide hidden dot
files");
- RNA_def_property_update(prop, NC_SPACE|ND_SPACE_FILE_LIST , NULL);
+ RNA_def_property_update(prop, NC_SPACE|ND_SPACE_FILE_LIST ,
"rna_FileSelectParams_flag_update");
prop= RNA_def_property(srna, "sort", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "sort");
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs