static void begin_add (const char * path) { int list = get_playlist (FALSE, FALSE); if (list < 0) list = create_playlist (); aud_set_str ("search-tool", "path", path); char * uri = filename_to_uri (path); g_return_if_fail (uri); if (! g_str_has_suffix (uri, "/")) { SCONCAT2 (temp, uri, "/"); str_unref (uri); uri = str_get (temp); } destroy_added_table (); added_table = g_hash_table_new_full ((GHashFunc) str_hash, (GEqualFunc) str_equal, (GDestroyNotify) str_unref, NULL); int entries = aud_playlist_entry_count (list); for (int entry = 0; entry < entries; entry ++) { char * filename = aud_playlist_entry_get_filename (list, entry); if (g_str_has_prefix (filename, uri) && ! g_hash_table_contains (added_table, filename)) { aud_playlist_entry_set_selected (list, entry, FALSE); g_hash_table_insert (added_table, filename, NULL); } else { aud_playlist_entry_set_selected (list, entry, TRUE); str_unref (filename); } } aud_playlist_delete_selected (list); aud_playlist_remove_failed (list); Index * add = index_new (); index_insert (add, -1, uri); aud_playlist_entry_insert_filtered (list, -1, add, NULL, filter_cb, NULL, FALSE); adding = TRUE; }
static void select_all (void * user, gboolean selected) { gint list = aud_playlist_get_active (); gint count = aud_playlist_queue_count (list); for (gint i = 0; i < count; i ++) aud_playlist_entry_set_selected (list, aud_playlist_queue_get_entry (list, i), selected); }
void ui_playlist_notebook_create_tab(gint playlist) { GtkWidget *scrollwin, *treeview; GtkWidget *label, *entry, *ebox, *hbox; GtkAdjustment *vscroll; gint position = aud_playlist_get_position (playlist); scrollwin = gtk_scrolled_window_new(NULL, NULL); vscroll = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(scrollwin)); treeview = ui_playlist_widget_new(playlist); g_object_set_data(G_OBJECT(scrollwin), "treeview", treeview); gtk_container_add(GTK_CONTAINER(scrollwin), treeview); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_widget_show_all(scrollwin); ebox = gtk_event_box_new(); gtk_event_box_set_visible_window ((GtkEventBox *) ebox, FALSE); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); label = gtk_label_new (""); set_tab_label (playlist, (GtkLabel *) label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); entry = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0); gtk_container_add(GTK_CONTAINER(ebox), hbox); gtk_widget_show_all(ebox); gtk_widget_hide(entry); gtk_box_pack_end ((GtkBox *) hbox, make_close_button (playlist), FALSE, FALSE, 0); g_object_set_data(G_OBJECT(ebox), "label", label); g_object_set_data(G_OBJECT(ebox), "entry", entry); g_object_set_data(G_OBJECT(ebox), "page", scrollwin); gtk_notebook_insert_page (UI_PLAYLIST_NOTEBOOK, scrollwin, ebox, playlist); gtk_notebook_set_tab_reorderable(UI_PLAYLIST_NOTEBOOK, scrollwin, TRUE); g_object_set_data ((GObject *) treeview, "playlist-id", GINT_TO_POINTER (aud_playlist_get_unique_id (playlist))); if (position >= 0) { aud_playlist_select_all (playlist, FALSE); aud_playlist_entry_set_selected (playlist, position, TRUE); audgui_list_set_highlight (treeview, position); audgui_list_set_focus (treeview, position); } g_signal_connect(ebox, "button-press-event", G_CALLBACK(tab_button_press_cb), NULL); g_signal_connect(ebox, "key-press-event", G_CALLBACK(tab_key_press_cb), NULL); g_signal_connect(entry, "activate", G_CALLBACK(tab_title_save), ebox); g_signal_connect_swapped (vscroll, "value-changed", G_CALLBACK(ui_playlist_widget_scroll), treeview); }
void ui_playlist_notebook_position (void * data, void * user) { gint list = GPOINTER_TO_INT (data); if (aud_get_bool ("gtkui", "autoscroll")) { aud_playlist_select_all (list, FALSE); if (aud_playlist_get_position (list) >= 0) aud_playlist_entry_set_selected (list, aud_playlist_get_position (list), TRUE); } playlist_set_focus (list, CURRENT_POS); }
void playlist_delete_selected (void) { gint list = aud_playlist_get_active (); gint focus = playlist_get_focus (list); focus -= playlist_count_selected_in_range (list, 0, focus); aud_drct_pl_delete_selected (list); if (aud_playlist_selected_count (list)) /* song changed? */ return; if (focus == aud_playlist_entry_count (list)) focus --; if (focus >= 0) { aud_playlist_entry_set_selected (list, focus, TRUE); playlist_set_focus (list, focus); } }
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 void set_selected (void * user, gint row, gboolean selected) { gint list = aud_playlist_get_active (); aud_playlist_entry_set_selected (list, aud_playlist_queue_get_entry (list, row), selected); }
static void set_selected (void * user, gint row, gboolean selected) { aud_playlist_entry_set_selected (((PlaylistWidgetData *) user)->list, row, selected); }