gnome-control-center/capplets/appearance/gnome-wp-info.c
Jens Granseuer 2c323085cb Based on a patch by: Lincoln de Sousa <lincoln@minaslivre.org>
2008-05-24  Jens Granseuer  <jensgr@gmx.net>

	Based on a patch by: Lincoln de Sousa <lincoln@minaslivre.org>

	Port the last remaining bits of gnome-vfs to gio (bug
	#524401).

	* appearance-main.c: (init_appearance_data):
	* theme-installer.c: (cleanup_tmp_dir), (file_theme_type),
	(transfer_cancel_cb), (gnome_theme_install_real),
	(transfer_done_cb): use gio instead of gnome-vfs

	* theme-util.c:
	* theme-util.h: make file_delete_recursive public

	* gnome-wp-info.c: include string.h to avoid warning

svn path=/trunk/; revision=8721
2008-05-24 16:34:05 +00:00

88 lines
2.5 KiB
C

/*
* Authors: Rodney Dawes <dobey@ximian.com>
*
* Copyright 2003-2006 Novell, Inc. (www.novell.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License
* as published by the Free Software Foundation
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
*
*/
#include <config.h>
#include <string.h>
#include <glib/gi18n.h>
#include <gio/gio.h>
#include "gnome-wp-info.h"
GnomeWPInfo * gnome_wp_info_new (const gchar * uri,
GnomeThumbnailFactory * thumbs) {
GnomeWPInfo *wp;
GFile *file;
GFileInfo *info;
file = g_file_new_for_commandline_arg (uri);
info = g_file_query_info (file,
G_FILE_ATTRIBUTE_STANDARD_NAME ","
G_FILE_ATTRIBUTE_STANDARD_SIZE ","
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE ","
G_FILE_ATTRIBUTE_TIME_MODIFIED,
G_FILE_QUERY_INFO_NONE,
NULL, NULL);
g_object_unref (file);
if (info == NULL || g_file_info_get_content_type (info) == NULL) {
if (!strcmp (uri, "(none)")) {
wp = g_new0 (GnomeWPInfo, 1);
wp->mime_type = g_strdup ("image/x-no-data");
wp->uri = g_strdup (uri);
wp->name = g_strdup (_("No Wallpaper"));
wp->size = 0;
} else {
wp = NULL;
}
} else {
wp = g_new0 (GnomeWPInfo, 1);
wp->uri = g_strdup (uri);
wp->name = g_strdup (g_file_info_get_name (info));
if (g_file_info_get_content_type (info) != NULL)
wp->mime_type = g_strdup (g_file_info_get_content_type (info));
wp->size = g_file_info_get_size (info);
wp->mtime = g_file_info_get_attribute_uint64 (info,
G_FILE_ATTRIBUTE_TIME_MODIFIED);
wp->thumburi = gnome_thumbnail_factory_lookup (thumbs,
uri,
wp->mtime);
}
if (info != NULL)
g_object_unref (info);
return wp;
}
void gnome_wp_info_free (GnomeWPInfo * info) {
if (info == NULL) {
return;
}
g_free (info->uri);
g_free (info->thumburi);
g_free (info->name);
g_free (info->mime_type);
}