From: Dirk-Jan C. Binnema Date: Sun, 8 Jul 2007 12:12:37 +0000 (+0000) Subject: * modest-folder-view.c: change sorting for remote folders: make Inbox be the first... X-Git-Tag: git_migration_finished~2910 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=f7a80e39c3b0725566145d3bc2357846610bdcfb * modest-folder-view.c: change sorting for remote folders: make Inbox be the first folder in remote * modest-tny-folder: don't try to be too smart about guessing folder types. a local folder called "Inbox" should not be treated as an Inbox folder. pmo-trunk-r2628 --- diff --git a/src/modest-tny-folder.c b/src/modest-tny-folder.c index d4e4a19..358d312 100644 --- a/src/modest-tny-folder.c +++ b/src/modest-tny-folder.c @@ -50,20 +50,20 @@ modest_tny_folder_guess_folder_type_from_name (const gchar* name) type = TNY_FOLDER_TYPE_UNKNOWN; folder = g_utf8_strdown (name, strlen(name)); - if (strcmp (folder, "inbox") == 0 || - strcmp (folder, _("inbox")) == 0 || - strcmp (folder, _("mcen_me_folder_inbox")) == 0) - type = TNY_FOLDER_TYPE_INBOX; - else if (strcmp (folder, "outbox") == 0 || +// if (strcmp (folder, "inbox") == 0 || +// strcmp (folder, _("inbox")) == 0 || +// strcmp (folder, _("mcen_me_folder_inbox")) == 0) +// type = TNY_FOLDER_TYPE_INBOX; + if (strcmp (folder, "outbox") == 0 || strcmp (folder, _("outbox")) == 0 || strcmp (folder, _("mcen_me_folder_outbox")) == 0) type = TNY_FOLDER_TYPE_OUTBOX; - else if (g_str_has_prefix(folder, "junk") || - g_str_has_prefix(folder, _("junk"))) - type = TNY_FOLDER_TYPE_JUNK; - else if (g_str_has_prefix(folder, "trash") || - g_str_has_prefix(folder, _("trash"))) - type = TNY_FOLDER_TYPE_TRASH; +// else if (g_str_has_prefix(folder, "junk") || +// g_str_has_prefix(folder, _("junk"))) +// type = TNY_FOLDER_TYPE_JUNK; +// else if (g_str_has_prefix(folder, "trash") || +// g_str_has_prefix(folder, _("trash"))) +// type = TNY_FOLDER_TYPE_TRASH; else if (g_str_has_prefix(folder, "sent") || g_str_has_prefix(folder, _("sent")) || strcmp (folder, _("mcen_me_folder_sent")) == 0) @@ -72,15 +72,15 @@ modest_tny_folder_guess_folder_type_from_name (const gchar* name) g_str_has_prefix(folder, _("draft")) || strcmp (folder, _("mcen_me_folder_drafts")) == 0) type = TNY_FOLDER_TYPE_DRAFTS; - else if (g_str_has_prefix(folder, "notes") || - g_str_has_prefix(folder, _("notes"))) - type = TNY_FOLDER_TYPE_NOTES; - else if (g_str_has_prefix(folder, "contacts") || - g_str_has_prefix(folder, _("contacts"))) - type = TNY_FOLDER_TYPE_CONTACTS; - else if (g_str_has_prefix(folder, "calendar") || - g_str_has_prefix(folder, _("calendar"))) - type = TNY_FOLDER_TYPE_CALENDAR; +// else if (g_str_has_prefix(folder, "notes") || +// g_str_has_prefix(folder, _("notes"))) +// type = TNY_FOLDER_TYPE_NOTES; +// else if (g_str_has_prefix(folder, "contacts") || +// g_str_has_prefix(folder, _("contacts"))) +// type = TNY_FOLDER_TYPE_CONTACTS; +// else if (g_str_has_prefix(folder, "calendar") || +// g_str_has_prefix(folder, _("calendar"))) +// type = TNY_FOLDER_TYPE_CALENDAR; g_free (folder); return type; diff --git a/src/widgets/modest-folder-view.c b/src/widgets/modest-folder-view.c index ee5cbe1..893c068 100644 --- a/src/widgets/modest-folder-view.c +++ b/src/widgets/modest-folder-view.c @@ -1161,21 +1161,24 @@ get_cmp_rows_type_pos (GObject *folder) static gint get_cmp_subfolder_type_pos (TnyFolderType t) { - /* Outbox, Drafts, Sent, User */ - /* 0, 1, 2, 3 */ + /* Inbox, Outbox, Drafts, Sent, User */ + /* 0, 1, 2, 3, 4 */ switch (t) { - case TNY_FOLDER_TYPE_OUTBOX: + case TNY_FOLDER_TYPE_INBOX: return 0; break; - case TNY_FOLDER_TYPE_DRAFTS: + case TNY_FOLDER_TYPE_OUTBOX: return 1; break; - case TNY_FOLDER_TYPE_SENT: + case TNY_FOLDER_TYPE_DRAFTS: return 2; break; - default: + case TNY_FOLDER_TYPE_SENT: return 3; + break; + default: + return 4; } } @@ -1252,10 +1255,11 @@ cmp_rows (GtkTreeModel *tree_model, GtkTreeIter *iter1, GtkTreeIter *iter2, cmp = modest_text_utils_utf8_strcmp (name1, name2, TRUE); } } else { - GtkTreeIter parent; - gboolean has_parent; gint cmp1 = 0, cmp2 = 0; /* get the parent to know if it's a local folder */ + + GtkTreeIter parent; + gboolean has_parent; has_parent = gtk_tree_model_iter_parent (tree_model, &parent, iter1); if (has_parent) { GObject *parent_folder; @@ -1272,6 +1276,13 @@ cmp_rows (GtkTreeModel *tree_model, GtkTreeIter *iter1, GtkTreeIter *iter2, } g_object_unref (parent_folder); } + + /* if they are not local folders */ + if (cmp1 == cmp2) { + cmp1 = get_cmp_subfolder_type_pos (tny_folder_get_folder_type (TNY_FOLDER (folder1))); + cmp2 = get_cmp_subfolder_type_pos (tny_folder_get_folder_type (TNY_FOLDER (folder2))); + } + if (cmp1 == cmp2) cmp = modest_text_utils_utf8_strcmp (name1, name2, TRUE); else