[libgdata] [contacts] Added methods to remove all (e.g.) phone numbers from a contact



commit 352a620bff7fd01d5c9e9fd455b42eeecce16786
Author: Philip Withnall <philip tecnocode co uk>
Date:   Sun Jul 19 18:43:05 2009 +0100

    [contacts] Added methods to remove all (e.g.) phone numbers from a contact

 docs/reference/gdata-sections.txt                |    5 +
 gdata/gdata.symbols                              |    5 +
 gdata/services/contacts/gdata-contacts-contact.c |  146 +++++++++++++++++-----
 gdata/services/contacts/gdata-contacts-contact.h |    5 +
 4 files changed, 131 insertions(+), 30 deletions(-)
---
diff --git a/docs/reference/gdata-sections.txt b/docs/reference/gdata-sections.txt
index 229f4cb..355141f 100644
--- a/docs/reference/gdata-sections.txt
+++ b/docs/reference/gdata-sections.txt
@@ -306,18 +306,23 @@ gdata_contacts_contact_new
 gdata_contacts_contact_get_email_addresses
 gdata_contacts_contact_get_primary_email_address
 gdata_contacts_contact_add_email_address
+gdata_contacts_contact_remove_all_email_addresses
 gdata_contacts_contact_get_im_addresses
 gdata_contacts_contact_get_primary_im_address
 gdata_contacts_contact_add_im_address
+gdata_contacts_contact_remove_all_im_addresses
 gdata_contacts_contact_get_postal_addresses
 gdata_contacts_contact_get_primary_postal_address
 gdata_contacts_contact_add_postal_address
+gdata_contacts_contact_remove_all_postal_addresses
 gdata_contacts_contact_get_phone_numbers
 gdata_contacts_contact_get_primary_phone_number
 gdata_contacts_contact_add_phone_number
+gdata_contacts_contact_remove_all_phone_numbers
 gdata_contacts_contact_get_organizations
 gdata_contacts_contact_get_primary_organization
 gdata_contacts_contact_add_organization
+gdata_contacts_contact_remove_all_organizations
 gdata_contacts_contact_get_groups
 gdata_contacts_contact_add_group
 gdata_contacts_contact_remove_group
diff --git a/gdata/gdata.symbols b/gdata/gdata.symbols
index b666912..9bb8645 100644
--- a/gdata/gdata.symbols
+++ b/gdata/gdata.symbols
@@ -272,18 +272,23 @@ gdata_contacts_contact_get_edited
 gdata_contacts_contact_add_email_address
 gdata_contacts_contact_get_email_addresses
 gdata_contacts_contact_get_primary_email_address
+gdata_contacts_contact_remove_all_email_addresses
 gdata_contacts_contact_add_im_address
 gdata_contacts_contact_get_im_addresses
 gdata_contacts_contact_get_primary_im_address
+gdata_contacts_contact_remove_all_im_addresses
 gdata_contacts_contact_add_phone_number
 gdata_contacts_contact_get_phone_numbers
 gdata_contacts_contact_get_primary_phone_number
+gdata_contacts_contact_remove_all_phone_numbers
 gdata_contacts_contact_add_postal_address
 gdata_contacts_contact_get_postal_addresses
 gdata_contacts_contact_get_primary_postal_address
+gdata_contacts_contact_remove_all_postal_addresses
 gdata_contacts_contact_add_organization
 gdata_contacts_contact_get_organizations
 gdata_contacts_contact_get_primary_organization
+gdata_contacts_contact_remove_all_organizations
 gdata_contacts_contact_get_extended_property
 gdata_contacts_contact_get_extended_properties
 gdata_contacts_contact_set_extended_property
diff --git a/gdata/services/contacts/gdata-contacts-contact.c b/gdata/services/contacts/gdata-contacts-contact.c
index bfae3a9..e0bce7c 100644
--- a/gdata/services/contacts/gdata-contacts-contact.c
+++ b/gdata/services/contacts/gdata-contacts-contact.c
@@ -145,37 +145,13 @@ gdata_contacts_contact_init (GDataContactsContact *self)
 static void
 gdata_contacts_contact_dispose (GObject *object)
 {
-	GDataContactsContactPrivate *priv = GDATA_CONTACTS_CONTACT (object)->priv;
-
-	if (priv->organizations != NULL) {
-		g_list_foreach (priv->organizations, (GFunc) g_object_unref, NULL);
-		g_list_free (priv->organizations);
-	}
-	priv->organizations = NULL;
-
-	if (priv->email_addresses != NULL) {
-		g_list_foreach (priv->email_addresses, (GFunc) g_object_unref, NULL);
-		g_list_free (priv->email_addresses);
-	}
-	priv->email_addresses = NULL;
-
-	if (priv->im_addresses != NULL) {
-		g_list_foreach (priv->im_addresses, (GFunc) g_object_unref, NULL);
-		g_list_free (priv->im_addresses);
-	}
-	priv->im_addresses = NULL;
+	GDataContactsContact *self = GDATA_CONTACTS_CONTACT (object);
 
-	if (priv->postal_addresses != NULL) {
-		g_list_foreach (priv->postal_addresses, (GFunc) g_object_unref, NULL);
-		g_list_free (priv->postal_addresses);
-	}
-	priv->postal_addresses = NULL;
-
-	if (priv->phone_numbers != NULL) {
-		g_list_foreach (priv->phone_numbers, (GFunc) g_object_unref, NULL);
-		g_list_free (priv->phone_numbers);
-	}
-	priv->phone_numbers = NULL;
+	gdata_contacts_contact_remove_all_organizations (self);
+	gdata_contacts_contact_remove_all_email_addresses (self);
+	gdata_contacts_contact_remove_all_im_addresses (self);
+	gdata_contacts_contact_remove_all_postal_addresses (self);
+	gdata_contacts_contact_remove_all_phone_numbers (self);
 
 	/* Chain up to the parent class */
 	G_OBJECT_CLASS (gdata_contacts_contact_parent_class)->dispose (object);
@@ -516,6 +492,28 @@ gdata_contacts_contact_get_primary_email_address (GDataContactsContact *self)
 }
 
 /**
+ * gdata_contacts_contact_remove_all_email_addresses:
+ * @self: a #GDataContactsContact
+ *
+ * Removes all e-mail addresses from the contact.
+ *
+ * Since: 0.4.0
+ **/
+void
+gdata_contacts_contact_remove_all_email_addresses (GDataContactsContact *self)
+{
+	GDataContactsContactPrivate *priv = self->priv;
+
+	g_return_if_fail (GDATA_IS_CONTACTS_CONTACT (self));
+
+	if (priv->email_addresses != NULL) {
+		g_list_foreach (priv->email_addresses, (GFunc) g_object_unref, NULL);
+		g_list_free (priv->email_addresses);
+	}
+	priv->email_addresses = NULL;
+}
+
+/**
  * gdata_contacts_contact_add_im_address:
  * @self: a #GDataContactsContact
  * @im_address: a #GDataGDIMAddress to add
@@ -583,6 +581,28 @@ gdata_contacts_contact_get_primary_im_address (GDataContactsContact *self)
 }
 
 /**
+ * gdata_contacts_contact_remove_all_im_addresses:
+ * @self: a #GDataContactsContact
+ *
+ * Removes all IM addresses from the contact.
+ *
+ * Since: 0.4.0
+ **/
+void
+gdata_contacts_contact_remove_all_im_addresses (GDataContactsContact *self)
+{
+	GDataContactsContactPrivate *priv = self->priv;
+
+	g_return_if_fail (GDATA_IS_CONTACTS_CONTACT (self));
+
+	if (priv->im_addresses != NULL) {
+		g_list_foreach (priv->im_addresses, (GFunc) g_object_unref, NULL);
+		g_list_free (priv->im_addresses);
+	}
+	priv->im_addresses = NULL;
+}
+
+/**
  * gdata_contacts_contact_add_phone_number:
  * @self: a #GDataContactsContact
  * @phone_number: a #GDataGDPhoneNumber to add
@@ -650,6 +670,28 @@ gdata_contacts_contact_get_primary_phone_number (GDataContactsContact *self)
 }
 
 /**
+ * gdata_contacts_contact_remove_all_phone_numbers:
+ * @self: a #GDataContactsContact
+ *
+ * Removes all phone numbers from the contact.
+ *
+ * Since: 0.4.0
+ **/
+void
+gdata_contacts_contact_remove_all_phone_numbers (GDataContactsContact *self)
+{
+	GDataContactsContactPrivate *priv = self->priv;
+
+	g_return_if_fail (GDATA_IS_CONTACTS_CONTACT (self));
+
+	if (priv->phone_numbers != NULL) {
+		g_list_foreach (priv->phone_numbers, (GFunc) g_object_unref, NULL);
+		g_list_free (priv->phone_numbers);
+	}
+	priv->phone_numbers = NULL;
+}
+
+/**
  * gdata_contacts_contact_add_postal_address:
  * @self: a #GDataContactsContact
  * @postal_address: a #GDataGDPostalAddress to add
@@ -717,6 +759,28 @@ gdata_contacts_contact_get_primary_postal_address (GDataContactsContact *self)
 }
 
 /**
+ * gdata_contacts_contact_remove_all_postal_addresses:
+ * @self: a #GDataContactsContact
+ *
+ * Removes all postal addresses from the contact.
+ *
+ * Since: 0.4.0
+ **/
+void
+gdata_contacts_contact_remove_all_postal_addresses (GDataContactsContact *self)
+{
+	GDataContactsContactPrivate *priv = self->priv;
+
+	g_return_if_fail (GDATA_IS_CONTACTS_CONTACT (self));
+
+	if (priv->postal_addresses != NULL) {
+		g_list_foreach (priv->postal_addresses, (GFunc) g_object_unref, NULL);
+		g_list_free (priv->postal_addresses);
+	}
+	priv->postal_addresses = NULL;
+}
+
+/**
  * gdata_contacts_contact_add_organization:
  * @self: a #GDataContactsContact
  * @organization: a #GDataGDOrganization to add
@@ -784,6 +848,28 @@ gdata_contacts_contact_get_primary_organization (GDataContactsContact *self)
 }
 
 /**
+ * gdata_contacts_contact_remove_all_organizations:
+ * @self: a #GDataContactsContact
+ *
+ * Removes all organizations from the contact.
+ *
+ * Since: 0.4.0
+ **/
+void
+gdata_contacts_contact_remove_all_organizations (GDataContactsContact *self)
+{
+	GDataContactsContactPrivate *priv = self->priv;
+
+	g_return_if_fail (GDATA_IS_CONTACTS_CONTACT (self));
+
+	if (priv->organizations != NULL) {
+		g_list_foreach (priv->organizations, (GFunc) g_object_unref, NULL);
+		g_list_free (priv->organizations);
+	}
+	priv->organizations = NULL;
+}
+
+/**
  * gdata_contacts_contact_get_extended_property:
  * @self: a #GDataContactsContact
  * @name: the property name; an arbitrary, unique string
diff --git a/gdata/services/contacts/gdata-contacts-contact.h b/gdata/services/contacts/gdata-contacts-contact.h
index d3d7798..11e89f4 100644
--- a/gdata/services/contacts/gdata-contacts-contact.h
+++ b/gdata/services/contacts/gdata-contacts-contact.h
@@ -71,22 +71,27 @@ gboolean gdata_contacts_contact_is_deleted (GDataContactsContact *self);
 void gdata_contacts_contact_add_email_address (GDataContactsContact *self, GDataGDEmailAddress *email_address);
 GList *gdata_contacts_contact_get_email_addresses (GDataContactsContact *self);
 GDataGDEmailAddress *gdata_contacts_contact_get_primary_email_address (GDataContactsContact *self);
+void gdata_contacts_contact_remove_all_email_addresses (GDataContactsContact *self);
 
 void gdata_contacts_contact_add_im_address (GDataContactsContact *self, GDataGDIMAddress *im_address);
 GList *gdata_contacts_contact_get_im_addresses (GDataContactsContact *self);
 GDataGDIMAddress *gdata_contacts_contact_get_primary_im_address (GDataContactsContact *self);
+void gdata_contacts_contact_remove_all_im_addresses (GDataContactsContact *self);
 
 void gdata_contacts_contact_add_phone_number (GDataContactsContact *self, GDataGDPhoneNumber *phone_number);
 GList *gdata_contacts_contact_get_phone_numbers (GDataContactsContact *self);
 GDataGDPhoneNumber *gdata_contacts_contact_get_primary_phone_number (GDataContactsContact *self);
+void gdata_contacts_contact_remove_all_phone_numbers (GDataContactsContact *self);
 
 void gdata_contacts_contact_add_postal_address (GDataContactsContact *self, GDataGDPostalAddress *postal_address);
 GList *gdata_contacts_contact_get_postal_addresses (GDataContactsContact *self);
 GDataGDPostalAddress *gdata_contacts_contact_get_primary_postal_address (GDataContactsContact *self);
+void gdata_contacts_contact_remove_all_postal_addresses (GDataContactsContact *self);
 
 void gdata_contacts_contact_add_organization (GDataContactsContact *self, GDataGDOrganization *organization);
 GList *gdata_contacts_contact_get_organizations (GDataContactsContact *self);
 GDataGDOrganization *gdata_contacts_contact_get_primary_organization (GDataContactsContact *self);
+void gdata_contacts_contact_remove_all_organizations (GDataContactsContact *self);
 
 const gchar *gdata_contacts_contact_get_extended_property (GDataContactsContact *self, const gchar *name);
 GHashTable *gdata_contacts_contact_get_extended_properties (GDataContactsContact *self);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]