* Removed maemo ui constants
[modest] / src / gnome / modest-main-window.c
index 4b9a3fa..1214d95 100644 (file)
@@ -30,6 +30,8 @@
 #include <glib/gi18n.h>
 #include <gtk/gtktreeviewcolumn.h>
 #include <tny-account-store-view.h>
+#include <tny-simple-list.h>
+#include <tny-error.h>
 
 #include <widgets/modest-main-window.h>
 #include <widgets/modest-window-priv.h>
@@ -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);
+}