commit 75db50c77eb93ce23222b86caf93140b484b5900
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Fri Mar 1 14:29:50 2019 +0100

    bin: do not hardcode images from HighContrast theme

    Use some placeholder simple filled cairo shapes instead.

 bin/ui-collection.c                         |  30
 ++++++++++++++++++++++++++++
 configure.ac                                |   2 +-
 docs/NEWS.txt                               |  17 +++++++++++++---
 tests/compositions/reference/lens-flare.png | Bin 456322 -> 385803 bytes
 4 files changed, 45 insertions(+), 4 deletions(-)

commit 91a19642cdd007015626f90ecfcc6b2ec1b8687e
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Fri Mar 1 14:16:41 2019 +0100

    po: update POTFILES

 po/POTFILES.in | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 624156bd621fdb3fd3a7d2a2046923b7c12d2cce
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Fri Mar 1 13:57:39 2019 +0100

    bin: split out ui-collection.c

 bin/Makefile.am         |   4 +-
 bin/ui-collection.c     | 527
 ++++++++++++++++++++++++++++++++++++++++++++++++
 bin/{ui.c => ui-core.c} | 485
 +-------------------------------------------
 bin/ui-viewer.c         |  18 +-
 bin/ui.h                |   7 +-
 5 files changed, 561 insertions(+), 480 deletions(-)

commit 9fbf0449992bf6c7828fb32cd0061b659cc57646
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Fri Mar 1 13:29:03 2019 +0100

    bin: split viewer ui out of monolithic ui.c

 bin/Makefile.am  |   2 +-
 bin/lua/init.lua |  10 +
 bin/ui-viewer.c  | 465 +++++++++++++++++++++++++++++++++++++++++++
 bin/ui.c         | 587
 +++++++++----------------------------------------------
 bin/ui.h         |  13 ++
 5 files changed, 582 insertions(+), 495 deletions(-)

commit 3f841f54a4de99291a97205a735393e20fcf0b3b
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Fri Mar 1 11:33:25 2019 +0100

    bin: add ffi binding for mrg_forget_image

 bin/lua/init.lua | 1 +
 bin/lua/mrg.lua  | 3 +++
 2 files changed, 4 insertions(+)

commit 15a61d51869527b1c875d87db698fb9784c9cf9d
Author: Ell <ell_se@yahoo.com>
Date:   Wed Feb 27 16:30:30 2019 -0500

    Issue #38 - gegl-sampler sometimes crashes for absurd coordinates.

    In gegl_sampler_get_ptr(), clamp/wrap the input coordinates based
    on the buffer's abyss and the sampler's context rect, so that the
    coordinates are never farther away from the abyss than necessary,
    avoiding overflowing in gegl_buffer_get() due to extreme coordinate
    values.

 gegl/buffer/gegl-sampler.c | 14 ++++++++++
 gegl/buffer/gegl-sampler.h | 68
 +++++++++++++++++++++++++---------------------
 2 files changed, 51 insertions(+), 31 deletions(-)

commit 535ceb02b27904a3a7a9dce40d7028a81c689e3b
Author: Ell <ell_se@yahoo.com>
Date:   Wed Feb 27 15:22:07 2019 -0500

    buffer: fix incorrect interpoaltion format in linear/cubic samplers
    box filtering

    Add a GeglSampler::interpolate() function, which subclasses should
    implement if they use the generic box-filter algorithm.  This
    function is similar to GeglSampler::get(), except that it always
    performs point sampling (and therefore doesn't take a scale
    matrix), and, in particular, should return its result using the
    sampler's premultiplied interpolation format, rather than its
    output format.

    Use interpolate(), instead of get(), in _gegl_sampler_box_get(),
    to avoid erroneously performing box filtering using the sampler's
    output format.

    Implement interpolate() in the linear and cubic samplers.

 gegl/buffer/gegl-sampler-cubic.c  | 184 +++++++++++++++++---------------
 gegl/buffer/gegl-sampler-linear.c | 216
 +++++++++++++++++++++-----------------
 gegl/buffer/gegl-sampler.c        |  11 +-
 gegl/buffer/gegl-sampler.h        |  49 ++++++---
 4 files changed, 258 insertions(+), 202 deletions(-)

commit e6e673408cea212b6bef3f5ad2fbd2b017eae4eb
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Wed Feb 27 18:24:44 2019 +0100

    NEWS: mention pdf-load

 docs/NEWS.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 925fb3c31be16edaa2c5782e4b21f1937fbda782
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Wed Feb 27 18:09:41 2019 +0100

    NEWS: update

 docs/NEWS.txt | 64
 +++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 53 insertions(+), 11 deletions(-)

commit f617778fbe1ec9fb7bb88d457b112c3496fea19d
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Wed Feb 27 16:16:04 2019 +0100

    bin: add .lui extension

    Files with a .lui extension get executed as lua code similar to the
    on-canvas ui. For now, such files get only black thumbnails.

 bin/gegl.c       |  1 +
 bin/lua/init.lua | 17 ++++++++++--
 bin/ui.c         | 85
 +++++++++++++++++++++++++++++++-------------------------
 bin/ui.h         |  4 ++-
 4 files changed, 66 insertions(+), 41 deletions(-)

commit 22f07ad39657ce2d5006b0f974b206b44ddb7f4e
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Tue Feb 26 18:17:42 2019 +0100

    bin: bundle used luajit ffi bindings

    In the C code we now also look for lua packages in the install path
    for GEGL
    lua files.

 bin/lua/cairo.lua   |  936 +++++++++++++++++++++++++++++++++
 bin/lua/cairo_h.lua | 1270 +++++++++++++++++++++++++++++++++++++++++++++
 bin/lua/mime.lua    |   76 +++
 bin/lua/mrg.lua     | 1423
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 bin/lua/mrl.lua     |  146 ++++++
 bin/ui.c            |   23 +
 6 files changed, 3874 insertions(+)

commit c227abe15c1dc6c198057bc728865364105ad70f
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Tue Feb 26 17:39:17 2019 +0100

    configure.ac: only accept luajit for the lua dependency

 configure.ac | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)

commit 5c796601b656fc3432f9be2674fc8eeffaa5aa8a
Author: Ell <ell_se@yahoo.com>
Date:   Mon Feb 25 11:25:01 2019 -0500

    color: use gegl_buffer_set_color()

    In gegl:color, override GeglOperationSource::process(), instead of
    GeglOperationPointRender::process(), and simply call
    gegl_buffer_set_color() to fill the output buffer, instead of doing
    this manually.  gegl_buffer_set_color() can more efficiently reuse
    a single COW-ed tile.

    Opt out of multithreading, since it's no longer beneficial.

 operations/common/color.c | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

commit 4488e2f3f7bf6ea4c4e7fcac3997b055cf57f3df
Author: Alan Mortensen <alanmortensen.am@gmail.com>
Date:   Mon Feb 25 15:50:14 2019 +0100

    Updated Danish translation

 po/da.po | 1806
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1006 insertions(+), 800 deletions(-)

commit 5655c43d93ee5a8b5e654dadfe663a4a9407e386
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Mon Feb 25 00:51:01 2019 +0100

    bin: improve and reorder labels in preferences

 bin/lua/preferences.lua | 8 ++++----
 bin/ui.c                | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

commit d8a54b12af5b04e65bc809da3aa4cc0dda8e481e
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Mon Feb 25 00:39:56 2019 +0100

    bin: add a prefernces screen, for now toggled with ctrl-p

    It allows toggling mipmap, opencl and use of display ICC profile,
    as well as provides a - for now read only view on other members
    of gegl_config().

 bin/lua/init.lua        |  1 +
 bin/lua/preferences.lua | 82
 +++++++++++++++++++++++++++++++++++++++++++++++++
 bin/ui.c                | 28 +++++++++++++++--
 bin/ui.h                |  2 +-
 4 files changed, 109 insertions(+), 4 deletions(-)

commit c90f0b20b1006f0f3e1189d60a4a7bd7109c1a34
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sun Feb 24 18:09:57 2019 +0100

    lua-ui: fix keybinding dispatch

 bin/lua/viewer.lua | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit bbc62d3ee407b445c9974f1157567eaf94343e86
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sun Feb 24 18:07:33 2019 +0100

    bin: remove debug printf

 bin/ui.c | 1 -
 1 file changed, 1 deletion(-)

commit 93ce1dfab55b7c8f895e1a3bb0603fbbce92c1bf
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sun Feb 24 17:58:54 2019 +0100

    bin: use fast 90 degree rotation and flips from gnome-photos

    Rotating JPGs with embedded ICC profiles is otherwise much much
    slower than it
    needs to be.

 bin/ui.c | 341
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 340 insertions(+), 1 deletion(-)

commit fdc59f3e97a294ae5e00ccda7aca599d6557ee24
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun Feb 24 17:47:41 2019 +0100

    Update Polish translation

 po/pl.po | 141
 ++++++++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 100 insertions(+), 41 deletions(-)

commit 1804a24d65f95218bdf8a8834e92d2694d2ee222
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sat Feb 23 22:57:21 2019 +0100

    lua-ui: add scaffold ui for many ops that take a radius parameter

 bin/lua/gegl_box-blur.lua      | 16 ++++++++++++++++
 bin/lua/gegl_c2g.lua           | 16 ++++++++++++++++
 bin/lua/gegl_edge-neon.lua     | 18 ++++++++++++++++++
 bin/lua/gegl_gaussian-blur.lua | 19 +++++++++++++++++++
 bin/lua/gegl_median-blur.lua   | 16 ++++++++++++++++
 bin/lua/gegl_snn-mean.lua      | 18 ++++++++++++++++++
 bin/lua/gegl_stress.lua        | 16 ++++++++++++++++
 bin/lua/gegl_unsharp-mask.lua  | 18 ++++++++++++++++++
 bin/lua/init.lua               |  8 ++++----
 9 files changed, 141 insertions(+), 4 deletions(-)

commit 87b8872dd9fc22576f8e66b8941bb4022722f6fa
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sat Feb 23 15:17:52 2019 +0100

    bin: add items todo list

    The "todo" command in the internal ui commandline lists many known
    paper-cuts
    in the UI.

 bin/ui.c | 2 ++
 1 file changed, 2 insertions(+)

commit efd48d2aff583b82ab4754a093b8c084ed34b1bc
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sat Feb 23 11:31:28 2019 +0100

    lua-ui: add canvas ui for rotate, abstract out touch drawing

    Made gegl:crop symlink to gegl:rectangle and gegl:radial-gradient to
    gegl:linear-gradient, since these share properties and can share
    interactions
    at least as initial prorotyping.

    Also added gegl-rotate, origin is settable - but some parts of
    the ui/gegl
    transformation interaction are not fully aware of the origin
    leading to
    puzzling interaction.

 bin/lua/gegl_crop.lua            | 41
 +---------------------------------------
 bin/lua/gegl_linear-gradient.lua | 16 +++++-----------
 bin/lua/gegl_radial-gradient.lua | 40
 +--------------------------------------
 bin/lua/gegl_rectangle.lua       | 24 +++++++++++------------
 bin/lua/gegl_rotate.lua          | 40
 +++++++++++++++++++++++++++++++++++++++
 bin/lua/gegl_translate.lua       |  9 ++-------
 bin/lua/init.lua                 | 24 +++++++++++++++++++++++
 bin/lua/viewer.lua               | 15 ---------------
 8 files changed, 84 insertions(+), 125 deletions(-)

commit b5da4cdbc6af409c74fb176b8da425e17c0a47fa
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sat Feb 23 00:45:42 2019 +0100

    bin: add pdf specific page-up/page-down key bindings

 bin/lua/viewer.lua | 82
 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 bin/ui.c           |  8 ++++++
 2 files changed, 87 insertions(+), 3 deletions(-)

commit ff97f16ec8139d878d620e295ccd2544c5e81a23
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Fri Feb 22 21:35:50 2019 +0100

    bin: timeout controls, add video playback controls

    Improvements to video playback now lie in the C code / mrg / GEGL
    and the
    gegl:ff-load op.

 bin/lua/viewer.lua | 120
 ++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 106 insertions(+), 14 deletions(-)

commit 36d5d6e0e8b4b1d2ccca655f11a2b8bfe2ce48e3
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Fri Feb 22 12:19:33 2019 +0100

    bin: do not replicate frame_no stored in source op

    Keep only one canonical position of the frame_no to render, in the
    gegl:ff-load op, this is needed to make seeking/scrubbing work.

 bin/lua/init.lua |  1 -
 bin/ui.c         | 47 ++++++++++++++++++++++++++++++++---------------
 bin/ui.h         |  1 -
 3 files changed, 32 insertions(+), 17 deletions(-)

commit 1381a26a038493620b6c7bcb27af6199322b0c8d
Author: Ell <ell_se@yahoo.com>
Date:   Fri Feb 22 03:13:22 2019 -0500

    recursive-transform: cache iteration results when performing multiple
    transforms

    In gegl:recursive-transform, cache the results of intermediate
    iterations when performing multiple transforms in each iteration,
    to avoid processing the same iterations multiple times when working
    in chunks.

 operations/common/recursive-transform.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit fe2ce4b22a1ce4c77633e60a25d3b016db9727c3
Author: Ell <ell_se@yahoo.com>
Date:   Fri Feb 22 02:58:36 2019 -0500

    transform: add alpha channel to result even when using NEAREST sampler

    In GeglTransformCore, add an alpha channel to the output format
    even when using a NEAREST sampler, unless we're an intermediate/
    translation node.

 operations/transform/transform-core.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit fa03134a45614406eed8c828a7e9ba62772e8a1b
Author: Ell <ell_se@yahoo.com>
Date:   Fri Feb 22 02:57:00 2019 -0500

    matrix: add gegl_matrix3_is_affine()

    ... move from GeglTransformCore.

 gegl/gegl-matrix.c                    |  8 ++++++++
 gegl/gegl-matrix.h                    | 10 ++++++++++
 operations/transform/transform-core.c | 13 -------------
 3 files changed, 18 insertions(+), 13 deletions(-)

commit b4854062dcfb566f272d834a49b0706895dadb27
Author: Ell <ell_se@yahoo.com>
Date:   Fri Feb 22 02:49:52 2019 -0500

    matrix: in gegl_matrix3_equal(), use fuzzy comparison

    In gegl_matrix3_equal(), use fuzzy comparison for comparing the
    two matrices' coefficients, so that small errors are tolerated.
    This indirectly affects the various gegl_matrix3_is_foo()
    functions.

 gegl/gegl-matrix.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 001b9a8840bebef5614018f82a7dab8a5ec1b105
Author: Ell <ell_se@yahoo.com>
Date:   Thu Feb 21 13:14:44 2019 -0500

    operation: fix typo in gegl-operation-private.h

 gegl/operation/gegl-operation-private.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e7035da486f21e3f7aca8e179383d0b555457220
Author: Ell <ell_se@yahoo.com>
Date:   Thu Feb 21 13:03:45 2019 -0500

    tests, examples: replace use of dont-cache with cache-policy

    In tests/ and examples/, replace the use of the deprecated
    GeglNode::dont-cache property with GeglNode::cache-policy.

 examples/sdl-draw.c                 |  2 +-
 examples/simple-graph.py            |  2 +-
 tests/simple/test-node-properties.c | 32 ++++++++++++++++----------------
 3 files changed, 18 insertions(+), 18 deletions(-)

commit 0f0d193a5dec85d7865a8328601ead460f0b63f5
Author: Ell <ell_se@yahoo.com>
Date:   Thu Feb 21 13:00:57 2019 -0500

    operations: replace use of no_cache with cache_policy

    In all operations, replace the use of the deprecated
    GeglOperationClass::no_cache with GeglOperationClass::cache_policy.

    For ops that don't have a reason to control caching directly,
    remove cache-policy setting altogether.

 operations/common/buffer-source.c         | 2 +-
 operations/common/copy-buffer.c           | 8 ++++----
 operations/common/edge-neon.c             | 2 +-
 operations/common/linear-gradient.c       | 1 -
 operations/common/magick-load.c           | 1 -
 operations/common/noise-perlin.c          | 2 --
 operations/common/open-buffer.c           | 2 +-
 operations/common/radial-gradient.c       | 1 -
 operations/common/vignette.c              | 1 -
 operations/core/cache.c                   | 2 +-
 operations/core/cast-format.c             | 5 ++---
 operations/core/cast-space.c              | 5 ++---
 operations/core/clone.c                   | 2 +-
 operations/core/convert-format.c          | 7 +++----
 operations/core/crop.c                    | 2 +-
 operations/core/load.c                    | 1 -
 operations/external/path.c                | 2 +-
 operations/external/pixbuf.c              | 2 +-
 operations/external/vector-stroke.c       | 2 +-
 operations/transform/transform-core.c     | 1 -
 operations/workshop/external/spyrograph.c | 2 +-
 21 files changed, 21 insertions(+), 32 deletions(-)

commit 36c7ebbaacd8ef5352cd9315b43af98ecd88bd03
Author: Ell <ell_se@yahoo.com>
Date:   Thu Feb 21 12:55:28 2019 -0500

    operation: don't explicitly prevent caching of point ops

    Don't explicitly set the GeglOperationClass::no_cache field of
    point operations to TRUE, since the AUTO cache policy should
    implictly prevent them from being cached, as point ops don't
    generally implement get_cached_region().

 gegl/operation/gegl-operation-point-composer.c  | 1 -
 gegl/operation/gegl-operation-point-composer3.c | 1 -
 gegl/operation/gegl-operation-point-filter.c    | 1 -
 gegl/operation/gegl-operation-point-render.c    | 1 -
 4 files changed, 4 deletions(-)

commit 7f24430cda0d8c3eff311868823d445edc2a4e12
Author: Ell <ell_se@yahoo.com>
Date:   Thu Feb 21 12:35:45 2019 -0500

    operation, graph: add {GeglOperationClass,GeglNode}::cache-policy

    Caching of operation output is currently controlled by the
    GeglOperationClass::no_cache field on a per-operation-class basis,
    and by the GeglNode::dont-cache property on a per-node basis.
    However, since these fields are boolean, they prevent us from
    automating the decision of whether an op should be cached, or,
    altenatively, they don't provide sufficient control over this
    decision.

    Instead, add a ternary GeglCachePolicy enum, which can be one of
    AUTO, NEVER, or ALWAYS, and add a GeglOperationClass::cache_policy
    field, and a GeglNode::cache-policy property, which use this type.
    When the cache-policy property of a node in NEVER or ALWAYS, its
    result isn't/is cached, respectively; when it's AUTO, the deicision
    depends on the operation:  When the cache_policy field of the
    operation class is NEVER or ALWAYS, the result isn't/is cached,
    respectively; when it's AUTO, the result is cached only if the
    operation implements get_cached_region().  Both of these field are
    set to AUTO by default -- the idea is that we generally don't want
    to implicitly cache results, unless they correspond to a different
    region than the ROI.

    The existing dont-cache/no_cache fields are deprecated, but are
    still used for now: when GeglNode::cache-policy is AUTO and
    GeglNode::dont-cache is TRUE, the node isn't cached; when
    GeglOperationClass::cache_policy is AUTO and
    GeglOperationClass::no_cache is TRUE, the operation isn't cached.

    Like GeglNode::dont-cache, GeglNode::cache-policy is inherited by
    the node's children.

 gegl/gegl-enums.c                       | 26 +++++++++++++++
 gegl/gegl-enums.h                       | 11 +++++++
 gegl/graph/gegl-node-private.h          |  8 ++++-
 gegl/graph/gegl-node.c                  | 57
 ++++++++++++++++++++++++++++++---
 gegl/operation/Makefile.am              |  1 +
 gegl/operation/gegl-operation-context.c |  3 +-
 gegl/operation/gegl-operation-private.h | 30 +++++++++++++++++
 gegl/operation/gegl-operation.c         | 22 +++++++++++++
 gegl/operation/gegl-operation.h         |  6 ++--
 9 files changed, 154 insertions(+), 10 deletions(-)

commit 8394e82110f8ae686dd6dc356c0a40dbfd31bd0b
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Thu Feb 21 17:18:59 2019 +0100

    bin: fix thread renderer

 bin/ui.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 75508ef5ea0454d1db570d2ffe9116da97c01343
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Thu Feb 21 13:39:49 2019 +0100

    pdf-load: use gio to transform path to uri

 operations/external/pdf-load.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 47366bf6e56e9519018712e69337221eb0e22681
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Thu Feb 21 13:31:51 2019 +0100

    pdf-load: add ability to decode PDFs with passwords

 operations/external/pdf-load.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

commit eb7775aa87a26d43072413daa1ea57e136c4d2e5
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Thu Feb 21 13:21:35 2019 +0100

    bin: use gegl:pdf-load directly instead of loading into temp buffer

    This permits using GEGL as a PDF viewer by tweaking the page-number.
    Also adjusted to 36 PPI for rendering when generating PDF thumbnails.

 bin/gegl.c                     |  2 ++
 bin/lua/gegl_vector-stroke.lua | 31 +++++++++++++++++--------------
 bin/ui.c                       | 17 +++++++++++++++--
 3 files changed, 34 insertions(+), 16 deletions(-)

commit c5d2626a4b1c2ee8660d9d752b4b904ace5beac8
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Thu Feb 21 00:53:45 2019 +0100

    po: update POTFILES.in

 po/POTFILES.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 82ce52fac4e8574b08f15c9213d1e547e71006f1
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Thu Feb 21 00:29:03 2019 +0100

    operations: add pdf-loading op

    A simple page renderer that depends on poppler-glib, it render each
    page to a
    linear buffer and becomes very slow for high ppi, default ppi set
    to 300 which
    is sufficient to read and zoom in on visible details on most text
    based PDFs.

    Maybe chunking/clipping the rendering with cairo would be better
    for high
    resolution.

 configure.ac                    |  22 ++++
 operations/external/Makefile.am |   8 ++
 operations/external/pdf-load.c  | 241
 ++++++++++++++++++++++++++++++++++++++++
 po/POTFILES.in                  |   1 +
 4 files changed, 272 insertions(+)

commit 4d39fa0a65d081c5018fa717d7fefbfda7fa4a42
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Tue Feb 19 22:11:24 2019 +0100

    bin: move commandline string into app state

 bin/lua/init.lua |  2 ++
 bin/ui.c         | 92
 +++++++++++++++++++++++++++++++-------------------------
 bin/ui.h         |  1 +
 3 files changed, 54 insertions(+), 41 deletions(-)

commit 17fe617360cf06a5e02682f0b7a4e5007bd37b82
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Tue Feb 19 21:57:13 2019 +0100

    bin: add lua code for image viewer mode

    Mostly complete reimplementation of C version of image viewer code,
    including
    gesture pan/zoom as well as mouse / scroll event pan/zoom.

 bin/lua/viewer.lua | 242
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 242 insertions(+)

commit eec3c8bdce9bb61c468926ef1088e7c444825a27
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Mon Feb 18 22:37:02 2019 +0100

    bin: fix loading/thumbnailing of graphs

 bin/gegl.c |   1 +
 bin/ui.c   | 231
 ++++++++++++++++++++++++++++---------------------------------
 2 files changed, 108 insertions(+), 124 deletions(-)

commit 45f455e23ccb8d0ceee746b2c11c2fefafc13fa5
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Mon Feb 18 17:15:19 2019 +0100

    bin: add a single touch-point for moving x,y of translate

 bin/lua/gegl_translate.lua | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit 47db5dca8082749b8a7a0280fc5e7abf5b021a13
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Mon Feb 18 15:27:26 2019 +0100

    bin: run some parts of ui from lua if right lua scripts exist

    collection.lua and viewer.lua are the scripts looked for, if they
    do not exist or lua support is not available the c versions are
    run instead.

    For now keybindings are registered for both c and lua, further
    refactoring should make only a few global shortcuts be defined from
    C leaving most to the lua side.

 bin/ui.c | 50 ++++++++++++++++++++++++++++++--------------------
 1 file changed, 30 insertions(+), 20 deletions(-)

commit b2aef8f2e9d2f6bc78c4a4dde7c6dc4e4c029343
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Mon Feb 18 15:04:24 2019 +0100

    bin: draw bezier control points in path ui

 bin/lua/gegl_fill-path.lua     |   1 +
 bin/lua/gegl_rectangle.lua     |  40 ++++++++++++++
 bin/lua/gegl_vector-stroke.lua | 121
 ++++++++++++++++++++++++++++++++++-------
 bin/ui.c                       |   5 +-
 4 files changed, 144 insertions(+), 23 deletions(-)

commit a6ca52de88cfa248f38e3bbe0c19ab453367cf8a
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Mon Feb 18 13:52:03 2019 +0100

    bin: allow mrg ui to load .xml and .svg compositions

 bin/ui.c | 32 ++++++++++++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

commit 4071fc5c0c721f7f57791a20e6f095a1fcc96c38
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sat Feb 16 14:43:26 2019 +0100

    bin: add custom ui for gegl-vector stroke

    This adds a basic editing capability for moving points of a poly-line,
    GObject introspection via lua should be sufficient for various
    forms of
    full bezier editing.

 bin/lua/gegl_vector-stroke.lua | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

commit 673b78c9fbc491cb21d394dbc848039160afc8cd
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sat Feb 16 14:42:31 2019 +0100

    gegl: add gegl_path_dirty for forcing redraws

    When modifying an inline GeglPathPoint, the path doesn't change this
    adds the ability to trigger such renders.

 gegl/property-types/gegl-path.c | 15 ++++++++++-----
 gegl/property-types/gegl-path.h | 12 ++++++++++++
 2 files changed, 22 insertions(+), 5 deletions(-)

commit f3ad9e5e2fe41fde2170c33e55a11e5ead3f9943
Author: Rodrigo Lledó <rodhos92@gmail.com>
Date:   Mon Feb 18 11:11:17 2019 +0000

    Update Spanish translation

 po/es.po | 1081
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 623 insertions(+), 458 deletions(-)

commit 8ecb55461a2d17adfb526537e38ffb83457c463f
Author: woob <thetoastcaper@gmail.com>
Date:   Mon Feb 18 11:44:30 2019 +0100

    value-propagate: issue #129

    Reverse offsets to propagate in the correct directions.

 operations/common-gpl3+/value-propagate.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit fbb8e4fba6e62f1001b02a4c0edf1af68a5a7fed
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sat Feb 16 13:06:07 2019 +0100

    bin: add operation specific canvas ui's written in lua

    For now for crop, linear-gradient and radial-gradient, lua files
    are live
    searched at runtime each time the ui is redrawn, this permits live
    editing of a
    copy of gegl_crop.lua or any new introduced per-op ui in /tmp or
    /home/user/.local/share/gegl-0.4/lua/gegl_crop.lua to override the
    system wide
    on installed in /prefix/share/gegl-0.4/lua/gegl_opname.lua and when
    running the
    gegl binary out of the build, the in-build lua files take precedence.

    The following are available as globals for the lua scripts:

    loaded lua modules: ffi Mrg lgi
    lgi namespaces: GLib Gegl GObject

    mrg    mrg context for registering interaction callbacks and
    rendering xhtml/css
    cr     cairo context, transformed to the local coordinatesystem of
    the op
    active active GeglNode
    sink   the sink GeglNode
    dim    a dimension suitable for a touch interaction area (for now 10%
    of mrg:height())
    o      (the global application state struct)

 bin/Makefile.am                  |   2 +
 bin/lua/Makefile.am              |   5 ++
 bin/lua/gegl_crop.lua            |  40 +++++++++++++
 bin/lua/gegl_linear-gradient.lua |  39 +++++++++++++
 bin/lua/gegl_radial-gradient.lua |  39 +++++++++++++
 bin/lua/init.lua                 | 118
 +++++++++++++++++++++++++++++++++++++++
 bin/ui.c                         |   4 ++
 configure.ac                     |   6 ++
 8 files changed, 253 insertions(+)

commit 2120fe1dccf66d1872863f261399efe971c8391a
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sat Feb 16 12:03:56 2019 +0100

    bin: queue redraws on invalidate signals

    This permits per-operation UIs to have implicit queueing
    of redraws by changing gegl-graph/properties.

 bin/ui.c | 30 ++++++++++++++++++++++++++----
 1 file changed, 26 insertions(+), 4 deletions(-)

commit e2655ff58947d7d19e177e79468b4a4bac7e27ab
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Wed Feb 13 22:46:44 2019 +0100

    bin: simplify keybindings

    Use a custom binding for empty commandline buffer, permitting cursor
    keys and more to be bound to ui navigation.

 bin/ui.c | 57 +++++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 41 insertions(+), 16 deletions(-)

commit a7e60d55e59351a87b04eeee77d6b95b77ffba84
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Wed Feb 13 15:44:38 2019 +0100

    brightness-contrast: mark string containing % as no-c-format

    Hoping that this silences xgettext for issue #128.

 operations/common/brightness-contrast.c | 2 ++
 1 file changed, 2 insertions(+)

commit f746b5e7d41b698c19a90788f7053265ffd23463
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Wed Feb 13 15:28:20 2019 +0100

    bin: add code to dispatch lua scripts

    gboolean run_lua_file (const char *basename);

    Tries running a lua sript for the GEGL ui by the name basename,
    this is used by the code to look for on canvas ui code for operations
    where : are replaced by _ in the op name. The code looks in the
    following locations, using the first applicable.

    /tmp/gegl_opname.lua
    /if_running_out_of_source_tree/gegl/bin/lua/gegl_opname.lua
    /home/user/.local/share/gegl-0.4/lua/gegl_opname.lua
    /usr/share/gnome/gegl-0.4/lua/gegl_opname.lua
    /prefix/share/gegl-0.4/lua/gegl_opname.lua
    /usr/share/gegl-0.4/lua/gegl_opname.lua

 bin/ui.c | 136
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 126 insertions(+), 10 deletions(-)

commit 1191b9c40012f4c54c99d791809306b92badb8ea
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sat Feb 9 20:32:52 2019 +0100

    bin: wrap state in a gobject instance for lgi

    This permits using lgi for the application state referencing the
    same native
    data as the luajit ffi struct, it is now possible to run a luascript
    with a
    separate luajit vm per frame - without that seeming to have a
    major impact
    on performance, perhaps even using luajit with the jit turned off is
    reasonable for this use-case.

 bin/Makefile.am |   2 +-
 bin/ui.c        | 654
 +++++++++++++++++++++++++++++---------------------------
 bin/ui.h        | 134 ++++++++++++
 3 files changed, 476 insertions(+), 314 deletions(-)

commit f2c8282ee1d1200c6e6bb2f4ccedade4892de03b
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Thu Feb 7 18:00:22 2019 +0100

    configure: prefer luajit for its ffi

    We might even want to only look for luajit.

 bin/Makefile.am |  6 ++++++
 bin/ui.c        | 55
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac    | 16 +++++++++++-----
 3 files changed, 72 insertions(+), 5 deletions(-)

commit 67a5097f49021d8768ab772e75dd70334ed33131
Author: Marco Ciampa <ciampix@posteo.net>
Date:   Wed Feb 13 07:53:23 2019 +0100

    Updated Italian translation

 po/it.po | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit a6edf03e0a9681f447f92810be213ea3f21f0b46
Author: Marco Ciampa <ciampix@posteo.net>
Date:   Tue Feb 12 17:27:22 2019 +0100

    Updated Italian translation

 po/it.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f5e1cbf47672b83d01044725992c22d007ecedf9
Author: Marco Ciampa <ciampix@posteo.net>
Date:   Tue Feb 12 17:23:20 2019 +0100

    Updated Italian translation

 po/it.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 144e909e3a840620169bbc25f5728d76e7f67806
Author: Marco Ciampa <ciampix@posteo.net>
Date:   Mon Feb 11 21:04:05 2019 +0100

    Updated Italian translation

 po/it.po | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 0af065f2808aacc5190f240d3765d4544f34433b
Author: Marco Ciampa <ciampix@posteo.net>
Date:   Mon Feb 11 21:02:55 2019 +0100

    Updated Italian translation

 po/it.po | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

commit 8ee2084f444aac261ed47385d21ea2490e86d69b
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Fri Feb 8 20:24:35 2019 +0100

    Update Polish translation

 po/pl.po | 55 +++++++++++++++++++++++++++++++++++++------------------
 1 file changed, 37 insertions(+), 18 deletions(-)

commit e2f44e17fe905f46458ffa8fe58e18556c200d97
Author: Marco Ciampa <ciampix@posteo.net>
Date:   Thu Feb 7 01:50:53 2019 +0100

    Updated Italian translation

 po/it.po | 131
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 82 insertions(+), 49 deletions(-)

commit 3f743a3c86b4bc2d3c4c59319a726cad21e13054
Author: woob <thetoastcaper@gmail.com>
Date:   Wed Feb 6 19:06:02 2019 -0500

    value-propagate: Use more descriptive and accurate parameter
    descriptions

    Fixes GNOME/gegl#126

 operations/common-gpl3+/value-propagate.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 90b716a0870a2a1a570da859d53a3534a151695f
Author: Anders Jonsson <anders.jonsson@norsjovallen.se>
Date:   Tue Feb 5 20:33:30 2019 +0000

    Update Swedish translation

 po/sv.po | 114
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 68 insertions(+), 46 deletions(-)

commit 84bcda4aa0388cea59ad75d99d1c9297fc35b3c9
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Tue Feb 5 02:24:51 2019 +0100

    bin: draw bounding box of active node

    This also contains a mock-implementation of the utility function:

    static cairo_matrix_t node_get_relative_transform (GeglNode
    *node_view,
                                                       GeglNode *source);

    that for now hackily works with basic use of the ops
    translate, rotate and scale-ratio

 bin/ui.c | 118
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 103 insertions(+), 15 deletions(-)

commit 667e2338a8e9a5e31019f218283403157139052b
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sun Feb 3 21:08:52 2019 +0100

    NEWS: fix placeholder for contributors

    The current values broke the build.
