[evolution/email-factory-3-4: 40/47] commit a9cfed5938aef37d95c009411f965ebc185547c1 Author: Matthew Barnes <mbarnes redhat com> Date:
- From: Srinivasa Ragavan <sragavan src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/email-factory-3-4: 40/47] commit a9cfed5938aef37d95c009411f965ebc185547c1 Author: Matthew Barnes <mbarnes redhat com> Date:
- Date: Tue, 3 Jan 2012 09:38:46 +0000 (UTC)
commit fa346c91bc8879f5cdeec40b72b9d56d94083cb8
Author: Srinivasa Ragavan <sragavan gnome org>
Date: Tue Jan 3 12:28:55 2012 +0530
commit a9cfed5938aef37d95c009411f965ebc185547c1
Author: Matthew Barnes <mbarnes redhat com>
Date: Fri Dec 16 10:40:37 2011 -0500
Avoid passing EMailBackend as much as possible.
More mail API churn... reversing some previous API
decisions.
I've made some key API changes to EMailSession on
the account-mgmt branch which should allow for this, and will
hopefully also benefit the "email-factory" branch.
EMailBackend barely needs to exist anymore, except as the owner of
EMailSession.
For several low-level functions, we replace its EMailBackend
parameter with EMailSession and EAlertSink parameters; the
latter so it can still pass user alerts up the chain.
libemail-engine/mail-ops.c | 63 +++++++++++++++----------------------------
libemail-engine/mail-ops.h | 7 +---
mail/e-mail-ui-session.c | 10 +-----
3 files changed, 26 insertions(+), 54 deletions(-)
---
diff --git a/libemail-engine/mail-ops.c b/libemail-engine/mail-ops.c
index e9bf888..d97165d 100644
--- a/libemail-engine/mail-ops.c
+++ b/libemail-engine/mail-ops.c
@@ -416,28 +416,6 @@ mail_fetch_mail (CamelStore *store,
mail_msg_unordered_push (m);
}
-static gchar *
-escape_percent_sign (const gchar *str)
-{
- GString *res;
-
- if (!str)
- return NULL;
-
- res = g_string_sized_new (strlen (str));
- while (*str) {
- if (*str == '%') {
- g_string_append (res, "%%");
- } else {
- g_string_append_c (res, *str);
- }
-
- str++;
- }
-
- return g_string_free (res, FALSE);
-}
-
/* ********************************************************************** */
/* sending stuff */
/* ** SEND MAIL *********************************************************** */
@@ -555,20 +533,11 @@ mail_send_message (struct _send_queue_msg *m,
}
if (transport != NULL) {
- CamelURL *url;
- gchar *url_string;
- gchar *escaped;
-
- url = camel_service_new_camel_url (CAMEL_SERVICE (transport));
- url_string = camel_url_to_string (url, CAMEL_URL_HIDE_ALL);
- escaped = escape_percent_sign (url_string);
- camel_url_free (url);
-
- /* Let the dialog know the right account it is using. */
- report_status (m, CAMEL_FILTER_STATUS_ACTION, 0, escaped);
+ const gchar *uid;
- g_free (escaped);
- g_free (url_string);
+ /* Let the dialog know the right account it is using. */
+ uid = camel_service_get_uid (CAMEL_SERVICE (transport));
+ report_status (m, CAMEL_FILTER_STATUS_ACTION, 0, uid);
}
/* Check for email sending */
@@ -1543,13 +1512,19 @@ static MailMsgInfo expunge_folder_info = {
};
void
-mail_expunge_folder (EMailSession *session,
- CamelFolder *folder)
+mail_expunge_folder (CamelFolder *folder)
{
struct _sync_folder_msg *m;
+ CamelSession *session;
+ CamelService *service;
+ CamelStore *parent_store;
+
+ parent_store = camel_folder_get_parent_store (m->folder);
+ service = CAMEL_SERVICE (parent_store);
+ session = camel_service_get_session (service);
m = mail_msg_new (&expunge_folder_info);
- m->session = g_object_ref (session);
+ m->session = (EMailSession *) g_object_ref (session);
m->folder = g_object_ref (folder);
mail_msg_slow_ordered_push (m);
@@ -1633,15 +1608,21 @@ static MailMsgInfo empty_trash_info = {
};
void
-mail_empty_trash (EMailSession *session,
- CamelStore *store)
+mail_empty_trash (CamelStore *store)
{
struct _empty_trash_msg *m;
+ CamelSession *session;
+ CamelService *service;
+ CamelStore *parent_store;
+
+ parent_store = camel_folder_get_parent_store (m->folder);
+ service = CAMEL_SERVICE (parent_store);
+ session = camel_service_get_session (service);
g_return_if_fail (CAMEL_IS_STORE (store));
m = mail_msg_new (&empty_trash_info);
- m->session = g_object_ref (session);
+ m->session = (EMailSession *)g_object_ref (session);
m->store = g_object_ref (store);
mail_msg_slow_ordered_push (m);
diff --git a/libemail-engine/mail-ops.h b/libemail-engine/mail-ops.h
index 241fad3..6b4a595 100644
--- a/libemail-engine/mail-ops.h
+++ b/libemail-engine/mail-ops.h
@@ -50,11 +50,8 @@ void mail_refresh_folder (CamelFolder *folder,
void (*done) (CamelFolder *folder, gpointer data),
gpointer data);
-void mail_expunge_folder (EMailSession *session,
- CamelFolder *folder);
-
-void mail_empty_trash (EMailSession *session,
- CamelStore *store);
+void mail_expunge_folder (CamelFolder *folder);
+void mail_empty_trash (CamelStore *store);
/* transfer (copy/move) a folder */
void mail_xfer_folder (const gchar *src_uri, const gchar *dest_uri, gboolean remove_source,
diff --git a/mail/e-mail-ui-session.c b/mail/e-mail-ui-session.c
index 49b038c..e6258b0 100644
--- a/mail/e-mail-ui-session.c
+++ b/mail/e-mail-ui-session.c
@@ -300,8 +300,7 @@ main_get_filter_driver (CamelSession *session,
const gchar *type,
GError **error)
{
- EShell *shell;
- EShellBackend *shell_backend;
+ EMailSession *ms = E_MAIL_SESSION (session);
CamelFilterDriver *driver;
EFilterRule *rule = NULL;
const gchar *config_dir;
@@ -312,17 +311,12 @@ main_get_filter_driver (CamelSession *session,
priv = E_MAIL_UI_SESSION_GET_PRIVATE (session);
- shell = e_shell_get_default ();
- shell_backend = e_shell_get_backend_by_name (shell, "mail");
- g_return_val_if_fail (E_IS_MAIL_BACKEND (shell_backend), NULL);
-
settings = g_settings_new ("org.gnome.evolution.mail");
config_dir = mail_session_get_config_dir ();
user = g_build_filename (config_dir, "filters.xml", NULL);
system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL);
- fc = (ERuleContext *) em_filter_context_new (
- E_MAIL_BACKEND (shell_backend));
+ fc = (ERuleContext *) em_filter_context_new (ms);
e_rule_context_load (fc, system, user);
g_free (system);
g_free (user);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]