aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2009-10-13 23:27:23 +0800
committerMilan Crha <mcrha@redhat.com>2009-10-13 23:27:23 +0800
commit2efaad9c77b988b9d64256ff65976b2b5fe255cb (patch)
treee77ca4f349e69c32454d2ab59dada9bcca1d29d8
parente06b88c4fda627599d7c1a33ddec0a35a4374e4f (diff)
downloadgsoc2013-evolution-2efaad9c77b988b9d64256ff65976b2b5fe255cb.tar
gsoc2013-evolution-2efaad9c77b988b9d64256ff65976b2b5fe255cb.tar.gz
gsoc2013-evolution-2efaad9c77b988b9d64256ff65976b2b5fe255cb.tar.bz2
gsoc2013-evolution-2efaad9c77b988b9d64256ff65976b2b5fe255cb.tar.lz
gsoc2013-evolution-2efaad9c77b988b9d64256ff65976b2b5fe255cb.tar.xz
gsoc2013-evolution-2efaad9c77b988b9d64256ff65976b2b5fe255cb.tar.zst
gsoc2013-evolution-2efaad9c77b988b9d64256ff65976b2b5fe255cb.zip
Bug #329100 - Choosing adress book for birthdays
-rw-r--r--modules/addressbook/addressbook-config.c54
1 files changed, 43 insertions, 11 deletions
diff --git a/modules/addressbook/addressbook-config.c b/modules/addressbook/addressbook-config.c
index 901ee4353b..1a9f4a4e95 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 },