From 3218a0ae85011e050b678043942136cfc6746c4c Mon Sep 17 00:00:00 2001
From: Dan Vrátil <dvratil@redhat.com>
Date: Fri, 7 Oct 2011 14:44:05 +0200
Subject: Bug #659876 - Make automatic contact address formatting optional

Added only GConf option to schema, GUI option will be available in
Evolution 3.4.
---
 addressbook/gui/contact-editor/e-contact-editor.c | 26 +++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

(limited to 'addressbook/gui')

diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c
index 6ce9524afc..19e247f04c 100644
--- a/addressbook/gui/contact-editor/e-contact-editor.c
+++ b/addressbook/gui/contact-editor/e-contact-editor.c
@@ -2301,17 +2301,35 @@ set_address_label (EContact *contact,
                    EContactAddress *address)
 {
 	gchar *address_label = NULL;
+	gboolean format_address;
+	GConfClient *client;
+	GConfValue *value;
 
 	if (!address) {
 		e_contact_set (contact, field, NULL);
 		return;
 	}
 
-	address_label = eab_format_address (contact,
-				(field == E_CONTACT_ADDRESS_LABEL_WORK) ? E_CONTACT_ADDRESS_WORK :
-									  E_CONTACT_ADDRESS_HOME);
 
-	if (!address_label) {
+	client = gconf_client_get_default ();
+	value = gconf_client_get (client,
+		"/apps/evolution/addressbook/display/address_formatting", NULL);
+	g_object_unref (client);
+
+	if (value) {
+		format_address = gconf_value_get_bool (value);
+		gconf_value_free (value);
+	} else {
+		format_address = TRUE;
+	}
+
+	if (format_address) {
+		address_label = eab_format_address (contact,
+					(field == E_CONTACT_ADDRESS_LABEL_WORK) ? E_CONTACT_ADDRESS_WORK :
+										  E_CONTACT_ADDRESS_HOME);
+	}
+
+	if (!format_address || !address_label) {
 		address_label = append_to_address_label (
 			address_label, address->street, TRUE);
 		address_label = append_to_address_label (
-- 
cgit