X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-account-mgr-helpers.c;h=b88ec80293bcec07c81c14606b54338ce461b400;hb=9b2d6b21063f3adbee86a734424bf643cac64511;hp=9a969125df9234d02089a5260e8cd5a9eb7cda8c;hpb=516bb910363796d76a45dfa31a56ce9139e8b330;p=modest diff --git a/src/modest-account-mgr-helpers.c b/src/modest-account-mgr-helpers.c index 9a96912..b88ec80 100644 --- a/src/modest-account-mgr-helpers.c +++ b/src/modest-account-mgr-helpers.c @@ -36,6 +36,7 @@ #include #include #include +#include static const gchar * null_means_empty (const gchar * str); @@ -49,7 +50,16 @@ gboolean modest_account_mgr_set_enabled (ModestAccountMgr *self, const gchar* name, gboolean enabled) { - return modest_account_mgr_set_bool (self, name, MODEST_ACCOUNT_ENABLED, enabled,FALSE); + gboolean result; + result = modest_account_mgr_set_bool (self, name, MODEST_ACCOUNT_ENABLED, enabled,FALSE); + if (result) { + if (enabled) { + modest_platform_emit_account_created_signal (name); + } else { + modest_platform_emit_account_removed_signal (name); + } + } + return result; } @@ -82,21 +92,23 @@ modest_account_mgr_get_signature (ModestAccountMgr *self, ModestProtocolType modest_account_mgr_get_store_protocol (ModestAccountMgr *self, const gchar* name) { - ModestProtocolType result = MODEST_PROTOCOLS_STORE_POP; /* Arbitrary default */ - + ModestProtocolType result = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID; gchar *server_account_name = modest_account_mgr_get_string (self, name, MODEST_ACCOUNT_STORE_ACCOUNT, FALSE); if (server_account_name) { - ModestServerAccountSettings* server_settings = + ModestServerAccountSettings* server_settings = modest_account_mgr_load_server_settings (self, server_account_name, FALSE); - result = modest_server_account_settings_get_protocol (server_settings); - - g_object_unref (server_settings); - + + /* Easy setup wizard precreates accounts without + settings so this could happen */ + if (server_settings) { + result = modest_server_account_settings_get_protocol (server_settings); + g_object_unref (server_settings); + } g_free (server_account_name); } - + return result; } @@ -790,7 +802,7 @@ modest_account_mgr_save_account_settings (ModestAccountMgr *mgr, modest_account_mgr_save_server_settings (mgr, transport_settings); g_object_unref (transport_settings); } - modest_account_mgr_set_enabled (mgr, account_name, TRUE); + modest_account_mgr_set_bool (mgr, account_name, MODEST_ACCOUNT_ENABLED, TRUE,FALSE); } @@ -1037,6 +1049,30 @@ modest_account_mgr_set_last_updated (ModestAccountMgr *self, /* TODO: notify about changes */ } +gboolean +modest_account_mgr_get_has_new_mails (ModestAccountMgr *self, + const gchar* account_name) +{ + return modest_account_mgr_get_bool (modest_runtime_get_account_mgr (), + account_name, + MODEST_ACCOUNT_HAS_NEW_MAILS, + FALSE); +} + +void +modest_account_mgr_set_has_new_mails (ModestAccountMgr *self, + const gchar* account_name, + gboolean has_new_mails) +{ + modest_account_mgr_set_bool (self, + account_name, + MODEST_ACCOUNT_HAS_NEW_MAILS, + has_new_mails, + FALSE); + + /* TODO: notify about changes */ +} + gint modest_account_mgr_get_retrieve_limit (ModestAccountMgr *self, const gchar* account_name)