* src/maemo/modest-msg-edit-window.c:
[modest] / src / modest-runtime.c
index cb99869..aa41989 100644 (file)
@@ -45,6 +45,8 @@
 #include <modest-account-mgr.h>
 #include <modest-account-mgr-helpers.h>
 #include <modest-icon-names.h>
+#include <modest-ui-actions.h>
+#include <modest-debug.h>
 
 static ModestSingletons       *_singletons    = NULL;
 
@@ -52,6 +54,8 @@ static ModestSingletons       *_singletons    = NULL;
 // as it leads to various chicken & problems with initialization
 static ModestTnyAccountStore  *_account_store  = NULL;
 
+/* Signal handlers for the send queues */
+static GSList *_sig_handlers = NULL;
 
 /*
  * private functions declared in modest-runtime-priv.h -
@@ -82,16 +86,21 @@ modest_runtime_uninit (void)
                return TRUE;    /* uninit maybe called if runtime_init failed */
        
        g_return_val_if_fail (MODEST_IS_SINGLETONS(_singletons), FALSE);
-       modest_runtime_verify_object_last_ref(_singletons,"");
-       g_object_unref(G_OBJECT(_singletons));
+       
+       MODEST_DEBUG_VERIFY_OBJECT_LAST_REF(_singletons,"");
+       g_object_unref(_singletons);
        _singletons = NULL;
 
        if (_account_store) {
-               modest_runtime_verify_object_last_ref(_account_store,"");
-               g_object_unref(G_OBJECT(_account_store));
+               MODEST_DEBUG_VERIFY_OBJECT_LAST_REF(_account_store,"");
+               g_object_unref(_account_store);
                _account_store = NULL;
        }
-
+       
+       if (_sig_handlers) {
+               modest_signal_mgr_disconnect_all_and_destroy (_sig_handlers);
+               _sig_handlers = NULL;
+       }
        
        return TRUE;
 }
@@ -192,6 +201,21 @@ modest_runtime_get_send_queue  (TnyTransportAccount *account)
                 * as soon as it is instantiated: */
                send_queue = (gpointer)modest_tny_send_queue_new (TNY_CAMEL_TRANSPORT_ACCOUNT(account));
 
+               _sig_handlers = 
+                       modest_signal_mgr_connect (_sig_handlers, 
+                                                  send_queue, 
+                                                  "error_happened",
+                                                  G_CALLBACK (modest_ui_actions_on_send_queue_error_happened), 
+                                                  NULL);
+
+               _sig_handlers = 
+                       modest_signal_mgr_connect (_sig_handlers, 
+                                                  send_queue, 
+                                                  "status_changed",
+                                                  G_CALLBACK (modest_ui_actions_on_send_queue_status_changed), 
+                                                  NULL);
+
+
                g_hash_table_insert (send_queue_cache, 
                                     g_object_ref (account), 
                                     g_object_ref (send_queue));
@@ -221,9 +245,10 @@ modest_runtime_get_debug_flags ()
        static const GDebugKey debug_keys[] = {
                { "abort-on-warning",   MODEST_RUNTIME_DEBUG_ABORT_ON_WARNING },
                { "log-actions",        MODEST_RUNTIME_DEBUG_LOG_ACTIONS },
-               { "debug-objects",      MODEST_RUNTIME_DEBUG_DEBUG_OBJECTS },
-               { "debug-signals",      MODEST_RUNTIME_DEBUG_DEBUG_SIGNALS },
-               { "factory-settings",   MODEST_RUNTIME_DEBUG_FACTORY_SETTINGS}
+               { "debug-objects",      MODEST_RUNTIME_DEBUG_OBJECTS },
+               { "debug-signals",      MODEST_RUNTIME_DEBUG_SIGNALS },
+               { "factory-settings",   MODEST_RUNTIME_DEBUG_FACTORY_SETTINGS},
+               { "debug-code",         MODEST_RUNTIME_DEBUG_CODE}
        };
        const gchar *str;
        static ModestRuntimeDebugFlags debug_flags = -1;