gui/filter: Add functions for getting the SearchEntry and ComboBox

And take this chance to rename o_search -> filter_search.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2016-08-22 07:51:40 -04:00
parent ad29c520d4
commit b9916706f1
4 changed files with 19 additions and 9 deletions

View File

@ -90,7 +90,6 @@ static gboolean __queue_visible_func(GtkTreeModel *model, GtkTreeIter *iter,
void __queue_filter(GtkSearchEntry *entry, gpointer data)
{
const gchar *text = gtk_entry_get_text(GTK_ENTRY(entry));
GtkComboBox *combo = GTK_COMBO_BOX(gui_builder_widget("filter_how"));
if (!gq_queue)
return;
@ -100,7 +99,7 @@ void __queue_filter(GtkSearchEntry *entry, gpointer data)
}
if (strlen(text) > 0) {
gq_queue->gq_search = g_str_tokenize_and_fold(text, NULL, NULL);
gq_queue->gq_active = gtk_combo_box_get_active(combo);
gq_queue->gq_active = gtk_combo_box_get_active(gui_filter_how());
}
gtk_tree_model_filter_refilter(gui_filter_get());
@ -109,15 +108,14 @@ void __queue_filter(GtkSearchEntry *entry, gpointer data)
void __queue_filter_how_changed(int n)
{
__queue_filter(GTK_SEARCH_ENTRY(gui_builder_widget("o_search")), NULL);
__queue_filter(gui_filter_search(), NULL);
}
void gui_queue_init(void)
{
gtk_tree_model_filter_set_visible_func(gui_filter_get(),
__queue_visible_func,
gui_builder_object("o_search"),
NULL);
NULL, NULL);
}
struct gui_queue *gui_queue_alloc(struct playlist *playlist, struct queue *queue,
@ -151,7 +149,7 @@ void gui_queue_free(struct queue *queue)
void gui_queue_show(struct gui_queue *queue)
{
GtkButton *random = GTK_BUTTON(gui_builder_widget("o_random"));
GtkEntry *search = GTK_ENTRY(gui_builder_widget("o_search"));
GtkEntry *search = GTK_ENTRY(gui_filter_search());
bool has_random = false;
gchar *text;

View File

@ -20,4 +20,16 @@ struct track *gui_filter_path_get_track(GtkTreePath *);
/* Called to convert a filter model path into a queue index. */
unsigned int gui_filter_path_get_index(GtkTreePath *);
/* Called to access the filter search-entry. */
static inline GtkSearchEntry *gui_filter_search(void)
{
return GTK_SEARCH_ENTRY(gui_builder_widget("filter_search"));
}
/* Called to access the filter-how chooser. */
static inline GtkComboBox *gui_filter_how(void)
{
return GTK_COMBO_BOX(gui_builder_widget("filter_how"));
}
#endif /* OCARINA_GUI_FILTER_H */

View File

@ -843,7 +843,7 @@ audio-volume-medium</property>
</packing>
</child>
<child>
<object class="GtkSearchEntry" id="o_search">
<object class="GtkSearchEntry" id="filter_search">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="valign">center</property>

View File

@ -46,7 +46,7 @@ static void test_queue()
GtkEntry *search;
struct queue q;
search = GTK_ENTRY(gui_builder_widget("o_search"));
search = GTK_ENTRY(gui_filter_search());
random = GTK_TOGGLE_BUTTON(gui_builder_widget("o_random"));
/* Test initialization */
@ -96,7 +96,7 @@ static void test_tracks()
struct gui_queue *gq;
GtkEntry *search;
search = GTK_ENTRY(gui_builder_widget("o_search"));
search = GTK_ENTRY(gui_filter_search());
gq = gui_queue(playlist_get_queue(PL_SYSTEM, "Collection"));