[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50681] trunk/blender/source/blender/ editors/space_file: fix [#32564] Entries in recent list (file select dialog ) don't get pushed to top if used again
Campbell Barton
ideasman42 at gmail.com
Mon Sep 17 04:19:45 CEST 2012
Revision: 50681
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50681
Author: campbellbarton
Date: 2012-09-17 02:19:41 +0000 (Mon, 17 Sep 2012)
Log Message:
-----------
fix [#32564] Entries in recent list (file select dialog) don't get pushed to top if used again
Modified Paths:
--------------
trunk/blender/source/blender/editors/space_file/file_ops.c
trunk/blender/source/blender/editors/space_file/fsmenu.c
trunk/blender/source/blender/editors/space_file/fsmenu.h
Modified: trunk/blender/source/blender/editors/space_file/file_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/file_ops.c 2012-09-17 02:02:23 UTC (rev 50680)
+++ trunk/blender/source/blender/editors/space_file/file_ops.c 2012-09-17 02:19:41 UTC (rev 50681)
@@ -770,8 +770,9 @@
file_sfile_to_operator(op, sfile, filepath);
- if (BLI_exists(sfile->params->dir))
- fsmenu_insert_entry(fsmenu_get(), FS_CATEGORY_RECENT, sfile->params->dir, FS_INSERT_SAVE);
+ if (BLI_exists(sfile->params->dir)) {
+ fsmenu_insert_entry(fsmenu_get(), FS_CATEGORY_RECENT, sfile->params->dir, FS_INSERT_SAVE | FS_INSERT_FIRST);
+ }
BLI_make_file_string(G.main->name, filepath, BLI_get_folder_create(BLENDER_USER_CONFIG, NULL), BLENDER_BOOKMARK_FILE);
fsmenu_write_file(fsmenu_get(), filepath);
Modified: trunk/blender/source/blender/editors/space_file/fsmenu.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/fsmenu.c 2012-09-17 02:02:23 UTC (rev 50680)
+++ trunk/blender/source/blender/editors/space_file/fsmenu.c 2012-09-17 02:19:41 UTC (rev 50681)
@@ -164,14 +164,22 @@
FSMenuEntry *prev;
FSMenuEntry *fsme;
FSMenuEntry *fsms;
+ FSMenuEntry *fsms_first;
fsms = fsmenu_get_category(fsmenu, category);
- prev = fsme = fsms;
+ prev = fsme = fsms_first = fsms;
for (; fsme; prev = fsme, fsme = fsme->next) {
if (fsme->path) {
const int cmp_ret = BLI_path_cmp(path, fsme->path);
if (cmp_ret == 0) {
+ if (FS_INSERT_FIRST) {
+ if (fsme != fsms_first) {
+ prev->next = fsme->next;
+ fsme->next = fsms_first;
+ fsmenu_set_category(fsmenu, category, fsme);
+ }
+ }
return;
}
else if ((flag & FS_INSERT_SORTED) && cmp_ret < 0) {
Modified: trunk/blender/source/blender/editors/space_file/fsmenu.h
===================================================================
--- trunk/blender/source/blender/editors/space_file/fsmenu.h 2012-09-17 02:02:23 UTC (rev 50680)
+++ trunk/blender/source/blender/editors/space_file/fsmenu.h 2012-09-17 02:19:41 UTC (rev 50681)
@@ -45,7 +45,8 @@
typedef enum FSMenuInsert {
FS_INSERT_SORTED = (1 << 0),
- FS_INSERT_SAVE = (1 << 1)
+ FS_INSERT_SAVE = (1 << 1),
+ FS_INSERT_FIRST = (1 << 2) /* moves the item to the front of the list when its already there */
} FSMenuInsert;
struct FSMenu;
More information about the Bf-blender-cvs
mailing list