X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fhildon2%2Fmodest-hildon2-global-settings-dialog.c;h=29873cc72e3b31b7a88d64779d317121ad6c5205;hb=fa726395d611387287c3ed585bfccef01fde0b60;hp=5f8afc6e1280d51e145b25b6070d13df76370303;hpb=7ca19ec4d309e66adcc5c04790b29d72f85e4800;p=modest diff --git a/src/hildon2/modest-hildon2-global-settings-dialog.c b/src/hildon2/modest-hildon2-global-settings-dialog.c index 5f8afc6..29873cc 100644 --- a/src/hildon2/modest-hildon2-global-settings-dialog.c +++ b/src/hildon2/modest-hildon2-global-settings-dialog.c @@ -397,7 +397,30 @@ current_connection (void) return modest_platform_get_current_connection (); } -static ModestPairList * +static gint +order_by_acc_name (gconstpointer a, + gconstpointer b) +{ + ModestPair *pair_a, *pair_b; + + pair_a = (ModestPair *) a; + pair_b = (ModestPair *) b; + + if (pair_a->second && pair_b->second) { + gint compare = g_utf8_collate ((gchar *) pair_a->second, + (gchar *) pair_b->second); + if (compare > 0) + compare = -1; + else if (compare < 0) + compare = 1; + + return compare; + } else { + return 0; + } +} + +static ModestPairList * get_accounts_list (void) { GSList *list = NULL; @@ -411,9 +434,9 @@ get_accounts_list (void) gchar *account_name; ModestAccountSettings *settings; ModestServerAccountSettings *store_settings; - + account_name = (gchar*)cursor->data; - + settings = modest_account_mgr_load_account_settings (account_mgr, account_name); if (!settings) { g_printerr ("modest: failed to get account data for %s\n", account_name); @@ -431,7 +454,7 @@ get_accounts_list (void) g_strdup (account_name), g_strdup (modest_account_settings_get_display_name (settings)), FALSE); - list = g_slist_prepend (list, pair); + list = g_slist_insert_sorted (list, pair, order_by_acc_name); } }