diff options
author | Christian Soffke <christian.soffke@gmail.com> | 2022-11-22 21:03:19 +0100 |
---|---|---|
committer | Christian Soffke <christian.soffke@gmail.com> | 2024-04-24 05:05:42 +0200 |
commit | e8816552f6adc2bb458860759bd15a31b7d9d0d1 (patch) | |
tree | 4363ddcb7b31c084cf0ea090501fa8d7d06741a4 /apps | |
parent | 3ce3b102ddd5b663759ed61bd689b7bbda2ceecd (diff) | |
download | rockbox-e8816552f6adc2bb458860759bd15a31b7d9d0d1.tar.gz rockbox-e8816552f6adc2bb458860759bd15a31b7d9d0d1.zip |
Offer choice of default browsers
The database or playlist catalogue can now be set
as the browser that is launched when pressing
ACTION_WPS_BROWSE on the WPS, unless another browser
has more recently been opened.
Previously you'd always have to exit the File Browser
first, after the player had been restarted, which is
annoying for users who prefer the database.
The playlist catalogue has become part of the MRU
browser list, so pressing ACTION_WPS_BROWSE after
selecting a track from a playlist in the playlist
catalogue will now take you back there.
Settings menus have been slightly restructured.
- Eliminated "Set WPS Context Plugin" and "Hotkey" menus
from the General menu
- Added "What's Playing Screen" menu in Settings-General
with option for setting default browser. The "WPS Hotkey"
and "WPS Context Plugin" menu options have been moved to
this menu.
- "File Browser Hotkey" is now part of the File View menu,
which means it is accessible from the browser's context
menu as well.
Overview of resulting menu structure in Settings->General:
What's Playing Screen
Default Browser
WPS Hotkey
Set WPS Context Plugin
File View
(...)
File Browser Hotkey
Change-Id: Iaa3619a791c20ce3562a1efd2cf90c72933b729a
Diffstat (limited to 'apps')
-rw-r--r-- | apps/lang/english.lang | 28 | ||||
-rw-r--r-- | apps/menus/settings_menu.c | 33 | ||||
-rw-r--r-- | apps/root_menu.c | 26 | ||||
-rw-r--r-- | apps/settings.h | 11 | ||||
-rw-r--r-- | apps/settings_list.c | 19 |
5 files changed, 103 insertions, 14 deletions
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 @@ | |||
16683 | *: "Quick (Ignore Directory Cache)" | 16683 | *: "Quick (Ignore Directory Cache)" |
16684 | </voice> | 16684 | </voice> |
16685 | </phrase> | 16685 | </phrase> |
16686 | <phrase> | ||
16687 | id: LANG_WPS | ||
16688 | desc: in Settings | ||
16689 | user: core | ||
16690 | <source> | ||
16691 | *: "What's Playing Screen" | ||
16692 | </source> | ||
16693 | <dest> | ||
16694 | *: "What's Playing Screen" | ||
16695 | </dest> | ||
16696 | <voice> | ||
16697 | *: "What's Playing Screen" | ||
16698 | </voice> | ||
16699 | </phrase> | ||
16700 | <phrase> | ||
16701 | id: LANG_DEFAULT_BROWSER | ||
16702 | desc: in Settings | ||
16703 | user: core | ||
16704 | <source> | ||
16705 | *: "Default Browser" | ||
16706 | </source> | ||
16707 | <dest> | ||
16708 | *: "Default Browser" | ||
16709 | </dest> | ||
16710 | <voice> | ||
16711 | *: "Default Browser" | ||
16712 | </voice> | ||
16713 | </phrase> | ||
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); | |||
191 | MENUITEM_SETTING(show_filename_ext, &global_settings.show_filename_ext, NULL); | 191 | MENUITEM_SETTING(show_filename_ext, &global_settings.show_filename_ext, NULL); |
192 | MENUITEM_SETTING(browse_current, &global_settings.browse_current, NULL); | 192 | MENUITEM_SETTING(browse_current, &global_settings.browse_current, NULL); |
193 | MENUITEM_SETTING(show_path_in_browser, &global_settings.show_path_in_browser, NULL); | 193 | MENUITEM_SETTING(show_path_in_browser, &global_settings.show_path_in_browser, NULL); |
194 | #ifdef HAVE_HOTKEY | ||
195 | MENUITEM_SETTING(hotkey_tree_item, &global_settings.hotkey_tree, NULL); | ||
196 | #endif | ||
194 | static int clear_start_directory(void) | 197 | static int clear_start_directory(void) |
195 | { | 198 | { |
196 | path_append(global_settings.start_directory, PATH_ROOTSTR, | 199 | 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, | |||
229 | &dirfilter, &show_filename_ext, &browse_current, | 232 | &dirfilter, &show_filename_ext, &browse_current, |
230 | &show_path_in_browser, | 233 | &show_path_in_browser, |
231 | &clear_start_directory_item | 234 | &clear_start_directory_item |
235 | #ifdef HAVE_HOTKEY | ||
236 | ,&hotkey_tree_item | ||
237 | #endif | ||
232 | ); | 238 | ); |
233 | static int filemenu_callback(int action, | 239 | static int filemenu_callback(int action, |
234 | const struct menu_item_ex *this_item, | 240 | const struct menu_item_ex *this_item, |
@@ -776,14 +782,24 @@ MENUITEM_FUNCTION(wps_set_context_plugin, 0, | |||
776 | /***********************************/ | 782 | /***********************************/ |
777 | 783 | ||
778 | /***********************************/ | 784 | /***********************************/ |
779 | /* HOTKEY MENU */ | 785 | /* WPS Settings MENU */ |
786 | |||
787 | MENUITEM_SETTING(browser_default, | ||
788 | &global_settings.browser_default, NULL); | ||
789 | |||
780 | #ifdef HAVE_HOTKEY | 790 | #ifdef HAVE_HOTKEY |
781 | MENUITEM_SETTING(hotkey_wps_item, &global_settings.hotkey_wps, NULL); | 791 | MENUITEM_SETTING(hotkey_wps_item, &global_settings.hotkey_wps, NULL); |
782 | MENUITEM_SETTING(hotkey_tree_item, &global_settings.hotkey_tree, NULL); | 792 | #endif |
783 | MAKE_MENU(hotkey_menu, ID2P(LANG_HOTKEY), 0, Icon_NOICON, | 793 | |
784 | &hotkey_wps_item, &hotkey_tree_item); | 794 | MAKE_MENU(wps_settings, ID2P(LANG_WPS), 0, Icon_Playback_menu |
785 | #endif /*have_hotkey */ | 795 | ,&browser_default |
786 | /* HOTKEY MENU */ | 796 | #ifdef HAVE_HOTKEY |
797 | ,&hotkey_wps_item | ||
798 | #endif | ||
799 | ,&wps_set_context_plugin | ||
800 | ); | ||
801 | |||
802 | /* WPS Settings MENU */ | ||
787 | /***********************************/ | 803 | /***********************************/ |
788 | 804 | ||
789 | 805 | ||
@@ -797,6 +813,7 @@ MENUITEM_FUNCTION_W_PARAM(browse_langs, 0, ID2P(LANG_LANGUAGE), | |||
797 | 813 | ||
798 | MAKE_MENU(settings_menu_item, ID2P(LANG_GENERAL_SETTINGS), 0, | 814 | MAKE_MENU(settings_menu_item, ID2P(LANG_GENERAL_SETTINGS), 0, |
799 | Icon_General_settings_menu, | 815 | Icon_General_settings_menu, |
816 | &wps_settings, | ||
800 | &playlist_settings, &file_menu, | 817 | &playlist_settings, &file_menu, |
801 | #ifdef HAVE_TAGCACHE | 818 | #ifdef HAVE_TAGCACHE |
802 | &tagcache_menu, | 819 | &tagcache_menu, |
@@ -808,10 +825,6 @@ MAKE_MENU(settings_menu_item, ID2P(LANG_GENERAL_SETTINGS), 0, | |||
808 | &autoresume_menu, | 825 | &autoresume_menu, |
809 | #endif | 826 | #endif |
810 | &browse_langs, &voice_settings_menu, | 827 | &browse_langs, &voice_settings_menu, |
811 | &wps_set_context_plugin, | ||
812 | #ifdef HAVE_HOTKEY | ||
813 | &hotkey_menu, | ||
814 | #endif | ||
815 | ); | 828 | ); |
816 | /* SETTINGS MENU */ | 829 | /* SETTINGS MENU */ |
817 | /***********************************/ | 830 | /***********************************/ |
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) | |||
900 | return new_screen; | 900 | return new_screen; |
901 | } | 901 | } |
902 | 902 | ||
903 | static int browser_default(void) | ||
904 | { | ||
905 | switch (global_settings.browser_default) | ||
906 | { | ||
907 | #ifdef HAVE_TAGCACHE | ||
908 | case BROWSER_DEFAULT_DB: | ||
909 | return GO_TO_DBBROWSER; | ||
910 | #endif | ||
911 | case BROWSER_DEFAULT_PL_CAT: | ||
912 | return GO_TO_PLAYLISTS_SCREEN; | ||
913 | case BROWSER_DEFAULT_FILES: | ||
914 | default: | ||
915 | return GO_TO_FILEBROWSER; | ||
916 | } | ||
917 | } | ||
918 | |||
903 | void root_menu(void) | 919 | void root_menu(void) |
904 | { | 920 | { |
905 | int previous_browser = GO_TO_FILEBROWSER; | 921 | int previous_browser = browser_default(); |
906 | int selected = 0; | 922 | int selected = 0; |
907 | int shortcut_origin = GO_TO_ROOT; | 923 | int shortcut_origin = GO_TO_ROOT; |
908 | 924 | ||
@@ -932,12 +948,13 @@ void root_menu(void) | |||
932 | last_screen = GO_TO_ROOT; | 948 | last_screen = GO_TO_ROOT; |
933 | break; | 949 | break; |
934 | #ifdef HAVE_TAGCACHE | 950 | #ifdef HAVE_TAGCACHE |
935 | case GO_TO_FILEBROWSER: | ||
936 | case GO_TO_DBBROWSER: | 951 | case GO_TO_DBBROWSER: |
952 | #endif | ||
953 | case GO_TO_FILEBROWSER: | ||
954 | case GO_TO_PLAYLISTS_SCREEN: | ||
937 | previous_browser = next_screen; | 955 | previous_browser = next_screen; |
938 | goto load_next_screen; | 956 | goto load_next_screen; |
939 | break; | 957 | break; |
940 | #endif /* With !HAVE_TAGCACHE previous_browser is always GO_TO_FILEBROWSER */ | ||
941 | #if CONFIG_TUNER | 958 | #if CONFIG_TUNER |
942 | case GO_TO_WPS: | 959 | case GO_TO_WPS: |
943 | case GO_TO_FM: | 960 | case GO_TO_FM: |
@@ -1030,7 +1047,8 @@ void root_menu(void) | |||
1030 | last_screen = GO_TO_PLUGIN; | 1047 | last_screen = GO_TO_PLUGIN; |
1031 | } | 1048 | } |
1032 | } | 1049 | } |
1033 | previous_browser = (next_screen != GO_TO_WPS) ? GO_TO_FILEBROWSER : GO_TO_PLUGIN; | 1050 | previous_browser = (next_screen != GO_TO_WPS) ? browser_default() : |
1051 | GO_TO_PLUGIN; | ||
1034 | break; | 1052 | break; |
1035 | } | 1053 | } |
1036 | default: | 1054 | 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 | |||
127 | QUEUE_SHOW_IN_SUBMENU | 127 | QUEUE_SHOW_IN_SUBMENU |
128 | }; | 128 | }; |
129 | 129 | ||
130 | enum | ||
131 | { | ||
132 | BROWSER_DEFAULT_FILES = 0, | ||
133 | #ifdef HAVE_TAGCACHE | ||
134 | BROWSER_DEFAULT_DB, | ||
135 | #endif | ||
136 | BROWSER_DEFAULT_PL_CAT | ||
137 | }; | ||
138 | |||
130 | #ifdef HAVE_ALBUMART | 139 | #ifdef HAVE_ALBUMART |
131 | enum | 140 | enum |
132 | { | 141 | { |
@@ -608,6 +617,8 @@ struct user_settings | |||
608 | unsigned char colors_file[MAX_FILENAME+1]; | 617 | unsigned char colors_file[MAX_FILENAME+1]; |
609 | #endif | 618 | #endif |
610 | 619 | ||
620 | int browser_default; /* Default browser when accessed from WPS */ | ||
621 | |||
611 | /* playlist/playback settings */ | 622 | /* playlist/playback settings */ |
612 | int repeat_mode; /* 0=off 1=repeat all 2=repeat one 3=shuffle 4=ab */ | 623 | int repeat_mode; /* 0=off 1=repeat all 2=repeat one 3=shuffle 4=ab */ |
613 | int next_folder; /* move to next folder */ | 624 | 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[] = { | |||
1852 | ID2P(LANG_SET_BOOL_YES), | 1852 | ID2P(LANG_SET_BOOL_YES), |
1853 | ID2P(LANG_IN_SUBMENU)), | 1853 | ID2P(LANG_IN_SUBMENU)), |
1854 | 1854 | ||
1855 | CHOICE_SETTING(0, browser_default, LANG_DEFAULT_BROWSER, 0, | ||
1856 | "default browser", | ||
1857 | #ifdef HAVE_TAGCACHE | ||
1858 | "files,database,playlists", | ||
1859 | #else | ||
1860 | "files,playlists", | ||
1861 | #endif | ||
1862 | NULL, | ||
1863 | #ifdef HAVE_TAGCACHE | ||
1864 | 3 | ||
1865 | #else | ||
1866 | 2 | ||
1867 | #endif | ||
1868 | ,ID2P(LANG_DIR_BROWSER), | ||
1869 | #ifdef HAVE_TAGCACHE | ||
1870 | ID2P(LANG_TAGCACHE), | ||
1871 | #endif | ||
1872 | ID2P(LANG_CATALOG)), | ||
1873 | |||
1855 | #ifdef HAVE_BACKLIGHT | 1874 | #ifdef HAVE_BACKLIGHT |
1856 | CHOICE_SETTING(0, backlight_on_button_hold, | 1875 | CHOICE_SETTING(0, backlight_on_button_hold, |
1857 | LANG_BACKLIGHT_ON_BUTTON_HOLD, | 1876 | LANG_BACKLIGHT_ON_BUTTON_HOLD, |