diff options
-rw-r--r-- | data/Makefile.am | 1 | ||||
-rw-r--r-- | data/evolution.convert | 9 | ||||
-rw-r--r-- | data/org.gnome.evolution.eplugin.autocontacts.gschema.xml.in | 39 | ||||
-rw-r--r-- | plugins/bbdb/bbdb.c | 141 | ||||
-rw-r--r-- | plugins/bbdb/bbdb.h | 16 | ||||
-rw-r--r-- | plugins/bbdb/gaimbuddies.c | 29 |
6 files changed, 132 insertions, 103 deletions
diff --git a/data/Makefile.am b/data/Makefile.am index 4a4cc278d2..1aed9b3afe 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -18,6 +18,7 @@ gsettings_SCHEMAS = \ org.gnome.evolution.mail.gschema.xml \ org.gnome.evolution.shell.gschema.xml \ org.gnome.evolution.eplugin.attachment-reminder.gschema.xml \ + org.gnome.evolution.eplugin.autocontacts.gschema.xml \ org.gnome.evolution.eplugin.bogo-junk.gschema.xml \ org.gnome.evolution.eplugin.email-custom-header.gschema.xml \ org.gnome.evolution.eplugin.external-editor.gschema.xml \ diff --git a/data/evolution.convert b/data/evolution.convert index ecb5236406..190b9ee555 100644 --- a/data/evolution.convert +++ b/data/evolution.convert @@ -235,6 +235,15 @@ vfolder-editor-width = /apps/evolution/mail/vfolder_editor_width [org.gnome.evolution.eplugin.attachment-reminder] attachment-reminder-clues = /apps/evolution/mail/attachment_reminder_clues +[org.gnome.evolution.eplugin.autocontacts] +addressbook-source = /apps/evolution/autocontacts/addressbook_source +auto-sync-gaim = /apps/evolution/autocontacts/auto_sync_gaim +enable = /apps/evolution/autocontacts/enable_autocontacts +gaim-addressbook-source = /apps/evolution/autocontacts/gaim_addressbook_source +gaim-check-interval = /apps/evolution/autocontacts/gaim_check_interval +gaim-last-sync-md5 = /apps/evolution/autocontacts/gaim_last_sync_md5 +gaim-last-sync-time = /apps/evolution/autocontacts/gaim_last_sync_time + [org.gnome.evolution.eplugin.bogo-junk] utf8-for-spam-filter = /apps/evolution/mail/junk/bogofilter/unicode diff --git a/data/org.gnome.evolution.eplugin.autocontacts.gschema.xml.in b/data/org.gnome.evolution.eplugin.autocontacts.gschema.xml.in new file mode 100644 index 0000000000..f1ff4a12e2 --- /dev/null +++ b/data/org.gnome.evolution.eplugin.autocontacts.gschema.xml.in @@ -0,0 +1,39 @@ +<schemalist> + <schema gettext-domain="evolution" id="org.gnome.evolution.eplugin.autocontacts" path="/org/gnome/evolution/eplugin/autocontacts/"> + <key name="addressbook-source" type="s"> + <default>''</default> + <_summary>Address book source</_summary> + <_description>Address book to use for storing automatically synced contacts</_description> + </key> + <key name="auto-sync-gaim" type="b"> + <default>false</default> + <_summary>Auto sync GAIM contacts</_summary> + <_description>Whether GAIM contacts should be automaticall synced</_description> + </key> + <key name="enable" type="b"> + <default>false</default> + <_summary>Enable autocontacts</_summary> + <_description>Whether contacts should be automatically added to the user's addressbook</_description> + </key> + <key name="gaim-addressbook-source" type="s"> + <default>''</default> + <_summary>GAIM address book source</_summary> + <_description>Address book to use for storing automatically synced contacts from GAIM</_description> + </key> + <key name="gaim-check-interval" type="i"> + <default>10</default> + <_summary>GAIM check interval</_summary> + <_description>Check interval for GAIM syncing of contacts</_description> + </key> + <key name="gaim-last-sync-md5" type="s"> + <default>''</default> + <_summary>GAIM last sync MD5</_summary> + <_description>GAIM last sync MD5</_description> + </key> + <key name="gaim-last-sync-time" type="s"> + <default>''</default> + <_summary>GAIM last sync time</_summary> + <_description>GAIM last sync time</_description> + </key> + </schema> +</schemalist> diff --git a/plugins/bbdb/bbdb.c b/plugins/bbdb/bbdb.c index d24e75480c..f03c189b21 100644 --- a/plugins/bbdb/bbdb.c +++ b/plugins/bbdb/bbdb.c @@ -110,29 +110,15 @@ find_esource_by_uri (ESourceList *source_list, static gint get_check_interval (void) { - GConfClient *gconf; - GConfValue *value; + GSettings *settings; gint res = BBDB_BLIST_DEFAULT_CHECK_INTERVAL; - gconf = gconf_client_get_default (); - value = gconf_client_get (gconf, GCONF_KEY_GAIM_CHECK_INTERVAL, NULL); - - if (value) { - if (value->type == GCONF_VALUE_INT) { - gint interval = gconf_value_get_int (value); - - if (interval > 0) - res = interval * 60; - else - res = interval; - } - - gconf_value_free (value); - } + settings = g_settings_new (CONF_SCHEMA); + res = g_settings_get_int (settings, CONF_KEY_GAIM_CHECK_INTERVAL); - g_object_unref (gconf); + g_object_unref (settings); - return res; + return res * 60; } gint @@ -310,12 +296,12 @@ bbdb_handle_send (EPlugin *ep, EMEventTargetComposer *target) { EComposerHeaderTable *table; - GConfClient *gconf; + GSettings *settings; gboolean enable; - gconf = gconf_client_get_default (); - enable = gconf_client_get_bool (gconf, GCONF_KEY_ENABLE, NULL); - g_object_unref (gconf); + settings = g_settings_new (CONF_SCHEMA); + enable = g_settings_get_boolean (settings, CONF_KEY_ENABLE); + g_object_unref (settings); if (!enable) return; @@ -423,28 +409,29 @@ bbdb_do_it (EBookClient *client, EBookClient * bbdb_create_book_client (gint type) { - GConfClient *gconf; + GSettings *settings; gchar *uri; EBookClient *client = NULL; GError *error = NULL; gboolean enable = TRUE; - gconf = gconf_client_get_default (); + + settings = g_settings_new (CONF_SCHEMA); /* Check to see if we're supposed to be running */ if (type == AUTOMATIC_CONTACTS_ADDRESSBOOK) - enable = gconf_client_get_bool (gconf, GCONF_KEY_ENABLE, NULL); + enable = g_settings_get_boolean (settings, CONF_KEY_ENABLE); if (!enable) { - g_object_unref (G_OBJECT (gconf)); + g_object_unref (G_OBJECT (settings)); return NULL; } /* Open the appropriate addresbook. */ if (type == GAIM_ADDRESSBOOK) - uri = gconf_client_get_string (gconf, GCONF_KEY_WHICH_ADDRESSBOOK_GAIM, NULL); + uri = g_settings_get_string (settings, CONF_KEY_WHICH_ADDRESSBOOK_GAIM); else - uri = gconf_client_get_string (gconf, GCONF_KEY_WHICH_ADDRESSBOOK, NULL); - g_object_unref (G_OBJECT (gconf)); + uri = g_settings_get_string (settings, CONF_KEY_WHICH_ADDRESSBOOK); + g_object_unref (G_OBJECT (settings)); if (uri == NULL) client = e_book_client_new_system (&error); @@ -486,13 +473,13 @@ bbdb_open_book_client (EBookClient *client) gboolean bbdb_check_gaim_enabled (void) { - GConfClient *gconf; - gboolean gaim_enabled; + GSettings *settings; + gboolean gaim_enabled; - gconf = gconf_client_get_default (); - gaim_enabled = gconf_client_get_bool (gconf, GCONF_KEY_ENABLE_GAIM, NULL); + settings = g_settings_new (CONF_SCHEMA); + gaim_enabled = g_settings_get_boolean (settings, CONF_KEY_ENABLE_GAIM); - g_object_unref (G_OBJECT (gconf)); + g_object_unref (G_OBJECT (settings)); return gaim_enabled; } @@ -518,36 +505,30 @@ enable_toggled_cb (GtkWidget *widget, gboolean active; ESource *selected_source; gchar *addressbook; + GSettings *settings = g_settings_new (CONF_SCHEMA); active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); - /* Save the new setting to gconf */ - gconf_client_set_bool (stuff->target->gconf, GCONF_KEY_ENABLE, active, NULL); + /* Save the new setting to GSettings */ + g_settings_set_boolean (settings, CONF_KEY_ENABLE, active); gtk_widget_set_sensitive (stuff->combo_box, active); - addressbook = gconf_client_get_string (stuff->target->gconf, GCONF_KEY_WHICH_ADDRESSBOOK, NULL); + addressbook = g_settings_get_string (settings, CONF_KEY_WHICH_ADDRESSBOOK); if (active && !addressbook) { const gchar *uri = NULL; - GError *error = NULL; selected_source = e_source_combo_box_get_active ( E_SOURCE_COMBO_BOX (stuff->combo_box)); if (selected_source != NULL) uri = e_source_get_uri (selected_source); - gconf_client_set_string ( - stuff->target->gconf, - GCONF_KEY_WHICH_ADDRESSBOOK, - uri ? uri : "", &error); - - if (error != NULL) { - g_warning ("%s", error->message); - g_error_free (error); - } + g_settings_set_string (settings, CONF_KEY_WHICH_ADDRESSBOOK, uri ? uri : ""); } + g_free (addressbook); + g_object_unref (settings); } static void @@ -558,21 +539,23 @@ enable_gaim_toggled_cb (GtkWidget *widget, gboolean active; ESource *selected_source; gchar *addressbook_gaim; + GSettings *settings = g_settings_new (CONF_SCHEMA); active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); - /* Save the new setting to gconf */ - gconf_client_set_bool (stuff->target->gconf, GCONF_KEY_ENABLE_GAIM, active, NULL); + /* Save the new setting to GSettings */ + g_settings_set_boolean (settings, CONF_KEY_ENABLE_GAIM, active); - addressbook_gaim = gconf_client_get_string (stuff->target->gconf, GCONF_KEY_WHICH_ADDRESSBOOK_GAIM, NULL); + addressbook_gaim = g_settings_get_string (settings, CONF_KEY_WHICH_ADDRESSBOOK_GAIM); gtk_widget_set_sensitive (stuff->gaim_combo_box, active); if (active && !addressbook_gaim) { selected_source = e_source_combo_box_get_active ( E_SOURCE_COMBO_BOX (stuff->gaim_combo_box)); - gconf_client_set_string (stuff->target->gconf, GCONF_KEY_WHICH_ADDRESSBOOK_GAIM, e_source_get_uri (selected_source), NULL); + g_settings_set_string (settings, CONF_KEY_WHICH_ADDRESSBOOK_GAIM, e_source_get_uri (selected_source)); } g_free (addressbook_gaim); + g_object_unref (settings); } static void @@ -586,19 +569,16 @@ source_changed_cb (ESourceComboBox *source_combo_box, struct bbdb_stuff *stuff) { ESource *source; - GError *error = NULL; + GSettings *settings = g_settings_new (CONF_SCHEMA); source = e_source_combo_box_get_active (source_combo_box); - gconf_client_set_string ( - stuff->target->gconf, - GCONF_KEY_WHICH_ADDRESSBOOK, - source ? e_source_get_uri (source) : "", &error); + g_settings_set_string ( + settings, + CONF_KEY_WHICH_ADDRESSBOOK, + source ? e_source_get_uri (source) : ""); - if (error != NULL) { - g_warning ("%s", error->message); - g_error_free (error); - } + g_object_unref (settings); } static void @@ -606,19 +586,16 @@ gaim_source_changed_cb (ESourceComboBox *source_combo_box, struct bbdb_stuff *stuff) { ESource *source; - GError *error = NULL; + GSettings *settings = g_settings_new (CONF_SCHEMA); source = e_source_combo_box_get_active (source_combo_box); - gconf_client_set_string ( - stuff->target->gconf, - GCONF_KEY_WHICH_ADDRESSBOOK_GAIM, - source ? e_source_get_uri (source) : "", &error); + g_settings_set_string ( + settings, + CONF_KEY_WHICH_ADDRESSBOOK_GAIM, + source ? e_source_get_uri (source) : ""); - if (error != NULL) { - g_warning ("%s", error->message); - g_error_free (error); - } + g_object_unref (settings); } static GtkWidget * @@ -628,17 +605,18 @@ create_addressbook_combo_box (struct bbdb_stuff *stuff, GtkWidget *combo_box; ESourceList *source_list; ESource *selected_source; - gchar *selected_source_uri; - - GConfClient *gconf = stuff->target->gconf; + gchar *selected_source_uri; + GConfClient *gconf; + GSettings *settings = g_settings_new (CONF_SCHEMA); + gconf = gconf_client_get_default (); source_list = e_source_list_new_for_gconf (gconf, "/apps/evolution/addressbook/sources"); combo_box = e_source_combo_box_new (source_list); if (type == GAIM_ADDRESSBOOK) - selected_source_uri = gconf_client_get_string (gconf, GCONF_KEY_WHICH_ADDRESSBOOK_GAIM, NULL); + selected_source_uri = g_settings_get_string (settings, CONF_KEY_WHICH_ADDRESSBOOK_GAIM); else - selected_source_uri = gconf_client_get_string (gconf, GCONF_KEY_WHICH_ADDRESSBOOK, NULL); + selected_source_uri = g_settings_get_string (settings, CONF_KEY_WHICH_ADDRESSBOOK); selected_source = find_esource_by_uri ( source_list, selected_source_uri); g_free (selected_source_uri); @@ -651,6 +629,8 @@ create_addressbook_combo_box (struct bbdb_stuff *stuff, stuff->source_list = source_list; + g_object_unref (settings); + return combo_box; } @@ -675,6 +655,7 @@ bbdb_page_factory (EPlugin *ep, GtkWidget *gaim_label; GtkWidget *button; gchar *str; + GSettings *settings = g_settings_new (CONF_SCHEMA); /* A structure to pass some stuff around */ stuff = g_new0 (struct bbdb_stuff, 1); @@ -708,7 +689,7 @@ bbdb_page_factory (EPlugin *ep, /* Enable BBDB checkbox */ check = gtk_check_button_new_with_mnemonic (_("Create _address book entries when sending mails")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), gconf_client_get_bool (target->gconf, GCONF_KEY_ENABLE, NULL)); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), g_settings_get_boolean (settings, CONF_KEY_ENABLE)); g_signal_connect (GTK_TOGGLE_BUTTON (check), "toggled", G_CALLBACK (enable_toggled_cb), stuff); gtk_box_pack_start (GTK_BOX (inner_vbox), check, FALSE, FALSE, 0); stuff->check = check; @@ -719,7 +700,7 @@ bbdb_page_factory (EPlugin *ep, /* Source selection combo box */ combo_box = create_addressbook_combo_box (stuff, AUTOMATIC_CONTACTS_ADDRESSBOOK); g_signal_connect (combo_box, "changed", G_CALLBACK (source_changed_cb), stuff); - gtk_widget_set_sensitive (combo_box, gconf_client_get_bool (target->gconf, GCONF_KEY_ENABLE, NULL)); + gtk_widget_set_sensitive (combo_box, g_settings_get_boolean (settings, CONF_KEY_ENABLE)); gtk_box_pack_start (GTK_BOX (inner_vbox), combo_box, FALSE, FALSE, 0); stuff->combo_box = combo_box; @@ -744,7 +725,7 @@ bbdb_page_factory (EPlugin *ep, /* Enable Gaim Checkbox */ check_gaim = gtk_check_button_new_with_mnemonic (_("_Synchronize contact info and images from Pidgin buddy list")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_gaim), gconf_client_get_bool (target->gconf, GCONF_KEY_ENABLE_GAIM, NULL)); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_gaim), g_settings_get_boolean (settings, CONF_KEY_ENABLE_GAIM)); g_signal_connect (GTK_TOGGLE_BUTTON (check_gaim), "toggled", G_CALLBACK (enable_gaim_toggled_cb), stuff); gtk_box_pack_start (GTK_BOX (inner_vbox), check_gaim, FALSE, FALSE, 0); stuff->check_gaim = check_gaim; @@ -755,7 +736,7 @@ bbdb_page_factory (EPlugin *ep, /* Gaim Source Selection Combo Box */ gaim_combo_box = create_addressbook_combo_box (stuff, GAIM_ADDRESSBOOK); g_signal_connect (gaim_combo_box, "changed", G_CALLBACK (gaim_source_changed_cb), stuff); - gtk_widget_set_sensitive (gaim_combo_box, gconf_client_get_bool (target->gconf, GCONF_KEY_ENABLE_GAIM, NULL)); + gtk_widget_set_sensitive (gaim_combo_box, g_settings_get_boolean (settings, CONF_KEY_ENABLE_GAIM)); gtk_box_pack_start (GTK_BOX (inner_vbox), gaim_combo_box, FALSE, FALSE, 0); stuff->gaim_combo_box = gaim_combo_box; @@ -769,6 +750,8 @@ bbdb_page_factory (EPlugin *ep, gtk_widget_show_all (page); + g_object_unref (settings); + return page; } diff --git a/plugins/bbdb/bbdb.h b/plugins/bbdb/bbdb.h index 82951a7566..3bd8cce880 100644 --- a/plugins/bbdb/bbdb.h +++ b/plugins/bbdb/bbdb.h @@ -22,14 +22,14 @@ #define __BBDB_H__ /* Where to store the config values */ -#define GCONF_ROOT_PATH "/apps/evolution/autocontacts" -#define GCONF_KEY_ENABLE GCONF_ROOT_PATH "/enable_autocontacts" -#define GCONF_KEY_ENABLE_GAIM GCONF_ROOT_PATH "/auto_sync_gaim" -#define GCONF_KEY_WHICH_ADDRESSBOOK GCONF_ROOT_PATH "/addressbook_source" -#define GCONF_KEY_WHICH_ADDRESSBOOK_GAIM GCONF_ROOT_PATH "/gaim_addressbook_source" -#define GCONF_KEY_GAIM_LAST_SYNC_TIME GCONF_ROOT_PATH "/gaim_last_sync_time" -#define GCONF_KEY_GAIM_LAST_SYNC_MD5 GCONF_ROOT_PATH "/gaim_last_sync_md5" -#define GCONF_KEY_GAIM_CHECK_INTERVAL GCONF_ROOT_PATH "/gaim_check_interval" +#define CONF_SCHEMA "org.gnome.evolution.eplugin.autocontacts" +#define CONF_KEY_ENABLE "enable" +#define CONF_KEY_ENABLE_GAIM "auto-sync-gaim" +#define CONF_KEY_WHICH_ADDRESSBOOK "addressbook-source" +#define CONF_KEY_WHICH_ADDRESSBOOK_GAIM "gaim-addressbook-source" +#define CONF_KEY_GAIM_LAST_SYNC_TIME "gaim-last-sync-time" +#define CONF_KEY_GAIM_LAST_SYNC_MD5 "gaim-last-sync-md5" +#define CONF_KEY_GAIM_CHECK_INTERVAL "gaim-check-interval" /* How often to poll the buddy list for changes (every two minutes is default) */ #define BBDB_BLIST_DEFAULT_CHECK_INTERVAL (2 * 60) diff --git a/plugins/bbdb/gaimbuddies.c b/plugins/bbdb/gaimbuddies.c index d2e3c0016c..68e71eed02 100644 --- a/plugins/bbdb/gaimbuddies.c +++ b/plugins/bbdb/gaimbuddies.c @@ -112,12 +112,12 @@ get_md5_as_string (const gchar *filename) void bbdb_sync_buddy_list_check (void) { - GConfClient *gconf; struct stat statbuf; time_t last_sync_time; gchar *md5; gchar *blist_path; gchar *last_sync_str; + GSettings *settings = g_settings_new (CONF_SCHEMA); blist_path = get_buddy_filename (); if (stat (blist_path, &statbuf) < 0) { @@ -125,11 +125,8 @@ bbdb_sync_buddy_list_check (void) return; } - gconf = gconf_client_get_default (); - /* Reprocess the buddy list if it's been updated. */ - last_sync_str = gconf_client_get_string ( - gconf, GCONF_KEY_GAIM_LAST_SYNC_TIME, NULL); + last_sync_str = g_settings_get_string (settings, CONF_KEY_GAIM_LAST_SYNC_TIME); if (last_sync_str == NULL || !strcmp ((const gchar *)last_sync_str, "")) last_sync_time = (time_t) 0; else @@ -138,15 +135,15 @@ bbdb_sync_buddy_list_check (void) g_free (last_sync_str); if (statbuf.st_mtime <= last_sync_time) { - g_object_unref (G_OBJECT (gconf)); + g_object_unref (G_OBJECT (settings)); g_free (blist_path); return; } - last_sync_str = gconf_client_get_string ( - gconf, GCONF_KEY_GAIM_LAST_SYNC_MD5, NULL); + last_sync_str = g_settings_get_string ( + settings, CONF_KEY_GAIM_LAST_SYNC_MD5); - g_object_unref (gconf); + g_object_unref (settings); md5 = get_md5_as_string (blist_path); @@ -164,7 +161,7 @@ bbdb_sync_buddy_list_check (void) static gboolean store_last_sync_idle_cb (gpointer data) { - GConfClient *gconf; + GSettings *settings; gchar *md5; gchar *blist_path = get_buddy_filename (); time_t last_sync; @@ -175,13 +172,13 @@ store_last_sync_idle_cb (gpointer data) md5 = get_md5_as_string (blist_path); - gconf = gconf_client_get_default (); - gconf_client_set_string ( - gconf, GCONF_KEY_GAIM_LAST_SYNC_TIME, last_sync_time, NULL); - gconf_client_set_string ( - gconf, GCONF_KEY_GAIM_LAST_SYNC_MD5, md5, NULL); + settings = g_settings_new (CONF_SCHEMA); + g_settings_set_string ( + settings, CONF_KEY_GAIM_LAST_SYNC_TIME, last_sync_time); + g_settings_set_string ( + settings, CONF_KEY_GAIM_LAST_SYNC_MD5, md5); - g_object_unref (G_OBJECT (gconf)); + g_object_unref (G_OBJECT (settings)); g_free (last_sync_time); g_free (blist_path); |