X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fdbus_api%2Fmodest-dbus-callbacks.c;h=d2f03133c517f11aae3db532fc441701b6ce0189;hp=0c155b30199847a7430a4acaa0a1d844a08f2d5b;hb=f541209a85cb6c71c79da1df81afbe10c448690a;hpb=732e5a039a74024b353936e3626f6180db3516f5 diff --git a/src/dbus_api/modest-dbus-callbacks.c b/src/dbus_api/modest-dbus-callbacks.c index 0c155b3..d2f0313 100644 --- a/src/dbus_api/modest-dbus-callbacks.c +++ b/src/dbus_api/modest-dbus-callbacks.c @@ -932,18 +932,21 @@ on_dbus_method_dump_send_queues (DBusConnection *con, DBusMessage *message) modest_runtime_get_account_store(), accname, TNY_ACCOUNT_TYPE_TRANSPORT); if (TNY_IS_ACCOUNT(acc)) { - gchar *tmp, *url = tny_account_get_url_string (acc); + gchar *tmp = NULL, *url = tny_account_get_url_string (acc); ModestTnySendQueue *sendqueue = modest_runtime_get_send_queue (TNY_TRANSPORT_ACCOUNT(acc), TRUE); - gchar *queue_str = modest_tny_send_queue_to_string (sendqueue); + + if (TNY_IS_SEND_QUEUE (sendqueue)) { + 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); + 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 (str); + str = tmp; + } g_free (url); - g_free (str); - str = tmp; g_object_unref (acc); } @@ -1176,6 +1179,21 @@ on_top_application(GArray * arguments, gpointer data, osso_rpc_t * retval) return OSSO_OK; } + +static gboolean +on_idle_show_memory_low (gpointer user_data) +{ + ModestWindow *main_win = NULL; + + gdk_threads_enter (); + main_win = modest_window_mgr_get_main_window (modest_runtime_get_window_mgr (), FALSE); + modest_platform_run_information_dialog (GTK_WINDOW (main_win), + dgettext("ke-recv","memr_ib_operation_disabled"), + TRUE); + gdk_threads_leave (); + + return FALSE; +} /* Callback for normal D-BUS messages */ gint @@ -1183,6 +1201,12 @@ modest_dbus_req_handler(const gchar * interface, const gchar * method, GArray * arguments, gpointer data, osso_rpc_t * retval) { + /* Check memory low conditions */ + if (modest_platform_check_memory_low (NULL, FALSE)) { + g_idle_add (on_idle_show_memory_low, NULL); + goto param_error; + } + if (g_ascii_strcasecmp (method, MODEST_DBUS_METHOD_MAIL_TO) == 0) { if (arguments->len != MODEST_DBUS_MAIL_TO_ARGS_COUNT) goto param_error;