Changeset 991

Show
Ignore:
Timestamp:
10/13/06 17:50:58
Author:
pvanhoof
Message:

Added a mime part viewer

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r984 r991  
     12006-10-13   Philip Van Hoof <pvanhoof@gnome.org> 
     2 
     3        * Added the TnyGtkAttachmentMimePartView type 
     4 
    152006-10-12  Philip Van Hoof <pvanhoof@gnome.org> 
    26 
  • trunk/README

    r979 r991  
    115115gconftool-2 -s /apps/tinymail/cache_dir -t string .tinymail 
    116116gconftool-2 -s /apps/tinymail/accounts/count -t int 1 
     117gconftool-2 -s /apps/tinymail/accounts/0/name -t string "Account name" 
    117118gconftool-2 -s /apps/tinymail/accounts/0/proto -t string imap 
    118119gconftool-2 -s /apps/tinymail/accounts/0/type -t string store 
  • trunk/libtinymailui-gtk/Makefile.am

    r984 r991  
    1010lib_LTLIBRARIES = libtinymailui-gtk-1.0.la 
    1111 
    12 libtinymailui_gtk_1_0_headers =         \ 
    13         tny-gtk-save-strategy.h         \ 
    14         tny-gtk-msg-view.h              \ 
    15         tny-gtk-msg-window.h            \ 
    16         tny-gtk-text-mime-part-view.h   \ 
    17         tny-gtk-header-list-model.h     \ 
    18         tny-gtk-folder-tree-model.h     \ 
    19         tny-gtk-account-list-model.h    \ 
    20         tny-gtk-account-tree-model.h    \ 
    21         tny-gtk-attach-list-model.h     \ 
    22         tny-gtk-text-buffer-stream.h    \ 
     12libtinymailui_gtk_1_0_headers = \ 
     13        tny-gtk-save-strategy.h \ 
     14        tny-gtk-msg-view.h \ 
     15        tny-gtk-msg-window.h \ 
     16        tny-gtk-text-mime-part-view.h \ 
     17        tny-gtk-attachment-mime-part-view.h\ 
     18        tny-gtk-header-list-model.h \ 
     19        tny-gtk-folder-tree-model.h \ 
     20        tny-gtk-account-list-model.h \ 
     21        tny-gtk-account-tree-model.h \ 
     22        tny-gtk-attach-list-model.h \ 
     23        tny-gtk-text-buffer-stream.h \ 
    2324        tny-gtk-header-view.h 
    2425 
    25 libtinymailui_gtk_1_0_la_SOURCES =              \ 
    26         $(libtinymailui_gtk_1_0_headers)        \ 
    27         tny-gtk-save-strategy.c                 \ 
    28         tny-gtk-msg-view.c                      \ 
    29         tny-gtk-text-mime-part-view.c           \ 
    30         tny-gtk-msg-window.c                    \ 
    31         tny-gtk-folder-tree-model.c             \ 
     26libtinymailui_gtk_1_0_la_SOURCES = \ 
     27        $(libtinymailui_gtk_1_0_headers) \ 
     28        tny-gtk-save-strategy.c \ 
     29        tny-gtk-msg-view.c \ 
     30        tny-gtk-text-mime-part-view.c \ 
     31        tny-gtk-attachment-mime-part-view.c \ 
     32        tny-gtk-msg-window.c \ 
     33        tny-gtk-folder-tree-model.c \ 
    3234        tny-gtk-folder-tree-model-iterator-priv.h \ 
    33         tny-gtk-folder-tree-model-iterator.c   
    34         tny-gtk-account-tree-model.c           
     35        tny-gtk-folder-tree-model-iterator.c
     36        tny-gtk-account-tree-model.c
    3537        tny-gtk-account-tree-model-iterator-priv.h \ 
    36         tny-gtk-account-tree-model-iterator.c 
    37         tny-gtk-header-list-iterator-priv.h            
    38         tny-gtk-header-list-model.c           
    39         tny-gtk-header-list-iterator.c         
     38        tny-gtk-account-tree-model-iterator.c
     39        tny-gtk-header-list-iterator-priv.h
     40        tny-gtk-header-list-model.c
     41        tny-gtk-header-list-iterator.c
    4042        tny-gtk-attach-list-model-iterator-priv.h \ 
    41         tny-gtk-attach-list-model-iterator.c   
    42         tny-gtk-attach-list-model-priv.h       
    43         tny-gtk-attach-list-model.c           
    44         tny-gtk-account-list-model.c           
    45         tny-gtk-account-list-model-iterator.c 
     43        tny-gtk-attach-list-model-iterator.c
     44        tny-gtk-attach-list-model-priv.h
     45        tny-gtk-attach-list-model.c
     46        tny-gtk-account-list-model.c
     47        tny-gtk-account-list-model-iterator.c
    4648        tny-gtk-account-list-model-iterator-priv.h \ 
    47         tny-gtk-text-buffer-stream.c           
     49        tny-gtk-text-buffer-stream.c
    4850        tny-gtk-header-view.c 
    4951 
    50 libtinymailui_gtk_1_0_la_LIBADD =      
    51         $(LIBTINYMAILUI_GTK_LIBS)     
    52         $(top_builddir)/libtinymail/libtinymail-$(API_VERSION).la                  
     52libtinymailui_gtk_1_0_la_LIBADD =
     53        $(LIBTINYMAILUI_GTK_LIBS)
     54        $(top_builddir)/libtinymail/libtinymail-$(API_VERSION).la
    5355        $(top_builddir)/libtinymailui/libtinymailui-$(API_VERSION).la 
    5456 
    55 libtinymailui_gtk_1_0_la_LDFLAGS = -export-dynamic -version-info $(LT_VERSION_INFO) $(LIBTOOL_EXPORT_OPTIONS) 
     57libtinymailui_gtk_1_0_la_LDFLAGS = -export-dynamic \ 
     58        -version-info $(LT_VERSION_INFO) $(LIBTOOL_EXPORT_OPTIONS) 
    5659 
    5760if BUILD_GNOME 
     
    7073 
    7174DISTCLEANFILES = $(pkgconfig_DATA) 
     75 
  • trunk/libtinymailui-gtk/tny-gtk-msg-view.c

    r984 r991  
    4242#include <tny-gtk-header-view.h> 
    4343#include <tny-gtk-text-mime-part-view.h> 
     44#include <tny-gtk-attachment-mime-part-view.h> 
    4445 
    4546#ifdef GNOME 
     
    6162        TnyMsg *msg; 
    6263        TnyHeaderView *headerview; 
     64        GtkIconView *attachview; 
     65        GtkWidget *attachview_sw; 
    6366        TnySaveStrategy *save_strategy; 
    6467}; 
     
    7174tny_gtk_msg_view_create_mime_part_view_for (TnyMsgView *self, TnyMimePart *part) 
    7275{ 
    73       return TNY_GTK_MSG_VIEW_GET_CLASS (self)->create_mime_part_view_for_func (self, part); 
     76      return TNY_GTK_MSG_VIEW_GET_CLASS (self)->create_mime_part_view_for_func (self, part); 
    7477} 
    7578 
     
    8588                gtk_box_pack_start (GTK_BOX (TNY_GTK_MSG_VIEW (self)->viewers), GTK_WIDGET (retval), TRUE, TRUE, 0); 
    8689                gtk_widget_show (GTK_WIDGET (retval)); 
    87         } 
    88          
     90        } else if (tny_mime_part_get_content_type (part) && 
     91                        tny_mime_part_is_attachment (part)) 
     92        { 
     93                static gboolean first = TRUE; 
     94                GtkTreeModel *model; 
     95 
     96                gtk_widget_show (priv->attachview_sw); 
     97                if (first) 
     98                { 
     99                        model = tny_gtk_attach_list_model_new (); 
     100                        gtk_icon_view_set_model (priv->attachview, model); 
     101                        first = FALSE; 
     102                } else 
     103                        model = gtk_icon_view_get_model (priv->attachview); 
     104 
     105                retval = tny_gtk_attachment_mime_part_view_new (priv->save_strategy,  
     106                                                TNY_GTK_ATTACH_LIST_MODEL (model)); 
     107        } 
     108 
    89109        return retval; 
    90110} 
     
    101121 
    102122        header = TNY_HEADER (tny_msg_get_header (priv->msg)); 
    103       g_return_if_fail (TNY_IS_HEADER (header)); 
     123      g_return_if_fail (TNY_IS_HEADER (header)); 
    104124        tny_header_view_set_header (priv->headerview, header); 
    105       g_object_unref (G_OBJECT (header)); 
    106      
     125      g_object_unref (G_OBJECT (header)); 
     126 
    107127        tny_msg_get_parts (priv->msg, list); 
    108128        iterator = tny_list_create_iterator (list); 
     
    116136 
    117137                mpview = tny_msg_view_create_mime_part_view_for (self, part); 
    118                  
    119138                if (mpview) 
    120139                        tny_mime_part_view_set_part (mpview, part); 
    121                  
    122140                g_object_unref (G_OBJECT(part)); 
    123141                tny_iterator_next (iterator); 
     
    126144        g_object_unref (G_OBJECT (iterator)); 
    127145        g_object_unref (G_OBJECT (list)); 
    128          
     146 
    129147        return; 
    130148} 
     
    134152tny_gtk_msg_view_set_save_strategy (TnyMsgView *self, TnySaveStrategy *strategy) 
    135153{ 
    136       TNY_GTK_MSG_VIEW_GET_CLASS (self)->set_save_strategy_func (self, strategy); 
     154      TNY_GTK_MSG_VIEW_GET_CLASS (self)->set_save_strategy_func (self, strategy); 
    137155} 
    138156 
     
    200218tny_gtk_msg_view_set_unavailable (TnyMsgView *self) 
    201219{ 
    202       TNY_GTK_MSG_VIEW_GET_CLASS (self)->set_unavailable_func (self); 
     220      TNY_GTK_MSG_VIEW_GET_CLASS (self)->set_unavailable_func (self); 
    203221} 
    204222 
     
    209227        GtkTextBuffer *buffer; 
    210228 
    211         if (G_LIKELY (priv->msg))  
    212         { 
    213                 g_object_unref (G_OBJECT (priv->msg)); 
    214                 priv->msg = NULL; 
    215         } 
    216  
    217         tny_header_view_clear (priv->headerview); 
     229        tny_msg_view_clear (self); 
     230 
     231        tny_header_view_clear (priv->headerview); 
    218232        gtk_widget_hide (GTK_WIDGET (priv->headerview)); 
    219233 
     
    224238tny_gtk_msg_view_set_msg (TnyMsgView *self, TnyMsg *msg) 
    225239{ 
    226       TNY_GTK_MSG_VIEW_GET_CLASS (self)->set_msg_func (self, msg); 
     240              TNY_GTK_MSG_VIEW_GET_CLASS (self)->set_msg_func (self, msg); 
    227241} 
    228242 
     
    234248        tny_msg_view_clear (self); 
    235249 
    236       if (msg) 
     250      if (msg) 
    237251        { 
    238252                g_object_ref (G_OBJECT (msg)); 
     
    240254                reload_msg (self); 
    241255        } 
    242      
     256 
    243257        return; 
    244258} 
     
    254268tny_gtk_msg_view_clear (TnyMsgView *self) 
    255269{ 
    256       TNY_GTK_MSG_VIEW_GET_CLASS (self)->clear_func (self); 
     270              TNY_GTK_MSG_VIEW_GET_CLASS (self)->clear_func (self); 
    257271} 
    258272 
     
    268282                g_object_unref (G_OBJECT (priv->msg)); 
    269283        priv->msg = NULL; 
    270          
     284 
     285        gtk_icon_view_set_model (priv->attachview, tny_gtk_attach_list_model_new ()); 
     286        gtk_widget_hide (priv->attachview_sw); 
    271287        tny_header_view_set_header (priv->headerview, NULL); 
    272288        gtk_widget_hide (GTK_WIDGET (priv->headerview)); 
    273      
    274       return; 
     289 
     290      return; 
    275291} 
    276292 
     
    327343                GTK_WIDGET (TNY_GTK_MSG_VIEW (self)->viewers), FALSE, FALSE, 0); 
    328344        gtk_widget_show (GTK_WIDGET (TNY_GTK_MSG_VIEW (self)->viewers)); 
    329          
     345 
     346        priv->attachview_sw = gtk_scrolled_window_new (NULL, NULL); 
     347 
     348        gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (self), 
     349                                        GTK_SHADOW_NONE); 
     350        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (self), 
     351                                        GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); 
     352        gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (priv->attachview_sw), 
     353                                        GTK_SHADOW_NONE); 
     354        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->attachview_sw), 
     355                                        GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); 
     356 
     357        priv->attachview = GTK_ICON_VIEW (gtk_icon_view_new ()); 
     358 
     359        gtk_icon_view_set_selection_mode (priv->attachview, GTK_SELECTION_SINGLE); 
     360 
     361        g_signal_connect_swapped (G_OBJECT (priv->attachview), "button_press_event", 
     362                        G_CALLBACK (tny_gtk_msg_view_popup_handler), menu); 
     363 
     364        gtk_icon_view_set_text_column (priv->attachview, 
     365                        TNY_GTK_ATTACH_LIST_MODEL_FILENAME_COLUMN); 
     366 
     367        gtk_icon_view_set_pixbuf_column (priv->attachview, 
     368                        TNY_GTK_ATTACH_LIST_MODEL_PIXBUF_COLUMN); 
     369 
     370        gtk_icon_view_set_columns (priv->attachview, -1); 
     371        gtk_icon_view_set_item_width (priv->attachview, 100); 
     372        gtk_icon_view_set_column_spacing (priv->attachview, 10); 
     373 
     374        gtk_box_pack_start (GTK_BOX (vbox), priv->attachview_sw, FALSE, TRUE, 0); 
    330375        gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (self),  
    331376                        GTK_WIDGET (vbox)); 
     377        gtk_container_add (GTK_CONTAINER (priv->attachview_sw), GTK_WIDGET (priv->attachview)); 
    332378 
    333379        gtk_widget_show (GTK_WIDGET (vbox)); 
    334380        gtk_widget_hide (GTK_WIDGET (priv->headerview)); 
     381        gtk_widget_show (GTK_WIDGET (priv->attachview)); 
    335382 
    336383        return; 
  • trunk/libtinymailui-gtk/tny-gtk-text-mime-part-view.c

    r990 r991  
    222222 
    223223static void 
    224 tny_gtk_text_mime_part_view_init (gpointer g, gpointer iface_data) 
     224tny_mime_part_view_init (gpointer g, gpointer iface_data) 
    225225{ 
    226226        TnyMimePartViewIface *klass = (TnyMimePartViewIface *)g; 
     
    269269                }; 
    270270 
    271                 static const GInterfaceInfo tny_gtk_text_mime_part_view_info =  
     271                static const GInterfaceInfo tny_mime_part_view_info =  
    272272                { 
    273                   (GInterfaceInitFunc) tny_gtk_text_mime_part_view_init, /* interface_init */ 
     273                  (GInterfaceInitFunc) tny_mime_part_view_init, /* interface_init */ 
    274274                  NULL,         /* interface_finalize */ 
    275275                  NULL          /* interface_data */ 
     
    281281 
    282282                g_type_add_interface_static (type, TNY_TYPE_MIME_PART_VIEW,  
    283                         &tny_gtk_text_mime_part_view_info); 
     283                        &tny_mime_part_view_info); 
    284284 
    285285        } 
  • trunk/libtinymailui-mozembed/tny-moz-embed-html-mime-part-view.c

    r984 r991  
    225225 
    226226static void 
    227 tny_moz_embed_html_mime_part_view_init (gpointer g, gpointer iface_data) 
     227tny_mime_part_view_init (gpointer g, gpointer iface_data) 
    228228{ 
    229229        TnyMimePartViewIface *klass = (TnyMimePartViewIface *)g; 
     
    232232        klass->set_save_strategy_func = tny_moz_embed_html_mime_part_view_set_save_strategy; 
    233233        klass->clear_func = tny_moz_embed_html_mime_part_view_clear; 
    234          
     234 
    235235        return; 
    236236} 
     
    272272                }; 
    273273 
    274                 static const GInterfaceInfo tny_moz_embed_html_mime_part_view_info =  
     274                static const GInterfaceInfo tny_mime_part_view_info =  
    275275                { 
    276                   (GInterfaceInitFunc) tny_moz_embed_html_mime_part_view_init, /* interface_init */ 
     276                  (GInterfaceInitFunc) tny_mime_part_view_init, /* interface_init */ 
    277277                  NULL,         /* interface_finalize */ 
    278278                  NULL          /* interface_data */