Commit Graph

43368 Commits

Author SHA1 Message Date
Ell e0f2a6f1be app: add gimp_symmetry_get_transform()
Add a GimpSymmetry::get_transform() virtual function, and a
corresponding gimp_symmetry_get_transform() function, which return
the brush transform corresponding to a given symmetry stroke in
terms of the rotation angle and reflection flag (in contrast to
gimp_symmetry_get_operation() which returns the same transforation
in terms of a GeglNode).  This would allow us to simplify, fix, and
improve the painting-code perofmrnace in the next commits.

Implement GimpSymmetry::get_transform() in its various subclasses.
2019-05-26 14:45:38 -04:00
Tim Sabsch 8d3e2dc30c Update German translation
(cherry picked from commit 80e426b65b)
2019-05-26 13:00:31 +00:00
Jehan cf37d1ae56 plug-ins: follow the assigned profile TRC in PNG export.
Similar to JPEG export (commit c5f7bac2ba)
as discussed with Ell. GIMP should follow and save as-is any *assigned*
profile. We only make a decision about whether to convert from storage
precision to another format when the profile is the default GIMP one.

Picked from commit 72c5d24fe9.
Some changes may have to happen later on the master code as the space
invasion changes a bit how default profiles are handled.
2019-05-26 14:17:41 +02:00
Jehan 31b90638cb build: sync our nightly flatpak manifest with stable one. 2019-05-26 10:47:36 +02:00
fanjinke 5b1f8cb4d0 libgimpbase: add hygon cpu detection and enable MMX/SSE support
Signed-off-by: fanjinke <fanjinke@hygon.cn>
2019-05-26 00:19:28 +02:00
Øyvind Kolås a3f2d734a7 depend on babl-0.1.64 2019-05-25 19:51:42 +02:00
Michael Natterer 1f57675a46 Issue #3124 - layer mask pastes as a greyscale layer/grayscale layer...
...in a color image/colour image

gimp_edit_paste_get_layer(): only use the pasted-to drawable's format
with alpha if this is really a floating paste, use the image's layer
format with alpha for "as new layer" cases.
2019-05-25 17:05:49 +02:00
Michael Natterer e931895f7c Issue #3364 - make check fails with a linker error
Link tests against $(LIBARCHIVE_LIBS).
2019-05-25 16:02:00 +02:00
Massimo Valentini 1a691f77e6 Issue #1220 - Text tool has color from previous line...
...when overwriting existing text

gimp_text_tool_enter_text(): when replacing a selection, use the text
properties from the text style editor for the entered text, otherwise
the style of the text before the selection will be used.
2019-05-25 12:44:13 +02:00
Michael Natterer e249a42226 Issue #3343 - Some translated tooltips are appearing untranslated
Tool options properties must be translated with _() not N_().
2019-05-25 11:42:07 +02:00
Ell c2021d3c5b app: disregard composite space in source-only trivial layer modes
Extend last commit to also disregard the composite space when the
layer mode is trivial and only the source region is included in
compositing, since, in this case, the source color is unmodified.
2019-05-24 02:42:56 -04:00
Ell a5962e4049 app: disregard composite space in non-union alpha-only layer modes
In gimp_layer_mode_get_format(), disregard the requested composite
space when selecting the format, if the input layer mode is alpha-
only, and the requested composite mode is not UNION, since, in this
case, the layer mode doesn't combine the layer/backdrop colors, and
rather only modifies the alpha of one of them.  This allows us to
use the preferred format, avoiding gamma conversion.

This particularly improves the performance of the Eraser tool in
perceptual images.
2019-05-24 01:43:20 -04:00
Michael Natterer 2a48a5f868 plug-ins: big formatting and indentation cleanup in file-dds
Also change the license to GPL 3 or later, like all other files.
2019-05-23 14:34:00 +02:00
Ell 1c91578bb2 app: don't show result-size warning when transforming a selection
In gimp_drawable_transform_get_effective_clip(), always return
RESIZE_CLIP when the input drawable is the image mask, since the
presence of a selection doesn't matter in this case.  This avoids
erroneously displaying a result-size warning when transforming the
selection using any of the selection tools.
2019-05-21 08:19:21 -04:00
Ell 04f9281bdd configure.ac: improve compiler version string escaping
In configure.ac, improve backslash escaping in the compiler
version string.  Backslashes are currently not properly escaped in
our Windows builds, leading to spurious (and, in particular, non-
UTF8) characters in the compiler version string.
2019-05-20 03:09:20 -04:00
Ell 853d91b8e4 app: initialize GimpBacktrace earlier on
Initialize GimpBacktrace earlier on in the startup process, so that
the Windows backend installs the thread-name exception handler
early enough to catch threads created before app_run() (in
particular, the GEGL worker threads).
2019-05-19 10:49:57 -04:00
Ell 86a7c053cc app: fix indentation in gimppaintbrush.h 2019-05-15 13:32:59 -04:00
Ell edc99531e6 app: in GimpPaintbrush, reuse existing paint buffer
In GimpPaintbrush, avoid refilling the paint buffer at each dab if
the paint color/pixmap hasn't changed, as gimp_paint_core_paste()
no longer modifies the buffer since the commit before last.

Additionally, fix color-from-gradient dynamics when the image has a
profile.
2019-05-15 10:54:45 -04:00
Ell fcd19a2aeb app: add gimp_brush_core_get_brush_pixmap()
In GimpBrushCore, replace the private
gimp_brush_core_transform_pixmap() function with a public
gimp_brush_core_get_brush_pixmap() function, which, similarly to
gimp_brush_core_get_brush_mask(), returns the transformed brush
pixmap, and can be used by subclasses.
2019-05-15 10:53:13 -04:00
Ell f24bca5156 app: don't modify paint buffer when pasting to canvas
We now have enough machinery in gimppaintcore-loops to avoid
modifying the paint buffer in gimp_paint_core_paste() in the no-
applicator case, by using the same set of algorithms as
gimp_paint_core_replace().  Other than reducing the number of
different code paths we have, this is both more efficient, and
allows us to reuse the paint buffer across dabs, as done in the
following commits.

Implement gimp_paint_core_replace() in terms of
gimp_paint_core_paste().  We keep the two functions separate, since
their implementation is still differnet when using an applicator.

Suppress the paint-buffer-modifying algorithms in
gimppaintcore-loops, but keep them around; using the same logic for
normal painting as we use for REPLACE painting is possible due to
the fact that all our current non-REPLACE modes treat alpha values
and mask values interchangeably.  In the future we might have modes
that distinguish between alpha and mask values, requiring the old
algorithms.
2019-05-15 10:53:12 -04:00
Rodrigo Lledó 669bd398a7 Update Spanish translation 2019-05-14 08:28:20 +00:00
Rodrigo Lledó 6310582b36 Update Spanish translation 2019-05-13 09:29:15 +00:00
Piotr Drąg e94cca3b42 Update Polish translation 2019-05-12 15:06:22 +02:00
Ell bea1a44672 app: in GimpBrushCore, free old paint buffer before allocating new one
In gimp_brush_core_get_paint_buffer(), when allocating a new paint
buffer, clear the old buffer *before* allocating the new one, to
reduce the amount of simultaneously allocated memory.
2019-05-11 05:14:24 -04:00
Ell 088827e563 app: in GimpDashboard, improve legend logic 2019-05-11 05:14:23 -04:00
Sabri Ünal d7a4d5c6a8 Issue #3140 - Export as DDS dialog does not have an Export button 2019-05-10 14:23:25 +00:00
Jehan 45f37b9b63 app, libgimp, pdb: s/procesures/procedures/
While we are at it, another typo was missed.
2019-05-10 01:38:33 +09:00
luz.paz 1c91b8d97e Add a few more misc. source comment typos 2019-05-09 09:13:37 -04:00
luz.paz 86edc31b11 Misc. typos
Found via `codespell`
2019-05-09 09:13:37 -04:00
Jehan f4c6fd0ee4 desktop: prepare an AppData release tag for 2.10.12. 2019-05-09 12:34:21 +09:00
Carles Ferrando Garcia 0f6654dad3 Update Catalan translation 2019-05-08 20:34:42 +00:00
Carles Ferrando Garcia 9c97fb6b16 Update Catalan translation 2019-05-08 20:32:13 +00:00
Ell cf54f790fd app: add tile-alloc-total variable to the dashboard
Add a tile-alloc-total varaible to the dashboard's memory and misc
groups, showing the total amount of memory used by the tile
allocator (see commit
gegl@137e66e45138e8316f6403e53e8aa9a02ad523e7.)
2019-05-08 04:22:39 -04:00
Ell 8434ae42a3 app: in GimpDashboard, don't show legend for groups with no meter
in GimpDashboard, don't show field legend colors in groups without
a meter.
2019-05-08 04:22:38 -04:00
Ell 29d575c033 configure.ac: require GEGL >= 0.4.16 2019-05-08 04:22:38 -04:00
Ell c7a29e5f98 Issue #3353 - Gimp 2.10.10 freezes while changing Background color ...
... in LCh colorspace

In gimptoolbox-color-area, when setting the context's background
color in response to a color-dialog change, block the right signal
handler, to avoid re-setting the color dialog's color, which would
cause the GtkAdjustment's "value-changed" signal (assuming it was
the source of the change) to be restarted if the new value doesn't
match the current one exactly, which can happen due to conversion
errors.
2019-05-08 03:45:11 -04:00
Jehan a761ed3ae8 app: round curve point position when displaying it as int.
Int casting results to truncation. First this is a bit counter-intuitive
as we usually expect rounding to the nearest integer. Moreover with the
new GUI updates on curve and curve tool, we end up with a mismatch as
the new Input/Output spin buttons where indeed showing rounded integers
whereas the coordinate indicator was showing truncated integers.

Make all these show same rounded value.

(cherry picked from commit 7b1af1f0cb)
2019-05-08 14:11:31 +09:00
Jehan b29d1ea6ff Issue 1878: Eyedrop tool doesn't work when screen composing (KWin)...
... is enabled.
2019-05-07 18:49:35 +09:00
Jehan 90bc9e10f1 Issue #835: warnings building with Clang.
Fix one warning and one error (introduced in commit 3bf2a3c166).
2019-05-07 18:12:47 +09:00
Jehan 417f2c873f plug-ins: follow the assigned profile TRC.
GIMP should not convert assigned profile to sRGB just because we stored
as linear on the XCF. In other words, we should not look at the image
precision to decide whether to export as linear (previously only 8-bit
linear images), but at the profile TRC. There are basically 3 cases:
(1) We don't save a profile, then convert to sRGB whatever the source
precision (because readers would assume sRGB for a no-profile jpeg).
(2) We save the default profiles: convert to sRGB because it's usually
a better choice for 8-bit formats and even working at 32-bit float
*linear* doesn't mean you want to export as 8-bit int *linear*. As the
image creator made no explicit export choice, we make an acceptable
default one.
(3) We save an explicitly assigned profile: keep the profile TRC, don't
convert!

Note that this apparently won't work perfectly right now, as GIMP
replaces the original TRC with the linear default TRC when converting to
linear. So the expected TRC is lost in such case when you have not
explicitly reset the correct profile. Yet this is on GIMP side and this
part of the issue should be fixed with the space invasion merge. For
now, this is how the plug-in should work.

This is based on my late discussion with Ell. Please everyone, and Ell
especially, review! :-)

(cherry picked from commit c5f7bac2ba)
2019-05-06 14:35:55 +09:00
Tim Sabsch a6f50a6bc4 Update German translation
(cherry picked from commit d85f3f7a1e)
2019-05-05 14:45:34 +00:00
Michael Natterer c9b10ff3bf Issue #3251 - Windows menu shows doc's old name not new
In windows-actions.c, connect to GimpDisplayShell's "notify::title"
and update the action label when it changes.
2019-05-05 16:23:40 +02:00
Michael Natterer 75acae40e3 app: make sure the labels of our GtkImageMenuItem replacements get updated
In GimpAction, connect to the action's "notify::label" and update the
label inside the image-plus-label hbox we use to replace the
deprecated GtkImageMenuItem.
2019-05-05 16:17:50 +02:00
Michael Natterer 3bf2a3c166 app: don't dereference NULL image pointer
windows_menu_display_query_tooltip(): bail out if "image" is
NULL. Can't happen currently but did happen temporarily while hacking
on related code. Better safe than sorry.
2019-05-05 15:36:07 +02:00
Ell b1077a903e tools: in performance-log-viewer.py, fix deprecation warnings 2019-05-01 15:34:42 -04:00
Jehan 14d9606c04 app: allow undoing extension removal in the GUI. 2019-05-01 23:13:17 +09:00
Jehan 09ca1e8962 app: add undo_remove ability to the extension manager.
This allows an extension removal to be cancelable for a given session
(at end of session, the extension removal is definitive and you have to
reinstall it if you want it back).
2019-05-01 23:13:06 +09:00
Jordi Mas 5febc9a5d4 Update Catalan translation 2019-05-01 08:48:52 +02:00
Ell 84e183e5ed Issue #3306 - Memory leak using Crop tool
In gimp_canvas_passe_partout_get_extents(), free the inner region
after XORing it with the outer region.
2019-04-30 16:47:00 -04:00
Ell 068df34a27 Issue #3304 - Invalid write when halting filter tool with controller
In GimpFilterTool, properly clean up the controller's widget weak-
pointer and signal-handlers upon destruction, to avoid invalid
memory access when the widget is destroyed, if the widget outlives
the controller.
2019-04-30 16:46:59 -04:00