Ejemplo n.º 1
0
void
nautilus_keyfile_metadata_set_stringv (NautilusFile       *file,
                                       const char         *keyfile_filename,
                                       const char         *name,
                                       const char         *key,
                                       const char * const *stringv)
{
    GKeyFile *keyfile;
    guint length;
    gchar **actual_stringv = NULL;
    gboolean free_strv = FALSE;

    keyfile = get_keyfile (keyfile_filename);

    /* if we would be setting a single-length strv, append a fake
     * terminator to the array, to be able to differentiate it later from
     * the single string case
     */
    length = g_strv_length ((gchar **) stringv);

    if (length == 1)
    {
        actual_stringv = g_malloc0 (3 * sizeof (gchar *));
        actual_stringv[0] = (gchar *) stringv[0];
        actual_stringv[1] = STRV_TERMINATOR;
        actual_stringv[2] = NULL;

        length = 2;
        free_strv = TRUE;
    }
    else
    {
        actual_stringv = (gchar **) stringv;
    }

    g_key_file_set_string_list (keyfile,
                                name,
                                key,
                                (const gchar **) actual_stringv,
                                length);

    save_in_idle (keyfile_filename);

    if (nautilus_keyfile_metadata_update_from_keyfile (file, keyfile_filename, name))
    {
        nautilus_file_changed (file);
    }

    if (free_strv)
    {
        g_free (actual_stringv);
    }
}
gboolean
nautilus_desktop_update_metadata_from_keyfile (NautilusFile *file,
					       const gchar *name)
{
	gchar *keyfile_filename;
	gboolean result;

	keyfile_filename = get_keyfile_path ();

	result = nautilus_keyfile_metadata_update_from_keyfile (file,
	                                                        keyfile_filename,
	                                                        name);

	g_free (keyfile_filename);
	return result;
}
Ejemplo n.º 3
0
void
nautilus_keyfile_metadata_set_string (NautilusFile *file,
                                      const char   *keyfile_filename,
                                      const gchar  *name,
                                      const gchar  *key,
                                      const gchar  *string)
{
    GKeyFile *keyfile;

    keyfile = get_keyfile (keyfile_filename);

    g_key_file_set_string (keyfile,
                           name,
                           key,
                           string);

    save_in_idle (keyfile_filename);

    if (nautilus_keyfile_metadata_update_from_keyfile (file, keyfile_filename, name))
    {
        nautilus_file_changed (file);
    }
}