X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fgnome%2Fmodest-main-window.c;h=5d07395017a7bf78af2b3a1f68311d303defe175;hb=8376cf7ef539a483f17fc1e4d88a5ac91acaa24a;hp=59cfd678c56b3c0e8291c4bf5f628171bbc4a154;hpb=864c085607658b16daf578e94e63916e9832af83;p=modest diff --git a/src/gnome/modest-main-window.c b/src/gnome/modest-main-window.c index 59cfd67..5d07395 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,20 +294,24 @@ 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); } static void -on_connection_changed (TnyDevice *device, gboolean online, ModestMainWindow *self) +on_account_store_connecting_finished (TnyAccountStore *store, ModestMainWindow *self) { + const gboolean online = TRUE; + GtkWidget *icon; const gchar *icon_name; ModestMainWindowPrivate *priv; @@ -331,7 +334,7 @@ on_connection_changed (TnyDevice *device, gboolean online, ModestMainWindow *sel /* If Modest has became online and the header view has a header selected then show it */ - /* FIXME: there is a race condition if some account needs to + /* TODO: FIXME: there is a race condition if some account needs to ask the user for a password */ /* if (online) { */ @@ -394,6 +397,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", @@ -414,12 +419,14 @@ connect_signals (ModestMainWindow *self) G_CALLBACK(modest_ui_actions_on_msg_recpt_activated), self); /* Account store */ + /* Emmitted by our TnyAccountStore::get_password_func() implementation, + * This is not a normal part of tinymail: */ g_signal_connect (G_OBJECT (modest_runtime_get_account_store()), "password_requested", G_CALLBACK (modest_ui_actions_on_password_requested), self); /* Device */ - g_signal_connect (G_OBJECT(modest_runtime_get_device()), "connection_changed", - G_CALLBACK(on_connection_changed), self); + g_signal_connect (G_OBJECT(modest_runtime_get_account_store()), "connecting-finished", + G_CALLBACK(on_account_store_connecting_finished), self); g_signal_connect (G_OBJECT(priv->online_toggle), "toggled", G_CALLBACK(on_online_toggle_toggled), self); @@ -714,3 +721,53 @@ modest_main_window_set_contents_style (ModestMainWindow *self, { /* TODO */ } + +ModestMainWindowContentsStyle +modest_main_window_get_contents_style (ModestMainWindow *self) +{ + /* TODO */ + return MODEST_MAIN_WINDOW_CONTENTS_STYLE_HEADERS; +} + + +static void +get_msg_callback (TnyFolder *folder, + gboolean cancelled, + 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); +}