diff options
author | Milan Crha <mcrha@redhat.com> | 2009-10-13 23:27:23 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2009-10-13 23:27:23 +0800 |
commit | 2efaad9c77b988b9d64256ff65976b2b5fe255cb (patch) | |
tree | e77ca4f349e69c32454d2ab59dada9bcca1d29d8 | |
parent | e06b88c4fda627599d7c1a33ddec0a35a4374e4f (diff) | |
download | gsoc2013-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.c | 54 |
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 }, |