Author: jannis Date: 2009-06-15 20:06:18 +0000 (Mon, 15 Jun 2009) New Revision: 30024
Modified: thunar/branches/migration-to-gio/ChangeLog thunar/branches/migration-to-gio/thunar/thunar-file.c thunar/branches/migration-to-gio/thunar/thunar-file.h Log: * thunar/thunar-file.{c,h}: Add new boolean method thunar_file_is_thumbnail() which returns TRUE if, and only if a file resides in $HOME/.thumbnails/. Modified: thunar/branches/migration-to-gio/ChangeLog =================================================================== --- thunar/branches/migration-to-gio/ChangeLog 2009-06-15 18:19:53 UTC (rev 30023) +++ thunar/branches/migration-to-gio/ChangeLog 2009-06-15 20:06:18 UTC (rev 30024) @@ -1,5 +1,11 @@ 2009-06-15 Jannis Pohlmann <jan...@xfce.org> + * thunar/thunar-file.{c,h}: Add new boolean method + thunar_file_is_thumbnail() which returns TRUE if, and only if + a file resides in $HOME/.thumbnails/. + +2009-06-15 Jannis Pohlmann <jan...@xfce.org> + * thunar/thunar-icon-factory.c: Rewrite the file icon loading process once again, this time based on the also rewritten ThunarThumbnailer. We first assume no thumbnail exists and use the default icon for the Modified: thunar/branches/migration-to-gio/thunar/thunar-file.c =================================================================== --- thunar/branches/migration-to-gio/thunar/thunar-file.c 2009-06-15 18:19:53 UTC (rev 30023) +++ thunar/branches/migration-to-gio/thunar/thunar-file.c 2009-06-15 20:06:18 UTC (rev 30024) @@ -727,8 +727,10 @@ GError **error) { GKeyFile *key_file; + GFile *thumbnail_dir; gchar *basename; gchar *md5_hash; + gchar *thumbnail_dir_path; gchar *uri; _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); @@ -786,9 +788,26 @@ file->basename = g_file_get_basename (file->gfile); _thunar_assert (file->basename != NULL); - /* determine the custom icon name for .desktop files */ - if (thunar_file_is_desktop_file (file)) + /* assume all files are not thumbnails themselves */ + file->is_thumbnail = FALSE; + + /* create a GFile for the $HOME/.thumbnails/ directory */ + thumbnail_dir_path = g_build_filename (xfce_get_homedir (), ".thumbnails", NULL); + thumbnail_dir = g_file_new_for_path (thumbnail_dir_path); + + /* check if this file is a thumbnail */ + if (g_file_has_prefix (file->gfile, thumbnail_dir)) { + /* remember that this file is a thumbnail */ + file->is_thumbnail = TRUE; + + /* use the filename as custom icon name for thumbnails */ + file->custom_icon_name = g_file_get_path (file->gfile); + } + else if (thunar_file_is_desktop_file (file)) + { + /* determine the custom icon name for .desktop files */ + /* query a key file for the .desktop file */ key_file = g_file_query_key_file (file->gfile, cancellable, NULL); if (key_file != NULL) @@ -826,6 +845,10 @@ file->custom_icon_name = NULL; } + /* free $HOME/.thumbnails/ GFile and path */ + g_object_unref (thumbnail_dir); + g_free (thumbnail_dir_path); + /* determine the display name */ if (file->info != NULL) { @@ -2454,6 +2477,15 @@ +gboolean +thunar_file_is_thumbnail (const ThunarFile *file) +{ + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); + return file->is_thumbnail; +} + + + /** * thunar_file_set_thumb_state: * @file : a #ThunarFile. Modified: thunar/branches/migration-to-gio/thunar/thunar-file.h =================================================================== --- thunar/branches/migration-to-gio/thunar/thunar-file.h 2009-06-15 18:19:53 UTC (rev 30023) +++ thunar/branches/migration-to-gio/thunar/thunar-file.h 2009-06-15 20:06:18 UTC (rev 30024) @@ -124,6 +124,7 @@ gchar *basename; gchar *thumbnail_path; guint flags; + guint is_thumbnail : 1; }; GType thunar_file_get_type (void) G_GNUC_CONST; @@ -218,6 +219,7 @@ GError **error); const gchar *thunar_file_get_thumbnail_path (const ThunarFile *file); +gboolean thunar_file_is_thumbnail (const ThunarFile *file); void thunar_file_set_thumb_state (ThunarFile *file, ThunarFileThumbState state); GIcon *thunar_file_get_preview_icon (const ThunarFile *file); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits