#include "modest-search.h"
#include "widgets/modest-msg-edit-window.h"
#include "modest-tny-msg.h"
+#include "modest-platform.h"
#include <libmodest-dbus-client/libmodest-dbus-client.h>
#include <libgnomevfs/gnome-vfs-utils.h>
#include <stdio.h>
#include <tny-iterator.h>
#include <tny-simple-list.h>
#include <tny-merge-folder.h>
+#include <tny-account.h>
#include <modest-text-utils.h>
static gboolean notify_error_in_dbus_callback (gpointer user_data);
+static gboolean notify_msg_not_found_in_idle (gpointer user_data);
static gboolean on_idle_compose_mail(gpointer user_data);
static gboolean on_idle_top_application (gpointer user_data);
}
gdk_threads_enter (); /* CHECKED */
- modest_ui_actions_compose_msg(NULL, to, cc, bcc, subject, body, NULL);
+ modest_ui_actions_compose_msg(NULL, to, cc, bcc, subject, body, NULL, FALSE);
gdk_threads_leave (); /* CHECKED */
cleanup:
g_free(idle_data->attachments);
idle_data->attachments = tmp;
}
+
if (idle_data->attachments != NULL) {
gchar **list = g_strsplit(idle_data->attachments, ",", 0);
gint i = 0;
}
g_strfreev(list);
}
+
+ /* If the message has nothing then mark the buffers as not
+ modified. This happens in Maemo for example when opening a
+ new message from Contacts plugin, it sends "" instead of
+ NULLs */
gdk_threads_enter (); /* CHECKED */
- modest_ui_actions_compose_msg(NULL, idle_data->to, idle_data->cc,
- idle_data->bcc, idle_data->subject,
- idle_data->body, attachments);
+ if (!strncmp (idle_data->to, "", 1) &&
+ !strncmp (idle_data->to, "", 1) &&
+ !strncmp (idle_data->cc, "", 1) &&
+ !strncmp (idle_data->bcc, "", 1) &&
+ !strncmp (idle_data->subject, "", 1) &&
+ !strncmp (idle_data->body, "", 1) &&
+ attachments == NULL) {
+ modest_ui_actions_compose_msg(NULL, NULL, NULL, NULL, NULL, NULL, NULL, FALSE);
+ } else {
+ modest_ui_actions_compose_msg(NULL, idle_data->to, idle_data->cc,
+ idle_data->bcc, idle_data->subject,
+ idle_data->body, attachments, TRUE);
+ }
gdk_threads_leave (); /* CHECKED */
cleanup:
g_slist_foreach(attachments, (GFunc)g_free, NULL);
find_message_by_url (const char *uri, TnyAccount **ac_out)
{
ModestTnyAccountStore *astore;
- TnyAccount *account;
- TnyFolder *folder;
- TnyMsg *msg;
- GError *err = NULL;
- account = NULL;
- msg = NULL;
- folder = NULL;
+ TnyAccount *account = NULL;
+ TnyFolder *folder = NULL;
+ TnyMsg *msg = NULL;
astore = modest_runtime_get_account_store ();
- if (astore == NULL) {
+ if (astore == NULL)
return NULL;
- }
if (uri && g_str_has_prefix (uri, "merge://")) {
/* we assume we're talking about outbox folder, as this
* is the only merge folder we work with in modest */
return modest_tny_account_store_find_msg_in_outboxes (astore, uri, ac_out);
}
-
- /* TODO: When tinymail is built with the extra DBC assertion checks,
- * this will crash for local folders (such as drafts),
- * because tny_folder_get_url_string() (in add_hit())
- * returns mail:/home/murrayc/yaddayadda
- * instead of mail://localhost/home/murrayc/yaddayadd,
- * but I'm not sure where that folder URI is built. murrayc.
- */
account = tny_account_store_find_account (TNY_ACCOUNT_STORE (astore),
uri);
- if (account == NULL) {
- g_debug ("%s: tny_account_store_find_account() failed for\n uri=%s\n",
- __FUNCTION__, uri);
- return NULL;
- }
-
- MODEST_DEBUG_BLOCK (g_debug ("%s: Found account.\n", __FUNCTION__););
-
- if ( ! TNY_IS_STORE_ACCOUNT (account)) {
+ if (account == NULL || !TNY_IS_STORE_ACCOUNT (account))
goto out;
- }
-
- MODEST_DEBUG_BLOCK (g_debug ("%s: Account is store account.\n", __FUNCTION__););
*ac_out = account;
- folder = tny_store_account_find_folder (TNY_STORE_ACCOUNT (account),
- uri,
- &err);
+ folder = tny_store_account_find_folder (TNY_STORE_ACCOUNT (account), uri, NULL);
- if (folder == NULL) {
- g_debug ("%s: tny_store_account_find_folder() failed for\n account=%s, uri=%s.\n", __FUNCTION__,
- tny_account_get_id (TNY_ACCOUNT(account)), uri);
+ if (folder == NULL)
goto out;
- }
-
- MODEST_DEBUG_BLOCK (g_debug ("%s: Found folder. (%s)\n", __FUNCTION__, uri););
- msg = tny_folder_find_msg (folder, uri, &err);
+ msg = tny_folder_find_msg (folder, uri, NULL);
- if (!msg)
- MODEST_DEBUG_BLOCK (
- g_debug ("%s: tny_folder_find_msg() failed for "\
- "folder %s\n with error=%s.\n",
- __FUNCTION__, tny_folder_get_id (folder),
- err->message);
- );
-
out:
- if (err)
- g_error_free (err);
-
if (account && !msg) {
g_object_unref (account);
*ac_out = NULL;
}
-
if (folder)
g_object_unref (folder);
return msg;
}
+typedef struct {
+ TnyAccount *account;
+ gchar *uri;
+ gboolean connect;
+ guint animation_timeout;
+ GtkWidget *animation;
+} OpenMsgPerformerInfo;
+
static gboolean
-on_idle_open_message (gpointer user_data)
+on_show_opening_animation (gpointer userdata)
{
- TnyMsg *msg = NULL;
- TnyAccount *account = NULL;
- TnyHeader *header = NULL;
- const char *msg_uid = NULL;
- char *uri = NULL;
- ModestWindowMgr *win_mgr = NULL;
- TnyFolder *folder = NULL;
- gboolean is_draft = FALSE;
- gboolean already_opened = FALSE;
+ OpenMsgPerformerInfo *info = (OpenMsgPerformerInfo *) userdata;
+ info->animation = modest_platform_animation_banner (NULL, NULL, _("mail_me_opening"));
+ info->animation_timeout = 0;
+
+ return FALSE;
+}
+
+static gboolean
+on_hide_opening_animation (gpointer userdata)
+{
+ OpenMsgPerformerInfo *info = (OpenMsgPerformerInfo *) userdata;
+
+ if (info->animation_timeout>0) {
+ g_source_remove (info->animation_timeout);
+ info->animation_timeout = 0;
+ }
+
+ if (info->animation) {
+ gtk_widget_destroy (info->animation);
+ info->animation = NULL;
+ }
+
+ g_slice_free (OpenMsgPerformerInfo, info);
+ return FALSE;
+}
+
+static void
+on_open_message_performer (gboolean canceled,
+ GError *err,
+ GtkWindow *parent_window,
+ TnyAccount *account,
+ gpointer user_data)
+{
+ OpenMsgPerformerInfo *info;
+ gchar *uri;
+ TnyHeader *header;
+ gchar *msg_uid;
+ ModestWindowMgr *win_mgr;
ModestWindow *msg_view = NULL;
+ gboolean is_draft = FALSE;
+ TnyFolder *folder = NULL;
+ TnyMsg *msg = NULL;
- uri = (char *) user_data;
+ info = (OpenMsgPerformerInfo *) user_data;
+ uri = info->uri;
- msg = find_message_by_url (uri, &account);
- g_free (uri);
+ if (canceled || err) {
+ goto frees;
+ }
- if (msg == NULL) {
- g_warning ("modest: %s: message not found.", __FUNCTION__);
- g_idle_add (notify_error_in_dbus_callback, NULL);
- return FALSE;
+ /* Get folder */
+ if (!account) {
+ ModestTnyAccountStore *account_store;
+ ModestTnyLocalFoldersAccount *local_folders_account;
+
+ account_store = modest_runtime_get_account_store ();
+ local_folders_account = MODEST_TNY_LOCAL_FOLDERS_ACCOUNT (
+ modest_tny_account_store_get_local_folders_account (account_store));
+ folder = modest_tny_local_folders_account_get_merged_outbox (local_folders_account);
+ g_object_unref (local_folders_account);
+ } else {
+ folder = tny_store_account_find_folder (TNY_STORE_ACCOUNT (account), uri, NULL);
}
-
- folder = tny_msg_get_folder (msg);
-
- /* Drafts will be opened in the editor, instead of the viewer, as per the UI spec: */
- /* FIXME: same should happen for Outbox; not enabling that, as the handling
- * of edited messages is not clear in that case */
- if (folder && modest_tny_folder_is_local_folder (folder) &&
- (modest_tny_folder_get_local_or_mmc_folder_type (folder) == TNY_FOLDER_TYPE_DRAFTS)) {
+ if (modest_tny_folder_is_local_folder (folder) &&
+ (modest_tny_folder_get_local_or_mmc_folder_type (folder) == TNY_FOLDER_TYPE_DRAFTS)) {
is_draft = TRUE;
}
+ /* Get message */
+ msg = tny_folder_find_msg (folder, uri, NULL);
+ if (!msg) {
+ g_idle_add (notify_msg_not_found_in_idle, NULL);
+ goto frees;
+ }
+
header = tny_msg_get_header (msg);
-
- /* TODO: The modest_tny_folder_get_header_unique_id() documentation warns against
- * using it with tny_msg_get_header(), and there is a
- * " camel_folder_get_full_name: assertion `CAMEL_IS_FOLDER (folder)' failed" runtime warning,
- * but it seems to work.
- */
- msg_uid = modest_tny_folder_get_header_unique_id(header);
-
+ if (header && (tny_header_get_flags (header)&TNY_HEADER_FLAG_DELETED)) {
+ g_object_unref (header);
+ g_object_unref (msg);
+ g_idle_add (notify_msg_not_found_in_idle, NULL);
+ goto frees;
+ }
+ msg_uid = modest_tny_folder_get_header_unique_id (header);
win_mgr = modest_runtime_get_window_mgr ();
- /* This is a GDK lock because we are an idle callback and
- * the code below is or does Gtk+ code */
-
- gdk_threads_enter (); /* CHECKED */
-
if (modest_window_mgr_find_registered_header (win_mgr, header, &msg_view)) {
- if (msg_view) {
- g_debug ("modest: %s: A window for this message is open already: type=%s",
- __FUNCTION__, G_OBJECT_TYPE_NAME (msg_view));
- }
-
- if (!msg_view)
- g_debug ("modest_window_mgr_find_registered_header(): Returned TRUE, but msg_view is NULL");
- else if (!MODEST_IS_MSG_VIEW_WINDOW (msg_view) && !MODEST_IS_MSG_EDIT_WINDOW (msg_view))
- g_debug (" DEBUG: But the window is not a msg view or edit window.");
- else {
- gtk_window_present (GTK_WINDOW(msg_view));
- already_opened = TRUE;
- }
- }
-
- if (!already_opened) {
+ gtk_window_present (GTK_WINDOW(msg_view));
+ } else {
const gchar *modest_account_name;
/* g_debug ("creating new window for this msg"); */
modest_window_mgr_register_header (win_mgr, header, NULL);
-
- modest_account_name =
- modest_tny_account_get_parent_modest_account_name_for_server_account (account);
+
+ if (account) {
+ modest_account_name =
+ modest_tny_account_get_parent_modest_account_name_for_server_account (account);
+ } else {
+ modest_account_name = NULL;
+ }
- /* Drafts will be opened in the editor, and others will be opened in the viewer,
- * as per the UI spec: */
+ /* Drafts will be opened in the editor, and others will be opened in the viewer */
if (is_draft) {
- /* TODO: Maybe the msg_uid should be registered for edit windows too,
- * so we can open the same window again next time: */
msg_view = modest_msg_edit_window_new (msg, modest_account_name, TRUE);
} else {
- msg_view = modest_msg_view_window_new_for_search_result (msg, modest_account_name,
- msg_uid);
+ TnyHeader *header;
+ header = tny_msg_get_header (msg);
+ msg_view = modest_msg_view_window_new_for_search_result (msg, modest_account_name, msg_uid);
+ if (! (tny_header_get_flags (header) & TNY_HEADER_FLAG_SEEN))
+ tny_header_set_flag (header, TNY_HEADER_FLAG_SEEN);
+ g_object_unref (header);
+
}
modest_window_mgr_register_window (win_mgr, msg_view);
gtk_widget_show_all (GTK_WIDGET (msg_view));
}
-
- gdk_threads_leave (); /* CHECKED */
-
g_object_unref (header);
- g_object_unref (account);
+ g_object_unref (msg);
g_object_unref (folder);
- return FALSE; /* Do not call this callback again. */
+ frees:
+ g_free (info->uri);
+ if (info->account)
+ g_object_unref (info->account);
+ g_idle_add (on_hide_opening_animation, info);
+}
+
+static gboolean
+on_idle_open_message_performer (gpointer user_data)
+{
+ ModestWindow *main_win = NULL;
+ OpenMsgPerformerInfo *info = (OpenMsgPerformerInfo *) user_data;
+
+ main_win = modest_window_mgr_get_main_window (modest_runtime_get_window_mgr(),
+ FALSE); /* don't create */
+
+ /* Lock before the call as we're in an idle handler */
+ gdk_threads_enter ();
+ if (info->connect) {
+ modest_platform_connect_and_perform (GTK_WINDOW (main_win), TRUE, info->account,
+ on_open_message_performer, info);
+ } else {
+ on_open_message_performer (FALSE, NULL, GTK_WINDOW (main_win), info->account, info);
+ }
+ gdk_threads_leave ();
+
+ return FALSE;
}
static gint
{
osso_rpc_t val;
gchar *uri;
+ TnyAccount *account = NULL;
+ gint osso_retval;
+ gboolean is_merge;
/* Get the arguments: */
val = g_array_index(arguments, osso_rpc_t, MODEST_DBUS_OPEN_MESSAGE_ARG_URI);
uri = g_strdup (val.value.s);
+
+ is_merge = g_str_has_prefix (uri, "merge:");
+
+ /* Get the account */
+ if (!is_merge)
+ account = tny_account_store_find_account (TNY_ACCOUNT_STORE (modest_runtime_get_account_store ()),
+ uri);
+
- /* Use g_idle to context-switch into the application's thread */
- g_idle_add(on_idle_open_message, (gpointer)uri);
-
- return OSSO_OK;
+ if (is_merge || account) {
+ OpenMsgPerformerInfo *info;
+ TnyFolder *folder = NULL;
+
+ info = g_slice_new0 (OpenMsgPerformerInfo);
+ if (account)
+ info->account = g_object_ref (account);
+ info->uri = uri;
+ info->connect = TRUE;
+ info->animation_timeout = g_timeout_add (1000, on_show_opening_animation, info);
+
+ /* Try to get the message, if it's already downloaded
+ we don't need to connect */
+ if (account) {
+ folder = tny_store_account_find_folder (TNY_STORE_ACCOUNT (account), uri, NULL);
+ } else {
+ ModestTnyAccountStore *account_store;
+ ModestTnyLocalFoldersAccount *local_folders_account;
+
+ account_store = modest_runtime_get_account_store ();
+ local_folders_account = MODEST_TNY_LOCAL_FOLDERS_ACCOUNT (
+ modest_tny_account_store_get_local_folders_account (account_store));
+ folder = modest_tny_local_folders_account_get_merged_outbox (local_folders_account);
+ g_object_unref (local_folders_account);
+ }
+ if (folder) {
+ TnyMsg *msg = tny_folder_find_msg (folder, uri, NULL);
+ if (msg) {
+ info->connect = FALSE;
+ g_object_unref (msg);
+ }
+ g_object_unref (folder);
+ }
+
+ /* We need to call it into an idle to get
+ modest_platform_connect_and_perform into the main
+ loop */
+ g_idle_add (on_idle_open_message_performer, info);
+ osso_retval = OSSO_OK;
+ } else {
+ g_free (uri);
+ osso_retval = OSSO_ERROR;
+ g_idle_add (notify_error_in_dbus_callback, NULL);
+ }
+
+ if (account)
+ g_object_unref (account);
+ return osso_retval;
}
static gboolean
static gboolean
on_idle_send_receive(gpointer user_data)
{
- ModestWindow *main_win =
+ gboolean auto_update;
+ ModestWindow *main_win = NULL;
+
+ main_win =
modest_window_mgr_get_main_window (modest_runtime_get_window_mgr (),
FALSE); /* don't create */
- /* Send & receive all */
gdk_threads_enter (); /* CHECKED */
- modest_ui_actions_do_send_receive_all (main_win);
+
+ /* Check if the autoupdate feature is on */
+ auto_update = modest_conf_get_bool (modest_runtime_get_conf (),
+ MODEST_CONF_AUTO_UPDATE, NULL);
+
+ if (auto_update)
+ /* Do send receive */
+ modest_ui_actions_do_send_receive_all (main_win, FALSE, FALSE, FALSE);
+ else
+ /* Disable auto update */
+ modest_platform_set_update_interval (0);
+
gdk_threads_leave (); /* CHECKED */
return FALSE;
}
+
+
+static gint
+on_dbus_method_dump_send_queues (DBusConnection *con, DBusMessage *message)
+{
+ gchar *str;
+
+ DBusMessage *reply;
+ dbus_uint32_t serial = 0;
+
+ GSList *account_names, *cursor;
+
+ str = g_strdup("\nsend queues\n"
+ "===========\n");
+
+ cursor = account_names = modest_account_mgr_account_names
+ (modest_runtime_get_account_mgr(), TRUE); /* only enabled accounts */
+
+ while (cursor) {
+ TnyAccount *acc;
+ gchar *tmp, *accname = (gchar*)cursor->data;
+
+ tmp = g_strdup_printf ("%s", str);
+ g_free (str);
+ str = tmp;
+
+ /* transport */
+ acc = modest_tny_account_store_get_server_account (
+ modest_runtime_get_account_store(), accname,
+ TNY_ACCOUNT_TYPE_TRANSPORT);
+ if (TNY_IS_ACCOUNT(acc)) {
+ gchar *tmp, *url = tny_account_get_url_string (acc);
+ ModestTnySendQueue *sendqueue =
+ modest_runtime_get_send_queue (TNY_TRANSPORT_ACCOUNT(acc));
+ gchar *queue_str = modest_tny_send_queue_to_string (sendqueue);
+
+ tmp = g_strdup_printf ("%s[%s]: '%s': %s\n%s",
+ str, accname, tny_account_get_id (acc), url,
+ queue_str);
+ g_free(queue_str);
+ g_free (url);
+ g_free (str);
+ str = tmp;
+
+ g_object_unref (acc);
+ }
+
+ cursor = g_slist_next (cursor);
+ }
+ modest_account_mgr_free_account_names (account_names);
+
+ g_printerr (str);
+
+ reply = dbus_message_new_method_return (message);
+ if (reply) {
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &str,
+ DBUS_TYPE_INVALID);
+ dbus_connection_send (con, reply, &serial);
+ dbus_connection_flush (con);
+ dbus_message_unref (reply);
+ }
+
+ g_free (str);
+ return OSSO_OK;
+}
+
+
+static gint
+on_dbus_method_dump_operation_queue (DBusConnection *con, DBusMessage *message)
+{
+ gchar *str;
+ gchar *op_queue_str;
+
+ DBusMessage *reply;
+ dbus_uint32_t serial = 0;
+
+ /* operations queue; */
+ op_queue_str = modest_mail_operation_queue_to_string
+ (modest_runtime_get_mail_operation_queue ());
+
+ str = g_strdup_printf ("\noperation queue\n"
+ "===============\n"
+ "status: %s\n"
+ "%s\n",
+ tny_device_is_online (modest_runtime_get_device ()) ? "online" : "offline",
+ op_queue_str);
+ g_free (op_queue_str);
+
+ g_printerr (str);
+
+ reply = dbus_message_new_method_return (message);
+ if (reply) {
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &str,
+ DBUS_TYPE_INVALID);
+ dbus_connection_send (con, reply, &serial);
+ dbus_connection_flush (con);
+ dbus_message_unref (reply);
+ }
+
+ g_free (str);
+ return OSSO_OK;
+}
+
+
+
+static gint
+on_dbus_method_dump_accounts (DBusConnection *con, DBusMessage *message)
+{
+ gchar *str;
+
+ DBusMessage *reply;
+ dbus_uint32_t serial = 0;
+
+ GSList *account_names, *cursor;
+
+ str = g_strdup ("\naccounts\n========\n");
+
+ cursor = account_names = modest_account_mgr_account_names
+ (modest_runtime_get_account_mgr(), TRUE); /* only enabled accounts */
+
+ while (cursor) {
+ TnyAccount *acc;
+ gchar *tmp, *accname = (gchar*)cursor->data;
+
+ tmp = g_strdup_printf ("%s[%s]\n", str, accname);
+ g_free (str);
+ str = tmp;
+
+ /* store */
+ acc = modest_tny_account_store_get_server_account (
+ modest_runtime_get_account_store(), accname,
+ TNY_ACCOUNT_TYPE_STORE);
+ if (TNY_IS_ACCOUNT(acc)) {
+ gchar *tmp, *url = tny_account_get_url_string (acc);
+ tmp = g_strdup_printf ("%sstore : '%s': %s\n",
+ str, tny_account_get_id (acc), url);
+ g_free (str);
+ str = tmp;
+ g_free (url);
+ g_object_unref (acc);
+ }
+
+ /* transport */
+ acc = modest_tny_account_store_get_server_account (
+ modest_runtime_get_account_store(), accname,
+ TNY_ACCOUNT_TYPE_TRANSPORT);
+ if (TNY_IS_ACCOUNT(acc)) {
+ gchar *tmp, *url = tny_account_get_url_string (acc);
+ tmp = g_strdup_printf ("%stransport: '%s': %s\n",
+ str, tny_account_get_id (acc), url);
+ g_free (str);
+ str = tmp;
+ g_free (url);
+ g_object_unref (acc);
+ }
+
+ cursor = g_slist_next (cursor);
+ }
+
+ modest_account_mgr_free_account_names (account_names);
+
+ g_printerr (str);
+
+ reply = dbus_message_new_method_return (message);
+ if (reply) {
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &str,
+ DBUS_TYPE_INVALID);
+ dbus_connection_send (con, reply, &serial);
+ dbus_connection_flush (con);
+ dbus_message_unref (reply);
+ }
+
+ g_free (str);
+ return OSSO_OK;
+}
+
+
+
+
static gint
on_send_receive(GArray *arguments, gpointer data, osso_rpc_t * retval)
{
- /* Use g_idle to context-switch into the application's thread: */
- g_idle_add(on_idle_send_receive, NULL);
+ ModestConnectedVia connect_when;
+
+ connect_when = modest_conf_get_int (modest_runtime_get_conf (),
+ MODEST_CONF_UPDATE_WHEN_CONNECTED_BY, NULL);
+
+ /* Perform a send and receive if the user selected to connect
+ via any mean or if the current connection method is the
+ same as the one specified by the user */
+ if (connect_when == MODEST_CONNECTED_VIA_ANY ||
+ connect_when == modest_platform_get_current_connection ()) {
+ /* Use g_idle to context-switch into the application's thread: */
+ g_idle_add(on_idle_send_receive, NULL);
+ }
return OSSO_OK;
}
} else if (g_ascii_strcasecmp (method, MODEST_DBUS_METHOD_TOP_APPLICATION) == 0) {
if (arguments->len != 0)
goto param_error;
- return on_top_application (arguments, data, retval);
+ return on_top_application (arguments, data, retval);
} else {
/* We need to return INVALID here so
* libosso will return DBUS_HANDLER_RESULT_NOT_YET_HANDLED,
for (hit_iter = hits; hit_iter; hit_iter = hit_iter->next) {
DBusMessageIter struct_iter;
- ModestSearchHit *hit;
+ ModestSearchResultHit *hit;
char *msg_url;
const char *subject;
const char *folder;
gboolean is_unread;
gint64 ts;
- hit = (ModestSearchHit *) hit_iter->data;
+ hit = (ModestSearchResultHit *) hit_iter->data;
msg_url = hit->msgid;
subject = hit->subject;
g_free (hit->folder);
g_free (hit->sender);
- g_slice_free (ModestSearchHit, hit);
+ g_slice_free (ModestSearchResultHit, hit);
}
dbus_message_iter_close_container (&iter, &array_iter);
on_dbus_method_search (con, message);
handled = TRUE;
} else if (dbus_message_is_method_call (message,
- MODEST_DBUS_IFACE,
- MODEST_DBUS_METHOD_GET_FOLDERS)) {
+ MODEST_DBUS_IFACE,
+ MODEST_DBUS_METHOD_GET_FOLDERS)) {
on_dbus_method_get_folders (con, message);
handled = TRUE;
- }
- else {
+ } else if (dbus_message_is_method_call (message,
+ MODEST_DBUS_IFACE,
+ MODEST_DBUS_METHOD_DUMP_OPERATION_QUEUE)) {
+ on_dbus_method_dump_operation_queue (con, message);
+ handled = TRUE;
+ } else if (dbus_message_is_method_call (message,
+ MODEST_DBUS_IFACE,
+ MODEST_DBUS_METHOD_DUMP_ACCOUNTS)) {
+ on_dbus_method_dump_accounts (con, message);
+ handled = TRUE;
+ } else if (dbus_message_is_method_call (message,
+ MODEST_DBUS_IFACE,
+ MODEST_DBUS_METHOD_DUMP_SEND_QUEUES)) {
+ on_dbus_method_dump_send_queues (con, message);
+ handled = TRUE;
+ } else {
/* Note that this mentions methods that were already handled in modest_dbus_req_handler(). */
/*
g_debug (" debug: %s: Unexpected (maybe already handled) D-Bus method:\n Interface=%s, Member=%s\n",
return FALSE;
}
+
+static gboolean
+notify_msg_not_found_in_idle (gpointer user_data)
+{
+ modest_platform_run_information_dialog (NULL, _("mail_ni_ui_folder_get_msg_folder_error"));
+
+ return FALSE;
+}