app: add new virtual function GimpProcedure::get_help_id()

Implement the new function in GimpPlugInProcedure and remove
gimp_plug_in_procedure_get_help_id().
This commit is contained in:
Michael Natterer 2016-01-17 17:15:27 +01:00
parent d21ab943c1
commit 7c0d7c6311
6 changed files with 43 additions and 24 deletions

View File

@ -332,13 +332,11 @@ plug_in_actions_add_proc (GimpActionGroup *group,
entry.accelerator = NULL;
entry.tooltip = gimp_procedure_get_blurb (GIMP_PROCEDURE (proc));
entry.procedure = GIMP_PROCEDURE (proc);
entry.help_id = gimp_plug_in_procedure_get_help_id (proc);
entry.help_id = gimp_procedure_get_help_id (GIMP_PROCEDURE (proc));
gimp_action_group_add_procedure_actions (group, &entry, 1,
G_CALLBACK (plug_in_run_cmd_callback));
g_free ((gchar *) entry.help_id);
if (proc->menu_label)
{
GList *list;

View File

@ -51,6 +51,7 @@ static gint64 gimp_procedure_get_memsize (GimpObject *object
static const gchar * gimp_procedure_real_get_label (GimpProcedure *procedure);
static const gchar * gimp_procedure_real_get_menu_label (GimpProcedure *procedure);
static const gchar * gimp_procedure_real_get_blurb (GimpProcedure *procedure);
static const gchar * gimp_procedure_real_get_help_id (GimpProcedure *procedure);
static gboolean gimp_procedure_real_get_sensitive (GimpProcedure *procedure,
GimpObject *object);
static GimpValueArray * gimp_procedure_real_execute (GimpProcedure *procedure,
@ -93,6 +94,7 @@ gimp_procedure_class_init (GimpProcedureClass *klass)
klass->get_label = gimp_procedure_real_get_label;
klass->get_menu_label = gimp_procedure_real_get_menu_label;
klass->get_blurb = gimp_procedure_real_get_blurb;
klass->get_help_id = gimp_procedure_real_get_help_id;
klass->get_sensitive = gimp_procedure_real_get_sensitive;
klass->execute = gimp_procedure_real_execute;
klass->execute_async = gimp_procedure_real_execute_async;
@ -184,6 +186,12 @@ gimp_procedure_real_get_blurb (GimpProcedure *procedure)
return procedure->blurb;
}
static const gchar *
gimp_procedure_real_get_help_id (GimpProcedure *procedure)
{
return NULL;
}
static gboolean
gimp_procedure_real_get_sensitive (GimpProcedure *procedure,
GimpObject *object)
@ -353,6 +361,14 @@ gimp_procedure_get_blurb (GimpProcedure *procedure)
return GIMP_PROCEDURE_GET_CLASS (procedure)->get_blurb (procedure);
}
const gchar *
gimp_procedure_get_help_id (GimpProcedure *procedure)
{
g_return_val_if_fail (GIMP_IS_PROCEDURE (procedure), NULL);
return GIMP_PROCEDURE_GET_CLASS (procedure)->get_help_id (procedure);
}
gboolean
gimp_procedure_get_sensitive (GimpProcedure *procedure,
GimpObject *object)

View File

@ -72,6 +72,7 @@ struct _GimpProcedureClass
const gchar * (* get_label) (GimpProcedure *procedure);
const gchar * (* get_menu_label) (GimpProcedure *procedure);
const gchar * (* get_blurb) (GimpProcedure *procedure);
const gchar * (* get_help_id) (GimpProcedure *procedure);
gboolean (* get_sensitive) (GimpProcedure *procedure,
GimpObject *object);
@ -122,6 +123,7 @@ void gimp_procedure_take_strings (GimpProcedure *procedure,
const gchar * gimp_procedure_get_label (GimpProcedure *procedure);
const gchar * gimp_procedure_get_menu_label (GimpProcedure *procedure);
const gchar * gimp_procedure_get_blurb (GimpProcedure *procedure);
const gchar * gimp_procedure_get_help_id (GimpProcedure *procedure);
gboolean gimp_procedure_get_sensitive (GimpProcedure *procedure,
GimpObject *object);

View File

@ -67,6 +67,7 @@ static const gchar * gimp_plug_in_procedure_get_label (GimpProcedure *procedur
static const gchar * gimp_plug_in_procedure_get_menu_label
(GimpProcedure *procedure);
static const gchar * gimp_plug_in_procedure_get_blurb (GimpProcedure *procedure);
static const gchar * gimp_plug_in_procedure_get_help_id(GimpProcedure *procedure);
static gboolean gimp_plug_in_procedure_get_sensitive (GimpProcedure *procedure,
GimpObject *object);
static GimpValueArray * gimp_plug_in_procedure_execute (GimpProcedure *procedure,
@ -126,6 +127,7 @@ gimp_plug_in_procedure_class_init (GimpPlugInProcedureClass *klass)
proc_class->get_label = gimp_plug_in_procedure_get_label;
proc_class->get_menu_label = gimp_plug_in_procedure_get_menu_label;
proc_class->get_blurb = gimp_plug_in_procedure_get_blurb;
proc_class->get_help_id = gimp_plug_in_procedure_get_help_id;
proc_class->get_sensitive = gimp_plug_in_procedure_get_sensitive;
proc_class->execute = gimp_plug_in_procedure_execute;
proc_class->execute_async = gimp_plug_in_procedure_execute_async;
@ -139,7 +141,6 @@ gimp_plug_in_procedure_init (GimpPlugInProcedure *proc)
{
GIMP_PROCEDURE (proc)->proc_type = GIMP_PLUGIN;
proc->label = NULL;
proc->icon_data_length = -1;
}
@ -154,6 +155,7 @@ gimp_plug_in_procedure_finalize (GObject *object)
g_list_free_full (proc->menu_paths, (GDestroyNotify) g_free);
g_free (proc->label);
g_free (proc->help_id);
g_free (proc->icon_data);
g_free (proc->image_types);
@ -312,6 +314,25 @@ gimp_plug_in_procedure_get_blurb (GimpProcedure *procedure)
return NULL;
}
static const gchar *
gimp_plug_in_procedure_get_help_id (GimpProcedure *procedure)
{
GimpPlugInProcedure *proc = GIMP_PLUG_IN_PROCEDURE (procedure);
const gchar *domain;
if (proc->help_id)
return proc->help_id;
domain = gimp_plug_in_procedure_get_help_domain (proc);
if (domain)
proc->help_id = g_strconcat (domain, "?", gimp_object_get_name (proc), NULL);
else
proc->help_id = g_strdup (gimp_object_get_name (proc));
return proc->help_id;
}
static gboolean
gimp_plug_in_procedure_get_sensitive (GimpProcedure *procedure,
GimpObject *object)
@ -861,21 +882,6 @@ gimp_plug_in_procedure_take_icon (GimpPlugInProcedure *proc,
g_object_unref (icon_pixbuf);
}
gchar *
gimp_plug_in_procedure_get_help_id (const GimpPlugInProcedure *proc)
{
const gchar *domain;
g_return_val_if_fail (GIMP_IS_PLUG_IN_PROCEDURE (proc), NULL);
domain = gimp_plug_in_procedure_get_help_domain (proc);
if (domain)
return g_strconcat (domain, "?", gimp_object_get_name (proc), NULL);
return g_strdup (gimp_object_get_name (proc));
}
static GimpPlugInImageType
image_types_parse (const gchar *name,
const gchar *image_types)

View File

@ -45,6 +45,7 @@ struct _GimpPlugInProcedure
gchar *menu_label;
GList *menu_paths;
gchar *label;
gchar *help_id;
GimpIconType icon_type;
gint icon_data_length;
guint8 *icon_data;
@ -110,8 +111,6 @@ void gimp_plug_in_procedure_take_icon (GimpPlugInProcedure
guint8 *data,
gint data_length);
gchar * gimp_plug_in_procedure_get_help_id (const GimpPlugInProcedure *proc);
void gimp_plug_in_procedure_set_image_types (GimpPlugInProcedure *proc,
const gchar *image_types);
void gimp_plug_in_procedure_set_file_proc (GimpPlugInProcedure *proc,

View File

@ -139,7 +139,7 @@ gimp_file_proc_view_new (Gimp *gimp,
if (! proc->prefixes_list) /* skip URL loaders */
{
const gchar *label = gimp_procedure_get_label (GIMP_PROCEDURE (proc));
gchar *help_id = gimp_plug_in_procedure_get_help_id (proc);
const gchar *help_id = gimp_procedure_get_help_id (GIMP_PROCEDURE (proc));
GSList *list2;
if (label)
@ -153,8 +153,6 @@ gimp_file_proc_view_new (Gimp *gimp,
-1);
}
g_free (help_id);
for (list2 = proc->extensions_list;
list2;
list2 = g_slist_next (list2))