aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2011-05-03 19:06:10 +0800
committerMatthew Barnes <mbarnes@redhat.com>2011-05-03 21:42:06 +0800
commite7136c728938dc75211111148cd184731f720911 (patch)
tree55c129c2dc5c142f0c07de29497614b5d07c19af
parent91926cfad40b5a94cc34243db9fc17b6ad55b15c (diff)
downloadgsoc2013-evolution-e7136c728938dc75211111148cd184731f720911.tar.gz
gsoc2013-evolution-e7136c728938dc75211111148cd184731f720911.tar.zst
gsoc2013-evolution-e7136c728938dc75211111148cd184731f720911.zip
Replace camel_store_folder_uri_equal() with e_mail_folder_uri_equal().
-rw-r--r--mail/em-folder-tree-model.c7
-rw-r--r--mail/em-utils.c82
-rw-r--r--mail/mail-vfolder.c65
3 files changed, 87 insertions, 67 deletions
diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c
index 7a7a5f8716..072f5e448b 100644
--- a/mail/em-folder-tree-model.c
+++ b/mail/em-folder-tree-model.c
@@ -46,6 +46,7 @@
#include "em-folder-utils.h"
#include "em-event.h"
+#include "e-mail-folder-utils.h"
#include "e-mail-local.h"
#include "e-mail-store.h"
#include "shell/e-shell.h"
@@ -738,13 +739,15 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model,
if (si->account && (flags & CAMEL_FOLDER_TYPE_MASK) == 0) {
if (!is_drafts && si->account->drafts_folder_uri) {
gchar *curi = em_uri_to_camel (si->account->drafts_folder_uri);
- is_drafts = camel_store_folder_uri_equal (si->store, fi->uri, curi);
+ is_drafts = e_mail_folder_uri_equal (
+ CAMEL_SESSION (session), fi->uri, curi);
g_free (curi);
}
if (si->account->sent_folder_uri) {
gchar *curi = em_uri_to_camel (si->account->sent_folder_uri);
- if (camel_store_folder_uri_equal (si->store, fi->uri, curi)) {
+ if (e_mail_folder_uri_equal (
+ CAMEL_SESSION (session), fi->uri, curi)) {
add_flags = CAMEL_FOLDER_TYPE_SENT;
}
g_free (curi);
diff --git a/mail/em-utils.c b/mail/em-utils.c
index 13b55eddae..ecd787c63b 100644
--- a/mail/em-utils.c
+++ b/mail/em-utils.c
@@ -70,6 +70,7 @@
#include "em-utils.h"
#include "em-composer-utils.h"
#include "em-format-quote.h"
+#include "e-mail-folder-utils.h"
#include "e-mail-local.h"
#include "e-mail-session.h"
@@ -230,7 +231,7 @@ em_utils_check_user_can_send_mail (void)
account_list = e_get_account_list ();
- if (e_list_length ((EList *) account_list) == 0)
+ if (e_list_length (E_LIST (account_list)) == 0)
return FALSE;
if (!(account = e_get_default_account ()))
@@ -1003,11 +1004,12 @@ gboolean
em_utils_folder_is_templates (CamelFolder *folder, const gchar *uri)
{
CamelFolder *local_templates_folder;
- CamelStore *parent_store;
+ CamelSession *session;
+ CamelStore *store;
EAccountList *account_list;
EAccount *account;
EIterator *iterator;
- gint is = FALSE;
+ gint is_templates = FALSE;
gchar *templates_uri;
local_templates_folder =
@@ -1019,21 +1021,20 @@ em_utils_folder_is_templates (CamelFolder *folder, const gchar *uri)
if (folder == NULL || uri == NULL)
return FALSE;
- parent_store = camel_folder_get_parent_store (folder);
+ store = camel_folder_get_parent_store (folder);
+ session = camel_service_get_session (CAMEL_SERVICE (store));
account_list = e_get_account_list ();
iterator = e_list_get_iterator (E_LIST (account_list));
- while (e_iterator_is_valid (iterator)) {
+ while (!is_templates && e_iterator_is_valid (iterator)) {
account = (EAccount *)e_iterator_get (iterator);
if (account->templates_folder_uri) {
- templates_uri = em_uri_to_camel (account->templates_folder_uri);
- if (camel_store_folder_uri_equal (parent_store, templates_uri, uri)) {
- g_free (templates_uri);
- is = TRUE;
- break;
- }
+ templates_uri = em_uri_to_camel (
+ account->templates_folder_uri);
+ is_templates = e_mail_folder_uri_equal (
+ session, templates_uri, uri);
g_free (templates_uri);
}
@@ -1042,7 +1043,7 @@ em_utils_folder_is_templates (CamelFolder *folder, const gchar *uri)
g_object_unref (iterator);
- return is;
+ return is_templates;
}
/**
@@ -1058,11 +1059,12 @@ gboolean
em_utils_folder_is_drafts (CamelFolder *folder, const gchar *uri)
{
CamelFolder *local_drafts_folder;
- CamelStore *parent_store;
+ CamelSession *session;
+ CamelStore *store;
EAccountList *account_list;
EAccount *account;
EIterator *iterator;
- gint is = FALSE;
+ gint is_drafts = FALSE;
gchar *drafts_uri;
local_drafts_folder =
@@ -1074,21 +1076,20 @@ em_utils_folder_is_drafts (CamelFolder *folder, const gchar *uri)
if (folder == NULL || uri == NULL)
return FALSE;
- parent_store = camel_folder_get_parent_store (folder);
+ store = camel_folder_get_parent_store (folder);
+ session = camel_service_get_session (CAMEL_SERVICE (store));
account_list = e_get_account_list ();
iterator = e_list_get_iterator (E_LIST (account_list));
- while (e_iterator_is_valid (iterator)) {
+ while (!is_drafts && e_iterator_is_valid (iterator)) {
account = (EAccount *)e_iterator_get (iterator);
if (account->drafts_folder_uri) {
- drafts_uri = em_uri_to_camel (account->drafts_folder_uri);
- if (camel_store_folder_uri_equal (parent_store, drafts_uri, uri)) {
- g_free (drafts_uri);
- is = TRUE;
- break;
- }
+ drafts_uri = em_uri_to_camel (
+ account->drafts_folder_uri);
+ is_drafts = e_mail_folder_uri_equal (
+ session, drafts_uri, uri);
g_free (drafts_uri);
}
@@ -1097,7 +1098,7 @@ em_utils_folder_is_drafts (CamelFolder *folder, const gchar *uri)
g_object_unref (iterator);
- return is;
+ return is_drafts;
}
/**
@@ -1113,14 +1114,16 @@ gboolean
em_utils_folder_is_sent (CamelFolder *folder, const gchar *uri)
{
CamelFolder *local_sent_folder;
- CamelStore *parent_store;
+ CamelSession *session;
+ CamelStore *store;
EAccountList *account_list;
EAccount *account;
EIterator *iterator;
- gint is = FALSE;
+ gint is_sent = FALSE;
gchar *sent_uri;
- local_sent_folder = e_mail_local_get_folder (E_MAIL_LOCAL_FOLDER_SENT);
+ local_sent_folder =
+ e_mail_local_get_folder (E_MAIL_LOCAL_FOLDER_SENT);
if (folder == local_sent_folder)
return TRUE;
@@ -1128,21 +1131,20 @@ em_utils_folder_is_sent (CamelFolder *folder, const gchar *uri)
if (folder == NULL || uri == NULL)
return FALSE;
- parent_store = camel_folder_get_parent_store (folder);
+ store = camel_folder_get_parent_store (folder);
+ session = camel_service_get_session (CAMEL_SERVICE (store));
account_list = e_get_account_list ();
iterator = e_list_get_iterator (E_LIST (account_list));
- while (e_iterator_is_valid (iterator)) {
+ while (!is_sent && e_iterator_is_valid (iterator)) {
account = (EAccount *)e_iterator_get (iterator);
if (account->sent_folder_uri) {
- sent_uri = em_uri_to_camel (account->sent_folder_uri);
- if (camel_store_folder_uri_equal (parent_store, sent_uri, uri)) {
- g_free (sent_uri);
- is = TRUE;
- break;
- }
+ sent_uri = em_uri_to_camel (
+ account->sent_folder_uri);
+ is_sent = e_mail_folder_uri_equal (
+ session, sent_uri, uri);
g_free (sent_uri);
}
@@ -1151,7 +1153,7 @@ em_utils_folder_is_sent (CamelFolder *folder, const gchar *uri)
g_object_unref (iterator);
- return is;
+ return is_sent;
}
/**
@@ -1167,6 +1169,8 @@ gboolean
em_utils_folder_is_outbox (CamelFolder *folder, const gchar *uri)
{
CamelFolder *local_outbox_folder;
+ CamelSession *session;
+ CamelStore *store;
const gchar *local_outbox_folder_uri;
local_outbox_folder =
@@ -1180,9 +1184,11 @@ em_utils_folder_is_outbox (CamelFolder *folder, const gchar *uri)
if (uri == NULL)
return FALSE;
- return camel_store_folder_uri_equal (
- camel_folder_get_parent_store (local_outbox_folder),
- local_outbox_folder_uri, uri);
+ store = camel_folder_get_parent_store (local_outbox_folder);
+ session = camel_service_get_session (CAMEL_SERVICE (store));
+
+ return e_mail_folder_uri_equal (
+ session, local_outbox_folder_uri, uri);
}
/* ********************************************************************** */
diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c
index aa13589ab2..0f98528d16 100644
--- a/mail/mail-vfolder.c
+++ b/mail/mail-vfolder.c
@@ -35,6 +35,7 @@
#include "e-mail-backend.h"
#include "e-mail-session.h"
+#include "e-mail-folder-utils.h"
#include "em-folder-tree-model.h"
#include "em-utils.h"
#include "em-vfolder-context.h"
@@ -333,10 +334,12 @@ vfolder_adduri (EMailSession *session,
/* ********************************************************************** */
static GList *
-mv_find_folder (GList *l, CamelStore *store, const gchar *uri)
+mv_find_folder (GList *l, EMailSession *session, const gchar *uri)
{
+ CamelSession *camel_session = CAMEL_SESSION (session);
+
while (l) {
- if (camel_store_folder_uri_equal (store, l->data, uri))
+ if (e_mail_folder_uri_equal (camel_session, l->data, uri))
break;
l = l->next;
}
@@ -345,11 +348,12 @@ mv_find_folder (GList *l, CamelStore *store, const gchar *uri)
/* uri is a camel uri */
static gint
-uri_is_ignore (CamelStore *store, const gchar *uri)
+uri_is_ignore (EMailSession *session, const gchar *uri)
{
EAccountList *accounts;
EAccount *account;
EIterator *iter;
+ CamelSession *camel_session;
const gchar *local_drafts_uri;
const gchar *local_outbox_uri;
const gchar *local_sent_uri;
@@ -359,17 +363,16 @@ uri_is_ignore (CamelStore *store, const gchar *uri)
local_outbox_uri = e_mail_local_get_folder_uri (E_MAIL_LOCAL_FOLDER_OUTBOX);
local_sent_uri = e_mail_local_get_folder_uri (E_MAIL_LOCAL_FOLDER_SENT);
- d(printf("checking '%s' against:\n %s\n %s\n %s\n", uri,
- local_outbox_uri,
- local_sent_uri,
- local_drafts_uri));
+ camel_session = CAMEL_SESSION (session);
- found = camel_store_folder_uri_equal (store, local_outbox_uri, uri)
- || camel_store_folder_uri_equal (store, local_sent_uri, uri)
- || camel_store_folder_uri_equal (store, local_drafts_uri, uri);
+ if (e_mail_folder_uri_equal (camel_session, local_outbox_uri, uri))
+ return TRUE;
- if (found)
- return found;
+ if (e_mail_folder_uri_equal (camel_session, local_sent_uri, uri))
+ return TRUE;
+
+ if (e_mail_folder_uri_equal (camel_session, local_drafts_uri, uri))
+ return TRUE;
accounts = e_get_account_list ();
iter = e_list_get_iterator ((EList *) accounts);
@@ -381,14 +384,16 @@ uri_is_ignore (CamelStore *store, const gchar *uri)
d(printf("checking sent_folder_uri '%s' == '%s'\n",
account->sent_folder_uri ? account->sent_folder_uri : "empty", uri));
- if (account->sent_folder_uri) {
+ if (account->sent_folder_uri != NULL) {
curi = em_uri_to_camel (account->sent_folder_uri);
- found = camel_store_folder_uri_equal (store, uri, curi);
+ found = e_mail_folder_uri_equal (
+ camel_session, uri, curi);
g_free (curi);
}
- if (!found && account->drafts_folder_uri) {
+ if (!found && account->drafts_folder_uri != NULL) {
curi = em_uri_to_camel (account->drafts_folder_uri);
- found = camel_store_folder_uri_equal (store, uri, curi);
+ found = e_mail_folder_uri_equal (
+ camel_session, uri, curi);
g_free (curi);
}
@@ -481,7 +486,7 @@ mail_vfolder_add_uri (EMailSession *session,
g_return_if_fail (mail_in_main_thread ());
- is_ignore = uri_is_ignore (store, curi);
+ is_ignore = uri_is_ignore (session, curi);
G_LOCK (vfolder);
@@ -492,12 +497,12 @@ mail_vfolder_add_uri (EMailSession *session,
is_ignore = TRUE;
} else if (remove) {
if (remote) {
- if ((link = mv_find_folder (source_folders_remote, store, curi)) != NULL) {
+ if ((link = mv_find_folder (source_folders_remote, session, curi)) != NULL) {
g_free (link->data);
source_folders_remote = g_list_remove_link (source_folders_remote, link);
}
} else {
- if ((link = mv_find_folder (source_folders_local, store, curi)) != NULL) {
+ if ((link = mv_find_folder (source_folders_local, session, curi)) != NULL) {
g_free (link->data);
source_folders_local = g_list_remove_link (source_folders_local, link);
}
@@ -505,10 +510,10 @@ mail_vfolder_add_uri (EMailSession *session,
} else if (!is_ignore) {
/* we ignore drafts/sent/outbox here */
if (remote) {
- if (mv_find_folder (source_folders_remote, store, curi) == NULL)
+ if (mv_find_folder (source_folders_remote, session, curi) == NULL)
source_folders_remote = g_list_prepend (source_folders_remote, g_strdup (curi));
} else {
- if (mv_find_folder (source_folders_local, store, curi) == NULL)
+ if (mv_find_folder (source_folders_local, session, curi) == NULL)
source_folders_local = g_list_prepend (source_folders_local, g_strdup (curi));
}
}
@@ -538,8 +543,8 @@ mail_vfolder_add_uri (EMailSession *session,
(EMVFolderRule *)rule, source))) {
gchar *csource;
csource = em_uri_to_camel (source);
- found = camel_store_folder_uri_equal (store, curi, csource);
- d(printf(found?" '%s' == '%s'?\n":" '%s' != '%s'\n", curi, csource));
+ found = e_mail_folder_uri_equal (
+ CAMEL_SESSION (session), curi, csource);
g_free (csource);
}
@@ -622,6 +627,7 @@ mail_vfolder_delete_uri (EMailBackend *backend,
const gchar *curi)
{
EFilterRule *rule;
+ EMailSession *session;
const gchar *source;
CamelVeeFolder *vf;
GString *changed;
@@ -642,6 +648,8 @@ mail_vfolder_delete_uri (EMailBackend *backend,
g_return_if_fail (mail_in_main_thread ());
+ session = e_mail_backend_get_session (backend);
+
changed_count = 0;
changed = g_string_new ("");
@@ -665,7 +673,7 @@ mail_vfolder_delete_uri (EMailBackend *backend,
/* Remove all sources that match, ignore changed events though
because the adduri call above does the work async */
- if (camel_store_folder_uri_equal (store, curi, csource)) {
+ if (e_mail_folder_uri_equal (CAMEL_SESSION (session), curi, csource)) {
vf = g_hash_table_lookup (vfolder_hash, rule->name);
if (!vf) {
g_warning ("vf is NULL for %s\n", rule->name);
@@ -694,12 +702,12 @@ mail_vfolder_delete_uri (EMailBackend *backend,
}
done:
- if ((link = mv_find_folder (source_folders_remote, store, curi)) != NULL) {
+ if ((link = mv_find_folder (source_folders_remote, session, curi)) != NULL) {
g_free (link->data);
source_folders_remote = g_list_remove_link (source_folders_remote, link);
}
- if ((link = mv_find_folder (source_folders_local, store, curi)) != NULL) {
+ if ((link = mv_find_folder (source_folders_local, session, curi)) != NULL) {
g_free (link->data);
source_folders_local = g_list_remove_link (source_folders_local, link);
}
@@ -743,6 +751,7 @@ mail_vfolder_rename_uri (CamelStore *store, const gchar *cfrom, const gchar *cto
EFilterRule *rule;
const gchar *source;
CamelVeeFolder *vf;
+ CamelSession *session;
gint changed = 0;
gchar *from, *to;
@@ -753,6 +762,8 @@ mail_vfolder_rename_uri (CamelStore *store, const gchar *cfrom, const gchar *cto
g_return_if_fail (mail_in_main_thread ());
+ session = camel_service_get_session (CAMEL_SERVICE (store));
+
from = em_uri_from_camel (cfrom);
to = em_uri_from_camel (cto);
@@ -767,7 +778,7 @@ mail_vfolder_rename_uri (CamelStore *store, const gchar *cfrom, const gchar *cto
/* Remove all sources that match, ignore changed events though
because the adduri call above does the work async */
- if (camel_store_folder_uri_equal (store, cfrom, csource)) {
+ if (e_mail_folder_uri_equal (session, cfrom, csource)) {
vf = g_hash_table_lookup (vfolder_hash, rule->name);
if (!vf) {
g_warning ("vf is NULL for %s\n", rule->name);