Commit Graph

54163 Commits

Author SHA1 Message Date
Alx Sa bcbdf970a6 widgets: Don't check for operation when merging filters
Resolves #12855
Since tool-based filters like Warp Tool do not have operations,
checking them when merging down the active filter stack throws
a CRITICAL. The check was not needed, so it was removed.
2025-02-05 12:58:43 +00:00
lloyd konneker dd59ee088c ScriptFu: test: add tests of gimp-file- methods and image exporters
Tests API not tested previously.

Tests ScriptFu, and more generally, that GIMP can roundtrip read the files it creates.
2025-02-05 06:58:39 -05:00
Sabri Ünal ccb4d81ea2 Update Turkish translation 2025-02-04 17:30:49 +00:00
Sabri Ünal efe839447b Update Turkish translation 2025-02-04 17:28:11 +00:00
Kolbjørn Stuestøl 419ed163ab Update Norwegian Nynorsk translation 2025-02-03 20:58:28 +00:00
Kolbjørn Stuestøl 9353e5f1c4 Update Norwegian Nynorsk translation 2025-02-03 20:54:40 +00:00
lloyd konneker eaa703b8c8 ScriptFu: test: restore to working condition
After recent changes to API:
  some PDB procs now private
  some PDB procs signature changed, arguments reordered

New testing framework functions: testing:layer-new and testing:layer-new-inserted

No changes except to tests.
2025-02-03 09:19:50 -05:00
Jose Riha dd1653e0ff Update Slovak translation 2025-02-02 18:39:28 +00:00
Lloyd Konneker 4b71ca6e44 app/plug-in: fix #12711 app hang on MacOS IO event on empty pipe
This is a bandaid for a situation on MacOS.

When plugin facade in core receives IO event on read pipe from
remote plugin process, check the plugin is in a state where
an IO event is expected i.e. sane.
Otherwise, ignore the event and assume the read pipe is empty.
2025-02-02 17:37:17 +00:00
Anders Jonsson fee4b3f8bb script-fu: fix limit in bump-map calls
Clothify calls gegl:bump-map which has lower limit 0.5 for
elevation, so use the same limit in the plug-in.
2025-02-02 11:59:51 +01:00
Anders Jonsson f715b54015 script-fu: fix modulo error in Waves plug-in
Resolves #12844

As suggested by Alx Sa, rounding the phase argument in waves-anim
is enough to fix the argument error the plug-in would run into when
using certain values for "Number of frames".
2025-02-01 22:31:41 +01:00
Nathan Follens dd8da1e26f Update Dutch translation 2025-02-01 15:20:21 +00:00
Nathan Follens c293704aad Update Dutch translation 2025-02-01 15:20:08 +00:00
Nathan Follens e004841f01 Update Dutch translation 2025-02-01 15:19:55 +00:00
Nathan Follens 33c7325712 Update Dutch translation 2025-02-01 15:19:43 +00:00
Nathan Follens eb08ca2f38 Update Dutch translation 2025-02-01 15:15:00 +00:00
Alan Mortensen ecf33b8113 Update Danish translation 2025-02-01 14:59:51 +00:00
Alx Sa dccc473eb4 script-fu: Update plug-in call to use vectors
Resolves #12842.
Due to API changes, the call to plug-in-animationoptimize in burn-in.scm
requires a vector to be sent rather than an individual layer. This affected the
script when "Prepare for GIF" was selected.
Therefore, the blended-layer argument was converted to a vector.
2025-02-01 14:30:39 +00:00
Alx Sa 7d363d125f python: Use context Palette/Gradient in GUI
Interactive scripts should use the context
palette or gradient rather than the saved
one, as the user is more likely wanting to
edit the gradient or palette they have
actively selected. This is also in line with
how 2.10 operated.
This patch clears out the palette or
gradient property of Python scripts
when the GUI is created, so that it
uses the context version. It does not
affect non-interactive usage.
2025-02-01 02:59:51 +00:00
Alx Sa 553aacbb19 actions: Add timestamp to default performance log filename
ISO 8601 basic format was used for standardization. Windows
does not support colons in filenames, so the more human-readable
extended format could not be used.
2025-01-31 03:46:41 +00:00
Hugo Carvalho 70a065eada Update Portuguese translation 2025-01-31 01:01:55 +00:00
Alx Sa ebc4a245e4 python: Fix Autoslice in Sort Palette after Color Space Invasion
Resolves #12827.
The Autoslice option was not updated to expect GeglColors instead of GimpRGB
arrays after the Color Space invasion. This patch updates the find_index() and
hexcolor() functions accordingly.
2025-01-30 01:52:26 +00:00
Nathan Follens f8cc2ff416 Update Dutch translation 2025-01-29 23:37:18 +00:00
Nathan Follens e154267462 Update Dutch translation 2025-01-29 23:36:59 +00:00
Anders Jonsson 255e942087 python, libgimp: rename gimp_palette_entry_[gs]et_*()
Followup to 151cb9c40c
to make the palette offset and sort scripts work again.
2025-01-29 21:02:22 +01:00
Daniel Novomeský 29c9747222 plug-ins: simplify JXL export options
CMYK is saved with lossless compression. Lossy CMYK is
not recommended by libjxl developers.

libjxl API allows possibility to use lossy compression in original
profile but the compression in this combination of settings
is ineffective, with visible artifacts and discouraged
by libjxl developers. We removed this option.
2025-01-29 14:43:33 +00:00
Alx Sa 1bbf9518de themes: Explicitly define spinbutton and combobox hover colors
Resolves #12821.
GimpSpinButtons (CSS spinbutton class) did not inherit the hover colors of
other buttons, so they did not highlight when hovered over. While comboboxes
mostly did inherit, there were a few odd instances where they were not in the
same hierarchy as other elements with hover colors defined. This patch defines
both explicitly to prevent one-off issues.
2025-01-29 14:40:13 +00:00
Hugo Carvalho 5d241d39e0 Update Portuguese translation 2025-01-28 22:09:03 +00:00
Hugo Carvalho 3ae4db9e71 Update Portuguese translation 2025-01-28 22:06:05 +00:00
Hugo Carvalho 5b791691f5 Update Portuguese translation 2025-01-28 22:03:09 +00:00
Hugo Carvalho b197cc08f2 Update Portuguese translation 2025-01-28 22:00:14 +00:00
Hugo Carvalho 7c9d1ac6e5 Update Portuguese translation 2025-01-28 21:54:55 +00:00
James Addison f1ee6bf1ab .gitlab: omit Container Registry note in Merge Request template 2025-01-28 10:15:09 +00:00
Jordi Mas b504ed47ac Update Catalan translation 2025-01-28 11:03:41 +01:00
Jehan ccdb73d804 README: update. 2025-01-27 22:12:28 +01:00
Jehan 50a248d54e INSTALL, meson: update a bit installation docs. 2025-01-27 22:10:35 +01:00
Alan Mortensen 1b34a13535 Update Danish translation 2025-01-27 18:09:30 +00:00
Jehan 68947df3f1 desktop: AppStream update. 2025-01-27 17:50:39 +01:00
Jehan 1980dcd0bc NEWS: update. 2025-01-27 17:45:45 +01:00
Jehan 679220d8f5 Issue #12568: support GIMP's GEGL operations with a custom config argument…
… in new filter API.
2025-01-27 16:34:11 +01:00
lloyd konneker 79b200335c ScriptFu: interpreter: fix #12810
Interpreter should not override GimpPlugin.set_i18n,
so that translations are found in the interpreted plugin's directory.
2025-01-27 11:45:26 +00:00
Alx Sa 952da49058 widgets: Commit GEGL-based tools before merging
In the initial NDE implementation, we
prevented merging filters if the Warp, Cage,
or Gradient Tool were active to prevent
active tool-based filters from crashing
when cleared.

This patch removes this limitation by
automatically committing the tool before
merging the rest of the filter stack.
This applies the tool-based filter correctly
and then merges the rest of the filter
stack as normal.
2025-01-27 05:42:41 +00:00
Alx Sa af4bf60477 core, tools, widget: Lock filters when editing
When editing a filter, the NDE UI is set to
insensitive so they can't be deleted.
However, closing and reopening the
popover re-enables the options.

This patch adds a new "temporary" boolean
to GimpDrawableFilter. It is only set to
TRUE if the filter is a temporary "editing"
filter. When we reopen the NDE UI, this
checks if the filter stack contains a
temporary filter, and if so, once again locks
the options.
2025-01-27 05:15:12 +00:00
Jehan a353618d53 libgimp: make sure alignment and margin are same for all argument labels.
While fixing individual widget's labels to have proper default is good,
let's also have a centralized re-setting of alignment and margins for
all the labels which we set in the same GtkSizeGroup. This makes nice
and consistent dialogs.

Additionally I set a 4px margin at the end of label (0 elsewhere),
otherwise the longer label in the size group end up sticking too close
to its control widget and it's ugly.
2025-01-26 21:29:21 +01:00
Jehan dd15b6a9a3 libgimpwidgets: GimpFileChooser should also be start-aligned. 2025-01-26 21:17:33 +01:00
Jehan 995329ac25 Issue #11261: unify argument widget alignment. 2025-01-26 21:10:29 +01:00
Bruno 4464537a38
build/linux: Do not distribute 'gegl-imgcmp' on Flatpak nightly
Similarly to 188deedb
2025-01-26 16:22:52 -03:00
Bruno f61b98dd98
build/linux: Complete c45a4eed (regarding cfitsio update) 2025-01-26 14:46:12 -03:00
Bruno 188deedb98
build/windows: Bundle only 'gegl', not 'gegl-imgcmp'
'gegl-imgcmp' seems to be used only for ninja tests.
2025-01-26 14:37:33 -03:00
Jehan 10808f2830 libgimp, plug-ins: create automatically a GimpFileChooser for GimpParamSpecFile arguments.
This new widget is much nicer, with proper label to document the GUI and
also with support to save files or create folders. It also has mnemonic
support and the label is put into the same size group as other so that
it's nicely aligned.

As a consequence, I remove bad support of object arguments with a GFile
value. People should just create proper GimpParamSpecFile arguments
(also GimpProcedure API now has a function only for such type of file
argument).

I also remove gimp_procedure_dialog_get_file_chooser() which was only
useful when we didn't know what action a file argument was for. Now it's
part of the param spec definition.

libscriptfu was updated too because SF-DIRNAME arguments don't need
special casing anymore.

Finally I change gradients-save-as-css to just make use of the new
automatic widget creation (more than 60 lines of plug-in code replaced
by… 0 lines because it's automatic!).

This whole commit is mostly a lot of code removal now that we have
proper automatization for file arguments! \o/
2025-01-26 18:13:55 +01:00