static void genre_selected_cb (RBPropertyView *propview, const char *name, RBIRadioSource *iradio_source) { if (iradio_source->priv->setting_new_query) return; g_free (iradio_source->priv->selected_genre); iradio_source->priv->selected_genre = g_strdup (name); rb_iradio_source_do_query (iradio_source); rb_source_notify_filter_changed (RB_SOURCE (iradio_source)); }
static void genre_selection_reset_cb (RBPropertyView *propview, RBIRadioSource *iradio_source) { if (iradio_source->priv->setting_new_query) return; g_free (iradio_source->priv->selected_genre); iradio_source->priv->selected_genre = NULL; rb_iradio_source_do_query (iradio_source); rb_source_notify_filter_changed (RB_SOURCE (iradio_source)); }
static void rb_static_playlist_source_browser_changed_cb (RBLibraryBrowser *browser, GParamSpec *pspec, RBStaticPlaylistSource *source) { RBEntryView *songs = rb_source_get_entry_view (RB_SOURCE (source)); RhythmDBQueryModel *query_model; g_object_get (browser, "output-model", &query_model, NULL); rb_entry_view_set_model (songs, query_model); rb_playlist_source_set_query_model (RB_PLAYLIST_SOURCE (source), query_model); g_object_unref (query_model); rb_source_notify_filter_changed (RB_SOURCE (source)); }
static void impl_reset_filters (RBSource *source) { RBStaticPlaylistSourcePrivate *priv = RB_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (source); gboolean changed = FALSE; if (rb_library_browser_reset (priv->browser)) changed = TRUE; if (priv->search_query != NULL) { changed = TRUE; rhythmdb_query_free (priv->search_query); priv->search_query = NULL; } if (changed) { rb_static_playlist_source_do_query (RB_STATIC_PLAYLIST_SOURCE (source)); rb_source_notify_filter_changed (source); } }
static void impl_search (RBSource *asource, RBSourceSearch *search, const char *cur_text, const char *new_text) { RBIRadioSource *source = RB_IRADIO_SOURCE (asource); if (source->priv->search_query != NULL) { rhythmdb_query_free (source->priv->search_query); } if (search == NULL) { search = source->priv->default_search; } source->priv->search_query = rb_source_search_create_query (search, source->priv->db, new_text); rb_iradio_source_do_query (source); rb_source_notify_filter_changed (RB_SOURCE (source)); }