[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r33392 - gnunet-gtk/src/conversation
From: |
gnunet |
Subject: |
[GNUnet-SVN] r33392 - gnunet-gtk/src/conversation |
Date: |
Mon, 26 May 2014 15:46:09 +0200 |
Author: grothoff
Date: 2014-05-26 15:46:08 +0200 (Mon, 26 May 2014)
New Revision: 33392
Modified:
gnunet-gtk/src/conversation/gnunet-conversation-gtk_contacts.c
Log:
-finish update logic
Modified: gnunet-gtk/src/conversation/gnunet-conversation-gtk_contacts.c
===================================================================
--- gnunet-gtk/src/conversation/gnunet-conversation-gtk_contacts.c
2014-05-26 10:03:02 UTC (rev 33391)
+++ gnunet-gtk/src/conversation/gnunet-conversation-gtk_contacts.c
2014-05-26 13:46:08 UTC (rev 33392)
@@ -365,6 +365,8 @@
GtkTreeIter iter;
gboolean do_display;
const char *type;
+ gchar *lname;
+ gboolean update;
if (NULL == zone_key)
{
@@ -390,14 +392,45 @@
break;
}
}
- /* FIXME: check if exists, if so, update or delete */
+ /* check if exists, if so, update or remove */
+ update = FALSE;
+ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (contacts_liststore),
+ &iter))
+ {
+ do
+ {
+ gtk_tree_model_get (GTK_TREE_MODEL(contacts_liststore),
+ &iter,
+ CONTACTS_LS_NAME, &lname,
+ -1);
+ if (0 == strcmp (lname,
+ rname))
+ {
+ if (! do_display)
+ {
+ /* remove */
+ gtk_list_store_remove (contacts_liststore,
+ &iter);
+ g_free (lname);
+ return;
+ }
+ /* update */
+ update = TRUE;
+ break;
+ }
+ g_free (lname);
+ }
+ while (gtk_tree_model_iter_next (GTK_TREE_MODEL(contacts_liststore),
+ &iter));
+ }
/* insert new record */
if (! do_display)
return;
- gtk_list_store_append (contacts_liststore,
- &iter);
+ if (! update)
+ gtk_list_store_append (contacts_liststore,
+ &iter);
gtk_list_store_set (contacts_liststore,
&iter,
CONTACTS_LS_NAME, rname,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r33392 - gnunet-gtk/src/conversation,
gnunet <=