Commit Graph

8628 Commits

Author SHA1 Message Date
Michael Natterer eae484e54a plug-ins: port web-page to GimpPlugIn and libgimp objects 2019-08-27 19:17:15 +02:00
Michael Natterer b6b84f7afa plug-ins: port the metadata plug-ins to GimpPlugIn and object 2019-08-27 18:28:56 +02:00
Michael Natterer 1178f54522 plug-ins: port script-fu to libgimp objects 2019-08-27 18:09:50 +02:00
Michael Natterer c940ca8f8a plug-ins: port file-mng to GimpPlugIn and libgmp objects
All file plug-ins ported \o/
2019-08-27 15:22:52 +02:00
Michael Natterer 10b798c198 plug-ins: port file-dds to GimpPlugIn and libgimp objects
This is such a monster, I'm sure I broke something here...
2019-08-27 14:43:38 +02:00
Michael Natterer 3d7c044181 plug-ins: port file-pdf-save to GimpPlugIn and libgmp objects 2019-08-27 14:12:50 +02:00
Michael Natterer 2adfa90cc4 plug-ins: somehow killed file-aa's attribution, put it back 2019-08-27 13:34:31 +02:00
Michael Natterer 0b3e02be10 libgimp: again, redo all APIs returning list of images, items, children
We now have both variants, one returning a GList, and another
returning an array. Turns out that while a list is often nicer,
sometimes a random-access array really keeps the code much simpler.

Adapt all plug-ins, and clean up a bit (like use g_list_reverse() once
instead of iterating the list reversed).
2019-08-27 13:26:27 +02:00
Jehan bf79896db1 plug-ins: port (hopefully) missing Win32 screenshot code.
Seems I missed this part. Hopefully this is good now. This is untested,
not even a build test.
2019-08-26 16:50:25 +02:00
Michael Natterer 6e96490012 plug-ins: port file-aa to GimpPlugIn and libgimp objects 2019-08-25 19:53:02 +02:00
Michael Natterer 0ee329bd44 plug-ins: port file-gegl to GimpPlugIn and libgimp objects 2019-08-25 18:15:04 +02:00
Michael Natterer 5dd8add77a plug-ins: port file-fli to GimpPlugIn and libgimp objects 2019-08-25 16:05:41 +02:00
Michael Natterer bc1e611bf0 plug-ins: port file-sunras to GimpPlugIn and libgimp objects 2019-08-25 15:12:48 +02:00
Jehan 13ea5caec2 plug-ins: port file-openraster to Python 3 + new API.
Apart from porting, only code logics change is the whole
encode()/decode() code because it created a string vs bytes mess and the
zipfile API apparently didn't like to deal with bytes, even though the
docs say otherwise.
It's hard to test on my UTF-8 system, so please anyone working with
non-UTF-8 paths, we welcome reports if ORA load/save does not work
properly.

Other than this, load, save and load_thumb were all tested and working
properly so far.
2019-08-25 12:01:41 +02:00
Michael Natterer 7bc4e6eb6b plug-ins: port file-jp2-load to GimpPlugIn and libgimp objects 2019-08-24 20:55:54 +02:00
Michael Natterer 72df7883ef plug-ins: port file-dicom to GimpPlugIn and libgimp objects 2019-08-24 20:15:35 +02:00
Michael Natterer 8265cb8f9d plug-ins: port file-psp to GimpPlugIn and libgimp objects, untested 2019-08-24 19:52:36 +02:00
Michael Natterer cd4fbb6213 plug-ins: port file-pcx to GimpPlunIn and libgimp objects 2019-08-24 19:27:46 +02:00
Michael Natterer 7f65383ad4 plug-ins: port file-xpm to GimpPlugIn and to libgimp objects 2019-08-24 18:56:03 +02:00
Michael Natterer 0ae833b0e0 plug-ins: port file-tga to GimpPlugIn and libgimp objects 2019-08-24 18:34:53 +02:00
Michael Natterer 9847072978 plug-ins: port file-faxg3 to GimpPlugIn and libgimp objects
No idea if this works, I didn't find an example image.
2019-08-24 18:08:31 +02:00
Michael Natterer e6322e319c plug-ins: port file-fits to GimpPlugIn and libgimp objects 2019-08-24 17:49:58 +02:00
Michael Natterer 71d56d8e6f plug-ins: port file-bmp to GimpPlugIn and libgimp objects 2019-08-24 17:26:00 +02:00
Michael Natterer 2fd17029f4 plug-ins: port file-cel to GimpPlugIn and libgimp objects 2019-08-24 17:04:38 +02:00
Michael Natterer 44ebcee901 plug-ins: port file-xwd to GimpPlugIn and libgimp objects 2019-08-24 16:46:40 +02:00
Michael Natterer d7fb408267 plug-ins: port file-gif-save to GimpPlugIn and libgimp objects 2019-08-24 15:57:54 +02:00
Michael Natterer ed041bff39 plug-ins: port file-html-table to GimpPlugIn and libgimp objects 2019-08-24 13:53:16 +02:00
Michael Natterer 5428cc60b0 plug-ins: port file-header to GimpPlugIn and libgmp objects 2019-08-24 13:41:48 +02:00
Michael Natterer 037e8a6e49 plug-ins: port file-csource to GimpPlugIn and libgimp objects 2019-08-24 13:33:54 +02:00
Michael Natterer 55049488dc plug-ins: port file-pnm to GimpPlugIn and libgimp objects 2019-08-24 13:18:49 +02:00
Michael Natterer ee5a93f368 plug-ins: port file-raw-data to GimpPlugIn and libgmp objects 2019-08-24 12:33:18 +02:00
Michael Natterer 3636541b42 plug-ins: port file-webp to GimpPlugIn and libgimp objects 2019-08-24 11:45:01 +02:00
Michael Natterer 9f3bc2bd7a plug-ins: port file-xbm to GimpPlugIn and libgimp objects 2019-08-24 10:58:34 +02:00
Michael Natterer e1c2150f64 plug-ins: port file-heif to GimpPlugIn and libgimp objects 2019-08-24 10:23:01 +02:00
Michael Natterer 23197cfa9b plug-ins: port file-pix to GimpPlugIn and libgimp objects 2019-08-24 03:02:13 +02:00
Michael Natterer 3bef94d56f plug-ins: port file-jpeg to GimpPlugIn and to libgimp objects 2019-08-24 02:33:45 +02:00
Jehan e8bbf42eba Issue #3841: double mnemonics.
I kept the 'i' as 'f' was already used for another widget.
2019-08-23 01:26:53 +02:00
Jehan 4942acbc46 plug-ins: animation-play ported to new GimpImage/Drawable objects. 2019-08-23 00:56:41 +02:00
Jehan 753434369b plug-ins: port file-svg to libgimp objects. 2019-08-23 00:36:57 +02:00
Jehan 858ab51f44 plug-ins: port file-gif-load to new libgimp objects. 2019-08-22 23:41:36 +02:00
Jehan 5e87258067 plug-ins: plugin-browser and procedure-browser don't need porting. 2019-08-22 23:30:19 +02:00
Jehan f9582f1a2f plug-ins: port file-pdf-load to libgimp objects. 2019-08-22 23:23:23 +02:00
Jehan 2211e4eb0e plug-ins: port file-wmf to libgimp objects. 2019-08-22 23:11:03 +02:00
Jehan 54dab3285d plug-ins: update/fix the 3 non-C goat-exercise.
The JS and Python 3 had to be ported to the new GimpImageProcedure API.

The Lua one was still using the old ID API hence was broken. Also not
sure why run_mode enum has become a string in Lua with the new
GimpImageProcedure API (probably some automatic conversion happening
during the C to Lua binding?), but well… it works like that, so what.

Sync also the late changes from the C goat exercise, like for instance
not returning an error when selection is empty as well as keeping the
order of calls to be the same across the 4 supported demo scripts.
2019-08-22 23:02:06 +02:00
Jehan 883fbd7b65 plug-ins: fixing automake warnings about source in subdirectories.
This fixes:
> warning: source file 'images/imagemap-icon-images.c' is in a subdirectory,
> but option 'subdir-objects' is disabled
And similar warnings.
2019-08-22 22:36:50 +02:00
Michael Natterer e1fe044779 plug-ins: minor follow-up to the icon include fix two commits below 2019-08-22 21:17:14 +02:00
Michael Natterer e146e4747a plug-ins: port file-xmc to GimpPlugIn and new API objects 2019-08-22 21:13:21 +02:00
Félix Piédallu 211e5f51a5 plug-ins: do not #include c autogenerated sources 2019-08-22 18:45:31 +02:00
Jehan 2d0584dc91 plug-ins: port file-psd to GimpImage/GimpDrawable. 2019-08-22 15:54:37 +02:00
Jehan 6e68f18685 plug-ins: port file-ps to GimpImage/GimpDrawable. 2019-08-22 15:54:37 +02:00
Jehan bbf90b3ba5 plug-ins: port film to GimpImage/GimpDrawable. 2019-08-22 15:54:37 +02:00
Jehan 3e06295adf plug-ins: port pagecurl to GimpImage/GimpDrawable. 2019-08-22 15:54:37 +02:00
Jehan 00e750776a plug-ins: port print to GimpImage/GimpDrawable/etc. 2019-08-22 15:54:36 +02:00
Jehan 962e8b995e plug-ins: port gfig to GimpImage|Drawable. 2019-08-22 15:54:36 +02:00
Jehan 7838c7f2b2 plug-ins: port fractal-explorer to GimpImage|Drawable. 2019-08-22 15:54:36 +02:00
Jehan 6db115e475 plug-ins: unit-editor does not need GimpImage porting.
It doesn't use any image/drawable, whatever.
2019-08-22 15:54:36 +02:00
Jehan e6b141ffe4 plug-ins: port file-tiff to GimpImage|Drawable|Vectors, etc. 2019-08-22 15:54:36 +02:00
Jehan adc4f8e589 plug-ins: port mail to GimpImage/GimpDrawable. 2019-08-22 15:54:36 +02:00
Jehan 8f34af49b7 plug-ins: port file-png to GimpImage/GimpDrawable. 2019-08-22 15:54:36 +02:00
Jehan 9f0dbb5759 plug-ins: port screenshot to GimpImage/GimpDrawable. 2019-08-22 15:54:36 +02:00
Jehan 0b64395fa6 plug-ins: port colormap-remap to GimpImage/GimpDrawable. 2019-08-22 15:54:36 +02:00
Jehan 1b6e6b9b53 plug-ins: port file-exr to GimpImage/GimpDrawable. 2019-08-22 15:54:36 +02:00
Jehan 3d4bf19bae plug-ins: port file-sgi to GimpImage/GimpDrawable. 2019-08-22 15:54:36 +02:00
Jehan 08849a584c libgimp: GimpItem now also belong to libgimp. 2019-08-22 15:54:36 +02:00
Jehan cfd30ec62a libgimp: s/gimp_image_new_by_id()/gimp_image_get_by_id()/
This means that images' ownership is not given to caller in particular.
libgimp will now keep a reference of all GimpImage-s it creates and
return this same reference if called again. It also means that you can
now compare images by pointer comparison (as 2 GimpImage objects
representing the same image ID will be equal).
Obviously as a side effect, gimp_image_list() is changed to (transfer
container) as you must only free the container now, not the elements.
Also various other functions creating new images are now (transfer none)
too.

Long-time plug-ins will have to be taken in consideration in a further
step (we currently never free GimpImage for destroyed images in
particular).
2019-08-22 15:54:36 +02:00
Jehan 8559cee053 plug-ins: improve parameter creation on Python 3 goat-exercise.
PyGObject seems to have at least 3 syntaxes to create object properties.
Though the one I used previously was apparently the recommended syntax,
it was clearly a bit messy and not clear. This alternative syntax ends
up much more compact, really look alike the C-style, which is a good
thing and is very visual. From what I can see, we should also override
the get|set_property() methods, but since we are not going to actually
set any value (this is only a workaround to make a GParamSpec), it seems
to work fine without.
2019-08-22 15:54:36 +02:00
Jehan c95e9334d1 plug-ins: port file-raw plug-ins to GimpImage/GimpDrawable. 2019-08-22 15:54:36 +02:00
Jehan e29cb0329c plug-ins: port file-compressor to GimpImage/GimpDrawable. 2019-08-22 15:54:36 +02:00
Jehan 3e636ba0c6 plug-ins: port file-desktop-link to GimpImage/GimpDrawable. 2019-08-22 15:54:36 +02:00
Jehan 0cb995e8a4 plug-ins: port file-gih to GimpImage/GimpDrawable. 2019-08-22 15:54:36 +02:00
Jehan d6365c778e plug-in: port file-gbr to GimpImage/GimpDrawable. 2019-08-22 15:54:36 +02:00
Jehan abd4d6fab8 plug-ins: port file-pat to GimpImage/GimpDrawable. 2019-08-22 15:54:36 +02:00
Jehan 0fa09282f2 plug-ins: port file-ico to the new GimpImage/GimpDrawable objects. 2019-08-22 15:54:36 +02:00
Jehan ee8b467e9f libgimp: GimpSaveProcedure() now uses GimpImage/GimpDrawable object...
... as parameters.
And GimpLoadProcedure() now expects the run() function to return a
GimpImage object.
2019-08-22 15:54:36 +02:00
Jehan 292b697f3e plug-ins: use GimpDrawable class in Python goat-exercise.
And re-enable it. Now it works fine!
2019-08-22 15:54:36 +02:00
Jehan 9b8f6089ce plug-ins: port JavaScript goat-exercise to new GimpImage API.
Note how much nicer it is in bindings!
2019-08-22 15:54:36 +02:00
Jehan 52811edcee plug-ins: C goat-exercise now ported to new GimpImage/GimpDrawable.
You'll notice that with the new class when used together with the new
GimpPlugIn API, it is not needed to allocate/destroy anymore the
GimpImage/GimpDrawable. These can be directly the parameters.
2019-08-22 15:54:36 +02:00
Jehan 433fcd4334 plug-ins: ported a few plug-ins to new GimpImage/GimpDrawable classes. 2019-08-22 15:54:36 +02:00
Jehan e0d50aa121 plug-ins: keep building all plug-ins with old API.
Build existing plug-ins with -DGIMP_DEPRECATED_REPLACE_NEW_API.
We will port the plug-ins one at a time to the new GimpImage API.
2019-08-22 15:54:36 +02:00
Michael Natterer 2b310999fc plug-ins: port file-wmf to GimpPlugIn 2019-08-20 10:22:27 +02:00
Michael Natterer 4c3f3c451b plug-ins: port file-pdf-load to GimpPlugIn 2019-08-20 02:32:15 +02:00
Michael Natterer 4cb4b3ef3a plug-ins: port all plug-ins to the new macros 2019-08-20 01:03:38 +02:00
Michael Natterer 1253faaab3 plug-ins: change all ported thumbnail loaders to GimpThumbnailProcedure 2019-08-19 14:04:00 +02:00
Michael Natterer d62e75a41f Move GimpParamSpecString from libgimp back to app
It's just too weird to be public. Remove its properties from the wire
protocol and from pluginrc. Instead, have all GParamSpecs' flags on
the wire and in pluginrc, so we can use stuff like
GIMP_PARAM_NO_VALIDATE.

Port the remaining few places to GIMP_PROC_ARG_STRING().

I'm sure something is broken now wrt UTF-8 validation,
will add tighter checks in the next commit.
2019-08-19 12:54:52 +02:00
Michael Natterer de121374ef Change the "handles uri" flag of file procedures to "handle remote"
And always pass URIs to all file procedures, the ones what didn't
register as "handles remove" will only ever get local file:// URIs.

Change all file plug-ins (also legacy ones) to expect URIs instead
of filenames, and convert to local paths in the plug-in.

The wire protocol should now be almost 100% clean of non-UTF-8 strings.
2019-08-19 12:05:12 +02:00
Michael Natterer 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
Michael Natterer 64920f01eb plug-ins: port file-svg to GimpPlugIn 2019-08-18 23:47:03 +02:00
Michael Natterer 1e49befef3 plug-ins: link file-svg against GEGL, it uses it indirectly 2019-08-18 23:19:58 +02:00
Jehan 045d03a3de plug-ins: some very minor style (alignment) fixes. 2019-08-18 22:37:31 +02:00
Jehan 4799619bbc plug-ins: fix various plug-ins ported to GimpImageProcedure.
All the GimpImageProcedure must remap the order of their additional
arguments (i.e. subtracts 3).
This fixes the other plug-ins changed in commit 15019fef52 which had
such additional arguments.
2019-08-18 22:26:33 +02:00
Jehan 5b3e8e1f05 plug-ins: fix pagecurl arguments order after GimpImageProcedure port.
The additional arguments are ordered down -3.
2019-08-18 21:53:45 +02:00
Jehan 011ae15460 plug-ins: canonicalize curve-bend.
Since commit 11ce199cea, we reject non-canonical procedure name. We
have one such in our plug-ins in curve-bend. Fix this.
2019-08-18 21:50:14 +02:00
Michael Natterer b444954d03 plug-ins: port file-ps to GimpPlugIn 2019-08-18 18:28:32 +02:00
Michael Natterer 17648ead86 plug-ins: port file-fig-load to GimpPlugIn
And also fix a glitch in my earlier g_strlcpy() commit that would keep
most GIFs from being loaded, oops.
2019-08-18 15:04:57 +02:00
Michael Natterer 15019fef52 plug-ins: port many plug-ins from GimpProcedure to GimpImageProcedure
Also move the call to set_icon_name() after set_menu_label(), all
ported plug-ins should look the same so we are a good example for copy
and paste ;)
2019-08-18 13:45:58 +02:00
Michael Natterer d89e6ca7e9 plug-ins: port goat-exercise-c to GimpFileProcedure
and fix loading of the plug-in source code into the text view. Also,
ancountering a zero-sized selection is not an error, but simply a
successful nop.
2019-08-18 13:14:27 +02:00
Michael Natterer 293d909cf4 plug-ins: port file-psd to GimpPlugIn
and remove all save arguments, they are completely unused, wtf?
2019-08-18 00:26:13 +02:00
Jehan 91bde62b08 plug-ins: make mail more robust.
I got a 'Invalid cross-device link' error (errno 18) on my system. Let's
add some redundancy and try g_file_move() if g_rename() failed.
This at least fixed my case.
2019-08-17 10:54:03 +02:00
Michael Natterer 253a163c3f plug-ins: port file-tiff to GimpPlugIn 2019-08-16 22:55:56 +02:00
Michael Natterer 732d7c6a27 plug-ins: port file-png to GimpPlugIn
This commit removes all save procedures except gimp-png-save with all
parameters, and kills the default value handling procedures.

Default handling is now broken for NONINTERACTIVE use, but we will
handle this much better and consistent for all save procedures inside
GimpSaveProcedure
2019-08-16 21:55:34 +02:00
Jehan 0abdbebaad plug-ins: fix and install the Lua goat-exercise.
So procedure:new_return_values() just seems broken with LGI. It doesn't
even look like it reaches the C code.
Anyway we can also just reconstruct the GimpValueArray, which works
fine. We now have official support for Lua plug-ins!
2019-08-16 19:46:32 +02:00
Jehan bbfa8f8e3e plug-ins: Lua goat-exercise now showing its own source too. 2019-08-16 17:36:00 +02:00
Jehan a09b7a9c92 plug-ins: add a Lua goat-exercise.
It is working fine except that it crashes at the end when running
procedure:new_return_values(). I have not understood why yet, but it may
be a bug in lua LGI. Maybe we'll have to create the returned
GimpValueArray by hand in Lua.
Also the dialog does not show the source yet.

This is not installed yet (and lua interpreter is not checked at
configure) because of these issues which I will have to figure out. In
the meantime, I commit this work-in-progress.
2019-08-16 17:05:18 +02:00
Jehan ef5c091e58 plug-ins: add Python and JavaScript files to the DIST.
So it seems that whatever is in _SCRIPTS is not in the distribution by
default (I suppose the reason is that even scripts can be generated). So
let's add the non-generated scripts to EXTRA_DIST.
2019-08-16 14:53:19 +02:00
Michael Natterer ebc09985b0 plug-ins: port file-sgi to GimpPlugIn 2019-08-15 21:37:43 +02:00
Michael Natterer 7edd28706f file-exr: use gimp_pdb_get_last_error() instead of gimp_get_pdb_error() 2019-08-15 19:03:09 +02:00
Michael Natterer c6fa23c22c plug-ins: port file-exr to GimpPlugIn 2019-08-15 19:00:10 +02:00
Michael Natterer 652fd75891 Rename GIMP_TYPE_INT8_ARRAY to GIMP_TYPE_UINT8_ARRAY
and GimpParamSpecInt8Array to GimpParamSpecUInt8Array
2019-08-15 15:04:34 +02:00
Michael Natterer 5a09523214 Remove GIMP_TYPE_INT32 and GimpParamSpecInt32
Use gint and GParamSpecInt instead.
2019-08-15 14:04:56 +02:00
Michael Natterer 1bf90ec77f Remove GIMP_TYPE_INT8 and GimpParamSpecInt8
Use guchar and GParamSpecUChar instead.
2019-08-15 13:34:11 +02:00
Michael Natterer b3a05a9f1d plug-ins: port colormap-remap to GimpPlugIn 2019-08-15 12:47:31 +02:00
Michael Natterer 5c4fa2de51 plug-ins: port screenshot to GimpPlugIn 2019-08-15 11:48:05 +02:00
Michael Natterer b007269729 Use g_strlcpy() instead of strncpy() everywhere
except where I didn't understand the code after 10 seconds of
looking..
2019-08-14 23:52:38 +02:00
Michael Natterer bb8d18ed39 plug-ins: port mail to GimpPlugIn 2019-08-14 22:06:19 +02:00
Michael Natterer b6ca0c4433 plug-ins: port unit-editor to GimpPlugIn 2019-08-14 20:24:02 +02:00
Michael Natterer ff5dd3f3cf plug-ins: port animation-play to GimpPlugIn 2019-08-14 20:03:06 +02:00
Michael Natterer 30c3fd4de5 plug-ins: port fractal-explorer to GimpPlugIn 2019-08-14 18:57:16 +02:00
Michael Natterer 0b5f5bf70a plug-ins: port gfig to GimpPlugIn 2019-08-14 12:58:27 +02:00
Michael Natterer 037421dee0 plug-ins: port film to GimpPlugIn 2019-08-14 12:39:07 +02:00
Michael Natterer 0bfc4cf7b2 plug-ins: port all file-raw plug-ins to GimpPlugIn 2019-08-14 01:34:11 +02:00
Michael Natterer 966c49d08e plug-ins: remove some crack code from curve-bend
containing the last use of gimp_run_procedure().
2019-08-14 00:11:21 +02:00
Michael Natterer 10f1fcf066 plug-ins: port file-ico to GimpPlugIn 2019-08-14 00:06:22 +02:00
Michael Natterer 29165fde7f plug-ins: port file-gih to GimpPlugIn 2019-08-13 22:53:04 +02:00
Michael Natterer 358bbd932c plug-ins: port print to GimpPlugIn 2019-08-13 19:41:52 +02:00
Michael Natterer bc5cfaea25 plug-ins: port file-compressor to GimpPlugIn 2019-08-13 19:10:55 +02:00
luz.paz c1585d609b Misc typo fixes in plug-ins/ 2019-08-13 11:50:51 -04:00
Michael Natterer 1e717a0dc6 plug-ins: port file-gbr to GimpPlugIn, and clean up file-pat a bit 2019-08-13 13:36:20 +02:00
Michael Natterer 0491f653fa plug-ins: port help-browser to GimpPlugIn 2019-08-13 00:38:02 +02:00
Ell 21649c5eaa Issue #3341 - Add Bevel doesn't work for high thickness values
Something during the port to gimp-drawable-edit (commit
233ac80de1) broke add-bevel.scm when
the thickness is high enough for the selection to become empty.

Add an explicit check for a selection while constructing the bump-
map layer.
2019-08-12 22:18:18 +03:00
Michael Natterer 103a7e4fc3 plug-ins: port script-fu to GimpPlugIn
This probably has some bugs, but worked flawlessly in my tests...
2019-08-12 20:49:08 +02:00
Michael Natterer 85d9a291a2 script-fu: undeprecate slide.scm 2019-08-12 20:08:55 +02:00
Michael Natterer 1c9b3c7055 libgimp: add gimp_pdb_get_last_error() and _get_last_status()
and move the old API to gimplegacy.[ch].
2019-08-11 16:41:58 +02:00
Michael Natterer cd836e9d96 libgimp: add gimp_file_procedure_set_handles_uri()
Implementing a shiny new GimpFileProcedure doesn't mean the libraries
we use to load/save files are automatically capable of handling remote
files, so we still need this flag.
2019-08-11 12:52:28 +02:00
Michael Natterer f042d21989 plug-ins: port file-desktop-link to GimpLoadPocedure 2019-08-11 12:31:41 +02:00
Michael Natterer c377644ba5 plug-ins: port file-pat-save to GimpSaveProcedure 2019-08-10 22:01:37 +02:00
Jehan f9f144b4bc configure: add a check for gjs (JavaScript interpreter with GI binding).
As discussed on IRC, I am not sure if really this is needed, since
theoretically we now have support for a whole bunch of languages without
doing anything (languages supported by GObject Introspection) and we are
not going to check for all of them.
Yet since now we install one JS plug-in, let's still do a quick check.
We'll see later if we want to change how we handle supported script
languages.
2019-08-09 18:40:14 +02:00
Jehan c1f28f7e8c plug-ins: rename the C goat exercise to goat-exercise-c.
Makes for consistent naming of the different demo code we have there.
2019-08-09 15:48:25 +02:00
Jehan d0be3d3e0c plug-ins: get rid of getCurrentPath() in goat-exercise-gjs.js.
The file path was already the same as ARGV first argument (i.e.
System.programInvocationName as I added this myself!). Why did I even
bothered with this annoying trick!
This makes the code much simpler, which is better for demo code.
2019-08-09 15:48:25 +02:00
Jehan 9ed4dd5dde plug-ins: add a goat-exercise-py3.py.
Right now it is not working, always because of the same bug about not
being able to create GParamSpec (pygobject#227). As a consequence, I
tried a workaround by creating object properties and using their spec
instead. But it turns out that in pygobject, I cannot create random
properties for custom types (well I could for boxed types or GObject
subclasses, not for GimpImageID or GimpDrawableID). Cf. pygobject#357.
So I am stuck again.

Anyway I still push this demo file which would just work as it is, if we
coult at least got the image/drawable ID.
I comment out the Makefile.am part for now until we can get the issues
sorted out.
2019-08-09 15:48:25 +02:00
Jehan 9454567e8c plug-ins: pre-load Babl module in Python console. 2019-08-09 14:41:40 +02:00
Michael Natterer 55940b733b libgimpwidgets: add a GDestroyNotify for gimp_help_connect()'s user_data 2019-08-09 13:11:30 +02:00
Michael Natterer fd55514416 plug-ins: eek, twain calls gimp_main() directly
Make it call gimp_main_legacy() instead.
2019-08-09 00:50:32 +02:00
Michael Natterer 155bc75a75 libimp*, app: get rid of inline pixbufs in the API and in pluginrc
because they are deprecated.

Change GIMP_ICON_TYPE_INLINE_PIXBUF to GIMP_ICON_TYPE_PIXBUF and the
libgimp API to (icon-name, GdkPixbuf, GFile). Use the file's uri and a
PNG blob of the pixbuf to pass around on the wire and for storage in
pluginrc.
2019-08-09 00:16:35 +02:00
Jehan 6ffd25b9f7 plug-ins: use new procedure.set_icon_name() in JavaScript demo. 2019-08-08 17:43:13 +02:00
Jehan 88ff7ca258 plug-ins: nearly-complete goat-exercise in JavaScript.
Only missing parts are:
- localization.
- help function and id unset.
- gimp_procedure_set_icon() should probably be reviewed for proper
  introspection.
- Finally there is a String() conversion which raises a warning, but I
  couldn't find the proper standard replacement code.
Other than this, the goat-exercise was totally reproduced in JavaScript.
2019-08-08 11:57:23 +02:00
Jehan f625e2ddfb menus, plug-ins: move script development related plug-ins in a...
"Development" submenu. Also get rid of the "Languages" placeholder.
2019-08-08 11:17:07 +02:00
Michael Natterer 169f98f915 libgimpwidgets: add GDestroyNotify to gimp_int_combo_box_connect() 2019-08-08 00:22:15 +02:00
Michael Natterer c6bcb3114f libgimp: add GDestroyNotify for image and item combo box data 2019-08-07 23:16:25 +02:00
Michael Natterer cbefd8e5bb libgimpwidgets: add GDestroyNotify for gimp_query_foo_box() user_data
This is ugly shit that should go down the canal but let's just fix
these GI warnings.
2019-08-07 22:48:06 +02:00
Jehan faf2db71cd plug-ins: improve Makefile.am of python/ subdir.
The old rules were crap and basically copying the scripts in build
folder before installing. Get proper/simpler rules.
2019-08-07 19:52:09 +02:00