Commit graph

39926 commits

Author SHA1 Message Date
Ell
ea34bbc92b app: add gimp_coords_interpolate_bezier_at()
... which calculates the position and/or velocity of a Bezier curve
at a given point.
2018-02-03 05:58:42 -05:00
Ell
275815c808 app: misc cleanup in gimpcoords-interpolate
Fix indentation, typos, style.  Use array parameters for the
control points, instead of using individual by-value parameters.
Use GArray* for the results, instead of GArray**.  Verify
arguments.

Adapt the rest of the code to the changes.
2018-02-03 05:58:42 -05:00
Ell
1cae93ac42 app: use gimp_transform_polygon() in GimpCanvasPolygon
... so that clipping is done properly.
2018-02-03 05:58:41 -05:00
Jehan
1750d97b11 desktop: make the <release> tag texts translatable. 2018-02-01 19:53:36 +01:00
Jehan
5fc91e92e1 desktop: fix the appstream unit tests.
The first validation command was actually failing but the test was not,
because only the last return value is taken into account, obviously. Add
a '&&' between the commands.
Also test against the built files, not the templates (in particular
because `appstream-util` doesn't like .in.in templates, and anyway it's
always better to test against the finale file).
Finally move to "validate-relax" test for the time being.
"validate-strict" actually makes a bunch of errors, but I can't make the
time to look at these now. Let's just settle with basic validation at
least.
2018-02-01 17:45:05 +01:00
Jehan
78f251b0a7 Bug 779839 - Add <releases>-Tag to the gimp.appdata.xml.in.
- appstream-util returns a "style-invalid" error: "<ul> cannot start a
  description [(null)]". So I add a <p> introduction to the 2.9.8
  <release> tag. This was part of unit test failure on the appdata file.
- I also add a type property for 2.9.8. This is a new property which I
  proposed and which just got accepted in the appstream specification:
  https://github.com/ximion/appstream/pull/158
- I add <release> tags for all previous 2.9.x releases. No description
  for these, just a type property. But feel free to propose patches
  adding short non-technical description for these.

Note: it was originally proposed in the bug report to use the appdata
file in place of NEWS (and have this one generated from appdata). But
after discussion with appstream project, appdata is expected to be
concise, non-technical and more "marketing" than exhaustive. This is
quite a different usage than NEWS which is more an exhaustive summary of
new features and major changes. So these 2 files will likely remain
distinct.
2018-02-01 17:45:05 +01:00
Nathaniel Graham
6d26f78cd6 desktop: added release information to the AppStream file...
... pre-populated with release notes from version 2.9.8.
2018-02-01 17:45:05 +01:00
Michael Natterer
518035c544 po: add desktop/org.gimp.GIMP.appdata.xml.in to POTFILES.skip 2018-02-01 14:41:12 +01:00
Michael Natterer
4a26d4a3e6 Bug 793090 - GIMP crashes when invoking filter without an image
filters-commands.c always needs an image and a drawable, so use
return_if_no_drawable(), not return_if_no_display().

Also fix the sensitivity of the shadows-highlights actions, which made
this bug triggerable at all.
2018-02-01 14:36:59 +01:00
Michael Natterer
11df85d783 app: improve/fix wording in Prefs -> Debugging
and use the gimp-wilber-eek icon, was tempted to use gimp-toilet-paper :)
2018-02-01 12:54:52 +01:00
Ell
91b35591c6 app: add comment to gimp_transform_polygon()
.. describing the function, and, in particular, specifying upper
bounds for the resulting number of vertices.
2018-01-31 10:11:55 -05:00
Ell
17ec3d130e app: fix gimp_transform_matrix_generic()
When the resulting matrix transforms all input points behind the
camera, negate the matrix, instead of failing, which results in a
matrix that transforms the input points to the corresponding points
in front of the camera.  This avoids rejecting certain valid
transforms as invalid, in the generic transform tools (unified,
perspective, and handle transform).

Make the number of input and output points explicit in the
function's signature, and add comments.
2018-01-31 10:11:55 -05:00
Jehan
536c65afa0 app: vbox doesn't need to be an object variable.
Probably a remnant from an earlier code. It's only used within the scope
of the init(), so let's simplify code.
2018-01-31 14:15:29 +01:00
Michael Natterer
f93d23b01b app: some code and UI cleanup in GimpCriticalDialog 2018-01-30 21:51:15 +01:00
Alexandre Prokoudine
6ebc43fdcb Update Russian translation 2018-01-30 11:38:54 +03:00
Michael Natterer
605123d79d app: add weak pointers for the curves and levels hisrogram view members
so we don't run into the same warnings on tool shotdown we already
fixed for tool startup.
2018-01-29 21:01:57 +01:00
Jehan
42e9ddd4dd app: make the buttons translatable again.
I actually think the buttons were translatable, but the strings were
simply not auto-extracted with previous code (which is nearly the same
in the end). Should be better now.
2018-01-29 20:34:33 +01:00
Michael Natterer
cd5c8d0340 Move git-version.h to the toplevel also in .gitignore 2018-01-29 20:26:18 +01:00
Jehan
44f23bdf0c app: move git-version.h generation to the repository root.
The reason is that this file is now included for a binary in tools/ as
well (the debug binary) and tools/ contents needs to be built before
app/. Even using BUILT_SOURCES in the Makefile under app/ is not enough.
Anyway it makes sense that this file should be under the root of the
repository since that describes the status of the source repository. So
let's move it up one folder.
2018-01-29 20:17:41 +01:00
Michael Natterer
6fc05e3683 app: print an EXIT verbose message before unrefing the Gimp instance
so we can se if we got here on exit.
2018-01-29 20:14:03 +01:00
Michael Natterer
9ec11eece9 tools: formatting fixes in Makefile.am 2018-01-29 20:13:27 +01:00
Jehan
abc1fbde79 desktop: minor appdata <release> tag update.
Please everyone, review the contents of this <release> tag so that we
can quickly uncomment it and submit it for translation. This is what
will be featured in software installers. Let's make it a concise yet
interesting overview of the 2.10 release.
2018-01-29 16:53:31 +01:00
Michael Natterer
31d55bc605 app: adapt include guards of gimp-version.h to new filename 2018-01-29 10:50:24 +01:00
Piotr Drąg
6945e10b53 Update POTFILES.in 2018-01-29 02:35:27 +01:00
Jehan
4fd1c6c97c app: add support for Linux backtrace() API.
It is nice because when available (Linux only?), it is a lot faster than
using a dedicated debugger such as GDB or LLDB, and also it allows to
always have a backtrace, even when no debuggers are installed.
Unfortunately the output is a lot less detailed, with no file paths, no
line numbers (even when debug symbols are there), no local values
printout, etc. It's pretty bare, with function names and the stack
levels. This is why it is not given priority, and GDB and LLDB are still
preferred when available.
2018-01-29 01:48:30 +01:00
Jehan
986b3fd70a app: remove duplicate include. 2018-01-29 01:48:30 +01:00
Jehan
1b4efd2d5a app, tools: rename app/version.[ch] to app/gimp-version.[ch].
Since commit 9fdf35550b, I removed the GIMP_APP_GLUE_COMPILATION check
because we need to have the whole versioning info from the new debug
widget. It just makes sense to go further and just make this a proper
internal API to get version information.
2018-01-29 01:48:30 +01:00
Alexandre Prokoudine
dd5be53836 Update Russian translation 2018-01-29 03:19:06 +03:00
Jehan
a56797f33a NEWS: keep up-to-date. 2018-01-29 00:37:08 +01:00
Ell
1d67e0abcf app: In GimpPaintTool, swap get_line_status() coordinates
They got swapped by commit
2069496af3, reporting the angle in
the reverse direction.
2018-01-28 17:28:40 -05:00
Ell
b40a64aab3 build: add Greek translation to the Windows installer 2018-01-28 17:11:22 -05:00
Ell
c9ceccdfb2 po-windows-installer: technical fix to the Greek translation
ender's name can't be used verbatim in the encoding used for the
Greek translation.  Use the ASCII version of his name.
2018-01-28 17:11:22 -05:00
Michael Natterer
04b4bccbb3 app: #include <string.h> in gimp-transform-resize.c 2018-01-28 22:58:26 +01:00
Ell
5f58a7a260 app: pass near-plane z-coordinate to gegl:transform
... so that GEGL performs the same clipping we do.
2018-01-28 16:37:34 -05:00
Ell
23f6369658 libgimpmath: remove gimp_matrix3_will_explode()
It's no longer needed since last commit, and since it's new in
2.10, we might as well remove it.

This reverts the rest of 768d06614f.
2018-01-28 16:37:34 -05:00
Ell
3c0787e4c3 app: use gimp_transform_polygon() in gimp_transform_resize_boundary()
... so that the transformed boundary is properly clipped.

Adjust the boundary-size algorithms to operate on arbitrary
polygons.

Avoid using gimp_matrix3_will_explode() in
gimp_drawable_transform_buffer_affine() and falling back to
cropping the result, and avoid setting the "clip-to-input" property
of gegl:transform.  Neither of those in needed anymore.

This effectively reverts the app/ part of commit
768d06614f.  The next commit revets
the libgimpmath/ part.
2018-01-28 16:37:34 -05:00
Ell
258e60f1b7 app: use gimp_transform_polygon() in GimpCanvasBoundary
... so that clipping is done properly.
2018-01-28 16:37:34 -05:00
Ell
4626190ac7 app: use gimp_transform_polygon() in GimpCanvasTransformGuides
Add a "clip" property to GimpCavnasTransformGuides.  When set, use
gimp_transform_polygon() for transforming the guides and the
bounding box, so that they're properly clipped.

Add a corresponding "clip-guides" property to
GimpToolTransformGrid, and set it to TRUE in GimpToolHandleGrid, so
that the handle-transform tool's guides are clipped properly.
2018-01-28 16:37:34 -05:00
Ell
9900573345 app: use gimp_transform_polygon() in GimpCanvasTransformPreview
... so that clipping is done properly.
2018-01-28 16:37:34 -05:00
Ell
cc20cb41f3 app: add gimp_transform_polygon()
gimp_transform_polygon() transforms an (open or closed) polygon by
a GimpMatrix3, performing clipping to the near plane, to avoid
erroneously transforming points behind the camera.
2018-01-28 16:37:33 -05:00
Ell
7dfe81f13d configure.ac: require GEGL >= 0.3.29 2018-01-28 16:37:33 -05:00
Jehan
ee6e981c04 app: remove the "save your work and restart" advice on fatal errors.
This is obviously not possible anymore to do this manually so this step
is bogus in a crash case. We keep this step for other (non-fatal)
errors. We may add an automatic "attempt" to save in a backup file
later, which may not work depending on how bad the crash is (which is
why it will be done in a backup file, we don't want to corrupt saved
files).
2018-01-28 20:15:49 +01:00
Piotr Drąg
def98c5983 Update Polish translation 2018-01-28 20:02:58 +01:00
Piotr Drąg
0ac29c0b61 Update POTFILES.in and POTFILES.skip 2018-01-28 19:06:13 +01:00
Jehan
07e8ce3604 app: add SIGABRT to be handled by gimp_fatal_error().
SIGABRT is definitely a fatal error, at least in GIMP context. It is
used by g_assert() and more generally by abort().

Actually I am a bit unsure about the difference of gimp_terminate() and
gimp_fatal_error(). The former mostly depends on whether we used
--debug-handlers or not, which reads "Enable non-fatal debugging signal
handlers". But the way we handle them, the list of signals handled by
gimp_terminate() seem to always end up fatal as well, anyway. So either
we should *really* make them non-fatal (I could imagine that SIGTERM or
SIGINT indeed could be better handled for instance), or we should just
get rid of this terminate/fatal_error differentiation which seems
totally artificial and non-existing in the current code.
2018-01-28 18:21:03 +01:00
Jehan
fe3cf08094 app, tools: title capitalize the debug dialog titles.
Also rename it to "GIMP Debug" and "GIMP Crash Debug" for continuable
errors and fatal errors respectively.
2018-01-28 17:31:47 +01:00
Jehan
b8fa968b79 app: add backtraces on warning messages in GIMP_UNSTABLE. 2018-01-28 17:20:11 +01:00
Jehan
b318694bb2 app, tools: install the debug tools in libexec when appropriate.
AFAIK this means on all platforms but Win32 and macOS which would rather
need relative path and therefore cannot make use of build-time
LIBEXECDIR. Anyway on these platforms, leaving the binary in BINDIR is
not likely to "pollute" too much as it would on Linux or BSD where
people often use terminal.
2018-01-28 15:43:07 +01:00
Jehan
4e5a5dbb87 app: make the backtrace GUI actually work on Win32.
It was previously untested, hence as expected needed fixes. First I add
our own exception handler using Win32 API SetUnhandledExceptionFilter().
Second, I reorder things so that ExcHndlInit() is run after this setter,
since they will be executed as a FILO and we need backtraces to be
generated before our separate GUI runs. Last I run the backtrace GUI as
async. No need to keep the main GIMP waiting since the traces have
already been generated into a separate file.

Also replace gtk_show_uri() by the implementation taken straight from
our web-browser plug-in, since apparently gtk_show_uri() doesn't work in
Windows (and probably not macOS either since I see we have a separate
implementation for this platform as well). I would like to be able to
use the PDB but can't because this code needs to be usable both within
the main process and into a separate tool process. Ideally, this should
just be a utils function which could be included without a problem.
2018-01-28 15:43:07 +01:00
Jehan
a3a4df9528 app, tools: various fixes for Win32 build.
* Type pid_t is not cross-platform. Just use int instead, and convert it
  to respective type on each platform.
* Get rid of several useless include which should have been removed a
  few commits ago, when I reimplemented the backtrace function.
* Better handle the various macros in gimp_eek() (between G_OS_WIN32,
  HAVE_EXCHNDL and GIMP_CONSOLE_COMPILATION, but also no_interface and
  generate_backtrace options, that was a bit messy).
* Make gimpdebug now always built, whatever the platform.
2018-01-28 15:43:07 +01:00