Alternate patch to the one applied in 3653, this one's better
[modest] / src / maemo / modest-msg-view-window.c
index 4d1cf23..92ea300 100644 (file)
@@ -345,6 +345,9 @@ modest_msg_view_window_init (ModestMsgViewWindow *obj)
        priv->purge_timeout = 0;
        priv->remove_attachment_banner = NULL;
        priv->msg_uid = NULL;
+       
+       modest_window_mgr_register_help_id (modest_runtime_get_window_mgr(),
+                                           GTK_WINDOW(obj),"applications_email_viewer");
 }
 
 
@@ -513,16 +516,17 @@ init_window (ModestMsgViewWindow *obj)
        hildon_window_set_menu    (HILDON_WINDOW(obj), GTK_MENU(parent_priv->menubar));
        gtk_widget_show (GTK_WIDGET(parent_priv->menubar));
 
+#ifdef MODEST_USE_MOZEMBED
+       priv->main_scroll = priv->msg_view;
+       gtk_widget_set_size_request (priv->msg_view, -1, 1600);
+#else
        priv->main_scroll = gtk_scrolled_window_new (NULL, NULL);
+       gtk_container_add (GTK_CONTAINER (priv->main_scroll), priv->msg_view);
+#endif
        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->main_scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
        gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (priv->main_scroll), GTK_SHADOW_NONE);
        modest_maemo_set_thumbable_scrollbar (GTK_SCROLLED_WINDOW(priv->main_scroll), TRUE);
 
-#ifdef MODEST_USE_MOZEMBED
-       gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (priv->main_scroll), priv->msg_view);
-#else
-       gtk_container_add (GTK_CONTAINER (priv->main_scroll), priv->msg_view);
-#endif
        gtk_box_pack_start (GTK_BOX(main_vbox), priv->main_scroll, TRUE, TRUE, 0);
        gtk_container_add   (GTK_CONTAINER(obj), main_vbox);
 
@@ -541,9 +545,8 @@ modest_msg_view_window_disconnect_signals (ModestWindow *self)
 {
        ModestMsgViewWindowPrivate *priv;
        ModestHeaderView *header_view = NULL;
-       ModestMainWindow *main_window = NULL;
-       ModestWindowMgr *window_mgr = NULL;
-
+       ModestWindow *main_window = NULL;
+       
        priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (self);
 
        if (gtk_clipboard_get (GDK_SELECTION_PRIMARY) &&
@@ -584,19 +587,15 @@ modest_msg_view_window_disconnect_signals (ModestWindow *self)
                                                    priv->rows_reordered_handler);
        }
 
-       window_mgr = modest_runtime_get_window_mgr();
-       g_assert(window_mgr != NULL);
-
-       main_window = MODEST_MAIN_WINDOW(
-                       modest_window_mgr_get_main_window(window_mgr));
-       
-       if(main_window == NULL)
+       main_window = modest_window_mgr_get_main_window (modest_runtime_get_window_mgr(),
+                                                        FALSE); /* don't create */
+       if (!main_window)
                return;
-
+       
        header_view = MODEST_HEADER_VIEW(
                        modest_main_window_get_child_widget(
-                       main_window, MODEST_MAIN_WINDOW_WIDGET_TYPE_HEADER_VIEW));
-
+                               MODEST_MAIN_WINDOW(main_window),
+                               MODEST_MAIN_WINDOW_WIDGET_TYPE_HEADER_VIEW));
        if (header_view == NULL)
                return;
        
@@ -843,6 +842,7 @@ modest_msg_view_window_construct (ModestMsgViewWindow *self,
 
 }
 
+/* FIXME: parameter checks */
 ModestWindow *
 modest_msg_view_window_new_with_header_model (TnyMsg *msg, 
                                              const gchar *modest_account_name,
@@ -854,24 +854,28 @@ modest_msg_view_window_new_with_header_model (TnyMsg *msg,
        ModestMsgViewWindowPrivate *priv = NULL;
        TnyFolder *header_folder = NULL;
        ModestHeaderView *header_view = NULL;
-       ModestMainWindow *main_window = NULL;
-       ModestWindowMgr *window_mgr = NULL;
-
+       ModestWindow *main_window = NULL;
+       
        window = g_object_new(MODEST_TYPE_MSG_VIEW_WINDOW, NULL);
        g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (window), NULL);
+
        modest_msg_view_window_construct (window, modest_account_name, msg_uid);
 
        priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
 
        /* Remember the message list's TreeModel so we can detect changes 
         * and change the list selection when necessary: */
-       window_mgr = modest_runtime_get_window_mgr();
-       g_assert(window_mgr != NULL);
-       main_window = MODEST_MAIN_WINDOW(
-                       modest_window_mgr_get_main_window(window_mgr));
-       g_assert(main_window != NULL);
+
+       main_window = modest_window_mgr_get_main_window(
+               modest_runtime_get_window_mgr(), FALSE); /* don't create */
+       if (!main_window) {
+               g_warning ("%s: BUG: no main window", __FUNCTION__);
+               return NULL;
+       }
+       
        header_view = MODEST_HEADER_VIEW(modest_main_window_get_child_widget(
-                       main_window, MODEST_MAIN_WINDOW_WIDGET_TYPE_HEADER_VIEW));
+                                                MODEST_MAIN_WINDOW(main_window),
+                                                MODEST_MAIN_WINDOW_WIDGET_TYPE_HEADER_VIEW));
        if (header_view != NULL){
                header_folder = modest_header_view_get_folder(header_view);
                g_assert(header_folder != NULL);
@@ -910,6 +914,7 @@ modest_msg_view_window_new_with_header_model (TnyMsg *msg,
        gtk_widget_show_all (GTK_WIDGET (window));
 
        tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), msg);
+       update_window_title (MODEST_MSG_VIEW_WINDOW (window));
 
        modest_msg_view_window_update_priority (window);
 
@@ -1800,7 +1805,7 @@ view_msg_cb (ModestMailOperation *mail_op,
 
        /* Mark header as read */
        if (!(tny_header_get_flags (header) & TNY_HEADER_FLAG_SEEN))
-               tny_header_set_flags (header, TNY_HEADER_FLAG_SEEN);
+               tny_header_set_flag (header, TNY_HEADER_FLAG_SEEN);
 
        /* Set new message */
        tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), msg);
@@ -1838,15 +1843,8 @@ modest_msg_view_window_get_folder_type (ModestMsgViewWindow *window)
                TnyFolder *folder;
 
                folder = tny_msg_get_folder (msg);
-               
                if (folder) {
                        folder_type = tny_folder_get_folder_type (folder);
-                       
-                       if (folder_type == TNY_FOLDER_TYPE_NORMAL || folder_type == TNY_FOLDER_TYPE_UNKNOWN) {
-                               const gchar *fname = tny_folder_get_name (folder);
-                               folder_type = modest_tny_folder_guess_folder_type_from_name (fname);
-                       }
-
                        g_object_unref (folder);
                }
                g_object_unref (msg);
@@ -2343,7 +2341,7 @@ save_mime_part_to_file (SaveMimePartInfo *info)
        TnyStream *stream;
        SaveMimePartPair *pair = (SaveMimePartPair *) info->pairs->data;
 
-       result = gnome_vfs_create (&handle, pair->filename, GNOME_VFS_OPEN_WRITE, FALSE, 0777);
+       result = gnome_vfs_create (&handle, pair->filename, GNOME_VFS_OPEN_WRITE, FALSE, 0444);
        if (result == GNOME_VFS_OK) {
                stream = tny_vfs_stream_new (handle);
                tny_mime_part_decode_to_stream (pair->part, stream);
@@ -2626,8 +2624,9 @@ update_window_title (ModestMsgViewWindow *window)
        TnyMsg *msg = NULL;
        TnyHeader *header = NULL;
        const gchar *subject = NULL;
-
+       
        msg = tny_msg_view_get_msg (TNY_MSG_VIEW (priv->msg_view));
+
        if (msg != NULL) {
                header = tny_msg_get_header (msg);
                subject = tny_header_get_subject (header);
@@ -2640,6 +2639,7 @@ update_window_title (ModestMsgViewWindow *window)
        gtk_window_set_title (GTK_WINDOW (window), subject);
 }
 
+
 static void on_move_focus (ModestMsgViewWindow *window,
                           GtkDirectionType direction,
                           gpointer userdata)