From 94daae3dba8e86e88f69320bc82795fe660ec9cd Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 15 Jun 2012 09:04:08 +0200 Subject: Remove the last remaining usage of GConf --- plugins/email-custom-header/Makefile.am | 32 ------ .../apps_evolution_email_custom_header.schemas.in | 17 ---- plugins/email-custom-header/email-custom-header.c | 111 ++++++++++----------- plugins/email-custom-header/email-custom-header.h | 4 +- 4 files changed, 55 insertions(+), 109 deletions(-) delete mode 100644 plugins/email-custom-header/apps_evolution_email_custom_header.schemas.in (limited to 'plugins/email-custom-header') diff --git a/plugins/email-custom-header/Makefile.am b/plugins/email-custom-header/Makefile.am index 75574a3c2a..a8d601658e 100644 --- a/plugins/email-custom-header/Makefile.am +++ b/plugins/email-custom-header/Makefile.am @@ -32,42 +32,11 @@ liborg_gnome_email_custom_header_la_LIBADD = \ liborg_gnome_email_custom_header_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -schemadir = $(GCONF_SCHEMA_FILE_DIR) -schema_in_files = apps_evolution_email_custom_header.schemas.in -schema_DATA = $(schema_in_files:.schemas.in=.schemas) - -@INTLTOOL_SCHEMAS_RULE@ - -if GCONF_SCHEMAS_INSTALL - -if OS_WIN32 -install-data-local: - if test -z "$(DESTDIR)" ; then \ - for p in $(schema_DATA) ; do \ - (echo set GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE); \ - echo $(GCONFTOOL) --makefile-install-rule $$p) >_temp.bat; \ - cmd /c _temp.bat; \ - rm _temp.bat; \ - done \ - fi -else -install-data-local: - if test -z "$(DESTDIR)" ; then \ - for p in $(schema_DATA) ; do \ - GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \ - $(GCONFTOOL) --makefile-install-rule $$p; \ - done \ - fi -endif - -endif - ui_DATA = \ org-gnome-email-custom-header.ui EXTRA_DIST = \ org-gnome-email-custom-header.eplug.xml \ - $(schema_in_files) \ $(ui_DATA) BUILT_SOURCES = \ @@ -75,6 +44,5 @@ BUILT_SOURCES = \ $(error_i18n) CLEANFILES = $(BUILT_SOURCES) -DISTCLEANFILES = $(schema_DATA) -include $(top_srcdir)/git.mk diff --git a/plugins/email-custom-header/apps_evolution_email_custom_header.schemas.in b/plugins/email-custom-header/apps_evolution_email_custom_header.schemas.in deleted file mode 100644 index cb3bd97ce8..0000000000 --- a/plugins/email-custom-header/apps_evolution_email_custom_header.schemas.in +++ /dev/null @@ -1,17 +0,0 @@ - - - - /schemas/apps/evolution/eplugin/email_custom_header/customHeader - /apps/evolution/eplugin/email_custom_header/customHeader - evolution-eplugin - list - string - [Security=Personal;Unclassified;Protected;InConfidence;Secret;Topsecret] - - List of Custom Headers - The key specifies the list of custom headers that you can add to an outgoing message. The format for specifying a Header and Header value is: Name of the custom header followed by "=" and the values separated by ";" - - - - - diff --git a/plugins/email-custom-header/email-custom-header.c b/plugins/email-custom-header/email-custom-header.c index c0428a83a3..a88bad4815 100644 --- a/plugins/email-custom-header/email-custom-header.c +++ b/plugins/email-custom-header/email-custom-header.c @@ -26,7 +26,6 @@ #include #include -#include #include "mail/em-utils.h" #include "mail/em-event.h" #include "composer/e-msg-composer.h" @@ -35,18 +34,19 @@ #include "email-custom-header.h" #define d(x) -#define GCONF_KEY_CUSTOM_HEADER "/apps/evolution/eplugin/email_custom_header/customHeader" + +#define ECM_SETTINGS_ID "org.gnome.evolution.plugin.email-custom-header" +#define ECM_SETTINGS_KEY "custom-header" #define CUSTOM_HEADER_OPTIONS_DIALOG_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ ((obj), EMAIL_CUSTOM_HEADER_OPTIONS_DIALOG, CustomHeaderOptionsDialogPrivate)) typedef struct { - GConfClient *gconf; - GtkWidget *treeview; - GtkWidget *header_add; - GtkWidget *header_edit; - GtkWidget *header_remove; + GtkWidget *treeview; + GtkWidget *header_add; + GtkWidget *header_edit; + GtkWidget *header_remove; GtkListStore *store; } ConfigData; @@ -197,11 +197,15 @@ epech_dialog_run (CustomHeaderOptionsDialog *mch, GtkWidget *parent) { CustomHeaderOptionsDialogPrivate *priv; + GSettings *settings; GtkWidget *toplevel; g_return_val_if_fail (mch != NULL || EMAIL_CUSTOM_HEADER_OPTIONS_IS_DIALOG (mch), FALSE); priv = mch->priv; - epech_get_header_list (mch); + + settings = g_settings_new (ECM_SETTINGS_ID); + epech_load_from_settings (settings, ECM_SETTINGS_KEY, mch); + g_object_unref (settings); priv->builder = gtk_builder_new (); e_load_ui_builder_definition ( @@ -228,41 +232,26 @@ epech_dialog_run (CustomHeaderOptionsDialog *mch, } static void -epech_get_header_list (CustomHeaderOptionsDialog *mch) -{ - GConfClient *client; - - client = gconf_client_get_default (); - g_return_if_fail (GCONF_IS_CLIENT (client)); - gconf_client_add_dir (client, GCONF_KEY_CUSTOM_HEADER, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); - epech_load_from_gconf (client, "/apps/evolution/eplugin/email_custom_header/customHeader", mch); - - return; -} - -static void -epech_load_from_gconf (GConfClient *client, - const gchar *path, - CustomHeaderOptionsDialog *mch) +epech_load_from_settings (GSettings *settings, + const gchar *key, + CustomHeaderOptionsDialog *mch) { CustomHeaderOptionsDialogPrivate *priv; EmailCustomHeaderDetails temp_header_details= {-1, -1, NULL, NULL}; CustomSubHeader temp_header_value_details = {NULL}; - GSList *header_list,*q; - gchar *buffer; + gchar **headers; gint index,pos; priv = mch->priv; priv->email_custom_header_details = g_array_new (TRUE, TRUE, sizeof (EmailCustomHeaderDetails)); - header_list = gconf_client_get_list (client,path,GCONF_VALUE_STRING, NULL); + headers = g_settings_get_strv (settings, key); - for (q = header_list,pos = 0; q != NULL; q = q->next,pos++) { + for (pos = 0; headers && headers[pos]; pos++) { gchar **parse_header_list; - memset (&temp_header_value_details,0,sizeof (CustomSubHeader)); + memset (&temp_header_value_details, 0, sizeof (CustomSubHeader)); temp_header_details.sub_header_type_value = g_array_new (TRUE, TRUE, sizeof (CustomSubHeader)); - buffer = q->data; - parse_header_list = g_strsplit_set (buffer, "=;,", -1); + parse_header_list = g_strsplit_set (headers[pos], "=;,", -1); temp_header_details.header_type_value = g_string_new(""); if (temp_header_details.header_type_value) { g_string_assign (temp_header_details.header_type_value, parse_header_list[0]); @@ -283,6 +272,8 @@ epech_load_from_gconf (GConfClient *client, } temp_header_details.number_of_header = pos; + + g_strfreev (headers); } static void @@ -562,9 +553,12 @@ static void commit_changes (ConfigData *cd) { GtkTreeModel *model = NULL; - GSList *header_config_list = NULL; + GPtrArray *headers; GtkTreeIter iter; gboolean valid; + GSettings *settings; + + headers = g_ptr_array_new_full (3, g_free); model = gtk_tree_view_get_model (GTK_TREE_VIEW (cd->treeview)); valid = gtk_tree_model_get_iter_first (model, &iter); @@ -580,9 +574,12 @@ commit_changes (ConfigData *cd) /* Check if the keyword is not empty */ if ((keyword) && (g_utf8_strlen (g_strstrip (keyword), -1) > 0)) { if ((value) && (g_utf8_strlen (g_strstrip (value), -1) > 0)) { + gchar *tmp = keyword; + keyword = g_strconcat (keyword, "=", value, NULL); + g_free (tmp); } - header_config_list = g_slist_append (header_config_list, g_strdup (keyword)); + g_ptr_array_add (headers, g_strdup (keyword)); } g_free (keyword); @@ -591,10 +588,13 @@ commit_changes (ConfigData *cd) valid = gtk_tree_model_iter_next (model, &iter); } - gconf_client_set_list (cd->gconf, GCONF_KEY_CUSTOM_HEADER, GCONF_VALUE_STRING, header_config_list, NULL); + g_ptr_array_add (headers, NULL); + + settings = g_settings_new (ECM_SETTINGS_ID); + g_settings_set_strv (settings, ECM_SETTINGS_KEY, (const gchar * const *) headers->pdata); + g_object_unref (settings); - g_slist_foreach (header_config_list, (GFunc) g_free, NULL); - g_slist_free (header_config_list); + g_ptr_array_free (headers, TRUE); } static void @@ -759,7 +759,6 @@ destroy_cd_data (gpointer data) if (!cd) return; - g_object_unref (cd->gconf); g_free (cd); } @@ -770,13 +769,11 @@ e_plugin_lib_get_configure_widget (EPlugin *epl) GtkTreeSelection *selection; GtkTreeIter iter; GtkWidget *hbox; - GSList *list; - GSList *header_list = NULL; + gchar **headers; gint index; - gchar *buffer; GtkTreeViewColumn *col; gint col_pos; - GConfClient *client = gconf_client_get_default (); + GSettings *settings; ConfigData *cd = g_new0 (ConfigData, 1); GtkWidget *ech_configuration_box; @@ -844,8 +841,6 @@ e_plugin_lib_get_configure_widget (EPlugin *epl) gtk_container_add (GTK_CONTAINER (vbuttonbox1), header_remove); gtk_widget_set_can_default (header_remove, TRUE); - cd->gconf = gconf_client_get_default (); - cd->treeview = header_treeview; cd->store = gtk_list_store_new (HEADER_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING); @@ -904,27 +899,29 @@ e_plugin_lib_get_configure_widget (EPlugin *epl) G_CALLBACK (header_edit_clicked), cd); gtk_widget_set_sensitive (cd->header_edit, FALSE); - /* Populate tree view with values from gconf */ - header_list = gconf_client_get_list (client,GCONF_KEY_CUSTOM_HEADER,GCONF_VALUE_STRING, NULL); + /* Populate tree view with values from settings */ + settings = g_settings_new (ECM_SETTINGS_ID); + headers = g_settings_get_strv (settings, ECM_SETTINGS_KEY); + g_object_unref (settings); - for (list = header_list; list; list = g_slist_next (list)) { - gchar **parse_header_list; + if (headers) { + gint ii; - buffer = list->data; - gtk_list_store_append (cd->store, &iter); + for (ii = 0; headers[ii]; ii++) { + gchar **parse_header_list; - parse_header_list = g_strsplit_set (buffer, "=,", -1); + gtk_list_store_append (cd->store, &iter); - gtk_list_store_set (cd->store, &iter, HEADER_KEY_COLUMN, parse_header_list[0], -1); + parse_header_list = g_strsplit_set (headers[ii], "=,", -1); - for (index = 0; parse_header_list[index + 1] ; ++index) { - gtk_list_store_set (cd->store, &iter, HEADER_VALUE_COLUMN, parse_header_list[index + 1], -1); + gtk_list_store_set (cd->store, &iter, HEADER_KEY_COLUMN, parse_header_list[0], -1); + + for (index = 0; parse_header_list[index + 1] ; ++index) { + gtk_list_store_set (cd->store, &iter, HEADER_VALUE_COLUMN, parse_header_list[index + 1], -1); + } } - } - if (header_list) { - g_slist_foreach (header_list, (GFunc) g_free, NULL); - g_slist_free (header_list); + g_strfreev (headers); } /* Add the list here */ diff --git a/plugins/email-custom-header/email-custom-header.h b/plugins/email-custom-header/email-custom-header.h index 1a1c35c5a1..49c4b7432d 100644 --- a/plugins/email-custom-header/email-custom-header.h +++ b/plugins/email-custom-header/email-custom-header.h @@ -86,7 +86,5 @@ static guint signals[LAST_SIGNAL] = {0}; CustomHeaderOptionsDialog *epech_dialog_new (void); static gboolean epech_dialog_run (CustomHeaderOptionsDialog *mch, GtkWidget *parent); -static void epech_get_header_list (CustomHeaderOptionsDialog *mch); -static void epech_load_from_gconf (GConfClient *client,const gchar *path,CustomHeaderOptionsDialog *mch); +static void epech_load_from_settings (GSettings *settings, const gchar *path, CustomHeaderOptionsDialog *mch); #endif - -- cgit v1.2.3