[evolution] Bug #329100 - Choosing adress book for birthdays



commit 2efaad9c77b988b9d64256ff65976b2b5fe255cb
Author: Milan Crha <mcrha redhat com>
Date:   Tue Oct 13 17:27:23 2009 +0200

    Bug #329100 - Choosing adress book for birthdays

 modules/addressbook/addressbook-config.c |   54 +++++++++++++++++++++++------
 1 files changed, 43 insertions(+), 11 deletions(-)
---
diff --git a/modules/addressbook/addressbook-config.c b/modules/addressbook/addressbook-config.c
index 901ee43..1a9f4a4 100644
--- a/modules/addressbook/addressbook-config.c
+++ b/modules/addressbook/addressbook-config.c
@@ -579,16 +579,6 @@ name_changed_cb(GtkWidget *w, AddressbookSourceDialog *sdialog)
 	e_source_set_name (sdialog->source, gtk_entry_get_text (GTK_ENTRY (sdialog->display_name)));
 }
 
-static void
-offline_status_changed_cb (GtkWidget *widget, AddressbookSourceDialog *sdialog)
-{
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
-		e_source_set_property (sdialog->source, "offline_sync", "1");
-	else
-		e_source_set_property (sdialog->source, "offline_sync", "0");
-
-}
-
 static GtkWidget *
 eabc_general_name(EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget *old, gpointer data)
 {
@@ -627,6 +617,47 @@ eabc_general_name(EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget *
 	return w;
 }
 
+/* TODO: This should be moved to plugins if B&A calendar setup is moved there */
+static void
+use_in_cal_changed_cb (GtkWidget *widget, AddressbookSourceDialog *sdialog)
+{
+	e_source_set_property (sdialog->source, "use-in-contacts-calendar", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)) ? "1" : "0");
+}
+
+static GtkWidget *
+eabc_general_use_in_cal (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget *old, gpointer data)
+{
+	AddressbookSourceDialog *sdialog = data;
+	GtkWidget *use_in_cal_setting;
+	const gchar *use_in_cal, *base_uri = NULL;
+	ESourceGroup *group;
+
+	if (old)
+		return old;
+
+	use_in_cal_setting = gtk_check_button_new_with_mnemonic (_("Use in _Birthday & Anniversaries calendar"));
+	gtk_widget_show (use_in_cal_setting);
+	gtk_container_add (GTK_CONTAINER (parent), use_in_cal_setting);
+
+	use_in_cal =  e_source_get_property (sdialog->source, "use-in-contacts-calendar");
+	group = e_source_peek_group (sdialog->source);
+
+	if (group)
+		base_uri = e_source_group_peek_base_uri (group);
+
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (use_in_cal_setting), (use_in_cal && g_str_equal (use_in_cal, "1")) || (!use_in_cal && base_uri && g_str_has_prefix (base_uri, "file://")));
+
+	g_signal_connect (use_in_cal_setting, "toggled", G_CALLBACK (use_in_cal_changed_cb), sdialog);
+
+	return use_in_cal_setting;
+}
+
+static void
+offline_status_changed_cb (GtkWidget *widget, AddressbookSourceDialog *sdialog)
+{
+	e_source_set_property (sdialog->source, "offline_sync", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)) ? "1" : "0");
+}
+
 static GtkWidget *
 eabc_general_offline(EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget *old, gpointer data)
 {
@@ -1015,7 +1046,8 @@ static EConfigItem eabc_items[] = {
 	{ E_CONFIG_PAGE, (gchar *) "00.general", (gchar *) N_("General") },
 	{ E_CONFIG_SECTION, (gchar *) "00.general/10.display", (gchar *) N_("Address Book") },
 	{ E_CONFIG_ITEM, (gchar *) "00.general/10.display/10.name", (gchar *) "hbox122", eabc_general_name },
-	{ E_CONFIG_ITEM, (gchar *) "00.general/10.display/20.offline", NULL, eabc_general_offline },
+	{ E_CONFIG_ITEM, (gchar *) "00.general/10.display/20.calendar", NULL, eabc_general_use_in_cal },
+	{ E_CONFIG_ITEM, (gchar *) "00.general/10.display/30.offline", NULL, eabc_general_offline },
 #ifdef HAVE_LDAP
 	{ E_CONFIG_SECTION, (gchar *) "00.general/20.server", (gchar *) N_("Server Information") },
 	{ E_CONFIG_ITEM, (gchar *) "00.general/20.server/00.host", (gchar *) "table31", eabc_general_host },



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