static void confirm_delete (void) { int playlist = aud_playlist_get_active (); int entry_count = aud_playlist_entry_count (playlist); for (int i = 0; i < entry_count; i ++) { if (! aud_playlist_entry_get_selected (playlist, i)) continue; char * uri = aud_playlist_entry_get_filename (playlist, i); char * filename = uri_to_filename (uri); if (filename) { if (aud_get_bool ("delete_files", "use_trash")) move_to_trash (filename); else really_delete (filename); str_unref (filename); } else { SPRINTF (error, _("Error deleting %s: not a local file."), uri); aud_interface_show_error (error); } str_unref (uri); } aud_playlist_delete_selected (playlist); }
static void shift_rows (void * user, gint row, gint before) { GArray * shift = g_array_new (FALSE, FALSE, sizeof (gint)); gint list = aud_playlist_get_active (); gint count = aud_playlist_queue_count (list); for (gint i = 0; i < count; i ++) { gint entry = aud_playlist_queue_get_entry (list, i); if (aud_playlist_entry_get_selected (list, entry)) { g_array_append_val (shift, entry); if (i < before) before --; } } aud_playlist_queue_delete_selected (list); for (gint i = 0; i < shift->len; i ++) aud_playlist_queue_insert (list, before + i, g_array_index (shift, gint, i)); g_array_free (shift, TRUE); }
void playlist_shift (gint offset) { gint list = aud_playlist_get_active (); gint focus = playlist_get_focus (list); if (focus < 0 || ! aud_playlist_entry_get_selected (list, focus)) return; focus += aud_playlist_shift (list, focus, offset); playlist_set_focus (list, focus); }
gint playlist_count_selected_in_range (gint list, gint top, gint length) { gint selected = 0; gint count; for (count = 0; count < length; count ++) { if (aud_playlist_entry_get_selected (list, top + count)) selected ++; } return selected; }
static void remove_selected (void) { gint list = aud_playlist_get_active (); gint count = aud_playlist_queue_count (list); for (gint i = 0; i < count; ) { gint entry = aud_playlist_queue_get_entry (list, i); if (aud_playlist_entry_get_selected (list, entry)) { aud_playlist_queue_delete (list, i, 1); aud_playlist_entry_set_selected (list, entry, FALSE); count --; } else i ++; } }
GList * get_upload_list(void) { GList *up_list=NULL; gint current_play = aud_playlist_get_active(); gint i = (aud_playlist_entry_count(current_play) - 1); for (; i >= 0; i--) { if (aud_playlist_entry_get_selected(current_play, i)) { Tuple * tuple = aud_playlist_entry_get_tuple (current_play, i, FALSE); aud_playlist_entry_set_selected(current_play, i, FALSE); up_list = g_list_prepend (up_list, (void *) tuple); if (tuple) tuple_unref (tuple); } } return g_list_reverse(up_list); }
static gboolean get_selected (void * user, gint row) { gint list = aud_playlist_get_active (); return aud_playlist_entry_get_selected (list, aud_playlist_queue_get_entry (list, row)); }
static gboolean get_selected (void * user, gint row) { return aud_playlist_entry_get_selected (((PlaylistWidgetData *) user)->list, row); }