X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-ui-actions.c;h=7f859ba545ea2981d5d04cc52390f2b1e41bc072;hp=24325fd6ba8d217d2635823e3273a93254220114;hb=98df4aae51f0f37b7fd1158e86f132d528aaf3b3;hpb=3fe186c2c07dddedae8166e44c2786e0d102bd79 diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 24325fd..7f859ba 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -113,24 +113,29 @@ get_selected_headers (ModestWindow *win) { if (MODEST_IS_MAIN_WINDOW(win)) { GtkWidget *header_view; - + header_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(win), MODEST_WIDGET_TYPE_HEADER_VIEW); return modest_header_view_get_selected_headers (MODEST_HEADER_VIEW(header_view)); - + } else if (MODEST_IS_MSG_VIEW_WINDOW (win)) { /* for MsgViewWindows, we simply return a list with one element */ TnyMsg *msg; - TnyList *list; + TnyHeader *header; + TnyList *list = NULL; msg = modest_msg_view_window_get_message (MODEST_MSG_VIEW_WINDOW(win)); - list = tny_simple_list_new (); - tny_list_prepend (list, G_OBJECT(msg)); - + if (msg) { + header = tny_msg_get_header (msg); + list = tny_simple_list_new (); + tny_list_prepend (list, G_OBJECT(header)); + g_object_unref (G_OBJECT(header)); + } return list; + } else return NULL; - + } void modest_ui_actions_on_delete (GtkWidget *widget, ModestWindow *win) @@ -339,13 +344,15 @@ reply_forward (GtkWidget *widget, ReplyForwardAction action, ModestWindow *win) header = TNY_HEADER (tny_iterator_get_current (helper->iter)); folder = tny_header_get_folder (header); - - /* The callback will call it per each header */ - tny_folder_get_msg_async (folder, header, get_msg_cb, helper); + if (folder) { + /* The callback will call it per each header */ + tny_folder_get_msg_async (folder, header, get_msg_cb, helper); + g_object_unref (G_OBJECT (folder)); + } else + g_printerr ("modest: no folder for header\n"); /* Clean */ g_object_unref (G_OBJECT (header)); - g_object_unref (G_OBJECT (folder)); } void @@ -408,15 +415,37 @@ modest_ui_actions_on_send_receive (GtkWidget *widget, ModestWindow *win) { TnyDevice *device; TnyAccountStore *account_store; + gchar *account_name; + TnyAccount *tny_account; + ModestTnySendQueue *send_queue; /* Get device. Do not ask the platform factory for it, because it returns always a new one */ account_store = TNY_ACCOUNT_STORE (modest_runtime_get_account_store ()); device = tny_account_store_get_device (account_store); - - tny_device_force_online (device); - - /* FIXME: refresh the folders */ + + account_name = + g_strdup(modest_window_get_active_account(MODEST_WINDOW(win))); + if (!account_name) + account_name = modest_account_mgr_get_default_account (modest_runtime_get_account_mgr()); + if (!account_name) { + g_printerr ("modest: cannot get account\n"); + return; + } + + tny_account = + modest_tny_account_store_get_tny_account_by_account (modest_runtime_get_account_store(), + account_name, TNY_ACCOUNT_TYPE_TRANSPORT); + if (!tny_account) { + g_printerr ("modest: cannot get tny transport account\n"); + return; + } + + send_queue = modest_tny_send_queue_new (TNY_CAMEL_TRANSPORT_ACCOUNT(tny_account)); + modest_tny_send_queue_flush (send_queue); + + g_object_unref (G_OBJECT(send_queue)); + g_object_unref (G_OBJECT(tny_account)); }