2.5 filebrowser
more bugfixes: * removed refreshing code at file_init again, causes issues when resizing * free library in the filelist after use * make sure directory exists when library file for append/link doesn't exist, so browsing can continue from valid dir.
This commit is contained in:
@@ -518,6 +518,7 @@ int file_cancel_exec(bContext *C, wmOperator *unused)
|
|||||||
sfile->op = NULL;
|
sfile->op = NULL;
|
||||||
|
|
||||||
if (sfile->files) {
|
if (sfile->files) {
|
||||||
|
filelist_freelib(sfile->files);
|
||||||
filelist_free(sfile->files);
|
filelist_free(sfile->files);
|
||||||
MEM_freeN(sfile->files);
|
MEM_freeN(sfile->files);
|
||||||
sfile->files= NULL;
|
sfile->files= NULL;
|
||||||
@@ -606,6 +607,7 @@ int file_exec(bContext *C, wmOperator *unused)
|
|||||||
fsmenu_write_file(fsmenu_get(), name);
|
fsmenu_write_file(fsmenu_get(), name);
|
||||||
WM_event_fileselect_event(C, op, EVT_FILESELECT_EXEC);
|
WM_event_fileselect_event(C, op, EVT_FILESELECT_EXEC);
|
||||||
|
|
||||||
|
filelist_freelib(sfile->files);
|
||||||
filelist_free(sfile->files);
|
filelist_free(sfile->files);
|
||||||
MEM_freeN(sfile->files);
|
MEM_freeN(sfile->files);
|
||||||
sfile->files= NULL;
|
sfile->files= NULL;
|
||||||
|
|||||||
@@ -804,6 +804,8 @@ static void filelist_read_library(struct FileList* filelist)
|
|||||||
if(!filelist->libfiledata) {
|
if(!filelist->libfiledata) {
|
||||||
int num;
|
int num;
|
||||||
struct direntry *file;
|
struct direntry *file;
|
||||||
|
|
||||||
|
BLI_make_exist(filelist->dir);
|
||||||
filelist_read_dir(filelist);
|
filelist_read_dir(filelist);
|
||||||
file = filelist->filelist;
|
file = filelist->filelist;
|
||||||
for(num=0; num<filelist->numfiles; num++, file++) {
|
for(num=0; num<filelist->numfiles; num++, file++) {
|
||||||
|
|||||||
@@ -156,16 +156,6 @@ static void file_free(SpaceLink *sl)
|
|||||||
static void file_init(struct wmWindowManager *wm, ScrArea *sa)
|
static void file_init(struct wmWindowManager *wm, ScrArea *sa)
|
||||||
{
|
{
|
||||||
SpaceFile *sfile= (SpaceFile*)sa->spacedata.first;
|
SpaceFile *sfile= (SpaceFile*)sa->spacedata.first;
|
||||||
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");
|
printf("file_init\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -213,6 +203,7 @@ static void file_refresh(const bContext *C, ScrArea *sa)
|
|||||||
if (filelist_empty(sfile->files))
|
if (filelist_empty(sfile->files))
|
||||||
{
|
{
|
||||||
filelist_readdir(sfile->files);
|
filelist_readdir(sfile->files);
|
||||||
|
BLI_strncpy(params->dir, filelist_dir(sfile->files), FILE_MAX);
|
||||||
}
|
}
|
||||||
if(params->sort!=FILE_SORT_NONE) filelist_sort(sfile->files, params->sort);
|
if(params->sort!=FILE_SORT_NONE) filelist_sort(sfile->files, params->sort);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user