diff options
Diffstat (limited to 'e-util/e-config-listener.c')
-rw-r--r-- | e-util/e-config-listener.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/e-util/e-config-listener.c b/e-util/e-config-listener.c index ed57bf8cdc..5d676985ad 100644 --- a/e-util/e-config-listener.c +++ b/e-util/e-config-listener.c @@ -560,3 +560,24 @@ e_config_listener_set_string (EConfigListener *cl, const char *key, const char * } } } + +void +e_config_listener_remove_dir (EConfigListener *cl, const char *dir) +{ + GSList *slist, *iter; + gchar *key; + + g_return_if_fail (E_IS_CONFIG_LISTENER (cl)); + g_return_if_fail (dir != NULL); + + slist = gconf_client_all_entries (cl->priv->db, dir, NULL); + for (iter = slist; iter != NULL; iter = iter->next) { + GConfEntry *entry = iter->data; + + key = gconf_entry_get_key (entry); + gconf_client_unset (cl->priv->db, key, NULL); + gconf_entry_free (entry); + } + + g_slist_free (slist); +} |