Commit graph

42393 commits

Author SHA1 Message Date
Jehan
78392316db Issue #2786: a few string issues.
Several en_GB to en_US.

Also "Show a preview of the transform_grided image". "grided" should be
"gridded", but I also have a problem with the underscore. Should it be
"transform-gridded"? Even so, does it really make sense?
I chose to just read "Show a preview of the transformed image", which I
think is simpler and the most understandable (we don't need to leak the
implementation with a transform grid into the human read text IMO). If
anyone think that was not the right choice, feel free to propose
otherwise.
Thanks to Bruce Cowan for noticing these.

(cherry picked from commit f9c170dfbd)
2019-01-12 18:04:55 +01:00
Jehan
4fd8e4841f app: add link to Smart Colorization scientific paper.
This is sometimes asked, and myself also need to find it from time to
time. I may as well put the link inside the code comments, where it is
just easy to find!

(cherry picked from commit 005bc1406b)
2019-01-12 18:03:24 +01:00
Jehan
944d509e78 desktop: prepare GIMP 2.10.10 appdata.
(cherry picked from commit 388f6da1c4)
2019-01-12 18:03:24 +01:00
Ell
dfc038e650 app: in gimp_projection_chunk_render_start(), properly invalidate preview
In gimp_projection_chunk_render_start(), when the current
projection rendering is complete, but not finalized yet, and no new
rendering is started (since the current update region is empty),
make sure to invalidate the projectable's preview, since it
normally happens when rendering is finalized, which doesn't happen
in this case.

(cherry picked from commit 42845c9462)
2019-01-12 08:33:24 -05:00
Ell
f21eec319f app: in gimp_projection_chunk_render_start(), don't leak empty region
In gimp_projection_chunk_render_start(), don't leak the current
update region when it's empty, but not NULL, and properly shut down
the idle source.

(cherry picked from commit 0e5de95760)
2019-01-12 08:20:16 -05:00
Bruce Cowan
3f2815922f Update British English translation 2019-01-12 12:41:52 +00:00
Ell
4cbec7608f app: fix gimp_chunk_iterator_set_priority_rect()
(cherry picked from commit 942e1aa939)
2019-01-12 07:32:08 -05:00
Piotr Drąg
9bf833b0e4 Update Polish translation 2019-01-12 13:11:15 +01:00
Bruce Cowan
797469d351 Update British English translation 2019-01-12 12:03:58 +00:00
Ell
5e00c26295 app: in gimpchunkiterator.c, #include <stdlib.h>
... for qsort().

(cherry picked from commit a61f29e30a)
2019-01-12 06:16:50 -05:00
Ell
cc59bce82e Issue #440 - libgimp/gimptilebackendplugin.c provides no pyramid
In GimpTileBackendPlugin, return NULL when fetching z>0 tiles,
instead of simply ignoring the z coordinate, so that the mipmapped
tile is rendered locally.  Likewise, avoid storing z>0 tiles.

Note that this is suboptimal, since all the necessary level-0 tiles
need to be sent to the buffer as a result.  Ideally, we should
extend the wire protocol to handle mipmapped tiles.

(cherry picked from commit d0ae39f017)
2019-01-12 05:51:58 -05:00
Ell
aa0df19af2 app: in gimp_gegl_apply_cached_operation(), s/cancellable/cancelable/
To align gimp-2-10 with master, and fix commit
50dc4571cb.
2019-01-12 05:11:47 -05:00
Ell
7547df54dd app: in the gradient tool, halt gradient editor before committing filter
In the gradient tool, halt the gradient editor before committing
the filter, so that its image-flush idle source is removed before
applying the operation, to avoid flushing the image, and hence
restarting its projection rendering, during application.

(cherry picked from commit 2256ab22f7)
2019-01-12 04:54:18 -05:00
Ell
bb4b1e3f1f app: in gimp_tile_handler_validate_buffer_copy(), temporarily remove source handler
In gimp_tile_handler_validate_buffer_copy(), temporarily remove the
source buffer's validate handler, is exists, so that the subsequent
gegl_buffer_copy() can use fast tile copying, using the TILE_COPY
command.  GEGL currently only uses TILE_COPY when the source buffer
doesn't have any user-provided tile handlers.

(cherry picked from commit f4750a0ae7)
2019-01-12 04:54:18 -05:00
Ell
50dc4571cb app: use GimpChunkIterator in gimp_gegl_apply_cached_operation()
In gimp_gegl_apply_cached_operation(), replace the use of
GeglProcessor with GimpChunkIterator, so that we use the same
chunking logic as for rendering projections.  This has the
advantage of better chunk alignment to the tile grid and dynamic
chunk sizing, which improve performance.

Use chunking even when there's no progress indication, since it
generally results in better cache locality.

(cherry picked from commit 4110f7b7b1)
2019-01-12 04:54:16 -05:00
Ell
b62e3fd3b8 app: use GimpChunkIterator in GimpProjection
Replace the custom chunking logic of GimpProjection with
GimpChunkIterator, added in the previous commit.

(cherry picked from commit 246e782858)
2019-01-12 04:53:11 -05:00
Ell
8c31ed6f02 app: add GimpChunkIterator
Factor out the region-chunking logic of GimpProjection into a new
GimpChunkIterator type, providing a generic mechanism for iterating
over a cairo region in discrete chunks.  The iterator doesn't
perform any processing itself, but rather dispenses rectangular
chunks, which the user then processes.

Iteration is broken into intervals, the duration of which is
configurable.  Each iteration begins with a call to
gimp_chunk_iterator_next(), after which
gimp_chunk_iterator_get_rect() should be called in succession to
fetch a rectangle to process, until it returns FALSE, which marks
the end of the iteration.  Updates to the UI should take place in
the interval between iterations, but not during an iteration.  The
iterator dynamically adjusts the chunk size according to processing
speed, in order to match the target iteration interval.

The iterator can be given a priority rectangle, which is processed
before the rest of the region.  It can also be given a
representative tile rectangle, defining a regular tile grid;
dispensed chunks are aligned to the tile grid as much as possible.

(cherry picked from commit ba9ce34e10)
2019-01-12 04:53:10 -05:00
Piotr Drąg
075363f182 Update POTFILES.in 2019-01-11 18:50:23 +01:00
Jehan
5122b86588 NEWS: update. 2019-01-11 13:20:38 +01:00
Jehan
0055a2ad73 app: push a temporary status when picking layer with alt-midclick.
Though the layer list will also show updated, it is much easier to look
at the layer name in the status bar whose position never changes.
Anyway it makes sense to just show a temporary status info message
giving the picked layer name, making it all the easier to find the layer
you are looking for.

(cherry picked from commit 496bc02b49)
2019-01-11 13:19:56 +01:00
sabri ünal
a0361ec535 Annotation for translators.
(cherry picked from commit 74df62034a)
2019-01-10 12:55:42 +01:00
Marco Ciampa
24f32e6305 Updated Italian translation 2019-01-10 11:45:53 +01:00
Ell
a16d06a40a Issue #1824 - Crash on 2.10.4 using tablet
In GimpTool, track the last-seen pointer coordinates, modifier
state, and event time, during button_press() and motion() events
and use those to synthesize a button_release() event when
comitting/halting the tool, if the tool is still active, and a
matching button_release() event has not been received.

The paint tools (as well as other tools) require each
button_press() event to be matched by a button_release() event in
order to properly finish their operation, but one isn't organically
generated when switching tools due to a device change.

(cherry picked from commit 9b25611857)
2019-01-09 13:40:48 -05:00
Ryuta Fujii
0a22773a17 Update Japanese translation 2019-01-09 13:12:42 +00:00
Ryuta Fujii
51ecd3e14e Update Japanese translation 2019-01-09 13:06:31 +00:00
Jehan
5bbfbd1dba Issue #572: Key combinations not working with non English layout.
It is most likely the same issue as old bug 769550 (on bugzilla), which
is fixed with GTK+ 2.24.32. Back then, this version of GTK+ had not been
released yet so we only added a warning in the configure script. See
also commit b7345863.
Now it has been a year since GTK+ 2.24.32 has been released and any
distribution can just upgrade a micro version of GTK+ for bugfix. So
let's just drop the warning and do a hard requirement to 2.24.32.
2019-01-08 23:39:47 +01:00
Ryuta Fujii
f7cb9b92e8 Update Japanese translation 2019-01-08 15:41:32 +00:00
Ryuta Fujii
b7793b9c21 Update Japanese translation 2019-01-08 15:26:52 +00:00
Ell
d2b98a6700 app: in gimp_display_empty(), clear image of matching contexts
In gimp_display_empty(), clear the image of all contexts whose
display is the current display, so that, in particular, when
subsequently updating the action groups, which causes certain
actions to be activated, the image that used to be bound to the
display is not found through the user context.  This avoids re-
validating the image projection when closing the last image,
postponing image destruction.

(cherry picked from commit 49e57f8d6e)
2019-01-08 10:05:55 -05:00
Jehan
b1fe1675ce app: expect event == NULL in gimp_device_info_get_event_coords().
The problem was not happening with the master code of
gimpdisplayshell-tool-events.c, but I encountered it in gimp-2-10 with
the layer picking code.
Even then, it still works, but I need to protect calls to
gdk_event_get_axis() to avoid CRITICALs.
2019-01-08 14:19:11 +01:00
Jehan
2dc3e1813c app: make layer picking a generic modifier of the shell.
Instead of having layer picking only on paint tools with alt-click, make
it available everywhere with alt-middle click. Moving through layers is
also a way to navigate an image, so it actually makes sense to be with
other modifiers (panning, zooming, rotating), while making the feature
more generic (this is definitely useful whatever the selected tool).

(cherry picked from commit 4c337353a0)
2019-01-08 13:41:06 +01:00
Jehan
e0be9bdef2 app: alt-click to pick a layer will loop through candidate layers.
If you click on a zone filled in several visible layers, you don't
necessarily want the top layer. You may want one below. With this
change, as long as you hold alt, you will loop through all candidate
layers from top to bottom (then looping back top when reaching the
bottom).
In a first alt-click, you will always end up to the top candidate.

(cherry picked from commit 90e9eb3fca)
2019-01-08 13:41:06 +01:00
Jehan
5790c809c1 app: allow picking layer in paint tools on alt-click.
When working with a lot of layers, it is common to have to switch easily
between layers. And having to go back to the layer list is annoying and
also sometimes not practical at all when you can't find easily the right
layer. This is a first step in an experiment for such a feature, worked
together with Aryeom as advisor (and originator of the feature idea).
For now I apply this only to paint tools, though we are considering
having it as a generic modifier too, working whatever the tool. Yet we
wouldn't be able to use alt-left click (as it is used already in some
tools).
How it works is simply that in any paint tool, alt-click allows to
switch to the topmost layer having a visible pixel at the clicked
position.

(cherry picked from commit 3b59e6f61e)
2019-01-08 13:41:05 +01:00
Snehalata B Shirude
b2b88d7caf Update Marathi translation 2019-01-08 10:54:37 +00:00
Michael Natterer
752589f42d libgimpbase: more metadata fixes for tags that can appear multiple times
gimp_metadata_add() which is used to set blobs or EXIF, XMP and IPTC
on a GimpMetadata also needs the logic to set "multiple" tags in one
go, or it will lose all but the first one.

(cherry picked from commit 479fd5b24b)
2019-01-07 21:41:13 +01:00
Ell
926e28b219 app: in bucket fill tool, don't calculate line art of layer groups
... since they can't be used with the fill tool.

(cherry picked from commit 4b4fffbd0e)
2019-01-07 04:29:13 -05:00
Michael Natterer
101e2d0b48 Issue #1004 - file-pdf-load crashes in lcms when opening PDF with...
...color profile

Require poppler >= 0.50 which is the first version that has the fix.
2019-01-07 03:38:52 +01:00
Michael Natterer
44fd7157b6 plug-ins: s/g_printf/g_printerr/ in sgi.c 2019-01-07 00:48:43 +01:00
Michael Natterer
58e266ed8b Issue #1358 - Increase default size of "extended input device dialog"...
...for a less cramped look

With a minimum width of 300 instead of 200 pixels, much less device
names are cut off and need horizontal scrolling.

(cherry picked from commit ee6b629fa3)
2019-01-07 00:44:36 +01:00
Ell
0f2f95d97b app: in bucket-fill tool, avoid calculating line art when not in line-art mode
In the bucket-fill tool, don't pre-calculate the line art when not
using a line-art fill area.  Also, misc. cleanup.

(cherry picked from commit 823d4a0d24)
2019-01-06 16:31:11 -05:00
Jernej Simončič
778faaddc8 Installer: handle missing install directory of GIMP <2.8 better when there's still uninstall info in Registry 2019-01-06 21:35:50 +01:00
Jernej Simončič
b6f11ee635 Installer: remove dead code 2019-01-06 20:50:15 +01:00
Piotr Drąg
0fee22cb9d Update Polish translation 2019-01-06 19:21:11 +01:00
Michael Natterer
4f9bde3bad Issue #1437 - 2.10 Image Metadata "keywords" corrupt
We were not taking into account tags that can appear multiple times,
such as "keyword", they are handled by gexiv2 with the
get_tag_multiple() and set_tag_multiple() functions.

gimp_metadata_deserialize_text(): when deserializing our XML format,
check if a tag is already set on the metadata as "multiple" and if yes
retrieve it, append the new value and set it again.

gimp_image_metadata_save_finish(): take care of "multiple" values when
copying tags to new metadata created for saving.

This should preserve all values across an "import, edit, export".

Thing will still break when using the metadata editor, it doesn't
handle multiple values at all, but that code is very hard to
understand.

(cherry picked from commit d708ac0b21)
2019-01-06 17:53:41 +01:00
Ell
fbf73bee70 app: remove gimp-scratch; replace with gegl-scratch
The scratch allocator has been moved to GEGL (commit
gegl@b99032d799dda3436ffa8c1cc28f8b0d34fb965d).  Remove gimp-
scratch, and replace all its uses with gegl-scratch.

(cherry picked from commit 889e2e26ee)
2019-01-06 07:39:52 -05:00
Alexandre Prokoudine
f82eab6c95 Update NEWS 2019-01-06 04:44:59 +03:00
Alexandre Prokoudine
68b53d84f8 Update Russian translation 2019-01-06 04:16:19 +03:00
Michael Natterer
c924d60ea6 Issue #1793 - Move Guillotine tool to a different position in menus...
...(and rename it)

Move it into the "Crop" group of the image menu and call it "Slice
Using Guides".

(cherry picked from commit 5fffadba54)
2019-01-05 14:58:18 +01:00
Michael Natterer
30d5fb4851 Issue #2260 - "Selection to Path Advanced Settings" dialog not scrollable
Put the entire dialog content into a scrolled window.

(cherry picked from commit 99764000be)
2019-01-05 14:26:24 +01:00
Snehalata B Shirude
c6bf7b04f7 Update Marathi translation 2019-01-05 08:32:24 +00:00