]> Pileus Git - ~andy/gtk/commitdiff
Bug 485218 - Strange warning encountered
authorMatthias Clasen <matthiasc@src.gnome.org>
Tue, 27 May 2008 23:16:06 +0000 (23:16 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Tue, 27 May 2008 23:16:06 +0000 (23:16 +0000)
        * gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_inserted):
        (gtk_tree_model_sort_convert_child_iter_to_iter):
        (gtk_tree_model_sort_build_level): Better warnings. Patch
        by Kristian Rietveld.

svn path=/trunk/; revision=20198

ChangeLog
gtk/gtktreemodelsort.c

index f0de74b18a6b71b0a809005f28705c62f3042334..66d8f15b8ef5866c2acc206a6280ef201943e903 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,15 @@
 2008-05-27  Matthias Clasen  <mclasen@redhat.com>
 
-       Bug 351910 – Search column setting lost
+       Bug 485218 - Strange warning encountered
+
+       * gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_inserted):
+       (gtk_tree_model_sort_convert_child_iter_to_iter):
+       (gtk_tree_model_sort_build_level): Better warnings. Patch
+       by Kristian Rietveld.
+
+2008-05-27  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 351910 - Search column setting lost
 
        * gtk/gtktreeview.c (gtk_tree_view_set_search_column): Clarify
        the docs. Patch by Matt Barnes.
index 0887c3ed3e7b1879f541eac4c969ec1767c80822..0c80ef427c1320f13d597dfeb21b710b428a8c60 100644 (file)
@@ -630,9 +630,10 @@ gtk_tree_model_sort_row_inserted (GtkTreeModel          *s_model,
 
       if (level->array->len < gtk_tree_path_get_indices (s_path)[i])
        {
-         g_warning ("A node was inserted with a parent that's not in the tree.\n"
+         g_warning ("%s: A node was inserted with a parent that's not in the tree.\n"
                     "This possibly means that a GtkTreeModel inserted a child node\n"
-                    "before the parent was inserted.");
+                    "before the parent was inserted.",
+                    G_STRLOC);
          goto done;
        }
 
@@ -2080,7 +2081,12 @@ gtk_tree_model_sort_convert_child_iter_to_iter (GtkTreeModelSort *tree_model_sor
 
   path = gtk_tree_model_sort_convert_child_path_to_path (tree_model_sort, child_path);
   gtk_tree_path_free (child_path);
-  g_return_if_fail (path != NULL);
+
+  if (!path)
+    {
+      g_warning ("%s: The conversion of the child path to a GtkTreeModel sort path failed", G_STRLOC);
+      return;
+    }
 
   gtk_tree_model_get_iter (GTK_TREE_MODEL (tree_model_sort), sort_iter, path);
   gtk_tree_path_free (path);
@@ -2259,7 +2265,30 @@ gtk_tree_model_sort_build_level (GtkTreeModelSort *tree_model_sort,
          if (gtk_tree_model_iter_next (tree_model_sort->child_model, &iter) == FALSE &&
              i < length - 1)
            {
-             g_warning ("There is a discrepancy between the sort model and the child model.");
+             if (parent_level)
+               {
+                 GtkTreePath *level;
+                 gchar *str;
+
+                 level = gtk_tree_model_sort_elt_get_path (parent_level,
+                                                           parent_elt);
+                 str = gtk_tree_path_to_string (level);
+                 gtk_tree_path_free (level);
+
+                 g_warning ("%s: There is a discrepancy between the sort model "
+                            "and the child model.  The child model is "
+                            "advertising a wrong length for level %s:.",
+                            G_STRLOC, str);
+                 g_free (str);
+               }
+             else
+               {
+                 g_warning ("%s: There is a discrepancy between the sort model "
+                            "and the child model.  The child model is "
+                            "advertising a wrong length for the root level.",
+                            G_STRLOC);
+               }
+
              return;
            }
        }