aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/em-subscribe-editor.c2
-rw-r--r--mail/importers/elm-importer.c13
-rw-r--r--mail/importers/evolution-mbox-importer.c13
-rw-r--r--mail/importers/mail-importer.c14
-rw-r--r--mail/importers/pine-importer.c13
-rw-r--r--mail/mail-mt.c24
-rw-r--r--mail/mail-ops.c58
-rw-r--r--mail/mail-send-recv.c37
-rw-r--r--mail/mail-session.c5
9 files changed, 80 insertions, 99 deletions
diff --git a/mail/em-subscribe-editor.c b/mail/em-subscribe-editor.c
index 57b5e3dcb9..39ec661013 100644
--- a/mail/em-subscribe-editor.c
+++ b/mail/em-subscribe-editor.c
@@ -461,7 +461,7 @@ sub_folderinfo_exec (struct _emse_folderinfo_msg *m)
CAMEL_STORE_FOLDER_INFO_SUBSCRIPTION_LIST |
CAMEL_STORE_FOLDER_INFO_RECURSIVE,
&m->base.error);
- camel_operation_unregister (m->base.cancel);
+ camel_operation_unregister ();
}
}
diff --git a/mail/importers/elm-importer.c b/mail/importers/elm-importer.c
index 80d4c474bc..e6afc2bbac 100644
--- a/mail/importers/elm-importer.c
+++ b/mail/importers/elm-importer.c
@@ -219,7 +219,7 @@ elm_import_done (struct _elm_import_msg *m)
static void
elm_import_free (struct _elm_import_msg *m)
{
- camel_operation_unref (m->status);
+ g_object_unref (m->status);
g_free (m->status_what);
g_mutex_free (m->status_lock);
@@ -235,11 +235,6 @@ elm_status (CamelOperation *op, const gchar *what, gint pc, gpointer data)
{
struct _elm_import_msg *importer = data;
- if (pc == CAMEL_OPERATION_START)
- pc = 0;
- else if (pc == CAMEL_OPERATION_END)
- pc = 100;
-
g_mutex_lock (importer->status_lock);
g_free (importer->status_what);
importer->status_what = g_strdup (what);
@@ -288,7 +283,11 @@ mail_importer_elm_import (EImport *ei, EImportTarget *target)
m->target = (EImportTargetHome *)target;
m->status_timeout_id = g_timeout_add (100, elm_status_timeout, m);
m->status_lock = g_mutex_new ();
- m->status = camel_operation_new (elm_status, m);
+ m->status = camel_operation_new ();
+
+ g_signal_connect (
+ m->status, "status",
+ G_CALLBACK (elm_status), m);
id = m->base.seq;
diff --git a/mail/importers/evolution-mbox-importer.c b/mail/importers/evolution-mbox-importer.c
index affebd74b6..51d8796648 100644
--- a/mail/importers/evolution-mbox-importer.c
+++ b/mail/importers/evolution-mbox-importer.c
@@ -171,11 +171,6 @@ mbox_status (CamelOperation *op, const gchar *what, gint pc, gpointer data)
{
MboxImporter *importer = data;
- if (pc == CAMEL_OPERATION_START)
- pc = 0;
- else if (pc == CAMEL_OPERATION_END)
- pc = 100;
-
g_mutex_lock (importer->status_lock);
g_free (importer->status_what);
importer->status_what = g_strdup (what);
@@ -211,7 +206,7 @@ mbox_import_done (gpointer data, GError **error)
g_source_remove (importer->status_timeout_id);
g_free (importer->status_what);
g_mutex_free (importer->status_lock);
- camel_operation_unref (importer->cancel);
+ g_object_unref (importer->cancel);
e_import_complete (importer->import, importer->target);
g_free (importer);
@@ -231,7 +226,11 @@ mbox_import (EImport *ei, EImportTarget *target, EImportImporter *im)
importer->target = target;
importer->status_lock = g_mutex_new ();
importer->status_timeout_id = g_timeout_add (100, mbox_status_timeout, importer);
- importer->cancel = camel_operation_new (mbox_status, importer);
+ importer->cancel = camel_operation_new ();
+
+ g_signal_connect (
+ importer->cancel, "status",
+ G_CALLBACK (mbox_status), importer);
filename = g_filename_from_uri (((EImportTargetURI *)target)->uri_src, NULL, NULL);
mail_importer_import_mbox (
diff --git a/mail/importers/mail-importer.c b/mail/importers/mail-importer.c
index d00725533a..ddc9f66300 100644
--- a/mail/importers/mail-importer.c
+++ b/mail/importers/mail-importer.c
@@ -215,7 +215,7 @@ static void
import_mbox_free (struct _import_mbox_msg *m)
{
if (m->cancel)
- camel_operation_unref (m->cancel);
+ g_object_unref (m->cancel);
g_free (m->uri);
g_free (m->path);
}
@@ -239,10 +239,8 @@ mail_importer_import_mbox (const gchar *path, const gchar *folderuri, CamelOpera
m->uri = g_strdup (folderuri);
m->done = done;
m->done_data = data;
- if (cancel) {
- m->cancel = cancel;
- camel_operation_ref (cancel);
- }
+ if (cancel)
+ m->cancel = g_object_ref (cancel);
id = m->base.seq;
mail_msg_fast_ordered_push (m);
@@ -258,10 +256,8 @@ mail_importer_import_mbox_sync (const gchar *path, const gchar *folderuri, Camel
m = mail_msg_new (&import_mbox_info);
m->path = g_strdup (path);
m->uri = g_strdup (folderuri);
- if (cancel) {
- m->cancel = cancel;
- camel_operation_ref (cancel);
- }
+ if (cancel)
+ m->cancel = g_object_ref (cancel);
import_mbox_exec (m);
import_mbox_done (m);
diff --git a/mail/importers/pine-importer.c b/mail/importers/pine-importer.c
index c2c0ec22d7..4a7397c953 100644
--- a/mail/importers/pine-importer.c
+++ b/mail/importers/pine-importer.c
@@ -264,7 +264,7 @@ pine_import_done (struct _pine_import_msg *m)
static void
pine_import_free (struct _pine_import_msg *m)
{
- camel_operation_unref (m->status);
+ g_object_unref (m->status);
g_free (m->status_what);
g_mutex_free (m->status_lock);
@@ -283,11 +283,6 @@ pine_status (CamelOperation *op,
{
struct _pine_import_msg *importer = data;
- if (pc == CAMEL_OPERATION_START)
- pc = 0;
- else if (pc == CAMEL_OPERATION_END)
- pc = 100;
-
g_mutex_lock (importer->status_lock);
g_free (importer->status_what);
importer->status_what = g_strdup (what);
@@ -339,7 +334,11 @@ mail_importer_pine_import (EImport *ei,
m->status_timeout_id = g_timeout_add (
100, (GSourceFunc) pine_status_timeout, m);
m->status_lock = g_mutex_new ();
- m->status = camel_operation_new (pine_status, m);
+ m->status = camel_operation_new ();
+
+ g_signal_connect (
+ m->status, "status",
+ G_CALLBACK (pine_status), m);
id = m->base.seq;
diff --git a/mail/mail-mt.c b/mail/mail-mt.c
index b8bfba3d29..ce26572756 100644
--- a/mail/mail-mt.c
+++ b/mail/mail-mt.c
@@ -75,10 +75,16 @@ mail_msg_new (MailMsgInfo *info)
msg->info = info;
msg->ref_count = 1;
msg->seq = mail_msg_seq++;
- msg->cancel = camel_operation_new (mail_operation_status, GINT_TO_POINTER (msg->seq));
+ msg->cancel = camel_operation_new ();
+
msg->priv = g_slice_new0 (MailMsgPrivate);
msg->priv->cancelable = TRUE;
+ g_signal_connect (
+ msg->cancel, "status",
+ G_CALLBACK (mail_operation_status),
+ GINT_TO_POINTER (msg->seq));
+
g_hash_table_insert (mail_msg_active_table, GINT_TO_POINTER (msg->seq), msg);
d(printf("New message %p\n", msg));
@@ -140,10 +146,8 @@ mail_msg_free (MailMsg *mail_msg)
if (mail_msg->priv->activity != NULL)
g_object_unref (mail_msg->priv->activity);
- if (mail_msg->cancel != NULL) {
- camel_operation_mute (mail_msg->cancel);
- camel_operation_unref (mail_msg->cancel);
- }
+ if (mail_msg->cancel != NULL)
+ g_object_unref (mail_msg->cancel);
if (mail_msg->error != NULL)
g_error_free (mail_msg->error);
@@ -470,7 +474,7 @@ mail_msg_proxy (MailMsg *msg)
if (msg->info->desc != NULL && msg->cancel) {
camel_operation_end (msg->cancel);
- camel_operation_unregister (msg->cancel);
+ camel_operation_unregister ();
}
g_async_queue_push (msg_reply_queue, msg);
@@ -979,14 +983,6 @@ mail_operation_status (CamelOperation *op,
m = mail_msg_new (&op_status_info);
m->op = op;
m->what = g_strdup (what);
- switch (pc) {
- case CAMEL_OPERATION_START:
- pc = 0;
- break;
- case CAMEL_OPERATION_END:
- pc = 100;
- break;
- }
m->pc = pc;
m->data = data;
mail_msg_main_loop_push (m);
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index defa166a42..1303daee81 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -99,7 +99,7 @@ em_filter_folder_element_exec (struct _filter_mail_msg *m)
if (folder == NULL || camel_folder_get_message_count (folder) == 0) {
if (m->cancel)
- camel_operation_unregister (m->cancel);
+ camel_operation_unregister ();
return;
}
@@ -137,7 +137,7 @@ em_filter_folder_element_exec (struct _filter_mail_msg *m)
m->driver = NULL;
if (m->cancel)
- camel_operation_unregister (m->cancel);
+ camel_operation_unregister ();
}
static void
@@ -155,7 +155,7 @@ em_filter_folder_element_free (struct _filter_mail_msg *m)
em_utils_uids_free (m->source_uids);
if (m->cancel)
- camel_operation_unref (m->cancel);
+ g_object_unref (m->cancel);
if (m->destination)
g_object_unref (m->destination);
@@ -187,10 +187,8 @@ mail_filter_folder (CamelFolder *source_folder, GPtrArray *uids,
m->source_uids = uids;
m->cache = NULL;
m->delete = FALSE;
- if (cancel) {
- m->cancel = cancel;
- camel_operation_ref (cancel);
- }
+ if (cancel)
+ m->cancel = g_object_ref (cancel);
m->driver = camel_session_get_filter_driver (session, type, NULL);
@@ -347,7 +345,7 @@ fetch_mail_exec (struct _fetch_mail_msg *m)
}
fail:
if (m->cancel)
- camel_operation_unregister (m->cancel);
+ camel_operation_unregister ();
/* we unref this here as it may have more work to do (syncing
folders and whatnot) before we are really done */
@@ -370,7 +368,7 @@ fetch_mail_free (struct _fetch_mail_msg *m)
{
g_free (m->source_uri);
if (m->cancel)
- camel_operation_unref (m->cancel);
+ g_object_unref (m->cancel);
em_filter_folder_element_free ((struct _filter_mail_msg *) m);
}
@@ -398,10 +396,8 @@ mail_fetch_mail (const gchar *source, gint keep, const gchar *type, CamelOperati
m->source_uri = g_strdup (source);
fm->delete = !keep;
fm->cache = NULL;
- if (cancel) {
- m->cancel = cancel;
- camel_operation_ref (cancel);
- }
+ if (cancel)
+ m->cancel = g_object_ref (cancel);
m->done = done;
m->data = data;
@@ -846,10 +842,7 @@ send_queue_exec (struct _send_queue_msg *m)
if (!m->cancel)
camel_operation_end (NULL);
- if (m->cancel)
- camel_operation_unregister (m->cancel);
- else
- camel_operation_unregister (m->base.cancel);
+ camel_operation_unregister ();
}
@@ -874,7 +867,7 @@ send_queue_free (struct _send_queue_msg *m)
g_object_unref (m->queue);
g_free (m->destination);
if (m->cancel)
- camel_operation_unref (m->cancel);
+ g_object_unref (m->cancel);
}
static MailMsgInfo send_queue_info = {
@@ -900,9 +893,8 @@ mail_send_queue (CamelFolder *queue, const gchar *destination,
g_object_ref (queue);
m->destination = g_strdup (destination);
if (cancel) {
- m->cancel = cancel;
- camel_operation_ref (cancel);
- camel_operation_unref (m->base.cancel);
+ m->cancel = g_object_ref (cancel);
+ g_object_unref (m->base.cancel);
mail_msg_set_cancelable (m, FALSE);
m->base.cancel = NULL;
@@ -1179,9 +1171,8 @@ mail_get_folderinfo (CamelStore *store, CamelOperation *op, gboolean (*done)(Cam
m = mail_msg_new (&get_folderinfo_info);
if (op) {
- camel_operation_unref (m->base.cancel);
- m->base.cancel = op;
- camel_operation_ref (op);
+ g_object_unref (m->base.cancel);
+ m->base.cancel = g_object_ref (op);
}
m->store = store;
g_object_ref (store);
@@ -1455,9 +1446,8 @@ mail_get_store (const gchar *uri, CamelOperation *op, void (*done) (gchar *uri,
m = mail_msg_new (&get_store_info);
if (op) {
- camel_operation_unref (m->base.cancel);
- m->base.cancel = op;
- camel_operation_ref (op);
+ g_object_unref (m->base.cancel);
+ m->base.cancel = g_object_ref (op);
}
m->uri = g_strdup (uri);
m->data = data;
@@ -1912,7 +1902,7 @@ get_message_free (struct _get_message_msg *m)
{
g_free (m->uid);
g_object_unref (m->folder);
- camel_operation_unref (m->cancel);
+ g_object_unref (m->cancel);
if (m->message)
g_object_unref (m->message);
@@ -1940,7 +1930,7 @@ mail_get_message (CamelFolder *folder, const gchar *uid, void (*done) (CamelFold
m->uid = g_strdup (uid);
m->data = data;
m->done = (void (*) (CamelFolder *, const gchar *, CamelMimeMessage *, gpointer )) done;
- m->cancel = camel_operation_new (NULL, NULL);
+ m->cancel = camel_operation_new ();
id = m->base.seq;
dispatch (m);
@@ -1989,7 +1979,7 @@ mail_get_messagex (CamelFolder *folder,
m->uid = g_strdup (uid);
m->data = data;
m->done = (void (*) (CamelFolder *, const gchar *, CamelMimeMessage *, gpointer )) done;
- m->cancel = camel_operation_new (NULL, NULL);
+ m->cancel = camel_operation_new ();
id = m->base.seq;
dispatch (m);
@@ -2389,7 +2379,7 @@ prep_offline_exec (struct _prep_offline_msg *m)
}
if (m->cancel)
- camel_operation_unregister (m->cancel);
+ camel_operation_unregister ();
}
static void
@@ -2403,7 +2393,7 @@ static void
prep_offline_free (struct _prep_offline_msg *m)
{
if (m->cancel)
- camel_operation_unref (m->cancel);
+ g_object_unref (m->cancel);
g_free (m->uri);
}
@@ -2426,7 +2416,7 @@ mail_prep_offline (const gchar *uri,
m = mail_msg_new (&prep_offline_info);
m->cancel = cancel;
if (cancel)
- camel_operation_ref (cancel);
+ g_object_ref (cancel);
m->uri = g_strdup (uri);
m->data = data;
m->done = done;
@@ -2643,7 +2633,7 @@ check_service_exec (struct _check_msg *m)
service = camel_session_get_service (session, m->url, m->type, &m->base.error);
if (!service) {
- camel_operation_unregister (m->base.cancel);
+ camel_operation_unregister ();
return;
}
diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c
index 4d84fd0284..c7d1b3c0b4 100644
--- a/mail/mail-send-recv.c
+++ b/mail/mail-send-recv.c
@@ -146,7 +146,7 @@ free_send_info (struct _send_info *info)
{
g_free (info->uri);
if (info->cancel)
- camel_operation_unref (info->cancel);
+ g_object_unref (info->cancel);
if (info->timeout_id != 0)
g_source_remove (info->timeout_id);
g_free (info->what);
@@ -325,20 +325,11 @@ set_send_account (struct _send_info *info, const gchar *account_url)
/* for camel operation status */
static void
-operation_status (CamelOperation *op, const gchar *what, gint pc, gpointer data)
+operation_status (CamelOperation *op,
+ const gchar *what,
+ gint pc,
+ struct _send_info *info)
{
- struct _send_info *info = data;
-
- /*printf("Operation '%s', percent %d\n");*/
- switch (pc) {
- case CAMEL_OPERATION_START:
- pc = 0;
- break;
- case CAMEL_OPERATION_END:
- pc = 100;
- break;
- }
-
set_send_status (info, what, pc);
}
@@ -538,10 +529,14 @@ build_dialog (GtkWindow *parent,
info->uri = g_strdup (source->url);
info->keep_on_server = source->keep_on_server;
- info->cancel = camel_operation_new (operation_status, info);
+ info->cancel = camel_operation_new ();
info->state = SEND_ACTIVE;
info->timeout_id = g_timeout_add (STATUS_TIMEOUT, operation_status_timeout, info);
+ g_signal_connect (
+ info->cancel, "status",
+ G_CALLBACK (operation_status), info);
+
g_hash_table_insert (data->active, info->uri, info);
list = g_list_prepend (list, info);
} else if (info->progress_bar != NULL) {
@@ -624,10 +619,14 @@ build_dialog (GtkWindow *parent,
info->uri = g_strdup (destination);
info->keep_on_server = FALSE;
- info->cancel = camel_operation_new (operation_status, info);
+ info->cancel = camel_operation_new ();
info->state = SEND_ACTIVE;
info->timeout_id = g_timeout_add (STATUS_TIMEOUT, operation_status_timeout, info);
+ g_signal_connect (
+ info->cancel, "status",
+ G_CALLBACK (operation_status), info);
+
g_hash_table_insert (data->active, (gpointer) SEND_URI_KEY, info);
list = g_list_prepend (list, info);
} else if (info->timeout_id == 0)
@@ -1240,12 +1239,16 @@ mail_receive_uri (const gchar *uri, gboolean keep_on_server)
info->status_label = NULL;
info->uri = g_strdup (uri);
info->keep_on_server = keep_on_server;
- info->cancel = camel_operation_new (operation_status, info);
+ info->cancel = camel_operation_new ();
info->cancel_button = NULL;
info->data = data;
info->state = SEND_ACTIVE;
info->timeout_id = 0;
+ g_signal_connect (
+ info->cancel, "status",
+ G_CALLBACK (operation_status), info);
+
d(printf("Adding new info %p\n", info));
g_hash_table_insert (data->active, info->uri, info);
diff --git a/mail/mail-session.c b/mail/mail-session.c
index 4725a2eea8..c3ba26cb10 100644
--- a/mail/mail-session.c
+++ b/mail/mail-session.c
@@ -635,9 +635,8 @@ static gpointer ms_thread_msg_new (CamelSession *session, CamelSessionThreadOps
MailMsg *m = mail_msg_new (&ms_thread_info_dummy);
msg->data = m;
- camel_operation_unref (msg->op);
- msg->op = m->cancel;
- camel_operation_ref (msg->op);
+ g_object_unref (msg->op);
+ msg->op = g_object_ref (m->cancel);
}
return msg;