Commit Graph

54146 Commits

Author SHA1 Message Date
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
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
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
70a065eada Update Portuguese translation 2025-01-31 01:01:55 +00:00
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
f8cc2ff416 Update Dutch translation 2025-01-29 23:37:18 +00:00
e154267462 Update Dutch translation 2025-01-29 23:36:59 +00:00
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
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
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
5d241d39e0 Update Portuguese translation 2025-01-28 22:09:03 +00:00
3ae4db9e71 Update Portuguese translation 2025-01-28 22:06:05 +00:00
5b791691f5 Update Portuguese translation 2025-01-28 22:03:09 +00:00
b197cc08f2 Update Portuguese translation 2025-01-28 22:00:14 +00:00
7c9d1ac6e5 Update Portuguese translation 2025-01-28 21:54:55 +00:00
f1ee6bf1ab .gitlab: omit Container Registry note in Merge Request template 2025-01-28 10:15:09 +00:00
b504ed47ac Update Catalan translation 2025-01-28 11:03:41 +01:00
ccdb73d804 README: update. 2025-01-27 22:12:28 +01:00
50a248d54e INSTALL, meson: update a bit installation docs. 2025-01-27 22:10:35 +01:00
1b34a13535 Update Danish translation 2025-01-27 18:09:30 +00:00
68947df3f1 desktop: AppStream update. 2025-01-27 17:50:39 +01:00
1980dcd0bc NEWS: update. 2025-01-27 17:45:45 +01:00
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
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
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
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
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
dd15b6a9a3 libgimpwidgets: GimpFileChooser should also be start-aligned. 2025-01-26 21:17:33 +01:00
995329ac25 Issue #11261: unify argument widget alignment. 2025-01-26 21:10:29 +01:00
4464537a38 build/linux: Do not distribute 'gegl-imgcmp' on Flatpak nightly
Similarly to 188deedb
2025-01-26 16:22:52 -03:00
f61b98dd98 build/linux: Complete c45a4eed (regarding cfitsio update) 2025-01-26 14:46:12 -03:00
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
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
db2d3cffa2 libgimpwidgets: new GimpFileChooser widget.
This widget will replace our usage of GtkFileChooserButton, except that
it has a title label and also it contains GUI implementation for the
SAVE and CREATE_FOLDER actions (unlike the GTK button). Moreover this
widget was removed in GTK4. So it is a good idea to start encapsulating
such GTK widget anyway.

I'm also adding a propwidget function to create such a widget bound to a
GimpParamSpecFile property.

New functions:

- gimp_file_chooser_get_action
- gimp_file_chooser_get_file
- gimp_file_chooser_get_label
- gimp_file_chooser_get_label_widget
- gimp_file_chooser_get_title
- gimp_file_chooser_get_type
- gimp_file_chooser_new
- gimp_file_chooser_set_action
- gimp_file_chooser_set_file
- gimp_file_chooser_set_label
- gimp_file_chooser_set_title
- gimp_prop_file_chooser_new
2025-01-26 18:13:55 +01:00
ed0d528bdc libgimpbase: add gimp_param_spec_file_set_action().
Ability to change a file param spec action will be useful in the next
commit.
2025-01-26 18:13:55 +01:00
ec4fee282a build/windows: Check for 'sudo' mode when MSIX script is run targeting WACK
https://github.com/microsoft/sudo/issues/108
2025-01-26 11:36:51 -03:00
94938affe6 gitlab-ci: Fix custom Windows pipelines being interrupted
This was a regression introduced by 3da281c4
2025-01-25 22:21:53 -03:00
c45a4eed48 build/linux: Update cfitsio module to 4.5.0 preparing to RC3 2025-01-25 22:13:06 -03:00
1c00380f56 build/linux: Workaround go-appimagetool failing to find 'file' util 2025-01-25 22:03:34 -03:00
8e6e3546a2 gitlab-ci: Do not download 'deps-debian-x64' artifact on plugin tests
babl and gegl binaries are already present on 'gimp-debian-x64' artifact
2025-01-25 22:02:35 -03:00
4065d92972 build/windows: Fix wrong prefix of exiv2 and gexiv2 headers 2025-01-25 19:06:45 -03:00
7b11fe8dba build: Include all headers for use of gimptool 2025-01-25 19:03:55 -03:00
c0cd664fdd gitlab-ci: 'libtool' is not a direct GIMP dependency 2025-01-25 18:57:46 -03:00
0097d34a8f libgimpwidgets, plug-in: Reduce height of Load PDF dialog
This patch does the following to reduce the
height of the Load PDF GUI:
* Hides the title label if the PDF does not
have a title.
* Reduce the padding around elements
* Reduces the requested height of the
GimpPageSelector widget.
* Alter the GimpPageSelector widget so
that the layer/image combobox and the
range entry are on the same line.
2025-01-25 17:27:55 +00:00
fa16da8ef0 NEWS: update. 2025-01-25 16:49:03 +01:00
094414186b libgimp: also hide structs for GimpParamSpec(Display|Drawable|Image|Item).
New libgimp functions:

- gimp_param_spec_display_none_allowed()
- gimp_param_spec_drawable_filter_none_allowed()
- gimp_param_spec_image_none_allowed()
- gimp_param_spec_item_none_allowed()

I believe that now all param spec strucs which needed to be hidden are
effectively hidden!
2025-01-25 16:42:26 +01:00
ae6ab8bc57 gitlab-ci: Move global variables to '.default' hidden job
This makes easier to understand and maintain the default job settings.
2025-01-25 11:01:34 -03:00
0fbfc16da2 gitlab-ci: Organize Debian x64 and AppImage sections 2025-01-25 10:22:38 -03:00
6a57853f7c gitlab-ci: Remove redundant 'needs'
Now, by default, jobs do not depend on any job and
will only depend when expressely configured to.
This reduces some some few lines of redundancy.
2025-01-25 09:44:19 -03:00
edbbb60ea3 Update Bulgarian translation 2025-01-25 11:02:13 +00:00