}
static void
-signal_data_free (SignalData *data)
+signal_data_free (SignalData *signal_data)
{
- if (data->folder != NULL)
- g_object_unref (data->folder);
+ if (signal_data->folder != NULL)
+ g_object_unref (signal_data->folder);
- g_free (data->folder_name);
+ g_free (signal_data->folder_name);
- g_slice_free (SignalData, data);
+ g_slice_free (SignalData, signal_data);
}
static gboolean
-folder_emit_changed_cb (SignalData *data)
+folder_emit_changed_cb (gpointer user_data)
{
+ SignalData *signal_data = user_data;
CamelFolderChangeInfo *changes;
- camel_folder_lock (data->folder, CAMEL_FOLDER_CHANGE_LOCK);
- changes = data->folder->priv->pending_changes;
- data->folder->priv->pending_changes = NULL;
- camel_folder_unlock (data->folder, CAMEL_FOLDER_CHANGE_LOCK);
+ camel_folder_lock (signal_data->folder, CAMEL_FOLDER_CHANGE_LOCK);
+ changes = signal_data->folder->priv->pending_changes;
+ signal_data->folder->priv->pending_changes = NULL;
+ camel_folder_unlock (signal_data->folder, CAMEL_FOLDER_CHANGE_LOCK);
- g_signal_emit (data->folder, signals[CHANGED], 0, changes);
+ g_signal_emit (signal_data->folder, signals[CHANGED], 0, changes);
camel_folder_change_info_free (changes);
}
static gboolean
-folder_emit_deleted_cb (SignalData *data)
+folder_emit_deleted_cb (gpointer user_data)
{
- g_signal_emit (data->folder, signals[DELETED], 0);
+ SignalData *signal_data = user_data;
+
+ g_signal_emit (signal_data->folder, signals[DELETED], 0);
return FALSE;
}
static gboolean
-folder_emit_renamed_cb (SignalData *data)
+folder_emit_renamed_cb (gpointer user_data)
{
- g_signal_emit (data->folder, signals[RENAMED], 0, data->folder_name);
+ SignalData *signal_data = user_data;
+
+ g_signal_emit (
+ signal_data->folder,
+ signals[RENAMED], 0,
+ signal_data->folder_name);
return FALSE;
}
{
CamelFolderClass *class;
CamelStore *parent_store;
- SignalData *data;
+ CamelService *service;
+ CamelSession *session;
+ SignalData *signal_data;
const gchar *full_name;
g_return_if_fail (CAMEL_IS_FOLDER (folder));
parent_store = camel_folder_get_parent_store (folder);
camel_db_delete_folder (parent_store->cdb_w, full_name, NULL);
- data = g_slice_new0 (SignalData);
- data->folder = g_object_ref (folder);
+ service = CAMEL_SERVICE (parent_store);
+ session = camel_service_get_session (service);
- g_idle_add_full (
- G_PRIORITY_DEFAULT_IDLE,
- (GSourceFunc) folder_emit_deleted_cb,
- data, (GDestroyNotify) signal_data_free);
+ signal_data = g_slice_new0 (SignalData);
+ signal_data->folder = g_object_ref (folder);
+
+ camel_session_idle_add (
+ session, G_PRIORITY_DEFAULT_IDLE,
+ folder_emit_deleted_cb,
+ signal_data, (GDestroyNotify) signal_data_free);
}
/**
{
CamelFolderClass *class;
CamelStore *parent_store;
- SignalData *data;
+ CamelService *service;
+ CamelSession *session;
+ SignalData *signal_data;
gchar *old_name;
g_return_if_fail (CAMEL_IS_FOLDER (folder));
parent_store = camel_folder_get_parent_store (folder);
camel_db_rename_folder (parent_store->cdb_w, old_name, new_name, NULL);
- data = g_slice_new0 (SignalData);
- data->folder = g_object_ref (folder);
- data->folder_name = old_name; /* transfer ownership */
+ service = CAMEL_SERVICE (parent_store);
+ session = camel_service_get_session (service);
+
+ signal_data = g_slice_new0 (SignalData);
+ signal_data->folder = g_object_ref (folder);
+ signal_data->folder_name = old_name; /* transfer ownership */
- g_idle_add_full (
- G_PRIORITY_DEFAULT_IDLE,
- (GSourceFunc) folder_emit_renamed_cb,
- data, (GDestroyNotify) signal_data_free);
+ camel_session_idle_add (
+ session, G_PRIORITY_DEFAULT_IDLE,
+ folder_emit_renamed_cb,
+ signal_data, (GDestroyNotify) signal_data_free);
}
/**
pending_changes = folder->priv->pending_changes;
if (pending_changes == NULL) {
- SignalData *data;
+ CamelStore *parent_store;
+ CamelService *service;
+ CamelSession *session;
+ SignalData *signal_data;
+
+ parent_store = camel_folder_get_parent_store (folder);
+
+ service = CAMEL_SERVICE (parent_store);
+ session = camel_service_get_session (service);
pending_changes = camel_folder_change_info_new ();
folder->priv->pending_changes = pending_changes;
- data = g_slice_new0 (SignalData);
- data->folder = g_object_ref (folder);
+ signal_data = g_slice_new0 (SignalData);
+ signal_data->folder = g_object_ref (folder);
- g_idle_add_full (
- G_PRIORITY_LOW,
- (GSourceFunc) folder_emit_changed_cb,
- data, (GDestroyNotify) signal_data_free);
+ camel_session_idle_add (
+ session, G_PRIORITY_LOW,
+ folder_emit_changed_cb,
+ signal_data, (GDestroyNotify) signal_data_free);
}
camel_folder_change_info_cat (pending_changes, changes);
}
static gboolean
-session_start_job_cb (JobData *job_data)
+session_start_job_cb (gpointer user_data)
{
+ JobData *job_data = user_data;
GSimpleAsyncResult *simple;
g_signal_emit (
gpointer user_data,
GDestroyNotify notify)
{
- GSource *source;
JobData *job_data;
g_return_if_fail (CAMEL_IS_SESSION (session));
job_data->user_data = user_data;
job_data->notify = notify;
- source = g_idle_source_new ();
- g_source_set_priority (source, JOB_PRIORITY);
- g_source_set_callback (
- source, (GSourceFunc) session_start_job_cb,
+ camel_session_idle_add (
+ session, JOB_PRIORITY,
+ session_start_job_cb,
job_data, (GDestroyNotify) NULL);
- g_source_attach (source, job_data->session->priv->main_context);
- g_source_unref (source);
}
/**
}
static void
-signal_data_free (SignalData *data)
+signal_data_free (SignalData *signal_data)
{
- if (data->store != NULL)
- g_object_unref (data->store);
+ if (signal_data->store != NULL)
+ g_object_unref (signal_data->store);
- if (data->folder != NULL)
- g_object_unref (data->folder);
+ if (signal_data->folder != NULL)
+ g_object_unref (signal_data->folder);
- if (data->folder_info != NULL)
- camel_folder_info_free (data->folder_info);
+ if (signal_data->folder_info != NULL)
+ camel_folder_info_free (signal_data->folder_info);
- g_free (data->folder_name);
+ g_free (signal_data->folder_name);
- g_slice_free (SignalData, data);
+ g_slice_free (SignalData, signal_data);
}
static gboolean
-store_emit_folder_created_cb (SignalData *data)
+store_emit_folder_created_cb (gpointer user_data)
{
+ SignalData *signal_data = user_data;
+
g_signal_emit (
- data->store,
+ signal_data->store,
signals[FOLDER_CREATED], 0,
- data->folder_info);
+ signal_data->folder_info);
return FALSE;
}
static gboolean
-store_emit_folder_deleted_cb (SignalData *data)
+store_emit_folder_deleted_cb (gpointer user_data)
{
+ SignalData *signal_data = user_data;
+
g_signal_emit (
- data->store,
+ signal_data->store,
signals[FOLDER_DELETED], 0,
- data->folder_info);
+ signal_data->folder_info);
return FALSE;
}
static gboolean
-store_emit_folder_opened_cb (SignalData *data)
+store_emit_folder_opened_cb (gpointer user_data)
{
+ SignalData *signal_data = user_data;
+
g_signal_emit (
- data->store,
+ signal_data->store,
signals[FOLDER_OPENED], 0,
- data->folder);
+ signal_data->folder);
return FALSE;
}
static gboolean
-store_emit_folder_renamed_cb (SignalData *data)
+store_emit_folder_renamed_cb (gpointer user_data)
{
+ SignalData *signal_data = user_data;
+
g_signal_emit (
- data->store,
+ signal_data->store,
signals[FOLDER_RENAMED], 0,
- data->folder_name,
- data->folder_info);
+ signal_data->folder_name,
+ signal_data->folder_info);
return FALSE;
}
camel_store_folder_created (CamelStore *store,
CamelFolderInfo *folder_info)
{
- SignalData *data;
+ CamelSession *session;
+ SignalData *signal_data;
g_return_if_fail (CAMEL_IS_STORE (store));
g_return_if_fail (folder_info != NULL);
- data = g_slice_new0 (SignalData);
- data->store = g_object_ref (store);
- data->folder_info = camel_folder_info_clone (folder_info);
+ session = camel_service_get_session (CAMEL_SERVICE (store));
- g_idle_add_full (
- G_PRIORITY_DEFAULT_IDLE,
- (GSourceFunc) store_emit_folder_created_cb,
- data, (GDestroyNotify) signal_data_free);
+ signal_data = g_slice_new0 (SignalData);
+ signal_data->store = g_object_ref (store);
+ signal_data->folder_info = camel_folder_info_clone (folder_info);
+
+ camel_session_idle_add (
+ session, G_PRIORITY_DEFAULT_IDLE,
+ store_emit_folder_created_cb,
+ signal_data, (GDestroyNotify) signal_data_free);
}
/**
camel_store_folder_deleted (CamelStore *store,
CamelFolderInfo *folder_info)
{
- SignalData *data;
+ CamelSession *session;
+ SignalData *signal_data;
g_return_if_fail (CAMEL_IS_STORE (store));
g_return_if_fail (folder_info != NULL);
- data = g_slice_new0 (SignalData);
- data->store = g_object_ref (store);
- data->folder_info = camel_folder_info_clone (folder_info);
+ session = camel_service_get_session (CAMEL_SERVICE (store));
+
+ signal_data = g_slice_new0 (SignalData);
+ signal_data->store = g_object_ref (store);
+ signal_data->folder_info = camel_folder_info_clone (folder_info);
- g_idle_add_full (
- G_PRIORITY_DEFAULT_IDLE,
- (GSourceFunc) store_emit_folder_deleted_cb,
- data, (GDestroyNotify) signal_data_free);
+ camel_session_idle_add (
+ session, G_PRIORITY_DEFAULT_IDLE,
+ store_emit_folder_deleted_cb,
+ signal_data, (GDestroyNotify) signal_data_free);
}
/**
camel_store_folder_opened (CamelStore *store,
CamelFolder *folder)
{
- SignalData *data;
+ CamelSession *session;
+ SignalData *signal_data;
g_return_if_fail (CAMEL_IS_STORE (store));
g_return_if_fail (CAMEL_IS_FOLDER (folder));
- data = g_slice_new0 (SignalData);
- data->store = g_object_ref (store);
- data->folder = g_object_ref (folder);
+ session = camel_service_get_session (CAMEL_SERVICE (store));
- g_idle_add_full (
- G_PRIORITY_DEFAULT_IDLE,
- (GSourceFunc) store_emit_folder_opened_cb,
- data, (GDestroyNotify) signal_data_free);
+ signal_data = g_slice_new0 (SignalData);
+ signal_data->store = g_object_ref (store);
+ signal_data->folder = g_object_ref (folder);
+
+ camel_session_idle_add (
+ session, G_PRIORITY_DEFAULT_IDLE,
+ store_emit_folder_opened_cb,
+ signal_data, (GDestroyNotify) signal_data_free);
}
/**
const gchar *old_name,
CamelFolderInfo *folder_info)
{
- SignalData *data;
+ CamelSession *session;
+ SignalData *signal_data;
g_return_if_fail (CAMEL_IS_STORE (store));
g_return_if_fail (old_name != NULL);
g_return_if_fail (folder_info != NULL);
- data = g_slice_new0 (SignalData);
- data->store = g_object_ref (store);
- data->folder_info = camel_folder_info_clone (folder_info);
- data->folder_name = g_strdup (old_name);
+ session = camel_service_get_session (CAMEL_SERVICE (store));
+
+ signal_data = g_slice_new0 (SignalData);
+ signal_data->store = g_object_ref (store);
+ signal_data->folder_info = camel_folder_info_clone (folder_info);
+ signal_data->folder_name = g_strdup (old_name);
- g_idle_add_full (
- G_PRIORITY_DEFAULT_IDLE,
- (GSourceFunc) store_emit_folder_renamed_cb,
- data, (GDestroyNotify) signal_data_free);
+ camel_session_idle_add (
+ session, G_PRIORITY_DEFAULT_IDLE,
+ store_emit_folder_renamed_cb,
+ signal_data, (GDestroyNotify) signal_data_free);
}
static void
#include "camel-subscribable.h"
#include "camel-debug.h"
+#include "camel-session.h"
#include "camel-vtrash-folder.h"
typedef struct _AsyncContext AsyncContext;
}
static gboolean
-subscribable_emit_folder_subscribed_cb (SignalData *signal_data)
+subscribable_emit_folder_subscribed_cb (gpointer user_data)
{
+ SignalData *signal_data = user_data;
+
g_signal_emit (
signal_data->subscribable,
signals[FOLDER_SUBSCRIBED], 0,
}
static gboolean
-subscribable_emit_folder_unsubscribed_cb (SignalData *signal_data)
+subscribable_emit_folder_unsubscribed_cb (gpointer user_data)
{
+ SignalData *signal_data = user_data;
+
g_signal_emit (
signal_data->subscribable,
signals[FOLDER_UNSUBSCRIBED], 0,
camel_subscribable_folder_subscribed (CamelSubscribable *subscribable,
CamelFolderInfo *folder_info)
{
+ CamelService *service;
+ CamelSession *session;
SignalData *signal_data;
g_return_if_fail (CAMEL_IS_SUBSCRIBABLE (subscribable));
g_return_if_fail (folder_info != NULL);
+ service = CAMEL_SERVICE (subscribable);
+ session = camel_service_get_session (service);
+
signal_data = g_slice_new0 (SignalData);
signal_data->subscribable = g_object_ref (subscribable);
signal_data->folder_info = camel_folder_info_clone (folder_info);
- g_idle_add_full (
- G_PRIORITY_DEFAULT_IDLE,
- (GSourceFunc) subscribable_emit_folder_subscribed_cb,
+ camel_session_idle_add (
+ session, G_PRIORITY_DEFAULT_IDLE,
+ subscribable_emit_folder_subscribed_cb,
signal_data, (GDestroyNotify) signal_data_free);
}
camel_subscribable_folder_unsubscribed (CamelSubscribable *subscribable,
CamelFolderInfo *folder_info)
{
+ CamelService *service;
+ CamelSession *session;
SignalData *signal_data;
g_return_if_fail (CAMEL_IS_SUBSCRIBABLE (subscribable));
g_return_if_fail (folder_info != NULL);
+ service = CAMEL_SERVICE (subscribable);
+ session = camel_service_get_session (service);
+
signal_data = g_slice_new0 (SignalData);
signal_data->subscribable = g_object_ref (subscribable);
signal_data->folder_info = camel_folder_info_clone (folder_info);
- g_idle_add_full (
- G_PRIORITY_DEFAULT_IDLE,
- (GSourceFunc) subscribable_emit_folder_unsubscribed_cb,
+ camel_session_idle_add (
+ session, G_PRIORITY_DEFAULT_IDLE,
+ subscribable_emit_folder_unsubscribed_cb,
signal_data, (GDestroyNotify) signal_data_free);
}