diff options
-rw-r--r-- | addressbook/ChangeLog | 19 | ||||
-rw-r--r-- | addressbook/backend/ebook/e-destination.c | 21 | ||||
-rw-r--r-- | addressbook/gui/widgets/e-addressbook-view.c | 2 | ||||
-rw-r--r-- | addressbook/printing/e-contact-print.c | 28 |
4 files changed, 58 insertions, 12 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index f58d868d42..570898d961 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,11 +1,26 @@ +2001-10-20 Jon Trowbridge <trow@ximian.com> + + * backend/ebook/e-destination.c (e_destination_importv): Filter + out empty destinations. (also Bug #13036) + + * printing/e-contact-print.c (e_contact_build_style): Use + gnome_font_new_closest; if gnome_font_new fails and returns NULL, + our spacing gets all messed up. (Bug #10785) + + * gui/widgets/e-addressbook-view.c (e_addressbook_view_can_print): + Allow printing if there are any cards in our view. The selection + has nothing to do with it. + + * backend/ebook/e-destination.c (e_destination_is_empty): Check + for strings that contain non-whitespace, rather than just looking + for a non-zero first character. (Bug #13036) + 2001-10-20 Christopher James Lahey <clahey@ximian.com> * gui/widgets/e-minicard-view.c (e_minicard_view_selection_event): Handle focus_change in event by selecting that contact. Fixes Ximian bug #3024. -2001-10-20 Christopher James Lahey <clahey@ximian.com> - * gui/component/addressbook-component.c (owner_unset_cb): Repeatedly call gtk_main_quit here as long as there is a main loop around. This is an ugly hack around Ximian bug #11760. diff --git a/addressbook/backend/ebook/e-destination.c b/addressbook/backend/ebook/e-destination.c index 155322fec2..ff674e41a6 100644 --- a/addressbook/backend/ebook/e-destination.c +++ b/addressbook/backend/ebook/e-destination.c @@ -314,6 +314,17 @@ e_destination_clear (EDestination *dest) e_destination_thaw (dest); } +static gboolean +nonempty (const gchar *s) +{ + while (s) { + if (! isspace ((gint) *s)) + return TRUE; + ++s; + } + return FALSE; +} + gboolean e_destination_is_empty (const EDestination *dest) { @@ -324,10 +335,10 @@ e_destination_is_empty (const EDestination *dest) return !(p->card != NULL || (p->book_uri && *p->book_uri) || (p->card_uid && *p->card_uid) - || (p->raw && *p->raw) - || (p->name && *p->name) - || (p->email && *p->email) - || (p->addr && *p->addr) + || (p->raw && nonempty (p->raw)) + || (p->name && nonempty (p->name)) + || (p->email && nonempty (p->email)) + || (p->addr && nonempty (p->addr)) || (p->list_dests != NULL)); } @@ -1539,7 +1550,7 @@ e_destination_importv (const gchar *str) EDestination *dest; dest = e_destination_new (); - if (e_destination_xml_decode (dest, node)) { + if (e_destination_xml_decode (dest, node) && !e_destination_is_empty (dest)) { g_ptr_array_add (dest_array, dest); } else { gtk_object_unref (GTK_OBJECT (dest)); diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c index 3280619f13..5142d99f2d 100644 --- a/addressbook/gui/widgets/e-addressbook-view.c +++ b/addressbook/gui/widgets/e-addressbook-view.c @@ -1521,7 +1521,7 @@ e_addressbook_view_can_create (EAddressbookView *view) gboolean e_addressbook_view_can_print (EAddressbookView *view) { - return view ? e_addressbook_view_selection_nonempty (view) : FALSE; + return view && view->model ? e_addressbook_model_card_count (view->model) : FALSE; } gboolean diff --git a/addressbook/printing/e-contact-print.c b/addressbook/printing/e-contact-print.c index c4118e0dbf..18e5922854 100644 --- a/addressbook/printing/e-contact-print.c +++ b/addressbook/printing/e-contact-print.c @@ -44,6 +44,7 @@ #include <addressbook/backend/ebook/e-book.h> #include <addressbook/backend/ebook/e-card.h> #include <addressbook/backend/ebook/e-card-simple.h> +#include <addressbook/backend/ebook/e-destination.h> #define SCALE 5 #define HYPHEN_PIXELS 20 @@ -438,6 +439,8 @@ e_contact_get_card_size(ECardSimple *simple, EContactPrintContext *ctxt) g_free(string); } height += gnome_font_get_size (ctxt->style->headings_font) * .4; + + g_message ("%s %g", e_card_simple_get (simple, E_CARD_SIMPLE_FIELD_FILE_AS), height); return height; } @@ -474,6 +477,17 @@ e_contact_print_card (ECardSimple *simple, EContactPrintContext *ctxt) for(field = E_CARD_SIMPLE_FIELD_FULL_NAME; field != E_CARD_SIMPLE_FIELD_LAST_SIMPLE_STRING; field++) { char *string; string = e_card_simple_get(simple, field); + + if (!strncmp (string, "<?xml", 4)) { + EDestination *dest = e_destination_import (string); + if (dest != NULL) { + gchar *new_string = g_strdup (e_destination_get_address (dest)); + g_free (string); + string = new_string; + gtk_object_unref (GTK_OBJECT (dest)); + } + } + if (string && *string) { double xoff = 0; e_contact_output(ctxt->pc, ctxt->style->body_font, ctxt->x + xoff, ctxt->y, -1, e_card_simple_get_name(simple, field)); @@ -859,8 +873,10 @@ e_contact_build_style(EContactPrintStyle *style) style->blank_forms = 2; style->letter_tabs = TRUE; style->letter_headings = FALSE; - style->headings_font = gnome_font_new("Helvetica-Bold", 8); - style->body_font = gnome_font_new("Helvetica", 6); + + style->headings_font = gnome_font_new_closest("Helvetica", GNOME_FONT_BOLD, FALSE, 8); + style->body_font = gnome_font_new_closest("Helvetica", GNOME_FONT_BOOK, FALSE, 6); + style->print_using_grey = TRUE; style->paper_type = 0; style->paper_width = 8.5; @@ -882,11 +898,15 @@ e_contact_build_style(EContactPrintStyle *style) style->page_height = 8.5; #endif style->orientation_portrait = FALSE; - style->header_font = gnome_font_new("Helvetica", 6); + + style->header_font = gnome_font_new_closest("Helvetica", GNOME_FONT_BOOK, FALSE, 6); + style->left_header = g_strdup(""); style->center_header = g_strdup(""); style->right_header = g_strdup(""); - style->footer_font = gnome_font_new("Helvetica", 6); + + style->footer_font = gnome_font_new_closest("Helvetica", GNOME_FONT_BOOK, FALSE, 6); + style->left_footer = g_strdup(""); style->center_footer = g_strdup(""); style->right_footer = g_strdup(""); |