From b141bcdb600deb41683ccb64be444523e53614bf Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Sat, 22 Aug 2009 01:22:41 +0200 Subject: [PATCH] Minor plug-in sensitivity refactoring * app/plug-in/gimppluginprocedure.[ch] (gimp_plug_in_procedure_get_sensitive): change GimpImageType parameter to GimpDrawable and do the type check internally. * app/actions/plug-in-actions.c (plug_in_actions_update): pass the active drawable instead of its type. --- app/actions/plug-in-actions.c | 19 +++++++------------ app/plug-in/gimppluginprocedure.c | 13 +++++++++---- app/plug-in/gimppluginprocedure.h | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/app/actions/plug-in-actions.c b/app/actions/plug-in-actions.c index 25bd667b7c..0a0149bf47 100644 --- a/app/actions/plug-in-actions.c +++ b/app/actions/plug-in-actions.c @@ -237,19 +237,14 @@ void plug_in_actions_update (GimpActionGroup *group, gpointer data) { - GimpImage *image = action_data_get_image (data); - GimpPlugInManager *manager = group->gimp->plug_in_manager; - GimpImageType type = -1; + GimpImage *image = action_data_get_image (data); + GimpPlugInManager *manager = group->gimp->plug_in_manager; + GimpDrawable *drawable = NULL; GSList *list; gint i; if (image) - { - GimpDrawable *drawable = gimp_image_get_active_drawable (image); - - if (drawable) - type = gimp_drawable_type (drawable); - } + drawable = gimp_image_get_active_drawable (image); for (list = manager->plug_in_procedures; list; list = g_slist_next (list)) { @@ -260,7 +255,7 @@ plug_in_actions_update (GimpActionGroup *group, proc->image_types_val) { gboolean sensitive = gimp_plug_in_procedure_get_sensitive (proc, - type); + drawable); gimp_action_group_set_action_sensitive (group, GIMP_OBJECT (proc)->name, @@ -269,7 +264,7 @@ plug_in_actions_update (GimpActionGroup *group, } if (manager->history && - gimp_plug_in_procedure_get_sensitive (manager->history->data, type)) + gimp_plug_in_procedure_get_sensitive (manager->history->data, drawable)) { gimp_action_group_set_action_sensitive (group, "plug-in-repeat", TRUE); gimp_action_group_set_action_sensitive (group, "plug-in-reshow", TRUE); @@ -287,7 +282,7 @@ plug_in_actions_update (GimpActionGroup *group, i + 1); gboolean sensitive; - sensitive = gimp_plug_in_procedure_get_sensitive (proc, type); + sensitive = gimp_plug_in_procedure_get_sensitive (proc, drawable); gimp_action_group_set_action_sensitive (group, name, sensitive); diff --git a/app/plug-in/gimppluginprocedure.c b/app/plug-in/gimppluginprocedure.c index 7adab035f9..694dd81b48 100644 --- a/app/plug-in/gimppluginprocedure.c +++ b/app/plug-in/gimppluginprocedure.c @@ -21,7 +21,7 @@ #include -#include +#include #include #include "libgimpbase/gimpbase.h" @@ -30,6 +30,7 @@ #include "core/gimp.h" #include "core/gimp-utils.h" +#include "core/gimpdrawable.h" #include "core/gimpmarshal.h" #include "core/gimpparamspecs.h" @@ -683,11 +684,16 @@ gimp_plug_in_procedure_get_help_id (const GimpPlugInProcedure *proc) gboolean gimp_plug_in_procedure_get_sensitive (const GimpPlugInProcedure *proc, - GimpImageType image_type) + GimpDrawable *drawable) { - gboolean sensitive; + GimpImageType image_type = -1; + gboolean sensitive = FALSE; g_return_val_if_fail (GIMP_IS_PLUG_IN_PROCEDURE (proc), FALSE); + g_return_val_if_fail (drawable == NULL || GIMP_IS_DRAWABLE (drawable), FALSE); + + if (drawable) + image_type = gimp_drawable_type (drawable); switch (image_type) { @@ -710,7 +716,6 @@ gimp_plug_in_procedure_get_sensitive (const GimpPlugInProcedure *proc, sensitive = proc->image_types_val & GIMP_PLUG_IN_INDEXEDA_IMAGE; break; default: - sensitive = FALSE; break; } diff --git a/app/plug-in/gimppluginprocedure.h b/app/plug-in/gimppluginprocedure.h index 1476927977..195a98f0e3 100644 --- a/app/plug-in/gimppluginprocedure.h +++ b/app/plug-in/gimppluginprocedure.h @@ -116,7 +116,7 @@ GdkPixbuf * gimp_plug_in_procedure_get_pixbuf (const GimpPlugInProcedure gchar * gimp_plug_in_procedure_get_help_id (const GimpPlugInProcedure *proc); gboolean gimp_plug_in_procedure_get_sensitive (const GimpPlugInProcedure *proc, - GimpImageType image_type); + GimpDrawable *drawable); void gimp_plug_in_procedure_set_image_types (GimpPlugInProcedure *proc, const gchar *image_types);