* menu View->Attachments now controls whether attachment (images) are shown inline
authorArne Zellentin <arne@kernelconcepts.de>
Fri, 9 Jun 2006 14:21:25 +0000 (14:21 +0000)
committerArne Zellentin <arne@kernelconcepts.de>
Fri, 9 Jun 2006 14:21:25 +0000 (14:21 +0000)
* new modest_tny_msg_view_redraw()

pmo-trunk-r215

src/gtk-glade/modest-ui.c
src/gtk-glade/modest.glade
src/modest-tny-msg-view.c
src/modest-tny-msg-view.h

index b33b1ce..31003cb 100644 (file)
@@ -68,6 +68,8 @@ static void on_forward_clicked (GtkWidget *widget, ModestUI *modest_ui);
 
 static void on_delete_clicked (GtkWidget *widget, ModestUI *modest_ui);
 
+static void on_view_attachments_toggled(GtkWidget *widget, ModestUI *modest_ui);
+
 #if 1
 static void on_send_button_clicked (GtkWidget *widget, ModestEditorWindow *modest_editwin);
 #else
@@ -274,7 +276,8 @@ modest_ui_show_main_window (ModestUI *modest_ui)
        GtkWidget     *message_view;
        GtkWidget     *account_settings_item;
        GtkWidget     *new_account_item;
-        GtkWidget     *delete_item;
+       GtkWidget     *delete_item;
+       GtkWidget     *view_attachments_item;
 
        GtkWidget  *folder_view_holder,
                *header_view_holder,
@@ -358,7 +361,25 @@ modest_ui_show_main_window (ModestUI *modest_ui)
 
        g_signal_connect (delete_item, "activate", G_CALLBACK(on_delete_clicked),
                          modest_ui);
-
+       
+       view_attachments_item = glade_xml_get_widget (priv->glade_xml, "menu_view_attachments");
+       if (!view_attachments_item)
+       {
+               g_warning ("The view_attachments_item isn't available!");
+               return FALSE;
+       }
+       
+       gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(view_attachments_item),
+                                                                  modest_conf_get_bool(priv->modest_conf,
+                                                                                                               MODEST_CONF_MSG_VIEW_SHOW_ATTACHMENTS_INLINE,
+                                                                                                               NULL)
+                                                                  );
+       
+       g_signal_connect (view_attachments_item,
+                                         "toggled",
+                                         G_CALLBACK(on_view_attachments_toggled),
+                                         modest_ui);
+       
        register_toolbar_callbacks (modest_ui);
 
        modest_window_mgr_register (priv->modest_window_mgr,
@@ -1288,7 +1309,27 @@ on_send_button_clicked (GtkWidget *widget, ModestEditorWindow *modest_editwin)
                g_warning("editor window has vanished!");
 }
 
-
+static void
+on_view_attachments_toggled(GtkWidget *widget, ModestUI *modest_ui)
+{
+       GtkWidget *view_attachments_item, *paned;
+       ModestTnyMsgView *msg_view;
+       ModestUIPrivate *priv;
+       
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+       view_attachments_item = glade_xml_get_widget (priv->glade_xml, "menu_view_attachments");
+       g_return_if_fail(view_attachments_item);
+       
+       modest_conf_set_bool(priv->modest_conf,
+                                                        MODEST_CONF_MSG_VIEW_SHOW_ATTACHMENTS_INLINE,
+                                                        gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(view_attachments_item)),
+                                                        NULL);
+       
+       /* refresh message view */
+       paned = glade_xml_get_widget (priv->glade_xml,"mail_paned");
+       msg_view = MODEST_TNY_MSG_VIEW(gtk_paned_get_child2 (GTK_PANED(paned)));
+       modest_tny_msg_view_redraw(MODEST_TNY_MSG_VIEW(msg_view));
+}
 static void
 on_delete_clicked (GtkWidget *widget, ModestUI *modest_ui)
 {
index 4e879df..5ba25b1 100644 (file)
                  </child>
 
                  <child>
+                   <widget class="GtkCheckMenuItem" id="menu_view_attachments">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Attachments</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">True</property>
+                     <signal name="toggled" handler="on_view_attachments_toggled" last_modification_time="Fri, 09 Jun 2006 14:17:29 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
                    <widget class="GtkCheckMenuItem" id="full_screen1">
                      <property name="visible">True</property>
                      <property name="label" translatable="yes">Full screen</property>
index f97283f..b23474c 100644 (file)
@@ -183,16 +183,7 @@ on_link_clicked (GtkWidget *widget, const gchar *uri,
        
        
        if (g_str_has_prefix(uri, "attachment:")) {
-               priv = MODEST_TNY_MSG_VIEW_GET_PRIVATE(msg_view);
-               /* toggle ...SHOW_ATTACHMENTS_INLINE */
-               modest_conf_set_bool(priv->conf,
-                                                        MODEST_CONF_MSG_VIEW_SHOW_ATTACHMENTS_INLINE,
-                                                        !modest_conf_get_bool(priv->conf,
-                                                                                                  MODEST_CONF_MSG_VIEW_SHOW_ATTACHMENTS_INLINE,
-                                                                                                  NULL),
-                                                        NULL);
-
-               modest_tny_msg_view_set_message(msg_view, priv->msg);
+               /* save or open attachment */
                return TRUE;
        }
        g_message ("link clicked: %s", uri); /* FIXME */
@@ -201,7 +192,6 @@ on_link_clicked (GtkWidget *widget, const gchar *uri,
 }
 
 
-
 static TnyMsgMimePartIface *
 find_cid_image (TnyMsgIface *msg, const gchar *cid)
 {
@@ -437,10 +427,9 @@ attachments_as_html(ModestTnyMsgView *self, TnyMsgIface *msg)
                                         id, show_attachments_inline);
                        printf("VF:%s\n", virtual_filename);
                        if (show_attachments_inline) {
-                               g_string_append_printf(appendix, "<IMG src=\"%s\">\n<BR><A href=\"attachment:%s\">%s</A>\n", virtual_filename, filename, filename);
-                       } else {
-                               g_string_append_printf(appendix, "<A href=\"attachment:%s\">%s</A>: %s<BR>\n", filename, filename, content_type);
+                               g_string_append_printf(appendix, "<IMG src=\"%s\">\n<BR>", virtual_filename, filename, filename);
                        }
+                       g_string_append_printf(appendix, "<A href=\"attachment:%s\">%s</A>: %s<BR>\n", filename, filename, content_type);
                        g_free(virtual_filename);
                }
                attachment = attachment->next;
@@ -769,3 +758,13 @@ modest_tny_msg_view_set_message (ModestTnyMsgView *self, TnyMsgIface *msg)
        fill_gtkhtml_with_txt (self, GTK_HTML(priv->gtkhtml),
                                _("Unsupported message type"), msg);
 }
+
+void
+modest_tny_msg_view_redraw (ModestTnyMsgView *self)
+{
+       ModestTnyMsgViewPrivate *priv;
+
+       g_return_if_fail (self);
+       priv = MODEST_TNY_MSG_VIEW_GET_PRIVATE(self);
+       modest_tny_msg_view_set_message(self, priv->msg);
+}
index 7b8de6f..3a91833 100644 (file)
@@ -68,6 +68,14 @@ GtkWidget*   modest_tny_msg_view_new          (TnyMsgIface *tny_msg, ModestConf
 void         modest_tny_msg_view_set_message  (ModestTnyMsgView *self,
                                                TnyMsgIface *tny_msg);
 
+/**
+ * modest_tny_msg_view_redraw
+ * @self: a ModestTnyMsgView instance
+ *
+ * re-display the current e-mail message.
+ */
+void         modest_tny_msg_view_redraw  (ModestTnyMsgView *self);
+
 
 /**
  * modest_tny_msg_view_get_selected_text: