gnome-utils r8316 - trunk/logview
- From: cosimoc svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-utils r8316 - trunk/logview
- Date: Tue, 23 Dec 2008 13:28:14 +0000 (UTC)
Author: cosimoc
Date: Tue Dec 23 13:28:14 2008
New Revision: 8316
URL: http://svn.gnome.org/viewvc/gnome-utils?rev=8316&view=rev
Log:
Keep the whole store in order.
Modified:
trunk/logview/logview-loglist.c
Modified: trunk/logview/logview-loglist.c
==============================================================================
--- trunk/logview/logview-loglist.c (original)
+++ trunk/logview/logview-loglist.c Tue Dec 23 13:28:14 2008
@@ -90,8 +90,7 @@
LOG_NAME, "", -1);
do {
gtk_tree_store_remove (loglist->priv->model, &iter);
- } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (loglist->priv->model),
- &iter));
+ } while (gtk_tree_store_iter_is_valid (loglist->priv->model, &iter));
}
for (i = 1, l = days; l; l = l->next) {
@@ -320,6 +319,45 @@
g_object_unref (log);
}
+static int
+loglist_sort_func (GtkTreeModel *model,
+ GtkTreeIter *a,
+ GtkTreeIter *b,
+ gpointer user_data)
+{
+ LogviewLoglist *list = user_data;
+ char *name_a, *name_b;
+ Day *day_a, *day_b;
+ int retval = 0;
+
+ switch (gtk_tree_store_iter_depth (GTK_TREE_STORE (model), a)) {
+ case 0:
+ gtk_tree_model_get (model, a, LOG_NAME, &name_a, -1);
+ gtk_tree_model_get (model, b, LOG_NAME, &name_b, -1);
+ retval = g_strcmp0 (name_a, name_b);
+ g_free (name_a);
+ g_free (name_b);
+
+ break;
+ case 1:
+ gtk_tree_model_get (model, a, LOG_DAY, &day_a, -1);
+ gtk_tree_model_get (model, b, LOG_DAY, &day_b, -1);
+ if (day_a && day_b) {
+ retval = days_compare (day_a, day_b);
+ } else {
+ retval = 0;
+ }
+
+ break;
+ default:
+ g_assert_not_reached ();
+
+ break;
+ }
+
+ return retval;
+}
+
static void
do_finalize (GObject *obj)
{
@@ -361,6 +399,10 @@
NULL);
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (list->priv->model), LOG_NAME, GTK_SORT_ASCENDING);
+ gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (list->priv->model),
+ LOG_NAME,
+ (GtkTreeIterCompareFunc) loglist_sort_func,
+ list, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (list), column);
gtk_tree_view_set_search_column (GTK_TREE_VIEW (list), -1);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]