From fc3bc62ab94ccdeb864ceefd9023ae4ad0f10e6f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Dapena=20Paz?= Date: Tue, 26 Jan 2010 11:19:05 +0100 Subject: [PATCH] Added new dbus methods to emit some signals. --- libmodest-dbus-client/src/libmodest-dbus-api.h | 12 +++ src/dbus_api/modest-dbus-callbacks.c | 112 ++++++++++++++++++++++++ src/dbus_api/modest-dbus-callbacks.h | 6 ++ 3 files changed, 130 insertions(+) diff --git a/libmodest-dbus-client/src/libmodest-dbus-api.h b/libmodest-dbus-client/src/libmodest-dbus-api.h index d4bda8c..f15714c 100644 --- a/libmodest-dbus-client/src/libmodest-dbus-api.h +++ b/libmodest-dbus-client/src/libmodest-dbus-api.h @@ -124,4 +124,16 @@ enum ModestDbusUpdateFolderCountsArguments MODEST_DBUS_UPDATE_FOLDER_COUNTS_ARGS_COUNT }; +/* signal emitted when an account has been created */ +#define MODEST_DBUS_SIGNAL_ACCOUNT_CREATED "account_created" + +/* signal emitted when an account has been removed */ +#define MODEST_DBUS_SIGNAL_ACCOUNT_REMOVED "account_removed" + +/* signal emitted when a folder is updated */ +#define MODEST_DBUS_SIGNAL_FOLDER_UPDATED "folder_updated" + +/* signal emitted when a message read/unread flag is changed */ +#define MODEST_DBUS_SIGNAL_MSG_READ_CHANGED "msg_read_changed" + #endif /* __MODEST_DBUS_API__ */ diff --git a/src/dbus_api/modest-dbus-callbacks.c b/src/dbus_api/modest-dbus-callbacks.c index 112a0a2..93a6932 100644 --- a/src/dbus_api/modest-dbus-callbacks.c +++ b/src/dbus_api/modest-dbus-callbacks.c @@ -2262,3 +2262,115 @@ notify_error_in_dbus_callback (gpointer user_data) return FALSE; } + +gboolean +modest_dbus_emit_account_created_signal (DBusConnection *con, + const gchar *account_id) +{ + DBusMessage *signal; + dbus_bool_t result; + + signal = dbus_message_new_signal (MODEST_DBUS_OBJECT, MODEST_DBUS_IFACE, + MODEST_DBUS_SIGNAL_ACCOUNT_CREATED); + + if (signal == NULL) + return FALSE; + + if (!dbus_message_append_args (signal, + DBUS_TYPE_STRING, &account_id, + DBUS_TYPE_INVALID)) { + dbus_message_unref (signal); + return FALSE; + } + + result = dbus_connection_send (con, signal, NULL); + + dbus_message_unref (signal); + + return result?TRUE:FALSE; +} + +gboolean +modest_dbus_emit_account_removed_signal (DBusConnection *con, + const gchar *account_id) +{ + DBusMessage *signal; + dbus_bool_t result; + + signal = dbus_message_new_signal (MODEST_DBUS_OBJECT, MODEST_DBUS_IFACE, + MODEST_DBUS_SIGNAL_ACCOUNT_REMOVED); + + if (signal == NULL) + return FALSE; + + if (!dbus_message_append_args (signal, + DBUS_TYPE_STRING, &account_id, + DBUS_TYPE_INVALID)) { + dbus_message_unref (signal); + return FALSE; + } + + result = dbus_connection_send (con, signal, NULL); + + dbus_message_unref (signal); + + return result?TRUE:FALSE; +} + +gboolean +modest_dbus_emit_folder_updated_signal (DBusConnection *con, + const gchar *account_id, + const gchar *folder_path) +{ + DBusMessage *signal; + dbus_bool_t result; + + signal = dbus_message_new_signal (MODEST_DBUS_OBJECT, MODEST_DBUS_IFACE, + MODEST_DBUS_SIGNAL_FOLDER_UPDATED); + + if (signal == NULL) + return FALSE; + + if (!dbus_message_append_args (signal, + DBUS_TYPE_STRING, &account_id, + DBUS_TYPE_STRING, &folder_path, + DBUS_TYPE_INVALID)) { + dbus_message_unref (signal); + return FALSE; + } + + result = dbus_connection_send (con, signal, NULL); + + dbus_message_unref (signal); + + return result?TRUE:FALSE; +} + +gboolean +modest_dbus_emit_msg_read_changed_signal (DBusConnection *con, + const gchar *uid, + gboolean is_read) +{ + DBusMessage *signal; + dbus_bool_t result; + + signal = dbus_message_new_signal (MODEST_DBUS_OBJECT, MODEST_DBUS_IFACE, + MODEST_DBUS_SIGNAL_MSG_READ_CHANGED); + + if (signal == NULL) + return FALSE; + + if (!dbus_message_append_args (signal, + DBUS_TYPE_STRING, &uid, + DBUS_TYPE_BOOLEAN, &is_read, + DBUS_TYPE_INVALID)) { + dbus_message_unref (signal); + return FALSE; + } + + result = dbus_connection_send (con, signal, NULL); + + dbus_message_unref (signal); + + return result?TRUE:FALSE; +} diff --git a/src/dbus_api/modest-dbus-callbacks.h b/src/dbus_api/modest-dbus-callbacks.h index 2aeb746..d5e1fc3 100644 --- a/src/dbus_api/modest-dbus-callbacks.h +++ b/src/dbus_api/modest-dbus-callbacks.h @@ -44,4 +44,10 @@ void modest_osso_cb_hw_state_handler(osso_hw_state_t *state, gpointer data); DBusHandlerResult modest_dbus_req_filter (DBusConnection *con, DBusMessage *message, void *user_data); + +gboolean modest_dbus_emit_account_created_signal (DBusConnection *con, const gchar *account_id); +gboolean modest_dbus_emit_account_removed_signal (DBusConnection *con, const gchar *account_id); +gboolean modest_dbus_emit_folder_updated_signal (DBusConnection *con, const gchar *account_id, const gchar *folder_path); +gboolean modest_dbus_emit_msg_read_changed_signal (DBusConnection *con, const gchar *msg_uid, gboolean is_read); + #endif /* __MODEST_DBUS_CALLBACKS_H__ */ -- 1.7.9.5