diff --git a/gui/queue/label.cpp b/gui/queue/label.cpp index 515aa3eb..157631be 100644 --- a/gui/queue/label.cpp +++ b/gui/queue/label.cpp @@ -38,7 +38,7 @@ void CollectionLabel :: set_size() { gchar *size = g_strdup_printf("%u", queue_size(_queue)); collection_size->set_text(size); - gui_sidebar_set_size(_queue); + gui_sidebar_set_size(gui_queue(_queue)); g_free(size); } @@ -55,7 +55,7 @@ void HistoryLabel :: set_size() { gchar *size = g_strdup_printf("%u", queue_size(_queue)); history_size->set_text(size); - gui_sidebar_set_size(_queue); + gui_sidebar_set_size(gui_queue(_queue)); g_free(size); } @@ -88,6 +88,6 @@ void TempLabel :: set_size() { gchar *size = g_strdup_printf("%u", queue_size(_queue)); temp_size->set_text(size); - gui_sidebar_set_size(_queue); + gui_sidebar_set_size(gui_queue(_queue)); g_free(size); } diff --git a/gui/queue_tab.cpp b/gui/queue_tab.cpp index 78184a3a..63d000e5 100644 --- a/gui/queue_tab.cpp +++ b/gui/queue_tab.cpp @@ -108,7 +108,7 @@ QueueTab :: ~QueueTab() { queue_mapping.erase(&tab_vbox); tab_unmap(); - gui_sidebar_remove(tab_pq); + gui_sidebar_remove(gui_queue(tab_pq)); Glib :: wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")), false)->remove_page(tab_vbox); renumber_queues(); } diff --git a/gui/sidebar.c b/gui/sidebar.c index 520342a8..1b2bbe65 100644 --- a/gui/sidebar.c +++ b/gui/sidebar.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include @@ -33,20 +34,20 @@ static void __sidebar_set_size(GtkTreeIter *iter, const gchar *name, g_free(text); } -static void __sidebar_set_queue(GtkTreeIter *iter, struct queue *queue) +static void __sidebar_set_queue(GtkTreeIter *iter, struct gui_queue *queue) { gtk_list_store_set(sb_store, iter, SB_QUEUE, queue, -1); } -static struct queue *__sidebar_get_queue(GtkTreeIter *iter) +static struct gui_queue *__sidebar_get_queue(GtkTreeIter *iter) { - struct queue *queue; + struct gui_queue *queue; gtk_tree_model_get(GTK_TREE_MODEL(sb_store), iter, SB_QUEUE, &queue, -1); return queue; } -static bool __sidebar_find_queue(struct queue *queue, GtkTreeIter *iter) +static bool __sidebar_find_queue(struct gui_queue *queue, GtkTreeIter *iter) { gtk_tree_model_get_iter_first(GTK_TREE_MODEL(sb_store), iter); @@ -68,7 +69,7 @@ bool __sidebar_keypress(GtkTreeView *treeview, GdkEventKey *event, gpointer data GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview); GtkNotebook *notebook = GTK_NOTEBOOK(gui_builder_widget("o_notebook")); GtkTreeModel *model = GTK_TREE_MODEL(sb_store); - struct queue *queue; + struct gui_queue *queue; unsigned int page; GtkTreePath *path; GtkTreeIter iter; @@ -84,10 +85,10 @@ bool __sidebar_keypress(GtkTreeView *treeview, GdkEventKey *event, gpointer data queue = __sidebar_get_queue(&iter); page = gtk_tree_path_get_indices(path)[0]; - if (tempq_index(queue) == -1) + if (tempq_index(queue->gq_queue) == -1) goto out; - tempq_free(queue); + tempq_free(queue->gq_queue); gtk_list_store_remove(sb_store, &iter); gtk_notebook_remove_page(notebook, page); @@ -130,13 +131,13 @@ void gui_sidebar_init() sb_store = GTK_LIST_STORE(gui_builder_object("o_sidebar_store")); gtk_tree_model_get_iter_first(GTK_TREE_MODEL(sb_store), &iter); - __sidebar_set_queue(&iter, collection_get_queue()); + __sidebar_set_queue(&iter, gui_queue(collection_get_queue())); gtk_tree_model_iter_next(GTK_TREE_MODEL(sb_store), &iter); - __sidebar_set_queue(&iter, history_get_queue()); + __sidebar_set_queue(&iter, gui_queue(history_get_queue())); for (i = 0; i < tempq_count(); i++) - gui_sidebar_add(tempq_get(i)); + gui_sidebar_add(gui_queue(tempq_get(i))); /* Set sidebar width. */ pos = gui_settings_get(SIDEBAR_SETTING); @@ -161,13 +162,14 @@ void gui_sidebar_selected(enum sidebar_selection_t selected) __sidebar_deselect("o_sidebar_view"); } -void gui_sidebar_add(struct queue *queue) +void gui_sidebar_add(struct gui_queue *queue) { const gchar *text = "Queued Tracks\n0 tracks"; GtkTreeIter iter, sibling; gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(sb_store), - &sibling, NULL, tempq_index(queue)); + &sibling, NULL, + tempq_index(queue->gq_queue)); gtk_list_store_insert_before(sb_store, &iter, &sibling); gtk_list_store_set(sb_store, &iter, SB_IMAGE, "audio-x-generic", @@ -176,28 +178,19 @@ void gui_sidebar_add(struct queue *queue) SB_QUEUE, queue, -1); } -void gui_sidebar_remove(struct queue *queue) +void gui_sidebar_remove(struct gui_queue *queue) { GtkTreeIter iter; - if (!__sidebar_find_queue(queue, &iter)) - return; - - gtk_list_store_remove(sb_store, &iter); + if (__sidebar_find_queue(queue, &iter)) + gtk_list_store_remove(sb_store, &iter); } -void gui_sidebar_set_size(struct queue *queue) +void gui_sidebar_set_size(struct gui_queue *queue) { - const gchar *name = "Queued Tracks"; GtkTreeIter iter; - if (!__sidebar_find_queue(queue, &iter)) - return; - - if (queue == collection_get_queue()) - name = "Collection"; - else if (queue == history_get_queue()) - name = "History"; - - __sidebar_set_size(&iter, name, queue_size(queue)); + if (__sidebar_find_queue(queue, &iter)) + __sidebar_set_size(&iter, queue->gq_text, + queue_size(queue->gq_queue)); } diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 7dd957a1..86203bb3 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -222,7 +222,7 @@ bool Tab :: tab_queue_selected(bool random) queue *pq = tempq_alloc(&tempq_ops, flags); on_pq_created(pq, tempq_count() - 1); - gui_sidebar_add(pq); + gui_sidebar_add(gui_queue(pq)); tab_queue_add(pq); return true; } diff --git a/include/gui/sidebar.h b/include/gui/sidebar.h index b5c3a71b..965373c5 100644 --- a/include/gui/sidebar.h +++ b/include/gui/sidebar.h @@ -4,6 +4,7 @@ #ifndef OCARINA_GUI_SIDEBAR_H #define OCARINA_GUI_SIDEBAR_H +#include #include enum sidebar_selection_t { @@ -23,12 +24,12 @@ gboolean gui_sidebar_on_select(GtkTreeSelection *, GtkTreeModel *, void gui_sidebar_selected(enum sidebar_selection_t); /* Called to add a queue to the sidebar. */ -void gui_sidebar_add(struct queue *); +void gui_sidebar_add(struct gui_queue *); /* Called to remove a queue from the sidebar. */ -void gui_sidebar_remove(struct queue *); +void gui_sidebar_remove(struct gui_queue *); /* Called to set the size of sidebar entries. */ -void gui_sidebar_set_size(struct queue *); +void gui_sidebar_set_size(struct gui_queue *); #endif /* OCARINA_GUI_SIDEBAR_H */ diff --git a/tests/gui/sidebar.c b/tests/gui/sidebar.c index 51ff982d..1db00e1d 100644 --- a/tests/gui/sidebar.c +++ b/tests/gui/sidebar.c @@ -48,11 +48,11 @@ static void test_treeview() test_equal(gtk_tree_model_get_iter_first(model, &iter), true); gtk_tree_model_get(model, &iter, 3, &queue, -1); - test_equal((void *)queue, (void *)collection_get_queue()); + test_equal((void *)queue, (void *)gui_queue(collection_get_queue())); test_equal(gtk_tree_model_iter_next(model, &iter), true); gtk_tree_model_get(model, &iter, 3, &queue, -1); - test_equal((void *)queue, (void *)history_get_queue()); + test_equal((void *)queue, (void *)gui_queue(history_get_queue())); test_equal(gtk_tree_model_iter_next(model, &iter), false);