[gimp] app: add gimp_item_peek_node() and use it



commit 5f46061830258d929901acfe257709cbc37986de
Author: Michael Natterer <mitch gimp org>
Date:   Sun Feb 14 13:55:45 2010 +0100

    app: add gimp_item_peek_node() and use it
    
    so we can avoid peeking into the GimpItem struct if we want to get to
    the item's node without implicitly creating it if it doesn't already
    exist.

 app/core/gimpdrawable.c |    9 ++++++---
 app/core/gimpitem.c     |    8 ++++++++
 app/core/gimpitem.h     |    1 +
 3 files changed, 15 insertions(+), 3 deletions(-)
---
diff --git a/app/core/gimpdrawable.c b/app/core/gimpdrawable.c
index 090a9a2..5818c5b 100644
--- a/app/core/gimpdrawable.c
+++ b/app/core/gimpdrawable.c
@@ -355,17 +355,20 @@ static void
 gimp_drawable_visibility_changed (GimpItem *item)
 {
   GimpDrawable *drawable = GIMP_DRAWABLE (item);
+  GeglNode     *item_node;
 
   /*  don't use gimp_item_get_node() because that would create
    *  the node.
    */
-  if (item->node)
+  item_node = gimp_item_peek_node (item);
+
+  if (item_node)
     {
       GeglNode *input;
       GeglNode *output;
 
-      input  = gegl_node_get_input_proxy  (item->node, "input");
-      output = gegl_node_get_output_proxy (item->node, "output");
+      input  = gegl_node_get_input_proxy  (item_node, "input");
+      output = gegl_node_get_output_proxy (item_node, "output");
 
       if (gimp_item_get_visible (item) &&
           ! (GIMP_IS_LAYER (item) &&
diff --git a/app/core/gimpitem.c b/app/core/gimpitem.c
index 0b75016..de679cb 100644
--- a/app/core/gimpitem.c
+++ b/app/core/gimpitem.c
@@ -1422,6 +1422,14 @@ gimp_item_get_node (GimpItem *item)
 }
 
 GeglNode *
+gimp_item_peek_node (GimpItem *item)
+{
+  g_return_val_if_fail (GIMP_IS_ITEM (item), NULL);
+
+  return item->node;
+}
+
+GeglNode *
 gimp_item_get_offset_node (GimpItem *item)
 {
   g_return_val_if_fail (GIMP_IS_ITEM (item), NULL);
diff --git a/app/core/gimpitem.h b/app/core/gimpitem.h
index 966aa65..6b01b87 100644
--- a/app/core/gimpitem.h
+++ b/app/core/gimpitem.h
@@ -247,6 +247,7 @@ gboolean        gimp_item_stroke             (GimpItem           *item,
                                               GError            **error);
 
 GeglNode      * gimp_item_get_node           (GimpItem           *item);
+GeglNode      * gimp_item_peek_node          (GimpItem           *item);
 GeglNode      * gimp_item_get_offset_node    (GimpItem           *item);
 
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]