From 9d8738876f984ae854b0b3634f12f9fd426480e8 Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Thu, 3 May 2007 19:03:00 +0000 Subject: [PATCH] * Fixed some GNOME build problems * Removed the code that updates the msg preview from the UI actions, it's only used by GNOME * The Maemo version now, does not read the message when a header is clicked pmo-trunk-r1748 --- src/gnome/modest-main-window.c | 60 +++++++++++++++++++++++++++----- src/gnome/modest-platform.c | 6 ++++ src/modest-mail-operation.c | 7 +++- src/modest-ui-actions.c | 74 +--------------------------------------- 4 files changed, 64 insertions(+), 83 deletions(-) diff --git a/src/gnome/modest-main-window.c b/src/gnome/modest-main-window.c index 0b15ec5..475a097 100644 --- a/src/gnome/modest-main-window.c +++ b/src/gnome/modest-main-window.c @@ -30,6 +30,8 @@ #include #include #include +#include +#include #include #include @@ -81,6 +83,10 @@ static void on_header_status_update (ModestHeaderView *head gint total, ModestMainWindow *main_window); +static void on_header_selected (ModestHeaderView *header_view, + TnyHeader *header, + ModestMainWindow *main_window); + /* list my signals */ enum { /* MY_SIGNAL_1, */ @@ -114,15 +120,6 @@ struct _ModestMainWindowPrivate { MODEST_TYPE_MAIN_WINDOW, \ ModestMainWindowPrivate)) -typedef struct _GetMsgAsyncHelper { - ModestMainWindowPrivate *main_window_private; - guint action; - ModestTnyMsgReplyType reply_type; - ModestTnyMsgForwardType forward_type; - gchar *from; - TnyIterator *iter; -} GetMsgAsyncHelper; - /* globals */ static GtkWindowClass *parent_class = NULL; @@ -398,6 +395,8 @@ connect_signals (ModestMainWindow *self) G_CALLBACK(on_header_status_update), self); g_signal_connect (G_OBJECT(priv->header_view), "header_selected", G_CALLBACK(modest_ui_actions_on_header_selected), self); + g_signal_connect (G_OBJECT(priv->header_view), "header_selected", + G_CALLBACK(on_header_selected), self); g_signal_connect (G_OBJECT(priv->header_view), "header_activated", G_CALLBACK(modest_ui_actions_on_header_activated), self); g_signal_connect (G_OBJECT(priv->header_view), "item_not_found", @@ -718,3 +717,46 @@ modest_main_window_set_contents_style (ModestMainWindow *self, { /* TODO */ } + +static void +get_msg_callback (TnyFolder *folder, + TnyMsg *msg, + GError **err, + gpointer user_data) +{ + if (!(*err)) { + ModestMsgView *msg_preview; + + msg_preview = MODEST_MSG_VIEW (user_data); + modest_msg_view_set_message (msg_preview, msg); + } + + /* Frees */ + g_object_unref (folder); +} + +static void +on_header_selected (ModestHeaderView *header_view, + TnyHeader *header, + ModestMainWindow *main_window) +{ + TnyFolder *folder; + ModestMainWindowPrivate *priv; + + priv = MODEST_MAIN_WINDOW_GET_PRIVATE (main_window); + + if (!header) + return; + + folder = tny_header_get_folder (header); + + g_print ("SI"); + + /* FIXME: do not use this directly. Use a mail operation + instead in order to get progress info */ + tny_folder_get_msg_async (folder, + header, + get_msg_callback, + NULL, + priv->msg_preview); +} diff --git a/src/gnome/modest-platform.c b/src/gnome/modest-platform.c index 9b80c90..b59819f 100644 --- a/src/gnome/modest-platform.c +++ b/src/gnome/modest-platform.c @@ -197,3 +197,9 @@ gboolean modest_platform_set_update_interval (guint minutes) /* TODO. */ } +void +modest_platform_run_sort_dialog (GtkWindow *parent_window, + ModestSortDialogType type) +{ + /* TODO */ +} diff --git a/src/modest-mail-operation.c b/src/modest-mail-operation.c index 940f96b..334eff4 100644 --- a/src/modest-mail-operation.c +++ b/src/modest-mail-operation.c @@ -1017,7 +1017,7 @@ on_refresh_folder (TnyFolder *folder, static void on_refresh_folder_status_update (GObject *obj, - TnyStatus *status, + TnyStatus *status, gpointer user_data) { ModestMailOperation *self; @@ -1026,6 +1026,11 @@ on_refresh_folder_status_update (GObject *obj, g_return_if_fail (status != NULL); g_return_if_fail (status->code == TNY_FOLDER_STATUS_CODE_REFRESH); + /* Temporary FIX: useful when tinymail send us status + information *after* calling the function callback */ + if (!user_data) + return; + self = MODEST_MAIL_OPERATION (user_data); priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self); diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index dbdc0b4..0931689 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -97,7 +97,7 @@ do_headers_action (ModestWindow *win, static void reply_forward_func (gpointer data, gpointer user_data); -static void read_msg_func (gpointer data, gpointer user_data); + static void get_msg_cb (TnyFolder *folder, TnyMsg *msg, GError **err, gpointer user_data); static void reply_forward (ReplyForwardAction action, ModestWindow *win); @@ -867,37 +867,6 @@ modest_ui_actions_toggle_header_list_view (GtkAction *action, ModestMainWindow * MODEST_CONF_HEADER_VIEW_KEY); } - - -/* - * Marks a message as read and passes it to the msg preview widget - */ -static void -read_msg_func (gpointer data, gpointer user_data) -{ - TnyMsg *msg; - TnyHeader *header; - GetMsgAsyncHelper *helper; - TnyHeaderFlags header_flags; - GtkWidget *msg_preview; - - msg = TNY_MSG (data); - helper = (GetMsgAsyncHelper *) user_data; - - msg_preview = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (helper->window), - MODEST_WIDGET_TYPE_MSG_PREVIEW); - if (!msg_preview) - return; - - header = TNY_HEADER (tny_iterator_get_current (helper->iter)); - header_flags = tny_header_get_flags (header); - tny_header_set_flags (header, header_flags | TNY_HEADER_FLAG_SEEN); - g_object_unref (G_OBJECT (header)); - - /* Set message on msg view */ - modest_msg_view_set_message (MODEST_MSG_VIEW(msg_preview), msg); -} - /* * This function is a generic handler for the tny_folder_get_msg_async * call. It expects as user_data a #GetMsgAsyncHelper. This helper @@ -960,25 +929,8 @@ modest_ui_actions_on_header_selected (ModestHeaderView *header_view, TnyHeader *header, ModestMainWindow *main_window) { -/* TnyFolder *folder; */ - GetMsgAsyncHelper *helper; - TnyList *list; - g_return_if_fail (MODEST_IS_MAIN_WINDOW(main_window)); - /* when there's no header, clear the msgview */ - if (!header) { - GtkWidget *msg_preview; - - /* Clear msg preview if exists */ - msg_preview = modest_main_window_get_child_widget(main_window, - MODEST_WIDGET_TYPE_MSG_PREVIEW); - - if (msg_preview) - modest_msg_view_set_message (MODEST_MSG_VIEW(msg_preview), NULL); - return; - } - /* Update Main window title */ if (GTK_WIDGET_HAS_FOCUS (header_view)) { const gchar *subject = tny_header_get_subject (header); @@ -987,30 +939,6 @@ modest_ui_actions_on_header_selected (ModestHeaderView *header_view, else gtk_window_set_title (GTK_WINDOW (main_window), _("mail_va_no_subject")); } - - /* Create list */ - list = tny_simple_list_new (); - tny_list_prepend (list, G_OBJECT (header)); - - /* Fill helper data */ - helper = g_slice_new0 (GetMsgAsyncHelper); - helper->window = MODEST_WINDOW (main_window); - helper->iter = tny_list_create_iterator (list); - helper->func = read_msg_func; - helper->num_ops = tny_list_get_length (list); - -/* folder = tny_header_get_folder (TNY_HEADER(header)); */ - -/* tny_folder_get_msg_async (TNY_FOLDER(folder), */ -/* header, get_msg_cb, */ -/* NULL, helper); */ - - helper->mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_ID_RECEIVE); - modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), helper->mail_op); - modest_mail_operation_process_msg (helper->mail_op, header, helper->num_ops, get_msg_cb, helper); - - /* Frees */ -/* g_object_unref (G_OBJECT (folder)); */ } -- 1.7.9.5