Commit Graph

70 Commits

Author SHA1 Message Date
5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
Ell
6a3fc6c1b9 app: clean up GimpTransformGridTool; adapt subclasses
Get rid of GimpTransformGridTool::recalc_matrix() and
gimp_transform_grid_tool_recalc_matrix(), and have
GimpTransformGridTool and its subclasses use
GimpTransformTool::recalc_matrix() and
gimp_transform_tool_recalc_matrix() directly instead.

In order to break the GimpToolWidget::changed/
GimpTransformTool::recalc_matrix() loop, add a
GimpTransformGridTool::update_widget() vfunc, which subclasses
should override to update their tool-widget (instead of doing this
in ::recalc_matrix()), and ::widget_changed(), which is called when
the tool-widget changes (and which subclasses should override
instead of connecting to the tool-widget's "changed" signal
directly.)  GimpTransformGridTool calls these functions as
necessary, instead of relying on extra parameters passed to
recalc_matrix().

Adapt all the direct and indirect subclasses of
GimpTransformGridTool to the change.
2018-06-15 16:04:20 -04:00
Ell
1dbe765905 app: add GimpTransformGridTool; derive most transform tools from it
While most of our transform tools use an interactive transform
grid, and have similar behavior, the flip tool is an odd one out.
The new "auto straighten" function of the measure tool introduces
another tool that performs transformations, while not behaving like
the rest of the transform tools.

Factor out the parts of GimpTransformTool that handle user
interaction into GimpTransformGridTool (with corresponding
GimpTransformGridOptions, and GimpTransformGridToolUndo), and only
leave the basic transform functionality and options in
GimpTransformTool (and GimpTransformOptions).

Derive all the transform tools (and transform-tool base classes)
that previously derived from GimpTransformTool, from
GimpTransformGridTool.  The one exception is GimpFlipTool, which
still derives from GimpTransformTool directly.  The next commit
will derive GimpMeasureTool from GimpTransformTool as well.
2018-06-09 18:07:20 -04:00
Ell
442be72630 app: port relevant transform tools to GimpGenericTransformTool
Derive GimpUnifiedTransformTool, GimpPerspectiveTool, and
GimpHandleTransformTool from GimpGenericTransformTool, eliminating
their common logic.

Remove gimp_transform_matrix_handles(), which is no longer used.
2018-01-27 07:30:30 -05:00
1ce878ef47 Bug 791949 - Please ind Shift+T to the Unified Transform Tool
Clean up transform tool keyboard shortcuts (things move around by
stealing Shift+t from the scale tool):

Shift+T  Unified Transform (was Shift+L)
Shift+S  Scale             (was Shift+T)
Shift+H  Shear             (was Shift+S)
Shift+L  Handle Transform  (was Ctrl+Shift+H)
2018-01-03 18:02:28 +01:00
Ell
2e9ab59d19 app: use matrix to determine if doing perspective transform in preview
In GimpCanvasTransformPreview, use the transform matrix to
determine if we're doing a perspective transform, rather than
relying on a separate property, so that we don't use the slow
perspective path unnecessarily.

Consequently, remove the does_perspective member of
GimpTransformTool, since it's no longer used.
2017-11-14 11:24:56 -05:00
9f59657fef app: also manage all contrain and frompivot properties centrally
using g_object_bind_property().
2017-06-19 23:29:01 +02:00
0411801765 app: manage the transform tools' grid properties in GimpTransformTool
Simply use g_object_bind_property() to connect the grid properties of
GimpTransformOoptions and GimpToolTransformGrid and remove all other
grid property setting code.
2017-06-19 23:06:39 +02:00
e13d3f1754 app: remove a lot of cruft from GimpTransformTool
All tools have a widget now so none of this stuff is needed any longer.
2017-06-19 01:53:01 +02:00
a5f3808505 app: use the newly added tool widgets in the transform tools 2017-06-17 03:04:06 +02:00
91e861adcc libgimpwidgets, *: deprecating stock IDs for good, part one...
Remove all stock items added since 2.8, restore accidentially removed
ones, and rename the newly added GIMP_STOCK_* defines to GIMP_ICON_*.

(will move to having GIMP_ICON_* defines instead of magic hardcoded
strings for all icons).
2017-02-28 19:31:27 +01:00
4df9a1d568 Get rid of gtk_misc_set_alignment(label) and use gtk_label_set_x,yalign() 2016-09-08 19:11:20 +02:00
127b3de54a Bug 756775 - UnifiedTransformTool: nan value in handle geometry computation
Do not compute angle between 2 vectors if at least one of them is a null vector.
Return 0.0 instead.
2015-11-24 10:31:47 +01:00
22fc50c279 app: rename all values of enum GimpContextPropMask
from GIMP_CONTEXT_FOO_MASK to GIMP_CONTEXT_PROP_MASK_FOO.
Also rename the FIRST and LAST values of enum GimpContextPropType.
2015-09-08 21:18:49 +02:00
36ca4d03f1 app: some cleanup in GimpTransformTool and subclasses
- formatting
- rename some GimpTransformTool members
- add member "does_persoective" and don't include subclasses
- handle drawing cleanup
2015-03-23 23:18:28 +01:00
1c20940f82 app: use a GimpToolGui in GimpTransformTool 2013-06-07 11:52:48 +02:00
a2e8da357e transformtool: flip cursor if needed 2013-03-24 23:13:56 +01:00
438fc4221e app: remove unused variable in gimp_unified_transform_tool_init() 2012-10-12 22:39:11 +02:00
0f380eba53 transformtool: actually use the correct index for the angle vector 2012-08-27 15:12:29 +02:00
6396e83057 transformtool: use new corner and side cursors appropriately considering current transform 2012-08-27 15:07:15 +02:00
11a9fe33d9 app: another minor cleanup in gimpunifiedtransformtool.c
you missed a spot
2012-08-23 02:16:06 +02:00
b11a705203 transformtool: rotate handles along with frame 2012-08-22 22:53:59 +02:00
e83b40982f transformtool: adjust handles a bit
Since the move handle is gone, the pivot can be normal sized and circle again,
also put shear handles at 3/4 rather than 3/5.
2012-08-22 22:49:45 +02:00
5d711be340 app: formatting cleanup in gimpunifiedtransformtool.c 2012-08-22 20:45:16 +02:00
08cd798ec6 transformtool: Set the cursor and tool cursor properly on each handle by way of the new cursor_update method 2012-08-20 20:28:21 +02:00
d789cbff9d transformtool: Fix indent of switch statement 2012-08-20 20:28:19 +02:00
6af6218c2b transformtool: Remove now unused variables 2012-08-20 16:57:58 +02:00
4c22ed8128 transformtool: Use the same method for frompivot for shearing as everything else 2012-08-20 16:42:29 +02:00
3f72695a80 transformtool: kill rotate and move handle, instead rotate when outside frame (move already works inside) 2012-08-20 15:46:48 +02:00
0f6709d2d0 transformtool: Be a bit more strict about the pivot being inside the transform frame to use it, to protect against it flying away to infinity 2012-08-20 15:46:47 +02:00
4e57571103 transformtool: Remove some annoying duplication and draw perspective handles differently 2012-08-20 15:46:47 +02:00
b27c33f13c transformtool: Add back statusbar code (but more helpful) that was deleted when I made pick_function 2012-08-20 15:46:47 +02:00
c37619ade7 transformtool: Pick move operation anywhere inside polygon 2012-08-20 15:46:47 +02:00
a0d79634ed transformtool: Add one more rotation handle, in case the point you want to pivot around is close to the first one 2012-08-20 15:46:47 +02:00
f84987de73 transformtool: Add the bunch of 8 separate options for 3 things 2012-08-20 15:46:46 +02:00
03117bdf40 transformtool: Update modifier keys for options, solves problem with perspective frompivot + constrain 2012-08-20 15:46:46 +02:00
f2099fbb28 transformtool: Check if new transform is convex and don't involve the pivot if it isn't 2012-08-20 15:46:46 +02:00
501c15f910 transformtool: Add a pick_function method to the TransformTool class and remove some more hack duplication 2012-08-20 15:46:46 +02:00
293600c579 transformtool: Add a draw_gui method to the TransformTool class and remove some hack duplication 2012-08-20 15:46:46 +02:00
01142f248d transformtool: some more cleanup + comments 2012-08-20 15:46:45 +02:00
03d9a75c30 transformtool: Rename p to d because p is a weird name for a delta/diff 2012-08-20 15:46:45 +02:00
eb65b09ebd transformtool: move assignment of coords to after the logic code, this somehow fixes frompivot perspective 2012-08-20 15:46:45 +02:00
ed29503f28 transformtool: Deduplicate code, use more vector representations, fix style and warnings 2012-08-20 15:46:45 +02:00
70671f2967 transformtool: Factor out getpivotdelta() function 2012-08-20 15:46:45 +02:00
bad3c0d86c transformtool: Add frompivot for perspective handles too 2012-08-20 15:46:45 +02:00
9be0d2b029 transformtool: Add option for locking pivot to canvas, add code to transform the pivot along with all transformations 2012-08-20 15:46:24 +02:00
52dd46f9d3 transformtool: Copy the corner scale non-aspect frompivot code to side scale 2012-08-20 15:41:55 +02:00
76f23aa8a0 transformtool: Use better method for keepaspect side scaling 2012-08-20 15:41:55 +02:00
051775eb0d transformtool: Fix frompivot for cornerscale, only problem is the handle doesn't end up at mouse cursor 2012-08-20 15:41:55 +02:00
615b5fabfd transformtool: Add the five options instead of just two 2012-08-20 15:41:55 +02:00