[gimp] libgimpwidgets, app, plug-ins: fix last GIR warnings.



commit ec9dbd8115aafaaceac2d58f7892a67ff5352eb4
Author: Jehan <jehan girinstud io>
Date:   Wed Jan 15 13:51:55 2020 +0100

    libgimpwidgets, app, plug-ins: fix last GIR warnings.
    
    gimp_int_radio_group_new() was still complaining about the scope of
    radio_button_callback(). Make it (scope notified) because it needs to
    stay alive after the function returns and may be called multiple times.
    
    Also adding a GDestroyNotify to free the callback data once the widget
    is destroyed (additionally it will also serve as a notifier for bindings
    to properly free the callback closure itself, not only it's data).
    
    With this last one done, GObject Introspection generation now happens
    without any warning output.

 app/dialogs/convert-precision-dialog.c               |  2 +-
 app/tools/gimpoffsettool.c                           |  2 +-
 libgimpwidgets/gimppropwidgets.c                     |  2 +-
 libgimpwidgets/gimpwidgets.c                         | 17 ++++++++++++-----
 libgimpwidgets/gimpwidgets.h                         |  1 +
 plug-ins/common/blinds.c                             |  2 +-
 plug-ins/common/curve-bend.c                         |  4 ++--
 plug-ins/common/file-ps.c                            | 10 +++++-----
 plug-ins/common/file-xmc.c                           |  4 ++--
 plug-ins/common/hot.c                                |  4 ++--
 plug-ins/common/jigsaw.c                             |  2 +-
 plug-ins/common/nl-filter.c                          |  2 +-
 plug-ins/common/sparkle.c                            |  2 +-
 plug-ins/common/van-gogh-lic.c                       |  6 +++---
 plug-ins/file-tiff/file-tiff-load.c                  |  2 +-
 plug-ins/file-tiff/file-tiff-save.c                  |  2 +-
 plug-ins/fractal-explorer/fractal-explorer-dialogs.c |  8 ++++----
 plug-ins/gimpressionist/color.c                      |  2 +-
 plug-ins/gimpressionist/orientmap.c                  |  2 +-
 plug-ins/gimpressionist/placement.c                  |  2 +-
 plug-ins/screenshot/screenshot.c                     |  2 +-
 21 files changed, 44 insertions(+), 36 deletions(-)
---
diff --git a/app/dialogs/convert-precision-dialog.c b/app/dialogs/convert-precision-dialog.c
index 106cdb0014..ec652f14df 100644
--- a/app/dialogs/convert-precision-dialog.c
+++ b/app/dialogs/convert-precision-dialog.c
@@ -179,7 +179,7 @@ convert_precision_dialog_new (GimpImage                    *image,
 
   vbox = gimp_int_radio_group_new (FALSE, NULL,
                                    G_CALLBACK (gimp_radio_button_update),
-                                   &private->trc,
+                                   &private->trc, NULL,
                                    trc,
 
                                    _("Linear light"),
diff --git a/app/tools/gimpoffsettool.c b/app/tools/gimpoffsettool.c
index d2b53c5937..7b9536a102 100644
--- a/app/tools/gimpoffsettool.c
+++ b/app/tools/gimpoffsettool.c
@@ -529,7 +529,7 @@ gimp_offset_tool_dialog (GimpFilterTool *filter_tool)
   frame = gimp_int_radio_group_new (TRUE, _("Edge Behavior"),
 
                                     G_CALLBACK (gimp_offset_tool_edge_behavior_toggled),
-                                    offset_tool,
+                                    offset_tool, NULL,
 
                                     GIMP_OFFSET_WRAP_AROUND,
 
diff --git a/libgimpwidgets/gimppropwidgets.c b/libgimpwidgets/gimppropwidgets.c
index 372ac08c2e..be006d644d 100644
--- a/libgimpwidgets/gimppropwidgets.c
+++ b/libgimpwidgets/gimppropwidgets.c
@@ -1186,7 +1186,7 @@ gimp_prop_boolean_radio_frame_new (GObject     *config,
   frame =
     gimp_int_radio_group_new (TRUE, title,
                               G_CALLBACK (gimp_prop_radio_button_callback),
-                              config, value,
+                              config, NULL, value,
 
                               false_text, FALSE, &button,
                               true_text,  TRUE,  NULL,
diff --git a/libgimpwidgets/gimpwidgets.c b/libgimpwidgets/gimpwidgets.c
index 03b5917e9a..74d8eddd58 100644
--- a/libgimpwidgets/gimpwidgets.c
+++ b/libgimpwidgets/gimpwidgets.c
@@ -50,10 +50,11 @@
  *                         radio button group.
  * @frame_title:           The title of the Frame or %NULL if you don't want
  *                         a title.
- * @radio_button_callback: The callback each button's "toggled" signal will
- *                         be connected with.
- * @radio_button_callback_data:
+ * @radio_button_callback: (scope notified): The callback each button's
+ *                         "toggled" signal will be connected with.
+ * @radio_button_callback_data: (closure radio_button_callback):
  *                         The data which will be passed to g_signal_connect().
+ * @radio_button_callback_destroy: (destroy radio_button_callback_data):
  * @initial:               The @item_data of the initially pressed radio button.
  * @...:                   A %NULL-terminated @va_list describing
  *                         the radio buttons.
@@ -70,7 +71,8 @@ GtkWidget *
 gimp_int_radio_group_new (gboolean         in_frame,
                           const gchar     *frame_title,
                           GCallback        radio_button_callback,
-                          gpointer         callback_data,
+                          gpointer         radio_button_callback_data,
+                          GDestroyNotify   radio_button_callback_destroy,
                           gint             initial, /* item_data */
 
                           /* specify radio buttons as va_list:
@@ -97,6 +99,11 @@ gimp_int_radio_group_new (gboolean         in_frame,
 
   group = NULL;
 
+  if (radio_button_callback_destroy)
+    g_object_weak_ref (G_OBJECT (vbox),
+                       (GWeakNotify) radio_button_callback_destroy,
+                       radio_button_callback_data);
+
   /*  create the radio buttons  */
   va_start (args, initial);
   label = va_arg (args, const gchar *);
@@ -132,7 +139,7 @@ gimp_int_radio_group_new (gboolean         in_frame,
 
       g_signal_connect (button, "toggled",
                         radio_button_callback,
-                        callback_data);
+                        radio_button_callback_data);
 
       gtk_widget_show (button);
 
diff --git a/libgimpwidgets/gimpwidgets.h b/libgimpwidgets/gimpwidgets.h
index 9438d4f148..a31e072b74 100644
--- a/libgimpwidgets/gimpwidgets.h
+++ b/libgimpwidgets/gimpwidgets.h
@@ -102,6 +102,7 @@ GtkWidget * gimp_int_radio_group_new (gboolean          in_frame,
                                       const gchar      *frame_title,
                                       GCallback         radio_button_callback,
                                       gpointer          radio_button_callback_data,
+                                      GDestroyNotify    radio_button_callback_destroy,
                                       gint              initial, /* item_data */
                                       ...) G_GNUC_NULL_TERMINATED;
 
diff --git a/plug-ins/common/blinds.c b/plug-ins/common/blinds.c
index 4cf736a85d..f6b859782a 100644
--- a/plug-ins/common/blinds.c
+++ b/plug-ins/common/blinds.c
@@ -307,7 +307,7 @@ blinds_dialog (GimpDrawable *drawable)
   frame =
     gimp_int_radio_group_new (TRUE, _("Orientation"),
                               G_CALLBACK (gimp_radio_button_update),
-                              &bvals.orientation, bvals.orientation,
+                              &bvals.orientation, NULL, bvals.orientation,
 
                               _("_Horizontal"), GIMP_ORIENTATION_HORIZONTAL,
                               &horizontal,
diff --git a/plug-ins/common/curve-bend.c b/plug-ins/common/curve-bend.c
index 67a7290d55..748d57675e 100644
--- a/plug-ins/common/curve-bend.c
+++ b/plug-ins/common/curve-bend.c
@@ -1359,7 +1359,7 @@ bender_new_dialog (GimpDrawable *drawable)
 
   frame = gimp_int_radio_group_new (TRUE, _("Curve for Border"),
                                     G_CALLBACK (bender_border_callback),
-                                    &cd->outline, cd->outline,
+                                    &cd->outline, NULL, cd->outline,
 
                                     C_("curve-border", "_Upper"), OUTLINE_UPPER, &upper,
                                     C_("curve-border", "_Lower"), OUTLINE_LOWER, &lower,
@@ -1374,7 +1374,7 @@ bender_new_dialog (GimpDrawable *drawable)
 
   frame = gimp_int_radio_group_new (TRUE, _("Curve Type"),
                                     G_CALLBACK (bender_type_callback),
-                                    &cd->curve_type, cd->curve_type,
+                                    &cd->curve_type, NULL, cd->curve_type,
 
                                     _("Smoot_h"), SMOOTH, &smooth,
                                     _("_Free"),   GFREE,  &freew,
diff --git a/plug-ins/common/file-ps.c b/plug-ins/common/file-ps.c
index a25e95974e..9ea972e154 100644
--- a/plug-ins/common/file-ps.c
+++ b/plug-ins/common/file-ps.c
@@ -3670,7 +3670,7 @@ load_dialog (GFile *file)
   /* Coloring */
   frame = gimp_int_radio_group_new (TRUE, _("Coloring"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &plvals.pnm_type, plvals.pnm_type,
+                                    &plvals.pnm_type, NULL, plvals.pnm_type,
 
                                     _("B/W"),       4, NULL,
                                     _("Gray"),      5, NULL,
@@ -3688,7 +3688,7 @@ load_dialog (GFile *file)
 
   frame = gimp_int_radio_group_new (TRUE, _("Text antialiasing"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &plvals.textalpha, plvals.textalpha,
+                                    &plvals.textalpha, NULL, plvals.textalpha,
 
                                     C_("antialiasing", "None"), 1, NULL,
                                     _("Weak"),                  2, NULL,
@@ -3700,7 +3700,7 @@ load_dialog (GFile *file)
 
   frame = gimp_int_radio_group_new (TRUE, _("Graphic antialiasing"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &plvals.graphicsalpha, plvals.graphicsalpha,
+                                    &plvals.graphicsalpha, NULL, plvals.graphicsalpha,
 
                                     C_("antialiasing", "None"), 1, NULL,
                                     _("Weak"),                  2, NULL,
@@ -3864,7 +3864,7 @@ save_dialog (void)
   /* Unit */
   uframe = gimp_int_radio_group_new (TRUE, _("Unit"),
                                      G_CALLBACK (save_unit_toggle_update),
-                                     vals, psvals.unit_mm,
+                                     vals, NULL, psvals.unit_mm,
 
                                      _("_Inch"),       FALSE, NULL,
                                      _("_Millimeter"), TRUE,  NULL,
@@ -3880,7 +3880,7 @@ save_dialog (void)
   /* Rotation */
   frame = gimp_int_radio_group_new (TRUE, _("Rotation"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &psvals.rotate, psvals.rotate,
+                                    &psvals.rotate, NULL, psvals.rotate,
 
                                     "_0",   0,   NULL,
                                     "_90",  90,  NULL,
diff --git a/plug-ins/common/file-xmc.c b/plug-ins/common/file-xmc.c
index 510648e884..45511e94a5 100644
--- a/plug-ins/common/file-xmc.c
+++ b/plug-ins/common/file-xmc.c
@@ -1243,7 +1243,7 @@ save_dialog (GimpImage     *image,
   /* Replace size ? */
   tmpwidget =
     gimp_int_radio_group_new (FALSE, NULL, G_CALLBACK (gimp_radio_button_update),
-                             &xmcvals.size_replace, xmcvals.size_replace,
+                             &xmcvals.size_replace, NULL, xmcvals.size_replace,
                              _("_Use this value only for a frame which size "
                                "is not specified."),
                              FALSE, NULL,
@@ -1294,7 +1294,7 @@ save_dialog (GimpImage     *image,
   /* Replace delay? */
   tmpwidget =
     gimp_int_radio_group_new (FALSE, NULL, G_CALLBACK (gimp_radio_button_update),
-                             &xmcvals.delay_replace, xmcvals.delay_replace,
+                             &xmcvals.delay_replace, NULL, xmcvals.delay_replace,
                              _("_Use this value only for a frame which delay "
                                "is not specified."),
                              FALSE, NULL,
diff --git a/plug-ins/common/hot.c b/plug-ins/common/hot.c
index c02050811f..49e6888c90 100644
--- a/plug-ins/common/hot.c
+++ b/plug-ins/common/hot.c
@@ -677,7 +677,7 @@ plugin_dialog (piArgs *argp)
 
   frame = gimp_int_radio_group_new (TRUE, _("Mode"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &argp->mode, argp->mode,
+                                    &argp->mode, NULL, argp->mode,
 
                                     "N_TSC", MODE_NTSC, NULL,
                                     "_PAL",  MODE_PAL,  NULL,
@@ -698,7 +698,7 @@ plugin_dialog (piArgs *argp)
 
   frame = gimp_int_radio_group_new (TRUE, _("Action"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &argp->action, argp->action,
+                                    &argp->action, NULL, argp->action,
 
                                     _("Reduce _Luminance"),  ACT_LREDUX, NULL,
                                     _("Reduce _Saturation"), ACT_SREDUX, NULL,
diff --git a/plug-ins/common/jigsaw.c b/plug-ins/common/jigsaw.c
index de65c1be1a..44187b4f4e 100644
--- a/plug-ins/common/jigsaw.c
+++ b/plug-ins/common/jigsaw.c
@@ -2591,7 +2591,7 @@ jigsaw_dialog (GimpDrawable *drawable)
 
   frame = gimp_int_radio_group_new (TRUE, _("Jigsaw Style"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &config.style, config.style,
+                                    &config.style, NULL, config.style,
 
                                     _("_Square"), BEZIER_1, &rbutton1,
                                     _("C_urved"), BEZIER_2, &rbutton2,
diff --git a/plug-ins/common/nl-filter.c b/plug-ins/common/nl-filter.c
index 3eef5d4cc7..d3bb736775 100644
--- a/plug-ins/common/nl-filter.c
+++ b/plug-ins/common/nl-filter.c
@@ -1124,7 +1124,7 @@ nlfilter_dialog (GimpDrawable *drawable)
 
   frame = gimp_int_radio_group_new (TRUE, _("Filter"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &nlfvals.filter, nlfvals.filter,
+                                    &nlfvals.filter, NULL, nlfvals.filter,
 
                                     _("_Alpha trimmed mean"),
                                     filter_alpha_trim, &alpha_trim,
diff --git a/plug-ins/common/sparkle.c b/plug-ins/common/sparkle.c
index 140dc4f4be..dcb1ae56e3 100644
--- a/plug-ins/common/sparkle.c
+++ b/plug-ins/common/sparkle.c
@@ -606,7 +606,7 @@ sparkle_dialog (GimpDrawable *drawable)
   /*  colortype  */
   vbox = gimp_int_radio_group_new (FALSE, NULL,
                                    G_CALLBACK (gimp_radio_button_update),
-                                   &svals.colortype, svals.colortype,
+                                   &svals.colortype, NULL, svals.colortype,
 
                                    _("_Natural color"),    NATURAL,    &r1,
                                    _("_Foreground color"), FOREGROUND, &r2,
diff --git a/plug-ins/common/van-gogh-lic.c b/plug-ins/common/van-gogh-lic.c
index 099d6fb9c8..33f962b6d4 100644
--- a/plug-ins/common/van-gogh-lic.c
+++ b/plug-ins/common/van-gogh-lic.c
@@ -725,7 +725,7 @@ create_main_dialog (void)
 
   frame = gimp_int_radio_group_new (TRUE, _("Effect Channel"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &licvals.effect_channel,
+                                    &licvals.effect_channel, NULL,
                                     licvals.effect_channel,
 
                                     _("_Hue"),        0, NULL,
@@ -738,7 +738,7 @@ create_main_dialog (void)
 
   frame = gimp_int_radio_group_new (TRUE, _("Effect Operator"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &licvals.effect_operator,
+                                    &licvals.effect_operator, NULL,
                                     licvals.effect_operator,
 
                                     _("_Derivative"), 0, NULL,
@@ -750,7 +750,7 @@ create_main_dialog (void)
 
   frame = gimp_int_radio_group_new (TRUE, _("Convolve"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &licvals.effect_convolve,
+                                    &licvals.effect_convolve, NULL,
                                     licvals.effect_convolve,
 
                                     _("_With white noise"),  0, NULL,
diff --git a/plug-ins/file-tiff/file-tiff-load.c b/plug-ins/file-tiff/file-tiff-load.c
index a56ed6e3d3..8b7a22ac28 100644
--- a/plug-ins/file-tiff/file-tiff-load.c
+++ b/plug-ins/file-tiff/file-tiff-load.c
@@ -1935,7 +1935,7 @@ load_dialog (TIFF              *tif,
 
       extra_radio = gimp_int_radio_group_new (TRUE, _("Process extra channel as:"),
                                               (GCallback) gimp_radio_button_update,
-                                              default_extra, GIMP_TIFF_LOAD_UNASSALPHA,
+                                              default_extra, NULL, GIMP_TIFF_LOAD_UNASSALPHA,
                                               _("_Non-premultiplied alpha"), GIMP_TIFF_LOAD_UNASSALPHA, NULL,
                                               _("Pre_multiplied alpha"),     GIMP_TIFF_LOAD_ASSOCALPHA, NULL,
                                               _("Channe_l"),                 GIMP_TIFF_LOAD_CHANNEL,    NULL,
diff --git a/plug-ins/file-tiff/file-tiff-save.c b/plug-ins/file-tiff/file-tiff-save.c
index 646ad7314d..f23904ee78 100644
--- a/plug-ins/file-tiff/file-tiff-save.c
+++ b/plug-ins/file-tiff/file-tiff-save.c
@@ -1193,7 +1193,7 @@ save_dialog (TiffSaveVals  *tsvals,
 
   frame = gimp_int_radio_group_new (TRUE, _("Compression"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &tsvals->compression, tsvals->compression,
+                                    &tsvals->compression, NULL, tsvals->compression,
 
                                     _("_None"),      COMPRESSION_NONE,          NULL,
                                     _("_LZW"),       COMPRESSION_LZW,           NULL,
diff --git a/plug-ins/fractal-explorer/fractal-explorer-dialogs.c 
b/plug-ins/fractal-explorer/fractal-explorer-dialogs.c
index ddd8a93ff1..6860e5b566 100644
--- a/plug-ins/fractal-explorer/fractal-explorer-dialogs.c
+++ b/plug-ins/fractal-explorer/fractal-explorer-dialogs.c
@@ -838,7 +838,7 @@ explorer_dialog (void)
   toggle_vbox =
     gimp_int_radio_group_new (FALSE, NULL,
                               G_CALLBACK (explorer_radio_update),
-                              &wvals.fractaltype, wvals.fractaltype,
+                              &wvals.fractaltype, NULL, wvals.fractaltype,
 
                               _("Mandelbrot"), TYPE_MANDELBROT,
                               &(elements->type[TYPE_MANDELBROT]),
@@ -991,7 +991,7 @@ explorer_dialog (void)
   /*  Redmode radio frame  */
   frame = gimp_int_radio_group_new (TRUE, _("Red"),
                                     G_CALLBACK (explorer_radio_update),
-                                    &wvals.redmode, wvals.redmode,
+                                    &wvals.redmode, NULL, wvals.redmode,
 
                                     _("Sine"),                    SINUS,
                                     &elements->redmode[SINUS],
@@ -1032,7 +1032,7 @@ explorer_dialog (void)
   /*  Greenmode radio frame  */
   frame = gimp_int_radio_group_new (TRUE, _("Green"),
                                     G_CALLBACK (explorer_radio_update),
-                                    &wvals.greenmode, wvals.greenmode,
+                                    &wvals.greenmode, NULL, wvals.greenmode,
 
                                     _("Sine"),                    SINUS,
                                     &elements->greenmode[SINUS],
@@ -1073,7 +1073,7 @@ explorer_dialog (void)
   /*  Bluemode radio frame  */
   frame = gimp_int_radio_group_new (TRUE, _("Blue"),
                                     G_CALLBACK (explorer_radio_update),
-                                    &wvals.bluemode, wvals.bluemode,
+                                    &wvals.bluemode, NULL, wvals.bluemode,
 
                                     _("Sine"),                    SINUS,
                                     &elements->bluemode[SINUS],
diff --git a/plug-ins/gimpressionist/color.c b/plug-ins/gimpressionist/color.c
index 6e34f37322..36d3d10e99 100644
--- a/plug-ins/gimpressionist/color.c
+++ b/plug-ins/gimpressionist/color.c
@@ -64,7 +64,7 @@ create_colorpage (GtkNotebook *notebook)
 
   frame = gimp_int_radio_group_new (TRUE, _("Color"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &pcvals.color_type, 0,
+                                    &pcvals.color_type, NULL, 0,
 
                                     _("A_verage under brush"),
                                     COLOR_TYPE_AVERAGE, &colorradio[COLOR_TYPE_AVERAGE],
diff --git a/plug-ins/gimpressionist/orientmap.c b/plug-ins/gimpressionist/orientmap.c
index 3da8df1f23..681b09deb5 100644
--- a/plug-ins/gimpressionist/orientmap.c
+++ b/plug-ins/gimpressionist/orientmap.c
@@ -637,7 +637,7 @@ create_orientmap_dialog (GtkWidget *parent)
 
   frame = gimp_int_radio_group_new (TRUE, _("Type"),
                                     G_CALLBACK (vector_type_click_callback),
-                                    &vector_type, 0,
+                                    &vector_type, NULL, 0,
 
                                     _("_Normal"),  0, &vector_types[0],
                                     _("Vorte_x"),  1, &vector_types[1],
diff --git a/plug-ins/gimpressionist/placement.c b/plug-ins/gimpressionist/placement.c
index 00db94f3b6..5973c03895 100644
--- a/plug-ins/gimpressionist/placement.c
+++ b/plug-ins/gimpressionist/placement.c
@@ -71,7 +71,7 @@ create_placementpage (GtkNotebook *notebook)
 
   frame = gimp_int_radio_group_new (TRUE, _("Placement"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &pcvals.place_type, 0,
+                                    &pcvals.place_type, NULL, 0,
 
                                     _("Randomly"),
                                     PLACEMENT_TYPE_RANDOM,
diff --git a/plug-ins/screenshot/screenshot.c b/plug-ins/screenshot/screenshot.c
index d8c3a91fd9..2d179e318a 100644
--- a/plug-ins/screenshot/screenshot.c
+++ b/plug-ins/screenshot/screenshot.c
@@ -828,7 +828,7 @@ shoot_dialog (GdkMonitor **monitor)
   frame = gimp_int_radio_group_new (TRUE,
                                     _("Color Profile"),
                                     G_CALLBACK (gimp_radio_button_update),
-                                    &shootvals.profile_policy,
+                                    &shootvals.profile_policy, NULL,
                                     shootvals.profile_policy,
 
                                     _("Tag image with _monitor profile"),


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