X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fgnome%2Fmodest-main-window.c;h=1214d955795bbee6be020dd7f3fffad99be07eac;hb=f0d8f53cb1a775d9caff277a4538c2aedb4e358b;hp=4b9a3fa2ac02c741ec81b7d7616f9a48c45e1925;hpb=fecb964ed9e028e9f1c169b6904ad2064ea59304;p=modest diff --git a/src/gnome/modest-main-window.c b/src/gnome/modest-main-window.c index 4b9a3fa..1214d95 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; @@ -273,13 +270,15 @@ restore_sizes (ModestMainWindow *self) conf = modest_runtime_get_conf (); modest_widget_memory_restore (conf, G_OBJECT(priv->folder_paned), - "modest-folder-paned"); + MODEST_CONF_FOLDER_PANED_KEY); modest_widget_memory_restore (conf, G_OBJECT(priv->msg_paned), - "modest-msg-paned"); + MODEST_CONF_MSG_PANED_KEY); modest_widget_memory_restore (conf, G_OBJECT(priv->main_paned), - "modest-main-paned"); - modest_widget_memory_restore (conf, G_OBJECT(priv->header_view),"header-view"); - modest_widget_memory_restore (conf,G_OBJECT(self), "modest-main-window"); + MODEST_CONF_MAIN_PANED_KEY); + modest_widget_memory_restore (conf, G_OBJECT(priv->header_view), + MODEST_CONF_HEADER_VIEW_KEY); + modest_widget_memory_restore (conf, G_OBJECT(self), + MODEST_CONF_MAIN_WINDOW_KEY); } @@ -295,14 +294,16 @@ save_sizes (ModestMainWindow *self) conf = modest_runtime_get_conf (); - modest_widget_memory_save (conf,G_OBJECT(self), "modest-main-window"); modest_widget_memory_save (conf, G_OBJECT(priv->folder_paned), - "modest-folder-paned"); + MODEST_CONF_FOLDER_PANED_KEY); modest_widget_memory_save (conf, G_OBJECT(priv->msg_paned), - "modest-msg-paned"); + MODEST_CONF_MSG_PANED_KEY); modest_widget_memory_save (conf, G_OBJECT(priv->main_paned), - "modest-main-paned"); - modest_widget_memory_save (conf, G_OBJECT(priv->header_view), "header-view"); + MODEST_CONF_MAIN_PANED_KEY); + modest_widget_memory_save (conf, G_OBJECT(priv->header_view), + MODEST_CONF_HEADER_VIEW_KEY); + modest_widget_memory_save (conf, G_OBJECT(self), + MODEST_CONF_MAIN_WINDOW_KEY); } @@ -354,8 +355,10 @@ on_online_toggle_toggled (GtkToggleButton *toggle, ModestMainWindow *self) device = modest_runtime_get_device (); online = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->online_toggle)); - if (online) + if (online) { + /* TODO: Just attempt to go online, instead of forcing the online status: */ tny_device_force_online (device); + } else tny_device_force_offline (device); } @@ -392,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", @@ -698,12 +703,6 @@ modest_main_window_set_style (ModestMainWindow *self, /* TODO */ } -void -modest_main_window_set_toolbar_mode (ModestMainWindow *self, - ModestToolBarModes mode) -{ - /* TODO */ -} ModestMainWindowStyle modest_main_window_get_style (ModestMainWindow *self) @@ -718,3 +717,44 @@ 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); + + /* 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); +}