From 465efaf4dd120b2b43ae3e593bc11c8364f36ec1 Mon Sep 17 00:00:00 2001 From: Christopher James Lahey Date: Thu, 27 Apr 2000 17:09:20 +0000 Subject: Added addressbook/ename/Makefile. 2000-04-27 Christopher James Lahey * configure.in: Added addressbook/ename/Makefile. From addressbook/ChangeLog: 2000-04-27 Christopher James Lahey * backend/ebook/e-card.c, backend/ebook/e-card.h: Added file as, office, manager, assistant, spouse, and anniversary fields. These all use "X-EVOLUTION-" fields in the VCards. * backend/pas/pas-backend-file.c: Added all the new fields (except anniversary) to the list of fields. * contact-editor/contact-editor.glade, contact-editor/e-contact-editor-strings.h: Fixed some misnamed fields and fixed the placement of the comments field. * contact-editor/e-contact-editor.c: Made the newly added fields display properly. * Makefile.am: Added ename. * ename/e-name-western.h, ename/test-ename-western-gtk.c, ename/test-ename-western.c: Fixed up some #includes. * ename/.cvsignore: Added .cvsignore. svn path=/trunk/; revision=2658 --- addressbook/ChangeLog | 23 ++ addressbook/Makefile.am | 2 +- addressbook/backend/ebook/e-card.c | 233 +++++++++++++++---- addressbook/backend/ebook/e-card.h | 8 + addressbook/backend/pas/pas-backend-file.c | 5 + addressbook/contact-editor/contact-editor.glade | 249 +++++++++++---------- .../contact-editor/e-contact-editor-strings.h | 2 +- addressbook/contact-editor/e-contact-editor.c | 118 ++++++++++ addressbook/ename/.cvsignore | 8 + addressbook/ename/e-name-western.h | 2 - addressbook/ename/test-ename-western-gtk.c | 2 +- addressbook/ename/test-ename-western.c | 2 +- .../gui/contact-editor/contact-editor.glade | 249 +++++++++++---------- .../gui/contact-editor/e-contact-editor-strings.h | 2 +- addressbook/gui/contact-editor/e-contact-editor.c | 118 ++++++++++ 15 files changed, 735 insertions(+), 288 deletions(-) create mode 100644 addressbook/ename/.cvsignore (limited to 'addressbook') diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index 859932ff81..9d84cc1100 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,26 @@ +2000-04-27 Christopher James Lahey + + * backend/ebook/e-card.c, backend/ebook/e-card.h: Added file as, + office, manager, assistant, spouse, and anniversary fields. These + all use "X-EVOLUTION-" fields in the VCards. + + * backend/pas/pas-backend-file.c: Added all the new fields (except + anniversary) to the list of fields. + + * contact-editor/contact-editor.glade, + contact-editor/e-contact-editor-strings.h: Fixed some misnamed + fields and fixed the placement of the comments field. + + * contact-editor/e-contact-editor.c: Made the newly added fields + display properly. + + * Makefile.am: Added ename. + + * ename/e-name-western.h, ename/test-ename-western-gtk.c, + ename/test-ename-western.c: Fixed up some #includes. + + * ename/.cvsignore: Added .cvsignore. + 2000-04-26 Christopher James Lahey * backend/ebook/e-card-types.h, backend/ebook/e-card.c, diff --git a/addressbook/Makefile.am b/addressbook/Makefile.am index 22f0922618..d3201e1741 100644 --- a/addressbook/Makefile.am +++ b/addressbook/Makefile.am @@ -1,2 +1,2 @@ SUBDIRS = \ - backend contact-editor gui printing + backend ename contact-editor gui printing diff --git a/addressbook/backend/ebook/e-card.c b/addressbook/backend/ebook/e-card.c index 8c7139da79..1b27ed164e 100644 --- a/addressbook/backend/ebook/e-card.c +++ b/addressbook/backend/ebook/e-card.c @@ -25,6 +25,7 @@ /* Object argument IDs */ enum { ARG_0, + ARG_FILE_AS, ARG_FULL_NAME, ARG_NAME, ARG_ADDRESS, @@ -35,9 +36,14 @@ enum { ARG_URL, ARG_ORG, ARG_ORG_UNIT, + ARG_OFFICE, ARG_TITLE, ARG_ROLE, + ARG_MANAGER, + ARG_ASSISTANT, ARG_NICKNAME, + ARG_SPOUSE, + ARG_ANNIVERSARY, ARG_FBURL, ARG_NOTE, ARG_ID @@ -62,6 +68,7 @@ static ECardDate e_card_date_from_string (char *str); static void parse_bday(ECard *card, VObject *object); static void parse_full_name(ECard *card, VObject *object); +static void parse_file_as(ECard *card, VObject *object); static void parse_name(ECard *card, VObject *object); static void parse_email(ECard *card, VObject *object); static void parse_phone(ECard *card, VObject *object); @@ -69,9 +76,14 @@ static void parse_address(ECard *card, VObject *object); static void parse_address_label(ECard *card, VObject *object); static void parse_url(ECard *card, VObject *object); static void parse_org(ECard *card, VObject *object); +static void parse_office(ECard *card, VObject *object); static void parse_title(ECard *card, VObject *object); static void parse_role(ECard *card, VObject *object); +static void parse_manager(ECard *card, VObject *object); +static void parse_assistant(ECard *card, VObject *object); static void parse_nickname(ECard *card, VObject *object); +static void parse_spouse(ECard *card, VObject *object); +static void parse_anniversary(ECard *card, VObject *object); static void parse_fburl(ECard *card, VObject *object); static void parse_note(ECard *card, VObject *object); static void parse_id(ECard *card, VObject *object); @@ -88,21 +100,27 @@ struct { ParsePropertyFunc function; } attribute_jump_array[] = { - { VCFullNameProp, parse_full_name }, - { VCNameProp, parse_name }, - { VCBirthDateProp, parse_bday }, - { VCEmailAddressProp, parse_email }, - { VCTelephoneProp, parse_phone }, - { VCAdrProp, parse_address }, - { VCDeliveryLabelProp, parse_address_label }, - { VCURLProp, parse_url }, - { VCOrgProp, parse_org }, - { VCTitleProp, parse_title }, - { VCBusinessRoleProp, parse_role }, - { "NICKNAME", parse_nickname }, - { "FBURL", parse_fburl }, - { VCNoteProp, parse_note }, - { VCUniqueStringProp, parse_id } + { VCFullNameProp, parse_full_name }, + { "X-EVOLUTION-FILE-AS", parse_file_as }, + { VCNameProp, parse_name }, + { VCBirthDateProp, parse_bday }, + { VCEmailAddressProp, parse_email }, + { VCTelephoneProp, parse_phone }, + { VCAdrProp, parse_address }, + { VCDeliveryLabelProp, parse_address_label }, + { VCURLProp, parse_url }, + { VCOrgProp, parse_org }, + { "X-EVOLUTION-OFFICE", parse_office }, + { VCTitleProp, parse_title }, + { VCBusinessRoleProp, parse_role }, + { "X-EVOLUTION-MANAGER", parse_manager }, + { "X-EVOLUTION-ASSISTANT", parse_assistant }, + { "NICKNAME", parse_nickname }, + { "X-EVOLUTION-SPOUSE", parse_spouse }, + { "X-EVOLUTION-ANNIVERSARY", parse_anniversary }, + { "FBURL", parse_fburl }, + { VCNoteProp, parse_note }, + { VCUniqueStringProp, parse_id } }; /** @@ -209,6 +227,9 @@ char vobj = newVObject (VCCardProp); + if ( card->file_as ) + addPropValue(vobj, "X-EVOLUTION-FILE-AS", card->file_as); + if ( card->fname ) addPropValue(vobj, VCFullNameProp, card->fname); @@ -316,6 +337,9 @@ char if (card->org_unit) addPropValue(orgprop, VCOrgUnitProp, card->org_unit); } + + if (card->office) + addPropValue(vobj, "X-EVOLUTION-OFFICE", card->office); if (card->title) addPropValue(vobj, VCTitleProp, card->title); @@ -323,8 +347,29 @@ char if (card->role) addPropValue(vobj, VCBusinessRoleProp, card->role); + if (card->manager) + addPropValue(vobj, "X-EVOLUTION-MANAGER", card->manager); + + if (card->assistant) + addPropValue(vobj, "X-EVOLUTION-ASSISTANT", card->assistant); + if (card->nickname) addPropValue(vobj, "NICKNAME", card->nickname); + + if (card->spouse) + addPropValue(vobj, "X-EVOLUTION-SPOUSE", card->spouse); + + if ( card->anniversary ) { + ECardDate date; + char *value; + date = *card->anniversary; + date.year = MIN(date.year, 9999); + date.month = MIN(date.month, 12); + date.day = MIN(date.day, 31); + value = g_strdup_printf("%04d-%02d-%02d", date.year, date.month, date.day); + addPropValue(vobj, "X-EVOLUTION-ANNIVERSARY", value); + g_free(value); + } if (card->fburl) addPropValue(vobj, "FBURL", card->fburl); @@ -355,19 +400,6 @@ char } } - if (crd->dellabel.l) { - GList *node; - - for (node = crd->dellabel.l; node; node = node->next) { - CardDelLabel *dellabel = (CardDelLabel *) node->data; - - vprop = add_strProp (vobj, VCDeliveryLabelProp, - dellabel->data); - add_AddrType (vprop, dellabel->type); - add_CardProperty (vprop, &dellabel->prop); - } - } - add_CardStrProperty (vobj, VCMailerProp, &crd->mailer); if (crd->timezn.prop.used) { @@ -388,8 +420,6 @@ char add_CardProperty (vprop, &crd->geopos.prop); } - add_CardStrProperty (vobj, VCBusinessRoleProp, &crd->role); - if (crd->logo.prop.used) { vprop = addPropSizedValue (vobj, VCLogoProp, crd->logo.data, crd->logo.size); @@ -400,16 +430,6 @@ char if (crd->agent) addVObjectProp (vobj, card_convert_to_vobject (crd->agent)); - if (crd->org.prop.used) { - vprop = addProp (vobj, VCOrgProp); - add_strProp (vprop, VCOrgNameProp, crd->org.name); - add_strProp (vprop, VCOrgUnitProp, crd->org.unit1); - add_strProp (vprop, VCOrgUnit2Prop, crd->org.unit2); - add_strProp (vprop, VCOrgUnit3Prop, crd->org.unit3); - add_strProp (vprop, VCOrgUnit4Prop, crd->org.unit4); - add_CardProperty (vprop, &crd->org.prop); - } - add_CardStrProperty (vobj, VCCategoriesProp, &crd->categories); add_CardStrProperty (vobj, VCCommentProp, &crd->comment); @@ -437,6 +457,14 @@ char return ret_val; } +static void +parse_file_as(ECard *card, VObject *vobj) +{ + if ( card->file_as ) + g_free(card->file_as); + assign_string(vobj, &(card->file_as)); +} + static void parse_name(ECard *card, VObject *vobj) { @@ -568,6 +596,14 @@ parse_org(ECard *card, VObject *vobj) } } +static void +parse_office(ECard *card, VObject *vobj) +{ + if ( card->office ) + g_free(card->office); + assign_string(vobj, &(card->office)); +} + static void parse_title(ECard *card, VObject *vobj) { @@ -584,6 +620,22 @@ parse_role(ECard *card, VObject *vobj) assign_string(vobj, &(card->role)); } +static void +parse_manager(ECard *card, VObject *vobj) +{ + if ( card->manager ) + g_free(card->manager); + assign_string(vobj, &(card->manager)); +} + +static void +parse_assistant(ECard *card, VObject *vobj) +{ + if ( card->assistant ) + g_free(card->assistant); + assign_string(vobj, &(card->assistant)); +} + static void parse_nickname(ECard *card, VObject *vobj) { @@ -592,6 +644,27 @@ parse_nickname(ECard *card, VObject *vobj) assign_string(vobj, &(card->nickname)); } +static void +parse_spouse(ECard *card, VObject *vobj) +{ + if ( card->spouse ) + g_free(card->spouse); + assign_string(vobj, &(card->spouse)); +} + +static void +parse_anniversary(ECard *card, VObject *vobj) +{ + if ( vObjectValueType (vobj) ) { + char *str = fakeCString (vObjectUStringZValue (vobj)); + if (card->anniversary) + g_free(card->anniversary); + card->anniversary = g_new(ECardDate, 1); + *(card->anniversary) = e_card_date_from_string(str); + free(str); + } +} + static void parse_fburl(ECard *card, VObject *vobj) { @@ -648,6 +721,8 @@ e_card_class_init (ECardClass *klass) g_hash_table_insert(klass->attribute_jump_table, attribute_jump_array[i].key, attribute_jump_array[i].function); } + gtk_object_add_arg_type ("ECard::file_as", + GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_FILE_AS); gtk_object_add_arg_type ("ECard::full_name", GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_FULL_NAME); gtk_object_add_arg_type ("ECard::name", @@ -668,12 +743,22 @@ e_card_class_init (ECardClass *klass) GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_ORG); gtk_object_add_arg_type ("ECard::org_unit", GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_ORG_UNIT); + gtk_object_add_arg_type ("ECard::office", + GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_OFFICE); gtk_object_add_arg_type ("ECard::title", GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_TITLE); gtk_object_add_arg_type ("ECard::role", GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_ROLE); + gtk_object_add_arg_type ("ECard::manager", + GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_MANAGER); + gtk_object_add_arg_type ("ECard::assistant", + GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_ASSISTANT); gtk_object_add_arg_type ("ECard::nickname", GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_NICKNAME); + gtk_object_add_arg_type ("ECard::spouse", + GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_SPOUSE); + gtk_object_add_arg_type ("ECard::anniversary", + GTK_TYPE_POINTER, GTK_ARG_READWRITE, ARG_ANNIVERSARY); gtk_object_add_arg_type ("ECard::fburl", GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_FBURL); gtk_object_add_arg_type ("ECard::note", @@ -781,6 +866,8 @@ e_card_destroy (GtkObject *object) ECard *card = E_CARD(object); if ( card->id ) g_free(card->id); + if (card->file_as) + g_free(card->file_as); if ( card->fname ) g_free(card->fname); if ( card->name ) @@ -794,12 +881,22 @@ e_card_destroy (GtkObject *object) g_free(card->org); if (card->org_unit) g_free(card->org_unit); + if (card->office) + g_free(card->office); if (card->title) g_free(card->title); if (card->role) g_free(card->role); + if (card->manager) + g_free(card->manager); + if (card->assistant) + g_free(card->assistant); if (card->nickname) g_free(card->nickname); + if (card->spouse) + g_free(card->spouse); + if (card->anniversary) + g_free(card->anniversary); if (card->fburl) g_free(card->fburl); if (card->note) @@ -825,6 +922,11 @@ e_card_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) card = E_CARD (object); switch (arg_id) { + case ARG_FILE_AS: + if (card->file_as) + g_free(card->file_as); + card->file_as = g_strdup(GTK_VALUE_STRING(*arg)); + break; case ARG_FULL_NAME: if ( card->fname ) g_free(card->fname); @@ -855,6 +957,11 @@ e_card_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) g_free(card->org_unit); card->org_unit = g_strdup(GTK_VALUE_STRING(*arg)); break; + case ARG_OFFICE: + if (card->office) + g_free(card->office); + card->office = g_strdup(GTK_VALUE_STRING(*arg)); + break; case ARG_TITLE: if ( card->title ) g_free(card->title); @@ -865,11 +972,31 @@ e_card_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) g_free(card->role); card->role = g_strdup(GTK_VALUE_STRING(*arg)); break; + case ARG_MANAGER: + if (card->manager) + g_free(card->manager); + card->manager = g_strdup(GTK_VALUE_STRING(*arg)); + break; + case ARG_ASSISTANT: + if (card->assistant) + g_free(card->assistant); + card->assistant = g_strdup(GTK_VALUE_STRING(*arg)); + break; case ARG_NICKNAME: if (card->nickname) g_free(card->nickname); card->nickname = g_strdup(GTK_VALUE_STRING(*arg)); break; + case ARG_SPOUSE: + if (card->spouse) + g_free(card->spouse); + card->spouse = g_strdup(GTK_VALUE_STRING(*arg)); + break; + case ARG_ANNIVERSARY: + if ( card->anniversary ) + g_free(card->anniversary); + card->anniversary = GTK_VALUE_POINTER(*arg); + break; case ARG_FBURL: if (card->fburl) g_free(card->fburl); @@ -899,6 +1026,9 @@ e_card_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) card = E_CARD (object); switch (arg_id) { + case ARG_FILE_AS: + GTK_VALUE_STRING (*arg) = card->file_as; + break; case ARG_FULL_NAME: GTK_VALUE_STRING (*arg) = card->fname; break; @@ -945,15 +1075,30 @@ e_card_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) case ARG_ORG_UNIT: GTK_VALUE_STRING(*arg) = card->org_unit; break; + case ARG_OFFICE: + GTK_VALUE_STRING(*arg) = card->office; + break; case ARG_TITLE: GTK_VALUE_STRING(*arg) = card->title; break; case ARG_ROLE: GTK_VALUE_STRING(*arg) = card->role; break; + case ARG_MANAGER: + GTK_VALUE_STRING(*arg) = card->manager; + break; + case ARG_ASSISTANT: + GTK_VALUE_STRING(*arg) = card->assistant; + break; case ARG_NICKNAME: GTK_VALUE_STRING(*arg) = card->nickname; break; + case ARG_SPOUSE: + GTK_VALUE_STRING(*arg) = card->spouse; + break; + case ARG_ANNIVERSARY: + GTK_VALUE_POINTER(*arg) = card->anniversary; + break; case ARG_FBURL: GTK_VALUE_STRING(*arg) = card->fburl; break; @@ -977,7 +1122,8 @@ static void e_card_init (ECard *card) { card->id = g_strdup(""); - + + card->file_as = NULL; card->fname = NULL; card->name = NULL; card->bday = NULL; @@ -988,9 +1134,14 @@ e_card_init (ECard *card) card->url = NULL; card->org = NULL; card->org_unit = NULL; + card->office = NULL; card->title = NULL; card->role = NULL; + card->manager = NULL; + card->assistant = NULL; card->nickname = NULL; + card->spouse = NULL; + card->anniversary = NULL; card->fburl = NULL; card->note = NULL; #if 0 diff --git a/addressbook/backend/ebook/e-card.h b/addressbook/backend/ebook/e-card.h index 774c327371..1c48376dca 100644 --- a/addressbook/backend/ebook/e-card.h +++ b/addressbook/backend/ebook/e-card.h @@ -31,6 +31,7 @@ struct _ECard { GtkObject object; char *id; + char *file_as; /* The File As field. */ char *fname; /* The full name. */ ECardName *name; /* The structured name. */ ECardList *address; /* Delivery addresses (ECardDeliveryAddress *) */ @@ -48,10 +49,17 @@ struct _ECard { char *org; /* The person's organization. */ char *org_unit; /* The person's organization unit. */ + char *office; /* The person's office. */ char *role; /* The person's role w/in his org */ char *title; /* The person's title w/in his org */ + char *manager; + char *assistant; + char *nickname; /* The person's nickname */ + + char *spouse; /* The person's spouse. */ + ECardDate *anniversary; /* The person's anniversary. */ char *fburl; /* Free Busy URL */ diff --git a/addressbook/backend/pas/pas-backend-file.c b/addressbook/backend/pas/pas-backend-file.c index a1435f9251..cbe75a5aba 100644 --- a/addressbook/backend/pas/pas-backend-file.c +++ b/addressbook/backend/pas/pas-backend-file.c @@ -231,14 +231,19 @@ static struct prop_info { } prop_info_table[] = { /* query prop, ecard prop, type, list compare function */ + { "file_as", "file_as", PROP_TYPE_NORMAL, NULL }, { "full_name", "full_name", PROP_TYPE_NORMAL, NULL }, { "url", "url", PROP_TYPE_NORMAL, NULL }, { "mailer", "mailer", PROP_TYPE_NORMAL, NULL }, { "org", "org", PROP_TYPE_NORMAL, NULL }, { "org_unit", "org_unit", PROP_TYPE_NORMAL, NULL }, + { "office", "office", PROP_TYPE_NORMAL, NULL }, { "title", "title", PROP_TYPE_NORMAL, NULL }, { "role", "role", PROP_TYPE_NORMAL, NULL }, + { "manager", "manager", PROP_TYPE_NORMAL, NULL }, + { "assistant", "assistant", PROP_TYPE_NORMAL, NULL }, { "nickname", "nickname", PROP_TYPE_NORMAL, NULL }, + { "spouse", "spouse", PROP_TYPE_NORMAL, NULL }, { "email", "email", PROP_TYPE_LIST, compare_email }, { "phone", "phone", PROP_TYPE_LIST, compare_phone }, { "address", "address", PROP_TYPE_LIST, compare_address }, diff --git a/addressbook/contact-editor/contact-editor.glade b/addressbook/contact-editor/contact-editor.glade index cd17ffd288..33721520e6 100644 --- a/addressbook/contact-editor/contact-editor.glade +++ b/addressbook/contact-editor/contact-editor.glade @@ -428,57 +428,6 @@ - - GtkHBox - hbox5 - False - 0 - - 0 - 7 - 10 - 11 - 0 - 0 - True - True - False - False - True - True - - - - GtkText - text-comments - True - True - - - 0 - True - True - - - - - GtkVScrollbar - vscrollbar-comments - GTK_UPDATE_CONTINUOUS - 0 - 0 - 0 - 0 - 0 - 0 - - 0 - False - False - - - - GtkAlignment alignment2 @@ -564,38 +513,6 @@ - - GtkAlignment - alignment4 - 1 - 0.5 - 0 - 1 - - 6 - 7 - 6 - 7 - 0 - 0 - False - False - False - False - True - True - - - - GtkButton - button-address1 - - - Placeholder - - - - GtkAlignment alignment5 @@ -692,32 +609,6 @@ - - GtkLabel - label-address1 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 5 - 6 - 6 - 7 - 0 - 0 - False - False - False - False - True - True - - - GtkHSeparator hseparator4 @@ -910,7 +801,7 @@ GtkCombo - combo-fileas + combo-file-as False True True @@ -935,7 +826,7 @@ GtkEntry GtkCombo:entry - combo-entry1 + entry-file-as True True True @@ -964,12 +855,63 @@ - GtkCheckButton - checkbutton-htmlmail - True - - False - True + GtkHBox + hbox5 + False + 0 + + 0 + 8 + 10 + 11 + 0 + 0 + True + True + False + False + True + True + + + + GtkText + text-comments + True + True + + + 0 + True + True + + + + + GtkVScrollbar + vscrollbar-comments + GTK_UPDATE_CONTINUOUS + 0 + 0 + 0 + 0 + 0 + 0 + + 0 + False + False + + + + + + GtkAlignment + alignment10 + 0.5 + 0 + 1 + 1 3 4 @@ -984,6 +926,73 @@ True True + + + GtkCheckButton + checkbutton-htmlmail + True + + False + True + + + + + GtkAlignment + alignment4 + 1 + 0.5 + 0 + 0 + + 6 + 7 + 6 + 7 + 0 + 0 + False + False + False + False + True + True + + + + GtkButton + button-address1 + + + Placeholder + + + + + + GtkLabel + label-address1 + + GTK_JUSTIFY_CENTER + False + 0 + 0.5 + 0 + 0 + + 5 + 6 + 6 + 7 + 0 + 0 + False + False + False + False + True + True + @@ -1272,7 +1281,7 @@ GtkEntry - entry4 + entry-spouse True True True @@ -1464,7 +1473,7 @@ GtkEntry - entry13 + entry-assistant True True True @@ -1488,7 +1497,7 @@ GtkEntry - entry12 + entry-manager True True True diff --git a/addressbook/contact-editor/e-contact-editor-strings.h b/addressbook/contact-editor/e-contact-editor-strings.h index 7f0a8a83f1..42be016fbc 100644 --- a/addressbook/contact-editor/e-contact-editor-strings.h +++ b/addressbook/contact-editor/e-contact-editor-strings.h @@ -17,8 +17,8 @@ gchar *s = N_("File As:"); gchar *s = N_("Web page address:"); gchar *s = N_("This is the mailing address"); gchar *s = N_("A_ddress..."); -gchar *s = N_("Business"); gchar *s = N_("Wants HTML mail"); +gchar *s = N_("Business"); gchar *s = N_("General"); gchar *s = N_("Department:"); gchar *s = N_("Office:"); diff --git a/addressbook/contact-editor/e-contact-editor.c b/addressbook/contact-editor/e-contact-editor.c index 91339e9da3..5665e0d217 100644 --- a/addressbook/contact-editor/e-contact-editor.c +++ b/addressbook/contact-editor/e-contact-editor.c @@ -1,3 +1,4 @@ + /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * e-contact-editor.c @@ -781,6 +782,7 @@ fill_in_info(EContactEditor *editor) { ECard *card = editor->card; if (card) { + char *file_as; char *fname; ECardList *address_list; ECardList *phone_list; @@ -788,9 +790,14 @@ fill_in_info(EContactEditor *editor) char *title; char *org; char *org_unit; + char *office; char *url; char *role; + char *manager; + char *assistant; char *nickname; + char *spouse; + const ECardDate *anniversary; char *fburl; char *note; const ECardPhone *phone; @@ -803,6 +810,7 @@ fill_in_info(EContactEditor *editor) ECardIterator *iterator; gtk_object_get(GTK_OBJECT(card), + "file_as", &file_as, "full_name", &fname, "address_label", &address_list, "phone", &phone_list, @@ -810,9 +818,14 @@ fill_in_info(EContactEditor *editor) "url", &url, "org", &org, "org_unit", &org_unit, + "office", &office, "title", &title, "role", &role, + "manager", &manager, + "assistant", &assistant, "nickname", &nickname, + "spouse", &spouse, + "anniversary", &anniversary, "fburl", &fburl, "note", ¬e, "birth_date", &bday, @@ -824,6 +837,12 @@ fill_in_info(EContactEditor *editor) if (fname) gtk_editable_insert_text(editable, fname, strlen(fname), &position); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-file-as")); + gtk_editable_delete_text(editable, 0, -1); + if (file_as) + gtk_editable_insert_text(editable, file_as, strlen(file_as), &position); + for (iterator = e_card_list_get_iterator(phone_list); e_card_iterator_is_valid(iterator); e_card_iterator_next(iterator)) { int i; phone = e_card_iterator_get(iterator); @@ -878,18 +897,54 @@ fill_in_info(EContactEditor *editor) if (org_unit) gtk_editable_insert_text(editable, org_unit, strlen(org_unit), &position); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-office")); + gtk_editable_delete_text(editable, 0, -1); + if (office) + gtk_editable_insert_text(editable, office, strlen(office), &position); + position = 0; editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-jobtitle")); gtk_editable_delete_text(editable, 0, -1); if (title) gtk_editable_insert_text(editable, title, strlen(title), &position); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-manager")); + gtk_editable_delete_text(editable, 0, -1); + if (manager) + gtk_editable_insert_text(editable, manager, strlen(manager), &position); + + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-assistant")); + gtk_editable_delete_text(editable, 0, -1); + if (assistant) + gtk_editable_insert_text(editable, assistant, strlen(assistant), &position); + position = 0; editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-nickname")); gtk_editable_delete_text(editable, 0, -1); if (nickname) gtk_editable_insert_text(editable, nickname, strlen(nickname), &position); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-spouse")); + gtk_editable_delete_text(editable, 0, -1); + if (spouse) + gtk_editable_insert_text(editable, spouse, strlen(spouse), &position); + + if (anniversary) { + struct tm time_struct = {0,0,0,0,0,0,0,0,0}; + time_t time_val; + GnomeDateEdit *dateedit; + time_struct.tm_mday = anniversary->day; + time_struct.tm_mon = anniversary->month - 1; + time_struct.tm_year = anniversary->year - 1900; + time_val = mktime(&time_struct); + dateedit = GNOME_DATE_EDIT(glade_xml_get_widget(editor->gui, "dateedit-anniversary")); + gnome_date_edit_set_time(dateedit, time_val); + } + position = 0; editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-fburl")); gtk_editable_delete_text(editable, 0, -1); @@ -928,6 +983,7 @@ extract_info(EContactEditor *editor) { ECard *card = editor->card; if (card) { + char *file_as; char *fname; ECardList *address_list; ECardList *phone_list; @@ -935,9 +991,14 @@ extract_info(EContactEditor *editor) char *url; char *org; char *org_unit; + char *office; char *title; char *role; + char *manager; + char *assistant; char *nickname; + char *spouse; + ECardDate *anniversary; char *fburl; char *note; const ECardPhone *phone; @@ -960,6 +1021,15 @@ extract_info(EContactEditor *editor) "email", &email_list, NULL); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-file-as")); + file_as = gtk_editable_get_chars(editable, 0, -1); + if (file_as && *file_as) + gtk_object_set(GTK_OBJECT(card), + "file_as", file_as, + NULL); + g_free(file_as); + position = 0; editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-fullname")); fname = gtk_editable_get_chars(editable, 0, -1); @@ -1081,6 +1151,15 @@ extract_info(EContactEditor *editor) NULL); g_free(org_unit); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-office")); + office = gtk_editable_get_chars(editable, 0, -1); + if (office && *office) + gtk_object_set(GTK_OBJECT(card), + "office", office, + NULL); + g_free(office); + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-jobtitle")); title = gtk_editable_get_chars(editable, 0, -1); if (title && *title) @@ -1097,6 +1176,24 @@ extract_info(EContactEditor *editor) NULL); g_free(role); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-manager")); + manager = gtk_editable_get_chars(editable, 0, -1); + if (manager && *manager) + gtk_object_set(GTK_OBJECT(card), + "manager", manager, + NULL); + g_free(manager); + + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-assistant")); + assistant = gtk_editable_get_chars(editable, 0, -1); + if (assistant && *assistant) + gtk_object_set(GTK_OBJECT(card), + "assistant", assistant, + NULL); + g_free(assistant); + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-nickname")); nickname = gtk_editable_get_chars(editable, 0, -1); if (nickname && *nickname) @@ -1105,6 +1202,27 @@ extract_info(EContactEditor *editor) NULL); g_free(nickname); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-spouse")); + spouse = gtk_editable_get_chars(editable, 0, -1); + if (spouse && *spouse) + gtk_object_set(GTK_OBJECT(card), + "spouse", spouse, + NULL); + g_free(spouse); + + dateedit = GNOME_DATE_EDIT(glade_xml_get_widget(editor->gui, "dateedit-anniversary")); + time_val = gnome_date_edit_get_date(dateedit); + gmtime_r(&time_val, + &time_struct); + anniversary = g_new(ECardDate, 1); + anniversary->day = time_struct.tm_mday; + anniversary->month = time_struct.tm_mon + 1; + anniversary->year = time_struct.tm_year + 1900; + gtk_object_set(GTK_OBJECT(card), + "anniversary", anniversary, + NULL); + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-fburl")); fburl = gtk_editable_get_chars(editable, 0, -1); if (fburl && *fburl) diff --git a/addressbook/ename/.cvsignore b/addressbook/ename/.cvsignore new file mode 100644 index 0000000000..4f8c173841 --- /dev/null +++ b/addressbook/ename/.cvsignore @@ -0,0 +1,8 @@ +.deps +.libs +Makefile +Makefile.in +*.lo +*.la +test-ename-western +test-ename-western-gtk diff --git a/addressbook/ename/e-name-western.h b/addressbook/ename/e-name-western.h index 695719b1c0..fa5bac494c 100644 --- a/addressbook/ename/e-name-western.h +++ b/addressbook/ename/e-name-western.h @@ -1,8 +1,6 @@ #ifndef __E_NAME_WESTERN_H__ #define __E_NAME_WESTERN_H__ -#include - typedef struct { /* Public */ diff --git a/addressbook/ename/test-ename-western-gtk.c b/addressbook/ename/test-ename-western-gtk.c index 15db38ce10..17daf42b30 100644 --- a/addressbook/ename/test-ename-western-gtk.c +++ b/addressbook/ename/test-ename-western-gtk.c @@ -1,5 +1,5 @@ #include -#include +#include ENameWestern *name; GtkWidget *full; diff --git a/addressbook/ename/test-ename-western.c b/addressbook/ename/test-ename-western.c index 17ff91dbf2..6d3beaf16f 100644 --- a/addressbook/ename/test-ename-western.c +++ b/addressbook/ename/test-ename-western.c @@ -1,7 +1,7 @@ #include #include -#include +#include static void do_name (char *n) diff --git a/addressbook/gui/contact-editor/contact-editor.glade b/addressbook/gui/contact-editor/contact-editor.glade index cd17ffd288..33721520e6 100644 --- a/addressbook/gui/contact-editor/contact-editor.glade +++ b/addressbook/gui/contact-editor/contact-editor.glade @@ -428,57 +428,6 @@ - - GtkHBox - hbox5 - False - 0 - - 0 - 7 - 10 - 11 - 0 - 0 - True - True - False - False - True - True - - - - GtkText - text-comments - True - True - - - 0 - True - True - - - - - GtkVScrollbar - vscrollbar-comments - GTK_UPDATE_CONTINUOUS - 0 - 0 - 0 - 0 - 0 - 0 - - 0 - False - False - - - - GtkAlignment alignment2 @@ -564,38 +513,6 @@ - - GtkAlignment - alignment4 - 1 - 0.5 - 0 - 1 - - 6 - 7 - 6 - 7 - 0 - 0 - False - False - False - False - True - True - - - - GtkButton - button-address1 - - - Placeholder - - - - GtkAlignment alignment5 @@ -692,32 +609,6 @@ - - GtkLabel - label-address1 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 5 - 6 - 6 - 7 - 0 - 0 - False - False - False - False - True - True - - - GtkHSeparator hseparator4 @@ -910,7 +801,7 @@ GtkCombo - combo-fileas + combo-file-as False True True @@ -935,7 +826,7 @@ GtkEntry GtkCombo:entry - combo-entry1 + entry-file-as True True True @@ -964,12 +855,63 @@ - GtkCheckButton - checkbutton-htmlmail - True - - False - True + GtkHBox + hbox5 + False + 0 + + 0 + 8 + 10 + 11 + 0 + 0 + True + True + False + False + True + True + + + + GtkText + text-comments + True + True + + + 0 + True + True + + + + + GtkVScrollbar + vscrollbar-comments + GTK_UPDATE_CONTINUOUS + 0 + 0 + 0 + 0 + 0 + 0 + + 0 + False + False + + + + + + GtkAlignment + alignment10 + 0.5 + 0 + 1 + 1 3 4 @@ -984,6 +926,73 @@ True True + + + GtkCheckButton + checkbutton-htmlmail + True + + False + True + + + + + GtkAlignment + alignment4 + 1 + 0.5 + 0 + 0 + + 6 + 7 + 6 + 7 + 0 + 0 + False + False + False + False + True + True + + + + GtkButton + button-address1 + + + Placeholder + + + + + + GtkLabel + label-address1 + + GTK_JUSTIFY_CENTER + False + 0 + 0.5 + 0 + 0 + + 5 + 6 + 6 + 7 + 0 + 0 + False + False + False + False + True + True + @@ -1272,7 +1281,7 @@ GtkEntry - entry4 + entry-spouse True True True @@ -1464,7 +1473,7 @@ GtkEntry - entry13 + entry-assistant True True True @@ -1488,7 +1497,7 @@ GtkEntry - entry12 + entry-manager True True True diff --git a/addressbook/gui/contact-editor/e-contact-editor-strings.h b/addressbook/gui/contact-editor/e-contact-editor-strings.h index 7f0a8a83f1..42be016fbc 100644 --- a/addressbook/gui/contact-editor/e-contact-editor-strings.h +++ b/addressbook/gui/contact-editor/e-contact-editor-strings.h @@ -17,8 +17,8 @@ gchar *s = N_("File As:"); gchar *s = N_("Web page address:"); gchar *s = N_("This is the mailing address"); gchar *s = N_("A_ddress..."); -gchar *s = N_("Business"); gchar *s = N_("Wants HTML mail"); +gchar *s = N_("Business"); gchar *s = N_("General"); gchar *s = N_("Department:"); gchar *s = N_("Office:"); diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index 91339e9da3..5665e0d217 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -1,3 +1,4 @@ + /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * e-contact-editor.c @@ -781,6 +782,7 @@ fill_in_info(EContactEditor *editor) { ECard *card = editor->card; if (card) { + char *file_as; char *fname; ECardList *address_list; ECardList *phone_list; @@ -788,9 +790,14 @@ fill_in_info(EContactEditor *editor) char *title; char *org; char *org_unit; + char *office; char *url; char *role; + char *manager; + char *assistant; char *nickname; + char *spouse; + const ECardDate *anniversary; char *fburl; char *note; const ECardPhone *phone; @@ -803,6 +810,7 @@ fill_in_info(EContactEditor *editor) ECardIterator *iterator; gtk_object_get(GTK_OBJECT(card), + "file_as", &file_as, "full_name", &fname, "address_label", &address_list, "phone", &phone_list, @@ -810,9 +818,14 @@ fill_in_info(EContactEditor *editor) "url", &url, "org", &org, "org_unit", &org_unit, + "office", &office, "title", &title, "role", &role, + "manager", &manager, + "assistant", &assistant, "nickname", &nickname, + "spouse", &spouse, + "anniversary", &anniversary, "fburl", &fburl, "note", ¬e, "birth_date", &bday, @@ -824,6 +837,12 @@ fill_in_info(EContactEditor *editor) if (fname) gtk_editable_insert_text(editable, fname, strlen(fname), &position); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-file-as")); + gtk_editable_delete_text(editable, 0, -1); + if (file_as) + gtk_editable_insert_text(editable, file_as, strlen(file_as), &position); + for (iterator = e_card_list_get_iterator(phone_list); e_card_iterator_is_valid(iterator); e_card_iterator_next(iterator)) { int i; phone = e_card_iterator_get(iterator); @@ -878,18 +897,54 @@ fill_in_info(EContactEditor *editor) if (org_unit) gtk_editable_insert_text(editable, org_unit, strlen(org_unit), &position); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-office")); + gtk_editable_delete_text(editable, 0, -1); + if (office) + gtk_editable_insert_text(editable, office, strlen(office), &position); + position = 0; editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-jobtitle")); gtk_editable_delete_text(editable, 0, -1); if (title) gtk_editable_insert_text(editable, title, strlen(title), &position); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-manager")); + gtk_editable_delete_text(editable, 0, -1); + if (manager) + gtk_editable_insert_text(editable, manager, strlen(manager), &position); + + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-assistant")); + gtk_editable_delete_text(editable, 0, -1); + if (assistant) + gtk_editable_insert_text(editable, assistant, strlen(assistant), &position); + position = 0; editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-nickname")); gtk_editable_delete_text(editable, 0, -1); if (nickname) gtk_editable_insert_text(editable, nickname, strlen(nickname), &position); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-spouse")); + gtk_editable_delete_text(editable, 0, -1); + if (spouse) + gtk_editable_insert_text(editable, spouse, strlen(spouse), &position); + + if (anniversary) { + struct tm time_struct = {0,0,0,0,0,0,0,0,0}; + time_t time_val; + GnomeDateEdit *dateedit; + time_struct.tm_mday = anniversary->day; + time_struct.tm_mon = anniversary->month - 1; + time_struct.tm_year = anniversary->year - 1900; + time_val = mktime(&time_struct); + dateedit = GNOME_DATE_EDIT(glade_xml_get_widget(editor->gui, "dateedit-anniversary")); + gnome_date_edit_set_time(dateedit, time_val); + } + position = 0; editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-fburl")); gtk_editable_delete_text(editable, 0, -1); @@ -928,6 +983,7 @@ extract_info(EContactEditor *editor) { ECard *card = editor->card; if (card) { + char *file_as; char *fname; ECardList *address_list; ECardList *phone_list; @@ -935,9 +991,14 @@ extract_info(EContactEditor *editor) char *url; char *org; char *org_unit; + char *office; char *title; char *role; + char *manager; + char *assistant; char *nickname; + char *spouse; + ECardDate *anniversary; char *fburl; char *note; const ECardPhone *phone; @@ -960,6 +1021,15 @@ extract_info(EContactEditor *editor) "email", &email_list, NULL); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-file-as")); + file_as = gtk_editable_get_chars(editable, 0, -1); + if (file_as && *file_as) + gtk_object_set(GTK_OBJECT(card), + "file_as", file_as, + NULL); + g_free(file_as); + position = 0; editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-fullname")); fname = gtk_editable_get_chars(editable, 0, -1); @@ -1081,6 +1151,15 @@ extract_info(EContactEditor *editor) NULL); g_free(org_unit); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-office")); + office = gtk_editable_get_chars(editable, 0, -1); + if (office && *office) + gtk_object_set(GTK_OBJECT(card), + "office", office, + NULL); + g_free(office); + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-jobtitle")); title = gtk_editable_get_chars(editable, 0, -1); if (title && *title) @@ -1097,6 +1176,24 @@ extract_info(EContactEditor *editor) NULL); g_free(role); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-manager")); + manager = gtk_editable_get_chars(editable, 0, -1); + if (manager && *manager) + gtk_object_set(GTK_OBJECT(card), + "manager", manager, + NULL); + g_free(manager); + + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-assistant")); + assistant = gtk_editable_get_chars(editable, 0, -1); + if (assistant && *assistant) + gtk_object_set(GTK_OBJECT(card), + "assistant", assistant, + NULL); + g_free(assistant); + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-nickname")); nickname = gtk_editable_get_chars(editable, 0, -1); if (nickname && *nickname) @@ -1105,6 +1202,27 @@ extract_info(EContactEditor *editor) NULL); g_free(nickname); + position = 0; + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-spouse")); + spouse = gtk_editable_get_chars(editable, 0, -1); + if (spouse && *spouse) + gtk_object_set(GTK_OBJECT(card), + "spouse", spouse, + NULL); + g_free(spouse); + + dateedit = GNOME_DATE_EDIT(glade_xml_get_widget(editor->gui, "dateedit-anniversary")); + time_val = gnome_date_edit_get_date(dateedit); + gmtime_r(&time_val, + &time_struct); + anniversary = g_new(ECardDate, 1); + anniversary->day = time_struct.tm_mday; + anniversary->month = time_struct.tm_mon + 1; + anniversary->year = time_struct.tm_year + 1900; + gtk_object_set(GTK_OBJECT(card), + "anniversary", anniversary, + NULL); + editable = GTK_EDITABLE(glade_xml_get_widget(editor->gui, "entry-fburl")); fburl = gtk_editable_get_chars(editable, 0, -1); if (fburl && *fburl) -- cgit v1.2.3