Commit graph

53352 commits

Author SHA1 Message Date
Alx Sa
bced3c5e04 libgimpwidgets: GimpUnitComboBox and GimpZoomModel...
...are now FINAL TYPEs.
2024-10-22 04:23:46 +00:00
Alx Sa
37d94f3fd6 app/display: Copy filters when layers are dropped on tabs
Resolves issue #12203.
Similar to d87c728f, dragging a layer over to a new image via
the tabs uses gimp_image_new_from_drawable () and only
copies a single layer. This patch adds the filter copy code
here as well.
2024-10-21 22:09:48 +00:00
Alx Sa
1a70e911b1 libgimpwidgets: Add parent instance to GimpPathEditor
The GtkBox parent_instance was left off when the widget
was converted to FINAL TYPE in bd23d5a9.
2024-10-21 13:40:59 +00:00
Massimo Valentini
542d2af2a5 pdb, libgimp: Add API to get/set Emulate Brush Dynamics
This patch adds a pdb getter/setter for GimpStrokeOptions'
emulate-brush-dynamics property. This allows users to change
the "Direction" of strokes via Script-fu/Python API calls.
2024-10-21 10:55:27 +00:00
Alx Sa
d87c728f0d core: Copy filters for new single-layer images
Resolves #12198.
When dragging a layer to the toolbox to create a new
image, we weren't copying over the filters. This is because
that action still uses gimp_image_new_from_drawable ()
rather than the multi-layer capable gimp_image_new_from_drawables ()
function.
For now, we'll fix the immediate problem by implementing the filter
copy code in this function. Long term, we should port that code to
use gimp_image_new_from_drawables () instead.
2024-10-20 19:04:16 +00:00
Tim Sabsch
b05c32e6ea Update German translation 2024-10-20 18:28:02 +00:00
Tim Sabsch
7c7831a3dd Update German translation 2024-10-20 18:26:59 +00:00
Alx Sa
344be9337a plug-ins: Make Legacy Grid colors independent of layer's transparency
Per Anders Jonsson, the grid colors can have semi-transparency even
if the image itself has no alpha channel. This patch always sets the
GeglColor's babl format to contain an Alpha channel, rather than reusing
the image's color format. The index used for alpha is also updated to
adjust to the number of channels, since GimpRGB previously always used
index 3 for both RGB and Grayscale images.
2024-10-20 12:11:30 +00:00
lloyd konneker
5a3d7f1005 ScriptFu: tests: enhance test of gegl wrappers
Call them on different modes of image
and different sizes of image.

Motivated by faults discovered in denoise filter for small images.

No faults detected by new tests.

ScriptFu: tests: enhance testing of gegl wrapper plugins

Add tests on other image modes.

Add tests on small images.
2024-10-19 14:37:39 -04:00
Alx Sa
bd23d5a926 libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
lloyd konneker
0b72b028e8 ScriptFu: fix #12157 old-style dialog slider default 0 instead of declared value
This seems like a hack.
A better fix might be in the gimp_scale_entry widget.
2024-10-18 15:33:44 -04:00
lloyd konneker
6a0844b59a ScriptFu: fix #12188 new-style dialog lacks slider widget
Creates a "custom" widget, slider w spinner,
since otherwise defaults to entry w spinner.
2024-10-18 14:35:17 -04:00
lloyd konneker
f1372acbdc ScriptFu: tests: restore to working condition
No changes except to tests.

After changes to API:
Colormap=>Palette
Vectors=>Path

After changes to ScriptFu handling of color.

Misc upgrade of tests to use-v3 binding
2024-10-18 08:25:42 -04:00
Alx Sa
d2d4d65acb libgimpwidgets: GimpIntRadioFrame is now a FINAL type 2024-10-18 04:17:23 +00:00
Ekaterine Papava
39480776ed Update Georgian translation 2024-10-18 04:15:57 +00:00
Ekaterine Papava
9db757690d Update Georgian translation 2024-10-18 04:14:33 +00:00
Ekaterine Papava
2cf77b1565 Update Georgian translation 2024-10-18 04:12:54 +00:00
Jehan
b06b7e47c1 NEWS: update. 2024-10-17 22:51:11 +02:00
Jehan
65460fc240 libgimpthumb: GimpThumbnail made into a final class. 2024-10-17 22:38:25 +02:00
Jehan
f965b659eb libgimpconfig: gimp_config_(de)serialize_strv() should not be public.
These 2 functions are only used in one file each, there are absolutely
zero reasons to make them public. These functions have nothing special.
2024-10-17 22:38:25 +02:00
Jehan
32034901d2 libgimpconfig: GimpColorConfig is now final. 2024-10-17 22:38:25 +02:00
Jehan
33efebae79 libgimpcolor: GimpColorTransform made final. 2024-10-17 22:38:25 +02:00
lloyd konneker
6f84a76e7a ScriptFu: fix #10978 handling of color
Revise handling of GeglColor, formerly GimpRGB.

Marshall to/from Scheme lists of numeric.
Marshall from string CSS names and notations.

Conversion to/from GRAY, GRAYA, RGB, RGBA.

See color.scm test script.
2024-10-17 18:45:51 +00:00
lloyd konneker
e92212d02a ScriptFu: add tests of Color 2024-10-17 18:45:51 +00:00
lloyd konneker
863bc2b3ed ScriptFu: new doc programmers ref for Color in ScriptFu 2024-10-17 18:45:51 +00:00
Jehan
732adc1f23 libgimpbase: moving GIMP_TYPE_PARAM_CHOICE and GIMP_TYPE_PARAM_EXPORT_OPTIONS…
… in gimpchoice.[ch] and gimpexportoptions.[ch] respectively.

The overlong gimpparamspecs.[ch] makes it harder to read IMO.
2024-10-17 19:41:39 +02:00
Jehan
47470880b2 app, libgimpbase: gimp_signal_private()'s header is now made private.
As other functions, it is still exported, but let make its header not
exposed in public API.
2024-10-17 17:12:30 +02:00
Jehan
ac1bf4a64e app, libgimpbase: also move gimp_cpu_accel_set_use() in a private header.
Similar to previous commit. If we don't want people to use this function
yet need to export it, at least don't expose the declaration in shipped
headers and even less in the API docs.
2024-10-17 16:12:04 +02:00
Jehan
f6edf596bf app, libgimp: move gimp_env_init() to a non-shipped header.
Since we consider it private, yet it's still needed in libgimp and app,
let's at least put it in a private header because there is no need for
people to try it out.

I'm also editing a bit the annotations for gimp_main() and GIMP_MAIN().
2024-10-17 16:11:15 +02:00
Jehan
8ff2682a3c libgimpcolor: the GimpRGB API is dead already. Just remnant files of it. 2024-10-16 22:44:59 +02:00
Jehan
cd71f9ff00 libgimpwidgets: GimpFileEntry now final. 2024-10-16 22:30:49 +02:00
Jehan
4a02c08bfa libgimpwidgets: GimpEnumStore made final. 2024-10-16 22:30:49 +02:00
Jehan
9ff663ccb2 libgimpwidgets: GimpColorSelector and GimpController are abstract. 2024-10-16 22:30:49 +02:00
Jehan
8822ca71a2 libgimpwidgets: GimpColorSelection made final. 2024-10-16 22:30:49 +02:00
Jehan
95b1963723 libgimpwidgets: GimpColorNotebook made final. 2024-10-16 22:30:49 +02:00
Jehan
426caf7132 libgimpwidgets: GimpColorHexEntry made final. 2024-10-16 22:30:49 +02:00
Jehan
555ce20248 libgimpwidgets: GimpColorDisplayStack made final. 2024-10-16 22:30:49 +02:00
Jehan
85c989da1e libgimpwidgets: GimpColorDisplay is an abstract class.
It is a shared API for subclasses and is not meant to be instanciated
directly.
2024-10-16 22:30:49 +02:00
Jehan
ba3f0c73a4 libgimpwidgets: GimpColorArea made final. 2024-10-16 22:30:49 +02:00
Jehan
925faf83ac libgimpwidgets: GimpChainButton now a final type too. 2024-10-16 22:30:49 +02:00
Jehan
03b88d8ac0 libgimpwidgets: GimpCellRendererToggle now final. 2024-10-16 22:30:49 +02:00
Jehan
3728e37553 libgimpwidgets: make GimpBrowser final. 2024-10-16 22:30:49 +02:00
Alx Sa
0a9020bb0a plug-ins: Fix IFS Compose crash related to undos
As part of the color space invasion, we
converted the IFS Compose colors to
GeglColor. However, we forgot to initialize
them when we create a new AFFElement
in undo_update (). As a result, when we
try to clear them out later in aff_element_free (),
the plug-in crashes.
This patch resolves the issues by initializing
the five GeglColors on creation.
2024-10-16 20:01:06 +00:00
Alx Sa
af8cc019e3 core: Rename gimp_drawable_has_filters ()...
...to gimp_drawable_has_visible_filters ().
With NDE filters, it's now possible to have
filters that are not active but still attached
to a layer. This patch renames the API to
prevent confusion as seen in prior
commits.
2024-10-16 14:17:55 +00:00
Alx Sa
c19f6509ea core: Update XCF version even if layer effects are inactive
Similar to afc0a6d1, we need to use gimp_drawable_get_filters () to
get the total number of filters rather than gimp_drawable_has_filters (),
which just returns if any filters in the stack are active/visible.
Because of this, we weren't updating the XCF version to 22 when we
saved a file that had all of its layer effects set to invisible/inactive.
2024-10-16 13:32:56 +00:00
Víttor Paulo Vieira da Costa
e5f217b3d0 Update Brazilian Portuguese translation 2024-10-15 16:35:26 +00:00
Jehan
3cc3688f21 NEWS: update. 2024-10-15 15:38:38 +02:00
Jehan
3ee7a922af Issue #10998: more cases where fg/bg color was not properly updated.
Always update stored colors. When colors are perceptually identical, we
only bypass color rendering code, but not the color value update (even
small value updates need to be echoed across the code, so that what is
shown is always what is set).
2024-10-15 15:23:11 +02:00
Tim Sabsch
56add53473 Update German translation 2024-10-15 05:48:58 +00:00
Alx Sa
ab6f4e9a34 app/tools: Fix split preview when different layer selected
With NDE, we can now edit a filter when another layer is selected. This
broke an assumption in GimpFilterTool that the selected layer is the same
as the layer the current filter is applied to.
This patch fixes the problem by checking if the filter is being editing, and then
using either the filter's drawable or tool->drawables->data accordingly.
2024-10-14 23:58:41 +00:00