From a797db62dec6b78ecba475350acf3804c80efa9f Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Mon, 12 Jun 2006 13:05:17 +0000 Subject: [PATCH] * if we cannot get a valid folder type from the server, we can 'guess' the type by looking at it's name. This improves modest with eg. MS-Exchange quite a bit (when using IMAP). Also, added some icons. pmo-trunk-r229 --- src/gtk-glade/modest-icon-names.h | 13 ++-- src/gtk-glade/pixmaps/qgn_addr_icon_user_group.png | Bin 0 -> 4443 bytes src/gtk-glade/pixmaps/qgn_widg_datedit.png | Bin 0 -> 918 bytes src/modest-tny-folder-tree-view.c | 66 ++++++++++++++++++++ 4 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 src/gtk-glade/pixmaps/qgn_addr_icon_user_group.png create mode 100644 src/gtk-glade/pixmaps/qgn_widg_datedit.png diff --git a/src/gtk-glade/modest-icon-names.h b/src/gtk-glade/modest-icon-names.h index 985691a..35745bd 100644 --- a/src/gtk-glade/modest-icon-names.h +++ b/src/gtk-glade/modest-icon-names.h @@ -19,11 +19,16 @@ #define MODEST_FOLDER_ICON_INBOX PIXMAP_PREFIX "qgn_list_messagin_inbox.png" #define MODEST_FOLDER_ICON_OUTBOX PIXMAP_PREFIX "qgn_list_messagin_outbox.png" -#define MODEST_FOLDER_ICON_SENT PIXMAP_PREFIX "balsa-mbox-sent.png" -#define MODEST_FOLDER_ICON_TRASH PIXMAP_PREFIX "balsa-mbox-sent.png" -#define MODEST_FOLDER_ICON_JUNK PIXMAP_PREFIX "balsa-mbox-sent.png" -#define MODEST_FOLDER_ICON_DRAFT PIXMAP_PREFIX "balsa-mbox-draft.png" +#define MODEST_FOLDER_ICON_SENT PIXMAP_PREFIX "qgn_list_messagin_sent.png" +#define MODEST_FOLDER_ICON_TRASH PIXMAP_PREFIX "qgn_list_messagin_mail_deleted.png" +#define MODEST_FOLDER_ICON_JUNK PIXMAP_PREFIX "qgn_list_messagin_mail_deleted.png" +#define MODEST_FOLDER_ICON_DRAFTS PIXMAP_PREFIX "qgn_list_messagin_drafts.png" #define MODEST_FOLDER_ICON_NORMAL PIXMAP_PREFIX "qgn_list_gene_fldr_cls.png" +#define MODEST_FOLDER_ICON_CONTACTS PIXMAP_PREFIX "qgn_addr_icon_user_group.png" +#define MODEST_FOLDER_ICON_NOTES PIXMAP_PREFIX "qgn_list_messagin_viewer.png" +#define MODEST_FOLDER_ICON_CALENDAR PIXMAP_PREFIX "qgn_widg_datedit.png" + + #endif /*__MODEST_TNY_ICON_NAMES_H__*/ diff --git a/src/gtk-glade/pixmaps/qgn_addr_icon_user_group.png b/src/gtk-glade/pixmaps/qgn_addr_icon_user_group.png new file mode 100644 index 0000000000000000000000000000000000000000..c5b9f6c527c598e11e423549f76b855a5f567623 GIT binary patch literal 4443 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 literal 0 HcmV?d00001 diff --git a/src/modest-tny-folder-tree-view.c b/src/modest-tny-folder-tree-view.c index 1f1c8dc..9960119 100644 --- a/src/modest-tny-folder-tree-view.c +++ b/src/modest-tny-folder-tree-view.c @@ -2,6 +2,7 @@ /* insert (c)/licensing information) */ #include +#include #include #include @@ -120,6 +121,51 @@ text_cell_data (GtkTreeViewColumn *column, GtkCellRenderer *renderer, g_free (fname); } +/* FIXME: move these to TnyMail */ +enum { + + TNY_MSG_FOLDER_TYPE_NOTES = TNY_MSG_FOLDER_TYPE_SENT + 1, /* urgh */ + TNY_MSG_FOLDER_TYPE_DRAFTS, + TNY_MSG_FOLDER_TYPE_CONTACTS, + TNY_MSG_FOLDER_TYPE_CALENDAR +}; + +static TnyMsgFolderType +guess_folder_type (const gchar* name) +{ + TnyMsgFolderType type; + gchar *folder; + + g_return_val_if_fail (name, TNY_MSG_FOLDER_TYPE_NORMAL); + + type = TNY_MSG_FOLDER_TYPE_NORMAL; + folder = g_utf8_strdown (name, strlen(name)); + + if (strcmp (folder, "inbox") == 0 || strcmp (folder, _("inbox")) == 0) + type = TNY_MSG_FOLDER_TYPE_INBOX; + else if (strcmp (folder, "outbox") == 0 || strcmp (folder, _("outbox")) == 0) + type = TNY_MSG_FOLDER_TYPE_OUTBOX; + else if (g_str_has_prefix(folder, "junk") || g_str_has_prefix(folder, _("junk"))) + type = TNY_MSG_FOLDER_TYPE_JUNK; + else if (g_str_has_prefix(folder, "trash") || g_str_has_prefix(folder, _("trash"))) + type = TNY_MSG_FOLDER_TYPE_JUNK; + else if (g_str_has_prefix(folder, "sent") || g_str_has_prefix(folder, _("sent"))) + type = TNY_MSG_FOLDER_TYPE_SENT; + + /* these are not *really* TNY_ types */ + else if (g_str_has_prefix(folder, "draft") || g_str_has_prefix(folder, _("draft"))) + type = TNY_MSG_FOLDER_TYPE_DRAFTS; + else if (g_str_has_prefix(folder, "notes") || g_str_has_prefix(folder, _("notes"))) + type = TNY_MSG_FOLDER_TYPE_NOTES; + else if (g_str_has_prefix(folder, "contacts") || g_str_has_prefix(folder, _("contacts"))) + type = TNY_MSG_FOLDER_TYPE_CONTACTS; + else if (g_str_has_prefix(folder, "calendar") || g_str_has_prefix(folder, _("calendar"))) + type = TNY_MSG_FOLDER_TYPE_CALENDAR; + + g_free (folder); + return type; +} + static void icon_cell_data (GtkTreeViewColumn *column, GtkCellRenderer *renderer, @@ -128,13 +174,20 @@ icon_cell_data (GtkTreeViewColumn *column, GtkCellRenderer *renderer, GObject *rendobj; GdkPixbuf *pixbuf; TnyMsgFolderType type; + gchar *fname; int unread; rendobj = G_OBJECT(renderer); gtk_tree_model_get (tree_model, iter, TNY_ACCOUNT_TREE_MODEL_TYPE_COLUMN, &type, + TNY_ACCOUNT_TREE_MODEL_NAME_COLUMN, &fname, TNY_ACCOUNT_TREE_MODEL_UNREAD_COLUMN, &unread, -1); rendobj = G_OBJECT(renderer); + + if (type == TNY_MSG_FOLDER_TYPE_NORMAL) + type = guess_folder_type (fname); + + g_free (fname); switch (type) { case TNY_MSG_FOLDER_TYPE_INBOX: @@ -149,6 +202,19 @@ icon_cell_data (GtkTreeViewColumn *column, GtkCellRenderer *renderer, case TNY_MSG_FOLDER_TYPE_SENT: pixbuf = modest_icon_factory_get_icon (MODEST_FOLDER_ICON_SENT); break; + case TNY_MSG_FOLDER_TYPE_DRAFTS: + pixbuf = modest_icon_factory_get_icon (MODEST_FOLDER_ICON_DRAFTS); + break; + case TNY_MSG_FOLDER_TYPE_NOTES: + pixbuf = modest_icon_factory_get_icon (MODEST_FOLDER_ICON_NOTES); + break; + case TNY_MSG_FOLDER_TYPE_CALENDAR: + pixbuf = modest_icon_factory_get_icon (MODEST_FOLDER_ICON_CALENDAR); + break; + case TNY_MSG_FOLDER_TYPE_CONTACTS: + pixbuf = modest_icon_factory_get_icon (MODEST_FOLDER_ICON_CONTACTS); + break; + case TNY_MSG_FOLDER_TYPE_NORMAL: default: pixbuf = modest_icon_factory_get_icon (MODEST_FOLDER_ICON_NORMAL); -- 1.7.9.5