[gimp] Add gimp_pdb_item_is_not_group()
- From: Michael Natterer <mitch src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] Add gimp_pdb_item_is_not_group()
- Date: Fri, 28 Aug 2009 18:17:02 +0000 (UTC)
commit 074257bd37bc776c18b5a0b6ba90539324e785c1
Author: Michael Natterer <mitch gimp org>
Date: Fri Aug 28 20:15:13 2009 +0200
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.
app/pdb/gimppdb-utils.c | 23 +++++++++++++++++++++++
app/pdb/gimppdb-utils.h | 2 ++
2 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/app/pdb/gimppdb-utils.c b/app/pdb/gimppdb-utils.c
index d3f9fb1..4b4a495 100644
--- a/app/pdb/gimppdb-utils.c
+++ b/app/pdb/gimppdb-utils.c
@@ -376,6 +376,26 @@ gimp_pdb_item_is_writable (GimpItem *item,
}
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,
GError **error)
@@ -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);
diff --git a/app/pdb/gimppdb-utils.h b/app/pdb/gimppdb-utils.h
index cf97b22..6e9a6ca 100644
--- a/app/pdb/gimppdb-utils.h
+++ b/app/pdb/gimppdb-utils.h
@@ -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,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]