Commit Graph

53443 Commits

Author SHA1 Message Date
5f4464445f libgimp*: keep 10 reserved spots for future virtual functions in every derivable class.
Hopefully this should be enough to add new features in the future
without breaking ABI, at least until GIMP 4!
2024-11-01 17:22:07 +01:00
05795c404b Update Danish translation 2024-11-01 14:59:53 +00:00
dbefe66b9c Update Danish translation 2024-11-01 14:58:37 +00:00
7ba6fb80bf Update Danish translation 2024-11-01 14:58:31 +00:00
3dc1458f5b Update Danish translation 2024-11-01 14:57:01 +00:00
724e317272 libgimpwidgets: GimpFileEntry is not public anymore.
The whole widget was made deprecated in 2006 (commit 99f979e118) but it
is still being used by another widget. Since we can break API, I at
least hide the functions and type by making these private.

This will give us time to think if we really need this widget (or a
nicer implementation for this widget) or if we just want to get rid of
it.
2024-10-31 19:54:43 +01:00
173d7640b7 plug-ins: Clean up BMP plug-in
This patch adds additional error handling
to the BMP plug-in. It also translates certain
variable names from German to English,
replaces magic numbers with existing
constants, and simplifies some formulas.
2024-10-31 17:31:17 +00:00
9d5ece437d Update Brazilian Portuguese translation 2024-10-31 11:16:55 +00:00
f57b831eaf Issue #12117: undo history corruption. 2024-10-30 19:14:21 +01:00
39e1b409a3 meson: preparing accepting -RC<num> at the end of the project()'s version string. 2024-10-29 13:02:44 +01:00
2076541011 INSTALL: update.
* Don't mention 2.99 anymore.
* GIMP_PKGCONFIG_VERSION was actually the version of libgimp regarding
  our .pc file, not our pkg-config requirement (per the commit removing
  autotools scripts). Now it looks like our pkg-config minimum
  requirement used to be version 0.16, but I didn't add this check back.
  Let's assume just saying "a recent version" in the INSTALL file is
  enough, without hard-check in meson.
* Simplify the end part about failed configuration or optional features,
  with a link to our build tutorial online instead of getting into
  details and advices to set LDFLAGS or CPPFLAGS (which to be fair, am
  not sure are very good advices at all in fact!).
* Fix a few more details.
2024-10-29 13:01:07 +01:00
08ddc9fe96 app/widgets: Hide the layer search button on non-layer dockables
Currently the search feature in the Layer dockable is also visible on
the Paths and Channels dockable as well. However, it has hardcoded
strings that refer to layers, and it uses gimp_item_list_get_items_by_substr ()
which only works on layers. We should hide it for 3.0RC1 and implement
it for the other two ItemTreeView children afterwards.
2024-10-29 01:45:43 +00:00
a38d4d2222 authors: update.
I'm surprised that Idriss and Shubham were not already in the file!

Also adding Denis for his design work, and Sevenix for the splash
screen.

Bruno was added for the awesome work in packaging and CI. Even though
it's not GIMP itself, it definitely counts as code and original work.

I didn't add the new GSoC contributors because Varun's work is
essentially in GEGL (which has its own credits) and there was no major
original feature pushed by Cheesequake unfortunately, only bugfixes. So
I'm unsure if we can add them.
2024-10-29 01:28:47 +01:00
b57fae7873 README: update for the upcoming RC1. 2024-10-29 01:12:13 +01:00
d9710697d6 build/linux: Sync with beta manifest updating some modules
Ported from: f381737705

This updates openexr, libdeflate, poppler and suitesparse, after testing them.
2024-10-28 20:40:50 -03:00
496c799e2e Issue #3015: Space invasion: Using Levels Pick white point for all…
… channels doesn't work.
2024-10-29 00:27:22 +01:00
366ba98efe Issue #11675: Fade x Jitter dynamics now sync correctly at every step 2024-10-28 22:40:51 +00:00
7d6a7552ec NEWS: update. 2024-10-28 22:17:14 +01:00
86f588224b libgimp, libgimpbase: create special functions to get/set boxed array properties.
While the work on NULL-terminated array types make it much easier in C,
bindings don't have enough information to create native array/list types
in some generic functions such as g_object_get|set(), or else we just
don't know the right annotations to use for this to be possible. This is
report gobject-introspection#492.

So for the time being, we are creating dedicated functions for GeglColor
arrays and for other core object arrays (arrays of images, items, etc.).

E.g. in Python, while you can set a single GimpImage like this:

> config.set_property('image', image)

… you need to set a list of images like this:

> config.set_core_object_array('images', [image1, image2])
2024-10-28 22:08:45 +01:00
a42142d5a0 libgimpwidgets: delete unused variable.
Checking the log, it looks like this code has not been touched since
2007, so whatever this various was used for, it's clearly not been used
for a long time.

Fixes warning:

> libgimpwidgets/gimpcairo-utils.c:80:16: warning: variable 'total_length' set but not used [-Wunused-but-set-variable]
2024-10-28 22:08:45 +01:00
b01b2e2683 plug-ins: comment out unused function.
Fix warning:

> plug-ins/file-dds/dxt.c:113:1: warning: unused function 'pack_rgb565'

I don't just remove it as I guess it may be of use at some point for a
not-yet fully implemented feature yet?
2024-10-28 22:08:45 +01:00
8900967a81 extensions, libgimp, plug-ins: remove n_drawables arg from GimpImageProcedure's…
… run() function.

This is more consistent with recent changes in PDB, and now the
drawables argument is NULL-terminated.
2024-10-28 22:08:45 +01:00
ea5824ebd7 app, libgimp, pdb: fix other int sizes.
Avoid the stack smashing bug from yesterday in other functions.
Additionally to fixing other functions, do not cast the pointer to size
in the PDB generation scripts so that we can quickly spot such bugs in
the future, through compilation time warnings, instead of hiding them.
2024-10-28 22:08:45 +01:00
a350efeeb1 meson,app: depend on babl-0.1.110 2024-10-28 21:48:49 +01:00
a254fb7710 Update Norwegian Nynorsk translation 2024-10-28 18:08:46 +00:00
a58a094504 Update Norwegian Nynorsk translation 2024-10-28 18:04:28 +00:00
c093837bda scripts, pdb: Consolidate gauss and pixelize compat functions
Currently there are 5 separate plug-in-gauss
functions. IIR2 and RLE2 are not used, and
IIR and RLE are identical to each other.
Additionally, they all call a separate
gaussian_blur () function which multiples
two parameters by 0.32 to convert to the
actual GEGL operation.

This patch removes all functions except
for plug-in-gauss. It converts each
existing script that used one of the other
variants to use plug-in-gauss, and
multiples the coefficients by 0.32 so that
plug-in-gauss behaves the same as calling
gegl:gaussian-blur with a C plug-in.

There also exists a plug_in_pixelize2 ()
function in the PDB which allows the user to set
both the pixel width and height.
This patch converts this to become
plug_in_pixelize (), and removes the older
function which used a single width
parameter for both values.
2024-10-28 04:39:39 +00:00
00753ef4fe NEWS: update. 2024-10-28 02:14:08 +01:00
e02b8819e5 app, libgimp, pdb: fix “Stack smashing detected” crash.
Building with clang and various stack protection flags (as is done in
our flatpak apparently), we can trigger a crash when a gint on the stack
is set as a pointer to gsize.
Anyway now all array size must be gsize.

See: https://discourse.gnome.org/t/problem-with-select-polygon-in-gimp-2-99/24753
2024-10-28 02:03:57 +01:00
4ee549b4eb plug-ins: link file-fits with libm.
When linking with clang/lld, I had the following linking error:

> ld.lld: error: undefined symbol: pow

As a side change, also adding math.h header include, even though it
didn't seem to break compilation. Just to be thorough.
2024-10-28 01:20:55 +01:00
69ebc25feb plug-ins: port gegl.scm to new array format with no size arg. 2024-10-28 00:42:38 +01:00
752dd40592 build/windows: Cosmetic changes to crossroad scripts 2024-10-27 19:53:19 -03:00
c229e43744 build/windows: Complete 76f174f8 (regarding Installer .ps1 simplification) 2024-10-27 22:48:41 +00:00
d018dd47fb Update Swedish translation 2024-10-27 22:46:07 +00:00
92ae145e0d plug-ins: warning cleanup.
Fixing:

> plug-ins/script-fu/libscriptfu/tinyscheme/scheme.c:134:1: warning: no previous declaration for ‘set_outport’ [-Wmissing-declarations]
2024-10-27 23:44:50 +01:00
8addfb1ec0 Update Swedish translation 2024-10-27 22:44:18 +00:00
abbbd3ad3a Update Swedish translation 2024-10-27 22:43:29 +00:00
008e756a34 Update Swedish translation 2024-10-27 22:42:17 +00:00
0b4d104c15 app: use gdk_seat_grab() instead of deprecated gdk_device_grab().
Additionally to fixing a deprecation, I also ensure that we don't limit
pointer source to what the system considers the "Core Pointer" on
Wayland.

It is another bug similar to #8016 and possibly what !924 was trying to
fix, even though it turned out this was not the same problem which I
initially reported. In this other variant, when you were hitting Space,
it would originate from the "Core Keyboard" which was associated to a
"Core Pointer". On a laptop, this Core Pointer could be the trackpoint
for instance (in my case) so you could pan with Space + trackpoint move.
Yet say you add a graphics tablet, which is a separate pointer: you
could not pan with Space + stylus move!

Now you can, because when we are pan-spacing, events from all pointer
sources are accepted. Only when the panning comes from a pointer source
(middle click) do we listen only events from this same pointer device.
2024-10-27 23:00:30 +01:00
3a8825cf06 Revert "app: Don't grab the pointer when doing scrolling"
This reverts commit 413cf9ad85.

As discussed with mitch during last Wilber Week, and commented in !924,
the fix was creating new problem and was not right. We definitely want
to grab pointer events when panning (or other similar interactions).

Also I think I had not tested under Wayland back then, only verified I
didn't see any huge issue on X11, but the commit did not in fact fix the
original issue #8016 (this time, I verified!). The problem I was
encountering seem to be more in how Wayland works + libinput, not giving
full control on input devices to applications and trying to be "smart"
with an option ("Disable Touchpad While Typing") which is often useful,
but other times counter-productive (e.g. in GIMP when we want to
space-panning — which should not be considered typing —, or again
shortcuts in video games, and so on).
2024-10-27 22:58:01 +01:00
d6f015a6df app: fix forgotten change after removal of num-drawables argument. 2024-10-27 22:55:51 +01:00
846a8f6e98 gimp-data: update the submodule to latest.
Apart from various structural or script improvements, we now have vector
icons for all tool icons in the Legacy icon theme (#887).
2024-10-27 22:55:51 +01:00
97fb23e5b3 plug-ins: python-fu-eval should correctly exit with error.
When the passed code had a bug, the plug-in was crashing along with the
code given in argument. Instead, we must catch all exceptions and pass
the error message raised by exec() to the core application.
2024-10-27 22:55:51 +01:00
8cf1aaf40f Issue #12216: fix crash on switch to MWM
Since commit 4e499810, GIMP could crash on switching to
multi-window mode on X11 Linux systems.

As suggested by Alx Sa it is enough to add a NULL check for
shell to avoid the crash.
2024-10-27 15:37:06 +00:00
2db868ab50 gitlab-ci: Do not forbid custom crossbuild pipelines
Manual pipelines can be useful. Blocking them was an error from b3b466dc.
2024-10-27 07:59:57 -03:00
9ab481647c build/windows: Port building scripts to use Windows native shell
From now, Windows contributors can use the default shell provided by the OS
(which is PS since Windows build 10.0.14971.0), like Linux and macOS users do.
We still use MSYS2 but not the POSIX shell. This change adds these features:

'1_build-deps-msys2.sh' is now '1_build-deps-msys2.ps1'
- Faster clonning by using 'git-scm' (the MSYS2 one had performance problems)
- Easier to use non-MSYS2 binaries, not only 'git-scm' but also official meson,
  deps from vckpg etc. This is a needed step towards the future use of MSVC.

'2_build-gimp-msys2.sh' is now '2_build-gimp-msys2.ps1'
- By default, vanilla builds (normally triggered on PS) will create a bundle,
  dropping the need of 'gimp.cmd' (that adressed .typelib and .interp limits),
  which is inline with other (Cmake-based) projects like Darktable and Inkscape.
  This change is important because even Windows devs more experienced than me
  get confused with the relocatibility stuff, which is the default on Windows.

'2_bundle-gimp-uni_base.sh'
- As a result of the change above, bundling code was changed to be a bit faster.
  It still is, however, painfully slow, since meson doesn't have a 'install()'
  function like Cmake to prepend targets in Ninja's 'install_manifest.txt'.

Since we are not using a POSIX shell (nor 'mintty') anymore:
- GIMP can be built from every path easily with R. Click "Open Terminal", with
  IDE integrations etc, without needing to manual tweak MSYS2 .ini files etc.
  We could tweak MSYS2 to get the features above but not top-tier integration.
- Developers can be more aware of Windows native vars, paths etc, and avoid bugs
  Some build files were improved to support the 'Windows way of doing things'.
- No need to close and reopen terminal anymore after running 'pacman -Suy'!

---

REGRESSION: Vala plug-ins are temporarely gone due to 'vapigen' bugs, a small
regression since this is a gnomeish language but I will investigate how to fix.
2024-10-26 22:26:48 -03:00
a01dc47983 dialogs: Use correct enum for Metadata Rotation Policy
In 41894be7, GIMP_COLOR_PROFILE_POLICY_KEEP was accidentally
used instead of GIMP_METADATA_ROTATION_POLICY_KEEP as the
possible output of gimp_image_metadata_rotate_dialog ().
Fortunately they are currently the same value, but it would be best to
return the right enum type.
2024-10-26 20:12:45 +00:00
428763591f widgets: Remove icon border on GimpControllerEditor dialog
GimpControllerEditor's "Select Controller Event Action" dialogue has
a border around the standard icon. This is because it uses a GimpViewableDialog,
which normally shows the current image or layer as the right side icon (and thus
needs a border to potentially distinguish).
Since this is a special case, this patch retrieves the GimpViewRenderer for the icon
and then sets the border color to transparent.
2024-10-26 14:40:35 +00:00
bdcf1ba22f ScriptFu: scripts: add Clothify v2 back as a test plugin
After we converted most scripts in the repo to use new registration functions,
there are no *filters* left from version 2.

But version 2 filters are still supported, with a warning
to the console like "image procedures ... only one drawable ... are deprecated."

A version 2 filter uses
the deprecated registration function script-fu-register
and declares args img and drawable (singular) explicitly
(contrary to encouraged multi-layer capable.)

Until we actually obsolete scripts of this ilk,
we need this test plugin for testing.
2024-10-26 07:08:44 -04:00
da98eabc8a Updated Greek translation 2024-10-26 08:37:17 +03:00