Commit Graph

46278 Commits

Author SHA1 Message Date
Jacob Boerema 248d2e95b8 plug-ins: enable screenshot for non x11 targets in meson build.
This also removes screenshot as an option for the meson build
since the autotools build doesn't have that option either.
2020-08-01 22:28:34 +00:00
Jehan 9b55f82579 app: drawables translation with arrow keys multi-layer aware.
We can now move multiple layers selected, together with the arrow keys.
2020-08-01 22:39:21 +02:00
Jehan 8b55346500 app: Color Select tool multi-layer aware.
Similar logics as Fuzzy Select (see my previous commit), which is that
if multiple layers are selected (and sample merged unchecked), it
selects as though through a composited image containing only the
selected layers.
2020-08-01 20:37:48 +02:00
Jehan 6093399d7b app: Fuzzy Select tool multi-layer aware.
When several layers are selected, and using the Fuzzy select tool
without sample merged (with sample merged, nothing changes, it just uses
the whole image), the selection will be based off a composited render of
the image with only selected layers.

This is equivalent to only making selected layers visible, running fuzzy
select with sample merged, then making other layers visible again.
2020-08-01 19:56:07 +02:00
Jehan 67b757f55a app: drop a color or a buffer multi-layer aware.
When dropping a color, we fill all the selected layers with this color.

When dropping a buffer, multi-layer is same as no layers selected (i.e.
we paste once as a new layer, not multiple times).
2020-08-01 19:14:21 +02:00
Jehan 1fa951127e app: more code in paint and brightness-contrast tool to port.
These 2 tools only work on single drawable at once. Yet slowly getting
rid of all usage of gimp_image_get_active_drawable().
2020-08-01 18:25:45 +02:00
Jehan ac0287e2f3 app: window title stays single layer for now.
Logics stay the same except I replace gimp_image_get_active_drawable()
by gimp_image_get_selected_drawables() to show I looked at this code.
Basically it doesn't look like we can really handle multiple layer
selected here, unless we want overly-long window titles.
2020-08-01 18:25:45 +02:00
Yuri Chornoivan 5950fafbef Update Ukrainian translation 2020-08-01 15:38:05 +00:00
Jehan 5357628df2 app, pdb: fix pdb and generated code.
Oups! The meson build failing to properly generate code is annoying!
2020-08-01 16:36:27 +02:00
Yuri Chornoivan 6b699640df Update Ukrainian translation 2020-08-01 13:08:08 +00:00
Jehan 2ba6ac6286 app: selection stroke and "Stroke Path" now multi-layer aware.
This includes "select-stroke*" actions and "Stroke Path" feature of the
Vector tool.
2020-08-01 14:02:24 +02:00
Yuri Chornoivan 8237c4c3d9 Update Ukrainian translation 2020-08-01 11:25:39 +00:00
Jehan 6b829c7008 app: Selection fill and "Fill Path" now multi-layer aware.
This includes the actions "select-fill*" as well as the "Fill Path"
feature in the Vector tool which were using common code.
2020-08-01 13:12:21 +02:00
Jehan 5d14a7a595 app: some fixes/improvements.
Forgot to free a list.
Also getting rid of a gimp_image_get_active_drawable() in edit_paste(),
with logics staying the same.
2020-08-01 12:04:04 +02:00
Jehan 5eec3e3457 app: get rid of last remnants of single-layer logics in edit-actions.
edit-cut and edit-named-* implementations were already multi-layer
aware. Making them sensitive appropriately was the only missing part.
2020-07-31 21:06:10 +02:00
Ell 552991b2d2 app: return visible widgets from a few more gimp_prop() functions
... in particular, this fixes the Rotate Colors prop-gui.
2020-07-31 20:47:05 +03:00
Jehan ae0f595a19 app: edit-fill-fg|bg|pattern multi-layer aware. 2020-07-31 17:52:53 +02:00
Jehan 117495323f app: fix layer double click (Layer Attributes dialog).
This got *again* broken because of some obviously impossible code path
(a same variable tested against 2 different values!). Anyway I tested
again and it seems that all possible interactions in the item tree views
are now correctly working though the whole button press code is a very
complicated mess of possible variations and events.
2020-07-31 17:42:39 +02:00
Jehan 696fb34cc5 app: layers-mask-edit only works with a single layer selected. 2020-07-31 17:42:39 +02:00
Yuri Chornoivan 897b0952ba Update Ukrainian translation 2020-07-30 20:16:19 +00:00
Jehan 0f1f8b7b45 app: layers-resize and layers-scale work on one layer at once.
Making these actions multi-layer aware here means checking only exactly
1 layer is selected as these actions have GUI which shows dimensions and
preview (for the layer dimension action, i.e. layers-resize).
2020-07-30 21:26:13 +02:00
Jehan bf7d555759 app: edit-clear multi-layers aware. 2020-07-30 21:18:54 +02:00
Jehan 62eedd41b4 app: layers-alpha-add|remove multi-layer aware. 2020-07-30 21:03:03 +02:00
Jacob Boerema da9284b737 plug-ins: fix goat-exercise-lua not working after the split between Gimp and GimpUi. 2020-07-30 13:58:43 -04:00
Yuri Chornoivan 9d844dbe39 Update Ukrainian translation 2020-07-30 17:24:06 +00:00
Jehan 4b3348dffe app: layers-crop-to-selection and layers-crop-to-content multi-layers…
… aware.
2020-07-30 18:36:18 +02:00
Ell 0fae46133c devel-docs: use actual em-dashes in performance-logs documentation 2020-07-30 18:27:48 +03:00
Ell ca6f577413 devel-docs: remove old performance-logs-parameters section 2020-07-30 18:19:50 +03:00
Ell 1d70fee1fd devel-docs: fix image URL in performance-logs documentation 2020-07-30 18:17:59 +03:00
Ell d72e6b3aed devel-docs: update documentation of performance-log parameters 2020-07-30 18:15:32 +03:00
Ell 9b29d17895 app: improve layout of performance-log file-selection dialog parameters 2020-07-30 18:15:32 +03:00
Jehan b5af88a563 devel-docs: add some debugging tricks for Flatpak.
The `info line` in particular was given by Ell and will make trace
handling a lot easier as it means we may not have to ask for traces with
debug symbols or gdb with Flatpak. We can indeed get these infos back
ourselves since we are guaranted to use the exact same binaries.

This together with the change in verbose version output I did 2 weeks
ago (commit bc5f6371e9), allowing us to check the exact Flatpak hash
commit used by a reporter, Flatpak debugging should be a lot easier with
just the simpler stack trace format.
2020-07-30 16:55:46 +02:00
Jehan 802ba92ca5 app: do not allocate a GFile when crashing.
When backup-ing images upon crashing, reuse a GFile allocated at
startup, and simply rename the file to handle multiple files to save.
2020-07-30 16:00:38 +02:00
Yuri Chornoivan 89d1010790 Update Ukrainian translation 2020-07-30 13:03:15 +00:00
Jehan 949d7eee3b app: fix backup creation on crash.
The call to "gimp-xcf-save" was not updated to the new API using a
drawable array and a GFile.
Also for the drawable array, do not actually create it as anyway this is
a dummy argument (so far XCF saving does not even look at this argument
and just re-check the selected drawables).
2020-07-30 14:17:02 +02:00
Jehan d11e59fc42 app: allow a number of drawables to 0 for "gimp-xcf-save".
This parameter is not even used because we check again the selected
drawables during the save code. Allowing to set to 0 is simpler, and
also it will allow to not have to allocate an object array for layers
when we want to avoid memory management (during crash handling).
2020-07-30 14:15:52 +02:00
Jehan 9069919931 app: output errors to stderr when gimp_procedure_execute() fails with…
… argument validation.
I had a case where argument validation was failing on range and no error
was propagated (during a crash handling). Let's not leave these errors
totally silent as it makes such usually easy issues harder to debug. In
the specific case of no GError passed, just print the error to stderr.
2020-07-30 14:10:36 +02:00
Ell d11cbbbbc9 app: in GimpDashboard, fix progressive-performance-log env-var 2020-07-30 01:14:37 +03:00
Ell 76f9e5feaf tools: add performance-log-progressive-coalesce.py; use in performance-log-viewer
Add a new performance-log-progressive-coalesce.py tool, which
coalesces partial address maps in progressive performacne logs into
a single global address map, suitable for processing by the rest of
the tools.

Use the new tool as part of the pipeline in performance-log-viewer.
2020-07-30 01:04:40 +03:00
Ell e5fe1ef152 tools: add performance-log-close-tags.py, use in performance-log-viewer
Add a new performance-log-close-tags.py tool, which closes unclosed
tags in incomplete performance logs, allowing the rest of the
perofmance-log tools to process them.  This is necessary for
unfinished progressive logs.

Use the new tool as part of the pipeline in performance-log-viewer.
2020-07-30 01:03:38 +03:00
Ell 146c234350 app: add progressive performance logs
Add an option to record progressive performance logs.  Progressive
logs contain complete information after each recorded sample, by
writing partial address maps at each sample, containing all new
addresses introduced by the sample.  Furthermore, when recording a
progressive log, the output stream is flushed after each sample.

This allows recording complete logs even in cases where they can't
be properly terminated, such as when GIMP crashes or freezes in the
middle of the log.

Progressive logs are disabled by default, since they potentially
increase the sampling cost.  They can be enabled through a toggle
in the log file-dialog, or through the
GIMP_PERFORMANCE_LOG_PROGRESSIVE environment varaible.
2020-07-30 01:03:38 +03:00
Ell 126002c5c9 app: allow controlling performance-log parameters through the UI
When recording a performance log, allow setting the log parametrs
through the file dialog.  Currently, this includes the sample
frequency, and the option to include backtraces.

These options are still controllable through the
GIMP_PERFORMANCE_LOG_SAMPLE_FREQUENCY and
GIMP_PERFORMANCE_LOG_BACKTRACE environment variables.  When set,
the variables override the values entered through the UI.
2020-07-30 01:03:37 +03:00
Ell 95b69dd77b app: in GimpBacktrace Windows backend, return NULL backtrace if not initialized
In the Windows implementation of gimp_backtrace_new(), return NULL
if the backend is not fully initialized.
2020-07-30 01:03:37 +03:00
Jehan 281f17e53c app: GimpToolRectangle multi-layer aware.
This fixes default constraint values when multiple layers are selected.
In particular fixed aspect ratio defaults in Crop or Rectangle Select
tools, in layer mode, when several layers are selected, the default
aspect ratio is the layer's ratio if all layers have the same
dimensions, otherwise it's the image dimension ratio.

Also fixes a bug when trying to create the tool rectangle while multiple
layers are selected (the rectangle was always of size 0 at point 0).

Finally fixes the auto-shrink feature with multiple layers selected. The
rectangle will now auto-shrink to the smallest rectangle which
encompasses the contents of all selected drawables inside the existing
rectangle.
2020-07-29 19:26:05 +02:00
Ell 3a462a5e63 Issue #5472 - CRITICAL while using Move tool with arrow keys
In gimp_edit_selection_tool_translate(), perform the active-item
checks even when the effective translation offset is 0, and only
bail afterwards.  This avoids erroneously calling
gimp_tool_message_literal() with a NULL message in this case.
2020-07-29 20:08:19 +03:00
Sabri Ünal 9d3b2ba756 Issue 2874 - gimp-tool-pencil.svg icon size is corrected on Color icon theme
(cherry picked from commit 0bf0f31a5b)
2020-07-28 19:06:41 +02:00
Félix Piédallu e78fbccea7 Fix pygimp.interp generation, add /usr/bin/python3 alias 2020-07-28 17:17:18 +02:00
Félix Piédallu 5c2fd398df Fix python version check (python's sysconfig.get_python_version() returns only major.minor) 2020-07-28 14:41:13 +00:00
Ell 0829dba97f Issue #4536 - Seg fault when trying to open image on Google Drive (Gnome 3.34.3)
In file_open_image(), mount non-native files *before* looking up a
file-proc.  Previously, we'd only mount the file after the initial
lookup, and fail to perform a second lookup if the mount succeeded,
leaving us with a NULL file-proc and a subsequent segfault.

Additionally, simplify the rest of the remote-file code-path.
2020-07-28 11:01:23 +03:00
Yuri Chornoivan 1ac4a8f890 Update Ukrainian translation 2020-07-26 12:45:51 +00:00