Commit Graph

45694 Commits

Author SHA1 Message Date
Jehan 0593cf4c9e app: add concept of multi-selected layers in GimpImage.
Still the very base of the feature, mostly in test mode.
2020-05-17 18:32:15 +02:00
Jehan b487087429 app: add concept of selected items in GimpItemTree.
Instead of a single active item, we now have a list of selected items. I
keep the concept of "active" item (for now at least) when there is one
and only one item selected.

Also note that when inserting an item into the active parent's
container, it now requires all selected items to have the same hierarchy
(same parent). Same when adding on top of the selected items (in which
case, it means on top of the highest one).
2020-05-17 18:32:15 +02:00
Piotr Drąg 68ab11b813 Update Polish translation 2020-05-17 12:40:37 +02:00
Ell 0a06294af7 app: fix CRITICAL when using "show all" by default
When using "show all" by default, gimp_display_flush() can be
called during GimpDisplayShell construction, before the newly-
constructed shell is assigned to the display.  Use an ugly hack to
just ignore the flush when this happens.
2020-05-16 15:55:31 +03:00
Ell bc13dc80dd app: update display-enums.c 2020-05-16 15:55:31 +03:00
Ell 1171798ca6 app: another fix in GimpToolFocus 2020-05-15 13:39:51 +03:00
Ell 2fcf667efd app: various fixes in GimpToolFocus 2020-05-15 12:34:01 +03:00
Yuri Chornoivan 80f2d293f7 Update Ukrainian translation 2020-05-15 09:20:49 +00:00
Niels De Graef b14b93de14 Split GIR into Gimp-3.0 and GimpUi-3.0
Fixes https://gitlab.gnome.org/GNOME/gimp/-/issues/4065
2020-05-15 07:45:25 +00:00
Simon Budig f55acc1d65 app: fixed oversight in the canvashandle bounding box. 2020-05-15 03:02:15 +02:00
Simon Budig 000bc5fff4 gimptoolpath: use drop shaped handle to indicate the start of a stroke. 2020-05-15 02:46:49 +02:00
Simon Budig 44352cb769 gimpcanvashandle: implement drop shaped handle 2020-05-15 02:46:49 +02:00
Simon Budig 4394b92c71 Issue #1439: reverse the construction of the "selection to path" plugin. 2020-05-15 02:46:49 +02:00
Niels De Graef 484e9afb22 app/text: Fix const warning
You shouldn't rely on GObjects being `const`, since a reference count
operation does not respect that. That being said, this fixes a warning,
for a keyword that seems to be redundant here.
2020-05-15 00:26:30 +02:00
Ell 9fe589734b app: fix signature of gimp_canvas_limit_new()
... and gimp_tool_widget_add_limit().
2020-05-15 00:55:59 +03:00
Ell 60d4d25b93 app: add gegl:focus-blur to Filters -> Blur
gegl:focus-blur blurs the image around a focal point.  It can be
used to create fake depth-of-field effects.

Add a prop-gui constructor which uses a FOCUS controller to control
the focus geometry.
2020-05-15 00:48:39 +03:00
Ell 721f2d8c27 app, menus: add gegl:variable-blur to Filters -> Blur
gegl:variable-blur applies a blur with a per-pixel radius
controlled by a mask.
2020-05-15 00:48:39 +03:00
Ell f6f0a8a2d8 app: add FOCUS controller to gegl:vignette
Add a prop-gui constructor to gegl:vignette, using a FOCUS
controller to control the op's geometry.
2020-05-15 00:48:39 +03:00
Ell 3a62c53009 app: add FOCUS prop-gui controller
... based on GimpToolFocus.
2020-05-15 00:48:39 +03:00
Ell 5e005a762c app: add GimpToolFocus tool widget
Add a new GimpToolFocus tool widget, which defines a focus region,
consisting of an inner limit, an outer limit, and a transition
midpoint between them.  The widget allows controlling the limits
and the midpoint, and moving, scaling, and rotating the region.
2020-05-15 00:48:37 +03:00
Ell 1a8f0b6cd6 app: add gimp_tool_widget_add_group()
... which adds a regular (non-filling, non-stroking) canvas-item
group to the widget.
2020-05-15 00:38:47 +03:00
Ell 8c1a277007 app: add gimp_display_shell_constrain_angle()
... which constrains an angle to discrete increments in screen
space, similarly to gimp_display_shell_constrain_line().
2020-05-15 00:38:47 +03:00
Ell 06a2b4f338 app: add GimpCanvasLimit canvas item
Add a new GimpCanvasLimit canvas item, which draws an area limit
for different shapes.  It will be used by the following commits to
implement GimpToolFocus.
2020-05-15 00:38:47 +03:00
Ell c73710e410 app: in GimpDrawTool, update widget on tool resume
In GimpDrawTool, update the tool widget on GIMP_TOOL_ACTION_RESUME,
so that it can respond to changes in the display-shell scale/
offset.  We'd previously done that for individual tools/widgets,
but let's just do it in one place.
2020-05-15 00:38:47 +03:00
Ell cd5e4e99dd app: pause/resume active tool when rotating canvas
In GimpDisplayShell, pause and restore the active tool when
rotating the canvas, similarly to scrolling and scaling.
2020-05-15 00:38:47 +03:00
Ell 1bf9d1ba53 app: allow arbitrary aux inputs in GimpOperationTool
In GimpOperationTool, don't limit aux inputs to "aux".."aux32", and
rather list all aux inputs the op has.
2020-05-15 00:38:47 +03:00
Dimitris Spingos (Δημήτρης Σπίγγος) 32bd008a1e Updated Greek translation 2020-05-14 23:33:02 +03:00
Niels De Graef 0352559efa meson: Allow running tests headless
This commit makes sure we can properly run the tests in a headless
environment, i.e. they don't mess with the user's X display or their
session bus. The latter is also needed for parallel tests as they fail
to simultaneously own the same name on the session bus.

Replaced the "xvfb-run" meson option with the "headless" option, which
is more intuitive (and also more correct, since we now also require
`dbus-run-session` to run the tests, not only `xvfb-run`).

Finally, note that we need a version of `xvfb-run` that supports the
`-d` (`--auto-display`) option. The problem with `--auto-servernum`
which is also regularly used, is that it doesn't shut down cleanly,
returning a non-zero exit code, wich makes the test fail.

Fixes https://gitlab.gnome.org/GNOME/gimp/-/issues/5078
2020-05-14 18:31:08 +02:00
Jehan b11e529316 app: fix a few warnings.
Fixes:
> warning: passing argument 1 of ‘gimp_list_get_sort_func’ from incompatible pointer type

Since commit f4c6d4bb79.
2020-05-14 17:01:13 +02:00
Cristian Secară c687c5631d Update Romanian translation 2020-05-14 13:50:05 +00:00
Jehan a8e6412ee6 Issue #5073: just skip all plug-ins/pygimp/ from POTFILES.
For now the whole pygimp folder is considered deprecated and will
probably end up removed (though there are some discussions and a merge
request to possibly revive it, we'll see!).
2020-05-13 12:55:45 +02:00
Dimitris Spingos (Δημήτρης Σπίγγος) 06014e9df0 Updated Greek translation 2020-05-13 09:08:41 +03:00
Cristian Secară 6eb14fcdac Update Romanian translation 2020-05-13 06:02:12 +00:00
Niels De Graef ec7db847d0 docs: libgimp3: Add missing GimpProgressVtable*Func
We added these entries for the GObject introspection annotations, but
forgot to add them to the gtk-doc sections.
2020-05-12 22:55:19 +02:00
Anders Jonsson b537a2ab39 Update Swedish translation 2020-05-12 20:45:23 +00:00
Niels De Graef 2afcca4e13 gimpcurve: Use g_object_notify_by_pspec
From commit 529aa743:

> `g_object_notify()` actually takes a global lock to look up the
> property by its name, which means there is a performance hit (albeit
> tiny) every time this function is called. For this reason, always try
> to use `g_object_notify_by_pspec()` instead.

While just _loading_ GIMP on my machine (ie during the splash screen)
`g_object_notify (curve, );` got called more than 6000 times already, so
it's not an unused path.

Note that it's also less easy to make an accidental typo when using
`g_object_notify_by_pspec()`, as the compiler will complain about the
enum value being incorrect.
2020-05-12 22:38:41 +02:00
Yuri Chornoivan 64c5ce71ee Update Ukrainian translation 2020-05-12 20:13:43 +00:00
Niels De Graef 5992a42231 gimpthrobber: Get rid of g_type_class_add_private()
It's deprecated.
2020-05-12 21:35:54 +02:00
Michael Natterer 97b714d428 Issue #3533 - Tool preset doesn't restore opacity and paint mode
There is no non-hackish way of fixing this without adding a new
"use-opacity-paint-mode" property to GimpToolPreset and a new toggle
in GimpToolPresetEditor. Restoring opacity and paint mode can now be
controlled explicitly, and defaults to TRUE.
2020-05-12 21:13:29 +02:00
Niels De Graef 0d9716a0a8 patternselect: Document pattern_name parameter
Fixes an annoying gtk-doc warning.
2020-05-12 20:03:56 +02:00
Niels De Graef 7ac6f0a22e viewable: Use GET_PRIVATE() before precondition checks
`GET_PRIVATE()` expands to `gimp_viewable_get_instance_private()`, which
just returns an offset of the passed on pointer. As such, it's safe to
call this on any value (even NULL) and to put it at the top of the
function block, saving some lines.
2020-05-12 17:59:08 +02:00
Niels De Graef 88b9359efc viewable: Use g_object_notify_by_pspec()
From commit 529aa743:

> `g_object_notify()` actually takes a global lock to look up the
> property by its name, which means there is a performance hit (albeit
> tiny) every time this function is called. For this reason, always try
> to use `g_object_notify_by_pspec()` instead.

While just _loading_ GIMP on my machine (ie during the splash screen)
`g_object_notify (viewable, "icon-name");` got called more than 4000
times already, so it's not an unused path.

Note that it's also less easy to make an accidental typo when using
`g_object_notify_by_pspec()`, as the compiler will complain about the
enum value being incorrect.
2020-05-12 17:59:03 +02:00
Niels De Graef bd69747014 viewable: Get rid of unused "stock-id" property
The property was only foreseen for backwards compatibility, so let's get
rid of it as we have the opportunity.
2020-05-12 13:27:30 +02:00
Niels De Graef ddfae277cb meson: Cleanup and fix issues using libapp_dep
Meson has a very useful tool for combining a set of linked libraries and
compiler arguments (like an internal pkg-config):
`declare_dependency()`. Use this command to ensure that we can easily
reuse libapp* over multiple libraries, executables and tests.

That way, if we also add a new dependency later on in one of the libapp
libraries, this won't need to be added multiple times.
2020-05-11 10:52:23 +00:00
Niels De Graef 8b0dfb99d5 app/test-xcf: include necessary headers for close() 2020-05-11 10:52:23 +00:00
Niels De Graef 5f117d0561 meson: Fix envvar in tests
`GIMP_TESTING_ABS_TOP_SRCDIR` is supposed to point to the top source root directory, not the top build directory.
2020-05-11 10:52:23 +00:00
Niels De Graef 3a167243b9 meson: Fix building of tests
The tests weren't building because they weren't linked to the static
libraries.

Note that some tests still need fixing, but at least they can be
built/run now.
2020-05-11 10:52:22 +00:00
Yuri Chornoivan ed4e2a3790 Update Ukrainian translation 2020-05-11 07:09:59 +00:00
Niels De Graef ae34e778fc meson: Use libgimp(ui)_dep in plug-ins meson files
This gives a big cleanup in the meson.build files of the plug-ins.

It's also quite a bit more maintainable, since anything that changes in
libgimp's dependencies, linkage, ... doesn't have to be copy-pasted into
each plug-in.
2020-05-11 07:01:37 +02:00
Niels De Graef 904a2e422d meson: Declare internal libgimp(ui) dependency
By using Meson's `declare_dependency()`, we can avoid specifying the
linked libraries, dependencies and includes we need over and over again.

Basically, this conceptually acts like an internal pkg-config.
2020-05-11 06:42:29 +02:00