Commit Graph

2333 Commits

Author SHA1 Message Date
14af676b51 pdb, libgimp: change "filename" to "file" in gimp_pdb_dump() 2019-09-11 22:37:40 +02:00
6468fa06c7 pdb, plug-ins: change gimp_temp_name() to gimp_temp_file() 2019-09-11 22:32:44 +02:00
4118fb6a76 Resolve implicit declaration of function 'getpid' 2019-09-11 19:55:16 +00:00
6bca8c4f89 pdb, app, libgimp, plug-ins: replace most PDB filenames/URIs by GFile
and in an attack of madness, changes almost all file plug-in
code to use GFile instead of filenames, which means passing
the GFile down to the bottom and get its filename at the very
end where it's actually needed.
2019-09-11 21:48:34 +02:00
a5ac3e45fe libgimpbase, libgimp, app: add libgimp support for passing GFiles
Which means support for GParamSpecObject with value_type ==
G_TYPE_FILE, and converting between GFile and its URI for wire
communication directly above the protocol layer.

This change requires passing a GParamSpec's value type as generic
member of GPParamDef, which in turn makes some members of its
sub-structures obsolete.
2019-09-11 21:40:17 +02:00
ba6973e791 Fix Meson some changes not pulled from Autotools 2019-09-11 17:10:47 +02:00
65eff6f150 Meson port. 2019-09-11 16:42:04 +02:00
f3fb3d1a57 Remove the second "raw-filename"/"raw-uri" parameter from file procedures
It's an ancient concept from ancient times when we didn't have URIs
and only filenames (not to speak of GFile), and actually even from
before the ancient time before that ancient time when we first had
ones and zeros, and only had zeros.
2019-09-11 00:21:03 +02:00
6115d34fe8 Rename the "fileops" PDB group to just "file" 2019-09-10 21:38:11 +02:00
7c5cb29ca6 pdb: move the file procedure register API from "fileops" to "pdb"
because it has nothing to do with the other procedures in fileops and
only sets properties on procedures.
2019-09-10 21:24:09 +02:00
56fee73441 pdb: reorder stuff in the "pdb" group to make more sense 2019-09-10 20:23:19 +02:00
fba010a642 libgimp: more GimpPlugIn docs
Mention and guarantee the order of procedure registration (see
previous thumbnail loader commit). Remove duplicate docs from the
GimpPlugIn class comments that are needed for introspection, it's too
cumbersome to keep two identical texts in sync, and the removed text
is used nowhere.
2019-09-10 20:00:42 +02:00
5621de52fc libgimp: have both annotations for GObject Introspection and gtk-docs.
GTK-docs needs the struct member documentations in the main struct
comment. So let's get this back, while keeping the proper GI
introspection for each method this time.
As discussed with Mitch.
2019-09-10 18:13:26 +02:00
183f00baf9 libgimp: fix GimpPlugInClass methods introspection.
Commit 005143a43e completely broke all the
introspected plug-ins, so I am reverting only the relevant changes.

If some things need to be improved in this part of the docs, let's do it
without breaking major stuff.
In particular: abstract methods must be properly documented (with
parameters, return values and annotations) like any function, and must
be named Class::method, e.g. GimpPlugInClass::query_procedures.
Other we break GObject Introspection, i.e. we break all plug-ins using
these.
2019-09-10 15:22:54 +02:00
0745043ddb pdb, libgimp: remove _gimp_register_load_handler()
and rename _gimp_register_magic_load_handler() to
_gimp_register_load_handler().
2019-09-10 12:29:17 +02:00
a20fb094d9 libgimp: remove gimp_plug_in_create_procedure() from the API
no plug-in code ever needs to call it.
2019-09-10 12:11:32 +02:00
34489d1b13 libgimp: add section docs for GimpPlugIn with general information
and document the members of GimpProcedureClass. Also various
doc fixes.
2019-09-10 11:17:12 +02:00
005143a43e libgimp, devel-docs: fix docs for GimpPlugInClass and its members 2019-09-09 20:53:39 +02:00
46f706a403 [libgimp,app] add missing includes for windows 2019-09-09 18:15:13 +00:00
b587740a10 libgimp: make sure the GimpPlugIn and GimpPDB singletons get destroyed
Break reference cycles between the objects and the procedures they
keep by moving procedure destruction to dispose() and calling
g_object_run_dispose() before unrefing PLUG_IN and PDB in gimp.c.

Also some formatting and "Since: 3.0" annotation .
2019-09-09 11:16:39 +02:00
d745dc86c5 libgimp: warn on attempts to install or uninstall a GimpPDBprocedure 2019-09-09 01:46:26 +02:00
41fa670434 Rename all "nparams" and "nreturn_vals" members in the wire protocol
to "n_params" and "n_return_vals".
2019-09-09 01:00:54 +02:00
22a780c9d1 pdb: add gimp_pdb_set_proc_documentation() and _attribution()
and all the needed code in libgimp/ and app/ to set them on a
procedure using the new API. Remove the strings from GPProcInstall.
2019-09-09 00:36:24 +02:00
5a57256a24 libgimp: no need to set NULL strings on GimpPDBProcedure 2019-09-09 00:35:56 +02:00
453b4f4aa2 pdb: add gimp_pdb_set_proc_menu_label()
and all the needed code in libgimp/ and app/ to set a plug-in
procedure's menu label using the new API. Remove the menu label from
GPProcInstall.
2019-09-08 17:30:54 +02:00
2a62287439 pdb: add gimp_pdb_set_proc_image_types()
and all the needed code in libgimp/ and app/ to set a plug-in
procedure's image types using the new API. Remove the image types from
GPProcInstall.
2019-09-08 16:54:08 +02:00
303ccbedad pdb: move gimp_plugin_icon_register_invoker() from "plugin" to "pdb"
and call it gimp_pdb_set_proc_icon(). Change icon registration code in
libgimp/ and app/ so it's now possible to register icons for temporary
procedures.
2019-09-08 16:22:32 +02:00
d89adebff8 pdb: move gimp_plugin_menu_register() from the "plugin" to the "pdb" group
and call it gimp_pdb_add_proc_menu_path(). Move around and rename some
code in app/ to prepare for more procedure setters to work this way.
2019-09-08 15:53:37 +02:00
e82c80bf5f pdb: rename all procedure query procedures to gimp-pdb-get-proc-foo 2019-09-08 15:07:24 +02:00
388776df07 Simplify the plug-in query API and fix plugin-browser
- remove the menu path and image types from "gimp-plugins-query",
  they are available via GimpProcedure, also reorder and rename
  its remaining return values to make sense
- remove the "menu_path" parameter to gimp_proc_view_new(),
  it can also ask GimpProcedure
- adapt plugin-browser to the new API and make it use GimpProcedure
- fix plugin-browser's tree view to show all menu hierarchies
  completely, it was still expecting menu paths that contain
  the menu label too
2019-09-08 14:59:09 +02:00
d7e69b2bbb libgimp: show the newly introspectable stuff in GimpProcView 2019-09-07 21:12:01 +02:00
5c16fc205d libgimp: use the new API in GimpPDBProcedure
GimpProcedure should be the only API needed to introspect procedures.
2019-09-07 21:09:22 +02:00
48692e58c3 pdb: add pdb API to get a procedure's image types, menu label and menu paths 2019-09-07 21:08:13 +02:00
Ell
85704c6c46 pdb: add $since info to gimp-image-merge-layer-group 2019-09-07 10:55:09 +03:00
Ell
643279bd31 Issue #3893 - Error message when exporting to to TIF if there is a layer mask on a group
When exporting to a format that supports layers, but doesn't
support layer masks, merge layer groups with a mask before applying
their mask, since masks can't be applied to layer groups.
2019-09-07 10:36:53 +03:00
Ell
62a6023b27 pdb: add gimp-image-merge-layer-group procedure
Oddly, we didn't have this one yet :P
2019-09-07 10:33:43 +03:00
8ef87b0922 libgimp: fix crash introduced in commit bfe4a2f9
Freeing stuff is good, but freeing twice is not so good.
2019-09-06 17:25:30 +02:00
0123bb3389 libgimp: make sure gimpparamspecs-body.c gets introspected 2019-09-05 21:09:28 +02:00
bfe4a2f9dd app, libgimp: add _gimp_gp_params_free() to gimpgpparams
which frees exactly what _gimp_value_array_to_gp_params() has
allocated, honors its "full_copy" parameter, and plugs the last
libgimp refactoring leaks I'm currently aware of.
2019-09-05 20:59:57 +02:00
0f7f322fa5 libgimp: _gimp_gp_params_to_value_array() remove "gboolean full_copy"
With all the GValue and GimpValueArray copying involved, we can't
really make a shallow copy anyway, so don't let the API pretend we
could.
2019-09-05 20:17:22 +02:00
ee86e5630e libgimp: don't leak the GPParam array after writing procedure return values
Annotate all calls to g_free(GPParam*) with /* FIXME leaking object arrays */
because we now do, and it needs to be fixed.
2019-09-05 16:24:09 +02:00
b812d6241a app, libgimp: make two functions of gimpgpparams private
and remove a "gimp" parameter that is no longer needed.
2019-09-05 16:07:15 +02:00
46608393c3 pdb, libgimp: add a HORRIBLE hack to make sure objects arrays don't leak
In the generated libgimp wrappers, we can't return object arrays
from a call to GIMP_VALUES_DUP_OBJECT_ARRAY() because it returns
a deep copy and adds a reference to all objects, which the caller
would have to unref.

But we want a shallow (transfer container) copy because we don't want
libgimp proxy objects to be refed or unrefed by any user code.

Therefore, add a HACK that simply memdup()s and returns the
GimpObjectArray's array memory, and leaves the contained object
pointers alone.
2019-09-05 15:03:14 +02:00
3dc354e848 libgimp: _gimp_gp_param_to_value() must ref object array elements
because the subsequent gimp_value_array_unref() unrefs them
again.
2019-09-05 14:40:05 +02:00
c59eaa5e3d libgimp: fix copy/paste errors in GIMP_VALUES_FOO_OBJECT_ARRAY() 2019-09-05 14:38:20 +02:00
81ee690bbf libgimp: add convenience macros GIMP_VALUES_GET_FOO_ID()
becuse some plug-ins really want the ID for good reasons and not the
object, and code looks so much nicer when the entire list of arguments
is extracted using the macros.
2019-09-05 13:22:37 +02:00
f764fd0f82 pdb, libgimp: change all generated ID array return values to object arrays
and remove the manual libgimp wrappers which now have the same
signature as the generated functions.
2019-09-05 13:01:00 +02:00
34f848bb69 libgimp: actually unref the global GimpPDB and GimpPlugIn instances
in gimp_close().
2019-09-05 13:01:00 +02:00
747fce7260 libgimp: gimp_plug_in_destroy_proxies() never checked for too much refs
because we were simply destroying the proxy hashes when the last
procedure is done. Now we run gimp_plug_in_destroy_proxies() with the
right flag from gimp_plug_in_pop_procedure() before destroying the
hashes and get the proper debug warnings.
2019-09-05 13:01:00 +02:00
7d3427e91d libgimp: gimp_pdb_run_procedure_array() was leaking proc_run.params 2019-09-05 13:01:00 +02:00