From 3835a0d437af0f4cc1392a469c44baa20e812261 Mon Sep 17 00:00:00 2001 From: JP Rosevear Date: Tue, 18 Sep 2001 19:20:21 +0000 Subject: add caluri field data 2001-09-18 JP Rosevear * backend/ebook/e-card-simple.c (field_data): add caluri field data * backend/ebook/e-card.c (e_card_get_vobject): add the caluri property when appropriate (parse_caluri): handle read caluri (e_card_class_init): add caluri arg (e_card_destroy): free the caluri (e_card_get_arg): return caluri arg (e_card_set_arg): set caluri from arg (e_card_init): init caluri to null * backend/ebook/e-card-simple.h: new simple field * backend/ebook/e-card.h: new member * gui/contact-editor/e-contact-editor.c (field_changed): util callback to change the command state (set_entry_changed_signal_field): hook up a change signal to above (set_entry_changed_signals): use above function * gui/contact-editor/e-contact-editor.glade: Add collaboration page and fields svn path=/trunk/; revision=12945 --- addressbook/ChangeLog | 25 ++++ addressbook/backend/ebook/e-card-simple.c | 1 + addressbook/backend/ebook/e-card-simple.h | 1 + addressbook/backend/ebook/e-card.c | 24 +++ addressbook/backend/ebook/e-card.h | 1 + .../gui/contact-editor/contact-editor.glade | 163 +++++++++++++++++++-- addressbook/gui/contact-editor/e-contact-editor.c | 30 +++- 7 files changed, 232 insertions(+), 13 deletions(-) (limited to 'addressbook') diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index 6f3f550b25..5f0f82be0c 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,28 @@ +2001-09-18 JP Rosevear + + * backend/ebook/e-card-simple.c (field_data): add caluri field data + + * backend/ebook/e-card.c (e_card_get_vobject): add the caluri + property when appropriate + (parse_caluri): handle read caluri + (e_card_class_init): add caluri arg + (e_card_destroy): free the caluri + (e_card_get_arg): return caluri arg + (e_card_set_arg): set caluri from arg + (e_card_init): init caluri to null + + * backend/ebook/e-card-simple.h: new simple field + + * backend/ebook/e-card.h: new member + + * gui/contact-editor/e-contact-editor.c (field_changed): util + callback to change the command state + (set_entry_changed_signal_field): hook up a change signal to above + (set_entry_changed_signals): use above function + + * gui/contact-editor/e-contact-editor.glade: Add collaboration + page and fields + 2001-09-18 JP Rosevear * backend/pas/pas-backend-file.c diff --git a/addressbook/backend/ebook/e-card-simple.c b/addressbook/backend/ebook/e-card-simple.c index 6f13356428..4cd558e5e2 100644 --- a/addressbook/backend/ebook/e-card-simple.c +++ b/addressbook/backend/ebook/e-card-simple.c @@ -94,6 +94,7 @@ static ECardSimpleFieldData field_data[] = { E_CARD_SIMPLE_FIELD_NICKNAME, "nickname", N_("Nickname"), N_("Nick"), 0, E_CARD_SIMPLE_INTERNAL_TYPE_STRING }, { E_CARD_SIMPLE_FIELD_SPOUSE, "spouse", N_("Spouse"), N_("Spouse"), 0, E_CARD_SIMPLE_INTERNAL_TYPE_STRING }, { E_CARD_SIMPLE_FIELD_NOTE, "note", N_("Note"), N_("Note"), 0, E_CARD_SIMPLE_INTERNAL_TYPE_STRING }, + { E_CARD_SIMPLE_FIELD_CALURI, "caluri", N_("Calendar URI"), N_("CALUri"), 0, E_CARD_SIMPLE_INTERNAL_TYPE_STRING }, { E_CARD_SIMPLE_FIELD_FBURL, "fburl", N_("Free-busy URL"), N_("FBUrl"), 0, E_CARD_SIMPLE_INTERNAL_TYPE_STRING }, { E_CARD_SIMPLE_FIELD_ANNIVERSARY, "anniversary", N_("Anniversary"), N_("Anniv"), 0, E_CARD_SIMPLE_INTERNAL_TYPE_DATE }, { E_CARD_SIMPLE_FIELD_BIRTH_DATE, "birth_date", N_("Birth Date"), "", 0, E_CARD_SIMPLE_INTERNAL_TYPE_DATE }, diff --git a/addressbook/backend/ebook/e-card-simple.h b/addressbook/backend/ebook/e-card-simple.h index 675695a7ea..1af3ecb606 100644 --- a/addressbook/backend/ebook/e-card-simple.h +++ b/addressbook/backend/ebook/e-card-simple.h @@ -115,6 +115,7 @@ enum _ECardSimpleField { E_CARD_SIMPLE_FIELD_NICKNAME, E_CARD_SIMPLE_FIELD_SPOUSE, E_CARD_SIMPLE_FIELD_NOTE, + E_CARD_SIMPLE_FIELD_CALURI, E_CARD_SIMPLE_FIELD_FBURL, E_CARD_SIMPLE_FIELD_LAST_SIMPLE_STRING = E_CARD_SIMPLE_FIELD_FBURL, E_CARD_SIMPLE_FIELD_ANNIVERSARY, diff --git a/addressbook/backend/ebook/e-card.c b/addressbook/backend/ebook/e-card.c index 59077ec035..835cc8195a 100644 --- a/addressbook/backend/ebook/e-card.c +++ b/addressbook/backend/ebook/e-card.c @@ -65,6 +65,7 @@ enum { ARG_SPOUSE, ARG_ANNIVERSARY, ARG_MAILER, + ARG_CALURI, ARG_FBURL, ARG_NOTE, ARG_RELATED_CONTACTS, @@ -115,6 +116,7 @@ static void parse_nickname(ECard *card, VObject *object, char *default_charset); static void parse_spouse(ECard *card, VObject *object, char *default_charset); static void parse_anniversary(ECard *card, VObject *object, char *default_charset); static void parse_mailer(ECard *card, VObject *object, char *default_charset); +static void parse_caluri(ECard *card, VObject *object, char *default_charset); static void parse_fburl(ECard *card, VObject *object, char *default_charset); static void parse_note(ECard *card, VObject *object, char *default_charset); static void parse_related_contacts(ECard *card, VObject *object, char *default_charset); @@ -158,6 +160,7 @@ struct { { "X-EVOLUTION-SPOUSE", parse_spouse }, { "X-EVOLUTION-ANNIVERSARY", parse_anniversary }, { VCMailerProp, parse_mailer }, + { "CALURI", parse_caluri }, { "FBURL", parse_fburl }, { VCNoteProp, parse_note }, { XEV_RELATED_CONTACTS, parse_related_contacts }, @@ -550,6 +553,9 @@ e_card_get_vobject (ECard *card, gboolean assumeUTF8) ADD_PROP_VALUE(vobj, VCMailerProp, card->mailer); } + if (card->caluri) + addPropValue(vobj, "CALURI", card->caluri); + if (card->fburl) ADD_PROP_VALUE(vobj, "FBURL", card->fburl); @@ -977,6 +983,13 @@ parse_mailer(ECard *card, VObject *vobj, char *default_charset) assign_string(vobj, default_charset, &(card->mailer)); } +static void +parse_caluri(ECard *card, VObject *vobj, char *default_charset) +{ + g_free(card->caluri); + assign_string(vobj, default_charset, &(card->caluri)); +} + static void parse_fburl(ECard *card, VObject *vobj, char *default_charset) { @@ -1284,6 +1297,8 @@ e_card_class_init (ECardClass *klass) GTK_TYPE_POINTER, GTK_ARG_READWRITE, ARG_ANNIVERSARY); gtk_object_add_arg_type ("ECard::mailer", GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_MAILER); + gtk_object_add_arg_type ("ECard::caluri", + GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_CALURI); gtk_object_add_arg_type ("ECard::fburl", GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_FBURL); gtk_object_add_arg_type ("ECard::note", @@ -1888,6 +1903,7 @@ e_card_destroy (GtkObject *object) g_free(card->nickname); g_free(card->spouse); g_free(card->anniversary); + g_free(card->caluri); g_free(card->fburl); g_free(card->note); g_free(card->related_contacts); @@ -2028,6 +2044,10 @@ e_card_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) g_free(card->mailer); card->mailer = g_strdup(GTK_VALUE_STRING(*arg)); break; + case ARG_CALURI: + g_free(card->caluri); + card->caluri = g_strdup(GTK_VALUE_STRING(*arg)); + break; case ARG_FBURL: g_free(card->fburl); card->fburl = g_strdup(GTK_VALUE_STRING(*arg)); @@ -2190,6 +2210,9 @@ e_card_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) case ARG_MAILER: GTK_VALUE_STRING(*arg) = card->mailer; break; + case ARG_CALURI: + GTK_VALUE_STRING(*arg) = card->caluri; + break; case ARG_FBURL: GTK_VALUE_STRING(*arg) = card->fburl; break; @@ -2264,6 +2287,7 @@ e_card_init (ECard *card) card->spouse = NULL; card->anniversary = NULL; card->mailer = NULL; + card->caluri = NULL; card->fburl = NULL; card->note = NULL; card->related_contacts = NULL; diff --git a/addressbook/backend/ebook/e-card.h b/addressbook/backend/ebook/e-card.h index c9ac994a0d..f1e35ce0a8 100644 --- a/addressbook/backend/ebook/e-card.h +++ b/addressbook/backend/ebook/e-card.h @@ -67,6 +67,7 @@ struct _ECard { char *mailer; /* Mailer */ + char *caluri; /* Calendar URI */ char *fburl; /* Free Busy URL */ gint timezone; /* number of minutes from UTC as an int */ diff --git a/addressbook/gui/contact-editor/contact-editor.glade b/addressbook/gui/contact-editor/contact-editor.glade index 88d74a2a77..575282b2d1 100644 --- a/addressbook/gui/contact-editor/contact-editor.glade +++ b/addressbook/gui/contact-editor/contact-editor.glade @@ -149,7 +149,6 @@ 2 True - GTK_RELIEF_NORMAL 0 False @@ -163,7 +162,6 @@ 2 True - GTK_RELIEF_NORMAL 0 False @@ -494,7 +492,6 @@ button-fullname True - GTK_RELIEF_NORMAL 1 3 @@ -536,7 +533,6 @@ GtkButton button-email1 - GTK_RELIEF_NORMAL Placeholder @@ -569,7 +565,6 @@ GtkButton button-phone4 - GTK_RELIEF_NORMAL Placeholder @@ -602,7 +597,6 @@ GtkButton button-phone2 - GTK_RELIEF_NORMAL Placeholder @@ -635,7 +629,6 @@ GtkButton button-phone1 - GTK_RELIEF_NORMAL Placeholder @@ -687,7 +680,6 @@ GtkButton button-phone3 - GTK_RELIEF_NORMAL Placeholder @@ -948,7 +940,6 @@ GtkButton button-address - GTK_RELIEF_NORMAL Placeholder @@ -1245,7 +1236,6 @@ button-contacts True - GTK_RELIEF_NORMAL @@ -1309,7 +1299,6 @@ button-categories True - GTK_RELIEF_NORMAL @@ -1552,7 +1541,6 @@ button-fulladdr True - GTK_RELIEF_NORMAL 5 7 @@ -2323,6 +2311,157 @@ 0 0 + + + GtkTable + table-contact-editor-collaboration + 7 + 2 + 3 + False + 4 + 4 + + + GtkLabel + label22 + + GTK_JUSTIFY_CENTER + False + 0 + 0.5 + 0 + 0 + entry-department + + 1 + 2 + 0 + 1 + 0 + 0 + False + False + False + False + True + True + + + + + GtkLabel + label23 + + GTK_JUSTIFY_CENTER + False + 0 + 0.5 + 0 + 0 + entry-office + + 1 + 2 + 1 + 2 + 0 + 0 + False + False + False + False + True + True + + + + + GtkEntry + entry-caluri + True + True + True + 0 + + + 2 + 3 + 0 + 1 + 0 + 0 + True + False + False + False + True + False + + + + + GtkEntry + entry-fburl + True + True + True + 0 + + + 2 + 3 + 1 + 2 + 0 + 0 + True + False + False + False + True + False + + + + + Custom + custom11 + e_create_image_widget + globe.png + + 0 + 0 + Thu, 18 May 2000 12:20:13 GMT + + 0 + 1 + 0 + 2 + 0 + 0 + False + False + False + False + True + True + + + + + + GtkLabel + Notebook:tab + label21 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 + diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index 86386f4cdd..d34d1589b3 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -512,6 +512,15 @@ company_entry_changed (GtkWidget *widget, EContactEditor *editor) widget_changed (widget, editor); } +static void +field_changed (GtkWidget *widget, EContactEditor *editor) +{ + if (!editor->changed) { + editor->changed = TRUE; + command_state_changed (editor); + } +} + static void set_entry_changed_signal_phone(EContactEditor *editor, char *id) { @@ -535,6 +544,15 @@ widget_changed (GtkWidget *widget, EContactEditor *editor) } } +static void +set_entry_changed_signal_field(EContactEditor *editor, char *id) +{ + GtkWidget *widget = glade_xml_get_widget(editor->gui, id); + if (widget && GTK_IS_ENTRY(widget)) + gtk_signal_connect(GTK_OBJECT(widget), "changed", + field_changed, editor); +} + static void set_entry_changed_signals(EContactEditor *editor) { @@ -769,6 +787,9 @@ ensure_select_names_contact (EContactEditor *editor) "contacts", "Related Contacts"); } + + set_entry_changed_signal_field(editor, "entry-caluri"); + set_entry_changed_signal_field(editor, "entry-fburl"); } static void @@ -1955,6 +1976,8 @@ add_field_callback(GtkWidget *widget, EContactEditor *editor) "text-address", "checkbutton-mailingaddress", "checkbutton-htmlmail", + "entry-caluri", + "entry-fburl", NULL }; name = glade_get_widget_name(widget); @@ -1986,6 +2009,8 @@ static struct { { "entry-spouse", "spouse" }, { "text-comments", "note" }, { "entry-categories", "categories" }, + { "entry-caluri", "caluri" }, + { "entry-fburl", "fburl" }, }; static void @@ -2092,7 +2117,10 @@ static struct { { "entry-fullname", E_CARD_SIMPLE_FIELD_FULL_NAME, TRUE }, { "button-categories", E_CARD_SIMPLE_FIELD_CATEGORIES, TRUE }, - { "entry-categories", E_CARD_SIMPLE_FIELD_CATEGORIES, TRUE } + { "entry-categories", E_CARD_SIMPLE_FIELD_CATEGORIES, TRUE }, + + { "entry-caluri", E_CARD_SIMPLE_FIELD_CALURI, TRUE }, + { "entry-fburl", E_CARD_SIMPLE_FIELD_FBURL, TRUE } }; static int num_widget_field_mappings = sizeof(widget_field_mappings) / sizeof (widget_field_mappings[0]); -- cgit v1.2.3