forked from bartvdbraak/blender
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:
parent
22274d3807
commit
063d806f15
@ -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");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user