X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-account-mgr-helpers.c;h=6f5038d1823d90810d113d654929c09094e9eaed;hp=8a7e3206abad43a323247f7add0503614b5a8b24;hb=61444b26ad8271870c8d8d460be77e0aab6e99e0;hpb=326ddf804e1bc2542650028660f4eb5cc82af96a diff --git a/src/modest-account-mgr-helpers.c b/src/modest-account-mgr-helpers.c index 8a7e320..6f5038d 100644 --- a/src/modest-account-mgr-helpers.c +++ b/src/modest-account-mgr-helpers.c @@ -47,6 +47,37 @@ 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_display_name (ModestAccountMgr *self, + const gchar* name) +{ + return modest_account_mgr_get_string (self, name, MODEST_ACCOUNT_DISPLAY_NAME, FALSE); +} + + + +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) @@ -220,7 +251,36 @@ gchar* modest_account_mgr_get_connection_specific_smtp (ModestAccountMgr *self, return result; } - +gchar* +modest_server_account_get_username (ModestAccountMgr *self, const gchar* account_name) +{ + return modest_account_mgr_get_string (self, account_name, MODEST_ACCOUNT_USERNAME, + TRUE /* server account */); +} + +void +modest_server_account_set_username (ModestAccountMgr *self, const gchar* account_name, + const gchar* username) +{ + modest_account_mgr_set_string (self, account_name, MODEST_ACCOUNT_USERNAME, + username, TRUE /* server account */); +} + +void +modest_server_account_set_password (ModestAccountMgr *self, const gchar* account_name, + const gchar* password) +{ + modest_account_mgr_set_string (self, account_name, MODEST_ACCOUNT_PASSWORD, + password, TRUE /* server account */); +} + +gchar* +modest_server_account_get_hostname (ModestAccountMgr *self, const gchar* account_name) +{ + return modest_account_mgr_get_string (self, account_name, MODEST_ACCOUNT_HOSTNAME, + TRUE /* server account */); +} + static ModestProtocol get_secure_auth_for_conf_string(const gchar* value) @@ -340,7 +400,7 @@ modest_account_mgr_get_server_account_option (ModestAccountMgr *self, } #endif -static ModestServerAccountData* +ModestServerAccountData* modest_account_mgr_get_server_account_data (ModestAccountMgr *self, const gchar* name) { ModestServerAccountData *data; @@ -378,7 +438,7 @@ modest_account_mgr_get_server_account_data (ModestAccountMgr *self, const gchar* } -static void +void modest_account_mgr_free_server_account_data (ModestAccountMgr *self, ModestServerAccountData* data) { @@ -422,7 +482,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 +604,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) {