Commit Graph

40426 Commits

Author SHA1 Message Date
29d7cee100 configure.ac: add new option --enable-bundled-mypaint-brushes
because a simple platform dependency in gimpcoreconfig.c doesn't do
the trick (there can be both manual builds and bundled builds on
windows and macos). Use an AC_DEFINE() instead.

Also, make sure the system gimprc and its manpage are generated with
the correct values.
2018-03-30 14:41:13 +02:00
452b1bd558 Stop leaking properties of the distcheck machine into the tarball
Some gimprc properties' default values depend on the machine where
"make dist" in run. We had an ugly hack in place to force
(num-processors 1) in the installed system gimprc and its manpage, but
were still leaking "tile-cache-size" and "mypaint-brush-path".

The files are generated by the hidden options --dump-gimprc-system
and --dump-gimprc-manpage which exist only for this purpose.

In gimpconfig-dump.c, special case the three properties in
dump_gimprc_system() and dump_gimprc_manpage() to output constant
default values for "num-processors" and "tile-cache-size" and
output @mypaint_brushes_dir@ in "mypaint-brush-path" which can
be replaced at configure time.

Also introduce etc/gimprc.in so @mypaint_brushes_dir@ can actually be
substituted for the installed system gimprc.
2018-03-30 13:19:22 +02:00
4698529dbe app: make MyPaint brushes path relative on Win32 and macOS.
Otherwise the brushes won't be found when bundling on macOS or with the
Windows installer. Build-time path from configuration is still used on
other platforms.
2018-03-29 22:22:51 +02:00
8811e31419 app: cleaning out some if-0 variables. 2018-03-29 17:47:48 +02:00
479bcaafdd configure, docs: set correct "mypaint-brush-path" value in man page.
This was hard-coded to what I guess was a personal prefix (commit
368c7c0511), which is obviously wrong. This has to be constructed at
compilation and the man must mirror whatever is the actual installation
path of mypaint-brushes package.
2018-03-29 17:26:23 +02:00
5d83c7697e devel-docs: minor typo. 2018-03-29 17:26:23 +02:00
7c1ea0345e configure.ac: fix check for freetype2 2018-03-29 12:25:27 +02:00
dbb9fdb333 Update Catalan translation 2018-03-29 11:58:32 +02:00
Ell
53c145c0be app: add --show-debug-menu command-line option
The debug menu is currently not included in stable versions.

Include the menu unconditionally, but hide it, and its associated
actions, by default in stable versions.  Allow enabling the menu
using a new --show-debug-menu command-line option, in the same vein
as --show-playground.
2018-03-29 05:26:03 -04:00
Ell
c3efb1b0de app: don't show invisible actions in search dialog 2018-03-29 05:26:02 -04:00
Ell
3265797f3e Bug 794753 - do not dither image mask and channels for imported images
By the same logic of commit
44f293bcdb, we shouldn't dither the
alpha channel either.
2018-03-29 03:30:31 -04:00
Ell
9cabee5451 app: call gimp_progress_end() at gimp_image_convert_dither_u8() exit 2018-03-29 03:30:31 -04:00
527ad94a7e Bug 794772 - detect freetype2 using pkg-config.
I hesitated keeping both the pkg-config and freetype-config (which is
mostly a wrapper to pkg-config nowadays apparently) as fallback, but
anyway I can see in their repositories that they have a pkg-config file
since 2003. Really I don't think it makes sense to hold onto such old
and deprecated dependency configuration systems.
2018-03-28 19:48:16 +02:00
44f293bcdb Bug 794753 - do not dither image mask and channels for imported images
When "Dither images when promoting to floating point" is checked in
Preferences, apply dithering on layers and keep image mask and channels
unaltered.
2018-03-28 17:15:06 +02:00
c5ebf29065 Bug 794747 - Multiple GIMP-WARNINGs about duplicate accelerators on startup
Turn the g_warning() into a g_printerr().

Duplicate accelerators should not trigger a WARNING, because they come
from a config file and there is nothing that can be fixed in the code
to prevent that.
2018-03-28 14:48:05 +02:00
60e01f5593 app: fix error reporting in gimp_tool_preset_deserialize_property()
when setting a custom parse error with g_scanner_error() we *must*
return G_TOKEN_NONE as expected token, or general GimpConfig error
handling will try to overwrite our error with its generic "unexpected
token" message, which triggers a warning.
2018-03-28 01:17:39 +02:00
69d5201d59 app: fix formatting in previous commit 2018-03-28 00:44:33 +02:00
a7b0d55fc5 app: only create GeglBuffer wrapper for cairo-data when used
As suggested by massimo in bug #694917, move unconditional creation/destruction
of a wrapper GeglBuffer object from top-level scope of the function to the
single conditional scope where it is used.
2018-03-28 00:37:06 +02:00
0fe50c76f8 Update Arabic translation 2018-03-27 15:47:41 +02:00
Ell
5614cd444d app: in gimp_image_convert_precision(), report progress for selection mask 2018-03-27 09:39:52 -04:00
Ell
cf658f64b5 Bug 794721 - CRITICAL converting image precision
In gimp_image_convert_precision(), don't overwrite the 'progress'
parameter with the object queue, since we need to call
gimp_progress_end() on it at the end of the process.
2018-03-27 09:39:52 -04:00
7f96c9e7c6 Updated Italian translation 2018-03-27 12:25:33 +02:00
Ell
956ca8e3a3 app: small fix to gimp_operation_buffer_source_validate_process()
Fix tile-grid realignemnt after intersecting the ROI with the dirty
region.
2018-03-26 19:15:20 -04:00
e5e14b3898 configure.ac: bump version to 2.10.0-RC1 2018-03-27 01:07:28 +02:00
368c7c0511 docs, etc: default gimprc and its manpage regenerated by distcheck 2018-03-27 01:07:28 +02:00
Ell
caa3a98f04 Bug 790810 - Nested layer groups lead to a deadlock with multithreading
In gimp_operation_buffer_source_validate_process(), align the ROI
to the tile grid *before* intersecting it with the validate-
handler's dirty region.  This is necessary since, even though
subsequent operations will only read data within the ROI, the
entire tiles containing the ROI will be fetched, resulting in an
area potentially greater than the ROI.  We need to validate this
area in advance, or else it will be validated as part of the
subsequent operations, which can lead into the same deadlock we're
trying to prevent.
2018-03-26 19:04:34 -04:00
e4d2de7dde Update Polish translation
String freeze, eh?
2018-03-26 23:55:30 +02:00
8c0d30004f NEWS: some small fixes 2018-03-26 23:42:46 +02:00
7409c98893 devel-docs: add OS support specific information.
I create this file so that we can refer to it to know whether we can use
a OS-specific API, or if we want to know if we can safely bump a
dependency, etc.
2018-03-26 23:32:38 +02:00
ce3899e722 libgimpwidgets: gimppickbutton-quartz: do not release color_space
The color_space reference should not be released because it was obtained
with a Get-function, which means we do not have ownership.
2018-03-26 22:59:01 +02:00
0e9e167da8 libgimpwidgets: make pick button quartz work on macOS < 10.12
The symbol CGColorSpaceCopyICCData() is only available on macOS 10.12
and higher. We want GIMP to run from 10.9 onwards, so use the older
symbol CGColorSpaceCopyICCProfile() even though this one is deprecated.
2018-03-26 22:59:01 +02:00
Ell
b2d40eb994 data: don't install gimp-splash.xcf
We only need it in git.
2018-03-26 15:37:01 -04:00
a6fd24a953 Bug 793951 - Fix crashes when some external APIs fail
Check the return values of some functions and set errors or print
a message to stderr if they fail.
2018-03-26 21:27:42 +02:00
fae9c28354 app: splash max size now half of width and height.
Apparently former 2/3 value was too big according to some.
This makes the splash take now at most a quarter of the screen area. I
really don't think that's too much anymore.
2018-03-26 21:20:17 +02:00
b6fbf37730 Update Swedish translation 2018-03-26 18:04:34 +00:00
7c4f7c53ea Bug 794679 - warning on scrolling in the gradient dock
Validate all enum fields in gimp_gradient_load(), and reject
gradients with out-of-range values.
2018-03-26 18:54:43 +02:00
Ell
806d1b0510 app: fix resizing of image-sized layers when resizing canvas
In gimp_image_resize_with_layers(), calculate the set of resized
layers before changing the image size, so that we correctly
identify image-sized layers w.r.t. the old image size.  (Fixes
commit 139a23451ddc588c91610f67daa799afc2f89080.)
2018-03-26 04:38:47 -04:00
20fc93fde0 devel-docs: update the release procedure regarding appdata contents. 2018-03-26 01:41:32 +02:00
2cf6d88ac1 desktop: 2.10.0-rc1 will actually be released on the 26th. 2018-03-26 01:31:26 +02:00
9f3ee499c1 app: run errors_init() after gimp_load_config().
Since error handling is based on preferences, the config needs to be
loaded first. Otherwise the gimp->config object does not exist yet and
we get a bunch of "'G_IS_OBJECT (object)' failed" assertion which
recurse in error handling when trying to get the "debug-policy"
property.
Just init the error handling later. It means it won't handle early
loading code, but that is not much of an issue.
2018-03-26 01:22:36 +02:00
3261e03d22 Update Russian translation 2018-03-25 23:28:06 +03:00
f561231e1f app: various speedups to gimp_brush_core_color_area_with_pixmap()
In gimp_brush_core_color_area_with_pixmap(), use the native area
format when painting the brush, instead of always going through
"RGBA float", and create the pixmap -> area fish only once, instead
of once per scanrow.

In gimp_brush_core_paint_line_pixmap_mask(), avoid modulus
calculation at each pixel.

See bug #694917.
2018-03-25 15:22:47 -04:00
67041d6b82 Update Polish translation 2018-03-25 20:45:38 +02:00
05a1dadf66 Add new splash screen with undecipherable easter egg, both PNG and XCF 2018-03-25 21:38:04 +03:00
Ell
e931d354ab build: update Windows installer splash for 2.10 RC 2018-03-25 13:31:26 -04:00
923ffb7e53 devel-docs: adding new splash requirements.
Current splash is not right within these requirements. But that's all
right for this RC.
These requirements are meant to be followed from next release.
2018-03-25 18:19:24 +02:00
Ell
5763b50d45 app: round layer bounds to global pixel grid when scaling image/group
Add gimp_item_scale_by_factors_with_origin(), which is an extension
of gimp_item_scale_by_factors(), taking the input/output points of
origin for the transformation (both of which are (0, 0) in the case
of gimp_item_scale_by_factors()).  Implement
gimp_item_scale_by_factors() in terms of the new function, and Use
the new function when scaling group layers, instead of manually
calculating the children boundaries, so that the behavior is
uniform across whole-image scaling and group-layer scaling.

The new function rounds all four edges of the boundary to the
image-global pixel grid, instead of only rounding the top/left
edges to the global grid, and the bottom/right edges to the item-
local grid.  This preserves layer-adjacency when scaling.
2018-03-25 11:46:42 -04:00
Ell
139a23451d app: use GimpObjectQueue in lots of places
Use GimpObjectQueue, added in the previous commit, in various
instances where we perform an action on a set of objects.  This
improves progress reporting, by using a single progress for the
entire operation, rather than reporting the progress of each object
individually, and by taking the relative cost of each object into
account, instead of assuming a uniform cost for all objects.

In particular, this affects the various whole-image operations
(i.e., transformations and color conversions), operations on linked
items, and operations on layer groups.  This also affects layers
with masks, whose progress is now reported together instead of
individually.

Additionally, this commit fixes erroneous group-layer mask cropping
during undo when resizing the image, by properly calling
{start,end}_move() on all the resized layers before starting the
operation, and when scaling the image, by only scaling top-level
layers, and letting group layers scale their children themselves.
2018-03-25 11:46:42 -04:00
Ell
3ee5054eb7 app: add GimpObjectQueue
GimpObjectQueue implements a queue of GimpObjects.  It derives from
GimpSubProgress, and hence can be used as a GimpProgress object.
It keeps track of the total memsize of the objects that were
pushed-to and popped-from the queue, and uses these numbers to set
the corresponding subrange of the progress object when an object is
popped.

This provides an easy way to perform an operation on a set of
objects, correctly reporting progress based on the relative sizes
of the objects, which is assumed to be a good estimate of the
relative cost of processing each object.
2018-03-25 11:46:42 -04:00
Ell
0f532787c9 app: add "progress" property to GimpSubProgress
Make the parent GimpProgress object of a GimpSubProgress instance
settable through a property during construction, so that we can use
it as a base class.
2018-03-25 11:46:42 -04:00