diff --git a/thunar/thunar-file.c b/thunar/thunar-file.c index a633242..48916a0 100644 --- a/thunar/thunar-file.c +++ b/thunar/thunar-file.c @@ -105,6 +105,8 @@ static gboolean thunar_file_info_is_directory (ThunarxFileInfo static GFileInfo *thunar_file_info_get_file_info (ThunarxFileInfo *file_info); static GFileInfo *thunar_file_info_get_filesystem_info (ThunarxFileInfo *file_info); static GFile *thunar_file_info_get_location (ThunarxFileInfo *file_info); +void thunar_file_info_set_emblem (ThunarxFileInfo *file_info, + const gchar *emblem_name); static void thunar_file_info_changed (ThunarxFileInfo *file_info); static gboolean thunar_file_denies_access_permission (const ThunarFile *file, ThunarFileMode usr_permissions, @@ -245,6 +247,7 @@ thunar_file_info_init (ThunarxFileInfoIface *iface) iface->get_file_info = thunar_file_info_get_file_info; iface->get_filesystem_info = thunar_file_info_get_filesystem_info; iface->get_location = thunar_file_info_get_location; + iface->set_emblem = thunar_file_info_set_emblem; iface->changed = thunar_file_info_changed; } @@ -426,6 +429,25 @@ thunar_file_info_get_location (ThunarxFileInfo *file_info) +void +thunar_file_info_set_emblem (ThunarxFileInfo *file_info, + const gchar *emblem_name) +{ + GList *emblem_names = NULL; + + if (THUNAR_FILE (file_info)->info == NULL) + return; + + emblem_names = g_list_append(emblem_names, g_strdup(emblem_name)); + thunar_file_set_emblem_names(THUNAR_FILE (file_info), emblem_names); + + /* release the emblem name list */ + g_list_foreach (emblem_names, (GFunc) g_free, NULL); + g_list_free (emblem_names); +} + + + static void thunar_file_info_changed (ThunarxFileInfo *file_info) { diff --git a/thunarx/thunarx-file-info.c b/thunarx/thunarx-file-info.c index 5646024..db4d358 100644 --- a/thunarx/thunarx-file-info.c +++ b/thunarx/thunarx-file-info.c @@ -349,6 +349,23 @@ thunarx_file_info_get_location (ThunarxFileInfo *file_info) } +/** + * thunarx_file_info_set_emblem: + * @file_info : a #ThunarxFileInfo. + * @emblem_name : The emblem name to set + * + * Applies an emblem to a file or folder + * + **/ +void +thunarx_file_info_set_emblem (ThunarxFileInfo *file_info, + const gchar *emblem_name) +{ + g_return_val_if_fail (THUNARX_IS_FILE_INFO (file_info), FALSE); + (*THUNARX_FILE_INFO_GET_IFACE (file_info)->set_emblem) (file_info, emblem_name); +} + + /** * thunarx_file_info_changed: diff --git a/thunarx/thunarx-file-info.h b/thunarx/thunarx-file-info.h index 13a7001..c913e44 100644 --- a/thunarx/thunarx-file-info.h +++ b/thunarx/thunarx-file-info.h @@ -87,7 +87,9 @@ struct _ThunarxFileInfoIface GFile *(*get_location) (ThunarxFileInfo *file_info); /*< private >*/ - void (*reserved0) (void); + void (*set_emblem) (ThunarxFileInfo *file_info, + const gchar *emblem_name); + void (*reserved1) (void); void (*reserved2) (void); void (*reserved3) (void); @@ -117,13 +119,16 @@ gchar *thunarx_file_info_get_uri_scheme (ThunarxFileInfo *file_info); gchar *thunarx_file_info_get_mime_type (ThunarxFileInfo *file_info); gboolean thunarx_file_info_has_mime_type (ThunarxFileInfo *file_info, const gchar *mime_type); - + gboolean thunarx_file_info_is_directory (ThunarxFileInfo *file_info); GFileInfo *thunarx_file_info_get_file_info (ThunarxFileInfo *file_info); GFileInfo *thunarx_file_info_get_filesystem_info (ThunarxFileInfo *file_info); GFile *thunarx_file_info_get_location (ThunarxFileInfo *file_info); +void thunarx_file_info_set_emblem (ThunarxFileInfo *file_info, + const gchar *emblem_name); + void thunarx_file_info_changed (ThunarxFileInfo *file_info); void thunarx_file_info_renamed (ThunarxFileInfo *file_info);