diff options
author | Stef Walter <stefw@collabora.co.uk> | 2011-09-27 15:48:39 +0200 |
---|---|---|
committer | Stef Walter <stefw@collabora.co.uk> | 2011-09-27 15:48:39 +0200 |
commit | 61040577ebb5f6dfbb4d07a30edde91205abd7a9 (patch) | |
tree | 7ad773130474c103d580d4210e5332a76cdcdd5d /tool | |
parent | 6cf14cf7397de26f80257dc49c741ec17f446a51 (diff) | |
download | gnome-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.c | 6 |
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; } |