aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-filter-folder-element.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/em-filter-folder-element.c')
-rw-r--r--mail/em-filter-folder-element.c65
1 files changed, 35 insertions, 30 deletions
diff --git a/mail/em-filter-folder-element.c b/mail/em-filter-folder-element.c
index 4a5d3595aa..a7be46431b 100644
--- a/mail/em-filter-folder-element.c
+++ b/mail/em-filter-folder-element.c
@@ -40,13 +40,13 @@
#include "e-util/e-alert.h"
struct _EMFilterFolderElementPrivate {
- EMailSession *session;
+ EMailBackend *backend;
gchar *uri;
};
enum {
PROP_0,
- PROP_SESSION
+ PROP_BACKEND
};
static gboolean validate (EFilterElement *fe, EAlert **alert);
@@ -64,18 +64,23 @@ G_DEFINE_TYPE (
E_TYPE_FILTER_ELEMENT)
static void
-filter_folder_element_set_session (EMFilterFolderElement *element,
- EMailSession *session)
+filter_folder_element_set_backend (EMFilterFolderElement *element,
+ EMailBackend *backend)
{
- if (!session)
- session = e_mail_backend_get_session (
- E_MAIL_BACKEND (e_shell_get_backend_by_name (
- e_shell_get_default (), "mail")));
+ /* FIXME Dirty hack. Backend should be passed in always. */
+ if (backend == NULL) {
+ EShellBackend *shell_backend;
+ EShell *shell;
+
+ shell = e_shell_get_default ();
+ shell_backend = e_shell_get_backend_by_name (shell, "mail");
+ backend = E_MAIL_BACKEND (shell_backend);
+ }
- g_return_if_fail (E_IS_MAIL_SESSION (session));
- g_return_if_fail (element->priv->session == NULL);
+ g_return_if_fail (E_IS_MAIL_BACKEND (backend));
+ g_return_if_fail (element->priv->backend == NULL);
- element->priv->session = g_object_ref (session);
+ element->priv->backend = g_object_ref (backend);
}
static void
@@ -85,8 +90,8 @@ filter_folder_element_set_property (GObject *object,
GParamSpec *pspec)
{
switch (property_id) {
- case PROP_SESSION:
- filter_folder_element_set_session (
+ case PROP_BACKEND:
+ filter_folder_element_set_backend (
EM_FILTER_FOLDER_ELEMENT (object),
g_value_get_object (value));
return;
@@ -102,10 +107,10 @@ filter_folder_element_get_property (GObject *object,
GParamSpec *pspec)
{
switch (property_id) {
- case PROP_SESSION:
+ case PROP_BACKEND:
g_value_set_object (
value,
- em_filter_folder_element_get_session (
+ em_filter_folder_element_get_backend (
EM_FILTER_FOLDER_ELEMENT (object)));
return;
}
@@ -120,9 +125,9 @@ filter_folder_element_dispose (GObject *object)
priv = EM_FILTER_FOLDER_ELEMENT (object)->priv;
- if (priv->session != NULL) {
- g_object_unref (priv->session);
- priv->session = NULL;
+ if (priv->backend != NULL) {
+ g_object_unref (priv->backend);
+ priv->backend = NULL;
}
/* Chain up to parent's dispose() method. */
@@ -168,12 +173,12 @@ em_filter_folder_element_class_init (EMFilterFolderElementClass *class)
g_object_class_install_property (
object_class,
- PROP_SESSION,
+ PROP_BACKEND,
g_param_spec_object (
- "session",
+ "backend",
NULL,
NULL,
- E_TYPE_MAIL_SESSION,
+ E_TYPE_MAIL_BACKEND,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY));
}
@@ -187,21 +192,21 @@ em_filter_folder_element_init (EMFilterFolderElement *element)
}
EFilterElement *
-em_filter_folder_element_new (EMailSession *session)
+em_filter_folder_element_new (EMailBackend *backend)
{
- g_return_val_if_fail (E_IS_MAIL_SESSION (session), NULL);
+ g_return_val_if_fail (E_IS_MAIL_BACKEND (backend), NULL);
return g_object_new (
EM_TYPE_FILTER_FOLDER_ELEMENT,
- "session", session, NULL);
+ "backend", backend, NULL);
}
-EMailSession *
-em_filter_folder_element_get_session (EMFilterFolderElement *element)
+EMailBackend *
+em_filter_folder_element_get_backend (EMFilterFolderElement *element)
{
g_return_val_if_fail (EM_IS_FILTER_FOLDER_ELEMENT (element), NULL);
- return element->priv->session;
+ return element->priv->backend;
}
const gchar *
@@ -310,13 +315,13 @@ static GtkWidget *
get_widget (EFilterElement *fe)
{
EMFilterFolderElement *ff = (EMFilterFolderElement *) fe;
- EMailSession *session;
+ EMailBackend *backend;
GtkWidget *button;
- session = em_filter_folder_element_get_session (ff);
+ backend = em_filter_folder_element_get_backend (ff);
button = em_folder_selection_button_new (
- session, _("Select Folder"), NULL);
+ backend, _("Select Folder"), NULL);
em_folder_selection_button_set_selection (
EM_FOLDER_SELECTION_BUTTON (button), ff->priv->uri);
gtk_widget_show (button);