* Fix some detected memory leaks
[modest] / src / modest-account-mgr-helpers.c
index cd6a49f..20ed6a6 100644 (file)
@@ -47,6 +47,30 @@ modest_account_mgr_get_enabled (ModestAccountMgr *self, const gchar* name)
        return modest_account_mgr_get_bool (self, name, MODEST_ACCOUNT_ENABLED, FALSE);
 }
 
+gboolean modest_account_mgr_set_signature (ModestAccountMgr *self, const gchar* name, 
+       const gchar* signature, gboolean use_signature)
+{
+       gboolean result = modest_account_mgr_set_bool (self, name, MODEST_ACCOUNT_USE_SIGNATURE, 
+               use_signature, FALSE);
+       result = result && modest_account_mgr_set_string (self, name, MODEST_ACCOUNT_SIGNATURE, 
+               signature, FALSE);
+       return result;
+}
+
+
+gchar* modest_account_mgr_get_signature (ModestAccountMgr *self, const gchar* name, 
+       gboolean* use_signature)
+{
+       if (use_signature) {
+               *use_signature = 
+                       modest_account_mgr_get_bool (self, name, MODEST_ACCOUNT_USE_SIGNATURE, FALSE);
+       }
+       
+       return modest_account_mgr_get_string (self, name, MODEST_ACCOUNT_SIGNATURE, FALSE);
+}
+       
+       
+
 #if 0 /* Not needed, but works. */
 static gint
 compare_option_strings_for_name (const gchar* a, const gchar* b)
@@ -422,7 +446,13 @@ modest_account_mgr_get_account_data     (ModestAccountMgr *self, const gchar* na
        
        g_return_val_if_fail (self, NULL);
        g_return_val_if_fail (name, NULL);
-       g_return_val_if_fail (modest_account_mgr_account_exists (self, name,FALSE), NULL);      
+       
+       if (!modest_account_mgr_account_exists (self, name, FALSE)) {
+               /* For instance, maybe you are mistakenly checking for a server account name? */
+               g_warning ("%s: Account %s does not exist.", __FUNCTION__, name);
+               return NULL;
+       }
+       
        data = g_slice_new0 (ModestAccountData);
        
        data->account_name = g_strdup (name);
@@ -538,6 +568,37 @@ modest_account_mgr_set_default_account  (ModestAccountMgr *self, const gchar* ac
 
 }
 
+gboolean
+modest_account_mgr_unset_default_account  (ModestAccountMgr *self)
+{
+       ModestConf *conf;
+       
+       g_return_val_if_fail (self,    FALSE);
+
+       conf = MODEST_ACCOUNT_MGR_GET_PRIVATE (self)->modest_conf;
+               
+       return modest_conf_remove_key (conf, MODEST_CONF_DEFAULT_ACCOUNT, NULL /* err */);
+
+}
+
+gboolean
+modest_account_mgr_set_first_account_as_default  (ModestAccountMgr *self)
+{
+       gboolean result = FALSE;
+       GSList *account_names = modest_account_mgr_account_names (self, TRUE /* only enabled */);
+       if(account_names)
+       {
+               const gchar* account_name = (const gchar*)account_names->data;
+               if (account_name)
+                       result = modest_account_mgr_set_default_account (self, account_name);
+       }
+       
+       /* TODO: Free the strings too? */
+       g_slist_free (account_names);
+       
+       return result;
+}
+
 gchar*
 modest_account_mgr_get_from_string (ModestAccountMgr *self, const gchar* name)
 {