summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authorStef Walter <stefw@collabora.co.uk>2011-09-27 15:48:39 +0200
committerStef Walter <stefw@collabora.co.uk>2011-09-27 15:48:39 +0200
commit61040577ebb5f6dfbb4d07a30edde91205abd7a9 (patch)
tree7ad773130474c103d580d4210e5332a76cdcdd5d /tool
parent6cf14cf7397de26f80257dc49c741ec17f446a51 (diff)
downloadgnome-keyring-61040577ebb5f6dfbb4d07a30edde91205abd7a9.tar.gz
gcr: Refactor GcrParser and delay listing of importers
* PKCS#11 takes a long time to initialize with certain smart cards (several seconds). So we can't block the UI. * Expose the PKCS#11 initialization functions publicly. * Refactor GcrParser so that the current parsed item can be held around until later in the form of a GcrParsed structure. * Queue parsed items in GcrImportButton until PKCS#11 is initialized.
Diffstat (limited to 'tool')
-rw-r--r--tool/gkr-tool-import.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/tool/gkr-tool-import.c b/tool/gkr-tool-import.c
index 05f26ddc..548831c5 100644
--- a/tool/gkr-tool-import.c
+++ b/tool/gkr-tool-import.c
@@ -146,12 +146,14 @@ on_parser_parsed (GcrParser *parser,
gpointer user_data)
{
ImportClosure *closure = user_data;
+ GcrParsed *parsed;
GList *filtered;
+ parsed = gcr_parser_get_parsed (parser);
if (closure->num_parsed == 0) {
- closure->importers = gcr_importer_create_for_parsed (parser);
+ closure->importers = gcr_importer_create_for_parsed (parsed);
} else {
- filtered = gcr_importer_queue_and_filter_for_parsed (closure->importers, parser);
+ filtered = gcr_importer_queue_and_filter_for_parsed (closure->importers, parsed);
gck_list_unref_free (closure->importers);
closure->importers = filtered;
}