Commit Graph

41 Commits

Author SHA1 Message Date
18c37f7084 plug-ins, libgimp: override set_i18n() for all our core plug-ins.
Hence avoiding the stderr messages. These are going to be localized with
centrally installed catalogs "gimp*-std-plugins", "gimp*-script-fu" and
"gimp*-python".

We now handle core plug-in localizations differently and in particular,
with kind of a reverse logic:

- We don't consider "gimp*-std-plugins" to be the default catalog
  anymore. It made sense in the old world where we would consider the
  core plug-ins to be the most important and numerous ones. But we want
  to push a world where people are even more encouraged to develop their
  own plug-ins. These won't use the standard catalog anymore (because
  there are nearly no reasons that the strings are the same, it's only a
  confusing logic). So let's explicitly set the standard catalogs with
  DEFINE_STD_SET_I18N macro (which maps to a different catalog for
  script-fu plug-ins).
- Doing something similar for Python plug-ins which have again their own
  catalog.
- Getting rid of the INIT_I18N macro since now all the locale domain
  binding is done automatically by libgimp when using the set_i18n()
  method infrastructure.
2022-06-05 01:57:02 +02:00
cb47a72055 Fix: unable to open online help
Recently it was not possibly in master to open online help (F1).

This is also mentioned in issue #7915. However, on macOS there are likely
also other problems, which is why I'm hesitant to close that issue with
this fix.

(help.exe:57964): LibGimpBase-CRITICAL **: 15:24:38.792:
gimp_value_array_index: assertion 'index < value_array->n_values' failed

(help.exe:57964): GLib-GObject-CRITICAL **: 15:24:38.792: g_value_get_boxed:
assertion 'G_VALUE_HOLDS_BOXED (value)' failed

This was most likely caused by 8eb7f6df9e

Changing this to use args 0 and 1 instead of 1 and 2 fixes the problem.
2022-03-23 15:40:28 -04:00
8eb7f6df9e Remove GimpStringArray in favor of GStrv
GLib has a specific type of NULL-terminated string arrays:
`G_TYPE_STRV`, which is the `GType` of `char**` aka `GStrv`.

By using this type, we can avoid having a `GimpStringArray` which is a
bit cumbersome to use for both the C API, as well as bindings. By using
`GStrv`, we allow other languages to pass on string lists as they are
used to, while the bindings will make sure to do the right thing.

In the end, it makes the API a little bit simpler for everyone, and
reduces confusion for people who are used to working with string arrays
in other C/GLib based code (and not having 2 different types to denote
the same thing).

Related: https://gitlab.gnome.org/GNOME/gimp/-/issues/5919
2022-02-12 00:07:53 +00:00
4364b78446 libgimp: remove the GIMP_DISABLE_COMPAT_CRUFT define
there is no legacy API left a ported plug-in could accidentially use.
2019-08-30 13:00:00 +02:00
8a78203aed Properly prefix the values of enum GimpPDBProcType
to be GIMP_PDB_PROC_TYPE_PLUGIN, _EXTENSION etc.
2019-08-30 12:52:28 +02:00
4cb4b3ef3a plug-ins: port all plug-ins to the new macros 2019-08-20 01:03:38 +02:00
9cabc8c8d0 libgimp, plug-ins: use the new macros everwhere
Except for gimp_param_spec_string() which is on its way back to the
core.
2019-08-19 10:02:07 +02:00
5a09523214 Remove GIMP_TYPE_INT32 and GimpParamSpecInt32
Use gint and GParamSpecInt instead.
2019-08-15 14:04:56 +02:00
caa61eef4f libgimp, pdb: remove gimp_run_procedure_with_array() from gimp.[ch]
and add it to gimplegacy.[ch] as gimp_run_procedure_array().
Regenerate all PDB wrapper accordingly.
2019-08-06 21:44:26 +02:00
a50069e176 libgimp: change the return values of GimpPlugIn::init_procedures()
and ::query_procedures() to a GList* of strings.
2019-08-02 19:10:13 +02:00
bc7b358802 libgimp, plug-ins: remove n_procedures from (init|query)_procedures().
The way currently implemented plug-ins are, they are already
NULL-terminating the returned arrays. Since a procedure name cannot be
NULL itself by definition, defining the array length by a terminal NULL
is enough. There is no need to also add a n_procedures parameters which
is just one more possible bug source, even more as we were already
expecting the NULL termination by using g_strfreev() to free the memory.

Anyway a length parameter does not bring any advantage since a plug-in
can still "lie" about its array size (just as it can forget to
NULL-terminate it) and when this happens, the plug-in will segfault.
That's it, it's just a plug-in programming error.

Last but not least, some binding seem to have issues with returned array
setting an (out) parameter as the length. In pygobject at least, the
length parameter doesn't disappear and we end up with this ugly
signature:

> In [3]: Gimp.PlugIn.do_query_procedures.__doc__
> Out[3]: 'query_procedures(self) -> list, n_procedures:int'

See bug report pygobject#352.
To avoid this, we should either set both the array and the length as
(out) parameters or just set the returned array as NULL-terminated
(which is the solution I chose).
2019-08-02 13:50:38 +02:00
5f8d0ef27b libgimp: add gimp_plug_in_extension_enable() and _extension_process()
Start copying all the actual wire communication to GimpPlugIn, and
move the legacy versions to gimplegacy.c.

This implies having the entire protocol code twice, but without any
if(PLUG_IN) { plug_in_stuff(); } else { legacy_stuff(); }

At the moment it is a wild mixture of old and new, but when finished
the wire code in gimplegacy.c will be entirely separate from the wire
code in GimpPlugIn, which will make it easy to g_assert() that only
one API is used by a plug-in.
2019-08-02 12:02:20 +02:00
0bec2bcdec libgimp: add gimp_procedure_set_menu_label() and _set_documentation()
which replace _set_strings(). Add more docs.
2019-08-02 00:56:00 +02:00
b511cf34cf libgimp: add gimp_procedure_set_attribution()
Also rename "author" to "authors" and add some docs.
2019-08-02 00:35:17 +02:00
82afcf5c85 plug-ins: help: use gimp_procedure_extension_ready() 2019-08-01 23:46:55 +02:00
a841e0fb06 libgimp: add gimp_procedure_set_image_types()
and remove the "image_types" parameter from gimp_procedure_set_strings(),
which is only a bad hack copied from the core procedure class.
2019-08-01 23:09:01 +02:00
e0a6eb38da libgimp: add run_data and run_data_destroy parameters to procedure_new()
so bindings work properly. Change plug-ins accordingly.
2019-08-01 22:45:49 +02:00
6a0ef1f7fe plug-ins: help: remove the temp proc using new API 2019-07-30 21:21:36 +02:00
46cacb5ebd plug-ins: help: use new API to call the help browser 2019-07-30 21:16:07 +02:00
941165961d plug-ins: port help to the new plug-in API, to test temp procs
and they do work :)
2019-07-30 21:04:11 +02:00
5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
a02a597788 plug-ins: minor tab cleanup. 2017-02-01 04:53:31 +01:00
fcfb7cf160 Use the new g_[s]list_free_full() instead of foreach() and free() 2011-03-07 17:11:28 +01:00
d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
5cd010b14d don't show progress for local help lookups, they are fast enough.
2008-06-11  Sven Neumann  <sven@gimp.org>

	* plug-ins/help/help.c (load_help_idle): don't show progress for
	local help lookups, they are fast enough.

	* plug-ins/help-browser/help-browser.c: added the same progress
	code here. Might want to move it to the dialog window later.


svn path=/trunk/; revision=25927
2008-06-11 17:43:57 +00:00
e881a24d63 show progress while loading the help index.
2008-06-10  Sven Neumann  <sven@gimp.org>

	* plug-ins/help/help.c (load_help_idle): show progress while
	loading the help index.

svn path=/trunk/; revision=25910
2008-06-10 10:25:56 +00:00
6b687736d3 plug-ins/help/Makefile.am plug-ins/help/gimphelpprogress.[ch] new files
2008-05-16  Sven Neumann  <sven@gimp.org>

        * plug-ins/help/Makefile.am
        * plug-ins/help/gimphelpprogress.[ch]
        * plug-ins/help/gimphelpprogress-private.h: new files providing a
        simple framework for progress indication and cancellation.

        * plug-ins/help/gimphelp.[ch]
        * plug-ins/help/gimphelpdomain.[ch]
        * plug-ins/help/gimphelpitem.[ch]
        * plug-ins/help/gimphelplocale.[ch]
        * plug-ins/help/gimphelptypes.h
        * plug-ins/help/help.c
        * plug-ins/help/locales.[ch]: changed accordingly (passing NULL
        as progress for now). Also updated copyright headers.

        * plug-ins/help-browser/help-browser.c: same here.

        * plug-ins/help/gimp-help-lookup.c: use the new API and show some
        progress indication when the --verbose command-line option is used.

svn path=/trunk/; revision=25674
2008-05-16 16:56:33 +00:00
8216ba62ed plug-ins/help/gimphelpitem.c plug-ins/help/gimphelplocale.c
2007-05-23  Sven Neumann  <sven@gimp.org>

	* plug-ins/help/gimphelpitem.c
	* plug-ins/help/gimphelplocale.c
	* plug-ins/help/help.c
	* plug-ins/help/gimphelpdomain.c: allocate structs using GSlice.

svn path=/trunk/; revision=22596
2007-05-23 13:59:51 +00:00
41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
0f64c7e009 link libgimphelp as not installed .a
2006-11-23  Michael Natterer  <mitch@gimp.org>

	* plug-ins/help/Makefile.am: link libgimphelp as not installed .a

	* plug-ins/help/gimphelpdomain.[ch] (gimp_help_domain_map): return
	the GimpHelpLocate the ID was found in.

	* plug-ins/help/gimp-help-lookup.c
	* plug-ins/help/help.c: changed accordingly.

	* plug-ins/help/gimphelp.h: disable debug output.
2006-11-23 20:36:17 +00:00
dc388813cb plug-ins/help/domain.[ch] removed these files...
2006-11-20  Michael Natterer  <mitch@gimp.org>

	* plug-ins/help/domain.[ch]
	* plug-ins/help/help.h: removed these files...

	* plug-ins/help/gimphelptypes.h
	* plug-ins/help/gimphelp.[ch]
	* plug-ins/help/gimphelpdomain.[ch]
	* plug-ins/help/gimphelpitem.[ch]
	* plug-ins/help/gimphelplocale.[ch]: ...completely chopped them
	and added a new private utility library. Soon to be used by the
	helpbrowser too.

	* plug-ins/help/Makefile.am
	* plug-ins/help/gimp-help-lookup.c
	* plug-ins/help/help.c: changed accordingly.
2006-11-20 21:46:21 +00:00
a450ba46bb declared GimpPlugInInfo and GimpParamDef arrays as const.
2006-05-16  Sven Neumann  <sven@gimp.org>

	* plug-ins/*/*.c: declared GimpPlugInInfo and GimpParamDef arrays
	as const.
2006-05-16 12:26:20 +00:00
b6b126903d plug-ins/bmp/bmp.c plug-ins/faxg3/faxg3.c plug-ins/fits/fits.c
2005-08-12  Michael Natterer  <mitch@gimp.org>

	* plug-ins/bmp/bmp.c
	* plug-ins/faxg3/faxg3.c
	* plug-ins/fits/fits.c
	* plug-ins/flame/flame.c
	* plug-ins/gfig/gfig-dialog.c
	* plug-ins/gfig/gfig.[ch]
	* plug-ins/gflare/gflare.c
	* plug-ins/gfli/gfli.c
	* plug-ins/help/help.c
	* plug-ins/helpbrowser/helpbrowser.c
	* plug-ins/ifscompose/ifscompose.c
	* plug-ins/jpeg/jpeg-save.c
	* plug-ins/jpeg/jpeg.[ch]
	* plug-ins/maze/maze.[ch]
	* plug-ins/maze/maze_face.c
	* plug-ins/pagecurl/pagecurl.c
	* plug-ins/rcm/rcm.[ch]
	* plug-ins/rcm/rcm_dialog.c
	* plug-ins/sel2path/sel2path.c
	* plug-ins/sgi/sgi.c
	* plug-ins/uri/uri.c
	* plug-ins/xjt/xjt.c: canonicalize procedure and parameter names.
	#define them instead of repeating the same string several times.
	Minor cleanups.
2005-08-12 15:46:46 +00:00
1fe2636a8b plug-ins/help/domain.c plug-ins/help/gimp-help-lookup.c if the help files
2004-12-05  Sven Neumann  <sven@gimp.org>

	* plug-ins/help/domain.c
	* plug-ins/help/gimp-help-lookup.c
	* plug-ins/help/help.[ch]: if the help files are not installed,
	uninstall the temporary procedure and quit. Fixes bug #160258.
2004-12-05 19:50:37 +00:00
1d669a5b4e allow to specify the location of the index files independently from the
2004-08-14  Sven Neumann  <sven@gimp.org>

	* plug-ins/help/domain.[ch]: allow to specify the location of the
	index files independently from the base URL.

	* plug-ins/help/help.c: changed accordingly.

	* plug-ins/help/gimp-help-lookup.c: added command-line options to
	specify base URI and root directory for index files.
2004-08-14 17:53:40 +00:00
df6dc99d05 moved some defines to the header file.
2004-08-14  Sven Neumann  <sven@gimp.org>

	* plug-ins/help/help.[ch]: moved some defines to the header file.

	* plug-ins/help/domain.c: trivial change to remove the libgimpbase
	dependency.

	* plug-ins/help/Makefile.am
	* plug-ins/help/gimp-help-lookup.c: added a very simple
	command-line tool that allows to lookup a help-id.
2004-08-14 15:47:22 +00:00
f1f47b25e9 disabled debug output.
2004-03-18  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimphelp.c: disabled debug output.

	* plug-ins/help/domain.[ch]
	* plug-ins/help/help.[ch]
	* plug-ins/help/locales.c: improved error reporting, fixed bugs
	and disabled debug output.
2004-03-18 12:18:12 +00:00
7b0919d76c Added support for localized help (bug #136996). Will need some minor
2004-03-18  Sven Neumann  <sven@gimp.org>

	Added support for localized help (bug #136996). Will need some
	minor touches to improve error reporting but basically it works.

	* plug-ins/help/Makefile.am
	* plug-ins/help/help.h: new file with common defines.

	* plug-ins/help/help.c
	* plug-ins/help/locales.c: include help.h, made debugging output
	optional.

	* plug-ins/help/domain.[ch]: added a hash table with locales for
	each help domain.
2004-03-18 02:45:52 +00:00
e4881761ed plug-ins/help/Makefile.am new files with code to handle locales.
2004-03-18  Sven Neumann  <sven@gimp.org>

	* plug-ins/help/Makefile.am
	* plug-ins/help/locales.[ch]: new files with code to handle locales.

	* plug-ins/help/help.c: changed accordingly.

	* plug-ins/help/domain.[ch]: added support for a fallback URL to
        handle missing help content. i18n support is missing still.
2004-03-18 00:11:03 +00:00
784870c87f minor cleanup 2004-03-09 01:45:21 +00:00
55d14fd0f0 Finished some work that Brix started on the help system. It's now possibly
2004-03-09  Sven Neumann  <sven@gimp.org>

	Finished some work that Brix started on the help system. It's
	now possibly to use an external web-browser for context help
	(bug #136081):

	* configure.in
	* plug-ins/Makefile.am
	* plug-ins/help/Makefile.am
	* plug-ins/help/domain.[ch]
	* plug-ins/help/help.c: new plug-in that does the help domain
	management. Most of this used to live in the helpbrowser plug-in.

	* plug-ins/helpbrowser/Makefile.am
	* plug-ins/helpbrowser/domain.[ch]: removed these two files here.

	* plug-ins/helpbrowser/helpbrowser.c: changed accordingly.

	* app/widgets/gimphelp.c: use the new help plug-in.
2004-03-09 01:37:56 +00:00