summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Soffke <christian.soffke@gmail.com>2024-05-26 19:13:55 +0200
committerChristian Soffke <christian.soffke@gmail.com>2024-06-01 11:42:47 -0400
commitef1e7d88963aa411f06448f10b3b63886c157c9c (patch)
tree46d64aa9ae593cdff436a7790e721824cdea1ceb
parentd1aeb7db9dbc3cdd0db25ab709b9e2d2322ef8d2 (diff)
downloadrockbox-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.c4
-rw-r--r--apps/onplay.c11
-rw-r--r--manual/configure_rockbox/bookmarking.tex8
-rw-r--r--manual/main_menu/main.tex6
-rw-r--r--manual/rockbox_interface/wps.tex4
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.