aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addressbook/ChangeLog16
-rw-r--r--addressbook/gui/contact-editor/e-contact-editor-address.c84
-rw-r--r--addressbook/gui/contact-editor/e-contact-editor-address.h8
3 files changed, 59 insertions, 49 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index ca93fbf1ca..4e455e5698 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,3 +1,19 @@
+2003-12-10 Hans Petter Jansson <hpj@ximian.com>
+
+ * gui/contact-editor/e-contact-editor-address.c
+ (e_contact_editor_address_class_init): Make "address" a boxed type.
+ (e_contact_editor_address_init): Set address to NULL.
+ (e_contact_editor_address_dispose): Free address.
+ (e_contact_editor_address_new): Take an EContactAddress.
+ (e_contact_editor_address_set_property): Re-implement setting the
+ address property.
+ (e_contact_editor_address_get_property): Ditto for getting.
+ (fill_in_info): Enable, use EContactAddress fields.
+ (extract_info): Ditto.
+
+ * gui/contact-editor/e-contact-editor-address.h:
+ Re-enable the address field, as EContactAddress.
+
2003-12-09 JP Rosevear <jpr@ximian.com>
* gui/contact-list-editor/e-contact-list-editor.c (fill_in_info):
diff --git a/addressbook/gui/contact-editor/e-contact-editor-address.c b/addressbook/gui/contact-editor/e-contact-editor-address.c
index 34977e3fb7..6ea61a105d 100644
--- a/addressbook/gui/contact-editor/e-contact-editor-address.c
+++ b/addressbook/gui/contact-editor/e-contact-editor-address.c
@@ -92,10 +92,11 @@ e_contact_editor_address_class_init (EContactEditorAddressClass *klass)
object_class->dispose = e_contact_editor_address_dispose;
g_object_class_install_property (object_class, PROP_ADDRESS,
- g_param_spec_pointer ("address",
- _("Address"),
- /*_( */"XXX blurb" /*)*/,
- G_PARAM_READWRITE));
+ g_param_spec_boxed ("address",
+ _("Address"),
+ /*_( */"XXX blurb" /*)*/,
+ e_contact_address_get_type (),
+ G_PARAM_READWRITE));
g_object_class_install_property (object_class, PROP_EDITABLE,
g_param_spec_boolean ("editable",
@@ -420,9 +421,7 @@ e_contact_editor_address_init (EContactEditorAddress *e_contact_editor_address)
gtk_window_set_resizable(GTK_WINDOW(e_contact_editor_address), TRUE);
-#if notyet
e_contact_editor_address->address = NULL;
-#endif
gui = glade_xml_new (EVOLUTION_GLADEDIR "/fulladdr.glade", NULL, NULL);
e_contact_editor_address->gui = gui;
@@ -455,26 +454,24 @@ e_contact_editor_address_dispose (GObject *object)
e_contact_editor_address->gui = NULL;
}
-#if notyet
if (e_contact_editor_address->address) {
- e_card_delivery_address_unref(e_contact_editor_address->address);
+ e_contact_address_free (e_contact_editor_address->address);
e_contact_editor_address->address = NULL;
}
-#endif
if (G_OBJECT_CLASS (parent_class)->dispose)
(* G_OBJECT_CLASS (parent_class)->dispose) (object);
}
GtkWidget*
-e_contact_editor_address_new (/* XXX notyet const ECardDeliveryAddress *address*/)
+e_contact_editor_address_new (const EContactAddress *address)
{
GtkWidget *widget = g_object_new (E_TYPE_CONTACT_EDITOR_ADDRESS, NULL);
-#if notyet
+
g_object_set (widget,
"address", address,
NULL);
-#endif
+
return widget;
}
@@ -488,11 +485,11 @@ e_contact_editor_address_set_property (GObject *object, guint prop_id,
switch (prop_id){
case PROP_ADDRESS:
-#if notyet
- e_card_delivery_address_unref(e_contact_editor_address->address);
- e_contact_editor_address->address = e_card_delivery_address_copy(g_value_get_pointer (value));
- fill_in_info(e_contact_editor_address);
-#endif
+ if (e_contact_editor_address->address)
+ g_boxed_free (e_contact_address_get_type (), e_contact_editor_address->address);
+
+ e_contact_editor_address->address = g_value_dup_boxed (value);
+ fill_in_info (e_contact_editor_address);
break;
case PROP_EDITABLE: {
int i;
@@ -547,10 +544,8 @@ e_contact_editor_address_get_property (GObject *object, guint prop_id,
switch (prop_id) {
case PROP_ADDRESS:
- extract_info(e_contact_editor_address);
-#if notyet
- g_value_set_pointer (value, e_card_delivery_address_ref(e_contact_editor_address->address));
-#endif
+ extract_info (e_contact_editor_address);
+ g_value_set_static_boxed (value, e_contact_editor_address->address);
break;
case PROP_EDITABLE:
g_value_set_boolean (value, e_contact_editor_address->editable ? TRUE : FALSE);
@@ -576,18 +571,17 @@ fill_in_field(EContactEditorAddress *editor, char *field, char *string)
static void
fill_in_info(EContactEditorAddress *editor)
{
-#if notyet
- ECardDeliveryAddress *address = editor->address;
+ EContactAddress *address = editor->address;
+
if (address) {
- fill_in_field(editor, "entry-street" , address->street );
- fill_in_field(editor, "entry-po" , address->po );
- fill_in_field(editor, "entry-ext" , address->ext );
- fill_in_field(editor, "entry-city" , address->city );
- fill_in_field(editor, "entry-region" , address->region );
- fill_in_field(editor, "entry-code" , address->code );
- fill_in_field(editor, "entry-country", address->country);
+ fill_in_field (editor, "entry-street" , address->street );
+ fill_in_field (editor, "entry-po" , address->po );
+ fill_in_field (editor, "entry-ext" , address->ext );
+ fill_in_field (editor, "entry-city" , address->locality);
+ fill_in_field (editor, "entry-region" , address->region );
+ fill_in_field (editor, "entry-code" , address->code );
+ fill_in_field (editor, "entry-country", address->country );
}
-#endif
}
static char *
@@ -603,18 +597,20 @@ extract_field(EContactEditorAddress *editor, char *field)
static void
extract_info(EContactEditorAddress *editor)
{
-#if notyet
- ECardDeliveryAddress *address = editor->address;
- if (!address) {
- address = e_card_delivery_address_new();
- editor->address = address;
+ EContactAddress *address = editor->address;
+
+ if (address) {
+ g_boxed_free (e_contact_address_get_type (), address);
}
- address->street = extract_field(editor, "entry-street" );
- address->po = extract_field(editor, "entry-po" );
- address->ext = extract_field(editor, "entry-ext" );
- address->city = extract_field(editor, "entry-city" );
- address->region = extract_field(editor, "entry-region" );
- address->code = extract_field(editor, "entry-code" );
- address->country = extract_field(editor, "entry-country");
-#endif
+
+ address = g_new0 (EContactAddress, 1);
+ editor->address = address;
+
+ address->street = extract_field(editor, "entry-street" );
+ address->po = extract_field(editor, "entry-po" );
+ address->ext = extract_field(editor, "entry-ext" );
+ address->locality = extract_field(editor, "entry-city" );
+ address->region = extract_field(editor, "entry-region" );
+ address->code = extract_field(editor, "entry-code" );
+ address->country = extract_field(editor, "entry-country");
}
diff --git a/addressbook/gui/contact-editor/e-contact-editor-address.h b/addressbook/gui/contact-editor/e-contact-editor-address.h
index 893a2ea2f7..30fefa0e56 100644
--- a/addressbook/gui/contact-editor/e-contact-editor-address.h
+++ b/addressbook/gui/contact-editor/e-contact-editor-address.h
@@ -48,11 +48,9 @@ typedef struct _EContactEditorAddressClass EContactEditorAddressClass;
struct _EContactEditorAddress
{
GtkDialog parent;
-
-#if notyet
+
/* item specific fields */
- ECardDeliveryAddress *address;
-#endif
+ EContactAddress *address;
guint editable : 1;
@@ -65,7 +63,7 @@ struct _EContactEditorAddressClass
};
-GtkWidget *e_contact_editor_address_new(/* XXX not yet const ECardDeliveryAddress *name*/);
+GtkWidget *e_contact_editor_address_new (const EContactAddress *address);
GType e_contact_editor_address_get_type (void);
G_END_DECLS