2.5 filebrowser
* fix crash in autocomplete for very long paths * allow longer paths in directory button * added some TODO comments for G.lib
This commit is contained in:
@@ -189,7 +189,7 @@ void file_draw_buttons(const bContext *C, ARegion *ar)
|
||||
if (available_w > 0) {
|
||||
but = uiDefBut(block, TEX, B_FS_DIRNAME, "",
|
||||
min_x, line1_y, line1_w, btn_h,
|
||||
params->dir, 0.0, (float)FILE_MAXDIR-1, 0, 0,
|
||||
params->dir, 0.0, (float)FILE_MAX-1, 0, 0,
|
||||
"File path.");
|
||||
uiButSetCompleteFunc(but, autocomplete_directory, NULL);
|
||||
uiDefBut(block, TEX, B_FS_FILENAME, "",
|
||||
|
||||
@@ -417,13 +417,16 @@ void autocomplete_directory(struct bContext *C, char *str, void *arg_v)
|
||||
struct direntry* file = filelist_file(sfile->files, i);
|
||||
const char* dir = filelist_dir(sfile->files);
|
||||
if (file && S_ISDIR(file->type)) {
|
||||
BLI_make_file_string(G.sce, tmp, dir, file->relname);
|
||||
// BLI_make_file_string(G.sce, tmp, dir, file->relname);
|
||||
BLI_join_dirfile(tmp, dir, file->relname);
|
||||
autocomplete_do_name(autocpl,tmp);
|
||||
}
|
||||
}
|
||||
autocomplete_end(autocpl, str);
|
||||
if (BLI_exists(str)) {
|
||||
BLI_add_slash(str);
|
||||
} else {
|
||||
BLI_make_exist(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -943,7 +943,7 @@ static int wm_link_append_invoke(bContext *C, wmOperator *op, wmEvent *event)
|
||||
return WM_operator_call(C, op);
|
||||
}
|
||||
else {
|
||||
/* XXX solve where to get last linked library from */
|
||||
/* XXX TODO solve where to get last linked library from */
|
||||
RNA_string_set(op->ptr, "path", G.lib);
|
||||
WM_event_add_fileselect(C, op);
|
||||
return OPERATOR_RUNNING_MODAL;
|
||||
@@ -1064,6 +1064,8 @@ static int wm_link_append_exec(bContext *C, wmOperator *op)
|
||||
DAG_ids_flush_update(0);
|
||||
|
||||
BLO_blendhandle_close(bh);
|
||||
|
||||
/* XXX TODO: align G.lib with other directory storage (like last opened image etc...) */
|
||||
BLI_strncpy(G.lib, dir, FILE_MAX);
|
||||
|
||||
WM_event_add_notifier(C, NC_WINDOW, NULL);
|
||||
|
||||
Reference in New Issue
Block a user