[gimp] app: add GimpProcedure::get_menu_label()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: add GimpProcedure::get_menu_label()
- Date: Fri, 1 Jan 2016 21:43:08 +0000 (UTC)
commit 78f5dbeac3e34df8f3d1496f83fc044ed47cb0c5
Author: Michael Natterer <mitch gimp org>
Date: Fri Jan 1 22:41:42 2016 +0100
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.
app/actions/filters-actions.c | 11 +-----
app/actions/plug-in-actions.c | 16 +-------
app/pdb/gimpprocedure.c | 70 ++++++++++++++++++++++--------------
app/pdb/gimpprocedure.h | 32 +++++++++--------
app/plug-in/gimppluginprocedure.c | 33 ++++++++++++++++-
5 files changed, 94 insertions(+), 68 deletions(-)
---
diff --git a/app/actions/filters-actions.c b/app/actions/filters-actions.c
index d21d091..913f8c7 100644
--- a/app/actions/filters-actions.c
+++ b/app/actions/filters-actions.c
@@ -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)
diff --git a/app/actions/plug-in-actions.c b/app/actions/plug-in-actions.c
index 665fa96..a2f042b 100644
--- a/app/actions/plug-in-actions.c
+++ b/app/actions/plug-in-actions.c
@@ -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));
diff --git a/app/pdb/gimpprocedure.c b/app/pdb/gimpprocedure.c
index 204b510..b68db38 100644
--- a/app/pdb/gimpprocedure.c
+++ b/app/pdb/gimpprocedure.c
@@ -43,33 +43,34 @@
#include "gimp-intl.h"
-static void gimp_procedure_finalize (GObject *object);
-
-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 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_finalize (GObject *object);
+
+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_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);
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;
@@ -168,6 +170,12 @@ gimp_procedure_real_get_label (GimpProcedure *procedure)
}
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)
{
return procedure->blurb;
@@ -320,6 +328,14 @@ gimp_procedure_get_label (GimpProcedure *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)
{
g_return_val_if_fail (GIMP_IS_PROCEDURE (procedure), NULL);
diff --git a/app/pdb/gimpprocedure.h b/app/pdb/gimpprocedure.h
index d3cc5dc..6602dd3 100644
--- a/app/pdb/gimpprocedure.h
+++ b/app/pdb/gimpprocedure.h
@@ -69,21 +69,22 @@ struct _GimpProcedureClass
{
GimpViewableClass parent_class;
- const gchar * (* get_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);
+ 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);
};
@@ -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,
diff --git a/app/plug-in/gimppluginprocedure.c b/app/plug-in/gimppluginprocedure.c
index 7b9e4fb..4c3c04f 100644
--- a/app/plug-in/gimppluginprocedure.c
+++ b/app/plug-in/gimppluginprocedure.c
@@ -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;
@@ -261,6 +264,32 @@ gimp_plug_in_procedure_get_label (GimpProcedure *procedure)
}
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)
{
GimpPlugInProcedure *proc = GIMP_PLUG_IN_PROCEDURE (procedure);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]