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