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-ef1e7d8896.tar.gz rockbox-ef1e7d8896.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 @@ #include "plugin.h" #include "file.h" #include "pathfuncs.h" +#include "playlist_menu.h" /*#define LOGF_ENABLE*/ #include "logf.h" @@ -1096,6 +1097,9 @@ static bool play_bookmark(const char* bookmark) /* ----------------------------------------------------------------------- */ bool bookmark_create_menu(void) { + if (!bookmark_is_bookmarkable_state()) + save_playlist_screen(NULL); + return write_bookmark(true); } /* ----------------------------------------------------------------------- */ 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, switch (action) { case ACTION_REQUEST_MENUITEM: - /* hide create bookmark option if bookmarking isn't currently possible (no track playing, queued tracks...) */ - if (this_item == &bookmark_create_menu_item) - { - if (!bookmark_is_bookmarkable_state()) - return ACTION_EXIT_MENUITEM; - } /* hide loading bookmarks menu if no bookmarks exist */ - else if (this_item == &bookmark_load_menu_item) + if (this_item == &bookmark_load_menu_item) { if (!bookmark_exists()) return ACTION_EXIT_MENUITEM; } - /* hide the bookmark menu if bookmarks can't be loaded or created */ - else if (!bookmark_is_bookmarkable_state() && !bookmark_exists()) - return ACTION_EXIT_MENUITEM; break; case ACTION_EXIT_MENUITEM: 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 @@ the bookmark to load. There are other ways to load a bookmarks mentioned below. - \note{Bookmarking does not work with dynamic (i.e. modified but not saved) - playlists, such as when playing tracks from the \setting{Database} instead of - the \setting{File Browser}. - If you do not see the option to create a bookmark in the \setting{WPS Context Menu}, - try saving the current playlist first. + \note{If the current playlist has been modified or is unsaved, such as when + playing tracks from the \setting{Database}, Rockbox will automatically + offer to save the playlist to a file when you attempt to create a bookmark. Queued tracks (see \reference{ref:queuing}) do not get saved to the playlist file. You're asked to confirm their removal when saving, so that the current playlist 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 then you can view a list of several recent bookmarks here and select one to jump straight to that track.\\* - \note{A track launched from the file browser can be bookmarked as is. If - tracks are launched via the database, or the current playlist has been modified, - creating a bookmark requires that you save the playlist first.\\*} + \note{A track launched from the file browser can be bookmarked as-is. For + tracks launched via the database, or for modified playlists, you're + asked to save the playlist to a file when creating a bookmark.\\*} \begin{btnmap} \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. \subsubsection{\label{ref:createbookmark}Bookmarks} Create a bookmark in the currently playing track, or display existing entries. Bookmarks can only be used with directories, or playlists stored on -disk. If you don't see the option to create a bookmark, try saving the -current playlist first. +disk. You'll be asked to provide the name for a file to save the playlist to, +if necessary. \note{If you've enabled options for queuing tracks (see \reference{ref:queuing}), keep in mind that those are not saved to a playlist file. |