Commit Graph

4359 Commits

Author SHA1 Message Date
81cf8aa601 app: improve usability of the handle transform tool
Reorganize tool modes to be { ADD_TRANSFORM, MOVE, REMOVE }, where
ADD_TRANSFORM is the default and allows to add handles *and* transform
the image in one click-drag. MOVE moves handles without transforming
(shift) and REMOVE removes handles (control). Also improve cursors to
accurately show the result of a click.
2015-04-02 23:31:41 +02:00
aa3cb40600 app: fix warnings in GimpTileHandlerIscissors 2015-03-30 22:51:13 +02:00
5217900748 configure/app: libmypaint becomes an optional dependency. 2015-03-30 22:38:35 +02:00
5460c414db app: move the MyPaint brush into the playground. 2015-03-30 22:38:35 +02:00
2594c09e41 app: make the mypaint tool brush outline size follow the settings instantly 2015-03-30 22:38:35 +02:00
6ea9b5c3cf app: connect the MyPaint brush radius to the tool tip size action 2015-03-30 22:38:35 +02:00
5ccea24952 app: let gimppaintoptions-gui.c know about the MyPaint brush tool
and disable stuff accordingly.
2015-03-30 22:38:35 +02:00
628593ae5a app: port the MyPaint brush to GimpPaintTool::get_outline() 2015-03-30 22:38:35 +02:00
dd767bca37 app: use gimp_paint_tool_set_draw_circle() in the MyPaint brush tool 2015-03-30 22:38:34 +02:00
071ede915a app: first draft of GimpMybrushTool, which uses MyPaint brushes 2015-03-30 22:38:34 +02:00
974ce0b6d1 app: GimpHandleTransformTool: remove shortcuts in is_handle_position_valid()
The check should not depend on trans_info[NUM] because the code that
has the division by zero to avoid doesn't either. Closes bug #721009.
2015-03-30 00:12:16 +02:00
a5edc76c76 app: Iscissors: actually set the state to REMOVE so the right cursor appears 2015-03-28 22:46:49 +01:00
f2c4b9317f app: Iscissors: allow to remove points with Control-Click 2015-03-28 22:41:43 +01:00
bd75ed6bf0 app: Iscissors: don't crash when cancelling the initial point 2015-03-28 21:52:26 +01:00
4842e2a14f Bug 670031 - Would like to undo intelligent scissors selections in progress
Add undo to the Isissors tool, along with some refactoring:

- Always modify the actual curve, instead of a set of obscure states
  kept around in the tool instance
- On cancel, simply go back to the curve on the undo stack
- Draw handles on top of curve segments
- Draw the currently edited segments and handles in the highlight color
2015-03-28 21:31:03 +01:00
565b0af74d app: IScissors: add struct ICurve for the entire curve and its state 2015-03-27 21:37:57 +01:00
e6fe3ed3b0 app: Iscissors: rename struct ICurve to ISegment 2015-03-27 10:45:28 +01: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
94a872f051 app: some cleanup in the Iscissors tool
Create utility functions to create and free ICurve segments, improves
readability. And some random code cleanup.
2015-03-20 21:18:23 +01:00
d11f83a640 app: resurrect the Iscissors tool to a zombie state
The interaction is fully restored, it's also ported to the new halt()
and commit() API of tools and semi-properly GEGLized: the gradient map
is now constructed on the fly using a GimpTileHandlerValidate
subclass.

The only problem is that it doesn't find any edges in the image and is
totally useless. Pushing anyway to put an end to the bitrot, any help
with debugging is greatly appreciated...
2015-03-17 22:24:56 +01:00
4dcd48fff2 app: move the handle transform tool to the playground 2015-03-08 17:21:11 +01:00
8f4fe89309 app: some more cleanup in the handle transform tool 2015-03-08 17:12:13 +01:00
2989bad35a Bug 721009 - new transform tool with freely placeable handles
Add new tool GimpHandleTransformTool which allows to freely place up
to 4 handles on the image, then move any one of them, which transforms
the image so that the remaining handles keep their position.

Did quite some cleanup on the code before pushing --Mitch
2015-03-05 12:36:59 +01:00
67673e0b09 app: oops, fix last commit 2015-03-05 10:28:50 +01:00
8236068982 app: add struct GimpTransformOptionsClass
instead of simply typedefing it to the parent class struct.
2015-03-05 09:57:23 +01:00
e44e738267 app: add gegl:edge to Filters -> Edge-Detect 2015-03-03 22:55:39 +01:00
b27c5b0985 app: move the N-Point Deformation tool to the playground
It has to be enabled via Prefs -> Playground. The menu entry is always
disabled until it leaves the playground, for reasons worth fixing.
2015-03-03 20:26:58 +01:00
825d4ab185 app: make sure there is always a tool selected on startup
"No tool on startup" can happen if a tool has disappeared between
sessions, or by broken manual config file editing.
2015-03-03 20:24:40 +01:00
3f523dc88b app: some cosmetic cleanup in the cage tool 2015-03-02 01:02:06 +01:00
c194c5d8c2 app: simplify npd tool motion event handling
by getting rid of the complicated "previous selected points" handling
and simply keeping around the last motion event's coords for
calculating the deltas to move the selected points.
2015-03-01 23:57:10 +01:00
06797982ba app: fix crash and cleanup in gimp_n_point_deformation_tool_key_press() 2015-03-01 20:30:17 +01:00
87ee494f79 app: npd: no CAPS in property and member names
This commit should also fix setting the tool's options on the GEGL op;
and it gets rid of one more member of the npd options.
2015-03-01 18:21:17 +01:00
c3b6b3273c app: lots of cleanup in the N-Point Deformation tool
- Formatting and indentation
- Handle GIMP_TOOL_ACTION_COMMIT
- Fix calls to gimp_tool_control_activate()/halt()
- Move variables to local scopes
- Remove and reorder includes
- Remove redundant members from the tool struct
- Set members to NULL after freeing them
- And whatnot...
2015-03-01 16:49:22 +01:00
8a56234c9a app: npd-tool: let GEGL NPD operation destroy the model 2015-02-27 20:21:52 +01:00
415d7f2781 app: npd-tool: remove option to pause the deformation process 2015-02-27 20:21:52 +01:00
129c826d49 app: npd-tool: draw lattice using GimpDrawTool's functions 2015-02-27 20:21:52 +01:00
f80b126563 app: npd-tool: fix tool's options 2015-02-27 20:21:52 +01:00
ffc6024ee4 app: npd-tool: show only a preview (hide the image) when the deformation is in progress
and show the image again when the deformation is done
2015-02-27 20:21:52 +01:00
10255eddbb app: npd-tool: add option to apply or cancel the deformation 2015-02-27 20:21:52 +01:00
c4e12fdd7c app: npd-tool: use canvas buffer preview 2015-02-27 20:21:52 +01:00
c1f8784ae3 app: npd-tool: deal with drawable's offset 2015-02-27 20:21:51 +01:00
b6b1d3c27a app: npd-tool: add option to pause/unpause deformation process 2015-02-27 20:21:51 +01:00
8fcf1e0015 app: npd-tool: update tool's start function 2015-02-27 20:21:51 +01:00
4af9bd5981 app: npd-tool: deformation runs in its own thread 2015-02-27 20:21:51 +01:00
2654fadc6c app: npd-tool: scale radius of a control point according to display shell's scale 2015-02-27 20:21:51 +01:00
ccc83296e7 app: npd-tool: start and stop the tool more correctly
Don't add a control point after the first click on the drawable,
just start the tool. Don't stop the tool if it hasn't been started.
2015-02-27 20:21:51 +01:00
a90159a3ef app: npd-tool: remove control points using proper keys
BACKSPACE removes last added control point, DELETE removes selected control points.
2015-02-27 20:21:51 +01:00
ffecedf223 app: npd-tool: add option to remove selected control points 2015-02-27 20:21:51 +01:00
80adf02de8 app: npd-tool: add rubber band selection 2015-02-27 20:21:51 +01:00
6ea27ea690 app: npd-tool: add option to show mesh 2015-02-27 20:21:51 +01:00