app: add GimpProcedure::get_menu_label()

which returns a procedure's *menu* label (not stripped of mnemonics
and ellipses). Use it to further reduce dependencies on
GimpPlugInProcedure.
This commit is contained in:
Michael Natterer 2016-01-01 22:41:42 +01:00
parent 1d3bf65934
commit 78f5dbeac3
5 changed files with 90 additions and 64 deletions

View File

@ -839,16 +839,7 @@ filters_actions_history_changed (Gimp *gimp,
proc = gimp_filter_history_nth (gimp, i);
/* FIXME history */
if (GIMP_PLUG_IN_PROCEDURE (proc)->menu_label)
{
label = dgettext (gimp_plug_in_procedure_get_locale_domain (GIMP_PLUG_IN_PROCEDURE (proc)),
GIMP_PLUG_IN_PROCEDURE (proc)->menu_label);
}
else
{
label = gimp_procedure_get_label (proc);
}
label = gimp_procedure_get_menu_label (proc);
/* see comment above */
if (plug_in_group)

View File

@ -286,17 +286,12 @@ plug_in_actions_add_proc (GimpActionGroup *group,
{
GimpProcedureActionEntry entry;
const gchar *locale_domain;
const gchar *label;
gchar *path_original = NULL;
gchar *path_translated = NULL;
locale_domain = gimp_plug_in_procedure_get_locale_domain (proc);
if (proc->menu_label)
{
label = dgettext (locale_domain, proc->menu_label);
}
else
if (! proc->menu_label)
{
gchar *p1, *p2;
@ -317,8 +312,6 @@ plug_in_actions_add_proc (GimpActionGroup *group,
{
*p1 = '\0';
*p2 = '\0';
label = p2 + 1;
}
else
{
@ -334,17 +327,12 @@ plug_in_actions_add_proc (GimpActionGroup *group,
entry.name = gimp_object_get_name (proc);
entry.icon_name = gimp_viewable_get_icon_name (GIMP_VIEWABLE (proc));
entry.label = label;
entry.label = gimp_procedure_get_menu_label (GIMP_PROCEDURE (proc));
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);
#if 0
g_print ("adding plug-in action '%s' (%s)\n",
gimp_object_get_name (proc), label);
#endif
gimp_action_group_add_procedure_actions (group, &entry, 1,
G_CALLBACK (plug_in_run_cmd_callback));

View File

@ -43,33 +43,34 @@
#include "gimp-intl.h"
static void gimp_procedure_finalize (GObject *object);
static void gimp_procedure_finalize (GObject *object);
static gint64 gimp_procedure_get_memsize (GimpObject *object,
gint64 *gui_size);
static gint64 gimp_procedure_get_memsize (GimpObject *object,
gint64 *gui_size);
static const gchar * gimp_procedure_real_get_label (GimpProcedure *procedure);
static const gchar * gimp_procedure_real_get_blurb (GimpProcedure *procedure);
static GimpValueArray * gimp_procedure_real_execute (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
GError **error);
static void gimp_procedure_real_execute_async (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
GimpObject *display);
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 GimpValueArray * gimp_procedure_real_execute (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
GError **error);
static void gimp_procedure_real_execute_async (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
GimpObject *display);
static void gimp_procedure_free_strings (GimpProcedure *procedure);
static gboolean gimp_procedure_validate_args (GimpProcedure *procedure,
GParamSpec **param_specs,
gint n_param_specs,
GimpValueArray *args,
gboolean return_vals,
GError **error);
static void gimp_procedure_free_strings (GimpProcedure *procedure);
static gboolean gimp_procedure_validate_args (GimpProcedure *procedure,
GParamSpec **param_specs,
gint n_param_specs,
GimpValueArray *args,
gboolean return_vals,
GError **error);
G_DEFINE_TYPE (GimpProcedure, gimp_procedure, GIMP_TYPE_VIEWABLE)
@ -88,6 +89,7 @@ gimp_procedure_class_init (GimpProcedureClass *klass)
gimp_object_class->get_memsize = gimp_procedure_get_memsize;
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->execute = gimp_procedure_real_execute;
klass->execute_async = gimp_procedure_real_execute_async;
@ -167,6 +169,12 @@ gimp_procedure_real_get_label (GimpProcedure *procedure)
return gimp_object_get_name (procedure); /* lame fallback */
}
static const gchar *
gimp_procedure_real_get_menu_label (GimpProcedure *procedure)
{
return gimp_procedure_get_label (procedure);
}
static const gchar *
gimp_procedure_real_get_blurb (GimpProcedure *procedure)
{
@ -319,6 +327,14 @@ gimp_procedure_get_label (GimpProcedure *procedure)
return GIMP_PROCEDURE_GET_CLASS (procedure)->get_label (procedure);
}
const gchar *
gimp_procedure_get_menu_label (GimpProcedure *procedure)
{
g_return_val_if_fail (GIMP_IS_PROCEDURE (procedure), NULL);
return GIMP_PROCEDURE_GET_CLASS (procedure)->get_menu_label (procedure);
}
const gchar *
gimp_procedure_get_blurb (GimpProcedure *procedure)
{

View File

@ -69,21 +69,22 @@ struct _GimpProcedureClass
{
GimpViewableClass parent_class;
const gchar * (* get_label) (GimpProcedure *procedure);
const gchar * (* get_blurb) (GimpProcedure *procedure);
const gchar * (* get_label) (GimpProcedure *procedure);
const gchar * (* get_menu_label) (GimpProcedure *procedure);
const gchar * (* get_blurb) (GimpProcedure *procedure);
GimpValueArray * (* execute) (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
GError **error);
void (* execute_async) (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
GimpObject *display);
GimpValueArray * (* execute) (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
GError **error);
void (* execute_async) (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
GimpObject *display);
};
@ -117,6 +118,7 @@ void gimp_procedure_take_strings (GimpProcedure *procedure,
gchar *deprecated);
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);
void gimp_procedure_add_argument (GimpProcedure *procedure,

View File

@ -61,8 +61,10 @@ static gint64 gimp_plug_in_procedure_get_memsize (GimpObject *object,
static gchar * gimp_plug_in_procedure_get_description (GimpViewable *viewable,
gchar **tooltip);
static const gchar * gimp_plug_in_procedure_get_label (GimpProcedure *procedure);
static const gchar * gimp_plug_in_procedure_get_blurb (GimpProcedure *procedure);
static const gchar * gimp_plug_in_procedure_get_label (GimpProcedure *procedure);
static const gchar * gimp_plug_in_procedure_get_menu_label
(GimpProcedure *procedure);
static const gchar * gimp_plug_in_procedure_get_blurb (GimpProcedure *procedure);
static GimpValueArray * gimp_plug_in_procedure_execute (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
@ -113,6 +115,7 @@ gimp_plug_in_procedure_class_init (GimpPlugInProcedureClass *klass)
viewable_class->get_description = gimp_plug_in_procedure_get_description;
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->execute = gimp_plug_in_procedure_execute;
proc_class->execute_async = gimp_plug_in_procedure_execute_async;
@ -260,6 +263,32 @@ gimp_plug_in_procedure_get_label (GimpProcedure *procedure)
return proc->label;
}
static const gchar *
gimp_plug_in_procedure_get_menu_label (GimpProcedure *procedure)
{
GimpPlugInProcedure *proc = GIMP_PLUG_IN_PROCEDURE (procedure);
if (proc->menu_label)
{
return dgettext (gimp_plug_in_procedure_get_locale_domain (proc),
proc->menu_label);
}
else if (proc->menu_paths)
{
const gchar *translated;
translated = dgettext (gimp_plug_in_procedure_get_locale_domain (proc),
proc->menu_paths->data);
translated = strrchr (translated, '/');
if (translated)
return translated + 1;
}
return GIMP_PROCEDURE_CLASS (parent_class)->get_menu_label (procedure);
}
static const gchar *
gimp_plug_in_procedure_get_blurb (GimpProcedure *procedure)
{