[gimp] libgimp*, app: add the help-id to the wire protocol
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimp*, app: add the help-id to the wire protocol
- Date: Thu, 8 Aug 2019 08:01:14 +0000 (UTC)
commit d156028c8acffc2c02f489b203dc94b898e7766c
Author: Michael Natterer <mitch gimp org>
Date: Thu Aug 8 09:57:56 2019 +0200
libgimp*, app: add the help-id to the wire protocol
Pass the help-id specified by the procedure to the core, and use it in
the core if set instead of always using the procedure's name (which
was probably good enough for all eternity, but it's still more
consistent this way).
app/plug-in/gimpplugin-message.c | 2 ++
app/plug-in/gimppluginprocedure.c | 29 ++++++++++++++++++++++++-----
app/plug-in/gimppluginprocedure.h | 4 ++++
libgimp/gimplegacy.c | 1 +
libgimp/gimpprocedure-private.c | 1 +
libgimpbase/gimpprotocol.c | 8 ++++++++
libgimpbase/gimpprotocol.h | 3 ++-
7 files changed, 42 insertions(+), 6 deletions(-)
---
diff --git a/app/plug-in/gimpplugin-message.c b/app/plug-in/gimpplugin-message.c
index 786706a78c..05e69d33a8 100644
--- a/app/plug-in/gimpplugin-message.c
+++ b/app/plug-in/gimpplugin-message.c
@@ -749,6 +749,7 @@ gimp_plug_in_handle_proc_install (GimpPlugIn *plug_in,
VALIDATE (canonical) &&
VALIDATE_OR_NULL (proc_install->blurb) &&
VALIDATE_OR_NULL (proc_install->help) &&
+ VALIDATE_OR_NULL (proc_install->help_id) &&
VALIDATE_OR_NULL (proc_install->authors) &&
VALIDATE_OR_NULL (proc_install->copyright) &&
VALIDATE_OR_NULL (proc_install->date))
@@ -864,6 +865,7 @@ gimp_plug_in_handle_proc_install (GimpPlugIn *plug_in,
proc->menu_label = g_strdup (proc_install->menu_label);
gimp_plug_in_procedure_set_image_types (proc, proc_install->image_types);
+ gimp_plug_in_procedure_set_help_id (proc, proc_install->help_id);
for (i = 0; i < proc_install->nparams; i++)
{
diff --git a/app/plug-in/gimppluginprocedure.c b/app/plug-in/gimppluginprocedure.c
index dab746b8c1..e432b23f01 100644
--- a/app/plug-in/gimppluginprocedure.c
+++ b/app/plug-in/gimppluginprocedure.c
@@ -157,6 +157,7 @@ gimp_plug_in_procedure_finalize (GObject *object)
g_free (proc->label);
g_free (proc->help_id);
+ g_free (proc->help_id_with_domain);
g_free (proc->icon_data);
g_free (proc->image_types);
@@ -300,18 +301,24 @@ gimp_plug_in_procedure_get_help_id (GimpProcedure *procedure)
{
GimpPlugInProcedure *proc = GIMP_PLUG_IN_PROCEDURE (procedure);
const gchar *domain;
+ const gchar *help_id;
- if (proc->help_id)
- return proc->help_id;
+ if (proc->help_id_with_domain)
+ return proc->help_id_with_domain;
domain = gimp_plug_in_procedure_get_help_domain (proc);
+ if (proc->help_id)
+ help_id = proc->help_id;
+ else
+ help_id = gimp_object_get_name (procedure);
+
if (domain)
- proc->help_id = g_strconcat (domain, "?", gimp_object_get_name (proc), NULL);
+ proc->help_id_with_domain = g_strconcat (domain, "?", help_id, NULL);
else
- proc->help_id = g_strdup (gimp_object_get_name (proc));
+ proc->help_id_with_domain = g_strdup (help_id);
- return proc->help_id;
+ return proc->help_id_with_domain;
}
static gboolean
@@ -575,6 +582,18 @@ gimp_plug_in_procedure_set_help_domain (GimpPlugInProcedure *proc,
proc->help_domain = help_domain ? g_quark_from_string (help_domain) : 0;
}
+void
+gimp_plug_in_procedure_set_help_id (GimpPlugInProcedure *proc,
+ const gchar *help_id)
+{
+ g_return_if_fail (GIMP_IS_PLUG_IN_PROCEDURE (proc));
+
+ g_clear_pointer (&proc->help_id_with_domain, g_free);
+
+ g_free (proc->help_id);
+ proc->help_id = g_strdup (help_id);
+}
+
const gchar *
gimp_plug_in_procedure_get_help_domain (GimpPlugInProcedure *proc)
{
diff --git a/app/plug-in/gimppluginprocedure.h b/app/plug-in/gimppluginprocedure.h
index 3b815a1f8f..115eecdbff 100644
--- a/app/plug-in/gimppluginprocedure.h
+++ b/app/plug-in/gimppluginprocedure.h
@@ -46,6 +46,7 @@ struct _GimpPlugInProcedure
GList *menu_paths;
gchar *label;
gchar *help_id;
+ gchar *help_id_with_domain;
GimpIconType icon_type;
gint icon_data_length;
guint8 *icon_data;
@@ -103,6 +104,9 @@ void gimp_plug_in_procedure_set_help_domain (GimpPlugInProcedure *pro
const gchar *help_domain);
const gchar * gimp_plug_in_procedure_get_help_domain (GimpPlugInProcedure *proc);
+void gimp_plug_in_procedure_set_help_id (GimpPlugInProcedure *proc,
+ const gchar *help_id);
+
gboolean gimp_plug_in_procedure_add_menu_path (GimpPlugInProcedure *proc,
const gchar *menu_path,
GError **error);
diff --git a/libgimp/gimplegacy.c b/libgimp/gimplegacy.c
index 744339836a..c865b943cd 100644
--- a/libgimp/gimplegacy.c
+++ b/libgimp/gimplegacy.c
@@ -210,6 +210,7 @@ gimp_install_procedure (const gchar *name,
proc_install.name = (gchar *) name;
proc_install.blurb = (gchar *) blurb;
proc_install.help = (gchar *) help;
+ proc_install.help_id = (gchar *) name;
proc_install.authors = (gchar *) author;
proc_install.copyright = (gchar *) copyright;
proc_install.date = (gchar *) date;
diff --git a/libgimp/gimpprocedure-private.c b/libgimp/gimpprocedure-private.c
index c7955e426e..1dede20319 100644
--- a/libgimp/gimpprocedure-private.c
+++ b/libgimp/gimpprocedure-private.c
@@ -57,6 +57,7 @@ _gimp_procedure_register (GimpProcedure *procedure)
proc_install.name = (gchar *) gimp_procedure_get_name (procedure);
proc_install.blurb = (gchar *) gimp_procedure_get_blurb (procedure);
proc_install.help = (gchar *) gimp_procedure_get_help (procedure);
+ proc_install.help_id = (gchar *) gimp_procedure_get_help_id (procedure);
proc_install.authors = (gchar *) gimp_procedure_get_authors (procedure);
proc_install.copyright = (gchar *) gimp_procedure_get_copyright (procedure);
proc_install.date = (gchar *) gimp_procedure_get_date (procedure);
diff --git a/libgimpbase/gimpprotocol.c b/libgimpbase/gimpprotocol.c
index 90c6842b4a..12518d54af 100644
--- a/libgimpbase/gimpprotocol.c
+++ b/libgimpbase/gimpprotocol.c
@@ -1202,6 +1202,9 @@ _gp_proc_install_read (GIOChannel *channel,
if (! _gimp_wire_read_string (channel,
&proc_install->help, 1, user_data))
goto cleanup;
+ if (! _gimp_wire_read_string (channel,
+ &proc_install->help_id, 1, user_data))
+ goto cleanup;
if (! _gimp_wire_read_string (channel,
&proc_install->authors, 1, user_data))
goto cleanup;
@@ -1255,6 +1258,7 @@ _gp_proc_install_read (GIOChannel *channel,
g_free (proc_install->name);
g_free (proc_install->blurb);
g_free (proc_install->help);
+ g_free (proc_install->help_id);
g_free (proc_install->authors);
g_free (proc_install->copyright);
g_free (proc_install->date);
@@ -1443,6 +1447,9 @@ _gp_proc_install_write (GIOChannel *channel,
if (! _gimp_wire_write_string (channel,
&proc_install->help, 1, user_data))
return;
+ if (! _gimp_wire_write_string (channel,
+ &proc_install->help_id, 1, user_data))
+ return;
if (! _gimp_wire_write_string (channel,
&proc_install->authors, 1, user_data))
return;
@@ -1498,6 +1505,7 @@ _gp_proc_install_destroy (GimpWireMessage *msg)
g_free (proc_install->name);
g_free (proc_install->blurb);
g_free (proc_install->help);
+ g_free (proc_install->help_id);
g_free (proc_install->authors);
g_free (proc_install->copyright);
g_free (proc_install->date);
diff --git a/libgimpbase/gimpprotocol.h b/libgimpbase/gimpprotocol.h
index 5b7177babc..732f9c1b31 100644
--- a/libgimpbase/gimpprotocol.h
+++ b/libgimpbase/gimpprotocol.h
@@ -26,7 +26,7 @@ G_BEGIN_DECLS
/* Increment every time the protocol changes
*/
-#define GIMP_PROTOCOL_VERSION 0x0106
+#define GIMP_PROTOCOL_VERSION 0x0107
enum
@@ -268,6 +268,7 @@ struct _GPProcInstall
gchar *name;
gchar *blurb;
gchar *help;
+ gchar *help_id;
gchar *authors;
gchar *copyright;
gchar *date;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]