Updating branch refs/heads/master to 956b0f8960c39e939c6915edab5b425c07dc815e (commit) from 2172fa840c7606cd18e6758456e8dc40e5845adf (commit)
commit 956b0f8960c39e939c6915edab5b425c07dc815e Author: Nick Schermer <n...@xfce.org> Date: Wed Oct 3 21:54:47 2012 +0200 Make ThunarFile structure private. Not used, only through macros. This gives better type checking esp with debugging enabled. thunar/thunar-file.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++- thunar/thunar-file.h | 72 ++++----------------------------------- 2 files changed, 98 insertions(+), 65 deletions(-) diff --git a/thunar/thunar-file.c b/thunar/thunar-file.c index 2ceff15..dfd2977 100644 --- a/thunar/thunar-file.c +++ b/thunar/thunar-file.c @@ -137,6 +137,32 @@ static guint file_signals[LAST_SIGNAL]; +struct _ThunarFileClass +{ + GObjectClass __parent__; + + /* signals */ + void (*destroy) (ThunarFile *file); +}; + +struct _ThunarFile +{ + GObject __parent__; + + /*< private >*/ + GFileMonitor *monitor; + GFileInfo *info; + GFile *gfile; + gchar *custom_icon_name; + gchar *display_name; + gchar *basename; + gchar *thumbnail_path; + guint flags; + guint is_mounted : 1; +}; + + + G_DEFINE_TYPE_WITH_CODE (ThunarFile, thunar_file, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (THUNARX_TYPE_FILE_INFO, thunar_file_info_init)) @@ -327,7 +353,7 @@ thunar_file_info_get_name (ThunarxFileInfo *file_info) static gchar* thunar_file_info_get_uri (ThunarxFileInfo *file_info) { - return thunar_file_dup_uri (file_info); + return thunar_file_dup_uri (THUNAR_FILE (file_info)); } @@ -910,6 +936,51 @@ thunar_file_load (ThunarFile *file, } } + +/** + * thunar_file_get_file: + * @file : a #ThunarFile instance. + * + * Returns the #GFile that refers to the location of @file. + * + * The returned #GFile is owned by @file and must not be released + * with g_object_unref(). + * + * Return value: the #GFile corresponding to @file. + **/ +GFile * +thunar_file_get_file (const ThunarFile *file) +{ + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); + _thunar_return_val_if_fail (G_IS_FILE (file->gfile), NULL); + return file->gfile; +} + + + +/** + * thunar_file_get_info: + * @file : a #ThunarFile instance. + * + * Returns the #GFileInfo for @file. + * + * Note, that there's no reference taken for the caller on the + * returned #GFileInfo, so if you need the object for a longer + * perioud, you'll need to take a reference yourself using the + * g_object_ref() method. + * + * Return value: the #GFileInfo for @file or %NULL. + **/ +GFileInfo * +thunar_file_get_info (const ThunarFile *file) +{ + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); + _thunar_return_val_if_fail (file->info == NULL || G_IS_FILE_INFO (file->info), NULL); + return file->info; +} + + + /** * thunar_file_get_parent: * @file : a #ThunarFile instance. @@ -2845,6 +2916,24 @@ thunar_file_get_thumbnail_path (ThunarFile *file) /** + * thunar_file_get_thumb_state: + * @file : a #ThunarFile. + * + * Returns the current #ThunarFileThumbState for @file. This + * method is intended to be used by #ThunarIconFactory only. + * + * Return value: the #ThunarFileThumbState for @file. + **/ +ThunarFileThumbState +thunar_file_get_thumb_state (const ThunarFile *file) +{ + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), THUNAR_FILE_THUMB_STATE_UNKNOWN); + return (file->flags & THUNAR_FILE_THUMB_STATE_MASK); +} + + + +/** * thunar_file_set_thumb_state: * @file : a #ThunarFile. * @thumb_state : the new #ThunarFileThumbState. diff --git a/thunar/thunar-file.h b/thunar/thunar-file.h index 0c8085f..76db5d4 100644 --- a/thunar/thunar-file.h +++ b/thunar/thunar-file.h @@ -98,29 +98,7 @@ typedef enum /*< flags >*/ #define THUNAR_FILE_EMBLEM_NAME_CANT_WRITE "emblem-nowrite" #define THUNAR_FILE_EMBLEM_NAME_DESKTOP "emblem-desktop" -struct _ThunarFileClass -{ - GObjectClass __parent__; - - /* signals */ - void (*destroy) (ThunarFile *file); -}; -struct _ThunarFile -{ - GObject __parent__; - - /*< private >*/ - GFileMonitor *monitor; - GFileInfo *info; - GFile *gfile; - gchar *custom_icon_name; - gchar *display_name; - gchar *basename; - gchar *thumbnail_path; - guint flags; - guint is_mounted : 1; -}; GType thunar_file_get_type (void) G_GNUC_CONST; @@ -129,6 +107,10 @@ ThunarFile *thunar_file_get (GFile *file ThunarFile *thunar_file_get_for_uri (const gchar *uri, GError **error); +GFile *thunar_file_get_file (const ThunarFile *file); + +GFileInfo *thunar_file_get_info (const ThunarFile *file); + ThunarFile *thunar_file_get_parent (const ThunarFile *file, GError **error); @@ -218,6 +200,7 @@ gboolean thunar_file_set_custom_icon (ThunarFile *fil GError **error); const gchar *thunar_file_get_thumbnail_path (ThunarFile *file); +ThunarFileThumbState thunar_file_get_thumb_state (const ThunarFile *file); void thunar_file_set_thumb_state (ThunarFile *file, ThunarFileThumbState state); GIcon *thunar_file_get_preview_icon (const ThunarFile *file); @@ -254,7 +237,7 @@ gboolean thunar_file_is_desktop (const ThunarFile *file); * * Return value: %TRUE if @file is the root directory. **/ -#define thunar_file_is_root(file) (thunar_g_file_is_root (THUNAR_FILE ((file))->gfile)) +#define thunar_file_is_root(file) (thunar_g_file_is_root (thunar_file_get_file (file))) /** * thunar_file_has_parent: @@ -268,34 +251,6 @@ gboolean thunar_file_is_desktop (const ThunarFile *file); #define thunar_file_has_parent(file) (!thunar_file_is_root (THUNAR_FILE ((file)))) /** - * thunar_file_get_info: - * @file : a #ThunarFile instance. - * - * Returns the #GFileInfo for @file. - * - * Note, that there's no reference taken for the caller on the - * returned #GFileInfo, so if you need the object for a longer - * perioud, you'll need to take a reference yourself using the - * g_object_ref() method. - * - * Return value: the #GFileInfo for @file. - **/ -#define thunar_file_get_info(file) (THUNAR_FILE ((file))->info) - -/** - * thunar_file_get_file: - * @file : a #ThunarFile instance. - * - * Returns the #GFile that refers to the location of @file. - * - * The returned #GFile is owned by @file and must not be released - * with g_object_unref(). - * - * Return value: the #GFile corresponding to @file. - **/ -#define thunar_file_get_file(file) (THUNAR_FILE ((file))->gfile) - -/** * thunar_file_dup_uri: * @file : a #ThunarFile instance. * @@ -304,7 +259,7 @@ gboolean thunar_file_is_desktop (const ThunarFile *file); * * Return value: the URI for @file. **/ -#define thunar_file_dup_uri(file) (g_file_get_uri (THUNAR_FILE ((file))->gfile)) +#define thunar_file_dup_uri(file) (g_file_get_uri (thunar_file_get_file (file))) /** * thunar_file_has_uri_scheme: @@ -315,7 +270,7 @@ gboolean thunar_file_is_desktop (const ThunarFile *file); * * Return value: TRUE, if the schemes match, FALSE otherwise. **/ -#define thunar_file_has_uri_scheme(file, uri_scheme) (g_file_has_uri_scheme (THUNAR_FILE ((file))->gfile, (uri_scheme))) +#define thunar_file_has_uri_scheme(file, uri_scheme) (g_file_has_uri_scheme (thunar_file_get_file (file), (uri_scheme))) /** * thunar_file_changed: @@ -330,17 +285,6 @@ G_STMT_START{ \ }G_STMT_END /** - * thunar_file_get_thumb_state: - * @file : a #ThunarFile. - * - * Returns the current #ThunarFileThumbState for @file. This - * method is intended to be used by #ThunarIconFactory only. - * - * Return value: the #ThunarFileThumbState for @file. - **/ -#define thunar_file_get_thumb_state(file) (THUNAR_FILE ((file))->flags & THUNAR_FILE_THUMB_STATE_MASK) - -/** * thunar_file_list_copy: * @file_list : a list of #ThunarFile<!---->s. * _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits