diff options
Diffstat (limited to 'apps/onplay.c')
-rw-r--r-- | apps/onplay.c | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/apps/onplay.c b/apps/onplay.c index f2dbf8b3bf..7ea6b9035b 100644 --- a/apps/onplay.c +++ b/apps/onplay.c | |||
@@ -144,6 +144,15 @@ static bool clipboard_clip(struct clipboard *clip, const char *path, | |||
144 | /* interface function. */ | 144 | /* interface function. */ |
145 | /* ----------------------------------------------------------------------- */ | 145 | /* ----------------------------------------------------------------------- */ |
146 | 146 | ||
147 | |||
148 | static int bookmark_load_menu_wrapper(void) | ||
149 | { | ||
150 | if (get_current_activity() == ACTIVITY_CONTEXTMENU) /* get rid of parent activity */ | ||
151 | pop_current_activity(ACTIVITY_REFRESH_DEFERRED); /* when called from ctxt menu */ | ||
152 | |||
153 | return bookmark_load_menu(); | ||
154 | } | ||
155 | |||
147 | static int bookmark_menu_callback(int action, | 156 | static int bookmark_menu_callback(int action, |
148 | const struct menu_item_ex *this_item, | 157 | const struct menu_item_ex *this_item, |
149 | struct gui_synclist *this_list); | 158 | struct gui_synclist *this_list); |
@@ -153,7 +162,7 @@ MENUITEM_FUNCTION(bookmark_create_menu_item, 0, | |||
153 | bookmark_menu_callback, Icon_Bookmark); | 162 | bookmark_menu_callback, Icon_Bookmark); |
154 | MENUITEM_FUNCTION(bookmark_load_menu_item, 0, | 163 | MENUITEM_FUNCTION(bookmark_load_menu_item, 0, |
155 | ID2P(LANG_BOOKMARK_MENU_LIST), | 164 | ID2P(LANG_BOOKMARK_MENU_LIST), |
156 | bookmark_load_menu, NULL, | 165 | bookmark_load_menu_wrapper, NULL, |
157 | bookmark_menu_callback, Icon_Bookmark); | 166 | bookmark_menu_callback, Icon_Bookmark); |
158 | MAKE_ONPLAYMENU(bookmark_menu, ID2P(LANG_BOOKMARK_MENU), | 167 | MAKE_ONPLAYMENU(bookmark_menu, ID2P(LANG_BOOKMARK_MENU), |
159 | bookmark_menu_callback, Icon_Bookmark, | 168 | bookmark_menu_callback, Icon_Bookmark, |
@@ -462,7 +471,18 @@ static bool save_playlist(void) | |||
462 | return false; | 471 | return false; |
463 | } | 472 | } |
464 | 473 | ||
465 | extern struct menu_item_ex view_cur_playlist; /* from playlist_menu.c */ | 474 | static int wps_view_cur_playlist(void) |
475 | { | ||
476 | if (get_current_activity() == ACTIVITY_CONTEXTMENU) /* get rid of parent activity */ | ||
477 | pop_current_activity(ACTIVITY_REFRESH_DEFERRED); /* when called from ctxt menu */ | ||
478 | |||
479 | playlist_viewer_ex(NULL, NULL); | ||
480 | |||
481 | return 0; | ||
482 | } | ||
483 | |||
484 | MENUITEM_FUNCTION(wps_view_cur_playlist_item, 0, ID2P(LANG_VIEW_DYNAMIC_PLAYLIST), | ||
485 | wps_view_cur_playlist, NULL, NULL, Icon_NOICON); | ||
466 | MENUITEM_FUNCTION(search_playlist_item, 0, ID2P(LANG_SEARCH_IN_PLAYLIST), | 486 | MENUITEM_FUNCTION(search_playlist_item, 0, ID2P(LANG_SEARCH_IN_PLAYLIST), |
467 | search_playlist, NULL, NULL, Icon_Playlist); | 487 | search_playlist, NULL, NULL, Icon_Playlist); |
468 | MENUITEM_FUNCTION(playlist_save_item, 0, ID2P(LANG_SAVE_DYNAMIC_PLAYLIST), | 488 | MENUITEM_FUNCTION(playlist_save_item, 0, ID2P(LANG_SAVE_DYNAMIC_PLAYLIST), |
@@ -473,7 +493,7 @@ MENUITEM_FUNCTION(playing_time_item, 0, ID2P(LANG_PLAYING_TIME), | |||
473 | playing_time, NULL, NULL, Icon_Playlist); | 493 | playing_time, NULL, NULL, Icon_Playlist); |
474 | MAKE_ONPLAYMENU( wps_playlist_menu, ID2P(LANG_PLAYLIST), | 494 | MAKE_ONPLAYMENU( wps_playlist_menu, ID2P(LANG_PLAYLIST), |
475 | NULL, Icon_Playlist, | 495 | NULL, Icon_Playlist, |
476 | &view_cur_playlist, &search_playlist_item, | 496 | &wps_view_cur_playlist_item, &search_playlist_item, |
477 | &playlist_save_item, &reshuffle_item, &playing_time_item | 497 | &playlist_save_item, &reshuffle_item, &playing_time_item |
478 | ); | 498 | ); |
479 | 499 | ||
@@ -1499,6 +1519,9 @@ MENUITEM_FUNCTION(view_cue_item, 0, ID2P(LANG_BROWSE_CUESHEET), | |||
1499 | 1519 | ||
1500 | static int browse_id3_wrapper(void) | 1520 | static int browse_id3_wrapper(void) |
1501 | { | 1521 | { |
1522 | if (get_current_activity() == ACTIVITY_CONTEXTMENU) /* get rid of parent activity */ | ||
1523 | pop_current_activity(ACTIVITY_REFRESH_DEFERRED); /* when called from ctxt menu */ | ||
1524 | |||
1502 | if (browse_id3(audio_current_track(), | 1525 | if (browse_id3(audio_current_track(), |
1503 | playlist_get_display_index(), | 1526 | playlist_get_display_index(), |
1504 | playlist_amount())) | 1527 | playlist_amount())) |
@@ -1954,7 +1977,9 @@ int onplay(char* file, int attr, int from, bool hotkey) | |||
1954 | else | 1977 | else |
1955 | menu = &tree_onplay_menu; | 1978 | menu = &tree_onplay_menu; |
1956 | menu_selection = do_menu(menu, NULL, NULL, false); | 1979 | menu_selection = do_menu(menu, NULL, NULL, false); |
1957 | pop_current_activity(); | 1980 | |
1981 | if (get_current_activity() == ACTIVITY_CONTEXTMENU) /* Activity may have been */ | ||
1982 | pop_current_activity(ACTIVITY_REFRESH_NOW); /* popped already by menu item */ | ||
1958 | 1983 | ||
1959 | switch (menu_selection) | 1984 | switch (menu_selection) |
1960 | { | 1985 | { |