diff options
author | Christian Soffke <christian.soffke@gmail.com> | 2024-05-26 19:13:55 +0200 |
---|---|---|
committer | Christian Soffke <christian.soffke@gmail.com> | 2024-06-01 11:42:47 -0400 |
commit | ef1e7d88963aa411f06448f10b3b63886c157c9c (patch) | |
tree | 46d64aa9ae593cdff436a7790e721824cdea1ceb | |
parent | d1aeb7db9dbc3cdd0db25ab709b9e2d2322ef8d2 (diff) | |
download | rockbox-ef1e7d88963aa411f06448f10b3b63886c157c9c.tar.gz rockbox-ef1e7d88963aa411f06448f10b3b63886c157c9c.zip |
bookmarks: show 'Create Bookmark' for unsaved playlists
Instead of hiding this option when the current playlist
is unsaved, we can offer to save the playlist, if
necessary, before attempting to create a bookmark.
This simplifies the workflow by getting rid of steps 1
and 2 that a user currently needs to perform:
1) Open context menu, check if "Create Bookmark" option
is available
2) If not: Re-open context menu. Select Current Playlist
-> Save Current Playlist
3) Re-open context menu. Select Bookmarks
-> Create Bookmark
Change-Id: Ia9fb5f9db95e2fcbde03470a3c3745824424a339
-rw-r--r-- | apps/bookmark.c | 4 | ||||
-rw-r--r-- | apps/onplay.c | 11 | ||||
-rw-r--r-- | manual/configure_rockbox/bookmarking.tex | 8 | ||||
-rw-r--r-- | manual/main_menu/main.tex | 6 | ||||
-rw-r--r-- | manual/rockbox_interface/wps.tex | 4 |
5 files changed, 13 insertions, 20 deletions
diff --git a/apps/bookmark.c b/apps/bookmark.c index 3087b7302b..08f63469aa 100644 --- a/apps/bookmark.c +++ b/apps/bookmark.c | |||
@@ -42,6 +42,7 @@ | |||
42 | #include "plugin.h" | 42 | #include "plugin.h" |
43 | #include "file.h" | 43 | #include "file.h" |
44 | #include "pathfuncs.h" | 44 | #include "pathfuncs.h" |
45 | #include "playlist_menu.h" | ||
45 | 46 | ||
46 | /*#define LOGF_ENABLE*/ | 47 | /*#define LOGF_ENABLE*/ |
47 | #include "logf.h" | 48 | #include "logf.h" |
@@ -1096,6 +1097,9 @@ static bool play_bookmark(const char* bookmark) | |||
1096 | /* ----------------------------------------------------------------------- */ | 1097 | /* ----------------------------------------------------------------------- */ |
1097 | bool bookmark_create_menu(void) | 1098 | bool bookmark_create_menu(void) |
1098 | { | 1099 | { |
1100 | if (!bookmark_is_bookmarkable_state()) | ||
1101 | save_playlist_screen(NULL); | ||
1102 | |||
1099 | return write_bookmark(true); | 1103 | return write_bookmark(true); |
1100 | } | 1104 | } |
1101 | /* ----------------------------------------------------------------------- */ | 1105 | /* ----------------------------------------------------------------------- */ |
diff --git a/apps/onplay.c b/apps/onplay.c index 71f902900d..2a2ac16b04 100644 --- a/apps/onplay.c +++ b/apps/onplay.c | |||
@@ -177,21 +177,12 @@ static int bookmark_menu_callback(int action, | |||
177 | switch (action) | 177 | switch (action) |
178 | { | 178 | { |
179 | case ACTION_REQUEST_MENUITEM: | 179 | case ACTION_REQUEST_MENUITEM: |
180 | /* hide create bookmark option if bookmarking isn't currently possible (no track playing, queued tracks...) */ | ||
181 | if (this_item == &bookmark_create_menu_item) | ||
182 | { | ||
183 | if (!bookmark_is_bookmarkable_state()) | ||
184 | return ACTION_EXIT_MENUITEM; | ||
185 | } | ||
186 | /* hide loading bookmarks menu if no bookmarks exist */ | 180 | /* hide loading bookmarks menu if no bookmarks exist */ |
187 | else if (this_item == &bookmark_load_menu_item) | 181 | if (this_item == &bookmark_load_menu_item) |
188 | { | 182 | { |
189 | if (!bookmark_exists()) | 183 | if (!bookmark_exists()) |
190 | return ACTION_EXIT_MENUITEM; | 184 | return ACTION_EXIT_MENUITEM; |
191 | } | 185 | } |
192 | /* hide the bookmark menu if bookmarks can't be loaded or created */ | ||
193 | else if (!bookmark_is_bookmarkable_state() && !bookmark_exists()) | ||
194 | return ACTION_EXIT_MENUITEM; | ||
195 | break; | 186 | break; |
196 | case ACTION_EXIT_MENUITEM: | 187 | case ACTION_EXIT_MENUITEM: |
197 | settings_save(); | 188 | settings_save(); |
diff --git a/manual/configure_rockbox/bookmarking.tex b/manual/configure_rockbox/bookmarking.tex index d87b5ad8a7..a0a047e190 100644 --- a/manual/configure_rockbox/bookmarking.tex +++ b/manual/configure_rockbox/bookmarking.tex | |||
@@ -14,11 +14,9 @@ | |||
14 | the bookmark to load. There are other ways to load a bookmarks mentioned | 14 | the bookmark to load. There are other ways to load a bookmarks mentioned |
15 | below. | 15 | below. |
16 | 16 | ||
17 | \note{Bookmarking does not work with dynamic (i.e. modified but not saved) | 17 | \note{If the current playlist has been modified or is unsaved, such as when |
18 | playlists, such as when playing tracks from the \setting{Database} instead of | 18 | playing tracks from the \setting{Database}, Rockbox will automatically |
19 | the \setting{File Browser}. | 19 | offer to save the playlist to a file when you attempt to create a bookmark. |
20 | If you do not see the option to create a bookmark in the \setting{WPS Context Menu}, | ||
21 | try saving the current playlist first. | ||
22 | Queued tracks (see \reference{ref:queuing}) do not get saved to the playlist file. | 20 | Queued tracks (see \reference{ref:queuing}) do not get saved to the playlist file. |
23 | You're asked to confirm their removal when saving, so that the current playlist | 21 | You're asked to confirm their removal when saving, so that the current playlist |
24 | can be bookmarked. } | 22 | can be bookmarked. } |
diff --git a/manual/main_menu/main.tex b/manual/main_menu/main.tex index f09606a20b..f09cc448cb 100644 --- a/manual/main_menu/main.tex +++ b/manual/main_menu/main.tex | |||
@@ -53,9 +53,9 @@ If the \setting{Save a list of recently created bookmarks} option is enabled | |||
53 | then you can view a list of several recent bookmarks here and select one to | 53 | then you can view a list of several recent bookmarks here and select one to |
54 | jump straight to that track.\\* | 54 | jump straight to that track.\\* |
55 | 55 | ||
56 | \note{A track launched from the file browser can be bookmarked as is. If | 56 | \note{A track launched from the file browser can be bookmarked as-is. For |
57 | tracks are launched via the database, or the current playlist has been modified, | 57 | tracks launched via the database, or for modified playlists, you're |
58 | creating a bookmark requires that you save the playlist first.\\*} | 58 | asked to save the playlist to a file when creating a bookmark.\\*} |
59 | 59 | ||
60 | \begin{btnmap} | 60 | \begin{btnmap} |
61 | \ActionStdNext | 61 | \ActionStdNext |
diff --git a/manual/rockbox_interface/wps.tex b/manual/rockbox_interface/wps.tex index 839392b054..b00d066525 100644 --- a/manual/rockbox_interface/wps.tex +++ b/manual/rockbox_interface/wps.tex | |||
@@ -226,8 +226,8 @@ browser. The value wraps at 10. | |||
226 | \subsubsection{\label{ref:createbookmark}Bookmarks} | 226 | \subsubsection{\label{ref:createbookmark}Bookmarks} |
227 | Create a bookmark in the currently playing track, or display existing entries. | 227 | Create a bookmark in the currently playing track, or display existing entries. |
228 | Bookmarks can only be used with directories, or playlists stored on | 228 | Bookmarks can only be used with directories, or playlists stored on |
229 | disk. If you don't see the option to create a bookmark, try saving the | 229 | disk. You'll be asked to provide the name for a file to save the playlist to, |
230 | current playlist first. | 230 | if necessary. |
231 | 231 | ||
232 | \note{If you've enabled options for queuing tracks (see \reference{ref:queuing}), keep | 232 | \note{If you've enabled options for queuing tracks (see \reference{ref:queuing}), keep |
233 | in mind that those are not saved to a playlist file. | 233 | in mind that those are not saved to a playlist file. |