~ubuntu-branches/ubuntu/lucid/nautilus-actions/lucid

« back to all changes in this revision

Viewing changes to libnautilus-actions/nautilus-actions-config-schema-writer.c

  • Committer: Bazaar Package Importer
  • Author(s): Christine Spang
  • Date: 2006-05-02 21:15:03 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20060502211503-ygoa8zap193bi9gq
Tags: 1.2-1
* New upstream release.
  - Add support for filtering using mimetypes of selected files
  - Add support for choice about case sensitiveness of file patterns
  - New Tango style icons
  - Grammar and spelling errors fixed
  - Fix segfault when defining an action with an empty file pattern
  - Fix a crash when selecting a cdrom drive with Nautilus 2.14
  - Added Bengali translation; others updated
  - Other minor bugfixes
* Bumped standards version to 2.7.0.0; no change.
* Added debian/watch

Show diffs side-by-side

added added

removed removed

Lines of Context:
68
68
}
69
69
 
70
70
static void nautilus_actions_config_schema_writer_get_property (GObject *object, guint property_id,
71
 
                                                                                                                                                        const GValue* value, GParamSpec *pspec)
 
71
                                                                                                                                                        GValue* value, GParamSpec *pspec)
72
72
{
73
73
        
74
74
        NautilusActionsConfigSchemaWriter* self = NAUTILUS_ACTIONS_CONFIG_SCHEMA_WRITER (object);
85
85
}
86
86
 
87
87
static void create_schema_entry (xmlNodePtr list_node, xmlChar* key_path, 
88
 
                                                                                        xmlChar* type, xmlChar* value, 
89
 
                                                                                        xmlChar* short_desc, xmlChar* long_desc, 
 
88
                                                                                        char* type, const char* value, 
 
89
                                                                                        char* short_desc, char* long_desc, 
90
90
                                                                                        gboolean is_l10n_value)
91
91
{
92
92
        xmlNodePtr schema_node = NULL;
93
93
        xmlNodePtr locale_node = NULL;
94
94
        xmlChar* content = NULL;
95
 
        xmlNodePtr* value_root_node = NULL;
 
95
        xmlNodePtr value_root_node = NULL;
96
96
 
97
97
        //--> Menu item entries : label
98
 
        schema_node = xmlNewChild (list_node, NULL, NA_GCONF_XML_SCHEMA_ENTRY, NULL);
99
 
        content = g_build_path ("/", ACTIONS_SCHEMA_PREFIX, key_path, NULL);
100
 
        xmlNewChild (schema_node, NULL, NA_GCONF_XML_SCHEMA_KEY, content);
 
98
        schema_node = xmlNewChild (list_node, NULL, BAD_CAST NA_GCONF_XML_SCHEMA_ENTRY, NULL);
 
99
        content = BAD_CAST g_build_path ("/", ACTIONS_SCHEMA_PREFIX, key_path, NULL);
 
100
        xmlNewChild (schema_node, NULL, BAD_CAST NA_GCONF_XML_SCHEMA_KEY, content);
101
101
        xmlFree (content);
102
 
        xmlNewChild (schema_node, NULL, NA_GCONF_XML_SCHEMA_APPLYTO, key_path);
103
 
        xmlNewChild (schema_node, NULL, NA_GCONF_XML_SCHEMA_OWNER, ACTIONS_SCHEMA_OWNER);
104
 
        xmlNewChild (schema_node, NULL, NA_GCONF_XML_SCHEMA_TYPE, type);
 
102
        xmlNewChild (schema_node, NULL, BAD_CAST NA_GCONF_XML_SCHEMA_APPLYTO, key_path);
 
103
        xmlNewChild (schema_node, NULL, BAD_CAST NA_GCONF_XML_SCHEMA_OWNER, BAD_CAST ACTIONS_SCHEMA_OWNER);
 
104
        xmlNewChild (schema_node, NULL, BAD_CAST NA_GCONF_XML_SCHEMA_TYPE, BAD_CAST type);
105
105
        if (g_ascii_strncasecmp (type, "list", strlen ("list")) == 0)
106
106
        {
107
 
                xmlNewChild (schema_node, NULL, NA_GCONF_XML_SCHEMA_LIST_TYPE, "string");
 
107
                xmlNewChild (schema_node, NULL, BAD_CAST NA_GCONF_XML_SCHEMA_LIST_TYPE, BAD_CAST "string");
108
108
        }
109
 
        locale_node = xmlNewChild (schema_node, NULL, NA_GCONF_XML_SCHEMA_LOCALE, NULL);
110
 
        xmlNewProp (locale_node, "name", "C");
 
109
        locale_node = xmlNewChild (schema_node, NULL, BAD_CAST NA_GCONF_XML_SCHEMA_LOCALE, NULL);
 
110
        xmlNewProp (locale_node, BAD_CAST "name", BAD_CAST "C");
111
111
        value_root_node = schema_node;
112
112
        if (is_l10n_value)
113
113
        {
114
114
                // if the default value must be localized, put it in the <locale> element
115
115
                value_root_node = locale_node;
116
116
        }
117
 
        xmlNewChild (value_root_node, NULL, NA_GCONF_XML_SCHEMA_DFT, value);
 
117
        xmlNewChild (value_root_node, NULL, BAD_CAST NA_GCONF_XML_SCHEMA_DFT, BAD_CAST value);
118
118
 
119
 
        xmlNewChild (locale_node, NULL, NA_GCONF_XML_SCHEMA_SHORT, short_desc);
120
 
        xmlNewChild (locale_node, NULL, NA_GCONF_XML_SCHEMA_LONG, long_desc);
 
119
        xmlNewChild (locale_node, NULL, BAD_CAST NA_GCONF_XML_SCHEMA_SHORT, BAD_CAST short_desc);
 
120
        xmlNewChild (locale_node, NULL, BAD_CAST NA_GCONF_XML_SCHEMA_LONG, BAD_CAST long_desc);
121
121
}
122
122
 
123
123
static gchar* gslist_to_schema_string (GSList* list)
174
174
        action->version = g_strdup (NAUTILUS_ACTIONS_CONFIG_VERSION);
175
175
 
176
176
        // Create the GConf schema XML file and write it in the save_path folder
177
 
        doc = xmlNewDoc ("1.0");
178
 
        root_node = xmlNewNode (NULL, NA_GCONF_XML_ROOT);
 
177
        doc = xmlNewDoc (BAD_CAST "1.0");
 
178
        root_node = xmlNewNode (NULL, BAD_CAST NA_GCONF_XML_ROOT);
179
179
        xmlDocSetRootElement (doc, root_node);
180
 
        list_node = xmlNewChild (root_node, NULL, NA_GCONF_XML_SCHEMA_LIST, NULL);
 
180
        list_node = xmlNewChild (root_node, NULL, BAD_CAST NA_GCONF_XML_SCHEMA_LIST, NULL);
181
181
 
182
182
        //--> Menu item entries : label
183
 
        content = g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_LABEL_ENTRY, NULL);
 
183
        content = BAD_CAST g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_LABEL_ENTRY, NULL);
184
184
        create_schema_entry (list_node, content, "string", action->label, ACTION_LABEL_DESC_SHORT, ACTION_LABEL_DESC_LONG, TRUE);
185
185
        xmlFree (content);
186
186
 
187
187
        //--> Menu item entries : tooltip
188
 
        content = g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_TOOLTIP_ENTRY, NULL);
 
188
        content = BAD_CAST g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_TOOLTIP_ENTRY, NULL);
189
189
        create_schema_entry (list_node, content, "string", action->tooltip, ACTION_TOOLTIP_DESC_SHORT, ACTION_TOOLTIP_DESC_LONG, TRUE);
190
190
        xmlFree (content);
191
191
 
192
192
        //--> Menu item entries : icon
193
 
        content = g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_ICON_ENTRY, NULL);
 
193
        content = BAD_CAST g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_ICON_ENTRY, NULL);
194
194
        create_schema_entry (list_node, content, "string", action->icon, ACTION_ICON_DESC_SHORT, ACTION_ICON_DESC_LONG, FALSE);
195
195
        xmlFree (content);
196
196
 
197
197
        //--> Command entries : path
198
 
        content = g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_PATH_ENTRY, NULL);
 
198
        content = BAD_CAST g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_PATH_ENTRY, NULL);
199
199
        create_schema_entry (list_node, content, "string", action->path, ACTION_PATH_DESC_SHORT, ACTION_PATH_DESC_LONG, FALSE);
200
200
        xmlFree (content);
201
201
 
202
202
        //--> Command entries : parameters
203
 
        content = g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_PARAMS_ENTRY, NULL);
 
203
        content = BAD_CAST g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_PARAMS_ENTRY, NULL);
204
204
        create_schema_entry (list_node, content, "string", action->parameters, ACTION_PARAMS_DESC_SHORT, ACTION_PARAMS_DESC_LONG, FALSE);
205
205
        xmlFree (content);
206
206
 
207
207
        //--> Test entries : basenames
208
 
        content = g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_BASENAMES_ENTRY, NULL);
209
 
        str_list = gslist_to_schema_string (action->basenames);
210
 
        create_schema_entry (list_node, content, "list", str_list, ACTION_BASENAMES_DESC_SHORT, ACTION_BASENAMES_DESC_LONG, FALSE);
211
 
        xmlFree (str_list);
212
 
        xmlFree (content);
213
 
                
 
208
        content = BAD_CAST g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_BASENAMES_ENTRY, NULL);
 
209
        str_list = BAD_CAST gslist_to_schema_string (action->basenames);
 
210
        create_schema_entry (list_node, content, "list", (char*)str_list, ACTION_BASENAMES_DESC_SHORT, ACTION_BASENAMES_DESC_LONG, FALSE);
 
211
        xmlFree (str_list);
 
212
        xmlFree (content);
 
213
 
 
214
        //--> test entries : match_case
 
215
        content = BAD_CAST g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_MATCHCASE_ENTRY, NULL);
 
216
        create_schema_entry (list_node, content, "bool", bool_to_schema_string (action->match_case), ACTION_MATCHCASE_DESC_SHORT, ACTION_MATCHCASE_DESC_LONG, FALSE);
 
217
        xmlFree (content);
 
218
 
 
219
        //--> Test entries : mimetypes
 
220
        content = BAD_CAST g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_MIMETYPES_ENTRY, NULL);
 
221
        str_list = BAD_CAST gslist_to_schema_string (action->mimetypes);
 
222
        create_schema_entry (list_node, content, "list", (char*)str_list, ACTION_MIMETYPES_DESC_SHORT, ACTION_MIMETYPES_DESC_LONG, FALSE);
 
223
        xmlFree (str_list);
 
224
        xmlFree (content);
 
225
                        
214
226
        //--> test entries : is_file
215
 
        content = g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_ISFILE_ENTRY, NULL);
 
227
        content = BAD_CAST g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_ISFILE_ENTRY, NULL);
216
228
        create_schema_entry (list_node, content, "bool", bool_to_schema_string (action->is_file), ACTION_ISFILE_DESC_SHORT, _(ACTION_ISFILE_DESC_LONG), FALSE);
217
229
        xmlFree (content);
218
230
 
219
231
        //--> test entries : is_dir
220
 
        content = g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_ISDIR_ENTRY, NULL);
 
232
        content = BAD_CAST g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_ISDIR_ENTRY, NULL);
221
233
        create_schema_entry (list_node, content, "bool", bool_to_schema_string (action->is_dir), ACTION_ISDIR_DESC_SHORT, _(ACTION_ISDIR_DESC_LONG), FALSE);
222
234
        xmlFree (content);
223
235
 
224
236
        //--> test entries : accept-multiple-files
225
 
        content = g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_MULTIPLE_ENTRY, NULL);
 
237
        content = BAD_CAST g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_MULTIPLE_ENTRY, NULL);
226
238
        create_schema_entry (list_node, content, "bool", bool_to_schema_string (action->accept_multiple_files), ACTION_MULTIPLE_DESC_SHORT, ACTION_MULTIPLE_DESC_LONG, FALSE);
227
239
        xmlFree (content);
228
240
 
229
241
        //--> test entries : schemes
230
 
        content = g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_SCHEMES_ENTRY, NULL);
231
 
        str_list = gslist_to_schema_string (action->schemes);
232
 
        create_schema_entry (list_node, content, "list", str_list, ACTION_SCHEMES_DESC_SHORT, ACTION_SCHEMES_DESC_LONG, FALSE);
 
242
        content = BAD_CAST g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_SCHEMES_ENTRY, NULL);
 
243
        str_list = BAD_CAST gslist_to_schema_string (action->schemes);
 
244
        create_schema_entry (list_node, content, "list", (char*)str_list, ACTION_SCHEMES_DESC_SHORT, ACTION_SCHEMES_DESC_LONG, FALSE);
233
245
        xmlFree (str_list);
234
246
        xmlFree (content);
235
247
 
236
248
        //--> general entry : version
237
 
        content = g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_VERSION_ENTRY, NULL);
 
249
        content = BAD_CAST g_build_path ("/", ACTIONS_CONFIG_DIR, action->uuid, ACTION_VERSION_ENTRY, NULL);
238
250
        create_schema_entry (list_node, content, "string", action->version, ACTION_VERSION_DESC_SHORT, ACTION_VERSION_DESC_LONG, FALSE);
239
251
        xmlFree (content);
240
252
 
257
269
{
258
270
        g_return_val_if_fail (NAUTILUS_ACTIONS_IS_CONFIG_SCHEMA_WRITER (self), FALSE);
259
271
 
260
 
        NautilusActionsConfigSchemaWriter* config = NAUTILUS_ACTIONS_CONFIG_SCHEMA_WRITER (self);
 
272
        //NautilusActionsConfigSchemaWriter* config = NAUTILUS_ACTIONS_CONFIG_SCHEMA_WRITER (self);
261
273
 
262
274
        return TRUE;
263
275
}