diff options
Diffstat (limited to 'mail/em-account-editor.c')
-rw-r--r-- | mail/em-account-editor.c | 121 |
1 files changed, 82 insertions, 39 deletions
diff --git a/mail/em-account-editor.c b/mail/em-account-editor.c index 45dd41fd9a..6bd96ef299 100644 --- a/mail/em-account-editor.c +++ b/mail/em-account-editor.c @@ -3786,8 +3786,12 @@ emae_defaults_page (EConfig *ec, priv->trash_folder_button, "sensitive", G_BINDING_SYNC_CREATE); - pspec = !settings ? NULL : g_object_class_find_property ( - G_OBJECT_GET_CLASS (settings), "use-real-trash-path"); + if (settings != NULL) + pspec = g_object_class_find_property ( + G_OBJECT_GET_CLASS (settings), + "use-real-trash-path"); + else + pspec = NULL; if (pspec != NULL) g_object_bind_property ( @@ -3796,12 +3800,20 @@ emae_defaults_page (EConfig *ec, G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - pspec = !settings ? NULL : g_object_class_find_property ( - G_OBJECT_GET_CLASS (settings), "real-trash-path"); + if (settings != NULL) + pspec = g_object_class_find_property ( + G_OBJECT_GET_CLASS (settings), + "real-trash-path"); + else + pspec = NULL; if (pspec != NULL) { - set_real_folder_path (priv->trash_folder_button, settings, "real-trash-path", account); - g_signal_connect (priv->trash_folder_button, "notify::folder-uri", G_CALLBACK (update_real_folder_cb), emae); + set_real_folder_path ( + priv->trash_folder_button, + settings, "real-trash-path", account); + g_signal_connect ( + priv->trash_folder_button, "notify::folder-uri", + G_CALLBACK (update_real_folder_cb), emae); } flags = CAMEL_PROVIDER_ALLOW_REAL_TRASH_FOLDER; @@ -3832,8 +3844,12 @@ emae_defaults_page (EConfig *ec, priv->junk_folder_button, "sensitive", G_BINDING_SYNC_CREATE); - pspec = !settings ? NULL : g_object_class_find_property ( - G_OBJECT_GET_CLASS (settings), "use-real-junk-path"); + if (settings != NULL) + pspec = g_object_class_find_property ( + G_OBJECT_GET_CLASS (settings), + "use-real-junk-path"); + else + pspec = NULL; if (pspec != NULL) g_object_bind_property ( @@ -3842,12 +3858,20 @@ emae_defaults_page (EConfig *ec, G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - pspec = !settings ? NULL : g_object_class_find_property ( - G_OBJECT_GET_CLASS (settings), "real-junk-path"); + if (settings != NULL) + pspec = g_object_class_find_property ( + G_OBJECT_GET_CLASS (settings), + "real-junk-path"); + else + pspec = NULL; if (pspec != NULL) { - set_real_folder_path (priv->junk_folder_button, settings, "real-junk-path", account); - g_signal_connect (priv->junk_folder_button, "notify::folder-uri", G_CALLBACK (update_real_folder_cb), emae); + set_real_folder_path ( + priv->junk_folder_button, + settings, "real-junk-path", account); + g_signal_connect ( + priv->junk_folder_button, "notify::folder-uri", + G_CALLBACK (update_real_folder_cb), emae); } flags = CAMEL_PROVIDER_ALLOW_REAL_JUNK_FOLDER; @@ -3861,7 +3885,9 @@ emae_defaults_page (EConfig *ec, /* Special Folders "Reset Defaults" button */ priv->restore_folders_button = (GtkButton *)e_builder_get_widget (builder, "default_folders_button"); - g_signal_connect (priv->restore_folders_button, "clicked", G_CALLBACK (default_folders_clicked), emae); + g_signal_connect ( + priv->restore_folders_button, "clicked", + G_CALLBACK (default_folders_clicked), emae); /* Always Cc/Bcc */ emae_account_toggle (emae, "always_cc", E_ACCOUNT_CC_ALWAYS, builder); @@ -3869,12 +3895,13 @@ emae_defaults_page (EConfig *ec, emae_account_toggle (emae, "always_bcc", E_ACCOUNT_BCC_ALWAYS, builder); emae_account_entry (emae, "bcc_addrs", E_ACCOUNT_BCC_ADDRS, builder); - gtk_widget_set_sensitive ( (GtkWidget *) priv->sent_folder_button, - (provider ? !(provider->flags & CAMEL_PROVIDER_DISABLE_SENT_FOLDER): TRUE) - ); + gtk_widget_set_sensitive ( + GTK_WIDGET (priv->sent_folder_button), + (provider ? !(provider->flags & CAMEL_PROVIDER_DISABLE_SENT_FOLDER) : TRUE)); - gtk_widget_set_sensitive ((GtkWidget *) priv->restore_folders_button, - (provider && !(provider->flags & CAMEL_PROVIDER_DISABLE_SENT_FOLDER))); + gtk_widget_set_sensitive ( + GTK_WIDGET (priv->restore_folders_button), + (provider && !(provider->flags & CAMEL_PROVIDER_DISABLE_SENT_FOLDER))); /* Receipt policy */ emae_setup_receipt_policy (emae, builder); @@ -4809,7 +4836,7 @@ forget_password_if_needed (EAccount *original_account, #define CALENDAR_CALDAV_URI "caldav://%s@www.google.com/calendar/dav/%s/events" #define GMAIL_CALENDAR_LOCATION "://www.google.com/calendar/feeds/" #define CALENDAR_DEFAULT_PATH "/private/full" -#define SELECTED_CALENDARS "/apps/evolution/calendar/display/selected_calendars" +#define SELECTED_CALENDARS "selected-calendars" #define YAHOO_CALENDAR_LOCATION "%s@caldav.calendar.yahoo.com/dav/%s/Calendar/%s" static gchar * @@ -4896,8 +4923,11 @@ setup_google_calendar (EMAccountEditor *emae) ESource *calendar; gchar *sanitize_uname, *username; gchar *abs_uri, *rel_uri; - GSList *ids, *temp; + gchar **ids; + gint i; + GPtrArray *array; CamelURL *url; + GSettings *settings; gconf = gconf_client_get_default (); slist = e_source_list_new_for_gconf (gconf, "/apps/evolution/calendar/sources"); @@ -4929,16 +4959,21 @@ setup_google_calendar (EMAccountEditor *emae) e_source_list_sync (slist, NULL); - ids = gconf_client_get_list (gconf, SELECTED_CALENDARS, GCONF_VALUE_STRING, NULL); - ids = g_slist_append (ids, g_strdup (e_source_peek_uid (calendar))); - gconf_client_set_list (gconf, SELECTED_CALENDARS, GCONF_VALUE_STRING, ids, NULL); - temp = ids; - - for (; temp != NULL; temp = g_slist_next (temp)) - g_free (temp->data); - + settings = g_settings_new ("org.gnome.evolution.calendar"); + ids = g_settings_get_strv (settings, SELECTED_CALENDARS); + array = g_ptr_array_new (); + for (i = 0; ids[i] != NULL; i++) + g_ptr_array_add (array, ids[i]); + g_ptr_array_add (array, (gpointer) e_source_peek_uid (calendar)); + g_ptr_array_add (array, NULL); + g_settings_set_strv ( + settings, SELECTED_CALENDARS, + (const gchar * const *) array->pdata); + + g_strfreev (ids); + g_ptr_array_free (array, TRUE); + g_object_unref (settings); g_free (username); - g_slist_free (ids); g_free (abs_uri); g_free (rel_uri); g_free (sanitize_uname); @@ -4957,8 +4992,11 @@ setup_yahoo_calendar (EMAccountEditor *emae) ESource *calendar; gchar *sanitize_uname; gchar *abs_uri, *rel_uri; - GSList *ids, *temp; const gchar *email; + GSettings *settings; + gchar **ids; + gint i; + GPtrArray *array; gconf = gconf_client_get_default (); email = e_account_get_string (em_account_editor_get_modified_account (emae), E_ACCOUNT_ID_ADDRESS); @@ -4993,15 +5031,20 @@ setup_yahoo_calendar (EMAccountEditor *emae) e_source_group_add_source (sgrp, calendar, -1); e_source_list_sync (slist, NULL); - ids = gconf_client_get_list (gconf, SELECTED_CALENDARS, GCONF_VALUE_STRING, NULL); - ids = g_slist_append (ids, g_strdup (e_source_peek_uid (calendar))); - gconf_client_set_list (gconf, SELECTED_CALENDARS, GCONF_VALUE_STRING, ids, NULL); - temp = ids; - - for (; temp != NULL; temp = g_slist_next (temp)) - g_free (temp->data); - - g_slist_free (ids); + settings = g_settings_new ("org.gnome.evolution.calendar"); + ids = g_settings_get_strv (settings, SELECTED_CALENDARS); + array = g_ptr_array_new (); + for (i = 0; ids[i] != NULL; i++) + g_ptr_array_add (array, ids[i]); + g_ptr_array_add (array, (gpointer) e_source_peek_uid (calendar)); + g_ptr_array_add (array, NULL); + g_settings_set_strv ( + settings, SELECTED_CALENDARS, + (const gchar * const *) array->pdata); + + g_strfreev (ids); + g_ptr_array_free (array, TRUE); + g_object_unref (settings); g_free (abs_uri); g_free (rel_uri); g_free (sanitize_uname); |