diff options
Diffstat (limited to 'addressbook')
-rw-r--r-- | addressbook/ChangeLog | 23 | ||||
-rw-r--r-- | addressbook/Makefile.am | 2 | ||||
-rw-r--r-- | addressbook/backend/ebook/e-card.c | 233 | ||||
-rw-r--r-- | addressbook/backend/ebook/e-card.h | 8 | ||||
-rw-r--r-- | addressbook/backend/pas/pas-backend-file.c | 5 | ||||
-rw-r--r-- | addressbook/contact-editor/contact-editor.glade | 249 | ||||
-rw-r--r-- | addressbook/contact-editor/e-contact-editor-strings.h | 2 | ||||
-rw-r--r-- | addressbook/contact-editor/e-contact-editor.c | 118 | ||||
-rw-r--r-- | addressbook/ename/.cvsignore | 8 | ||||
-rw-r--r-- | addressbook/ename/e-name-western.h | 2 | ||||
-rw-r--r-- | addressbook/ename/test-ename-western-gtk.c | 2 | ||||
-rw-r--r-- | addressbook/ename/test-ename-western.c | 2 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/contact-editor.glade | 249 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/e-contact-editor-strings.h | 2 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/e-contact-editor.c | 118 |
15 files changed, 735 insertions, 288 deletions
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 <clahey@helixcode.com> + + * 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 <clahey@helixcode.com> * 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); @@ -438,6 +458,14 @@ char } 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) { if ( card->name ) { @@ -569,6 +597,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) { if ( card->title ) @@ -585,6 +621,22 @@ parse_role(ECard *card, VObject *vobj) } 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) { if (card->nickname) @@ -593,6 +645,27 @@ parse_nickname(ECard *card, VObject *vobj) } 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) { if (card->fburl) @@ -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 @@ -429,57 +429,6 @@ </widget> <widget> - <class>GtkHBox</class> - <name>hbox5</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> - <child> - <left_attach>0</left_attach> - <right_attach>7</right_attach> - <top_attach>10</top_attach> - <bottom_attach>11</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>True</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - - <widget> - <class>GtkText</class> - <name>text-comments</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text></text> - <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> - </widget> - - <widget> - <class>GtkVScrollbar</class> - <name>vscrollbar-comments</name> - <policy>GTK_UPDATE_CONTINUOUS</policy> - <value>0</value> - <lower>0</lower> - <upper>0</upper> - <step>0</step> - <page>0</page> - <page_size>0</page_size> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - </widget> - - <widget> <class>GtkAlignment</class> <name>alignment2</name> <xalign>0</xalign> @@ -566,38 +515,6 @@ <widget> <class>GtkAlignment</class> - <name>alignment4</name> - <xalign>1</xalign> - <yalign>0.5</yalign> - <xscale>0</xscale> - <yscale>1</yscale> - <child> - <left_attach>6</left_attach> - <right_attach>7</right_attach> - <top_attach>6</top_attach> - <bottom_attach>7</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - - <widget> - <class>GtkButton</class> - <name>button-address1</name> - - <widget> - <class>Placeholder</class> - </widget> - </widget> - </widget> - - <widget> - <class>GtkAlignment</class> <name>alignment5</name> <xalign>1</xalign> <yalign>0.5</yalign> @@ -693,32 +610,6 @@ </widget> <widget> - <class>GtkLabel</class> - <name>label-address1</name> - <label>Business</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <left_attach>5</left_attach> - <right_attach>6</right_attach> - <top_attach>6</top_attach> - <bottom_attach>7</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> - - <widget> <class>GtkHSeparator</class> <name>hseparator4</name> <child> @@ -910,7 +801,7 @@ <widget> <class>GtkCombo</class> - <name>combo-fileas</name> + <name>combo-file-as</name> <value_in_list>False</value_in_list> <ok_if_empty>True</ok_if_empty> <case_sensitive>True</case_sensitive> @@ -935,7 +826,7 @@ <widget> <class>GtkEntry</class> <child_name>GtkCombo:entry</child_name> - <name>combo-entry1</name> + <name>entry-file-as</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> @@ -964,12 +855,63 @@ </widget> <widget> - <class>GtkCheckButton</class> - <name>checkbutton-htmlmail</name> - <can_focus>True</can_focus> - <label>Wants HTML mail</label> - <active>False</active> - <draw_indicator>True</draw_indicator> + <class>GtkHBox</class> + <name>hbox5</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + <child> + <left_attach>0</left_attach> + <right_attach>8</right_attach> + <top_attach>10</top_attach> + <bottom_attach>11</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>True</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + + <widget> + <class>GtkText</class> + <name>text-comments</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text></text> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> + </widget> + + <widget> + <class>GtkVScrollbar</class> + <name>vscrollbar-comments</name> + <policy>GTK_UPDATE_CONTINUOUS</policy> + <value>0</value> + <lower>0</lower> + <upper>0</upper> + <step>0</step> + <page>0</page> + <page_size>0</page_size> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + </widget> + + <widget> + <class>GtkAlignment</class> + <name>alignment10</name> + <xalign>0.5</xalign> + <yalign>0</yalign> + <xscale>1</xscale> + <yscale>1</yscale> <child> <left_attach>3</left_attach> <right_attach>4</right_attach> @@ -984,6 +926,73 @@ <xfill>True</xfill> <yfill>True</yfill> </child> + + <widget> + <class>GtkCheckButton</class> + <name>checkbutton-htmlmail</name> + <can_focus>True</can_focus> + <label>Wants HTML mail</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + </widget> + </widget> + + <widget> + <class>GtkAlignment</class> + <name>alignment4</name> + <xalign>1</xalign> + <yalign>0.5</yalign> + <xscale>0</xscale> + <yscale>0</yscale> + <child> + <left_attach>6</left_attach> + <right_attach>7</right_attach> + <top_attach>6</top_attach> + <bottom_attach>7</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + + <widget> + <class>GtkButton</class> + <name>button-address1</name> + + <widget> + <class>Placeholder</class> + </widget> + </widget> + </widget> + + <widget> + <class>GtkLabel</class> + <name>label-address1</name> + <label>Business</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <child> + <left_attach>5</left_attach> + <right_attach>6</right_attach> + <top_attach>6</top_attach> + <bottom_attach>7</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> </widget> </widget> @@ -1272,7 +1281,7 @@ <widget> <class>GtkEntry</class> - <name>entry4</name> + <name>entry-spouse</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> @@ -1464,7 +1473,7 @@ <widget> <class>GtkEntry</class> - <name>entry13</name> + <name>entry-assistant</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> @@ -1488,7 +1497,7 @@ <widget> <class>GtkEntry</class> - <name>entry12</name> + <name>entry-manager</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> 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); @@ -879,18 +898,54 @@ fill_in_info(EContactEditor *editor) 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); if (fburl) @@ -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; @@ -961,6 +1022,15 @@ extract_info(EContactEditor *editor) 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); if (fname && *fname) @@ -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 <ename/e-name.h> - 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 <gnome.h> -#include <ename/e-name.h> +#include <ename/e-name-western.h> 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 <gnome.h> #include <ctype.h> -#include <ename/e-name.h> +#include <ename/e-name-western.h> 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 @@ -429,57 +429,6 @@ </widget> <widget> - <class>GtkHBox</class> - <name>hbox5</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> - <child> - <left_attach>0</left_attach> - <right_attach>7</right_attach> - <top_attach>10</top_attach> - <bottom_attach>11</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>True</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - - <widget> - <class>GtkText</class> - <name>text-comments</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text></text> - <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> - </widget> - - <widget> - <class>GtkVScrollbar</class> - <name>vscrollbar-comments</name> - <policy>GTK_UPDATE_CONTINUOUS</policy> - <value>0</value> - <lower>0</lower> - <upper>0</upper> - <step>0</step> - <page>0</page> - <page_size>0</page_size> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - </widget> - - <widget> <class>GtkAlignment</class> <name>alignment2</name> <xalign>0</xalign> @@ -566,38 +515,6 @@ <widget> <class>GtkAlignment</class> - <name>alignment4</name> - <xalign>1</xalign> - <yalign>0.5</yalign> - <xscale>0</xscale> - <yscale>1</yscale> - <child> - <left_attach>6</left_attach> - <right_attach>7</right_attach> - <top_attach>6</top_attach> - <bottom_attach>7</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - - <widget> - <class>GtkButton</class> - <name>button-address1</name> - - <widget> - <class>Placeholder</class> - </widget> - </widget> - </widget> - - <widget> - <class>GtkAlignment</class> <name>alignment5</name> <xalign>1</xalign> <yalign>0.5</yalign> @@ -693,32 +610,6 @@ </widget> <widget> - <class>GtkLabel</class> - <name>label-address1</name> - <label>Business</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <left_attach>5</left_attach> - <right_attach>6</right_attach> - <top_attach>6</top_attach> - <bottom_attach>7</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> - - <widget> <class>GtkHSeparator</class> <name>hseparator4</name> <child> @@ -910,7 +801,7 @@ <widget> <class>GtkCombo</class> - <name>combo-fileas</name> + <name>combo-file-as</name> <value_in_list>False</value_in_list> <ok_if_empty>True</ok_if_empty> <case_sensitive>True</case_sensitive> @@ -935,7 +826,7 @@ <widget> <class>GtkEntry</class> <child_name>GtkCombo:entry</child_name> - <name>combo-entry1</name> + <name>entry-file-as</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> @@ -964,12 +855,63 @@ </widget> <widget> - <class>GtkCheckButton</class> - <name>checkbutton-htmlmail</name> - <can_focus>True</can_focus> - <label>Wants HTML mail</label> - <active>False</active> - <draw_indicator>True</draw_indicator> + <class>GtkHBox</class> + <name>hbox5</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + <child> + <left_attach>0</left_attach> + <right_attach>8</right_attach> + <top_attach>10</top_attach> + <bottom_attach>11</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>True</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + + <widget> + <class>GtkText</class> + <name>text-comments</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text></text> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> + </widget> + + <widget> + <class>GtkVScrollbar</class> + <name>vscrollbar-comments</name> + <policy>GTK_UPDATE_CONTINUOUS</policy> + <value>0</value> + <lower>0</lower> + <upper>0</upper> + <step>0</step> + <page>0</page> + <page_size>0</page_size> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + </widget> + + <widget> + <class>GtkAlignment</class> + <name>alignment10</name> + <xalign>0.5</xalign> + <yalign>0</yalign> + <xscale>1</xscale> + <yscale>1</yscale> <child> <left_attach>3</left_attach> <right_attach>4</right_attach> @@ -984,6 +926,73 @@ <xfill>True</xfill> <yfill>True</yfill> </child> + + <widget> + <class>GtkCheckButton</class> + <name>checkbutton-htmlmail</name> + <can_focus>True</can_focus> + <label>Wants HTML mail</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + </widget> + </widget> + + <widget> + <class>GtkAlignment</class> + <name>alignment4</name> + <xalign>1</xalign> + <yalign>0.5</yalign> + <xscale>0</xscale> + <yscale>0</yscale> + <child> + <left_attach>6</left_attach> + <right_attach>7</right_attach> + <top_attach>6</top_attach> + <bottom_attach>7</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + + <widget> + <class>GtkButton</class> + <name>button-address1</name> + + <widget> + <class>Placeholder</class> + </widget> + </widget> + </widget> + + <widget> + <class>GtkLabel</class> + <name>label-address1</name> + <label>Business</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <child> + <left_attach>5</left_attach> + <right_attach>6</right_attach> + <top_attach>6</top_attach> + <bottom_attach>7</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> </widget> </widget> @@ -1272,7 +1281,7 @@ <widget> <class>GtkEntry</class> - <name>entry4</name> + <name>entry-spouse</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> @@ -1464,7 +1473,7 @@ <widget> <class>GtkEntry</class> - <name>entry13</name> + <name>entry-assistant</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> @@ -1488,7 +1497,7 @@ <widget> <class>GtkEntry</class> - <name>entry12</name> + <name>entry-manager</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> 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); @@ -879,18 +898,54 @@ fill_in_info(EContactEditor *editor) 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); if (fburl) @@ -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; @@ -961,6 +1022,15 @@ extract_info(EContactEditor *editor) 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); if (fname && *fname) @@ -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) |