chiark / gitweb /
Columns are now resizable and wide columns are ellipsized. Columns
[disorder] / disobedience / queue-generic.c
index 37e0c301d4483142130443dbd4a21f56c7f31c9c..4db57502f0f7da0f5ccbf3aacde48e902a057ce4 100644 (file)
@@ -57,7 +57,6 @@ static const struct cache_type cachetype_integer = { 3600 };
  */
 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)
@@ -376,15 +375,23 @@ GtkWidget *init_queuelike(struct queuelike *ql) {
 
   /* 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);
   }
 
@@ -397,7 +404,7 @@ GtkWidget *init_queuelike(struct queuelike *ql) {
   /* 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? */