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>2009-03-12 22:36:59 +0300
committerAndrea Weikert <elubie@gmx.net>2009-03-12 22:36:59 +0300
commit432171fd99933f3aa4495bbc6e4b9a2c1df135a6 (patch)
tree30bb067788bdd7fd2e8c1aae45e3686a135bb887 /source/blender/editors/space_file/file_ops.c
parent8420089d8bc5ca07c52c0984d4f0c6757b56d5b7 (diff)
2.5 filebrowser
- better encapsulation for fsmenu to make it easier to remove global later. - cleaned up fsmenu code to use just one global - on file_exec current directory gets added to recent. - save last 10 recent files in .Bfs too.
Diffstat (limited to 'source/blender/editors/space_file/file_ops.c')
-rw-r--r--source/blender/editors/space_file/file_ops.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c
index 4725014a4b1..20e6b9b16a8 100644
--- a/source/blender/editors/space_file/file_ops.c
+++ b/source/blender/editors/space_file/file_ops.c
@@ -318,7 +318,7 @@ void FILE_OT_select_all(wmOperatorType *ot)
static void set_active_bookmark(FileSelectParams* params, struct ARegion* ar, short x, short y)
{
- int nentries = fsmenu_get_nentries(FS_CATEGORY_BOOKMARKS);
+ int nentries = fsmenu_get_nentries(fsmenu_get(), FS_CATEGORY_BOOKMARKS);
float fx, fy;
short posy;
@@ -335,16 +335,17 @@ static void set_active_bookmark(FileSelectParams* params, struct ARegion* ar, sh
static int file_select_bookmark_category(SpaceFile* sfile, ARegion* ar, short x, short y, FSMenuCategory category)
{
- int nentries = fsmenu_get_nentries(category);
+ struct FSMenu* fsmenu = fsmenu_get();
+ int nentries = fsmenu_get_nentries(fsmenu, category);
int linestep = U.fontsize*2.0f;
short xs, ys;
int i;
int selected = -1;
for (i=0; i < nentries; ++i) {
- fsmenu_get_pos(category, i, &xs, &ys);
+ fsmenu_get_pos(fsmenu, category, i, &xs, &ys);
if ( (y<=ys) && (y>ys-linestep) ) {
- fsmenu_select_entry(category, i);
+ fsmenu_select_entry(fsmenu, category, i);
selected = i;
break;
}
@@ -373,7 +374,7 @@ static void file_select_bookmark(SpaceFile* sfile, ARegion* ar, short x, short y
}
if (selected>=0) {
- entry= fsmenu_get_entry(category, selected);
+ entry= fsmenu_get_entry(fsmenu_get(), category, selected);
/* which string */
if (entry) {
FileSelectParams* params = sfile->params;
@@ -523,6 +524,9 @@ int file_exec(bContext *C, wmOperator *unused)
strcat(name, sfile->params->file);
RNA_string_set(op->ptr, "filename", name);
+ fsmenu_insert_entry(fsmenu_get(), FS_CATEGORY_RECENT, sfile->params->dir,0, 1);
+ BLI_make_file_string(G.sce, name, BLI_gethome(), ".Bfs");
+ fsmenu_write_file(fsmenu_get(), name);
WM_event_fileselect_event(C, op, EVT_FILESELECT_EXEC);
}