Changeset 1297
- Timestamp:
- 12/04/06 22:06:45
- Files:
-
- trunk/configure.ac (modified) (8 diffs)
- trunk/libtinymailui-gtk/tny-gtk-msg-view.c (modified) (16 diffs)
- trunk/libtinymailui-gtk/tny-gtk-msg-view.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/configure.ac
r1260 r1297 256 256 257 257 dnl ### libtinymail, the abstraction library ## 258 PKG_CHECK_MODULES(LIBTINYMAIL, glib-2.0 >= 2. 6gobject-2.0)258 PKG_CHECK_MODULES(LIBTINYMAIL, glib-2.0 >= 2.8 gobject-2.0) 259 259 AC_SUBST(LIBTINYMAIL_CFLAGS) 260 260 AC_SUBST(LIBTINYMAIL_LIBS) 261 261 262 262 dnl ### libtinymailui, the ui abstraction library ## 263 PKG_CHECK_MODULES(LIBTINYMAILUI, glib-2.0 >= 2. 6gobject-2.0)263 PKG_CHECK_MODULES(LIBTINYMAILUI, glib-2.0 >= 2.8 gobject-2.0) 264 264 AC_SUBST(LIBTINYMAILUI_CFLAGS) 265 265 AC_SUBST(LIBTINYMAILUI_LIBS) 266 266 267 267 dnl ### libtinymail-camel, a camel implementation of libtinymail ## 268 PKG_CHECK_MODULES(LIBTINYMAIL_CAMEL, glib-2.0 >= 2. 6gobject-2.0)268 PKG_CHECK_MODULES(LIBTINYMAIL_CAMEL, glib-2.0 >= 2.8 gobject-2.0) 269 269 AC_SUBST(LIBTINYMAIL_CAMEL_CFLAGS) 270 270 AC_SUBST(LIBTINYMAIL_CAMEL_LIBS) … … 274 274 extragtkpkgs="libgnomeui-2.0 gnome-keyring-1" 275 275 extratnypkgs="gnome-vfs-2.0" 276 PKG_CHECK_MODULES(LIBTINYMAIL_GNOMEVFS, glib-2.0 >= 2. 6gobject-2.0 gnome-vfs-2.0)276 PKG_CHECK_MODULES(LIBTINYMAIL_GNOMEVFS, glib-2.0 >= 2.8 gobject-2.0 gnome-vfs-2.0) 277 277 else 278 278 LIBTINYMAIL_GNOMEVFS_CFLAGS= … … 285 285 286 286 dnl ### libtinymailui-gtk, a gtk+ implementation of libtinymail-ui ## 287 PKG_CHECK_MODULES(LIBTINYMAILUI_GTK, glib-2.0 >= 2. 6gobject-2.0 $extragtkpkgs gtk+-2.0)287 PKG_CHECK_MODULES(LIBTINYMAILUI_GTK, glib-2.0 >= 2.8 gobject-2.0 $extragtkpkgs gtk+-2.0) 288 288 AC_SUBST(LIBTINYMAILUI_GTK_CFLAGS) 289 289 AC_SUBST(LIBTINYMAILUI_GTK_LIBS) … … 294 294 extraplatpkgs="$mozilla_nspr $mozilla_nss $mozilla_xpcom $mozilla_gtkmozembed" 295 295 extratnypkgs="$extratnypkgs $extraplatpkgs" 296 PKG_CHECK_MODULES(LIBTINYMAILUI_MOZEMBED, $extraplatpkgs glib-2.0 >= 2. 6gobject-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) 297 297 else 298 298 LIBTINYMAILUI_MOZEMBED_CFLAGS= … … 302 302 dnl ### libtinymail-gnome-desktop, a GNOME platform library implementation ## 303 303 if test x$PLATFORMDIR = xlibtinymail-gnome-desktop; then 304 PKG_CHECK_MODULES(LIBTINYMAIL_GNOME_DESKTOP, gconf-2.0 $extraplatpkgs libnm_glib glib-2.0 >= 2. 6gobject-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) 305 305 else 306 306 LIBTINYMAIL_GNOME_DESKTOP_CFLAGS= … … 348 348 dnl ### libtinymail-test, a library for testing purposes ## 349 349 if test x$build_unittests = xtrue; then 350 PKG_CHECK_MODULES(LIBTINYMAIL_TEST, gunit gtk+-2.0 glib-2.0 >= 2. 6gobject-2.0 $extratnypkgs)350 PKG_CHECK_MODULES(LIBTINYMAIL_TEST, gunit gtk+-2.0 glib-2.0 >= 2.8 gobject-2.0 $extratnypkgs) 351 351 else 352 352 LIBTINYMAIL_TEST_CFLAGS= … … 358 358 dnl ### libtinymail-api-test, a library for testing API/ABI compatibility ## 359 359 if test x$build_apitests = xtrue; then 360 PKG_CHECK_MODULES(LIBTINYMAIL_API_TEST, gunit glib-2.0 >= 2. 6gobject-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) 361 361 else 362 362 LIBTINYMAIL_API_TEST_CFLAGS= … … 367 367 368 368 dnl ### tinymail, the demo-ui ## 369 PKG_CHECK_MODULES(TINYMAIL, glib-2.0 >= 2. 6gobject-2.0 gtk+-2.0 $extratnypkgs)369 PKG_CHECK_MODULES(TINYMAIL, glib-2.0 >= 2.8 gobject-2.0 gtk+-2.0 $extratnypkgs) 370 370 AC_SUBST(TINYMAIL_CFLAGS) 371 371 AC_SUBST(TINYMAIL_LIBS) trunk/libtinymailui-gtk/tny-gtk-msg-view.c
r1296 r1297 66 66 GtkWidget *attachview_sw; 67 67 GList *unattached_views; 68 gboolean display_one_body;69 68 gboolean display_html; 70 69 gboolean display_plain; … … 72 71 gboolean display_rfc822; 73 72 gboolean first_attachment; 74 TnyMimePartView *text_body_viewer;75 73 GtkBox *kid; gboolean in_expander; 76 74 }; … … 86 84 87 85 88 static void tny_gtk_msg_view_display_parts (TnyMsgView *self, TnyList *parts );86 static void tny_gtk_msg_view_display_parts (TnyMsgView *self, TnyList *parts, gboolean alternatives); 89 87 static 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 } 88 static gboolean tny_gtk_msg_view_display_part (TnyMsgView *self, TnyMimePart *part); 89 104 90 105 91 /** … … 155 141 } 156 142 157 158 159 /**160 * tny_gtk_msg_view_set_display_one_body:161 * @self: A #TnyGtkMsgView instance162 * @setting: whether or not to display only one text/html or only one text/plain mime part163 *164 * With this setting will the default implementation of #TnyGtkMsgView display165 * 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 overridden168 * implementation of tny_msg_view_create_mime_part_view_for doesn't handle169 * creating a viewer for a mime part.170 *171 * So for example in case a more advanced implementation that inherits this172 * type implements viewing a text/html mime part, and will therefore not call173 * this types original tny_msg_view_create_mime_part_view_for method for the174 * mime part anymore, the setting isn't used.175 **/176 void177 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 }183 143 184 144 /** … … 445 405 TnyList *list = tny_simple_list_new (); 446 406 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 459 407 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); 461 409 g_object_unref (G_OBJECT (list)); 462 410 } else { … … 467 415 TnyList *list = tny_simple_list_new (); 468 416 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")); 470 419 g_object_unref (G_OBJECT (list)); 471 420 … … 493 442 * This is non-public API documentation 494 443 * 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. 500 445 * 501 446 * The method will use the tny_msg_view_create_mime_part_view_for on self to get … … 509 454 * will that list be unreferenced. 510 455 **/ 511 static void456 static gboolean 512 457 tny_gtk_msg_view_display_part (TnyMsgView *self, TnyMimePart *part) 513 458 { … … 516 461 gboolean doit = TRUE; 517 462 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); 539 464 540 465 if (mpview) … … 590 515 g_warning (_("I don't have a mime part viewer for %s\n"), 591 516 tny_mime_part_get_content_type (part)); 517 518 return FALSE; 592 519 } 593 520 521 return TRUE; 594 522 } 595 523 … … 605 533 **/ 606 534 static void 607 tny_gtk_msg_view_display_parts (TnyMsgView *self, TnyList *parts )535 tny_gtk_msg_view_display_parts (TnyMsgView *self, TnyList *parts, gboolean alternatives) 608 536 { 609 537 TnyIterator *iterator = tny_list_create_iterator (parts); … … 612 540 { 613 541 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 615 544 g_object_unref (G_OBJECT (part)); 545 if (alternatives && displayed) 546 break; 616 547 tny_iterator_next (iterator); 617 548 } … … 668 599 GList *kids = gtk_container_get_children (viewers); 669 600 670 priv->text_body_viewer = NULL;671 601 g_list_foreach (kids, (GFunc)remove_mime_part_viewer, viewers); 672 602 g_list_free (kids); … … 728 658 if (!tny_mime_part_content_type_is (part, "multipart/*")) 729 659 tny_gtk_msg_view_display_part (TNY_MSG_VIEW (self), part); 730 else 660 else 731 661 { 732 662 TnyIterator *iterator; … … 735 665 736 666 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")); 739 669 g_object_unref (G_OBJECT (list)); 740 670 } … … 796 726 priv->display_attachments = TRUE; 797 727 priv->display_rfc822 = TRUE; 798 priv->display_one_body = FALSE;799 priv->text_body_viewer = NULL;800 728 priv->first_attachment = TRUE; 801 729 priv->unattached_views = NULL; trunk/libtinymailui-gtk/tny-gtk-msg-view.h
r1276 r1297 71 71 void tny_gtk_msg_view_set_display_attachments (TnyGtkMsgView *self, gboolean setting); 72 72 void 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);74 73 75 74 gboolean tny_gtk_msg_view_get_display_html (TnyGtkMsgView *self); … … 77 76 gboolean tny_gtk_msg_view_get_display_attachments (TnyGtkMsgView *self); 78 77 gboolean tny_gtk_msg_view_get_display_plain (TnyGtkMsgView *self); 79 gboolean tny_gtk_msg_view_get_display_one_body (TnyGtkMsgView *self);80 78 81 79 G_END_DECLS
