Commit Graph

40426 Commits

Author SHA1 Message Date
Ell
700cc33bec configure.ac: require a C++11 compiler
The following commits use C++11 lambdas.
2018-04-04 17:49:46 -04:00
Ell
394c930fbe app: avoid potential division by 0 in dashboard CPU usage sampler 2018-04-04 17:49:46 -04:00
fa02a2c64f libgimp: add an exception handler for Windows.
Drmingw already added its own exception handler which generates crash
traces in a text file, for plug-ins as well. This additional handler is
run after Drmingw handler and allows us to do things on our own, and in
particular we could display the content of the debug traces.

Right now it simply prints these to stderr, which actually won't be of
much use on Win32, first because the console is deactivated on stable
releases, also because after tests, it doesn't look like even running
GIMP from cmd outputs to console either.

We currently don't use the same debug dialog as the core on purpose,
because we don't want everyone to send us traces for every unmaintained
third party plug-ins out there. But we should definitely allow easier
trace possibilities at some point, first to improve/debug our own core
plug-ins, and also to help third party plug-in developers!
So this commit is not making visible changes yet but is actually a first
step towards these debugging goals.
2018-04-04 20:25:29 +02:00
76bce77d09 libgimp: various warning fixes for Win32. 2018-04-04 06:32:33 +02:00
9c8a8ae576 libgimp: do not end the fatal and signal handlers with gimp_quit().
When ending with gimp_quit(), GIMP was not displaying the "Plug-in
crashed" error dialog, which is not good, since we lose the crash
feedback for plug-ins. Just let the plug-in continue its normal run in
order to get the error dialog.
Also protect the tracing functions, which are not working on Win32.
2018-04-04 04:47:43 +02:00
e98b937643 libgimp: add a gimp_fatal_func() allowing stack tracing plug-ins on...
... various crashes.
2018-04-04 04:33:19 +02:00
6bcb30e1ee devel-docs: update debugging-tips.txt regarding --stack-trace-mode...
... for plug-in debugging as well.
2018-04-04 04:13:28 +02:00
c46211190f libgimp: properly catch SIGABRT signal.
SIGABRT was in the switch list in gimp_plugin_sigfatal_handler(), but it
had not been properly handled with gimp_signal_private(), making this
switch case useless. Fix this oversight, and while doing so, move it in
the "fatal error" list for which we may generate stack traces, similarly
to core signal handling. Indeed this signal can definitely happen during
various kinds of common bugs and needs to be debugged.
2018-04-04 04:08:57 +02:00
6936a655bd plug-ins: minor fix of an error string.
Was reading this part of the code when I saw this: the error happens
when loading not exporting a PNG.
2018-04-04 02:21:47 +02:00
33822c51c2 app: check if tool control is active before setting modifier state.
Similar to commit 845eb522b6, I had a CRITICAL which happened on a
device_changed, triggering gimp_display_shell_update_focus(), this time
in focus in.
2018-04-04 01:00:55 +02:00
7230d5d777 Bug 794356 - Rulers always shown for subsequent image views
Remove the connect_after() hack from GimpImageWindow again and instead
add gimp_display_shell_canvas_realize_after() and restore the configured
ruler visibility there. Should work for all cases now.
2018-04-03 22:36:17 +02:00
65a697ff67 app: switch the first two args of gimp_channel_new_from_buffer() 2018-04-03 21:57:43 +02:00
de0706f3f1 Updated French translation 2018-04-03 11:47:17 +02:00
cdc20c9c79 Updated French translations 2018-04-03 10:57:46 +02:00
Ell
bbd79f9d62 app: fix Wilber's eyes
Commit fd6d4931c8 accidentally
introduced a bug that caused Wilber's eyes to misbehave.  This
commit is an attempt to fix this issue.  Unfortunately, it seems
like the bug can still be triggered through a certain sequence of
actions...
2018-04-03 03:32:32 -04:00
b46b9d8921 Bug 772126 - Make GimpColorFrame handle very long numbers
Add "ellipsize" property to GimpColorFrame and set it to
PANGO_ELLIPSIZE_END in the the pointer information dockable.

Better cut off long numbers than make them expand the dock.
2018-04-03 01:47:53 +02:00
5e2600db1e NEWS: keep up-to-date. 2018-04-03 00:49:56 +02:00
cad72b1432 app: remove unused variable in gimp_tile_handler_validate_command() 2018-04-02 23:23:54 +02:00
Ell
4acdc7392a app: use gegl_tile_handler_damage_rect() in TileHandlerValidate
Use the recently-added gegl_tile_handler_damage_rect() function
during GimpTileHandlerValidate invalidation, instead of manually
voiding the tile pyramid.  This function avoids voiding mipmapped
tiles entirely when only a subarea of the tile needs to be redrawn.

See GEGL commit 3210f4ffc3c569a2acd9483811cb141070112bc6.
2018-04-02 16:47:45 -04:00
Ell
da3c96f541 app: add "misc" group to the dashboard
... which currently has a single "mipmapped" field, which shows the
total size of processed mipmapped data.
2018-04-02 16:47:45 -04:00
Ell
4c041b2e8a app: allow hiding groups in the dashboard
Add a "groups" submenu to the dashboard popup menu, which can be
used to control which groups are shown in the dashboard.
2018-04-02 16:47:41 -04:00
ea48b9f31c Bug 794356 - Rulers always shown for subsequent image views
gimp_image_window_constructed(): connect_after to the notebook's
"switch-page" signal so gimp_display_shell_appearance_update() is
called after gimp_display_shell_canvas_realize(). Just another hack
to fix the hack...
2018-04-02 22:21:41 +02:00
8a24de6557 app: fix dashboard help id.
It was using the errors dialog help id. Probably just copy-paste error.
2018-04-02 18:52:31 +02:00
d779c13891 app: do not edit symmetry variables but properties.
If variables are edited directly, in some cases, the GUI and the
symmetries may end up out-of-sync. The variable can only be edited
through property setting.
2018-04-02 18:49:23 +02:00
3c1516ea50 app: mirror positions 0.0 are accepted.
This value is actually used as a special value when removing a guide to
get rid of a symmetry, in particular it is set in the guides' callback
gimp_mirror_guide_removed_cb() for "removed" signal.
If not setting to 0, when adding back a symmetry, it starts with weird
low or high values near to border (whereas when set to 0, it is reset to
default position afterwards).
2018-04-02 17:44:01 +02:00
6501faf90d Update Swedish translation 2018-04-02 14:34:53 +00:00
f242bf4d92 appdata: Install appstream metadata to non-deprecated directory
https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#spec-component-location

https://bugzilla.gnome.org/show_bug.cgi?id=794884
2018-04-02 01:09:21 +02:00
15041e8ff7 NEWS: starting the news for 2.10.0.
Note that it might be a 2.10.0 RC2 instead. It will depend on whether we
decide to make a second release candidate (better process and safer) or
release earlier and go forward.
2018-04-02 00:18:09 +02:00
617d0c4550 etc: add 4K Ultra HD template and fix DCI 4K.
The dimension currently set in DCI 4K were rather ones of common 5K.
2018-04-01 23:44:22 +02:00
c9df2a6879 app: do not raise a warning when failing to deserialize symmetry...
... parasite.
Not sure if that should be considered a bug. On one hand, it should
because that's core code. On the other hand, symmetry saving currently
uses parasites, which is a feature which can also be used by people
randomly. So "theoretically", there could be any data in a parasite and
we should not assume specific format.
Anyway still keep the error message but just print to standard error
output instead. Also print a bit more details (parasite name and
contents) as it would help for debugging when such a case were to occur.
2018-04-01 18:20:26 +02:00
e0029d31b4 Bug 792520 - Image symmetries should be saved: version the properties.
Care for future changes of symmetries, by adding a version property. For
now, all symmetries are at version 0, and no real check is done. If any
symmetry bumps its settings in the future, it will have to override also
update_version() to change settings properly if necessary, according to
any new behavior.
2018-04-01 17:51:07 +02:00
65717041ed app: save image symmetries in the XCF file.
Symmetries are saved in a parasite, which is backward compatible.
2018-04-01 15:08:48 +02:00
9090a98498 app: fix new g_object_ref() warnings in gimp_filter_tool_edit_as()
g_object_ref() now returns the same type that was passed in. Cast the
argument to GObject* to match the variable the return value is
assigned to.
2018-04-01 14:55:11 +02:00
fe932fe7ad Bug 794826 - Do not default to last used filter settings
Add GimpGuiConfig::filter-tool-use-last-settings wchich defaults to FALSE.

Honor the new option in gimp_gegl_procedure_execute_async() and add
it to prefs -> dialog defaults.
2018-04-01 14:41:20 +02:00
14a054e980 app: add a "Filter Dialogs" section to prefs -> dialog defaults 2018-04-01 14:15:13 +02:00
62ec4831db app: ...and a mnemonic. 2018-04-01 14:01:14 +02:00
44ce8b4dd8 app: a colon was missing after "Debug Policy" in preferences
and it's "Debug policy" (capitalization).
2018-04-01 13:58:42 +02:00
f586aac43a app: use g_clear_foo() in gimp_gegl_procedure_finalize() 2018-04-01 13:54:47 +02:00
e55c94eff0 Bug 794854 - Brush color is not added to color history in smudge tool
Add the color in gimp_smudge_paint(INIT) like GimpPaintbrush does.

Achieve this by calling gimp_palettes_add_color_history() directly,
not by inheriting GimpPaintbrush because GimpPaintbrush and GimpSmudge seem to share few common features.
2018-04-01 12:57:27 +02:00
019af3dacb file-open-location: don't close dialog if no file was opened 2018-04-01 12:40:57 +02:00
a4b366f494 file-open-location: disable widgets only while opening a file 2018-04-01 12:40:57 +02:00
33b7d8e334 file-open-location: create only one progress bar 2018-04-01 12:40:57 +02:00
Ell
fd6d4931c8 It's alive! 2018-04-01 01:19:41 +00:00
a3071d2620 configure.ac: require babl >= 0.1.45 and GEGL => 0.3.31
and set gimp_version to "2.10.0-RC1-git" so we can distinguish it
from the RC1 tarball.
2018-03-31 18:39:53 +02:00
04a798d786 app: do not copy needlessly paint_mask GimpTempBuf.
We are not doing any write operation on this mask data so copying all
the data just to read it and unreffing it in the end is only a cost on
performance.
See also bug 694917.
2018-03-31 16:54:53 +02:00
Ell
49285463e6 app: align projection update area to coarse grid
When adding a rectangle to a projection's update area, align the
rectangle to a coarse grid, to reduce the complexity of the overall
area.  We currently align the rectangle to a 32x32 grid, which
seems to be a good tradeoff between the overhead of processing a
complex area, and the overhead of processing a large area.
2018-03-31 08:19:18 -04:00
7be2d1457c app: use gimp_config_writer_string() to output the mypaint-brush-path
so it is properly escaped.
2018-03-31 11:28:12 +02:00
2aa4426d4f app: improvements in code executed a lot while painting.
This keeps the same rectangle packing behaviour, so to behave exactly as
before for what concerns batching the updates, but should be lighter
when looping to find the first good rectangle to use.

In rtree_insert(), some conditions in the if tests are implied by
previous conditions. And therefore the 2 successive for loops are
actually identical.

In rtree_node_insert(), it is wrong/harmful to insert zero sized
rectangles in the tree because they can never be selected and just make
the list longer. So rtree_node_create() should just return NULL when w
or h are 0.

See bug 694917, comments 51 to 61.
2018-03-31 00:18:46 +02:00
31086ae211 Update Polish translation 2018-03-30 22:00:14 +02:00
347acb16d3 desktop: add gimp-data-extras.metainfo.xml to .gitignore
and some cosmetic cleanup in Makefile.am
2018-03-30 15:53:19 +02:00