X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-ui-actions.c;h=490b9bde88b137fea4055796f3de91f652f337e2;hb=74b77f6caf3fe1bc738e43fc6edf67b20f9b6d88;hp=339162db353bdd49c2f5ab16cdab59e9b4792991;hpb=409da221f48571a4c86a3d692e60f90b2c8473ad;p=modest diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 339162d..490b9bd 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -55,7 +55,7 @@ typedef struct _GetMsgAsyncHelper { - ModestMainWindow *main_window; + ModestWindow *window; TnyIterator *iter; GFunc func; gpointer user_data; @@ -137,8 +137,8 @@ get_selected_headers (ModestWindow *win) } else return NULL; - } + void modest_ui_actions_on_delete (GtkWidget *widget, ModestWindow *win) { @@ -276,13 +276,11 @@ cleanup: void modest_ui_actions_on_open (GtkWidget *widget, ModestWindow *win) { - /* FIXME */ - + modest_runtime_not_implemented (GTK_WINDOW(win)); /* FIXME */ } - static void reply_forward_func (gpointer data, gpointer user_data) { @@ -368,7 +366,6 @@ cleanup: g_free (rf_helper->account_name); g_slice_free (ReplyForwardHelper, rf_helper); } - /* * Common code for the reply and forward actions */ @@ -384,7 +381,7 @@ reply_forward (GtkWidget *widget, ReplyForwardAction action, ModestWindow *win) g_return_if_fail (MODEST_IS_WINDOW(win)); - header_list = get_selected_headers (win); + header_list = get_selected_headers (win); if (!header_list) return; @@ -403,27 +400,39 @@ reply_forward (GtkWidget *widget, ReplyForwardAction action, ModestWindow *win) rf_helper->account_name = g_strdup (modest_window_get_active_account (win)); if (!rf_helper->account_name) - rf_helper->account_name = modest_account_mgr_get_default_account (modest_runtime_get_account_mgr()); + rf_helper->account_name = + modest_account_mgr_get_default_account (modest_runtime_get_account_mgr()); helper = g_slice_new0 (GetMsgAsyncHelper); - //helper->main_window = NULL; + helper->window = win; helper->func = reply_forward_func; helper->iter = tny_list_create_iterator (header_list); helper->user_data = rf_helper; - - header = TNY_HEADER (tny_iterator_get_current (helper->iter)); - folder = tny_header_get_folder (header); - 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)); + + if (MODEST_IS_MSG_VIEW_WINDOW(win)) { + TnyMsg *msg; + msg = modest_msg_view_window_get_message(MODEST_MSG_VIEW_WINDOW(win)); + if (!msg) { + g_printerr ("modest: no message found\n"); + return; + } else + reply_forward_func (msg, helper); + } else { + header = TNY_HEADER (tny_iterator_get_current (helper->iter)); + folder = tny_header_get_folder (header); + 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)); + } } + void modest_ui_actions_on_reply (GtkWidget *widget, ModestWindow *win) { @@ -561,7 +570,7 @@ read_msg_func (gpointer data, gpointer user_data) msg = TNY_MSG (data); helper = (GetMsgAsyncHelper *) user_data; - msg_preview = modest_main_window_get_child_widget (helper->main_window, + msg_preview = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (helper->window), MODEST_WIDGET_TYPE_MSG_PREVIEW); if (!msg_preview) return; @@ -593,13 +602,9 @@ get_msg_cb (TnyFolder *folder, TnyMsg *msg, GError **err, gpointer user_data) helper = (GetMsgAsyncHelper *) user_data; if ((*err && ((*err)->code == TNY_FOLDER_ERROR_GET_MSG)) || !msg) { - GtkWidget *header_view = - modest_main_window_get_child_widget(helper->main_window, - MODEST_WIDGET_TYPE_HEADER_VIEW); - if (header_view) - modest_ui_actions_on_item_not_found (MODEST_HEADER_VIEW(header_view), - MODEST_ITEM_TYPE_MESSAGE, - MODEST_WINDOW(helper->main_window)); + modest_ui_actions_on_item_not_found (NULL, + MODEST_ITEM_TYPE_MESSAGE, + helper->window); return; } @@ -655,7 +660,7 @@ modest_ui_actions_on_header_selected (ModestHeaderView *folder_view, /* Fill helper data */ helper = g_slice_new0 (GetMsgAsyncHelper); - helper->main_window = main_window; + helper->window = MODEST_WINDOW (main_window); helper->iter = tny_list_create_iterator (list); helper->func = read_msg_func; @@ -712,13 +717,9 @@ cleanup: if (folder) g_object_unref (G_OBJECT (folder)); if (msg) - g_object_unref (G_OBJECT (folder)); + g_object_unref (G_OBJECT (msg)); } - - - - void modest_ui_actions_on_folder_selection_changed (ModestFolderView *folder_view, TnyFolder *folder, @@ -821,7 +822,7 @@ statusbar_push (ModestMainWindow *main_window, guint context_id, const gchar *ms if (status_bar) { gtk_widget_show (status_bar); gtk_statusbar_push (GTK_STATUSBAR(status_bar), 0, msg); - g_timeout_add (1500, (GSourceFunc)statusbar_clean, status_bar); + g_timeout_add (2500, (GSourceFunc)statusbar_clean, status_bar); } } @@ -1061,13 +1062,12 @@ modest_ui_actions_on_new_folder (GtkWidget *widget, ModestMainWindow *main_windo TNY_FOLDER_STORE (parent_folder), (const gchar *) folder_name); if (new_folder) { - /* TODO: tinymail should do this. - Update view */ - modest_folder_view_add_subfolder (MODEST_FOLDER_VIEW(folder_view), - new_folder); - - /* Free new folder */ g_object_unref (new_folder); + } else { + const GError *error; + error = modest_mail_operation_get_error (mail_op); + if (error) + g_warning ("Error adding a subfolder: %s\n", error->message); } g_object_unref (mail_op); } @@ -1106,12 +1106,9 @@ modest_ui_actions_on_rename_folder (GtkWidget *widget, (const gchar *) folder_name); error = modest_mail_operation_get_error (mail_op); - if (!error) - /* TODO: tinymail should do this. - Update view */ - modest_folder_view_rename (MODEST_FOLDER_VIEW(folder_view)); - - /* TODO: else ? notify error ? */ + if (error) + /* TODO: notify error ? */ + g_warning ("Could not rename a folder: %s\n", error->message); g_object_unref (mail_op); } @@ -1125,6 +1122,7 @@ delete_folder (ModestMainWindow *main_window, gboolean move_to_trash) TnyFolder *folder; ModestMailOperation *mail_op; GtkWidget *folder_view; + const GError *error; g_return_if_fail (MODEST_IS_MAIN_WINDOW(main_window)); @@ -1137,6 +1135,11 @@ delete_folder (ModestMainWindow *main_window, gboolean move_to_trash) mail_op = modest_mail_operation_new (); modest_mail_operation_remove_folder (mail_op, folder, move_to_trash); + + error = modest_mail_operation_get_error (mail_op); + if (error) + g_warning ("%s\n", error->message); + g_object_unref (mail_op); } @@ -1158,39 +1161,6 @@ modest_ui_actions_on_move_folder_to_trash_folder (GtkWidget *widget, ModestMainW } void -modest_ui_actions_on_accounts_reloaded (TnyAccountStore *store, gpointer user_data) -{ - /* FIXME */ - /* ModestFolderView *folder_view; */ - -/* folder_view = modest_widget_factory_get_folder_view (modest_runtime_get_widget_factory()); */ -/* modest_folder_view_update_model (folder_view, store); */ -} - -void -modest_ui_actions_on_folder_moved (ModestFolderView *folder_view, TnyFolder *folder, - TnyFolderStore *parent, gboolean *done, - gpointer user_data) -{ - ModestMailOperation *mail_op; - const GError *error; - - *done = TRUE; - - /* Try to move the folder */ - mail_op = modest_mail_operation_new (); - modest_mail_operation_move_folder (mail_op, folder, parent); - - error = modest_mail_operation_get_error (mail_op); - if (error) - *done = FALSE; - - g_object_unref (G_OBJECT (mail_op)); -} - - - -void modest_ui_actions_on_password_requested (TnyAccountStore *account_store, const gchar* account_name, gchar **password,