105
panel_gconf_key_type_to_id_list (PanelGConfKeyType type)
110
case PANEL_GCONF_TOPLEVELS:
111
retval = "toplevel_id_list";
113
case PANEL_GCONF_APPLETS:
114
retval = "applet_id_list";
116
case PANEL_GCONF_OBJECTS:
117
retval = "object_id_list";
121
g_assert_not_reached ();
129
panel_gconf_global_key (const char *key)
131
return panel_gconf_sprintf ("/apps/panel/global/%s", key);
135
panel_gconf_general_key (const char *key)
137
return panel_gconf_sprintf (PANEL_CONFIG_DIR "/general/%s", key);
141
panel_gconf_full_key (PanelGConfKeyType type,
148
case PANEL_GCONF_TOPLEVELS:
149
subdir = "toplevels";
151
case PANEL_GCONF_OBJECTS:
154
case PANEL_GCONF_APPLETS:
158
g_assert_not_reached ();
162
return panel_gconf_sprintf (PANEL_CONFIG_DIR "/%s/%s/%s",
167
panel_gconf_basename (const char *key)
171
g_return_val_if_fail (key != NULL, NULL);
173
retval = strrchr (key, '/');
175
return retval ? retval + 1 : NULL;
179
panel_gconf_dirname (const char *key)
184
g_return_val_if_fail (key != NULL, NULL);
186
retval = strrchr (key, '/');
187
g_assert (retval != NULL);
192
retval = g_new0 (char, len + 1);
193
memcpy (retval, key, len);
199
105
panel_notify_object_dead (guint notify_id)
228
134
return notify_id;
232
panel_gconf_copy_dir (GConfClient *client,
234
const char *dest_dir)
238
list = gconf_client_all_entries (client, src_dir, NULL);
239
for (l = list; l; l = l->next) {
240
GConfEntry *entry = l->data;
244
tmp = g_path_get_basename (gconf_entry_get_key (entry));
245
key = panel_gconf_sprintf ("%s/%s", dest_dir, tmp);
248
gconf_engine_associate_schema (client->engine,
250
gconf_entry_get_schema_name (entry),
253
if (!gconf_entry_get_is_default (entry) && entry->value)
254
gconf_client_set (client, key, entry->value, NULL);
256
gconf_entry_unref (entry);
260
list = gconf_client_all_dirs (client, src_dir, NULL);
261
for (l = list; l; l = l->next) {
262
char *subdir = l->data;
267
tmp = g_path_get_basename (subdir);
268
src_subdir = gconf_concat_dir_and_key (src_dir, tmp);
269
dest_subdir = gconf_concat_dir_and_key (dest_dir, tmp);
272
panel_gconf_copy_dir (client, src_subdir, dest_subdir);
275
g_free (dest_subdir);
283
panel_gconf_associate_schemas_in_dir (GConfClient *client,
284
const char *profile_dir,
285
const char *schema_dir)
289
#ifdef PANEL_GCONF_DEBUG
290
g_print ("associating schemas in %s to %s\n", schema_dir, profile_dir);
293
list = gconf_client_all_entries (client, schema_dir, NULL);
294
for (l = list; l; l = l->next) {
295
GConfEntry *entry = l->data;
299
tmp = g_path_get_basename (gconf_entry_get_key (entry));
301
key = panel_gconf_sprintf ("%s/%s", profile_dir, tmp);
305
gconf_engine_associate_schema (
306
client->engine, key, gconf_entry_get_key (entry), NULL);
308
gconf_entry_unref (entry);
313
list = gconf_client_all_dirs (client, schema_dir, NULL);
314
for (l = list; l; l = l->next) {
315
char *subdir = l->data;
320
tmp = g_path_get_basename (subdir);
322
prefs_subdir = g_strdup_printf ("%s/%s", profile_dir, tmp);
323
schema_subdir = g_strdup_printf ("%s/%s", schema_dir, tmp);
325
panel_gconf_associate_schemas_in_dir (
326
client, prefs_subdir, schema_subdir);
328
g_free (prefs_subdir);
329
g_free (schema_subdir);
338
panel_gconf_value_strcmp (gconstpointer a,
344
if (a == b || !a || !b)
347
str_a = gconf_value_get_string (a);
348
str_b = gconf_value_get_string (b);
350
return strcmp (str_a, str_b);
138
panel_gconf_recursive_unset (const gchar *dir,
141
return gconf_client_recursive_unset (panel_gconf_get_client (), dir,
142
GCONF_UNSET_INCLUDING_SCHEMA_NAMES,