mirror of
https://github.com/Rockbox/rockbox.git
synced 2026-04-11 16:37:45 -04:00
added setting to retain file browser directory on reboots WIP
I added the setting keep_directory which automatically updates the last directory visited and restores it on next boot --added manual entry Change-Id: I0ffe6531d591d693806ce0bf56fe22b99e3315e9
This commit is contained in:
parent
380b7b3e32
commit
c86fd2318d
10 changed files with 53 additions and 1 deletions
|
|
@ -453,6 +453,13 @@ int ft_load(struct tree_context* c, const char* tempdir)
|
|||
check_file_thumbnails(c); /* map .talk to ours */
|
||||
|
||||
tree_unlock_cache(c);
|
||||
|
||||
if (global_settings.keep_directory)
|
||||
{
|
||||
path_append(global_status.browse_last_folder, c->currdir, PA_SEP_HARD,
|
||||
sizeof(global_status.browse_last_folder));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
static void ft_load_font(char *file)
|
||||
|
|
|
|||
|
|
@ -17029,3 +17029,17 @@
|
|||
general_purpose_led: "Use LED indicators"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_KEEP_DIRECTORY
|
||||
desc: file browser setting
|
||||
user: core
|
||||
<source>
|
||||
*: "Always remember last folder"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Always remember last folder"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Always remember last folder"
|
||||
</voice>
|
||||
</phrase>
|
||||
|
|
|
|||
|
|
@ -199,6 +199,7 @@ static int clear_start_directory(void)
|
|||
splash(HZ, ID2P(LANG_RESET_DONE_CLEAR));
|
||||
return false;
|
||||
}
|
||||
MENUITEM_SETTING(keep_directory, &global_settings.keep_directory, NULL);
|
||||
MENUITEM_FUNCTION(clear_start_directory_item, 0, ID2P(LANG_RESET_START_DIR),
|
||||
clear_start_directory, NULL, Icon_file_view_menu);
|
||||
|
||||
|
|
@ -209,6 +210,7 @@ MAKE_MENU(file_menu, ID2P(LANG_FILE), filemenu_callback, Icon_file_view_menu,
|
|||
&sort_case, &sort_dir, &sort_file, &interpret_numbers,
|
||||
&dirfilter, &show_filename_ext, &browse_current,
|
||||
&show_path_in_browser,
|
||||
&keep_directory,
|
||||
&clear_start_directory_item
|
||||
#ifdef HAVE_HOTKEY
|
||||
,&hotkey_tree_item
|
||||
|
|
|
|||
|
|
@ -2039,6 +2039,12 @@ void validate_start_directory_init(void) /* INIT_ATTR */
|
|||
path_append(dirpath, PATH_ROOTSTR,
|
||||
PA_SEP_HARD, sizeof(global_settings.start_directory));
|
||||
}
|
||||
|
||||
if (!global_settings.keep_directory) /* reset to root / if !keep_directory */
|
||||
{
|
||||
path_append(global_status.browse_last_folder, PATH_ROOTSTR, PA_SEP_HARD,
|
||||
sizeof(global_status.browse_last_folder));
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* ndef __PCTOOL__ */
|
||||
|
|
|
|||
|
|
@ -118,7 +118,9 @@ static int browser(void* param)
|
|||
int filter = SHOW_SUPPORTED;
|
||||
char folder[MAX_PATH] = "/";
|
||||
/* stuff needed to remember position in file browser */
|
||||
static char last_folder[MAX_PATH] = "/";
|
||||
/*static char last_folder[MAX_PATH] = "/"*/
|
||||
char *last_folder = global_status.browse_last_folder;
|
||||
|
||||
/* and stuff for the database browser */
|
||||
#ifdef HAVE_TAGCACHE
|
||||
static int last_db_dirlevel = 0, last_db_selection = 0, last_ft_dirlevel = 0;
|
||||
|
|
|
|||
|
|
@ -628,6 +628,11 @@ static bool settings_write_config(const char* filename, int options)
|
|||
case SETTINGS_SAVE_RESUMEINFO:
|
||||
if (!(setting->flags & F_RESUMESETTING))
|
||||
continue;
|
||||
if (setting->setting == &global_status.browse_last_folder
|
||||
&& (!global_settings.keep_directory))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
case SETTINGS_SAVE_ALL:
|
||||
{
|
||||
|
|
|
|||
|
|
@ -365,6 +365,7 @@ struct system_status
|
|||
int font_id[NB_SCREENS]; /* font id of the settings font for each screen */
|
||||
|
||||
bool resume_modified; /* playlist is modified (=> warn before erase) */
|
||||
char browse_last_folder[MAX_PATH];/* only saved if keep_directory = true */
|
||||
};
|
||||
|
||||
struct user_settings
|
||||
|
|
@ -893,6 +894,7 @@ struct user_settings
|
|||
|
||||
char start_directory[MAX_PATHNAME+1];
|
||||
/* Has the root been customized from the .cfg file? false = no, true = loaded from cfg */
|
||||
bool keep_directory; /* this saves the last path visited in the file browser */
|
||||
bool root_menu_customized;
|
||||
#ifdef HAVE_QUICKSCREEN
|
||||
bool shortcuts_replaces_qs;
|
||||
|
|
|
|||
|
|
@ -148,6 +148,13 @@
|
|||
#define SYSTEM_STATUS(flags,var,default,name) \
|
||||
{flags|F_RESUMESETTING|F_T_INT, &global_status.var,-1, \
|
||||
INT(default), name, UNUSED}
|
||||
|
||||
#define SYSTEM_STATUS_TEXT_SETTING(flags,var,name,default,prefix,suffix) \
|
||||
{flags|F_RESUMESETTING|F_T_UCHARPTR, &global_status.var,-1, \
|
||||
CHARPTR(default),name, \
|
||||
{.filename_setting= \
|
||||
(struct filename_setting[]){ \
|
||||
{prefix,suffix,sizeof(global_status.var)}}} }
|
||||
/* system_status settings items will be saved to resume.cfg
|
||||
Use for int which use the set_sound() function to set them
|
||||
These items WILL be included in the users exported settings files
|
||||
|
|
@ -1498,6 +1505,9 @@ const struct settings_list settings[] = {
|
|||
#endif /* HAVE_DISK_STORAGE */
|
||||
/* browser */
|
||||
TEXT_SETTING(0, start_directory, "start directory", "/", NULL, NULL),
|
||||
SYSTEM_STATUS_TEXT_SETTING(0, browse_last_folder, "last folder", "/", NULL, NULL),
|
||||
OFFON_SETTING(0, keep_directory, LANG_KEEP_DIRECTORY, false, "keep directory", NULL),
|
||||
|
||||
CHOICE_SETTING(0, dirfilter, LANG_FILTER, SHOW_SUPPORTED, "show files",
|
||||
"all,supported,music,playlists", NULL, 4, ID2P(LANG_ALL),
|
||||
ID2P(LANG_FILTER_SUPPORTED), ID2P(LANG_FILTER_MUSIC),
|
||||
|
|
|
|||
|
|
@ -756,6 +756,7 @@ Nyx Guan
|
|||
Arin Kim
|
||||
Ingmar Steen
|
||||
Lourenço Soares
|
||||
Yegor Chernyshov
|
||||
|
||||
The libmad team
|
||||
The wavpack team
|
||||
|
|
|
|||
|
|
@ -194,6 +194,9 @@ each option pertains both to files and directories):
|
|||
\item [Recording Directory.]
|
||||
Save recordings in the selected directory.
|
||||
}
|
||||
\item [Always remember last folder.]
|
||||
Saves the last position in the file browser on shutdown.
|
||||
This directory (and if applicable last file) will be restored next boot.
|
||||
\item [Start Directory.]
|
||||
Set as default start directory for the File Browser.
|
||||
\note{If you have \setting{Auto-Change Directory} and
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue