Commit Graph

39369 Commits

Author SHA1 Message Date
Ell 5a28753924 app: add abbreviations for layer modes
Add abbreviated versions for long layer mode names.  In particular,
replace the "(legacy)" suffixes with "(l)" in the abbreviated
versions.
2017-11-30 04:46:46 -05:00
Ell f80f33216f libgimpbase: use abbreviations for GimpGradientType
Move the abbreviated descriptions to the "abbrev" parameter, and
use full strings for the descriptions.
2017-11-30 04:45:08 -05:00
Ell a08a9171d7 app: modify unabbreviated value descriptions of GimpGradientColor
... to match the old gradient editor menu labels.
2017-11-30 04:45:08 -05:00
Dimitris Spingos (Δημήτρης Σπίγγος) 91f7f90262 Update Greek translation 2017-11-30 11:03:02 +02:00
Luis Angel Gonzo 8fbac7090a Update Spanish translation 2017-11-30 08:29:09 +00:00
Ell c8b4c0686c app: use ICON_ONLY layout for group combo in GimpLayerModeBox
Use gimp_int_combo_box_set_layout() to set the mode-group combo box
layout to ICON_ONLY, instead of manually constructing an icon-only
cell-layout.
2017-11-30 03:10:15 -05:00
Ell d3e527a959 libgimpbase, app: add abbreviations to gradient enums
The value descriptions of GimpGradientColor,
GimpGradientSegmentColor, and GimpGradientSegmentType enums appear
in the on-canvas gradient editor UI, as combo-box items in the tool
GUI overlay.  Since we want to keep the overlay as small as
possible, we previously used abbreviations for these descriptions
(e.g., "FG (t)", instead of "Foreground (transparent)").

Replace the abbreviated descriptions with unabbreviated ones, and
move the abbreviations to the "abbrev" parameter.  This way we get
the abbreviated version in the combo-box, and the full version in
the combo-box's menu.
2017-11-30 03:10:15 -05:00
Ell 0f43dedfb5 libgimpwidgets: use ABBREVIATED layout for GimpEnumComboBoxes ...
... using enum models with abbreviated labels
2017-11-30 03:10:14 -05:00
Ell 47ac6111de libgimpwidgets: add "layout" property to GimpIntComboBox
The "layout" proerty controls the combo-box layout (but not its
menu layout), and can be one of:

  - ICON_ONLY:  Only show icons.

  - ABBREVIATED:  Show icons and abbreviated labels (or full
    labels, when there is no abbreviation).

  - FULL:  Show icons and full labels.  Default.

Avoid reconstructing the combo's cell-layout when the menu is
shown/hidden, by maintaining the combo's cell-layout and the menu's
cell-layout separately (probably a terrible hack, but one we already
use :P).
2017-11-30 03:10:14 -05:00
Ell 658d07dffe libgimpwidgets: fill ABBREV column in GimpEnumStore
Use gimp_enum_value_get_abbrev() to fill the ABBREV column of
GimpEnumStore.
2017-11-30 03:10:14 -05:00
Ell 684c850196 libgimpwidgets: add ABBREV column to GimpIntStore
... which holds an abbreviated label, or NULL to use the normal
label.
2017-11-30 03:10:14 -05:00
Ell f7d6805ebb */Makefile.am: add abbreviations to generated enum files
Update the dprod production of generated enum files to include
abbreviated value descriptions, as per the previous commits.

Add a comment for translators above the abbreviated descriptions,
specifying the full description they abbreviate.
2017-11-30 03:10:14 -05:00
Ell 4b521435a1 gimp-mkenums: add @if@ conditional inclusion
Add an "@if (<cond>)@ <text> @endif@" conditional-inclusion
construct to all productions, which expands to <text> if <cond> (a
perl condition) is true, or to nothing otherwise.
2017-11-30 03:10:14 -05:00
Ell 300eb7e6c7 gimp-mkenums: add @valueudesc@, @valueuhelp@, @valueuabbrev@ subs.
... which expand to the untranslated version of the value
description, help, and abbreviation, respectively.
2017-11-30 03:10:14 -05:00
Ell 627a2b8ded gimp-mkenums: add @valueabbrev@ substitution
Allow enum files to specify abbreviated value descriptions, using
an 'abbrev="foo"' comment, and add a @valueabbrev@ substitution for
vprod and dprod, which expands to the corresponding abbreviation
(or to NULL, if no abbreviation is specified for the value).
2017-11-30 03:10:14 -05:00
Ell bbcb66dbd4 gimp-mkenums: tabs-to-spaces, indentation, and trailing-space cleanup 2017-11-30 03:10:14 -05:00
Ell 7df427583f libgimpbase: add gimp_{enum,flags}_value_get_abbrev()
Add support for specifying an abbreviated description for enum/
flags values, which can be used in contexts where the full
description is too long.

Since the exact layout and size of Gimp{Enum,Flags}Desc is part of
the ABI, we can't simply add a field to these structs to hold the
abbreviated description.  Instead, we use the fact that entries
with a repeated value in the value descriptions array are ignored,
and that the array is NULL terminated (in particular, that all non-
NULL entries are followed by at least one additional entry), and
specify the abbreviation in the "value_desc" field of the entry
that immediately follows the initial entry for a given value,
setting the "value" field of both entries to the same value.

Right now this behavior is undocumented, so there is no proper way
to specify abbreviated descriptions in the API, and is only meant
to be used in generated enum files.
2017-11-30 03:10:13 -05:00
shark0r 10e3295581 Bug 790911 - fix jaggy stroke in Tiling Symmetry Painting 2017-11-29 01:13:48 +01:00
Dimitris Spingos (Δημήτρης Σπίγγος) 5ec5781c3a Update Greek translation 2017-11-28 16:14:32 +02:00
Hanno Boeck 702c4227e8 790783 - buffer overread in XCF parser if version field...
...has no null terminator

Check for the presence of '\0' before using atoi() on the version
string. Patch slightly modified (mitch).
2017-11-27 00:49:05 +01:00
Piotr Drąg f9125b514b Update Polish translation 2017-11-26 18:34:13 +01:00
Ell 2ff52af5a9 Bug 790810 - Nested layer groups lead to a deadlock with multithreading
Temporarily disable multithreading for GimpOperationLayerMode, to
avoid the deadlock.  The environment variable
GIMP_MULTITHREADED_COMPOSITING can be set to reenable it, for the
sake of debugging.
2017-11-26 10:54:41 -05:00
Jehan d228e76ebe app: fix memory leak.
GMatchInfo data created by g_regex_match() must be freed.
2017-11-26 04:01:19 +01:00
Jehan 120fda66e7 NEWS: fix some typo.
Encountered while reviewing older NEWS!
2017-11-26 03:56:55 +01:00
Jehan 1e78d3d249 plug-ins: make Darktable version checking more generic.
I realize that on Fedora 27, the output of `darktable --version` is:
"this is darktable darktable-2.2.5-4.fc27"
This is different from the expected output in our plug-in ("this is
darktable 2.2.5"). I assume this version string can be customized and
distribution packagers will use the capability. So a regular expression,
in a slightly more flexible fashion would be better. I still assume that
the version string with start with "this is darktable", but then I
accept any non-number string until I reach a common major.minor.patch
version-looking string.
2017-11-26 03:56:55 +01:00
Jordi Mas 717cd7881e Update Catalan translation 2017-11-25 22:05:33 +01:00
Ell eeddd13209 Revert "app: make GimpTileHandlerValidate thread safe"
This reverts commit 4bd118ec8a.

The mutex introduced by the above commit should no longer be
necessary, after GEGL commit
8b034c437b0162b26f85eb80867914977ac3cf57.
2017-11-24 14:10:47 -05:00
Ell 35b0f6102e app: update group-layer item offset after updating offset node
When the group's offset changes, update the item's offset *after*
updating the group's offset node, so that the item's offset nodes
and the group's offset node are in sync when the corresponding
"notify" signals are emitted.
2017-11-24 12:34:25 -05:00
Ell 5180c01045 configure.ac: require GEGL >= 0.3.24 2017-11-24 08:42:04 -05:00
Luis Angel Gonzo 61262f6e8e Update Spanish translation 2017-11-24 11:33:28 +00:00
Jehan 4355088644 app: layer's Blend|Composite Space|Mode actions labels too long.
Same as for the color tags issue, short labels look much better in
menus. On the other hand, the longer description needs to be as a
tooltip, otherwise there is not enough information in the action search
to distinguish one action purpose from another.
2017-11-23 20:40:49 +01:00
Jehan d88a09334d app: get rid of more abused GIMP_ICON_CLOSE on *-color-tag-menu.
I just replaced them by NULL. I don't think that is really necessary to
have any icons on these.
2017-11-23 20:40:49 +01:00
Ell fa25b476be icons, modules, libgimpwidgets: add clip-warning display filter icon
... and use it instead of gimp-warning.
2017-11-23 13:34:49 -05:00
Ell b6cb1d167c Bug 790631 - C plug-ins instability when processing gegl graphs ...
... with several threads

Commit d8ae581703 didn't go far
enough in protecting GimpTileBackendPlugin against race conditions.
The underlying GimpTile cache is shared across all drawables, so we
must use a common lock for all instances of GimpTileBackendPlugin,
instead of one per instance.

Do just that -- replace the per-instance mutex of
GimpTileBackendPlugin with a global one.  This makes
GimpTileBackendPlugin instances thread-safe w.r.t. themselves, and
w.r.t other GimpTileBackendPlugin instances.  However, we don't aim
to make GimpTileBackendPlugin thread-safe w.r.t. other libgimp
functions at this point, since the original API has never been
thread-safe.
2017-11-22 04:38:07 -05:00
Øyvind Kolås 9c0dac9e6d app: heed deprectation warning of gegl_operation_context_get_source 2017-11-21 20:21:25 +01:00
Tobias Stoeckmann 30d29e03f8 Bug 789614 - Fix heap overflow in pattern handling
It is possible to trigger a heap overflow while opening a malicious
pattern due to integer overflows.

The validation is adopted from plugin-parser. It also takes a proper
cast to gsize to avoid integer overflow in size calculation.
2017-11-20 23:10:36 +01:00
Ell d8ae581703 libgimp: make GimpTileBackendPlugin thread safe
The entire libgimp tile code is not thread safe.  For now, do the
easy thing, and protect GimpTileBackendPlugin with a mutex.
2017-11-20 09:18:41 -05:00
Michael Natterer a30f855981 configure.ac: require babl >= 0.1.38 2017-11-20 12:53:59 +01:00
Tobias Ellinghaus c10c640451
plug-ins: Hide darktable debug output
Only show debugging messages from the darktable raw loader when the
environment variable DARKTABLE_DEBUG is set.
2017-11-20 12:48:47 +01:00
Piotr Drąg 3c7ade6423 Update Polish translation 2017-11-20 03:26:46 +01:00
Jehan 39d03909dc app: s/GIMP_ICON_CLOSE/GIMP_ICON_EDIT_CLEAR/ for *-color-tag-none.
This part of commit 189a474502 was still
right. Keep it.
2017-11-20 02:44:44 +01:00
Jehan e3f8b470d2 Revert "app: copy *-color-tag-* tooltips into labels."
This reverts commit 189a474502.
As Mitch notes, this does not look that good in the menus. As for the
action search, since the tooltip is still shown below, the shortness and
duplication of the action labels make it less a problem.
2017-11-20 02:40:16 +01:00
Piotr Drąg 1b804e5770 Update Polish translation 2017-11-19 20:21:12 +01:00
Michael Natterer 7e613516a2 Bug 788403 - When importing an image, don't change to "untitled"...
...after exporting the image

Call gimp_image_name_changed() in both gimp_image_clean_all() and
gimp_image_export_clean_all() so we clear the cached displayed URI in
all cases, even if this means we're emitting "name-changed"
redundantly some times.
2017-11-19 19:21:15 +01:00
Michael Natterer d613842eba Bug 788768 - GIMP crashes loading a valid truncated xcf
If the XCF is truncated in the middle of selection mask data,
don't unref the currently loading channel because we can't
unref the image's selection.
2017-11-19 18:28:36 +01:00
Ell e19958c5f1 app: use SAFE_CLAMP() in histogram bin calculation
The current code relies on undefined behavior, which, while seems
to work, is fragile.  Use SAFE_CLAMP() instead.
2017-11-19 07:13:24 -05:00
Ell e9f45798d0 libgimpmath: add SAFE_CLAMP() macro
The SAFE_CLAMP() macro is similar to CLAMP(), however, its result
is always within the specified range, even if the input is NaN.
2017-11-19 07:12:28 -05:00
Ell 5eb6187421 app, menus: add gegl:median-blur to the menus 2017-11-17 16:46:39 -05:00
Jordi Mas a9cc82499d Update Catatalan translation 2017-11-17 06:48:40 +01:00
Ell 945ef0de25 app: restore gradient when adding/removing stop on same blend-tool action
When a single blend-tool action adds and removes the same gradient
stop, restore the original gradient, rather than actually adding
and removing the stop, so that the affected midpoint returns to its
original state at the beginning of the action, rather than being
reset (and, consequently, so that the redo stack isn't lost.)
2017-11-16 11:55:13 -05:00