libpurple/core.c

branch
soc.2008.masterpassword
changeset 34127
51c1bce7f52f
parent 34125
34c3dbf12e95
child 34148
62a874e41930
--- a/libpurple/core.c	Thu Mar 21 22:21:50 2013 +0100
+++ b/libpurple/core.c	Fri Mar 22 00:05:10 2013 +0100
@@ -114,6 +114,7 @@
 		purple_value_new(PURPLE_TYPE_BOXED, "GHashTable *")); /* Parameters */
 
 	purple_signal_register(core, "quitting", purple_marshal_VOID, NULL, 0);
+	purple_signal_register(core, "core-initialized", purple_marshal_VOID, NULL, 0);
 
 	/* The prefs subsystem needs to be initialized before static protocols
 	 * for protocol prefs to work. */
@@ -136,7 +137,6 @@
 
 	purple_ciphers_init();
 	purple_cmds_init();
-	purple_keyring_init();
 
 	/* Since plugins get probed so early we should probably initialize their
 	 * subsystem right away too.
@@ -148,6 +148,7 @@
 
 	purple_plugins_probe(G_MODULE_SUFFIX);
 
+	purple_keyring_init();
 	purple_theme_manager_init();
 
 	/* The buddy icon code uses the imgstore, so init it early. */
@@ -188,15 +189,14 @@
 	if (ops != NULL && ops->ui_init != NULL)
 		ops->ui_init();
 
-	/* Selected keyring may have failed to load, so UI should be notified */
-	purple_keyring_load_plugins();
-
 	/* The UI may have registered some theme types, so refresh them */
 	purple_theme_manager_refresh();
 
 	/* Load the buddy list after UI init */
 	purple_blist_boot();
 
+	purple_signal_emit(purple_get_core(), "core-initialized");
+
 	return TRUE;
 }
 
@@ -222,9 +222,8 @@
 	 */
 	purple_certificate_uninit();
 
-	/* The SSL and keyring plugins must be uninit before they're unloaded */
+	/* The SSL plugins must be uninit before they're unloaded */
 	purple_ssl_uninit();
-	purple_keyring_uninit();
 
 	/* Unload all non-loader, non-prpl plugins before shutting down
 	 * subsystems. */
@@ -245,6 +244,7 @@
 	purple_savedstatuses_uninit();
 	purple_status_uninit();
 	purple_accounts_uninit();
+	purple_keyring_uninit(); /* after accounts */
 	purple_sound_uninit();
 	purple_theme_manager_uninit();
 	purple_xfers_uninit();

mercurial