Commit Graph

45114 Commits

Author SHA1 Message Date
Jehan ec9dbd8115 libgimpwidgets, app, plug-ins: fix last GIR warnings.
gimp_int_radio_group_new() was still complaining about the scope of
radio_button_callback(). Make it (scope notified) because it needs to
stay alive after the function returns and may be called multiple times.

Also adding a GDestroyNotify to free the callback data once the widget
is destroyed (additionally it will also serve as a notifier for bindings
to properly free the callback closure itself, not only it's data).

With this last one done, GObject Introspection generation now happens
without any warning output.
2020-01-15 14:00:19 +01:00
sicklylife 44300b134f Update Japanese translation 2020-01-13 14:23:22 +00:00
Piotr Drąg ccdb91e713 Update Polish translation 2020-01-12 19:29:38 +01:00
sicklylife f823538f9e Update Japanese translation 2020-01-12 16:11:46 +00:00
sicklylife 64b971f096 Update Japanese translation 2020-01-12 16:08:41 +00:00
Alexandre Prokoudine 2116f587eb Update Russian translation 2020-01-12 18:00:14 +03:00
Alex Samorukov d8aa0d36a0 Add macOS support for the GIMP dashboard
(cherry picked from commit 215fd5195e)
2020-01-12 08:28:54 +01:00
Elad Shahar 36dd48aea6 Issue #4484: Add reflection option for mandala symmetry 2020-01-11 23:54:40 +01:00
sicklylife a195dcaccc Update Japanese translation 2020-01-11 16:19:59 +00:00
sicklylife d97f54dd07 Update Japanese translation 2020-01-11 16:15:02 +00:00
Ell 7b2e6b7595 app: clip transform-tools preview according to clipping mode
Add a "clip" property to GimpCanvasTransformPreview, specifying the
transform's clipping mode, and clip the preview accordingly.

In GimpTransformGridTool, sync the tool's clipping mode with the
preview's clipping mode.
2020-01-11 17:13:07 +02:00
Ell d79ef34f87 app: fix spacing in gimptooltransform3dgrid.c 2020-01-10 23:21:36 +02:00
Ell 30132fc2da app: add unified interaction mode to the 3D Transform tool
Add a "Unified interaction" option to the 3D Transform tool, and a
corresponding "unified" property to GimpToolTransform3DGrid.  When
active, all three interaction modes of the grid (camera, move, and
rotate) are available simultaneously, regardless of the active
dialog page.  In this mode, the inner and outer regions of the item
are used for moving and rotation, respectively, and the vanishing-
point is controlled through through a handle.
2020-01-10 23:21:36 +02:00
Ell bcaaa453c4 app: in 3D Transform tool, fix rotation direction when rotating arouns local Z axis
In GimpToolTransform3DGrid, fix the test for determining which side
of the plane is facing the viewer, affecting the direction of
rotation when rotating around the local Z axis.
2020-01-10 22:18:06 +02:00
Alex Samorukov 05d6b8a591 Move comment to match the description 2020-01-10 16:48:33 +00:00
Oleksii Samorukov 0de790137e Move macos menu init to the gui related code and reparent it with a main window.
Closes #1258

(cherry picked from commit eb4b8fbd05)
2020-01-10 16:48:33 +00:00
Ell 58d04375c9 app: improve placement of new tools with existing toolrc
When ordering tools according to an existing toolrc file (which
is always present in a pre-existing profile), preserve the default
placement of newly-added tools, instead of always adding them to
the bottom of the list.
2020-01-10 18:44:58 +02:00
Sabri Ünal 0ca59165ff Update Turkish translation 2020-01-10 15:58:51 +00:00
Sabri Ünal 9c6fc184f2 Update Turkish translation 2020-01-10 15:56:38 +00:00
Sabri Ünal 0e4e236167 Update Turkish translation 2020-01-10 15:44:19 +00:00
Ell 9fe33702fb Issue #4354 - When using color to fade dynamics and gradient with transparency ...
... brush does not have transparency

In the PAINT_MASK_TO_COMP_MASK paintcore-loops algorithm, used when
painting incrementally, multiply the paint mask values by the paint
opacity.  Previously, the paint opacity was ignored, breaking
various dynamics affecting the opacity.
2020-01-09 22:36:41 +02:00
sicklylife 4a59c8919d Update Japanese translation 2020-01-09 15:05:03 +00:00
Ell 8d534dfde0 app: snap spin scale to page increments when holding Ctrl
When click-dragging a GimpSpinScale while holding Ctrl, in either
absolute or relative mode, snap the value (or the delta) to the
page increment.
2020-01-09 01:48:50 +02:00
Ell ac8bf47fa6 libgimpwidgets: control GimpSpinButton scroll increments using modifiers
In GimpSpinButton, adjust the scroll step in response to modifiers:
normal scrolling uses the step increment, Ctrl uses the page
increment, and Shift scales the step increment down by the ratio
between the page and step increments (up to the minimal precision
of the spin button).

This applies to all spin buttons used in GIMP, including spin
scales.
2020-01-08 21:00:57 +02:00
sicklylife 90022de2f4 Update Japanese translation 2020-01-08 18:06:29 +00:00
sicklylife b89aff0064 Update Japanese translation 2020-01-08 18:01:33 +00:00
Ell f1c448e0f4 app: fix integer overflow when reporting operation progress
In gimp_gegl_apply_cached_operation(), use gint64 for storing the
total and processed pixel counts used for reporting progress, to
avoid overflowing when applying an operation to a large image.
2020-01-08 11:40:02 +02:00
Ell 32da86b6ed menus: add the 3D Transform tool to the Tools menu 2020-01-07 23:04:27 +02:00
Ell a3cbf6bc13 icons: add pivot icons to meson 2020-01-07 22:24:39 +02:00
Ell c93e5a2eae app: fix wrong fix to gimpbacktrace-windows.c
This fixes commit 468f3e84d8.
2020-01-07 22:18:43 +02:00
Jehan 095e8299a0 icons: install the new icons on meson build too.
The whole icon installation is a bit of a mess. We should really look
more closely into it.
2020-01-07 14:52:30 +01:00
Ryuta Fujii 376aa86515 Update Japanese translation 2020-01-07 11:11:36 +00:00
Ell e74994feaf pdb: in plug_in_compat.pdb, set underlying op nodes
In plug_in_compat.pdb, when wrapping an op node inside a graph, set
the op node as the graph node's underlying operation.  This allows
gimp_gegl_apply_operation() to perform certain optimizations.
2020-01-07 10:53:00 +02:00
Ell 8b7bafa43a Issue #4204 - "Add Bevel" Has No Effect
In plug_in_compat.pdb, don't add child nodes to nodes containing an
op, since this turns them into graphs and discards the op.
Instead, add a new wrap_in_graph() helper function, which takes a
node op and wraps it in a simple "input -> op -> output" graph.
Use the graph as the container for child nodes, and as the node
passed to gimp_drawable_apply_operation().  (This is similar to
what we used to do before commit
afdd573136, except that we now pass
the parent node to gimp_drawable_apply_operation(), instead of the
op node).
2020-01-07 10:52:59 +02:00
Ell 49221167c3 app: fix indentation in gimppivotselector.h 2020-01-07 10:03:27 +02:00
Ell 9d015b7b1a libgimpmath: add new matrix functions to .def file
... and fix docs for gimp_matrix4_transform_point().
2020-01-07 10:03:26 +02:00
Ell 5646e03eb3 app, icons: add 3D Transform tool
Add a new 3D Transform tool, based on GimpToolTransform3DGrid,
added in the previous commit.  The tool UI provides a notbook with
three tabs, corresponding to the three GimpToolTransform3DGrid
modes:

  Camera - allows setting the primary vanishing point, as well as
  the camera's focal length, expressed either directly, or as the
  camera's angle of view, relative to the whole image or the
  transformed item.  By default, the vanishing point is aligned
  with the item's center, and the angle of view is fixed relative
  to the item; this essentially means that each item is transformed
  using a local perspective, independent of its position and size
  relative to the image.  A global perspective can be achieved by
  using a common vanishing point and focal length (or an image-
  relative angle of view).

  Move   - allows moving the item using X, Y, and Z offsets.

  Rotate - allows rotating the item using X, Y, and Z Euler angles.
  The order of rotation of the different axes can be controlled by
  a set of numbered buttons next to the sliders, and the rotation's
  pivot can be controlled using a pivot selector.
2020-01-06 21:52:54 +02:00
Ell 615035c101 app, cursors: add GimpToolTransform3DGrid tool widget
Add a new GimpToolTransform3DGrid tool widget, subclassed from
GimpToolTransformGrid, which can be used to perform 3D
transformations.

The widget can be in one of three modes:

  CAMERA - allows adjusting the primary vanishing point by moving a
  handle.

  MOVE   - allows moving the object through dragging.

  ROTATE - allows rotating the object through dragging.

By default, controlling the transformation through dragging applies
to the X and Y axes.  Holding Shift (or setting the "constrain-
axis" property) restricts the motion to only one of the axes.

For the MOVE and ROTATE mode, holding Ctrl (or setting the "z-axis"
property) allows controlling the Z axis instead.

For the same modes, holding Alt (or setting the "local-frame"
property), applies the adjustments in the object's local frame of
reference, instead of the display's global frame of reference.
2020-01-06 21:52:51 +02:00
Ell 4ddf1afb44 app: add a protected gimp_tool_transform_grid_get_handle() function
... which can be used by subclasses to retrieve the currently-
active handle.
2020-01-06 21:50:00 +02:00
Ell 0f697b897f app: add GimpTransformGridTool::dynamic-handle-size property
Add a boolean GimpTransformGridTool::dynamic-handle-size property,
which controls whether the handle sizes are adjustment dynamically
according to the grid's size, or remain fixed.  This property is
TRUE by default, to maintain the current behavior.
2020-01-06 21:50:00 +02:00
Ell 0eae8a47ea app: in GimpToolTransformGrid, add NONE function
In GimpToolTransformGrid, allow setting "inside-function" and
"outside-function" to a new NONE value, performing no
transformation when dragging the respective area.
2020-01-06 21:50:00 +02:00
Ell d84789dcb7 app: add gimp-transform-3d-utils.c
Add gimp-transform-3d-utils.c with various utility functions for
performing 3D transformations, in preparation for adding a 3D
transform tool.
2020-01-06 21:49:57 +02:00
Ell e3bc877a42 libgimpmath: add various GimpMatrix4 functions
Add gimp_matrix4_{identity,mult,transform_point}().
2020-01-06 21:49:57 +02:00
Ell edfc837e7d libgimpmath: add various GimpMatrix2 functions
Add gimp_matrix2_{determinant,invert,transform_point}().
2020-01-06 21:49:57 +02:00
Ell c0552de62b app: add a pivot selector to the Rotate tool
Add a GimpPivotSelector widget to the Rotate tool dialog, to allow
for quickly picking a pivot.
2020-01-06 21:49:54 +02:00
Ell 46e01d37db app, icons: add GimpPivotSelector widget
GimpPivotSelector is a 3x3 grid of toggle buttons, used for
selecting a natural pivot position (e.g., for a transform) relative
to an item: its center, its corners, and the midpoints of its
edges.
2020-01-06 21:35:52 +02:00
Ell ac74326ec7 app: reduce dialog size of Unified Transform tool and friends
The tool dialog of generic-transform tools (the Unified,
Perspective, and Handle Trasnform tools) shows the current
transformation matrix.  Although we might as well show *something*
in the dialog (we can't get rid of it altogether, as it provides
the common tool actions), this information is probably meaningless
for most users, and isn't directly editable anyway.

Reduce the size of the matrix, to make it less prominent, and free
up some space.
2020-01-06 21:35:52 +02:00
Ell b0e9639684 app: in GimpTransformGridTool, compress successive undo steps
Add a boolean 'compress' parameter to
gimp_transform_grid_tool_push_internal_undo().  When TRUE,
successive undo steps added rapidly are compressed into a single
step.

In the various subclasses, compress undo steps for dialog changes,
since we push an undo step for every intermediate change for those
(such as while dragging a spin-scale).  In contrast, we only push
tool-widget undo steps upon button release, hence there's no need
to compress them.
2020-01-06 21:35:52 +02:00
Ell ee425f88d8 app: in GimpTransformGridTool, avoid unnecessarily flushing image when pushing undo
In gimp_transform_grid_tool_push_internal_undo(), only flush the
image when undo/redo availability for the tool changes, instead of
for every undo step.  This speeds things up when many undo steps
are pushed in succession, which usually happens when using the tool
GUI.
2020-01-06 21:35:52 +02:00
Ell 24add95e0a app: fix indentation in gimptoolsheargrid.c 2020-01-06 21:35:52 +02:00