diff --git a/apps/tagnavi.config b/apps/tagnavi.config index b9d50c5c9b..74dfb1d1d9 100644 --- a/apps/tagnavi.config +++ b/apps/tagnavi.config @@ -2,8 +2,12 @@ # ^ Version header must be the first line of every file # Tag Browser configuration file, do not edit as changes will be lost! -# Instead, you can modify "/.rockbox/tagnavi_custom.config" which will never -# get overwritten automatically. +# Instead, copy this file to "/.rockbox/tagnavi_user.config" and edit +# that, so your changes will not be overwritten automatically. +# +# If you only want to add menus and don't need to modify the default +# ones, you can edit "/.rockbox/tagnavi_custom.config" instead, which +# is included by this file and will not be overwritten automatically. # Basic format declarations %format "fmt_title" "%s - %02d:%02d (%s)" basename Lm Ls filename ? title == "" diff --git a/apps/tagtree.c b/apps/tagtree.c index 454875ded2..74f0021d6a 100644 --- a/apps/tagtree.c +++ b/apps/tagtree.c @@ -58,7 +58,8 @@ #define str_or_empty(x) (x ? x : "(NULL)") -#define FILE_SEARCH_INSTRUCTIONS ROCKBOX_DIR "/tagnavi.config" +#define TAGNAVI_DEFAULT_CONFIG ROCKBOX_DIR "/tagnavi.config" +#define TAGNAVI_USER_CONFIG ROCKBOX_DIR "/tagnavi_user.config" static int tagtree_play_folder(struct tree_context* c); @@ -1262,7 +1263,14 @@ void tagtree_init(void) if (tagtree_handle < 0) panicf("tagtree OOM"); - if (!parse_menu(FILE_SEARCH_INSTRUCTIONS)) + /* Use the user tagnavi config if present, otherwise use the default. */ + const char* tagnavi_file; + if(file_exists(TAGNAVI_USER_CONFIG)) + tagnavi_file = TAGNAVI_USER_CONFIG; + else + tagnavi_file = TAGNAVI_DEFAULT_CONFIG; + + if (!parse_menu(tagnavi_file)) { tagtree_unload(NULL); return;