From a7d0ff200066ff4d102ffff9e24d3c2b8ef7fde5 Mon Sep 17 00:00:00 2001 From: Christian Soffke Date: Sun, 19 Nov 2023 01:12:36 +0100 Subject: Playlist Viewer: Reload indices after saving currently playing playlist First index may have changed Change-Id: If6c2fbb42014610aeae48918168c32ca82fb9b5b --- apps/playlist_viewer.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'apps/playlist_viewer.c') diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c index d0fc9a8370..1d8b1b1b03 100644 --- a/apps/playlist_viewer.c +++ b/apps/playlist_viewer.c @@ -81,6 +81,7 @@ enum pv_onplay_result { PV_ONPLAY_ITEM_REMOVED, PV_ONPLAY_CHANGED, PV_ONPLAY_UNCHANGED, + PV_ONPLAY_SAVED, }; struct playlist_buffer @@ -661,7 +662,8 @@ static enum pv_onplay_result onplay_menu(int index) break; case 6: save_playlist_screen(viewer.playlist); - ret = PV_ONPLAY_UNCHANGED; + /* playlist indices of current playlist may have changed */ + ret = viewer.playlist ? PV_ONPLAY_UNCHANGED : PV_ONPLAY_SAVED; break; case 7: /* playlist viewer settings */ @@ -784,11 +786,9 @@ static int playlist_callback_voice(int selected_item, void *data) static void update_lists(struct gui_synclist * playlist_lists, bool init) { if (init) - { gui_synclist_init(playlist_lists, playlist_callback_name, &viewer, false, 1, NULL); - gui_synclist_set_nb_items(playlist_lists, viewer.num_tracks); - } + gui_synclist_set_nb_items(playlist_lists, viewer.num_tracks); gui_synclist_set_voice_callback(playlist_lists, global_settings.talk_file? &playlist_callback_voice:NULL); @@ -805,9 +805,11 @@ static bool update_viewer_with_changes(struct gui_synclist *playlist_lists, enum { bool exit = false; if (res == PV_ONPLAY_CHANGED || + res == PV_ONPLAY_SAVED || res == PV_ONPLAY_ITEM_REMOVED) { - playlist_set_modified(viewer.playlist, true); + if (res != PV_ONPLAY_SAVED) + playlist_set_modified(viewer.playlist, true); if (res == PV_ONPLAY_ITEM_REMOVED) gui_synclist_del_item(playlist_lists); -- cgit v1.2.3