Bug 535159 - g_file_has_parent

- add a g_file_has_parent() function as a wrapper around
   g_file_get_parent()
This commit is contained in:
Ryan Lortie 2009-11-12 01:37:27 -05:00
parent ba0a6e1911
commit 983a717fa6
4 changed files with 47 additions and 0 deletions

View File

@ -86,6 +86,7 @@ g_file_get_path
g_file_get_uri g_file_get_uri
g_file_get_parse_name g_file_get_parse_name
g_file_get_parent g_file_get_parent
g_file_has_parent
g_file_get_child g_file_get_child
g_file_get_child_for_display_name g_file_get_child_for_display_name
g_file_has_prefix g_file_has_prefix

View File

@ -653,6 +653,49 @@ g_file_get_parent (GFile *file)
return (* iface->get_parent) (file); return (* iface->get_parent) (file);
} }
/**
* g_file_has_parent:
* @file: input #GFile
* @parent: the parent to check for, or %NULL
*
* Checks if @file has a parent, and optionally, if it is @parent.
*
* If @parent is %NULL then this function returns %TRUE if @file has any
* parent at all. If @parent is non-%NULL then %TRUE is only returned
* if @file is a child of @parent.
*
* Returns: %TRUE if @file is a child of @parent (or any parent in the
* case that @parent is %NULL).
*
* Since: 2.24
**/
gboolean
g_file_has_parent (GFile *file,
GFile *parent)
{
GFile *actual_parent;
gboolean result;
g_return_val_if_fail (G_IS_FILE (file), FALSE);
g_return_val_if_fail (parent == NULL || G_IS_FILE (parent), FALSE);
actual_parent = g_file_get_parent (file);
if (actual_parent != NULL)
{
if (parent != NULL)
result = g_file_equal (parent, actual_parent);
else
result = TRUE;
g_object_unref (actual_parent);
}
else
result = FALSE;
return result;
}
/** /**
* g_file_get_child: * g_file_get_child:
* @file: input #GFile. * @file: input #GFile.

View File

@ -560,6 +560,8 @@ char * g_file_get_path (GFile
char * g_file_get_uri (GFile *file); char * g_file_get_uri (GFile *file);
char * g_file_get_parse_name (GFile *file); char * g_file_get_parse_name (GFile *file);
GFile * g_file_get_parent (GFile *file); GFile * g_file_get_parent (GFile *file);
gboolean g_file_has_parent (GFile *file,
GFile *parent);
GFile * g_file_get_child (GFile *file, GFile * g_file_get_child (GFile *file,
const char *name); const char *name);
GFile * g_file_get_child_for_display_name (GFile *file, GFile * g_file_get_child_for_display_name (GFile *file,

View File

@ -257,6 +257,7 @@ g_file_get_path
g_file_get_uri g_file_get_uri
g_file_get_parse_name g_file_get_parse_name
g_file_get_parent g_file_get_parent
g_file_has_parent
g_file_get_child g_file_get_child
g_file_get_child_for_display_name g_file_get_child_for_display_name
g_file_has_prefix g_file_has_prefix