diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index b326d5fec0..b060c8230e 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -16683,3 +16683,31 @@
*: "Quick (Ignore Directory Cache)"
+
+ id: LANG_WPS
+ desc: in Settings
+ user: core
+
+ *: "What's Playing Screen"
+
+
+ *: "What's Playing Screen"
+
+
+ *: "What's Playing Screen"
+
+
+
+ id: LANG_DEFAULT_BROWSER
+ desc: in Settings
+ user: core
+
+ *: "Default Browser"
+
+
+ *: "Default Browser"
+
+
+ *: "Default Browser"
+
+
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c
index a71245cf80..191079deb8 100644
--- a/apps/menus/settings_menu.c
+++ b/apps/menus/settings_menu.c
@@ -191,6 +191,9 @@ MENUITEM_SETTING(dirfilter, &global_settings.dirfilter, NULL);
MENUITEM_SETTING(show_filename_ext, &global_settings.show_filename_ext, NULL);
MENUITEM_SETTING(browse_current, &global_settings.browse_current, NULL);
MENUITEM_SETTING(show_path_in_browser, &global_settings.show_path_in_browser, NULL);
+#ifdef HAVE_HOTKEY
+MENUITEM_SETTING(hotkey_tree_item, &global_settings.hotkey_tree, NULL);
+#endif
static int clear_start_directory(void)
{
path_append(global_settings.start_directory, PATH_ROOTSTR,
@@ -229,6 +232,9 @@ MAKE_MENU(file_menu, ID2P(LANG_FILE), filemenu_callback, Icon_file_view_menu,
&dirfilter, &show_filename_ext, &browse_current,
&show_path_in_browser,
&clear_start_directory_item
+#ifdef HAVE_HOTKEY
+ ,&hotkey_tree_item
+#endif
);
static int filemenu_callback(int action,
const struct menu_item_ex *this_item,
@@ -776,14 +782,24 @@ MENUITEM_FUNCTION(wps_set_context_plugin, 0,
/***********************************/
/***********************************/
-/* HOTKEY MENU */
+/* WPS Settings MENU */
+
+MENUITEM_SETTING(browser_default,
+ &global_settings.browser_default, NULL);
+
#ifdef HAVE_HOTKEY
MENUITEM_SETTING(hotkey_wps_item, &global_settings.hotkey_wps, NULL);
-MENUITEM_SETTING(hotkey_tree_item, &global_settings.hotkey_tree, NULL);
-MAKE_MENU(hotkey_menu, ID2P(LANG_HOTKEY), 0, Icon_NOICON,
- &hotkey_wps_item, &hotkey_tree_item);
-#endif /*have_hotkey */
-/* HOTKEY MENU */
+#endif
+
+MAKE_MENU(wps_settings, ID2P(LANG_WPS), 0, Icon_Playback_menu
+ ,&browser_default
+#ifdef HAVE_HOTKEY
+ ,&hotkey_wps_item
+#endif
+ ,&wps_set_context_plugin
+ );
+
+/* WPS Settings MENU */
/***********************************/
@@ -797,6 +813,7 @@ MENUITEM_FUNCTION_W_PARAM(browse_langs, 0, ID2P(LANG_LANGUAGE),
MAKE_MENU(settings_menu_item, ID2P(LANG_GENERAL_SETTINGS), 0,
Icon_General_settings_menu,
+ &wps_settings,
&playlist_settings, &file_menu,
#ifdef HAVE_TAGCACHE
&tagcache_menu,
@@ -808,10 +825,6 @@ MAKE_MENU(settings_menu_item, ID2P(LANG_GENERAL_SETTINGS), 0,
&autoresume_menu,
#endif
&browse_langs, &voice_settings_menu,
- &wps_set_context_plugin,
-#ifdef HAVE_HOTKEY
- &hotkey_menu,
-#endif
);
/* SETTINGS MENU */
/***********************************/
diff --git a/apps/root_menu.c b/apps/root_menu.c
index e606d5cd68..7c75b12586 100644
--- a/apps/root_menu.c
+++ b/apps/root_menu.c
@@ -900,9 +900,25 @@ static int root_menu_setup_screens(void)
return new_screen;
}
+static int browser_default(void)
+{
+ switch (global_settings.browser_default)
+ {
+#ifdef HAVE_TAGCACHE
+ case BROWSER_DEFAULT_DB:
+ return GO_TO_DBBROWSER;
+#endif
+ case BROWSER_DEFAULT_PL_CAT:
+ return GO_TO_PLAYLISTS_SCREEN;
+ case BROWSER_DEFAULT_FILES:
+ default:
+ return GO_TO_FILEBROWSER;
+ }
+}
+
void root_menu(void)
{
- int previous_browser = GO_TO_FILEBROWSER;
+ int previous_browser = browser_default();
int selected = 0;
int shortcut_origin = GO_TO_ROOT;
@@ -932,12 +948,13 @@ void root_menu(void)
last_screen = GO_TO_ROOT;
break;
#ifdef HAVE_TAGCACHE
- case GO_TO_FILEBROWSER:
case GO_TO_DBBROWSER:
+#endif
+ case GO_TO_FILEBROWSER:
+ case GO_TO_PLAYLISTS_SCREEN:
previous_browser = next_screen;
goto load_next_screen;
break;
-#endif /* With !HAVE_TAGCACHE previous_browser is always GO_TO_FILEBROWSER */
#if CONFIG_TUNER
case GO_TO_WPS:
case GO_TO_FM:
@@ -1030,7 +1047,8 @@ void root_menu(void)
last_screen = GO_TO_PLUGIN;
}
}
- previous_browser = (next_screen != GO_TO_WPS) ? GO_TO_FILEBROWSER : GO_TO_PLUGIN;
+ previous_browser = (next_screen != GO_TO_WPS) ? browser_default() :
+ GO_TO_PLUGIN;
break;
}
default:
diff --git a/apps/settings.h b/apps/settings.h
index ce29e020f7..2277805fec 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -127,6 +127,15 @@ enum
QUEUE_SHOW_IN_SUBMENU
};
+enum
+{
+ BROWSER_DEFAULT_FILES = 0,
+#ifdef HAVE_TAGCACHE
+ BROWSER_DEFAULT_DB,
+#endif
+ BROWSER_DEFAULT_PL_CAT
+};
+
#ifdef HAVE_ALBUMART
enum
{
@@ -608,6 +617,8 @@ struct user_settings
unsigned char colors_file[MAX_FILENAME+1];
#endif
+ int browser_default; /* Default browser when accessed from WPS */
+
/* playlist/playback settings */
int repeat_mode; /* 0=off 1=repeat all 2=repeat one 3=shuffle 4=ab */
int next_folder; /* move to next folder */
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 7bdb3522c0..dc33c27c95 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -1852,6 +1852,25 @@ const struct settings_list settings[] = {
ID2P(LANG_SET_BOOL_YES),
ID2P(LANG_IN_SUBMENU)),
+ CHOICE_SETTING(0, browser_default, LANG_DEFAULT_BROWSER, 0,
+ "default browser",
+#ifdef HAVE_TAGCACHE
+ "files,database,playlists",
+#else
+ "files,playlists",
+#endif
+ NULL,
+#ifdef HAVE_TAGCACHE
+ 3
+#else
+ 2
+#endif
+ ,ID2P(LANG_DIR_BROWSER),
+#ifdef HAVE_TAGCACHE
+ ID2P(LANG_TAGCACHE),
+#endif
+ ID2P(LANG_CATALOG)),
+
#ifdef HAVE_BACKLIGHT
CHOICE_SETTING(0, backlight_on_button_hold,
LANG_BACKLIGHT_ON_BUTTON_HOLD,
diff --git a/manual/appendix/config_file_options.tex b/manual/appendix/config_file_options.tex
index 709bc9b2ff..c4318692c4 100644
--- a/manual/appendix/config_file_options.tex
+++ b/manual/appendix/config_file_options.tex
@@ -251,6 +251,7 @@
dircache & on, off & N/A\\
tagcache\_ram & on, off & N/A\\
database path & path to a directory & N/A\\
+ default browser & files, database, playlists & N/A\\
\opt{touchpad}{
\opt{GIGABEAT_PAD}{
diff --git a/manual/configure_rockbox/file_view.tex b/manual/configure_rockbox/file_view.tex
index 8b86e71906..112aa4c06f 100644
--- a/manual/configure_rockbox/file_view.tex
+++ b/manual/configure_rockbox/file_view.tex
@@ -1,5 +1,5 @@
% $Id$ %
-\section{File View}
+\section{\label{ref:FileView}File View}
The File View menu deals with options relating to how the File Browser
displays files.
%
@@ -90,4 +90,11 @@ displays files.
\setting{Current Directory Only} or \setting{Full Path}, then the title of
each menu will be displayed on the first line in the \setting{Database Browser}.
+\opt{hotkey}{
+ \nopt{touchscreen}{\item[File Browser Hotkey.]
+ Sets the hotkey function for the \setting{File Browser},
+ \setting{Database} and \setting{Playlist Viewer} (see \reference{ref:Hotkeys}).
+ The default is \setting{Off}.
+ }
+}
\end{description}
diff --git a/manual/configure_rockbox/hotkey_settings.tex b/manual/configure_rockbox/hotkey_settings.tex
deleted file mode 100644
index de2b3a872a..0000000000
--- a/manual/configure_rockbox/hotkey_settings.tex
+++ /dev/null
@@ -1,15 +0,0 @@
-% $Id: hotkey_settings.tex 16765 2008-03-23 22:07:09Z nls $ %
-\opt{hotkey}{
-\section{\label{ref:HotkeySettings}Hotkey}
-
- \begin{description}
- \item[WPS Hotkey.] \opt{touchscreen}{This options sets the hotkey function for
- the WPS (see \reference{ref:Hotkeys}). The
- default is \setting{View Playlist}.}
- \nopt{touchscreen}{\item[File Browser Hotkey.]}
- \end{description}
-
- \nopt{touchscreen}{These options set the hotkey function for their respective
- screens (see \reference{ref:Hotkeys}). The default for the WPS is
- \setting{View Playlist}. The File Browser default is \setting{Off}.}
-}
diff --git a/manual/configure_rockbox/main.tex b/manual/configure_rockbox/main.tex
index b0711e5b71..b7d980d918 100644
--- a/manual/configure_rockbox/main.tex
+++ b/manual/configure_rockbox/main.tex
@@ -9,6 +9,7 @@
\chapter{General Settings}
\label{ref:configure_rockbox_general}
\input{configure_rockbox/general_settings.tex}
+ \input{configure_rockbox/wps.tex}
\input{configure_rockbox/playlist_options.tex}
\input{configure_rockbox/file_view.tex}
\input{configure_rockbox/database.tex}
@@ -21,8 +22,6 @@
}
\input{configure_rockbox/language.tex}
\input{configure_rockbox/voice.tex}
- \input{configure_rockbox/wps_context_plugin.tex}
- \input{configure_rockbox/hotkey_settings.tex}
\chapter{Theme Settings}
\label{ref:configure_rockbox_themes}
diff --git a/manual/configure_rockbox/wps.tex b/manual/configure_rockbox/wps.tex
new file mode 100644
index 0000000000..dca27c056b
--- /dev/null
+++ b/manual/configure_rockbox/wps.tex
@@ -0,0 +1,16 @@
+
+\section{\label{ref:WPSSettings}What's Playing Screen}
+
+ \begin{description}
+ \item[Default Browser.]
+ Decide if you want the \setting{File Browser}, \setting{Database}, or
+ \setting{Playlist Catalogue} to launch after pressing \ActionWpsBrowse{}
+ on the WPS, when no other browser has recently been used.
+ \opt{hotkey}{
+ \item[WPS Hotkey.] Sets the hotkey function for
+ the WPS (see \reference{ref:Hotkeys}). The
+ default is \setting{View Playlist}.
+ }
+ \item[Set WPS Context Plugin.]
+ This option will allow you to run a Rockbox plugin from the WPS context menu.
+ \end{description}
diff --git a/manual/configure_rockbox/wps_context_plugin.tex b/manual/configure_rockbox/wps_context_plugin.tex
deleted file mode 100644
index 469a0e5ca2..0000000000
--- a/manual/configure_rockbox/wps_context_plugin.tex
+++ /dev/null
@@ -1,6 +0,0 @@
-\section{\label{ref:SetWPSContextPlugin}Set WPS Context Plugin}
-
- \begin{description}
- \item[Set WPS Context Plugin.]
- This option will allow you to run a rockbox plugin from the WPS context menu
- \end{description}
diff --git a/manual/rockbox_interface/hotkeys.tex b/manual/rockbox_interface/hotkeys.tex
index 28c8091a05..8fe07c5cf1 100644
--- a/manual/rockbox_interface/hotkeys.tex
+++ b/manual/rockbox_interface/hotkeys.tex
@@ -11,10 +11,11 @@
assignment.} If there is no assignment for a given screen,
the hotkey is ignored.
+ The hotkey assignments are changed for the What's Playing Screen (see
+ \reference{ref:WPSSettings}) and browsers (see \reference{ref:FileView})
+ separately.
+
The default assignment for the \nopt{touchscreen}{File Browser hotkey is
\setting{Off}, while the default for the }WPS hotkey is
\setting{View Playlist}.
-
- The hotkey assignments are changed in the Hotkey menu (see
- \reference{ref:HotkeySettings}) under \setting{General Settings}.
}
diff --git a/manual/rockbox_interface/wps.tex b/manual/rockbox_interface/wps.tex
index 5f810261fa..c433b76608 100644
--- a/manual/rockbox_interface/wps.tex
+++ b/manual/rockbox_interface/wps.tex
@@ -61,7 +61,7 @@ your WPS (While Playing Screen).
%
\ActionWpsBrowse
\opt{HAVEREMOTEKEYMAP}{& \ActionRCWpsBrowse}
- & Return to the \setting{File Browser} / \setting{Database}.\\
+ & Return to the \setting{File Browser} / \setting{Database} / \setting{Playlist Catalogue}.\\
%
\ActionWpsContext
\opt{HAVEREMOTEKEYMAP}{& \ActionRCWpsContext}