[gimp] Add gimp_image_merge_group_layer()
- From: Michael Natterer <mitch src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] Add gimp_image_merge_group_layer()
- Date: Mon, 21 Sep 2009 18:33:24 +0000 (UTC)
commit 170054a36e04e4ecba8e39b3cd7f0ab273f72c80
Author: Michael Natterer <mitch gimp org>
Date: Mon Sep 21 19:08:04 2009 +0200
Add gimp_image_merge_group_layer()
The new function replaces a group layer by a normal one that looks
exactly the same.
app/core/gimpimage-merge.c | 35 ++++++++++++++++++++++++++++++++++-
app/core/gimpimage-merge.h | 4 ++++
2 files changed, 38 insertions(+), 1 deletions(-)
---
diff --git a/app/core/gimpimage-merge.c b/app/core/gimpimage-merge.c
index 1c6cf02..7771fdd 100644
--- a/app/core/gimpimage-merge.c
+++ b/app/core/gimpimage-merge.c
@@ -37,11 +37,11 @@
#include "gimpcontainer.h"
#include "gimpcontext.h"
#include "gimperror.h"
+#include "gimpgrouplayer.h"
#include "gimpimage.h"
#include "gimpimage-colorhash.h"
#include "gimpimage-merge.h"
#include "gimpimage-undo.h"
-#include "gimplayer.h"
#include "gimplayer-floating-sel.h"
#include "gimplayermask.h"
#include "gimpmarshal.h"
@@ -257,6 +257,39 @@ gimp_image_merge_down (GimpImage *image,
return layer;
}
+GimpLayer *
+gimp_image_merge_group_layer (GimpImage *image,
+ GimpGroupLayer *group)
+{
+ GimpLayer *parent;
+ GimpLayer *layer;
+ gint index;
+
+ g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
+ g_return_val_if_fail (GIMP_IS_GROUP_LAYER (group), NULL);
+ g_return_val_if_fail (gimp_item_is_attached (GIMP_ITEM (group)), NULL);
+ g_return_val_if_fail (gimp_item_get_image (GIMP_ITEM (group)) == image, NULL);
+
+ gimp_image_undo_group_start (image, GIMP_UNDO_GROUP_IMAGE_LAYERS_MERGE,
+ _("Merge Layer Group"));
+
+ parent = GIMP_LAYER (gimp_viewable_get_parent (GIMP_VIEWABLE (group)));
+ index = gimp_item_get_index (GIMP_ITEM (group));
+
+ layer = GIMP_LAYER (gimp_item_duplicate (GIMP_ITEM (group),
+ GIMP_TYPE_LAYER));
+
+ gimp_object_set_name (GIMP_OBJECT (layer), gimp_object_get_name (group));
+
+ gimp_image_remove_layer (image, GIMP_LAYER (group), TRUE, NULL);
+ gimp_image_add_layer (image, layer, parent, index, TRUE);
+
+ gimp_image_undo_group_end (image);
+
+ return layer;
+}
+
+
/* merging vectors */
GimpVectors *
diff --git a/app/core/gimpimage-merge.h b/app/core/gimpimage-merge.h
index 32a3779..423a44a 100644
--- a/app/core/gimpimage-merge.h
+++ b/app/core/gimpimage-merge.h
@@ -28,8 +28,12 @@ GimpLayer * gimp_image_merge_down (GimpImage *image,
GimpContext *context,
GimpMergeType merge_type,
GError **error);
+GimpLayer * gimp_image_merge_group_layer (GimpImage *image,
+ GimpGroupLayer *group);
+
GimpLayer * gimp_image_flatten (GimpImage *image,
GimpContext *context);
+
GimpVectors * gimp_image_merge_visible_vectors (GimpImage *image,
GError **error);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]