[evolution] Build vfolder rules with CamelFolders instead of folder URIs.
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Build vfolder rules with CamelFolders instead of folder URIs.
- Date: Tue, 3 May 2011 22:44:18 +0000 (UTC)
commit 76280e456d8d9789e9a9d2186926fc5607bd8967
Author: Matthew Barnes <mbarnes redhat com>
Date: Tue May 3 14:07:50 2011 -0400
Build vfolder rules with CamelFolders instead of folder URIs.
mail/e-mail-reader-utils.c | 8 +-------
mail/e-mail-reader.c | 12 ++++++------
mail/mail-autofilter.c | 19 +++++++++++++++----
mail/mail-autofilter.h | 4 ++--
mail/mail-vfolder.c | 14 ++++++++------
mail/mail-vfolder.h | 6 +++---
6 files changed, 35 insertions(+), 28 deletions(-)
---
diff --git a/mail/e-mail-reader-utils.c b/mail/e-mail-reader-utils.c
index 5953f64..cb3eef5 100644
--- a/mail/e-mail-reader-utils.c
+++ b/mail/e-mail-reader-utils.c
@@ -578,17 +578,15 @@ mail_reader_create_vfolder_cb (CamelFolder *folder,
{
struct {
EMailSession *session;
- gchar *uri;
gint type;
} *vfolder_data = user_data;
if (message != NULL)
vfolder_gui_add_from_message (
vfolder_data->session, message,
- vfolder_data->type, vfolder_data->uri);
+ vfolder_data->type, folder);
g_object_unref (vfolder_data->session);
- g_free (vfolder_data->uri);
g_free (vfolder_data);
}
@@ -599,12 +597,10 @@ e_mail_reader_create_vfolder_from_selected (EMailReader *reader,
EMailBackend *backend;
EMailSession *session;
CamelFolder *folder;
- const gchar *folder_uri;
GPtrArray *uids;
struct {
EMailSession *session;
- gchar *uri;
gint type;
} *vfolder_data;
@@ -614,13 +610,11 @@ e_mail_reader_create_vfolder_from_selected (EMailReader *reader,
session = e_mail_backend_get_session (backend);
folder = e_mail_reader_get_folder (reader);
- folder_uri = e_mail_reader_get_folder_uri (reader);
uids = e_mail_reader_get_selected_uids (reader);
if (uids->len == 1) {
vfolder_data = g_malloc (sizeof (*vfolder_data));
vfolder_data->session = g_object_ref (session);
- vfolder_data->uri = g_strdup (folder_uri);
vfolder_data->type = vfolder_type;
mail_get_message (
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c
index ad596bb..21d5341 100644
--- a/mail/e-mail-reader.c
+++ b/mail/e-mail-reader.c
@@ -1798,13 +1798,13 @@ action_search_folder_recipient_cb (GtkAction *action,
EMailSession *session;
EMFormatHTML *formatter;
EWebView *web_view;
+ CamelFolder *folder;
CamelURL *curl;
- const gchar *folder_uri;
const gchar *uri;
/* This action is defined in EMailDisplay. */
- folder_uri = e_mail_reader_get_folder_uri (reader);
+ folder = e_mail_reader_get_folder (reader);
formatter = e_mail_reader_get_formatter (reader);
web_view = em_format_html_get_web_view (formatter);
@@ -1824,7 +1824,7 @@ action_search_folder_recipient_cb (GtkAction *action,
inet_addr = camel_internet_address_new ();
camel_address_decode (CAMEL_ADDRESS (inet_addr), curl->path);
vfolder_gui_add_from_address (
- session, inet_addr, AUTO_TO, folder_uri);
+ session, inet_addr, AUTO_TO, folder);
g_object_unref (inet_addr);
}
@@ -1839,13 +1839,13 @@ action_search_folder_sender_cb (GtkAction *action,
EMailSession *session;
EMFormatHTML *formatter;
EWebView *web_view;
+ CamelFolder *folder;
CamelURL *curl;
- const gchar *folder_uri;
const gchar *uri;
/* This action is defined in EMailDisplay. */
- folder_uri = e_mail_reader_get_folder_uri (reader);
+ folder = e_mail_reader_get_folder (reader);
formatter = e_mail_reader_get_formatter (reader);
web_view = em_format_html_get_web_view (formatter);
@@ -1865,7 +1865,7 @@ action_search_folder_sender_cb (GtkAction *action,
inet_addr = camel_internet_address_new ();
camel_address_decode (CAMEL_ADDRESS (inet_addr), curl->path);
vfolder_gui_add_from_address (
- session, inet_addr, AUTO_FROM, folder_uri);
+ session, inet_addr, AUTO_FROM, folder);
g_object_unref (inet_addr);
}
diff --git a/mail/mail-autofilter.c b/mail/mail-autofilter.c
index 2055480..7c6a5c1 100644
--- a/mail/mail-autofilter.c
+++ b/mail/mail-autofilter.c
@@ -30,6 +30,7 @@
#include <glib.h>
#include <glib/gi18n.h>
+#include "e-mail-folder-utils.h"
#include "e-mail-session.h"
#include "mail-vfolder.h"
#include "mail-autofilter.h"
@@ -312,17 +313,22 @@ EFilterRule *
em_vfolder_rule_from_message (EMVFolderContext *context,
CamelMimeMessage *msg,
gint flags,
- const gchar *source)
+ CamelFolder *folder)
{
EFilterRule *rule;
EMailSession *session;
- gchar *euri = em_uri_from_camel (source);
+ gchar *uri, *euri;
+
+ uri = e_mail_folder_uri_from_folder (folder);
+ euri = em_uri_from_camel (uri);
session = em_vfolder_context_get_session (context);
rule = em_vfolder_rule_new (session);
em_vfolder_rule_add_source (EM_VFOLDER_RULE (rule), euri);
rule_from_message (rule, E_RULE_CONTEXT (context), msg, flags);
+
+ g_free (uri);
g_free (euri);
return rule;
@@ -332,17 +338,22 @@ EFilterRule *
em_vfolder_rule_from_address (EMVFolderContext *context,
CamelInternetAddress *addr,
gint flags,
- const gchar *source)
+ CamelFolder *folder)
{
EFilterRule *rule;
EMailSession *session;
- gchar *euri = em_uri_from_camel (source);
+ gchar *uri, *euri;
+
+ uri = e_mail_folder_uri_from_folder (folder);
+ euri = em_uri_from_camel (uri);
session = em_vfolder_context_get_session (context);
rule = em_vfolder_rule_new (session);
em_vfolder_rule_add_source (EM_VFOLDER_RULE (rule), euri);
rule_from_address (rule, E_RULE_CONTEXT (context), addr, flags);
+
+ g_free (uri);
g_free (euri);
return rule;
diff --git a/mail/mail-autofilter.h b/mail/mail-autofilter.h
index 7967023..7c5c23a 100644
--- a/mail/mail-autofilter.h
+++ b/mail/mail-autofilter.h
@@ -41,14 +41,14 @@ enum {
EFilterRule * em_vfolder_rule_from_message (EMVFolderContext *context,
CamelMimeMessage *msg,
gint flags,
- const gchar *source);
+ CamelFolder *folder);
EFilterRule * filter_rule_from_message (EMFilterContext *context,
CamelMimeMessage *msg,
gint flags);
EFilterRule * em_vfolder_rule_from_address (EMVFolderContext *context,
CamelInternetAddress *addr,
gint flags,
- const gchar *source);
+ CamelFolder *folder);
/* easiest place to put this */
void filter_gui_add_from_message (EMailSession *session,
diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c
index 0f98528..6958e82 100644
--- a/mail/mail-vfolder.c
+++ b/mail/mail-vfolder.c
@@ -1448,15 +1448,16 @@ vfolder_gui_add_rule (EMVFolderRule *rule)
void
vfolder_gui_add_from_message (EMailSession *session,
- CamelMimeMessage *msg,
+ CamelMimeMessage *message,
gint flags,
- const gchar *source)
+ CamelFolder *folder)
{
EMVFolderRule *rule;
- g_return_if_fail (msg != NULL);
+ g_return_if_fail (CAMEL_IS_MIME_MESSAGE (message));
- rule = (EMVFolderRule*)em_vfolder_rule_from_message (context, msg, flags, source);
+ rule = (EMVFolderRule*) em_vfolder_rule_from_message (
+ context, message, flags, folder);
vfolder_gui_add_rule (rule);
}
@@ -1464,13 +1465,14 @@ void
vfolder_gui_add_from_address (EMailSession *session,
CamelInternetAddress *addr,
gint flags,
- const gchar *source)
+ CamelFolder *folder)
{
EMVFolderRule *rule;
g_return_if_fail (addr != NULL);
- rule = (EMVFolderRule*)em_vfolder_rule_from_address (context, addr, flags, source);
+ rule = (EMVFolderRule*)em_vfolder_rule_from_address (
+ context, addr, flags, folder);
vfolder_gui_add_rule (rule);
}
diff --git a/mail/mail-vfolder.h b/mail/mail-vfolder.h
index 91aae4d..d1cdb37 100644
--- a/mail/mail-vfolder.h
+++ b/mail/mail-vfolder.h
@@ -40,13 +40,13 @@ EFilterRule * vfolder_clone_rule (EMailSession *session,
EFilterRule *in);
void vfolder_gui_add_rule (EMVFolderRule *rule);
void vfolder_gui_add_from_message (EMailSession *session,
- CamelMimeMessage *msg,
+ CamelMimeMessage *message,
gint flags,
- const gchar *source);
+ CamelFolder *folder);
void vfolder_gui_add_from_address (EMailSession *session,
CamelInternetAddress *addr,
gint flags,
- const gchar *source);
+ CamelFolder *folder);
GList * mail_vfolder_get_sources_local (void);
GList * mail_vfolder_get_sources_remote (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]