diff --git a/ChangeLog b/ChangeLog index 6aead18748..a3458e8844 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-04-24 Sven Neumann + + * app/plug-in/gimppluginprocedure.[ch]: use GQuark for locale and + help domains to avoid duplicating the same strings many times. + + * app/plug-in/gimppluginmanager-restore.c: removed FIXME. + 2007-04-24 Michael Natterer * app/plug-in/gimppluginmanager-restore.c diff --git a/app/plug-in/gimppluginmanager-restore.c b/app/plug-in/gimppluginmanager-restore.c index 7db7aa4f48..c27f6a527c 100644 --- a/app/plug-in/gimppluginmanager-restore.c +++ b/app/plug-in/gimppluginmanager-restore.c @@ -149,7 +149,7 @@ gimp_plug_in_manager_restore (GimpPlugInManager *manager, plug_in_def->locale_domain_name, plug_in_def->locale_domain_path); else - /* FIXME: this consumes too much memory */ + /* set the default plug-in locale domain */ gimp_plug_in_def_set_locale_domain (plug_in_def, gimp_plug_in_manager_get_locale_domain (manager, plug_in_def->prog, diff --git a/app/plug-in/gimppluginprocedure.c b/app/plug-in/gimppluginprocedure.c index 0d9129b8f6..638ceca24a 100644 --- a/app/plug-in/gimppluginprocedure.c +++ b/app/plug-in/gimppluginprocedure.c @@ -118,8 +118,6 @@ gimp_plug_in_procedure_finalize (GObject *object) GimpPlugInProcedure *proc = GIMP_PLUG_IN_PROCEDURE (object); g_free (proc->prog); - g_free (proc->locale_domain); - g_free (proc->help_domain); g_free (proc->menu_label); g_list_foreach (proc->menu_paths, (GFunc) g_free, NULL); @@ -299,8 +297,7 @@ gimp_plug_in_procedure_set_locale_domain (GimpPlugInProcedure *proc, { g_return_if_fail (GIMP_IS_PLUG_IN_PROCEDURE (proc)); - g_free (proc->locale_domain); - proc->locale_domain = g_strdup (locale_domain); + proc->locale_domain = locale_domain ? g_quark_from_string (locale_domain) : 0; } const gchar * @@ -308,7 +305,7 @@ gimp_plug_in_procedure_get_locale_domain (const GimpPlugInProcedure *proc) { g_return_val_if_fail (GIMP_IS_PLUG_IN_PROCEDURE (proc), NULL); - return proc->locale_domain; + return g_quark_to_string (proc->locale_domain); } void @@ -317,8 +314,7 @@ gimp_plug_in_procedure_set_help_domain (GimpPlugInProcedure *proc, { g_return_if_fail (GIMP_IS_PLUG_IN_PROCEDURE (proc)); - g_free (proc->help_domain); - proc->help_domain = g_strdup (help_domain); + proc->help_domain = help_domain ? g_quark_from_string (help_domain) : 0; } const gchar * @@ -326,7 +322,7 @@ gimp_plug_in_procedure_get_help_domain (const GimpPlugInProcedure *proc) { g_return_val_if_fail (GIMP_IS_PLUG_IN_PROCEDURE (proc), NULL); - return proc->help_domain; + return g_quark_to_string (proc->help_domain); } gboolean @@ -535,9 +531,11 @@ gimp_plug_in_procedure_get_label (GimpPlugInProcedure *proc) return proc->label; if (proc->menu_label) - path = dgettext (proc->locale_domain, proc->menu_label); + path = dgettext (gimp_plug_in_procedure_get_locale_domain (proc), + proc->menu_label); else if (proc->menu_paths) - path = dgettext (proc->locale_domain, proc->menu_paths->data); + path = dgettext (gimp_plug_in_procedure_get_locale_domain (proc), + proc->menu_paths->data); else return NULL; @@ -574,7 +572,8 @@ gimp_plug_in_procedure_get_blurb (const GimpPlugInProcedure *proc) /* do not to pass the empty string to gettext() */ if (procedure->blurb && strlen (procedure->blurb)) - return dgettext (proc->locale_domain, procedure->blurb); + return dgettext (gimp_plug_in_procedure_get_locale_domain (proc), + procedure->blurb); return NULL; } @@ -664,10 +663,14 @@ gimp_plug_in_procedure_get_pixbuf (const GimpPlugInProcedure *proc) 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); - if (proc->help_domain) - return g_strconcat (proc->help_domain, "?", GIMP_OBJECT (proc)->name, NULL); + domain = gimp_plug_in_procedure_get_help_domain (proc); + + if (domain) + return g_strconcat (domain, "?", GIMP_OBJECT (proc)->name, NULL); return g_strdup (GIMP_OBJECT (proc)->name); } diff --git a/app/plug-in/gimppluginprocedure.h b/app/plug-in/gimppluginprocedure.h index 34716bdfec..60213b25e6 100644 --- a/app/plug-in/gimppluginprocedure.h +++ b/app/plug-in/gimppluginprocedure.h @@ -44,8 +44,8 @@ struct _GimpPlugInProcedure /* common members */ gchar *prog; - gchar *locale_domain; - gchar *help_domain; + GQuark locale_domain; + GQuark help_domain; gchar *menu_label; GList *menu_paths; gchar *label;