[gtk+/composite-templates] Consistently allow -1 to mean 'append' in tree models
- From: Juan Pablo Ugarte <jpu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/composite-templates] Consistently allow -1 to mean 'append' in tree models
- Date: Sun, 15 Jul 2012 21:47:24 +0000 (UTC)
commit 3278a4f57d1906917dbf28325a83f074a727e7e4
Author: Matthias Clasen <mclasen redhat com>
Date: Thu Jul 12 08:35:50 2012 -0400
Consistently allow -1 to mean 'append' in tree models
Both GtkListStore and GtkTreeStore had a few methods that allowed
-1 to mean 'append' when specified as a position, but others that
demanded positive position arguments. Make this consistent by
always allowing -1.
https://bugzilla.gnome.org/show_bug.cgi?id=667808
gtk/gtkliststore.c | 23 +++++++++--------------
gtk/gtktreestore.c | 12 ++++++------
2 files changed, 15 insertions(+), 20 deletions(-)
---
diff --git a/gtk/gtkliststore.c b/gtk/gtkliststore.c
index ee07b87..f19b64e 100644
--- a/gtk/gtkliststore.c
+++ b/gtk/gtkliststore.c
@@ -1249,12 +1249,12 @@ gtk_list_store_remove (GtkListStore *list_store,
* gtk_list_store_insert:
* @list_store: A #GtkListStore
* @iter: (out): An unset #GtkTreeIter to set to the new row
- * @position: position to insert the new row
+ * @position: position to insert the new row, or -1 for last
*
* Creates a new row at @position. @iter will be changed to point to this new
- * row. If @position is larger than the number of rows on the list, then the
- * new row will be appended to the list. The row will be empty after this
- * function is called. To fill in values, you need to call
+ * row. If @position is -1 or is larger than the number of rows on the list,
+ * then the new row will be appended to the list. The row will be empty after
+ * this function is called. To fill in values, you need to call
* gtk_list_store_set() or gtk_list_store_set_value().
*
**/
@@ -1271,7 +1271,6 @@ gtk_list_store_insert (GtkListStore *list_store,
g_return_if_fail (GTK_IS_LIST_STORE (list_store));
g_return_if_fail (iter != NULL);
- g_return_if_fail (position >= 0);
priv = list_store->priv;
@@ -1280,7 +1279,7 @@ gtk_list_store_insert (GtkListStore *list_store,
seq = priv->seq;
length = g_sequence_get_length (seq);
- if (position > length)
+ if (position > length || position < 0)
position = length;
ptr = g_sequence_get_iter_at_pos (seq, position);
@@ -1405,14 +1404,10 @@ void
gtk_list_store_append (GtkListStore *list_store,
GtkTreeIter *iter)
{
- GtkListStorePrivate *priv;
-
g_return_if_fail (GTK_IS_LIST_STORE (list_store));
g_return_if_fail (iter != NULL);
- priv = list_store->priv;
-
- gtk_list_store_insert (list_store, iter, g_sequence_get_length (priv->seq));
+ gtk_list_store_insert (list_store, iter, -1);
}
static void
@@ -2225,7 +2220,7 @@ gtk_list_store_insert_with_values (GtkListStore *list_store,
seq = priv->seq;
length = g_sequence_get_length (seq);
- if (position > length)
+ if (position > length || position < 0)
position = length;
ptr = g_sequence_get_iter_at_pos (seq, position);
@@ -2261,7 +2256,7 @@ gtk_list_store_insert_with_values (GtkListStore *list_store,
* gtk_list_store_insert_with_valuesv:
* @list_store: A #GtkListStore
* @iter: (out) (allow-none): An unset #GtkTreeIter to set to the new row, or %NULL.
- * @position: position to insert the new row
+ * @position: position to insert the new row, or -1 for last
* @columns: (array length=n_values): an array of column numbers
* @values: (array length=n_values): an array of GValues
* @n_values: the length of the @columns and @values arrays
@@ -2305,7 +2300,7 @@ gtk_list_store_insert_with_valuesv (GtkListStore *list_store,
seq = priv->seq;
length = g_sequence_get_length (seq);
- if (position > length)
+ if (position > length || position < 0)
position = length;
ptr = g_sequence_get_iter_at_pos (seq, position);
diff --git a/gtk/gtktreestore.c b/gtk/gtktreestore.c
index 6271359..21e7a20 100644
--- a/gtk/gtktreestore.c
+++ b/gtk/gtktreestore.c
@@ -1266,14 +1266,14 @@ gtk_tree_store_remove (GtkTreeStore *tree_store,
* @tree_store: A #GtkTreeStore
* @iter: (out): An unset #GtkTreeIter to set to the new row
* @parent: (allow-none): A valid #GtkTreeIter, or %NULL
- * @position: position to insert the new row
+ * @position: position to insert the new row, or -1 for last
*
* Creates a new row at @position. If parent is non-%NULL, then the row will be
* made a child of @parent. Otherwise, the row will be created at the toplevel.
- * If @position is larger than the number of rows at that level, then the new
- * row will be inserted to the end of the list. @iter will be changed to point
- * to this new row. The row will be empty after this function is called. To
- * fill in values, you need to call gtk_tree_store_set() or
+ * If @position is -1 or is larger than the number of rows at that level, then
+ * the new row will be inserted to the end of the list. @iter will be changed
+ * to point to this new row. The row will be empty after this function is
+ * called. To fill in values, you need to call gtk_tree_store_set() or
* gtk_tree_store_set_value().
*
**/
@@ -1583,7 +1583,7 @@ gtk_tree_store_insert_with_values (GtkTreeStore *tree_store,
* @tree_store: A #GtkTreeStore
* @iter: (out) (allow-none): An unset #GtkTreeIter to set the new row, or %NULL.
* @parent: (allow-none): A valid #GtkTreeIter, or %NULL
- * @position: position to insert the new row
+ * @position: position to insert the new row, or -1 for last
* @columns: (array length=n_values): an array of column numbers
* @values: (array length=n_values): an array of GValues
* @n_values: the length of the @columns and @values arrays
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]