Add gimp_pdb_item_is_not_group()

New function returns FALSE and sets an appropriate error if invoked on
a group item. Use it from gimp_pdb_get_vectors_stroke() because if we
ever get vectors groups, they will have no strokes.
This commit is contained in:
Michael Natterer 2009-08-28 20:15:13 +02:00
parent e979c08133
commit 074257bd37
2 changed files with 25 additions and 0 deletions

View File

@ -375,6 +375,26 @@ gimp_pdb_item_is_writable (GimpItem *item,
return TRUE;
}
gboolean
gimp_pdb_item_is_not_group (GimpItem *item,
GError **error)
{
g_return_val_if_fail (GIMP_IS_ITEM (item), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
if (gimp_viewable_get_children (GIMP_VIEWABLE (item)))
{
g_set_error (error, GIMP_PDB_ERROR, GIMP_PDB_INVALID_ARGUMENT,
_("Item '%s' (%d) cannot be modified because it "
"is a group item"),
gimp_object_get_name (GIMP_OBJECT (item)),
gimp_item_get_ID (item));
return FALSE;
}
return TRUE;
}
gboolean
gimp_pdb_layer_is_text_layer (GimpLayer *layer,
gboolean writable,
@ -469,6 +489,9 @@ gimp_pdb_get_vectors_stroke (GimpVectors *vectors,
g_return_val_if_fail (GIMP_IS_VECTORS (vectors), NULL);
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
if (! gimp_pdb_item_is_not_group (GIMP_ITEM (vectors), error))
return NULL;
if (! writable || gimp_pdb_item_is_writable (GIMP_ITEM (vectors), error))
{
stroke = gimp_vectors_stroke_get_by_ID (vectors, stroke_ID);

View File

@ -56,6 +56,8 @@ gboolean gimp_pdb_item_is_floating (GimpItem *item,
GError **error);
gboolean gimp_pdb_item_is_writable (GimpItem *item,
GError **error);
gboolean gimp_pdb_item_is_not_group (GimpItem *item,
GError **error);
gboolean gimp_pdb_layer_is_text_layer (GimpLayer *layer,
gboolean writable,