[epiphany/gnome-keyring: 4/8] Make pdm_dialog_fill_passwords_list asynchronous.



commit d686fe2b5eae079aef90850266fe870e21e3c606
Author: Priit Laes <plaes plaes org>
Date:   Fri Jul 24 20:09:32 2009 +0300

    Make pdm_dialog_fill_passwords_list asynchronous.
    
    Signed-off-by: Priit Laes <plaes plaes org>

 src/pdm-dialog.c |   36 +++++++++++++++++++++---------------
 1 files changed, 21 insertions(+), 15 deletions(-)
---
diff --git a/src/pdm-dialog.c b/src/pdm-dialog.c
index 697773c..c4c28b1 100644
--- a/src/pdm-dialog.c
+++ b/src/pdm-dialog.c
@@ -1270,26 +1270,32 @@ pdm_dialog_passwords_construct (PdmActionInfo *info)
 }
 
 static void
-pdm_dialog_fill_passwords_list (PdmActionInfo *info)
+pdm_dialog_fill_passwords_list_async_cb (GnomeKeyringResult result,
+                                         GList *list,
+                                         gpointer data)
 {
-	GList *list, *l;
-    GnomeKeyringResult result;
+  GList *l;
+  PdmActionInfo *info = (PdmActionInfo *)data;
 
-    result = gnome_keyring_list_item_ids_sync (GNOME_KEYRING_DEFAULT, &list);
+  if (result != GNOME_KEYRING_RESULT_OK)
+    return;
 
-    if (result == GNOME_KEYRING_RESULT_OK)
-	{
-        for (l = list; l != NULL; l = l->next)
-            info->add (info, l->data);
-        g_list_free (list);
-    }
+  for (l = list; l != NULL; l = l->next)
+    info->add (info, l->data);
 
-	/* Let's get notified when the list changes */
-	info->filled = TRUE;
+  info->filled = TRUE;
+  gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (info->model),
+                                        COL_PASSWORDS_HOST,
+                                        GTK_SORT_ASCENDING);
+}
 
-	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (info->model),
-					      COL_PASSWORDS_HOST,
-					      GTK_SORT_ASCENDING);
+static void
+pdm_dialog_fill_passwords_list (PdmActionInfo *info)
+{
+  gnome_keyring_list_item_ids (GNOME_KEYRING_DEFAULT,
+                               pdm_dialog_fill_passwords_list_async_cb,
+                               info,
+                               NULL);
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]