Changeset 1297

Show
Ignore:
Timestamp:
12/04/06 22:06:45
Author:
pvanhoof
Message:

Some fixes

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/configure.ac

    r1260 r1297  
    256256 
    257257dnl ### libtinymail, the abstraction library ## 
    258 PKG_CHECK_MODULES(LIBTINYMAIL, glib-2.0 >= 2.6 gobject-2.0) 
     258PKG_CHECK_MODULES(LIBTINYMAIL, glib-2.0 >= 2.8 gobject-2.0) 
    259259AC_SUBST(LIBTINYMAIL_CFLAGS) 
    260260AC_SUBST(LIBTINYMAIL_LIBS) 
    261261 
    262262dnl ### libtinymailui, the ui abstraction library ## 
    263 PKG_CHECK_MODULES(LIBTINYMAILUI, glib-2.0 >= 2.6 gobject-2.0) 
     263PKG_CHECK_MODULES(LIBTINYMAILUI, glib-2.0 >= 2.8 gobject-2.0) 
    264264AC_SUBST(LIBTINYMAILUI_CFLAGS) 
    265265AC_SUBST(LIBTINYMAILUI_LIBS) 
    266266 
    267267dnl ### libtinymail-camel, a camel implementation of libtinymail ## 
    268 PKG_CHECK_MODULES(LIBTINYMAIL_CAMEL, glib-2.0 >= 2.6 gobject-2.0) 
     268PKG_CHECK_MODULES(LIBTINYMAIL_CAMEL, glib-2.0 >= 2.8 gobject-2.0) 
    269269AC_SUBST(LIBTINYMAIL_CAMEL_CFLAGS) 
    270270AC_SUBST(LIBTINYMAIL_CAMEL_LIBS) 
     
    274274extragtkpkgs="libgnomeui-2.0 gnome-keyring-1" 
    275275extratnypkgs="gnome-vfs-2.0" 
    276   PKG_CHECK_MODULES(LIBTINYMAIL_GNOMEVFS, glib-2.0 >= 2.6 gobject-2.0 gnome-vfs-2.0) 
     276  PKG_CHECK_MODULES(LIBTINYMAIL_GNOMEVFS, glib-2.0 >= 2.8 gobject-2.0 gnome-vfs-2.0) 
    277277else 
    278278  LIBTINYMAIL_GNOMEVFS_CFLAGS= 
     
    285285 
    286286dnl ### libtinymailui-gtk, a gtk+ implementation of libtinymail-ui ## 
    287 PKG_CHECK_MODULES(LIBTINYMAILUI_GTK, glib-2.0 >= 2.6 gobject-2.0 $extragtkpkgs gtk+-2.0) 
     287PKG_CHECK_MODULES(LIBTINYMAILUI_GTK, glib-2.0 >= 2.8 gobject-2.0 $extragtkpkgs gtk+-2.0) 
    288288AC_SUBST(LIBTINYMAILUI_GTK_CFLAGS) 
    289289AC_SUBST(LIBTINYMAILUI_GTK_LIBS) 
     
    294294  extraplatpkgs="$mozilla_nspr $mozilla_nss $mozilla_xpcom $mozilla_gtkmozembed" 
    295295  extratnypkgs="$extratnypkgs $extraplatpkgs" 
    296   PKG_CHECK_MODULES(LIBTINYMAILUI_MOZEMBED, $extraplatpkgs glib-2.0 >= 2.6 gobject-2.0 gtk+-2.0 $extragtkpkgs) 
     296  PKG_CHECK_MODULES(LIBTINYMAILUI_MOZEMBED, $extraplatpkgs glib-2.0 >= 2.8 gobject-2.0 gtk+-2.0 $extragtkpkgs) 
    297297else 
    298298  LIBTINYMAILUI_MOZEMBED_CFLAGS= 
     
    302302dnl ### libtinymail-gnome-desktop, a GNOME platform library implementation ## 
    303303if test x$PLATFORMDIR = xlibtinymail-gnome-desktop; then 
    304   PKG_CHECK_MODULES(LIBTINYMAIL_GNOME_DESKTOP, gconf-2.0 $extraplatpkgs libnm_glib glib-2.0 >= 2.6 gobject-2.0 gtk+-2.0 $extragtkpkgs) 
     304  PKG_CHECK_MODULES(LIBTINYMAIL_GNOME_DESKTOP, gconf-2.0 $extraplatpkgs libnm_glib glib-2.0 >= 2.8 gobject-2.0 gtk+-2.0 $extragtkpkgs) 
    305305else 
    306306  LIBTINYMAIL_GNOME_DESKTOP_CFLAGS= 
     
    348348dnl ### libtinymail-test, a library for testing purposes ## 
    349349if test x$build_unittests = xtrue; then 
    350   PKG_CHECK_MODULES(LIBTINYMAIL_TEST, gunit gtk+-2.0 glib-2.0 >= 2.6 gobject-2.0 $extratnypkgs) 
     350  PKG_CHECK_MODULES(LIBTINYMAIL_TEST, gunit gtk+-2.0 glib-2.0 >= 2.8 gobject-2.0 $extratnypkgs) 
    351351else 
    352352  LIBTINYMAIL_TEST_CFLAGS= 
     
    358358dnl ### libtinymail-api-test, a library for testing API/ABI compatibility ## 
    359359if test x$build_apitests = xtrue; then 
    360   PKG_CHECK_MODULES(LIBTINYMAIL_API_TEST, gunit glib-2.0 >= 2.6 gobject-2.0 libtinymail-$API_VERSION libtinymail-camel-$API_VERSION libtinymailui-gtk-$API_VERSION camel-lite-1.2) 
     360  PKG_CHECK_MODULES(LIBTINYMAIL_API_TEST, gunit glib-2.0 >= 2.8 gobject-2.0 libtinymail-$API_VERSION libtinymail-camel-$API_VERSION libtinymailui-gtk-$API_VERSION camel-lite-1.2) 
    361361else 
    362362  LIBTINYMAIL_API_TEST_CFLAGS= 
     
    367367 
    368368dnl ### tinymail, the demo-ui ## 
    369 PKG_CHECK_MODULES(TINYMAIL, glib-2.0 >= 2.6 gobject-2.0 gtk+-2.0 $extratnypkgs) 
     369PKG_CHECK_MODULES(TINYMAIL, glib-2.0 >= 2.8 gobject-2.0 gtk+-2.0 $extratnypkgs) 
    370370AC_SUBST(TINYMAIL_CFLAGS) 
    371371AC_SUBST(TINYMAIL_LIBS) 
  • trunk/libtinymailui-gtk/tny-gtk-msg-view.c

    r1296 r1297  
    6666        GtkWidget *attachview_sw; 
    6767        GList *unattached_views; 
    68         gboolean display_one_body; 
    6968        gboolean display_html; 
    7069        gboolean display_plain; 
     
    7271        gboolean display_rfc822; 
    7372        gboolean first_attachment; 
    74         TnyMimePartView *text_body_viewer; 
    7573        GtkBox *kid; gboolean in_expander; 
    7674}; 
     
    8684 
    8785 
    88 static void tny_gtk_msg_view_display_parts (TnyMsgView *self, TnyList *parts); 
     86static void tny_gtk_msg_view_display_parts (TnyMsgView *self, TnyList *parts, gboolean alternatives); 
    8987static void remove_mime_part_viewer (TnyMimePartView *mpview, GtkContainer *mpviewers); 
    90 static void tny_gtk_msg_view_display_part (TnyMsgView *self, TnyMimePart *part); 
    91  
    92 /** 
    93  * tny_gtk_msg_view_get_display_one_body: 
    94  * @self: A #TnyGtkMsgView instance 
    95  * 
    96  * Return value: whether or not to display only one text/html or only one text/plain mime part 
    97  **/ 
    98 gboolean  
    99 tny_gtk_msg_view_get_display_one_body (TnyGtkMsgView *self) 
    100 
    101         TnyGtkMsgViewPriv *priv = TNY_GTK_MSG_VIEW_GET_PRIVATE (self); 
    102         return priv->display_one_body; 
    103 
     88static gboolean tny_gtk_msg_view_display_part (TnyMsgView *self, TnyMimePart *part); 
     89 
    10490 
    10591/** 
     
    155141} 
    156142 
    157  
    158  
    159 /** 
    160  * tny_gtk_msg_view_set_display_one_body: 
    161  * @self: A #TnyGtkMsgView instance 
    162  * @setting: whether or not to display only one text/html or only one text/plain mime part 
    163  * 
    164  * With this setting will the default implementation of #TnyGtkMsgView display 
    165  * only one text/html or only one text/plain mime part. Default value is FALSE. 
    166  * 
    167  * Note that these settings only affect the instance in case an overridden 
    168  * implementation of tny_msg_view_create_mime_part_view_for doesn't handle 
    169  * creating a viewer for a mime part. 
    170  *  
    171  * So for example in case a more advanced implementation that inherits this 
    172  * type implements viewing a text/html mime part, and will therefore not call 
    173  * this types original tny_msg_view_create_mime_part_view_for method for the 
    174  * mime part anymore, the setting isn't used. 
    175  **/ 
    176 void  
    177 tny_gtk_msg_view_set_display_one_body (TnyGtkMsgView *self, gboolean setting) 
    178 { 
    179         TnyGtkMsgViewPriv *priv = TNY_GTK_MSG_VIEW_GET_PRIVATE (self); 
    180         priv->display_one_body = setting; 
    181         return; 
    182 } 
    183143 
    184144/** 
     
    445405                                TnyList *list = tny_simple_list_new (); 
    446406 
    447                                 /* if (TNY_IS_MSG (part) && TNY_IS_GTK_MSG_VIEW (mpview)) 
    448                                 { 
    449                                         TnyGtkMsgViewPriv *mppriv = TNY_GTK_MSG_VIEW_GET_PRIVATE (mpview); 
    450                                         TnyHeader *header = (TnyHeader *) tny_msg_get_header (TNY_MSG (part)); 
    451                                         if (header && TNY_IS_HEADER (header)) 
    452                                         { 
    453                                                 tny_header_view_set_header (mppriv->headerview, header); 
    454                                                 g_object_unref (G_OBJECT (header)); 
    455                                                 gtk_widget_show (GTK_WIDGET (mppriv->headerview)); 
    456                                         } 
    457                                 } */ 
    458  
    459407                                tny_mime_part_get_parts (part, list); 
    460                                 tny_gtk_msg_view_display_parts (TNY_MSG_VIEW (mpview), list); 
     408                                tny_gtk_msg_view_display_parts (TNY_MSG_VIEW (mpview), list, FALSE); 
    461409                                g_object_unref (G_OBJECT (list)); 
    462410                        } else { 
     
    467415                        TnyList *list = tny_simple_list_new (); 
    468416                        tny_mime_part_get_parts (part, list); 
    469                         tny_gtk_msg_view_display_parts (TNY_MSG_VIEW (mpview), list); 
     417                        tny_gtk_msg_view_display_parts (TNY_MSG_VIEW (mpview), list,  
     418                                tny_mime_part_content_type_is (part, "multipart/alternative")); 
    470419                        g_object_unref (G_OBJECT (list)); 
    471420 
     
    493442 * This is non-public API documentation 
    494443 *  
    495  * This method will display one mime part. In case display_one_body is enabled, 
    496  * and there was already a body viewer created and this mime part is also a  
    497  * text/plain or text/html, then it will discard the request or replace the  
    498  * current one with this new one (in case it's a more enhanced viewer like a 
    499  * HTML capable one). 
     444 * This method will display one mime part.  
    500445 * 
    501446 * The method will use the tny_msg_view_create_mime_part_view_for on self to get 
     
    509454 * will that list be unreferenced. 
    510455 **/ 
    511 static void 
     456static gboolean 
    512457tny_gtk_msg_view_display_part (TnyMsgView *self, TnyMimePart *part) 
    513458{ 
     
    516461        gboolean doit = TRUE; 
    517462 
    518         if (priv->display_one_body) 
    519         { 
    520                 if (priv->text_body_viewer && tny_mime_part_content_type_is (part, "text/plain")) 
    521                         return; 
    522  
    523                 mpview = tny_msg_view_create_mime_part_view_for (TNY_MSG_VIEW (self), part); 
    524                 if (tny_mime_part_content_type_is (part, "text/html") && 
    525                         !TNY_IS_GTK_TEXT_MIME_PART_VIEW (mpview)) 
    526                 {    
    527                          
    528                         if (priv->text_body_viewer) 
    529                         { 
    530                                 GtkContainer *viewers = GTK_CONTAINER (TNY_GTK_MSG_VIEW (self)->viewers); 
    531                                 remove_mime_part_viewer (priv->text_body_viewer, viewers); 
    532                         } 
    533                         priv->text_body_viewer = mpview; 
    534                 } 
    535         } 
    536  
    537         if (!mpview) 
    538                 mpview = tny_msg_view_create_mime_part_view_for (TNY_MSG_VIEW (self), part); 
     463        mpview = tny_msg_view_create_mime_part_view_for (TNY_MSG_VIEW (self), part); 
    539464 
    540465        if (mpview)  
     
    590515                g_warning (_("I don't have a mime part viewer for %s\n"), 
    591516                        tny_mime_part_get_content_type (part)); 
     517 
     518                return FALSE; 
    592519        } 
    593520 
     521        return TRUE; 
    594522} 
    595523 
     
    605533 **/ 
    606534static void 
    607 tny_gtk_msg_view_display_parts (TnyMsgView *self, TnyList *parts
     535tny_gtk_msg_view_display_parts (TnyMsgView *self, TnyList *parts, gboolean alternatives
    608536{ 
    609537        TnyIterator *iterator = tny_list_create_iterator (parts); 
     
    612540        { 
    613541                TnyMimePart *part = (TnyMimePart*)tny_iterator_get_current (iterator); 
    614                 tny_gtk_msg_view_display_part (self, part); 
     542                gboolean displayed = tny_gtk_msg_view_display_part (self, part); 
     543 
    615544                g_object_unref (G_OBJECT (part)); 
     545                if (alternatives && displayed) 
     546                        break; 
    616547                tny_iterator_next (iterator); 
    617548        } 
     
    668599        GList *kids = gtk_container_get_children (viewers); 
    669600 
    670         priv->text_body_viewer = NULL; 
    671601        g_list_foreach (kids, (GFunc)remove_mime_part_viewer, viewers); 
    672602        g_list_free (kids); 
     
    728658                if (!tny_mime_part_content_type_is (part, "multipart/*")) 
    729659                        tny_gtk_msg_view_display_part (TNY_MSG_VIEW (self), part); 
    730                 else  
     660                else 
    731661                { 
    732662                        TnyIterator *iterator; 
     
    735665 
    736666                        tny_mime_part_get_parts (part, list); 
    737                         tny_gtk_msg_view_display_parts (TNY_MSG_VIEW (self), list); 
    738                  
     667                        tny_gtk_msg_view_display_parts (TNY_MSG_VIEW (self), list,  
     668                               tny_mime_part_content_type_is (part, "multipart/alternative")); 
    739669                        g_object_unref (G_OBJECT (list)); 
    740670                } 
     
    796726        priv->display_attachments = TRUE; 
    797727        priv->display_rfc822 = TRUE; 
    798         priv->display_one_body = FALSE; 
    799         priv->text_body_viewer = NULL; 
    800728        priv->first_attachment = TRUE; 
    801729        priv->unattached_views = NULL; 
  • trunk/libtinymailui-gtk/tny-gtk-msg-view.h

    r1276 r1297  
    7171void tny_gtk_msg_view_set_display_attachments (TnyGtkMsgView *self, gboolean setting); 
    7272void tny_gtk_msg_view_set_display_plain (TnyGtkMsgView *self, gboolean setting); 
    73 void tny_gtk_msg_view_set_display_one_body (TnyGtkMsgView *self, gboolean setting); 
    7473 
    7574gboolean tny_gtk_msg_view_get_display_html (TnyGtkMsgView *self); 
     
    7776gboolean tny_gtk_msg_view_get_display_attachments (TnyGtkMsgView *self); 
    7877gboolean tny_gtk_msg_view_get_display_plain (TnyGtkMsgView *self); 
    79 gboolean tny_gtk_msg_view_get_display_one_body (TnyGtkMsgView *self); 
    8078 
    8179G_END_DECLS