From 6a5f844389c641862c68176b7dc633263a2f1d3b Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Fri, 30 Jan 2009 17:33:53 +0000 Subject: improve function to find iter for blank contact svn path=/trunk/; revision=2319 --- libempathy-gtk/empathy-contact-selector.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/libempathy-gtk/empathy-contact-selector.c b/libempathy-gtk/empathy-contact-selector.c index f7c42e5ce..c5ed34f33 100644 --- a/libempathy-gtk/empathy-contact-selector.c +++ b/libempathy-gtk/empathy-contact-selector.c @@ -50,8 +50,8 @@ struct _EmpathyContactSelectorPriv }; static void changed_cb (GtkComboBox *widget, gpointer data); -static gboolean get_iter_for_contact (GtkTreeStore *store, - GtkTreeIter *list_iter, EmpathyContact *contact); +static gboolean get_iter_for_blank_contact (GtkTreeStore *store, + GtkTreeIter *blank_iter); EmpathyContact * @@ -102,7 +102,7 @@ notify_popup_shown_cb (GtkComboBox *widget, if (shown) { - if (get_iter_for_contact (GTK_TREE_STORE (priv->store), &blank_iter, NULL)) + if (get_iter_for_blank_contact (GTK_TREE_STORE (priv->store), &blank_iter)) { gtk_tree_store_remove (GTK_TREE_STORE (priv->store), &blank_iter); priv->is_blank_set = FALSE; @@ -144,7 +144,7 @@ changed_cb (GtkComboBox *widget, } else { - if (get_iter_for_contact (GTK_TREE_STORE (priv->store), &blank_iter, NULL)) + if (get_iter_for_blank_contact (GTK_TREE_STORE (priv->store), &blank_iter)) { gtk_tree_store_remove (GTK_TREE_STORE (priv->store), &blank_iter); priv->is_blank_set = FALSE; @@ -154,16 +154,14 @@ changed_cb (GtkComboBox *widget, static gboolean -get_iter_for_contact (GtkTreeStore *store, - GtkTreeIter *list_iter, - EmpathyContact *contact) +get_iter_for_blank_contact (GtkTreeStore *store, + GtkTreeIter *blank_iter) { GtkTreePath *path; GtkTreeIter tmp_iter; EmpathyContact *tmp_contact; - gboolean found = FALSE; + gboolean is_present = FALSE; - /* Do a linear search to find the row with CONTACT_COL set to contact. */ path = gtk_tree_path_new_first (); if (gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &tmp_iter, path)) { @@ -172,18 +170,18 @@ get_iter_for_contact (GtkTreeStore *store, gtk_tree_model_get (GTK_TREE_MODEL (store), &tmp_iter, EMPATHY_CONTACT_LIST_STORE_COL_CONTACT, &tmp_contact, -1); - found = (tmp_contact == contact); - if (found) + if (tmp_contact == NULL) { - *list_iter = tmp_iter; + *blank_iter = tmp_iter; + is_present = TRUE; break; } - } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), - &tmp_iter)); + } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &tmp_iter)); } gtk_tree_path_free (path); - return found; + + return is_present; } -- cgit v1.2.3