From 23c9503bfa58b8592bc3c29f66723c9d65af34c0 Mon Sep 17 00:00:00 2001 From: Jehan Date: Fri, 24 Jan 2025 22:03:35 +0100 Subject: [PATCH] =?UTF-8?q?app,=20libgimp,=20libgimpbase:=20use=20GimpPara?= =?UTF-8?q?mSpecObject=20infrastructure=20for=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … GimpParamSpecUnit's default value. When I reparented GimpParamSpecUnit to GimpParamSpecObject in commit ba3da3d338, I clearly forgot to get rid of the redundant default value. --- app/core/gimpparamspecs-desc.c | 5 ++++- libgimp/gimpgpparams-body.c | 5 ++++- libgimp/gimpparamspecs-desc.c | 5 ++++- libgimpbase/gimpunit.c | 32 +++++++++++--------------------- libgimpbase/gimpunit.h | 1 - 5 files changed, 23 insertions(+), 25 deletions(-) diff --git a/app/core/gimpparamspecs-desc.c b/app/core/gimpparamspecs-desc.c index 3f7ef9d8fc..0898d6776e 100644 --- a/app/core/gimpparamspecs-desc.c +++ b/app/core/gimpparamspecs-desc.c @@ -49,9 +49,12 @@ static gchar * gimp_param_spec_unit_desc (GParamSpec *pspec) { GimpParamSpecUnit *uspec = GIMP_PARAM_SPEC_UNIT (pspec); + GObject *default_value; + + default_value = gimp_param_spec_object_get_default (pspec); return g_strdup_printf ("(default %s%s%s)", - gimp_unit_get_abbreviation (uspec->default_value), + gimp_unit_get_abbreviation (GIMP_UNIT (default_value)), uspec->allow_pixel ? ", pixel allowed": "", uspec->allow_percent ? ", percent allowed": ""); } diff --git a/libgimp/gimpgpparams-body.c b/libgimp/gimpgpparams-body.c index aaf07ec02e..185e4f5863 100644 --- a/libgimp/gimpgpparams-body.c +++ b/libgimp/gimpgpparams-body.c @@ -430,12 +430,15 @@ _gimp_param_spec_to_gp_param_def (GParamSpec *pspec, else if (pspec_type == GIMP_TYPE_PARAM_UNIT) { GimpParamSpecUnit *uspec = GIMP_PARAM_SPEC_UNIT (pspec); + GObject *default_value; + + default_value = gimp_param_spec_object_get_default (pspec); param_def->param_def_type = GP_PARAM_DEF_TYPE_UNIT; param_def->meta.m_unit.allow_pixels = uspec->allow_pixel; param_def->meta.m_unit.allow_percent = uspec->allow_percent; - param_def->meta.m_unit.default_val = gimp_unit_get_id (uspec->default_value); + param_def->meta.m_unit.default_val = gimp_unit_get_id (GIMP_UNIT (default_value)); } #ifndef LIBGIMP_COMPILATION /* This trick is only for core side when it needs to send the param diff --git a/libgimp/gimpparamspecs-desc.c b/libgimp/gimpparamspecs-desc.c index fd7296a6eb..8e4cdacf42 100644 --- a/libgimp/gimpparamspecs-desc.c +++ b/libgimp/gimpparamspecs-desc.c @@ -45,9 +45,12 @@ static gchar * gimp_param_spec_unit_desc (GParamSpec *pspec) { GimpParamSpecUnit *uspec = GIMP_PARAM_SPEC_UNIT (pspec); + GObject *default_value; + + default_value = gimp_param_spec_object_get_default (pspec); return g_strdup_printf ("(default %s%s%s)", - gimp_unit_get_abbreviation (uspec->default_value), + gimp_unit_get_abbreviation (GIMP_UNIT (default_value)), uspec->allow_pixel ? ", pixel allowed": "", uspec->allow_percent ? ", percent allowed": ""); } diff --git a/libgimpbase/gimpunit.c b/libgimpbase/gimpunit.c index 8691192951..21669e09bf 100644 --- a/libgimpbase/gimpunit.c +++ b/libgimpbase/gimpunit.c @@ -933,8 +933,6 @@ gimp_units_to_points (gdouble value, static void gimp_param_unit_class_init (GimpParamSpecObjectClass *klass); static void gimp_param_unit_init (GParamSpec *pspec); static GParamSpec * gimp_param_unit_duplicate (GParamSpec *pspec); -static void gimp_param_unit_set_default (GParamSpec *pspec, - GValue *value); static gboolean gimp_param_unit_validate (GParamSpec *pspec, GValue *value); @@ -980,18 +978,19 @@ gimp_param_unit_class_init (GimpParamSpecObjectClass *klass) klass->duplicate = gimp_param_unit_duplicate; pclass->value_type = GIMP_TYPE_UNIT; - pclass->value_set_default = gimp_param_unit_set_default; pclass->value_validate = gimp_param_unit_validate; } static void gimp_param_unit_init (GParamSpec *pspec) { - GimpParamSpecUnit *uspec = GIMP_PARAM_SPEC_UNIT (pspec); + GimpParamSpecUnit *uspec = GIMP_PARAM_SPEC_UNIT (pspec); + GimpParamSpecObject *ospec = GIMP_PARAM_SPEC_OBJECT (pspec); - uspec->allow_pixel = TRUE; - uspec->allow_percent = TRUE; - uspec->default_value = gimp_unit_inch (); + uspec->allow_pixel = TRUE; + uspec->allow_percent = TRUE; + ospec->_default_value = g_object_ref (G_OBJECT (gimp_unit_inch ())); + ospec->_has_default = TRUE; } static GParamSpec * @@ -1008,24 +1007,15 @@ gimp_param_unit_duplicate (GParamSpec *pspec) g_param_spec_get_blurb (pspec), uspec->allow_pixel, uspec->allow_percent, - uspec->default_value, + GIMP_UNIT (gimp_param_spec_object_get_default (pspec)), pspec->flags); return duplicate; } -static void -gimp_param_unit_set_default (GParamSpec *pspec, - GValue *value) -{ - GimpParamSpecUnit *uspec = GIMP_PARAM_SPEC_UNIT (pspec); - - g_value_set_object (value, uspec->default_value); -} - static gboolean gimp_param_unit_validate (GParamSpec *pspec, - GValue *value) + GValue *value) { GimpParamSpecUnit *uspec = GIMP_PARAM_SPEC_UNIT (pspec); GObject *unit = value->data[0].v_pointer; @@ -1035,7 +1025,7 @@ gimp_param_unit_validate (GParamSpec *pspec, (! uspec->allow_pixel && value->data[0].v_pointer == gimp_unit_pixel ())) { g_clear_object (&unit); - value->data[0].v_pointer = g_object_ref (uspec->default_value); + value->data[0].v_pointer = g_object_ref (gimp_param_spec_object_get_default (pspec)); return TRUE; } @@ -1065,7 +1055,7 @@ gimp_param_spec_unit (const gchar *name, const gchar *blurb, gboolean allow_pixel, gboolean allow_percent, - GimpUnit *default_value, + GimpUnit *default_value, GParamFlags flags) { GimpParamSpecUnit *uspec; @@ -1079,7 +1069,7 @@ gimp_param_spec_unit (const gchar *name, uspec->allow_pixel = allow_pixel; uspec->allow_percent = allow_percent; - uspec->default_value = default_value; + gimp_param_spec_object_set_default (G_PARAM_SPEC (uspec), G_OBJECT (default_value)); return G_PARAM_SPEC (uspec); } diff --git a/libgimpbase/gimpunit.h b/libgimpbase/gimpunit.h index 7afe2a01e9..640f5cf66d 100644 --- a/libgimpbase/gimpunit.h +++ b/libgimpbase/gimpunit.h @@ -98,7 +98,6 @@ struct _GimpParamSpecUnit gboolean allow_pixel; gboolean allow_percent; - GimpUnit *default_value; }; GType gimp_param_unit_get_type (void) G_GNUC_CONST;