[gimp] libgimpconfig: support more types in gimp_config_param_spec_duplicate()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimpconfig: support more types in gimp_config_param_spec_duplicate()
- Date: Sat, 14 Sep 2019 16:31:58 +0000 (UTC)
commit 44f36305745b5f6d0aecfb9de1bbe9f62d0c2f4d
Author: Michael Natterer <mitch gimp org>
Date: Sat Sep 14 18:29:38 2019 +0200
libgimpconfig: support more types in gimp_config_param_spec_duplicate()
It now supports all GParamSpecs possible on the wire protocol, except
the ones that are implemented in app/ and libgimp/ (image, drawable,
...) and are not visible to libgimpconfig
libgimpconfig/gimpconfig-params.c | 64 +++++++++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+)
---
diff --git a/libgimpconfig/gimpconfig-params.c b/libgimpconfig/gimpconfig-params.c
index b18486929e..b0b32e8743 100644
--- a/libgimpconfig/gimpconfig-params.c
+++ b/libgimpconfig/gimpconfig-params.c
@@ -27,6 +27,7 @@
#include <gegl.h>
#include <gegl-paramspecs.h>
+#include "libgimpbase/gimpbase.h"
#include "libgimpcolor/gimpcolor.h"
#include "libgimpconfig/gimpconfig.h"
@@ -183,6 +184,17 @@ gimp_config_param_spec_duplicate (GParamSpec *pspec)
gspec->ui_step_small,
gspec->ui_step_big);
}
+ else if (GIMP_IS_PARAM_SPEC_UNIT (pspec))
+ {
+ GimpParamSpecUnit *spec = GIMP_PARAM_SPEC_UNIT (pspec);
+ GParamSpecInt *ispec = G_PARAM_SPEC_INT (pspec);
+
+ copy = gimp_param_spec_unit (name, nick, blurb,
+ ispec->minimum == GIMP_UNIT_PIXEL,
+ spec->allow_percent,
+ ispec->default_value,
+ flags);
+ }
else
{
copy = g_param_spec_int (name, nick, blurb,
@@ -256,6 +268,58 @@ gimp_config_param_spec_duplicate (GParamSpec *pspec)
&gimp_color,
flags);
}
+ else if (G_IS_PARAM_SPEC_PARAM (pspec))
+ {
+ copy = g_param_spec_param (name, nick, blurb,
+ G_PARAM_SPEC_VALUE_TYPE (pspec),
+ flags);
+ }
+ else if (GIMP_IS_PARAM_SPEC_PARASITE (pspec))
+ {
+ copy = gimp_param_spec_parasite (name, nick, blurb,
+ flags);
+ }
+ else if (GIMP_IS_PARAM_SPEC_ARRAY (pspec))
+ {
+ if (GIMP_IS_PARAM_SPEC_UINT8_ARRAY (pspec))
+ {
+ copy = gimp_param_spec_uint8_array (name, nick, blurb,
+ flags);
+ }
+ else if (GIMP_IS_PARAM_SPEC_INT16_ARRAY (pspec))
+ {
+ copy = gimp_param_spec_int16_array (name, nick, blurb,
+ flags);
+ }
+ else if (GIMP_IS_PARAM_SPEC_INT32_ARRAY (pspec))
+ {
+ copy = gimp_param_spec_int32_array (name, nick, blurb,
+ flags);
+ }
+ else if (GIMP_IS_PARAM_SPEC_FLOAT_ARRAY (pspec))
+ {
+ copy = gimp_param_spec_float_array (name, nick, blurb,
+ flags);
+ }
+ else if (GIMP_IS_PARAM_SPEC_STRING_ARRAY (pspec))
+ {
+ copy = gimp_param_spec_string_array (name, nick, blurb,
+ flags);
+ }
+ else if (GIMP_IS_PARAM_SPEC_RGB_ARRAY (pspec))
+ {
+ copy = gimp_param_spec_rgb_array (name, nick, blurb,
+ flags);
+ }
+ else if (GIMP_IS_PARAM_SPEC_OBJECT_ARRAY (pspec))
+ {
+ GimpParamSpecObjectArray *spec = GIMP_PARAM_SPEC_OBJECT_ARRAY (pspec);
+
+ copy = gimp_param_spec_object_array (name, nick, blurb,
+ spec->object_type,
+ flags);
+ }
+ }
if (copy)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]