[gthumb] activate the default extensions only if the key was not set
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] activate the default extensions only if the key was not set
- Date: Sun, 7 Nov 2010 08:20:49 +0000 (UTC)
commit bed6cab99568b0fea7e6db4f11dc716c0640ff00
Author: Paolo Bacchilega <paobac src gnome org>
Date: Sun Nov 7 09:01:39 2010 +0100
activate the default extensions only if the key was not set
gthumb/gconf-utils.c | 27 +++++++++++++++++++++++++++
gthumb/gconf-utils.h | 3 +++
gthumb/gth-main.c | 9 +++++----
3 files changed, 35 insertions(+), 4 deletions(-)
---
diff --git a/gthumb/gconf-utils.c b/gthumb/gconf-utils.c
index fd2db91..7ecde24 100644
--- a/gthumb/gconf-utils.c
+++ b/gthumb/gconf-utils.c
@@ -439,6 +439,33 @@ eel_gconf_get_string_list (const char *key)
GSList *
+eel_gconf_get_string_list_with_error (const char *key,
+ GError **error)
+{
+ GSList *slist;
+ GConfClient *client;
+
+ g_return_val_if_fail (key != NULL, NULL);
+
+ client = eel_gconf_client_get_global ();
+ if (client == NULL) {
+ if (error != NULL)
+ *error = g_error_new_literal (GCONF_ERROR, GCONF_ERROR_NO_SERVER, "");
+ return NULL;
+ }
+
+ if (error)
+ *error = NULL;
+ slist = gconf_client_get_list (client, key, GCONF_VALUE_STRING, error);
+
+ if (*error != NULL)
+ slist = NULL;
+
+ return slist;
+}
+
+
+GSList *
eel_gconf_get_path_list (const char *key)
{
GSList *str_slist, *slist, *scan;
diff --git a/gthumb/gconf-utils.h b/gthumb/gconf-utils.h
index 1b61c8e..43cf026 100644
--- a/gthumb/gconf-utils.h
+++ b/gthumb/gconf-utils.h
@@ -87,6 +87,9 @@ char * eel_gconf_get_locale_string (const char *key,
void eel_gconf_set_locale_string (const char *key,
const char *value);
GSList * eel_gconf_get_string_list (const char *key);
+GSList * eel_gconf_get_string_list_with_error
+ (const char *key,
+ GError **error);
void eel_gconf_set_string_list (const char *key,
const GSList *string_list_value);
GSList * eel_gconf_get_path_list (const char *key);
diff --git a/gthumb/gth-main.c b/gthumb/gth-main.c
index 9b8b655..7a480a6 100644
--- a/gthumb/gth-main.c
+++ b/gthumb/gth-main.c
@@ -1247,6 +1247,7 @@ gth_main_activate_extensions (void)
"webalbums",
NULL };
int i;
+ GError *error = NULL;
GSList *active_extensions;
GthExtensionManager *manager;
GSList *scan;
@@ -1255,18 +1256,18 @@ gth_main_activate_extensions (void)
Main->priv->extension_manager = gth_extension_manager_new ();
for (i = 0; mandatory_extensions[i] != NULL; i++) {
- GError *error = NULL;
-
if (! gth_extension_manager_activate (Main->priv->extension_manager, mandatory_extensions[i], &error)) {
g_warning ("Could not load the '%s' extension: %s", mandatory_extensions[i], error->message);
g_clear_error (&error);
}
}
- active_extensions = eel_gconf_get_string_list (PREF_ACTIVE_EXTENSIONS);
- if (active_extensions == NULL)
+ active_extensions = eel_gconf_get_string_list_with_error (PREF_ACTIVE_EXTENSIONS, &error);
+ if (error != NULL) {
+ g_clear_error (&error);
for (i = 0; default_extensions[i] != NULL; i++)
active_extensions = g_slist_prepend (active_extensions, g_strdup (default_extensions[i]));
+ }
active_extensions = gth_extension_manager_order_extensions (Main->priv->extension_manager, active_extensions);
manager = gth_main_get_default_extension_manager ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]