* NB that while in the server the playing track is not in the queue, in
* Disobedience, the playing does live in @c ql_queue.q, despite its different
* status to everything else found in that list.
+ *
+ * To do:
+ * - drag and drop queue rearrangement
+ * - display playing row in a different color?
*/
#include "disobedience.h"
#include "queue-generic.h"
*/
static void namepart_completed_or_failed(void) {
--namepart_lookups_outstanding;
- fprintf(stderr, "namepart_lookups_outstanding -> %d\n", namepart_lookups_outstanding);
if(!namepart_lookups_outstanding) {
/* There are no more lookups outstanding, so we update the display */
for(unsigned n = 0; n < NQUEUELIKES; ++n)
/* Create the view */
ql->view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(ql->store));
+ gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(ql->view), TRUE);
/* Create cell renderers and label columns */
for(int n = 0; n < ql->ncolumns; ++n) {
GtkCellRenderer *r = gtk_cell_renderer_text_new();
+ if(ql->columns[n].flags & COL_ELLIPSIZE)
+ g_object_set(r, "ellipsize", PANGO_ELLIPSIZE_END, (char *)0);
+ if(ql->columns[n].flags & COL_RIGHT)
+ g_object_set(r, "xalign", (gfloat)1.0, (char *)0);
GtkTreeViewColumn *c = gtk_tree_view_column_new_with_attributes
(ql->columns[n].name,
r,
"text", n,
(char *)0);
+ g_object_set(c, "resizable", TRUE, (char *)0);
+ if(ql->columns[n].flags & COL_EXPAND)
+ g_object_set(c, "expand", TRUE, (char *)0);
gtk_tree_view_append_column(GTK_TREE_VIEW(ql->view), c);
}
ql->selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ql->view));
gtk_tree_selection_set_mode(ql->selection, GTK_SELECTION_MULTIPLE);
- /* Remember what the view belongs to */
- //g_object_set_data(G_OBJECT(ql->view), "type", (void *)&tabtype_queue);
- /* TODO tabtype */
- g_object_set_data(G_OBJECT(ql->view), "queue", ql);
/* Catch button presses */
- g_signal_connect(ql->view, "button-release-event",
+ g_signal_connect(ql->view, "button-press-event",
G_CALLBACK(ql_button_release), ql);
/* TODO style? */
ql->init();
- return scroll_widget(ql->view);
+ GtkWidget *scrolled = scroll_widget(ql->view);
+ g_object_set_data(G_OBJECT(scrolled), "type", (void *)ql_tabtype(ql));
+ return scrolled;
}
/*