diff options
Diffstat (limited to 'source/blender/editors/space_file/space_file.c')
-rw-r--r-- | source/blender/editors/space_file/space_file.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c index 3996c6135a0..105ece8e95f 100644 --- a/source/blender/editors/space_file/space_file.c +++ b/source/blender/editors/space_file/space_file.c @@ -120,6 +120,7 @@ static void file_free(SpaceLink *sl) SpaceFile *sfile= (SpaceFile *) sl; if(sfile->files) { + // XXXXX would need to do thumbnails_stop here, but no context available filelist_freelib(sfile->files); filelist_free(sfile->files); MEM_freeN(sfile->files); @@ -170,18 +171,18 @@ static SpaceLink *file_duplicate(SpaceLink *sl) /* clear or remove stuff from old */ sfilen->op = NULL; /* file window doesn't own operators */ - if (sfileo->params) + if (sfileo->params) { sfilen->files = filelist_new(sfileo->params->type); + sfilen->params= MEM_dupallocN(sfileo->params); + filelist_setdir(sfilen->files, sfilen->params->dir); + } + if(sfileo->folders_prev) sfilen->folders_prev = folderlist_duplicate(sfileo->folders_prev); if(sfileo->folders_next) sfilen->folders_next = folderlist_duplicate(sfileo->folders_next); - - if(sfileo->params) { - sfilen->params= MEM_dupallocN(sfileo->params); - file_change_dir(sfilen, 0); - } + if (sfileo->layout) { sfilen->layout= MEM_dupallocN(sfileo->layout); } @@ -197,7 +198,7 @@ static void file_refresh(const bContext *C, ScrArea *sa) sfile->folders_prev = folderlist_new(); if (!sfile->files) { sfile->files = filelist_new(params->type); - file_change_dir(sfile, 0); + filelist_setdir(sfile->files, params->dir); params->active_file = -1; // added this so it opens nicer (ton) } filelist_hidedot(sfile->files, params->flag & FILE_HIDE_DOT); @@ -205,6 +206,7 @@ static void file_refresh(const bContext *C, ScrArea *sa) if (filelist_empty(sfile->files)) { filelist_readdir(sfile->files); + thumbnails_start(sfile->files, C); BLI_strncpy(params->dir, filelist_dir(sfile->files), FILE_MAX); } if(params->sort!=FILE_SORT_NONE) filelist_sort(sfile->files, params->sort); @@ -232,7 +234,6 @@ static void file_listener(ScrArea *sa, wmNotifier *wmn) case NC_SPACE: switch (wmn->data) { case ND_SPACE_FILE_LIST: - if (sfile->files) filelist_free(sfile->files); ED_area_tag_refresh(sa); ED_area_tag_redraw(sa); break; @@ -345,7 +346,6 @@ void file_operatortypes(void) WM_operatortype_append(FILE_OT_select_all_toggle); WM_operatortype_append(FILE_OT_select_border); WM_operatortype_append(FILE_OT_select_bookmark); - WM_operatortype_append(FILE_OT_loadimages); WM_operatortype_append(FILE_OT_highlight); WM_operatortype_append(FILE_OT_execute); WM_operatortype_append(FILE_OT_cancel); @@ -390,7 +390,6 @@ void file_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "FILE_OT_select_border", EVT_TWEAK_L, KM_ANY, 0, 0); WM_keymap_add_item(keymap, "FILE_OT_rename", LEFTMOUSE, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "FILE_OT_highlight", MOUSEMOVE, KM_ANY, KM_ANY, 0); - WM_keymap_add_item(keymap, "FILE_OT_loadimages", TIMER1, KM_ANY, KM_ANY, 0); kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, 0, 0); RNA_int_set(kmi->ptr, "increment", 1); kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, KM_SHIFT, 0); |