Commit Graph

42820 Commits

Author SHA1 Message Date
8895c20a90 Updated Danish translation of gimp-libgimp 2018-09-29 17:44:52 +02:00
Ell
ae3c006293 app: avoid applying buffer to drawable if application region is empty
In gimp_drawable_real_{apply,replace}_buffer(), bail if the
applcation region, after intersection with the drawable and mask
extents, is empty.  This avoids trying to create a GeglBuffer with
negative width/height.
2018-09-29 10:27:20 -04:00
Ell
a782acab57 Issue #2287 - Weird things happen with dodge tool ...
... (some sort of corruption)

In gimp_drawable_real_replace_buffer(), adjust the processed buffer
and mask_buffer regions according to the changes made to the
application region, as calculated by intersecting it with the
drawable and mask extents.  This fixes wrong application position
when painting using the heal, dodge/burn, smudge, or convolve
tools, on a drawable whose origin is above/to the left of the
image's origin, and there's a selection active.
2018-09-29 10:27:20 -04:00
Ell
ae628a8664 Issue #2222 - Warp Transform doesn't commit changes upon saving ...
... the XCF file

Add a "saving" signal to GimpImage, which is emitted when the image
is about to be saved or exported (but before it's actually saved/
exported).  Connect to this signal in tool-manager, and commit the
current tool in response (unless its GimpToolControl::preserve is
TRUE).
2018-09-29 02:39:23 -04:00
Ell
fca05065e1 tools: in performance-log-viewer.py, retain call-graph path
In the performance-log viewer's profile view, retain the current
call-graph path across state changes.
2018-09-29 00:16:20 -04:00
Ell
6ad3dbdb17 app: in performance-log-viewer.py, add undo support
Add undo functionality to the performance-log viewer, which allows
undoing/redoing changes to the sample selection, and the call-graph
state.
2018-09-28 16:30:57 -04:00
e6b92dbbc6 Update Polish translation 2018-09-28 00:06:32 +02:00
fb0b04e8d9 build: bump some dependencies in nightly flatpak.
Sync with recent changes of the stable flatpak.
2018-09-27 23:47:23 +02:00
ba53a833b2 desktop: prepare release of GIMP 2.10.8.
Please everyone, feel free to update the list of upcoming
changes/features, if you feel some particular change should be more
prominently exposed in this list (or at the opposite that some change is
not worth mentionning), or for rewording, etc.
2018-09-27 23:32:37 +02:00
Ell
c1347a7f26 app: construct tool-options GUI lazily
We currently construct the tool-options GUI for all the tools at
startup, which takes a significant amount of time.  Instead,
only register the GUI construction function with the tool-options
object, using the new gimp_tools_set_tool_options_gui_func()
function, and use the registered function to construct the GUI when
actually needed.
2018-09-27 02:41:59 -04:00
Ell
d33fb0e7b8 tools: various improvements in gimp-performance-log-viewer.py
Fix int-ratio variable formatting when the input is NaN, which can
happen when calculating the standard deviation, if all the values
are infinite.

Fix keyboard sample-range selection.

Deselect all samples when right-clicking a sample graph.
2018-09-27 01:13:04 -04:00
Ell
9a2999a553 plug-ins: in script-fu, don't query PDB procedures' info on startup
script-fu used to query the information of every PDB procedure on
startup, in order to get the number of parameters for each
procedure.  This was done so that nullary procedures were defined
in such a way as to accept (and ignore) any number of arguments
(and at least one of the scripts we ship relies on this behavior).
However, this requires expensive back-and-forth communication with
the main GIMP process, which notable slowed down script-fu's
startup, and had a non-negligible impact on GIMP's startup time.

Instead, avoid querying procedure information, and implement the
special behavior for nullary procedures at call time.  We do this
by defining, in addition to the "strict" gimp-proc-db-call
procedure, a "permissive" -gimp-proc-db-call internal procedure,
and using the latter to call the predefined PDB procedures.
2018-09-26 14:41:12 -04:00
72b80213bc Update Brazilian Portuguese translation 2018-09-26 08:13:07 -03:00
Ell
a5baba5539 Issue #2272 - Crash when using the intelligent-scissors tool ...
... after erasing all points

When erasing the last remaining point in the iscissors tool, halt
the tool, rather than leaving the tool active with an empty curve,
which it is not prepared to handle, and which results in a segfault
once trying to add a new point.

Additionally, when erasing the last remaining segment (i.e., the
two last remaining points), don't erase the entire segment (i.e.,
both points), but rather convert the segment to its initial point,
so that, in effect, we only erase the last point of the segment.
2018-09-26 02:14:16 -04:00
Ell
53964dcb92 Revert "app: add "perspective correction" option to the measure tool"
This reverts commit d31725a9cd.

This option is not very useful.  In order to do actual perspective
correction, we need more information, such as the scene's vanishing
point and the camera's focal length.  The measure tool is probably
not the right place to do all that.  Let's simply revert this.
2018-09-25 04:21:49 -04:00
Ell
bf2ea81fcc app: use gimp_dialog_set_alternative_button_order()
... instead of gtk_dialog_set_alternative_button_order().
2018-09-23 14:08:05 -04:00
Ell
24fb597196 app: tweak focus behavior of GimpToolWidgetGroup when removing widget
When removing the focus widget of a GimpToolWidgetGroup, use the
last child, rather than the first child, as the new focus widget.
This plays nicer with auto-raise, and is probably better anyway.
2018-09-23 13:25:29 -04:00
Ell
d31725a9cd app: add "perspective correction" option to the measure tool
Add a boolean "perspective correction" option to the measure tool.
When toggled, the measure tool uses two compass widgets, instead of
one.  Straightening the active item in this mode results a
perspective transform that straightens both lines simultaneously,
keeping their origin fixed.

The information displayed in the info window/statusbar always
refers to the currently-focused compass.
2018-09-23 12:58:45 -04:00
Ell
95d2c92ff2 app: in GimpToolWidgetGroup, improve focus behavior when adding/removing widgets
When a focused widget is added to a group, make it the new focus-
widget of the group, instead of unsetting its focus if another
widget already has focus.

When removing the focused widget from a group, set a different
widget as the group's focus widget (if one exists), instead of
unsetting the focus widget, so that nonempty groups always have a
focus widget.
2018-09-23 12:58:45 -04:00
Ell
5b217b3ad4 app: in GimpToolWidgetGroup, calculate hover widget at button press
In gimp_tool_widget_group_button_press(), explicitly call
gimp_tool_widget_group_hover() before forwarding the event to the
group's hover widget, so that the hover widget gets recalculated.
If a widget is added to the group as a result of a button-press
event, this guarantees that it gets considered as a target for the
same event.
2018-09-23 12:58:45 -04:00
Ell
20a6a3583b app: confirm transforms that result in very large items
In GimpTransformTools, precalculate the resulting size of the
transformed item(s), and request confirmation if the size grows to
over 10 times the size of the image (in either dimension).  This
protects against transformations that can result in suprprisingly
large items, such as inverted transformations, and, specifically,
perspective-correction transformations performed using the measure
tool, which will be added in the following commits.
2018-09-23 12:58:45 -04:00
Ell
2ae823ba2b app: add gimp_drawable_transform_get_effective_clip()
Which returns the actual clip mode that will be used by the
drawable for a particular transformation.
2018-09-23 12:58:45 -04:00
Ell
2c52bba071 app: indentation fix in gimpdrawable-transform.[ch] 2018-09-23 12:58:45 -04:00
Ell
51d9934942 tools: in performance-log-viewer.py, right-align backtrace frame number column 2018-09-23 01:38:09 -04:00
Ell
407e9f36ca tools: in performance-log-viewer.py, set thread filter search column 2018-09-23 01:17:52 -04:00
Ell
3f630378b0 tools: in performance-log-viewer.py, add thread filter to profile
In the performance-log viewer, add an option to filter which
threads, and which states of each thread, are included in the
profile.  By default, all threads in the RUNNING state are
included.
2018-09-23 00:53:20 -04:00
Ell
a7afbe13ec tools: in performance-log-viewer.py, defer UI updates util needed
In the performance-log viewer, defer updates to the various UI
elements when the selection changes until they're actually shown.
This improves responsiveness when changing the selection.
2018-09-23 00:53:20 -04:00
Ell
0245775346 configure.ac: fix libbacktrace test
... added in last commit.
2018-09-22 22:46:35 -04:00
Ell
7cdd1ebeef app: add source location information to the Linux GimpBacktrace backend
When libbacktrace is available, use it to retrieve source location
information in the Linux GimpBacktrace backend.
2018-09-22 22:39:08 -04:00
Ell
2c8e3f8e0a tools: only show object/source basename in performance-log backtraces
... to reduce their verbosity.  Show the full path in the
corresponding tooltip.
2018-09-21 09:29:10 -04:00
Ell
c7a4eb4602 tools: replace performance-log viewer call-graph direction icons
Use the less-ambiguous, if just as clumsy,
"format-indent-more/less" icons, to stand for the
caller -> callee, and callee -> caller, directions, respectively.
2018-09-21 07:45:14 -04:00
Ell
c537341d35 tools: a few improvements in performance-log-viewer.py
Fix searching for samples by thread name, in particular, when there
are unnamed threads.

Use GtkMenuButton, instead of GtkButton, for the find-samples
header button.

Add mnemonics to the find-samples popover.
2018-09-21 02:41:56 -04:00
4dc45f9658 libgimpmath: fix typo in various places: s/orthognal/orthogonal/. 2018-09-20 18:10:45 +02:00
Ell
a1b08a503d Revert "app: disable parallel asynchronous operations when GEGL_THREADS=1"
This reverts commit 408540659f, which
is no longer necessary after GEGL commit
c8a0b9eff07c8d9122f55f7b7527d51788ae4575.
2018-09-20 08:09:30 -04:00
6a5023a38a Issue #2179: Get rid of the win32_use_hkcu flag.
Simply always check HKCU first. If that lookup did not yield any result,
fall back to HKLM.
2018-09-19 15:01:46 +02:00
f7ac033777 libgimpwidgets: fix accidential double G_ADD_PRIVATE 2018-09-18 23:13:24 +02:00
Ell
a5c8dd5c73 app: fix incompatible pointer type warning in gimpviewrendererdrawable.c
... more GLib 2.58 fallout.
2018-09-18 16:23:19 -04:00
Ell
a84b57e67e app: fix unhandled enumeration value warning in gimptextlayer.c 2018-09-18 16:23:19 -04:00
Ell
3b0040c043 app, libgimp*, modules: don't use g_type_class_add_private() ...
... and G_TYPE_INSTANCE_GET_PRIVATE()

g_type_class_add_private() and G_TYPE_INSTANCE_GET_PRIVATE() were
deprecated in GLib 2.58.  Instead, use
G_DEFINE_[ABSTRACT_]TYPE_WITH_PRIVATE(), and
G_ADD_PRIVATE[_DYNAMIC](), and the implictly-defined
foo_get_instance_private() functions, all of which are available in
the GLib versions we depend on.

This commit only covers types registered using one of the
G_DEFINE_FOO() macros (i.e., most types), but not types with a
custom registration function, of which we still have a few -- GLib
currently only provides a (non-deprecated) public API for adding a
private struct using the G_DEFINE_FOO() macros.

Note that this commit was 99% auto-generated (because I'm not
*that* crazy :), so if there are any style mismatches... we'll have
to live with them for now.
2018-09-18 14:39:56 -04:00
d5586ed9d0 Updated Italian translation 2018-09-17 19:41:52 +02:00
7bfd22ca68 Fixed small typo 2018-09-17 19:34:41 +02:00
ef8042e812 icons: fix icons!
Ok looks like I missed some changes when I updated these icon Makefiles.
Anyway I still have a lot to straighten up within icons. :-/
2018-09-17 19:17:32 +02:00
97247f41ea app: don't sanity check for "gegl:matting-levin".
My previous commit answers the forever question "do we want to require
this?" which was in comments and can now be removed.
We don't need to actually require this operation for running GIMP, as it
runs fine without. Just testing in configure is enough of a warning for
the missing feature.
2018-09-17 17:01:29 +02:00
9560a653c5 configure: check presence of "gegl:matting-levin" with gegl --exists.
This is a runtime dependency. If absent, we simply won't have access to
the alternative Matting Levin engine in the foreground selection tool.

If we don't add a test in configure, this may be easily forgotten. I
created the `gegl --exists` feature specifically for this kind of
checks, so let's check operation existence.
2018-09-17 16:40:00 +02:00
386587736f Misc. typo fixes
Found via `codespell`
2018-09-16 18:49:18 -04:00
64b00b5c7f plug-ins: add the "msf1" brand for HEIF files.
After Dirk Farin had another look in the specs, it turns out that "mif1"
is actually allowed as major brand for HEIF. Also adding "msf1" which is
the equivalent for image sequences.
2018-09-16 19:21:14 +02:00
Ell
f8dd444e98 tools: in performance-log-viewer.py, fix profile viewer search column 2018-09-16 12:34:58 -04:00
Ell
3601c9189b tools: add performance-log-viewer.py and driver
performance-log-viewer.py is a viewer for GIMP performance logs.
The viewer is made up of two parts: a sample-selection area at the
top, and an information area at the bottom.

The sample-selection area visualizes the sampled variables and
markers using a simultaneous set of plots, and displays the
currently selected samples.  Samples can be selected directly
through the sample-selection area, or by other means, such as
searching for all samples satisfying a certain condition, or
containing a certain function.

The information area shows global information stored in the log, as
well as information specific to the currently selected samples,
including variable listing and statistics, full backtrace, and
profile/call-graph information.

Note that performance-log-viewer.py takes its input from STDIN,
like the rest of the performance-log tools, and is therefore
suitable for use as part of a pipeline.  For standalone use, the
performance-log-viewer driver is also included, which takes the log
file as a command-line argument, and processes it through an
appropriate pipeline before feeding it to the viewer.
2018-09-16 12:03:57 -04:00
Ell
7e186f3e5d tools: add performance-log-deduce.py
... which statistically deduces the correct thread states based on
backtrace address frequency, fixing local inaccuracies.
2018-09-16 11:58:38 -04:00
87999d17db Update Polish translation 2018-09-16 17:17:54 +02:00