Commit Graph

48321 Commits

Author SHA1 Message Date
Alan Mortensen 940cd267f8 Update Danish translation 2022-04-28 16:26:19 +00:00
Jehan f0dc690935 app: improve a bit the restart-triggering change list.
When you change a settings in Preferences which requires a restart of
GIMP, the current list was pretty ugly. I am still not fond of the popup
but at least now the list formatting is slightly better:

- Use a unicode bullet point character in UTF-8 encoding (since
  gtk_message_dialog_new() expects UTF-8 input) on each list element,
  instead of just writing them without any kind of formatting.
- Use the "nick" of the changed config, not the name. The "name" is an
  internal string which is really not meant to be viewed by people,
  while the "nick" is more like a short human-readable name or title,
  exactly what we want to show here.
2022-04-27 15:35:33 +02:00
Jehan 82f9ae1ab7 app: force re-querying all plug-ins after a language change.
Some strings might be generated during query() call, in particular all
strings related to procedure parameters. The core will only know the
localized version at query() time, so you could end up in situation with
the core showing you the wrong language. This can be reproduced in the
Procedure Browser when it shows localized procedure data: when you
change the language and restart GIMP, if the plug-ins aren't re-queried,
then it will still show the localization of query time.

Note that it doesn't matter on plug-in side, i.e. anything in the run()
call is properly localized, included the plug-in GUI using the same
procedure parameters for widget labels or tooltips. Only the "vision" of
the core is stuck at what it got when the plug-in was last queried, and
until the next update of the plug-in.
2022-04-27 15:22:32 +02:00
MohammadSaleh Kamyab 717a4a7cb1 Update Persian translation 2022-04-27 11:01:47 +00:00
Hugo Carvalho 2364c179ba Update Portuguese translation 2022-04-27 10:43:59 +00:00
Yuri Chornoivan 080dcfac98 Update Ukrainian translation 2022-04-27 07:24:36 +00:00
Jehan 8d37584ea3 NEWS: update. 2022-04-27 02:19:54 +02:00
Jehan b904d67af7 plug-ins: localize file-png-save parameters.
Small text tweaks done too:
- Some question marks removed to be more consistent in the tooltip
  style.
- The "save-transparent" only applies to *completely* transparent pixels
  (not partially transparent).
2022-04-26 23:35:41 +02:00
Jehan c3cc859a88 libgimpwidgets: fix label vertical alignment of GimpSpinScale.
Let's not try to align anymore the label text with the value (numbers
inside the GtkEntry) text. Our previous offset computation was wrong
anyway, but even correctly aligning the text, there could be cases where
the label's actual font was bigger than the number's font.

I had the case with GIMP set in Korean. The number text was 11-pixel
high but the Hangul text on 16 pixels in plug-ins using a GimpSpinScale,
most likely because the font used for numbers didn't have Hangul glyphs.
So we ended up with very ugly scale title on the bottom of the widget,
even out of the progress area. Instead, we just make sure that the label
is exactly in the vertical middle of the widget, disregarding the entry
layout's offset.
2022-04-26 23:06:51 +02:00
Yuri Chornoivan ba6ec46178 Update Ukrainian translation 2022-04-26 17:38:01 +00:00
Jehan b5fbe84b09 plug-ins: localize file-webp parameters' titles/docs.
Also changing "RGB->YUV" by using a real Unicode rightward arrow encoded
in UTF-8 since GTK functions (such as `gtk_widget_set_tooltip_text()`)
explicitly uses UTF-8 encoded strings as argument. This renders much
more nicely than an ASCII-made arrow.
2022-04-26 19:09:04 +02:00
Jehan ada64be8cd plug-ins: new "use-sharp-yuv" param only relevant when non "lossless".
Cf. question to libwebp devs and also grepping the code directly:
https://bugs.chromium.org/p/webp/issues/detail?id=567#c6
2022-04-26 17:18:40 +02:00
Nikc df402522ef Plug-ins: Add "Use Sharp YUV" for webp export 2022-04-26 12:46:33 +00:00
Jordi Mas c2badc8cb1 Update Catalan translation 2022-04-25 21:30:06 +02:00
dimspingos 89d7bd2b13 Updated Greek translation 2022-04-25 21:33:07 +03:00
Jacob Boerema cd4401fee4 plug-ins: fix integer overflow in print-draw-page.c
As mentioned by Massimo in issue #6618, part of the problem there is an
integer overflow when using large size images when computing the offset
in pixels.

Let's fix our part of the problem by casting to guint64.
Besides that, also use casts to correctly compute progress for very
large images.
2022-04-25 14:21:18 -04:00
dimspingos d72cead60b Updated Greek translation 2022-04-25 15:41:42 +03:00
Zurab Kargareteli 2e07b2d5cc Add Georgian translation 2022-04-25 09:16:46 +00:00
Alan Mortensen c0461ea955 Update Danish translation 2022-04-24 17:11:16 +00:00
Alan Mortensen 1688eb82d3 Update Danish translation 2022-04-24 17:10:48 +00:00
Zurab Kargareteli 54cdeef950 Add Georgian translation 2022-04-23 18:47:21 +00:00
Zurab Kargareteli b1b4f288ad Update Georgian translation 2022-04-23 16:31:27 +00:00
Fran Dieguez 9cdd99c2ca Update Galician translation 2022-04-21 21:24:15 +00:00
Jordi Mas eebb207efd Update Catalan translation 2022-04-21 22:41:41 +02:00
Jehan c06083158a Issue #8102: crash when using the clone tool.
So it turns out that the "notify::src-drawables" property signal in
particular can happen during gimp_paint_tool_paint_interpolate() called
from gimp_paint_tool_paint_thread(). Though the function
gimp_clone_options_gui_update_src_label() was run in the main thread in
simple cases, being called this way through a paint thread happens when
very quickly changing the source while painting, which is what Aryeom
does (when I see her using the clone tool, she would sometimes change
the source very quickly several times in barely a few seconds).

Yet GTK and GDK calls must not happen in non-main threads. It used to be
acceptable when protected with gdk_threads_enter|leave() calls but doing
this is deprecated. The now sanctioned method is to call the GTK code in
an idle function since these are guaranteed to run in the main thread.

This was most likely explaining why crashes could quite randomly happen,
though I'm not sure why I never had those (even though I could reproduce
the GTK calls happening in non-main threads, but without crashing GIMP)
and why Aryeom gets these much more often suddenly. Maybe some recent
dependency change which would trigger these more easily or other
context-dependant changes (as most non thread-safe code, bugs and crash
often happen in race conditions, so are harder to reproduce reliably)?
2022-04-21 19:13:01 +02:00
Claude Paroz cad8cdeb36 Update French translation 2022-04-21 08:44:10 +00:00
Claude Paroz 0d0e02433c Update French translation 2022-04-21 08:40:30 +00:00
Jehan 1a840b8e18 libgimpcolor: fix call to cmsCreateProofingTransform().
Wrong argument order! See Little-CMS API.
2022-04-20 20:54:20 +02:00
Boyuan Yang f19f940916 Update Chinese (China) translation 2022-04-20 13:51:47 +00:00
Yuri Chornoivan 506c18e3a0 Update Ukrainian translation 2022-04-18 11:23:11 +00:00
Rodrigo Lledó c4610f6671 Update Spanish translation 2022-04-18 09:59:43 +00:00
Rodrigo Lledó 35a74f2b62 Update Spanish translation 2022-04-18 09:26:48 +00:00
Hugo Carvalho 3a6e3a3638 Update Portuguese translation 2022-04-17 21:42:20 +00:00
Hugo Carvalho da48c5b646 Update Portuguese translation 2022-04-17 21:32:38 +00:00
Jehan f200594d1c plug-ins: support CMYK import/export for JPEG.
We already had import support through littleCMS. We now use fully
babl/GEGL which makes our code more straightforward and identical,
whichever the input format.

The export support is totally new. It comes with a checkbox to propose
selecting CMYK export and a label displaying the CMYK profile which will
be used.

Now this whole implementation has a few drawbacks so far, but it will be
a good first sample for future CMYK-related improvements to come:

* The export profile I am using is what we call the "simulation
  profile" from the GimpColorConfig. This corresponds to the default
  "Soft-proofing" profile as set in Preferences. In particular, this is
  not the actual soft-proofing profile for this image which might have
  been changed through the View menu because this information is
  currently and unfortunately unavailable to plug-ins. It is not the
  "Preferred CMYK Profile" either, as set in Preferences.
  TODOS:
  - We really need to straighten the soft-proof profile core concept by
    storing it in the image and making it visible to plug-in.
  - Another interesting improvement could be to create a
    GimpColorProfile procedure argument which would be mapped to a color
    profile chooser widget, allowing people to choose profiles in
    plug-ins. For an export plug-in in particular, it could allow to
    select a profile different from the soft-proof one at export time.
* When we export, if no profile is choosen, babl will use a naive
  profile. It would be nice to store this naive profile into the JPEG if
  the "Save color profile" option is checked (same as we store a generic
  sRGB profile when no RGB profile is set).
* When we import, we just import the image as sRGB. Since CMYK gamuts
  are not necessarily within sRGB (some part of the spectrum is usually
  well within, but other well outside), other than the basic conversion
  accuracy issue, we may lose colors. It would be much nicer to be able
  to select an output RGB profile. Optionally if we could create a RGB
  color space which is made to contain the whole input CMYK profile
  color space, without explicit choice step, it would be nice too.
* I am using babl's "cmyk" format, not the expected "CMYK" format.
  "cmyk" is meant to be an inverted CMYK where 0.0 is full ink coverage
  and 1.0 none. Nevertheless when loading the resulting JPEG in other
  software (editors or viewers alike), the normal CMYK would always
  display inverted colors and the inverted cmyk would look fine.
  Finally I found a docs from libjpeg-turbo library, explaining that
  Photoshop was wrongly inverting CMYK color data while it should not.
  This text dates back from 1994, looking at the commit date which
  introduced this paragraph. In the 28 years since then, could this
  color inversion have become the de-facto standard for JPEG because one
  of the main editor would just output all its JPEG files this way?
  See: dfc63d42ee/libjpeg.txt (L1425-L1438)
2022-04-17 23:14:20 +02:00
Jehan 1ccdf467fb INSTALL, NEWS: the macOS build is now officially using meson too.
See MR gimp-macos-build!97.
2022-04-17 15:06:16 +02:00
Jehan c1d2f35b73 app, plug-ins: redirect plug-in-script-fu-eval to text console in…
… plug-in code.

In particular, we should not hardcode this in core code anymore. The
behavior is otherwise exactly the same, except that we made the core
code generic as it should be.
2022-04-17 14:25:44 +02:00
Yuri Chornoivan 16784c0081 Update Ukrainian translation 2022-04-17 06:15:55 +00:00
Jehan 471ae86f3d NEWS: update. 2022-04-17 00:29:23 +02:00
Jehan 3524fe8fa9 app: improve a bit the output for batch interpreters.
Specifying the --batch-interpreter option seems like it would really
help people better understand what is missing.
2022-04-16 23:36:50 +02:00
Jehan de1d71bb3f app, libgimp, pdb, plug-ins: batch CLI options now interpreter aware.
The CLI options now know which procedures are batch procedures or not.
First it means that it won't just randomly try any procedure name one
may pass and will properly output an error if you pass a non-existing
interpreter procedure.

Secondly, there is no default interpreter anymore (unless only one
interpreter exists). If you don't set an interpreter procedure with
--batch-interpreter or if you pass a wrong one, it will output the list
of available batch procedure, thus helping you understanding how to use
the --batch option.
2022-04-16 23:28:05 +02:00
Jehan 06ae6a81a2 libgimp: fix def file.
Even in 10 years, I'll probably forget this annoying def file! Ahahah.
2022-04-16 20:45:47 +02:00
Jehan 0555a6815e plug-ins: port plug-in-script-fu-eval to GimpBatchProcedure. 2022-04-16 18:50:29 +02:00
Jehan 752cbd1377 plug-ins: port python-fu-eval to GimpBatchProcedure. 2022-04-16 18:50:29 +02:00
Jehan 52b7273294 app, pdb, libgimp: new GimpBatchProcedure class.
This new class will be used to register procedures usable for batch
processing.
2022-04-16 18:50:28 +02:00
Hugo Carvalho d815250043 Update Portuguese translation 2022-04-16 16:15:24 +00:00
Yuri Chornoivan 96a831efb0 Update Ukrainian translation 2022-04-16 16:01:17 +00:00
Charles Monzat 9875cfe2c9 Update French translation 2022-04-16 13:32:02 +00:00
Jehan 46a335b68e app: exit GIMP more cleanly when quitting immediately after batch calls.
Call gimp_exit() rather than emitting the signal ourselves. This way in
particular, the still-opened images are properly freed and we avoid
GeglBuffer leaks from images we might have created in a batch script, or
the images loaded in command lines.
2022-04-16 15:02:51 +02:00
Rodrigo Lledó 296772f4d9 Update Spanish translation 2022-04-16 11:13:58 +00:00