2.5 filebrowser

Fix crash when loading old files with filebrowser UI
Partial Fix for invoking filebrowser via spacetype pupmenu: reset directory in filelist
Make paths relative in 'path' return when requested by 'relative_paths' property in operator
This commit is contained in:
Andrea Weikert
2009-09-13 08:08:50 +00:00
parent b1e418db20
commit 7eea0b647c
3 changed files with 13 additions and 2 deletions

View File

@@ -524,6 +524,10 @@ int file_exec(bContext *C, wmOperator *unused)
BLI_strncpy(name, sfile->params->dir, sizeof(name));
RNA_string_set(op->ptr, "directory", name);
strcat(name, sfile->params->file);
if ( RNA_boolean_get(op->ptr, "relative_paths") ) {
BLI_makestringcode(G.sce, name);
}
RNA_string_set(op->ptr, "path", name);
/* some ops have multiple files to select */

View File

@@ -117,6 +117,8 @@ short ED_fileselect_set_params(SpaceFile *sfile)
BLI_strncpy(sfile->params->file, file, sizeof(sfile->params->file));
BLI_make_file_string(G.sce, sfile->params->dir, dir, ""); /* XXX needed ? - also solve G.sce */
}
ED_fileselect_reset_params(sfile);
params = sfile->params;
@@ -173,13 +175,17 @@ short ED_fileselect_set_params(SpaceFile *sfile)
}
/* new params, refresh file list */
if(sfile->files) filelist_free(sfile->files);
if(sfile->files) {
filelist_free(sfile->files);
filelist_setdir(sfile->files, params->dir);
}
return 1;
}
void ED_fileselect_reset_params(SpaceFile *sfile)
{
sfile->params->type = FILE_UNIX;
sfile->params->flag = 0;
sfile->params->title[0] = '\0';
}

View File

@@ -166,7 +166,8 @@ static SpaceLink *file_duplicate(SpaceLink *sl)
/* clear or remove stuff from old */
sfilen->op = NULL; /* file window doesn't own operators */
sfilen->files = filelist_new(sfileo->params->type);
if (sfileo->params)
sfilen->files = filelist_new(sfileo->params->type);
if(sfileo->folders_prev)
sfilen->folders_prev = MEM_dupallocN(sfileo->folders_prev);