From 4337f9b90f61b92a61f0ff2751ff44bc58d23d13 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz Date: Mon, 2 Mar 2009 15:41:55 +0000 Subject: [PATCH] Add filter in folder view for showing only mailboxes pmo-trunk-r7750 --- src/widgets/modest-folder-view.c | 14 ++++++++++++++ src/widgets/modest-folder-view.h | 1 + 2 files changed, 15 insertions(+) diff --git a/src/widgets/modest-folder-view.c b/src/widgets/modest-folder-view.c index ab6e1b6..acf572f 100644 --- a/src/widgets/modest-folder-view.c +++ b/src/widgets/modest-folder-view.c @@ -1966,6 +1966,20 @@ filter_row (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) } } + if (retval && (priv->filter & MODEST_FOLDER_VIEW_FILTER_SHOW_ONLY_MAILBOXES)) { + /* A mailbox is a fake folder with an @ in the middle of the name */ + if (!TNY_IS_FOLDER (instance) || + !(tny_folder_get_caps (TNY_FOLDER (instance)) & TNY_FOLDER_CAPS_NOSELECT)) { + return FALSE; + } else { + const gchar *folder_name; + folder_name = tny_folder_get_name (TNY_FOLDER (instance)); + if (!folder_name || strchr (folder_name, '@') == NULL) + return FALSE; + } + + } + if (retval && (priv->filter & MODEST_FOLDER_VIEW_FILTER_CAN_HAVE_FOLDERS)) { if (TNY_IS_FOLDER (instance)) { /* Check folder rules */ diff --git a/src/widgets/modest-folder-view.h b/src/widgets/modest-folder-view.h index 80d2c02..3d30402 100644 --- a/src/widgets/modest-folder-view.h +++ b/src/widgets/modest-folder-view.h @@ -66,6 +66,7 @@ typedef enum _ModestFolderViewFilter { MODEST_FOLDER_VIEW_FILTER_HIDE_ACCOUNTS = 1 << 5, MODEST_FOLDER_VIEW_FILTER_HIDE_FOLDERS = 1 << 6, MODEST_FOLDER_VIEW_FILTER_HIDE_LOCAL_FOLDERS = 1 << 7, + MODEST_FOLDER_VIEW_FILTER_SHOW_ONLY_MAILBOXES = 1<< 8, } ModestFolderViewFilter; typedef struct _ModestFolderView ModestFolderView; -- 1.7.9.5