Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Weikert <elubie@gmx.net>2010-03-10 22:30:20 +0300
committerAndrea Weikert <elubie@gmx.net>2010-03-10 22:30:20 +0300
commitc0b3ab6ceb4ca77ec7b05bd5bed090a15705303a (patch)
tree256463f28b31ef4d2edde870996afc27d0402cb7 /source/blender/editors/space_file/filesel.c
parent222dc9cf132c6cc2f4c3ca6c14fe5dffb5737d7d (diff)
filebrowser:
* move own thread handling for thumbnails to WM_jobs * cleanup of thumbnail creation code * added function to kill the job, which actually allows thread to terminate gracefully vc9 projectfiles: * fixed some missing includes for release target!
Diffstat (limited to 'source/blender/editors/space_file/filesel.c')
-rw-r--r--source/blender/editors/space_file/filesel.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c
index 51058c0e90b..868e28207c5 100644
--- a/source/blender/editors/space_file/filesel.c
+++ b/source/blender/editors/space_file/filesel.c
@@ -391,15 +391,18 @@ FileLayout* ED_fileselect_get_layout(struct SpaceFile *sfile, struct ARegion *ar
return sfile->layout;
}
-void file_change_dir(struct SpaceFile *sfile, int checkdir)
+void file_change_dir(bContext *C, int checkdir)
{
+ SpaceFile *sfile= CTX_wm_space_file(C);
+
if (sfile->params) {
+ ED_fileselect_clear(C, sfile);
+
if(checkdir && BLI_is_dir(sfile->params->dir)==0) {
BLI_strncpy(sfile->params->dir, filelist_dir(sfile->files), sizeof(sfile->params->dir));
/* could return but just refresh the current dir */
}
-
filelist_setdir(sfile->files, sfile->params->dir);
if(folderlist_clear_next(sfile))
@@ -407,8 +410,6 @@ void file_change_dir(struct SpaceFile *sfile, int checkdir)
folderlist_pushdir(sfile->folders_prev, sfile->params->dir);
- filelist_free(sfile->files);
- sfile->params->active_file = -1;
}
}
@@ -460,3 +461,17 @@ void autocomplete_directory(struct bContext *C, char *str, void *arg_v)
}
}
}
+
+void ED_fileselect_clear(struct bContext *C, struct SpaceFile *sfile)
+{
+ thumbnails_stop(sfile->files, C);
+ filelist_freelib(sfile->files);
+ filelist_free(sfile->files);
+ sfile->params->active_file = -1;
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
+}
+
+void ED_fileselect_exit(struct bContext *C, struct SpaceFile *sfile)
+{
+ thumbnails_stop(sfile->files, C);
+}