* Created a new get_full_msgs mail operation to asynchronously receive several full...
[modest] / src / modest-account-mgr-helpers.c
index 86e07dc..c994b55 100644 (file)
@@ -76,82 +76,6 @@ gchar* modest_account_mgr_get_signature (ModestAccountMgr *self, const gchar* na
        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)
-{
-       /* printf("  debug: compare_option_strings_for_name():a=%s, b=%s\n", a, b); */
-       const gchar* sep = strchr(a, '=');
-       if (!sep)
-               return -1;
-               
-       gint len = sep - a;
-       if(len <= 0)
-               return -1;
-               
-       /* Get the part of the string before the =.
-        * Note that this allocation is inefficient just so we can do a strcmp. */
-       gchar* name = g_malloc (len+1);
-       memcpy(name, a, len);
-       name[len] = 0; /* Null-termination. */
-       
-       /* printf("    debug: name=%s\n", name); */
-
-       gint result = strcmp (name, b);
-       
-       g_free (name);
-       
-       return result;
-}
-           
-gchar*
-modest_server_account_data_get_option_string (GSList* options_list, const gchar* option_name)
-{
-       if (!options_list)
-               return NULL;
-       
-       gchar *result = NULL;
-       GSList* option = g_slist_find_custom(options_list, option_name, (GCompareFunc)compare_option_strings_for_name);
-       if(option) {
-               /* Get the value part of the key=value pair: */
-               const gchar* pair = (const gchar*)option->data;
-               
-               const gchar* sep = strchr(pair, '=');
-               if (sep) {
-                       gint len = sep - pair;
-                       if(len > 0) {
-                               result = g_strdup(sep+1);
-                               
-                               /* Avoid returning an empty string instead of NULL. */
-                               if(result && strlen(result) == 0) {
-                                       g_free(result);
-                                       result = NULL;
-                               }
-                       }
-               }
-       }
-               
-       return result;
-}
-
-gboolean
-modest_server_account_data_get_option_bool (GSList* options_list, const gchar* option_name)
-{
-       if (!options_list)
-               return FALSE;
-       
-       gboolean result = FALSE;
-       GSList* option = g_slist_find_custom(options_list, option_name, (GCompareFunc)strcmp);
-       if(option) {
-               return TRUE;
-       }
-               
-       return result;
-}
-#endif
-
 
 gboolean modest_account_mgr_set_connection_specific_smtp (ModestAccountMgr *self, 
        const gchar* account_name,
@@ -309,10 +233,10 @@ modest_server_account_get_hostname (ModestAccountMgr *self, const gchar* account
 }
  
 
-static ModestProtocol
+static ModestAuthProtocol
 get_secure_auth_for_conf_string(const gchar* value)
 {
-       ModestProtocol result = MODEST_PROTOCOL_AUTH_NONE;
+       ModestAuthProtocol result = MODEST_PROTOCOL_AUTH_NONE;
        if (value) {
                if (strcmp(value, MODEST_ACCOUNT_AUTH_MECH_VALUE_NONE) == 0)
                        result = MODEST_PROTOCOL_AUTH_NONE;
@@ -325,11 +249,11 @@ get_secure_auth_for_conf_string(const gchar* value)
        return result;
 }
 
-ModestProtocol
+ModestAuthProtocol
 modest_server_account_get_secure_auth (ModestAccountMgr *self, 
        const gchar* account_name)
 {
-       ModestProtocol result = MODEST_PROTOCOL_AUTH_NONE;
+       ModestAuthProtocol result = MODEST_PROTOCOL_AUTH_NONE;
        gchar* value = modest_account_mgr_get_string (self, account_name, MODEST_ACCOUNT_AUTH_MECH, 
                TRUE /* server account */);
        if (value) {
@@ -344,7 +268,7 @@ modest_server_account_get_secure_auth (ModestAccountMgr *self,
 
 void
 modest_server_account_set_secure_auth (ModestAccountMgr *self, 
-       const gchar* account_name, ModestProtocol secure_auth)
+       const gchar* account_name, ModestAuthProtocol secure_auth)
 {
        /* Get the conf string for the enum value: */
        const gchar* str_value = NULL;
@@ -359,27 +283,27 @@ modest_server_account_set_secure_auth (ModestAccountMgr *self,
        modest_account_mgr_set_string (self, account_name, MODEST_ACCOUNT_AUTH_MECH, str_value, TRUE);
 }
 
-static ModestProtocol
+static ModestConnectionProtocol
 get_security_for_conf_string(const gchar* value)
 {
-       ModestProtocol result = MODEST_PROTOCOL_SECURITY_NONE;
+       ModestConnectionProtocol result = MODEST_PROTOCOL_CONNECTION_NORMAL;
        if (value) {
                if (strcmp(value, MODEST_ACCOUNT_SECURITY_VALUE_NONE) == 0)
-                       result = MODEST_PROTOCOL_SECURITY_NONE;
+                       result = MODEST_PROTOCOL_CONNECTION_NORMAL;
                else if (strcmp(value, MODEST_ACCOUNT_SECURITY_VALUE_NORMAL) == 0)
-                       result = MODEST_PROTOCOL_SECURITY_TLS;
+                       result = MODEST_PROTOCOL_CONNECTION_TLS;
                else if (strcmp(value, MODEST_ACCOUNT_SECURITY_VALUE_SSL) == 0)
-                       result = MODEST_PROTOCOL_SECURITY_SSL;
+                       result = MODEST_PROTOCOL_CONNECTION_SSL;
        }
        
        return result;
 }
 
-ModestProtocol
+ModestConnectionProtocol
 modest_server_account_get_security (ModestAccountMgr *self, 
        const gchar* account_name)
 {
-       ModestProtocol result = MODEST_PROTOCOL_SECURITY_NONE;
+       ModestConnectionProtocol result = MODEST_PROTOCOL_CONNECTION_NORMAL;
        gchar* value = modest_account_mgr_get_string (self, account_name, MODEST_ACCOUNT_SECURITY, 
                TRUE /* server account */);
        if (value) {
@@ -393,39 +317,20 @@ modest_server_account_get_security (ModestAccountMgr *self,
 
 void
 modest_server_account_set_security (ModestAccountMgr *self, 
-       const gchar* account_name, ModestProtocol security)
+       const gchar* account_name, ModestConnectionProtocol security)
 {
        /* Get the conf string for the enum value: */
        const gchar* str_value = NULL;
-       if (security == MODEST_PROTOCOL_SECURITY_NONE)
+       if (security == MODEST_PROTOCOL_CONNECTION_NORMAL)
                str_value = MODEST_ACCOUNT_SECURITY_VALUE_NONE;
-       else if (security == MODEST_PROTOCOL_SECURITY_TLS)
+       else if (security == MODEST_PROTOCOL_CONNECTION_TLS)
                str_value = MODEST_ACCOUNT_SECURITY_VALUE_NORMAL;
-       else if (security == MODEST_PROTOCOL_SECURITY_SSL)
+       else if (security == MODEST_PROTOCOL_CONNECTION_SSL)
                str_value = MODEST_ACCOUNT_SECURITY_VALUE_SSL;
        
        /* Set it in the configuration: */
        modest_account_mgr_set_string (self, account_name, MODEST_ACCOUNT_SECURITY, str_value, TRUE);
 }
-                    
-#if 0                     
-gchar*
-modest_account_mgr_get_server_account_option (ModestAccountMgr *self, 
-       const gchar* account_name, const gchar* option_name)
-{
-       GSList *option_list = modest_account_mgr_get_list (self, account_name, MODEST_ACCOUNT_OPTIONS,
-                                                    MODEST_CONF_VALUE_STRING, TRUE);
-       if (!option_list)
-               return NULL;
-               
-       gchar *result = modest_server_account_data_get_option_value (option_list, option_name);
-       
-       /* TODO: Should we free the items too, or just the list? */
-       g_slist_free (option_list);
-               
-       return result;
-}
-#endif
 
 ModestServerAccountData*
 modest_account_mgr_get_server_account_data (ModestAccountMgr *self, const gchar* name)
@@ -440,7 +345,7 @@ modest_account_mgr_get_server_account_data (ModestAccountMgr *self, const gchar*
        data->hostname     = modest_account_mgr_get_string (self, name, MODEST_ACCOUNT_HOSTNAME,TRUE);
        data->username     = modest_account_mgr_get_string (self, name, MODEST_ACCOUNT_USERNAME,TRUE);  
        proto              = modest_account_mgr_get_string (self, name, MODEST_ACCOUNT_PROTO, TRUE);
-       data->proto        = modest_protocol_info_get_protocol (proto);
+       data->proto        = modest_protocol_info_get_transport_store_protocol (proto);
        g_free (proto);
 
        data->port         = modest_account_mgr_get_int (self, name, MODEST_ACCOUNT_PORT, TRUE);
@@ -455,11 +360,7 @@ modest_account_mgr_get_server_account_data (ModestAccountMgr *self, const gchar*
        
        data->last_updated = modest_account_mgr_get_int    (self, name, MODEST_ACCOUNT_LAST_UPDATED,TRUE);
        
-       data->password     = modest_account_mgr_get_string (self, name, MODEST_ACCOUNT_PASSWORD, TRUE);
-       data->uri          = modest_account_mgr_get_string (self, name, MODEST_ACCOUNT_URI,TRUE);
-       data->options = modest_account_mgr_get_list (self, name, MODEST_ACCOUNT_OPTIONS,
-                                                    MODEST_CONF_VALUE_STRING, TRUE);
-                                                  
+       data->password     = modest_account_mgr_get_string (self, name, MODEST_ACCOUNT_PASSWORD, TRUE);            
        
        return data;
 }
@@ -485,15 +386,6 @@ modest_account_mgr_free_server_account_data (ModestAccountMgr *self,
 
        g_free (data->password);
        data->password = NULL;
-       
-       if (data->options) {
-               GSList *tmp = data->options;
-               while (tmp) {
-                       g_free (tmp->data);
-                       tmp = g_slist_next (tmp);
-               }
-               g_slist_free (data->options);
-       }
 
        g_slice_free (ModestServerAccountData, data);
 }
@@ -644,14 +536,23 @@ modest_account_mgr_unset_default_account  (ModestAccountMgr *self)
 
 }
 
+gint on_accounts_list_sort_by_title(gconstpointer a, gconstpointer b)
+{
+       return g_utf8_collate((const gchar*)a, (const gchar*)b);
+}
+
 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)
+       
+       /* Get the first one, alphabetically, by title: */
+       GSList* list_sorted = g_slist_sort (account_names, 
+               on_accounts_list_sort_by_title);
+       if(list_sorted)
        {
-               const gchar* account_name = (const gchar*)account_names->data;
+               const gchar* account_name = (const gchar*)list_sorted->data;
                if (account_name)
                        result = modest_account_mgr_set_default_account (self, account_name);
        }