68
70
for (iter = config_node->children; iter; iter = iter->next)
72
72
if (!retv && iter->type == XML_ELEMENT_NODE &&
73
73
g_ascii_strncasecmp ((gchar*)iter->name,
74
74
NA_GCONF_XML_SCHEMA_DFT,
75
75
strlen (NA_GCONF_XML_SCHEMA_DFT)) == 0)
77
*value = xmlNodeGetContent (iter);
77
*value = (char*)xmlNodeGetContent (iter);
93
93
*type = ACTION_NONE_TYPE;
94
94
for (iter = config_node->children; iter; iter = iter->next)
98
98
if (!is_key_ok && iter->type == XML_ELEMENT_NODE &&
99
99
g_ascii_strncasecmp ((gchar*)iter->name,
100
100
NA_GCONF_XML_SCHEMA_APPLYTO,
101
101
strlen (NA_GCONF_XML_SCHEMA_APPLYTO)) == 0)
103
text = xmlNodeGetContent (iter);
103
text = (char*)xmlNodeGetContent (iter);
132
132
*type = ACTION_BASENAMES_TYPE;
134
else if (g_str_has_suffix (text, ACTION_MATCHCASE_ENTRY))
136
*type = ACTION_MATCHCASE_TYPE;
138
else if (g_str_has_suffix (text, ACTION_MIMETYPES_ENTRY))
140
*type = ACTION_MIMETYPES_TYPE;
134
142
else if (g_str_has_suffix (text, ACTION_ISFILE_ENTRY))
136
144
*type = ACTION_ISFILE_TYPE;
163
171
NA_GCONF_XML_SCHEMA_DFT,
164
172
strlen (NA_GCONF_XML_SCHEMA_DFT)) == 0)
166
*value = xmlNodeGetContent (iter);
174
*value = (char*)xmlNodeGetContent (iter);
167
175
is_default_value_ok = TRUE;
169
177
else if (!is_default_value_ok && iter->type == XML_ELEMENT_NODE &&
187
195
static GSList* schema_string_to_gslist (const gchar* str_list_value)
189
197
GSList* list = NULL;
190
gchar* ptr = str_list_value;
198
const gchar* ptr = str_list_value;
199
const gchar* start = NULL;
192
200
gchar* str_list = NULL;
193
201
gchar** str_list_splited = NULL;
194
gboolean found = FALSE;
197
204
//--> First remove the brackets []
253
260
gboolean is_path_ok = FALSE;
254
261
gboolean is_params_ok = FALSE;
255
262
gboolean is_basenames_ok = FALSE;
263
gboolean is_matchcase_ok = FALSE;
264
gboolean is_mimetypes_ok = FALSE;
256
265
gboolean is_isfile_ok = FALSE;
257
266
gboolean is_isdir_ok = FALSE;
258
267
gboolean is_multiple_ok = FALSE;
310
319
g_slist_foreach (list, (GFunc)g_free, NULL);
311
320
g_slist_free (list);
322
case ACTION_MATCHCASE_TYPE:
323
is_matchcase_ok = TRUE;
324
nautilus_actions_config_action_set_match_case (action, schema_string_to_bool (value));
326
case ACTION_MIMETYPES_TYPE:
327
is_mimetypes_ok = TRUE;
328
list = schema_string_to_gslist (value);
329
nautilus_actions_config_action_set_mimetypes (action, list);
330
g_slist_foreach (list, (GFunc)g_free, NULL);
313
333
case ACTION_ISFILE_TYPE:
314
334
is_isfile_ok = TRUE;
315
335
nautilus_actions_config_action_set_is_file (action, schema_string_to_bool (value));
349
if (is_version_ok && is_schemes_ok && is_multiple_ok &&
350
is_isdir_ok && is_isfile_ok && is_basenames_ok &&
351
is_params_ok && is_path_ok && is_icon_ok &&
352
is_tooltip_ok && is_label_ok)
371
if (g_ascii_strcasecmp (action->version, "1.0") == 0 &&
372
is_schemes_ok && is_multiple_ok &&
373
is_isdir_ok && is_isfile_ok && is_basenames_ok &&
374
is_params_ok && is_path_ok && is_icon_ok &&
375
is_tooltip_ok && is_label_ok)
380
else if (g_ascii_strcasecmp (action->version, NAUTILUS_ACTIONS_CONFIG_VERSION) == 0 &&
381
is_schemes_ok && is_multiple_ok &&
382
is_matchcase_ok && is_mimetypes_ok &&
383
is_isdir_ok && is_isfile_ok && is_basenames_ok &&
384
is_params_ok && is_path_ok && is_icon_ok &&
385
is_tooltip_ok && is_label_ok)
392
g_warning ("schemes : %d, multiple : %d, match_case : %d, mimetypes : %d, isdir : %d, isfile : %d, basenames : %d, param : %d, path : %d, icon : %d, tooltip : %d, label : %d, TRUE: %d, version: %s",
393
is_schemes_ok , is_multiple_ok ,
394
is_matchcase_ok , is_mimetypes_ok ,
395
is_isdir_ok , is_isfile_ok , is_basenames_ok ,
396
is_params_ok , is_path_ok , is_icon_ok ,
397
is_tooltip_ok , is_label_ok, TRUE, action->version);
380
422
NA_GCONF_XML_SCHEMA_LIST,
381
423
strlen (NA_GCONF_XML_SCHEMA_LIST)) == 0)
383
action = nautilus_actions_config_action_new ();
425
action = nautilus_actions_config_action_new_default ();
384
426
if (action->uuid != NULL)
386
428
g_free (action->uuid);