[gimp/wip/gradient-edit: 13/33] app: implement copy() for GimpGradient
- From: N/A <ell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/wip/gradient-edit: 13/33] app: implement copy() for GimpGradient
- Date: Thu, 3 Aug 2017 19:13:15 +0000 (UTC)
commit dfa97c1167e7ce4247f8b4cbd62ade7c64371b09
Author: Ell <ell_se yahoo com>
Date: Wed Jul 26 13:46:18 2017 -0400
app: implement copy() for GimpGradient
... instead of duplicate().
app/core/gimpgradient.c | 24 +++++++++++++++---------
1 files changed, 15 insertions(+), 9 deletions(-)
---
diff --git a/app/core/gimpgradient.c b/app/core/gimpgradient.c
index 2c70515..480acaa 100644
--- a/app/core/gimpgradient.c
+++ b/app/core/gimpgradient.c
@@ -61,8 +61,10 @@ static GimpTempBuf * gimp_gradient_get_new_preview (GimpViewable *viewa
GimpContext *context,
gint width,
gint height);
+
static const gchar * gimp_gradient_get_extension (GimpData *data);
-static GimpData * gimp_gradient_duplicate (GimpData *data);
+static void gimp_gradient_copy (GimpData *data,
+ GimpData *src_data);
static gchar * gimp_gradient_get_checksum (GimpTagged *tagged);
@@ -110,7 +112,7 @@ gimp_gradient_class_init (GimpGradientClass *klass)
data_class->save = gimp_gradient_save;
data_class->get_extension = gimp_gradient_get_extension;
- data_class->duplicate = gimp_gradient_duplicate;
+ data_class->copy = gimp_gradient_copy;
}
static void
@@ -232,16 +234,22 @@ gimp_gradient_get_new_preview (GimpViewable *viewable,
return temp_buf;
}
-static GimpData *
-gimp_gradient_duplicate (GimpData *data)
+static void
+gimp_gradient_copy (GimpData *data,
+ GimpData *src_data)
{
- GimpGradient *gradient;
+ GimpGradient *gradient = GIMP_GRADIENT (data);
+ GimpGradient *src_gradient = GIMP_GRADIENT (src_data);
GimpGradientSegment *head, *prev, *cur, *orig;
- gradient = g_object_new (GIMP_TYPE_GRADIENT, NULL);
+ if (gradient->segments)
+ {
+ gimp_gradient_segments_free (gradient->segments);
+ gradient->segments = NULL;
+ }
prev = NULL;
- orig = GIMP_GRADIENT (data)->segments;
+ orig = GIMP_GRADIENT (src_gradient)->segments;
head = NULL;
while (orig)
@@ -263,8 +271,6 @@ gimp_gradient_duplicate (GimpData *data)
}
gradient->segments = head;
-
- return GIMP_DATA (gradient);
}
static gchar *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]