Commit graph

42393 commits

Author SHA1 Message Date
Jehan
53de34230f libgimpbase: add gimp_installation_directory_file().
Fix previous commit.
Ahahah! Mitch, you didn't test your code before pushing! Bad boy! :P

(cherry picked from commit db00616888)

(Bad Jehan didn't pick this to 2.10)
2019-02-03 14:54:53 +01:00
Michael Natterer
a8f58acb9a Issue #2867 - iso-codes location is not relocatable on all platforms
gimplanguagestore-parser.c (parse_iso_codes): instead of
special-casing Windows and OS X, use ENABLE_RELOCATABLE_RESOURCES and
find the package relative to ${gimp_installation_directory}, so
relocating it works on all platforms (also flatpack, snap, whatever),
given the --enable-relocatable-bundle configure switch is used.

(cherry picked from commit 10ce702188)
2019-02-02 17:11:03 +01:00
Piotr Drąg
48dba7a0e1 Update Polish translation 2019-02-02 14:44:24 +01:00
Elad Shahar
eeeab8b209 Add i18n support for python spyrogimp plugin
(cherry picked from commit f6e4145756)
2019-02-01 07:41:23 -05:00
Ell
d2bc3eeb5d plug-ins: in pygimp/plug-ins/Makefile.am, simplify plug-in copy recipe
(cherry picked from commit 12dbd4aee2)
2019-02-01 07:41:22 -05:00
Ell
5f398c0888 plug-ins: in pygimp/plug-ins/Makefile.am, re-copy plug-ins upon change
In pygimp/plug-ins/Makefile.am, fix the rule for the generated
plug-in files, so that they're re-copied to the build dir upon
changes to the source plug-in files.

(cherry picked from commit 95044d86b3)
2019-02-01 07:12:38 -05:00
Ell
301691b3ed plug-ins: in pygimp/plug-ins/Makesfile.am, use tab-width of 8
... like the rest of our makefiles.

(cherry picked from commit bcd9f55526)
2019-02-01 07:12:38 -05:00
Ryuta Fujii
377cae8ecc Update Japanese translation 2019-01-31 16:09:03 +00:00
Ell
297971e447 app: fix CRITICAL when initializing the perspective-clone tool
When initializaing the perspective-clone tool in paint mode, the
GimpDrawTool may already be active, causing the call to
gimp_draw_tool_start() to fail with a CRITICAL.  Stop the draw tool
first, if active, to avoid that.

(cherry picked from commit 07d2d5af5a)
2019-01-31 09:13:04 -05:00
Ell
5e6378a7a3 app: in perspective-clone tool, fix cursor presicion; hide brush while adjusting
In GimpPerspectiveCloneTool, use PIXEL_CENTER cursor precision
while setting the source, and place the source-position handle at
the center of the selected pixel, rather than at its top-left
corner.

Additionally, disable the paint tool while adjusting the
perspective, so that the brush outline isn't shown, and the cursor
precision remains SUBPIXEL, even if the hard-edge option is
toggled.

(cherry picked from commit e5c9314a88)
2019-01-31 06:22:52 -05:00
Ell
5c3532609f app: add gimp_paint_tool_set_active()
... which can use to enable/disable certain aspects of
GimpPaintTool (in particular, brush-outline drawing).  Should be
used by subclasses, to temporarily disable the paint tool while in
a non-paint mode (currently, this is only needed by the
perspective-clone tool; see next commit.)

(cherry picked from commit 05dd5029ee)
2019-01-31 06:22:51 -05:00
Ell
028b0f39dd app: fix cursor precision of source tools
In GimpCloneTool, set the cursor precision to PIXEL_CENTER while
setting a source, and have GimpBrushTool snap the brush outline to
pixel centers.

(cherry picked from commit ef2818231f)
2019-01-31 06:22:50 -05:00
Ell
b1c977e510 app: fix cursor precision of various tools
Fix the cursor precision of the cage-transform, foreground-select,
n-point deformation, and warp-transform tools.

(cherry picked from commit 158705e4ef)
2019-01-31 04:39:40 -05:00
Michael Natterer
b81723042e plug-ins: add .gitignore file to file-dds
(cherry picked from commit 0fa98d4849)
2019-01-30 18:49:36 +01:00
Ryuta Fujii
6f8c8ce56d Update Japanese translation 2019-01-30 14:28:48 +00:00
Rodrigo Lledó
61d2e8ad74 Update Spanish translation 2019-01-30 07:44:44 +00:00
Ryuta Fujii
94d176d7f5 Update Japanese translation 2019-01-28 17:27:09 +00:00
Alan Mortensen
90d76267a7 Updated Danish translation of gimp-plug-ins 2019-01-28 13:12:49 +01:00
Ryuta Fujii
0d950bd289 Update Japanese translation 2019-01-27 15:24:58 +00:00
Michael Natterer
17e360e34b Issue #2863 - Improve error reporting for scripts
gimp_plug_in_handle_proc_install(): print the procedure name when
bailing out of a wrong proc install call. For an obsolete full-path
menu label, also print the label. Original patch by Liam Quin.

(cherry picked from commit 07e3c1c15b)

In libgimp, add a note to gimp_install_procedure() stating that
passing a full menu path as "menu_label" is deprecated.
2019-01-27 13:42:36 +01:00
Balázs Meskó
316c47da6f Update Hungarian translation 2019-01-26 21:37:53 +00:00
Balázs Meskó
b70a37a33d Update Hungarian translation 2019-01-26 21:32:21 +00:00
Ell
d11d094d02 Issue #1119 - Unable to give a layer group as a parameter to a python script
Pickle gimp.GroupLayer the same way we pickle gimp.Layer, so that
layer-group parameters can be properly saved.

All credit goes to Ofnuts :)

(cherry picked from commit b295a33aaf)
2019-01-26 16:02:26 -05:00
Ryuta Fujii
25d39eea9d Update Japanese translation 2019-01-26 16:17:08 +00:00
Jehan
69712634a1 plug-ins: optionally define several float.h macros for MinGW64.
This plug-in failed to cross-build because these macros were not defined
in the `float.h` of my MinGW64 environment (and they are used in some
ilmbase headers). Just define them ourselves if they are absent. I do
this only on MinGW environment because these should really be defined on
Linux (and other UNIX-like, I guess?) and if they are not, we may have a
bigger issue.

(cherry picked from commit 7a7ecda4f1)
2019-01-26 16:46:03 +01:00
Piotr Drąg
dc01a613ff Update Polish translation 2019-01-26 11:24:51 +01:00
Jehan
d79916f598 NEWS: keep up-to-date. 2019-01-25 21:45:17 +01:00
Salamandar
aaf5816695 Undo some (unnecessary) changes.
(cherry picked from commit fc657184a0)
2019-01-25 21:10:45 +01:00
Félix Piédallu
0436dd1cb7 (source modifs) Fix: Rename macros as it conflicts with Mingw headers.
* DATADIR -> GIMPDATADIR
* SYSCONFDIR -> GIMPSYSCONFDIR
* DATADIR -> SYSDATADIR (tools/)

(cherry picked from commit fc8303dd0a)
2019-01-25 21:10:41 +01:00
Jehan
ffe2fb478c app: new gimp_spin_scale_set_constrain_drag() and use it on paint...
... tools' brush options.
After discussions, it turned out that many people disliked that the spin
scale for brush size (and some other options) get you fractional values.
How often do you actually need to get a 4.32 pixel-size brush? And even
how meaningful is it? On the other hand, you usually want a 4 or a 5
pixel size brush and it's nearly impossible to get (exactly) by dragging
the scale widget.
It is so annoying that some even resort to edit the value with keyboard!
So I am adding an optional "constrain" feature to GimpSpinScale. It will
still be possible to get fractional values when constraining is on, for
instance with keyboard edit (the arrow incrementation also will keep any
fractional part). So the interaction for such scales is simply reversed
so that you get integers easily, and fractional parts with a bit more
effort.

It is not turned on by default (some feature actually need precision and
we don't want to break the sliders for these) and for the time being, I
only applied it to all the brush settings in paint tools. Now that it
exist, we may want to apply this to more scales in various parts of
GIMP.

(cherry picked from commit bff3903f37)
2019-01-25 18:34:09 +01:00
Jehan
699933470a libgimpbase: display thread id of the calling thread as hexadecimal...
... on macOS.
The debugger running on macOS is usually lldb and (from the reports we
get) it looks like lldb displays the tid as hexadecimal on macOS
(whereas lldb displays decimal tid on Linux! I know, it's confusing, yet
consistent with crash report experience!). So let's just do the same,
making it easy to quickly copy-search in order to look up the crashing
thread (without having to convert from decimal to hexa).
This is a bit of an approximation as I imagine we could have gdb on
macOS or whatever edge case. Let's say it's good for the common case and
still not an error otherwise (just a base conversion away).

(cherry picked from commit 8e0135362e)
2019-01-25 12:54:37 +01:00
Tim Sabsch
5a0e4554be Update German translation 2019-01-25 10:26:01 +00:00
Ell
71fe5c00fd plug-ins: avoid running pygimp plug-ins derived from gimpplugin.plugin at each startup
When initializing a pygimp plug-in derived from gimpplugin.plugin,
only pass the plug-in's init() and quit() functions to gimp.main()
if the plug-in actually implements them, instead of passing the
default NOP versions.  This avoids plug-ins that don't implement
init() from being registered as having an init function, causing
them to be run at each startup.

(cherry picked from commit 9851bc8962)
2019-01-25 04:34:27 -05:00
sabri ünal
9c6c064356 Typo
(cherry picked from commit 43fb9242ca)
2019-01-24 23:33:34 +01:00
Anders Jonsson
7a0a3f47c7 Update Swedish translation 2019-01-24 21:48:38 +00:00
Jehan
ada21f2594 Issue #2848: some sentences have no translation.
(cherry picked from commit f508e24f0c)
2019-01-24 16:20:11 +01:00
Ell
8361377b43 app: in gimp:gradient, improve adaptive supersampling
In gimp:gradient, when using adaptive supersampling, render the
gradient tile-by-tile, using an iterator, instead of row-by-row.
This significantly improves performance, while also avoiding the
assumption that gimp_adaptive_supersample_area() works row-by-row.

Additionally, when not using supersampling, use a single GRand
instance, since the separation to distinct seed and per-tile
instances, which was a threading optimization (commit
7f39e41254), is no longer needed.

(cherry picked from commit 2cd7938f02)
2019-01-24 04:15:27 -05:00
Ell
14030fc930 libgimpcolor: in gimp_adaptive_supersample_area(), use scratch allocator
In gimp_adaptive_supersample_area(), use the scratch allocator for
temporary buffers, instead of the regular allocator.

(cherry picked from commit 33d5eb2090)
2019-01-24 04:15:26 -05:00
Jehan
676936f9a7 NEWS: update. 2019-01-24 01:36:27 +01:00
Jehan
ead5e8e84b desktop: add rewrite of the Spyrogimp in appdata <release> tag.
It is well worth listing there!

(cherry picked from commit c3061c13d4)
2019-01-24 01:36:21 +01:00
Jehan
8729f9a662 plug-ins: clean the new Spyrogimp, rename it and remove old version...
... from menus.
The script-fu version is still available through pdb (for scripts) and
even in the action search. But in menus, only the new Python version
will be shown. Also update the description and name of the old version
to make clear it is deprecated in favor of the new plug-in.
Finally rename the new version to simply "plug-in-spyrogimp" (dropping
the "-plus" part as we should consider it as a replacement rather than
as another plug-in, which the "plus" would imply). Anyway the old one
was called "script-fu-spyrogimp", so there is no name clash.

While at it, do some trailing whitespace cleaning in the new plug-in.
2019-01-24 01:05:02 +01:00
Elad Shahar
529583430d plug-ins: Spyrogimp plugin rewrite.
Comment by reviewer (Jehan):

This was submitted through gimp-developer mailing list, by the same
author as the original Spyrogimp in script-fu, but this time in Python.

It does more than the original plug-in, with some automatic preview (by
drawing directly on a temporary layer, not as a GEGL preview), and using
the current tool options (current brush, etc.). The new API is similar
yet different. The much evolved possibilities makes that I don't think
it is worth trying to map 1-1 the new API to the old one, so I just let
the old plug-in next to the new one, with a different name.

Note finally that the author also contributed a new Spyrograph operation
to GEGL, yet with the comment: "The GEGL spyrograph operation is very
basic, and untested from gimp. I intend to keep developing it, since I
thought that on-canvas interaction would be very user-friendly. However,
I am not sure I will be able to get it work in a way that makes the
on-canvas interaction interactive enough.

Even if I do, it will not do what the Python plugin can do. It will be
much more basic."

So let's just integrate this evolved version of Spyrogimp for now. :-)
See: https://mail.gnome.org/archives/gimp-developer-list/2018-September/msg00008.html
2019-01-24 00:31:15 +01:00
Jehan
18bcb41573 desktop: check that no remaining TODOs are in appdata file.
Before each release, we prepare now a <release> tag. Unfortunately some
details are not always well known for sure in advance, in particular the
date of release (plans are made to be broken!), and also the release
news URL (since the date is in the URL). So I usually leave them as TODO
and until now, I never forgot to update them just before release. But
there is always the risk of forgetting.
Now the test for the appdata files will also look for remaining "TODO"
in the file if and only if the micro version is even (which means it's a
release). So we won't ever forget to update the file as long as we run
`make check` on the last commit (which we always do obviously).

(cherry picked from commit c0fed5afd6)
2019-01-23 23:51:05 +01:00
Jehan
b0c0895b48 desktop: reenable validity tests for appdata file.
It got disabled in commit 0492157dd2 because of a bug in appstream-util,
which has been fixed for monthes now. Let's just reenable it and assume
anyone who wants to run a `make check` on GIMP uses a recent
distribution with up-to-date system tools.

(cherry picked from commit f83271a39b)
2019-01-23 23:06:01 +01:00
Jehan
ec09eaca8a desktop: add <url> tags to <release>.
Cf. recent update of the appstream spec.
See also: https://github.com/ximion/appstream/pull/160

(cherry picked from commit cfe1941ac7)
2019-01-23 22:42:05 +01:00
Harald H
a5147bd49f Added OARS
(cherry picked from commit 42dd3fd939)
2019-01-23 22:42:05 +01:00
Jehan
24598bb5b6 desktop: add missing filter in <release> notes.
Also remove '.' at end of some <li>. `appstream-util` does not like full
stops in item lists, when in `validate-strict` mode (we don't test in
this mode, but it is worth improving the warning list a bit).

(cherry picked from commit 7a7de5c61c)
2019-01-23 22:42:05 +01:00
Ell
1bc7d5d01f devel-docs: in performance-logs.md, fix markers-page section number
(cherry picked from commit 4fefa44574)
2019-01-23 16:36:08 -05:00
Ell
34c732df1d tools: in performance-log-viewer.py, add markers view
Add a "markers" page to the performance-log viewer, which lists
the event markers contained in the log, and allows navigating
between them.

Update docs accordingly.

(cherry picked from commit dafb63fd66)
2019-01-23 16:33:33 -05:00
Ell
dcc4816770 tools: in performance-log-viewer.py, some cleanup
(cherry picked from commit 5a6548a4b6)
2019-01-23 16:33:33 -05:00