gnome: allow resizing of history columns

This is done by showing the columsn headers
and allowing the columsn to be ellipsized

Refs #68330

Change-Id: I2aedbff421dcc6d6ac7ac4c2f95cfd2b15977a3c
diff --git a/src/ringmainwindow.cpp b/src/ringmainwindow.cpp
index 0454119..7a00e2e 100644
--- a/src/ringmainwindow.cpp
+++ b/src/ringmainwindow.cpp
@@ -403,12 +403,14 @@
     gtk_tree_view_set_model(GTK_TREE_VIEW(priv->treeview_call), GTK_TREE_MODEL(call_model));
 
     renderer = gtk_cell_renderer_text_new();
+    g_object_set(G_OBJECT(renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
     column = gtk_tree_view_column_new_with_attributes("Name", renderer, "text", 0, NULL);
     gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
     gtk_tree_view_append_column(GTK_TREE_VIEW(priv->treeview_call), column);
 
     renderer = gtk_cell_renderer_text_new();
     column = gtk_tree_view_column_new_with_attributes("Duration", renderer, "text", 2, NULL);
+    gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
     gtk_tree_view_append_column(GTK_TREE_VIEW(priv->treeview_call), column);
 
     /* connect signals to and from UserActionModel to sync selection betwee
@@ -466,7 +468,8 @@
     /* history view/model */
     scrolled_window = gtk_scrolled_window_new(NULL, NULL);
     GtkWidget *treeview_history = gtk_tree_view_new();
-    gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview_history), FALSE);
+    /* make headers visible to allow column resizing */
+    gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview_history), TRUE);
     gtk_container_add(GTK_CONTAINER(scrolled_window), treeview_history);
     gtk_widget_show_all(scrolled_window);
     gtk_stack_add_named(GTK_STACK(priv->stack_contacts_history_presence),
@@ -490,35 +493,31 @@
         Call::Role::Direction, G_TYPE_INT);
     gtk_tree_view_set_model( GTK_TREE_VIEW(treeview_history), GTK_TREE_MODEL(history_model) );
 
-    GtkCellArea *cellarea_name = gtk_cell_area_box_new();
-    gtk_orientable_set_orientation(GTK_ORIENTABLE(cellarea_name), GTK_ORIENTATION_HORIZONTAL);
-    GtkCellRenderer *cellrenderer_name = gtk_cell_renderer_text_new();
-    GtkCellRenderer *cellrenderer_number = gtk_cell_renderer_text_new();
-
-    gtk_cell_area_box_pack_start(GTK_CELL_AREA_BOX(cellarea_name),
-                                 cellrenderer_name,
-                                 FALSE, /* expand */
-                                 FALSE,  /* align in adjacent rows */
-                                 FALSE); /* fixed size in all rows */
-
-    gtk_cell_area_box_pack_start(GTK_CELL_AREA_BOX(cellarea_name),
-                                 cellrenderer_number,
-                                 FALSE, /* expand */
-                                 FALSE,  /* align in adjacent rows */
-                                 FALSE); /* fixed size in all rows */
-
-    column = gtk_tree_view_column_new_with_area(cellarea_name);
-    g_object_set(G_OBJECT(column), "max-width", 250, NULL);
-
-    gtk_tree_view_column_add_attribute(column, cellrenderer_name, "text", 0);
-    gtk_tree_view_column_add_attribute(column, cellrenderer_number, "text", 1);
+    /* name or time category column */
+    renderer = gtk_cell_renderer_text_new();
+    g_object_set(G_OBJECT(renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
+    column = gtk_tree_view_column_new_with_attributes("Name", renderer, "text", 0, NULL);
     gtk_tree_view_append_column(GTK_TREE_VIEW(treeview_history), column);
+    gtk_tree_view_column_set_resizable(column, TRUE);
 
+    /* "number" column */
+    renderer = gtk_cell_renderer_text_new();
+    g_object_set(G_OBJECT(renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
+    column = gtk_tree_view_column_new_with_attributes("Number", renderer, "text", 1, NULL);
+    gtk_tree_view_append_column(GTK_TREE_VIEW(treeview_history), column);
+    gtk_tree_view_column_set_resizable(column, TRUE);
+
+    /* date column */
     renderer = gtk_cell_renderer_text_new ();
+    g_object_set(G_OBJECT(renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
     column = gtk_tree_view_column_new_with_attributes ("Date", renderer, "text", 2, NULL);
-    gtk_tree_view_append_column (GTK_TREE_VIEW (treeview_history), column);
+    gtk_tree_view_append_column(GTK_TREE_VIEW(treeview_history), column);
+    gtk_tree_view_column_set_resizable(column, TRUE);
 
-    gtk_tree_view_expand_all(GTK_TREE_VIEW(treeview_history));
+    /* expand the first row, which should be the most recent calls */
+    gtk_tree_view_expand_row(GTK_TREE_VIEW(treeview_history),
+                             gtk_tree_path_new_from_string("0"),
+                             FALSE);
 
     g_signal_connect(treeview_history, "row-activated", G_CALLBACK(call_history_item), NULL);