]> Pileus Git - ~andy/gtk/commitdiff
report status in return value instead of spewing assertions. (#335729,
authorKristian Rietveld <kris@gtk.org>
Mon, 12 Jun 2006 14:48:43 +0000 (14:48 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Mon, 12 Jun 2006 14:48:43 +0000 (14:48 +0000)
2006-06-12  Kristian Rietveld  <kris@gtk.org>

* gtk/gtktreemodelfilter.[ch]
(gtk_tree_model_filter_convert_child_iter_to_iter),
(gtk_tree_model_filter_convert_child_path_to_path): report status
in return value instead of spewing assertions.  (#335729, Yevgen
Muntyan).

ChangeLog
ChangeLog.pre-2-10
gtk/gtktreemodelfilter.c
gtk/gtktreemodelfilter.h

index 37e319ec4ab0e6518486360822d3d76099682e67..99bb6194dbbb6c7400e408166bf003d2164ea2b5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-06-12  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodelfilter.[ch]
+       (gtk_tree_model_filter_convert_child_iter_to_iter),
+       (gtk_tree_model_filter_convert_child_path_to_path): report status
+       in return value instead of spewing assertions.  (#335729, Yevgen
+       Muntyan).
+
 2006-06-12  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_finalize): 
index 37e319ec4ab0e6518486360822d3d76099682e67..99bb6194dbbb6c7400e408166bf003d2164ea2b5 100644 (file)
@@ -1,3 +1,11 @@
+2006-06-12  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodelfilter.[ch]
+       (gtk_tree_model_filter_convert_child_iter_to_iter),
+       (gtk_tree_model_filter_convert_child_path_to_path): report status
+       in return value instead of spewing assertions.  (#335729, Yevgen
+       Muntyan).
+
 2006-06-12  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_finalize): 
index 7d16935aedf1c20b114bb326b07d88e581aa18f4..4349004c50cc249a528c9d2507d4587143861fbc 100644 (file)
@@ -2987,34 +2987,43 @@ gtk_tree_model_filter_set_visible_column (GtkTreeModelFilter *filter,
  * @child_iter: A valid #GtkTreeIter pointing to a row on the child model.
  *
  * Sets @filter_iter to point to the row in @filter that corresponds to the
- * row pointed at by @child_iter.
+ * row pointed at by @child_iter.  If @filter_iter was not set, %FALSE is
+ * returned.
+ *
+ * Return value: %TRUE, if @filter_iter was set, i.e. if @child_iter is a
+ * valid iterator pointing to a visible row in child model.
  *
  * Since: 2.4
  */
-void
+gboolean
 gtk_tree_model_filter_convert_child_iter_to_iter (GtkTreeModelFilter *filter,
                                                   GtkTreeIter        *filter_iter,
                                                   GtkTreeIter        *child_iter)
 {
+  gboolean ret;
   GtkTreePath *child_path, *path;
 
-  g_return_if_fail (GTK_IS_TREE_MODEL_FILTER (filter));
-  g_return_if_fail (filter->priv->child_model != NULL);
-  g_return_if_fail (filter_iter != NULL);
-  g_return_if_fail (child_iter != NULL);
+  g_return_val_if_fail (GTK_IS_TREE_MODEL_FILTER (filter), FALSE);
+  g_return_val_if_fail (filter->priv->child_model != NULL, FALSE);
+  g_return_val_if_fail (filter_iter != NULL, FALSE);
+  g_return_val_if_fail (child_iter != NULL, FALSE);
 
   filter_iter->stamp = 0;
 
   child_path = gtk_tree_model_get_path (filter->priv->child_model, child_iter);
-  g_return_if_fail (child_path != NULL);
+  g_return_val_if_fail (child_path != NULL, FALSE);
 
   path = gtk_tree_model_filter_convert_child_path_to_path (filter,
                                                            child_path);
   gtk_tree_path_free (child_path);
-  g_return_if_fail (path != NULL);
 
-  gtk_tree_model_get_iter (GTK_TREE_MODEL (filter), filter_iter, path);
+  if (!path)
+    return FALSE;
+
+  ret = gtk_tree_model_get_iter (GTK_TREE_MODEL (filter), filter_iter, path);
   gtk_tree_path_free (path);
+
+  return ret;
 }
 
 /**
@@ -3152,7 +3161,8 @@ gtk_real_tree_model_filter_convert_child_path_to_path (GtkTreeModelFilter *filte
  * Converts @child_path to a path relative to @filter. That is, @child_path
  * points to a path in the child model. The rerturned path will point to the
  * same row in the filtered model. If @child_path isn't a valid path on the
- * child model, then %NULL is returned.
+ * child model or points to a row which is not visible in @filter, then %NULL
+ * is returned.
  *
  * Return value: A newly allocated #GtkTreePath, or %NULL.
  *
@@ -3171,6 +3181,9 @@ gtk_tree_model_filter_convert_child_path_to_path (GtkTreeModelFilter *filter,
                                                                 TRUE,
                                                                 TRUE);
 
+  if (!path)
+      return NULL;
+
   /* get a new path which only takes visible nodes into account.
    * -- if this gives any performance issues, we can write a special
    *    version of convert_child_path_to_path immediately returning
index df13cf8c47fad6deff0ca95c2ce57a3f9cb9b693..e9ab5829b29161f1a6093c2bdae6311e943b5cae 100644 (file)
@@ -84,7 +84,7 @@ void          gtk_tree_model_filter_set_visible_column         (GtkTreeModelFilt
 GtkTreeModel *gtk_tree_model_filter_get_model                  (GtkTreeModelFilter           *filter);
 
 /* conversion */
-void          gtk_tree_model_filter_convert_child_iter_to_iter (GtkTreeModelFilter           *filter,
+gboolean      gtk_tree_model_filter_convert_child_iter_to_iter (GtkTreeModelFilter           *filter,
                                                                 GtkTreeIter                  *filter_iter,
                                                                 GtkTreeIter                  *child_iter);
 void          gtk_tree_model_filter_convert_iter_to_child_iter (GtkTreeModelFilter           *filter,