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:
authorBastien Montagne <montagne29@wanadoo.fr>2011-10-10 12:25:28 +0400
committerBastien Montagne <montagne29@wanadoo.fr>2011-10-10 12:25:28 +0400
commit1c0ff6109dcad86ccf90e0dedcfe9d5dfd591f79 (patch)
tree5ef45178fcf8eef01d4c78e9172b938a1688e99e /source/blender/windowmanager
parent317d11214efa8ea34c2f53b9bb7f0be117c8226b (diff)
Now append/link will start at current blend file directory, if available (lastest used lib keeps priority).
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index 16cba7d6758..eda85f112df 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -1626,7 +1626,15 @@ static int wm_link_append_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(ev
}
else {
/* XXX TODO solve where to get last linked library from */
- RNA_string_set(op->ptr, "filepath", G.lib);
+ if(G.lib[0] != '\0') {
+ RNA_string_set(op->ptr, "filepath", G.lib);
+ }
+ else if(G.relbase_valid) {
+ char path[FILE_MAX];
+ BLI_strncpy(path, G.main->name, sizeof(G.main->name));
+ BLI_parent_dir(path);
+ RNA_string_set(op->ptr, "filepath", path);
+ }
WM_event_add_fileselect(C, op);
return OPERATOR_RUNNING_MODAL;
}