[gimp] libgimp: add gimp_procedure_config_get_procedure()



commit aa41baef1e62a47315a19a15799e5906506d2525
Author: Michael Natterer <mitch gimp org>
Date:   Fri Sep 20 19:33:50 2019 +0200

    libgimp: add gimp_procedure_config_get_procedure()
    
    and use it in gimp_procedure_dialog_new() to make sure that the passed
    config was created by the passed procedure.

 libgimp/gimp.def              |  1 +
 libgimp/gimpprocedureconfig.c | 19 +++++++++++++++++++
 libgimp/gimpprocedureconfig.h | 27 +++++++++++++++------------
 libgimp/gimpproceduredialog.c |  2 ++
 4 files changed, 37 insertions(+), 12 deletions(-)
---
diff --git a/libgimp/gimp.def b/libgimp/gimp.def
index 14bdc36caa..be6b2ec6ae 100644
--- a/libgimp/gimp.def
+++ b/libgimp/gimp.def
@@ -682,6 +682,7 @@ EXPORTS
        gimp_procedure_add_return_value_from_property
        gimp_procedure_config_begin_run
        gimp_procedure_config_end_run
+       gimp_procedure_config_get_procedure
        gimp_procedure_config_get_type
        gimp_procedure_config_get_values
        gimp_procedure_config_set_values
diff --git a/libgimp/gimpprocedureconfig.c b/libgimp/gimpprocedureconfig.c
index 688868276d..a64bb5f610 100644
--- a/libgimp/gimpprocedureconfig.c
+++ b/libgimp/gimpprocedureconfig.c
@@ -177,6 +177,25 @@ gimp_procedure_config_get_property (GObject    *object,
 
 /*  public functions  */
 
+/**
+ * gimp_procedure_config_get_procedure:
+ * @config: a #GimpProcedureConfig
+ *
+ * This function returns the #GimpProcedure which created @config, see
+ * gimp_procedure_create_config().
+ *
+ * Returns: The #GimpProcedure which created @config.
+ *
+ * Since: 3.0
+ **/
+GimpProcedure *
+gimp_procedure_config_get_procedure (GimpProcedureConfig *config)
+{
+  g_return_val_if_fail (GIMP_IS_PROCEDURE_CONFIG (config), NULL);
+
+  return config->priv->procedure;
+}
+
 /**
  * gimp_procedure_config_set_values:
  * @config: a #GimpProcedureConfig
diff --git a/libgimp/gimpprocedureconfig.h b/libgimp/gimpprocedureconfig.h
index 3e6fd58e08..4960526fa0 100644
--- a/libgimp/gimpprocedureconfig.h
+++ b/libgimp/gimpprocedureconfig.h
@@ -65,18 +65,21 @@ struct _GimpProcedureConfigClass
 };
 
 
-GType   gimp_procedure_config_get_type   (void) G_GNUC_CONST;
-
-void    gimp_procedure_config_set_values (GimpProcedureConfig  *config,
-                                          const GimpValueArray *values);
-void    gimp_procedure_config_get_values (GimpProcedureConfig  *config,
-                                          GimpValueArray       *values);
-
-void    gimp_procedure_config_begin_run  (GimpProcedureConfig  *config,
-                                          GimpRunMode           run_mode,
-                                          const GimpValueArray *args);
-void    gimp_procedure_config_end_run    (GimpProcedureConfig  *config,
-                                          GimpRunMode           run_mode);
+GType   gimp_procedure_config_get_type      (void) G_GNUC_CONST;
+
+GimpProcedure *
+        gimp_procedure_config_get_procedure (GimpProcedureConfig *config);
+
+void    gimp_procedure_config_set_values    (GimpProcedureConfig  *config,
+                                             const GimpValueArray *values);
+void    gimp_procedure_config_get_values    (GimpProcedureConfig  *config,
+                                             GimpValueArray       *values);
+
+void    gimp_procedure_config_begin_run     (GimpProcedureConfig  *config,
+                                             GimpRunMode           run_mode,
+                                             const GimpValueArray *args);
+void    gimp_procedure_config_end_run       (GimpProcedureConfig  *config,
+                                             GimpRunMode           run_mode);
 
 
 G_END_DECLS
diff --git a/libgimp/gimpproceduredialog.c b/libgimp/gimpproceduredialog.c
index ee06fe2264..a6820a5446 100644
--- a/libgimp/gimpproceduredialog.c
+++ b/libgimp/gimpproceduredialog.c
@@ -168,6 +168,8 @@ gimp_procedure_dialog_new (GimpProcedure       *procedure,
 
   g_return_val_if_fail (GIMP_IS_PROCEDURE (procedure), NULL);
   g_return_val_if_fail (GIMP_IS_PROCEDURE_CONFIG (config), NULL);
+  g_return_val_if_fail (gimp_procedure_config_get_procedure (config) ==
+                        procedure, NULL);
   g_return_val_if_fail (title != NULL, NULL);
 
   role = g_strdup_printf ("gimp-%s", gimp_procedure_get_name (procedure));


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