Add gimp_item_get_path(), to be used in XCF saving

Returns a GList of guint indices that describe the path to an item in
an item tree, pretty much like GtkTreePath does for GtkTreeModels.
This commit is contained in:
Michael Natterer 2009-08-30 20:56:39 +02:00
parent 37768e25e8
commit 3d547c0a70
2 changed files with 30 additions and 0 deletions

View File

@ -733,6 +733,35 @@ gimp_item_get_index (GimpItem *item)
return -1;
}
GList *
gimp_item_get_path (GimpItem *item)
{
GimpContainer *container;
GList *path = NULL;
g_return_val_if_fail (GIMP_IS_ITEM (item), NULL);
g_return_val_if_fail (gimp_item_is_attached (item), NULL);
container = gimp_item_get_container (item);
while (container)
{
guint32 index = gimp_container_get_child_index (container,
GIMP_OBJECT (item));
path = g_list_prepend (path, GUINT_TO_POINTER (index));
item = GIMP_ITEM (gimp_viewable_get_parent (GIMP_VIEWABLE (item)));
if (item)
container = gimp_item_get_container (item);
else
container = NULL;
}
return path;
}
/**
* gimp_item_duplicate:
* @item: The #GimpItem to duplicate.

View File

@ -146,6 +146,7 @@ gboolean gimp_item_is_attached (const GimpItem *item);
GimpContainer * gimp_item_get_container (GimpItem *item);
GList * gimp_item_get_container_iter (GimpItem *item);
gint gimp_item_get_index (GimpItem *item);
GList * gimp_item_get_path (GimpItem *item);
void gimp_item_configure (GimpItem *item,
GimpImage *image,