2.5 filebrowser

bugfix #1: SpaceFile->files needs to be deleted on exec and cancel of the filebrowser and in init to ensure correct setting of the read function.
bugfix #2: SpaceFile->params needs to be set in file_init otherwise Python can't access params in header ui.
This commit is contained in:
Andrea Weikert 2009-09-15 20:47:34 +00:00
parent 22274d3807
commit 063d806f15
3 changed files with 17 additions and 6 deletions

@ -496,6 +496,12 @@ int file_cancel_exec(bContext *C, wmOperator *unused)
WM_event_fileselect_event(C, sfile->op, EVT_FILESELECT_CANCEL);
sfile->op = NULL;
if (sfile->files) {
filelist_free(sfile->files);
MEM_freeN(sfile->files);
sfile->files= NULL;
}
return OPERATOR_FINISHED;
}
@ -567,6 +573,10 @@ int file_exec(bContext *C, wmOperator *unused)
BLI_make_file_string(G.sce, name, BLI_gethome(), ".Bfs");
fsmenu_write_file(fsmenu_get(), name);
WM_event_fileselect_event(C, op, EVT_FILESELECT_EXEC);
filelist_free(sfile->files);
MEM_freeN(sfile->files);
sfile->files= NULL;
}
return OPERATOR_FINISHED;

@ -169,18 +169,13 @@ short ED_fileselect_set_params(SpaceFile *sfile)
} else {
/* default values, if no operator */
params->type = FILE_UNIX;
params->flag |= FILE_HIDE_DOT;
params->display = FILE_SHORTDISPLAY;
params->filter = 0;
params->sort = FILE_SORT_ALPHA;
}
/* new params, refresh file list */
if(sfile->files) {
filelist_free(sfile->files);
filelist_setdir(sfile->files, params->dir);
}
return 1;
}

@ -159,6 +159,12 @@ static void file_init(struct wmWindowManager *wm, ScrArea *sa)
if(sfile->params) {
MEM_freeN(sfile->params);
sfile->params = 0;
ED_fileselect_set_params(sfile);
if (sfile->files) {
filelist_free(sfile->files);
MEM_freeN(sfile->files);
sfile->files= NULL;
}
}
printf("file_init\n");
}