Barak Itkin
cacca4b317
commit of a WIP, introducing some of the actual tool logic
2013-05-15 00:25:31 +02:00
Barak Itkin
5fa0df17dd
Add a skeleton for the seamless clone tool, based on the cage tool
2013-05-15 00:25:30 +02:00
Michael Natterer
5baabf87fd
app: add gegl:exposure to Colors, and fix glitch in previous commit
2013-05-14 22:26:16 +02:00
Michael Natterer
de12010107
app: add gegl:box-blur to Filters/Blur
2013-05-14 21:34:03 +02:00
darkraid1
ac5428787e
Bug 598523 - Protect hidden layers from editing
...
Don't allow tool operations on invisible items, just like we do for
group layers or locked items.
Cleaned up and enhanced the patch a bit --Mitch
2013-05-13 23:29:43 +02:00
Michael Natterer
8320381885
app: add untested infrastructure for tool-internal undo/redo
...
Add virtual functions GimpTool::undo(), ::redo(), ::get_undo_desc()
and ::get_redo_desc() and corresponding wrappers in tool_manager.
Make the edit-undo and edit-redo actions check tool undo/redo first
before invoking image undo/redo.
2013-05-12 19:51:52 +02:00
Jehan
3496e178ef
Bug 699185 - when moving the pointer fast out of guide scope, do not keep it highlighted.
...
When a drawing timeout happens too close from the previous drawing, we don't want to cancel
the timeout function (FALSE), but simply retry later (TRUE).
In our case in particular, if you move your pointer very fast over a guide, the highlighting
drawing was happening less than MINIMUM_DRAW_INTERVAL before the un-highlighting drawing,
hence canceling the later, which caused the drawing bug.
2013-05-12 05:24:12 +09:00
Miroslav Talasek
1cd1541b2d
app: port the foreground select tool to the GEGL matting ops
...
This is work in progress and needs the fixed GEGL ops too.
2013-05-08 00:00:48 +02:00
Miroslav Talasek
b893993e7b
app: add new enums GimpMattingDrawMode and GimpMattingEngine
2013-05-07 23:09:55 +02:00
Michael Natterer
0255a01f95
app: add gegl:checkerboard to <Image>/Filters/Render/Pattern
2013-04-30 19:20:18 +02:00
Michael Natterer
abbe2ecba9
app: build the foreground select tool again, minus the calls to SIOX
...
the interaction is completely there again, it just doesn't nothing
fancy with the mask :)
2013-04-30 00:04:28 +02:00
Michael Natterer
f6ec4f4af2
app: remove the image map tool overlay before hiding it again
...
Which means I have given up finding that last bug (for now).
2013-04-28 14:57:57 +02:00
Michael Natterer
2a0472b57e
app: don't forward key events to the curves tool graph if the tool isn't active
2013-04-26 00:11:51 +02:00
Michael Natterer
595f52bf09
app: more cleanup in GimpImageMapTool's overlay dialog handling
...
gimp_image_map_tool_initialize(): clean up adding the overlay.
gimp_image_map_tool_dialog_hide(): hide the overlay before removing it.
2013-04-25 22:46:05 +02:00
Michael Natterer
8230e948a8
app: allow to call gimp_image_map_tool_dialog_hide() multiple times
...
don't try to remove a GimpOverlayDialog from the canvas twice.
2013-04-25 22:23:32 +02:00
Michael Natterer
325d7541c7
app: always show the tool progress in the center of the canvas
...
getting rid of one more untransform_viewport().
2013-04-25 09:41:21 +02:00
Michael Natterer
62c5a737fd
app: fix conditions for guide and sample point moving/removing
...
Simply check the transfomred coords against the canvas extents and the
untransformed against the image contents instead of using
untransform_viewport(). The code is easier to read now, and
untransform_viewport() is still broken and can't really be implemented
properly when the canvas is rotated.
2013-04-25 09:30:46 +02:00
Michael Natterer
37d589335f
app: consolidate all transform API in gimpdisplayshell-transform.[ch]
...
Added complete API for zoom/unzoom (scale and scroll) and
rotate/unrotate, with the same set of functions as the existing
transform/untransform. Moved some special case functions to the
namespaces they belong.
2013-04-25 00:29:58 +02:00
Michael Natterer
aea94211b1
app: add an unrotated canvas item group to GimpDisplayShell
...
and put the software cursor and the tool progress there.
2013-04-24 00:01:01 +02:00
Mikael Magnusson
8cc53bbbdf
app: forgot to invert the matrix in corrective mode when transforming the selection.
2013-04-23 17:15:23 +02:00
Michael Natterer
a80795e222
app: remove "GeglRectangle visible" from gimp_image_map_apply()
...
because we now use a filter and the image projection updates
the visible part only.
2013-04-22 00:29:38 +02:00
Michael Natterer
f1b5012f23
app: fix gimp_draw_tool_on_handle() on rotated views
...
Unrotate the display coords, then compare rectangles.
2013-04-20 15:30:23 +02:00
Michael Natterer
52b92e740f
app: rename gimpdisplayshell-style to gimpcanvas-style
...
because it doesn't and shouldn't depend on GimpDisplayShell at all.
In the future, it will take its defaults from the canvas' theme.
2013-04-18 16:46:01 +02:00
Michael Natterer
b71ffeca60
app: do more stuff generically in gimp_image_map_tool_initialize()
...
- reset the config object if it exists
- trigger the first preview of the filter
- remove the same stuff from all subclasses
2013-04-16 23:28:02 +02:00
Michael Natterer
9bb4c3d484
app: pull some GEGL operation logic from subclasses into GimpImageMapTool
...
- connect to the config object's notify generically and update the preview
- allow to properly exchange the operation at runtime to remove major
uglyness from GimpOperationTool
- return undo_desc from GimpImageMapTool::get_operation() so we have
proper strings in the undo history, not always "GEGL operation"
- simplify all get_operation() implementations
2013-04-16 22:06:48 +02:00
Michael Natterer
9994a4d514
app: remove the notify::use-gegl callback from GimpImageMapTool
2013-04-16 20:38:40 +02:00
Michael Natterer
e3b2a54da7
app: add a stock_id to GimpImageMap and use it for its filter
...
Refactor GimpImageMapTool and GimpOperationTool to set the stock_id,
and to be a bit smarter with the image map's undo string.
2013-04-16 20:32:58 +02:00
Michael Natterer
1e17f0aed1
app: port GimpImageMap to use the new drawable filters
...
which makes live update more responsive and removes tons of code, but
adds a delay with progress when finally committing the effect.
2013-04-12 14:35:27 +02:00
Michael Natterer
46f74d9f46
app: return GeglBuffer from gimp_image_contiguous_region_foo()
...
now all intermediate masks should be in "Y float" and avoid all
conversions.
2013-04-09 01:38:24 +02:00
Michael Natterer
71c88aebdc
app: add gegl:vignette to Filters -> Decor
2013-03-27 01:35:49 +01:00
Mikael Magnusson
a2e8da357e
transformtool: flip cursor if needed
2013-03-24 23:13:56 +01:00
Michael Natterer
a6862af834
app: shorten the labels of the cage tool options by adding newlines
...
This is an exception because the tool only has three option widgets.
2013-03-24 22:11:20 +01:00
Michael Natterer
cdf2c7ba4b
app, menus: add CIE lch noise to the menus
2013-03-09 22:59:13 +01:00
Michael Natterer
c76a23075d
app: blacklist some more useless ops in the GEGL tools
2013-03-09 22:23:52 +01:00
Michael Natterer
06a4d2e29f
app: have proper titles in the GEGL filter settings import/export dialogs
...
"Import foo" and "Export foo" were just not good enough...
2013-03-09 20:34:15 +01:00
Michael Natterer
54778783ed
app: make a hack in GimpOperationTool slightly worse, but clearer
2013-03-09 20:27:02 +01:00
Michael Natterer
69c897a118
app: fix crash in GEGL tool when an operation specific tool was used before
...
gimp_image_map_tool_initialize(): add the saved settings combo only if
we have a config object.
2013-03-09 20:16:24 +01:00
Michael Natterer
edec6ac8cc
app: add some more gegl ops to the menus (wip)
2013-03-09 18:10:14 +01:00
Michael Natterer
448722c849
app: blacklist some more ops in the GEGL tool, they are in the menus
2013-03-08 17:24:02 +01:00
Michael Natterer
931ea102f8
Bug 693978 - GIMP crashes after changing text preset
...
Applying a preset overwrites all the tool option's properties, also
temporarily its name. This name change gets auto-synced with the
option's text proxy object which also inherits from GimpObject and has
a name. Make sure we don't queue that name change for being applied to
the text layer's text object, because that code only handles
properties of GimpText itself.
2013-02-16 20:38:15 +01:00
Téo Mazars
f6e64b9ed9
Bug 688068 - Rect selection: "Fixed: Aspect Ratio" doesn't work when...
...
Use current aspect when creating rectangle tool from a selection.
2013-02-13 00:36:44 +01:00
Téo Mazars
4a5a6ef914
Bug 684330 - Rectangle tool's "fixed size" option is off-by-one
...
ROUND() is consistent only on positive values, and bad rounding
creates an offset when negative values are involved. Introduce
SIGNED_ROUND() and use it in gimprectangletool.c. It should probably
be used in much more places.
2013-02-13 00:08:39 +01:00
Ville Skyttä
6b0d1038cc
Bug 692641 - Various spelling fixes
2013-01-27 18:59:02 +01:00
Michael Natterer
e5112fa540
Bug 690900 - Typo in GIMP UI
...
Fix typo in gimptransformtool.c
2012-12-30 20:38:37 +01:00
Michael Natterer
593ddb741f
Bug 688746 - Select tool Alt+Shift and Alt+Ctrl dragging modifies...
...
Check for layer groups and locked layers in gimp_selection_tool_start_edit()
and show the usual warning instead of allowing the forbidden operation.
2012-12-14 23:02:56 +01:00
Michael Natterer
908f727f0a
Chain up unconditionally in GObject::constructed()
...
It's supported since GLib 2.28.
2012-11-12 21:51:22 +01:00
Michael Natterer
5efd56c1c8
Bug 679223 - "Rate" in tool options needs translation context
...
Add translation contexts for "Rate" of airbrush, convolve and smudge.
2012-11-12 01:06:58 +01:00
Michael Natterer
76b05c2afc
app: make Tab, Shift+Tab and Escape move the focus back to text editing
...
when it was in the floating text style editor. While this doesn't fix
anything by itself, it enables fixing text style setting to behave
reasonably when there is no selection.
2012-11-09 22:06:51 +01:00
Michael Natterer
d4933b3052
Bug 674160 - Redesign of "Lock panel"
...
Apply and heavily modify patch from remyDev which adds "lock position"
to GimpItem, similar to "lock content". Lock position disables all
sorts of translation and transform, from the GUI and the PDB.
Cleaned up some aspects of the lock content code as well because a
second instance of similar code always shows what went wrong the first
time.
2012-11-09 11:17:25 +01:00
Michael Natterer
6a33951aa6
Bug 687851 - Gimp crashes on Colors > Desaturate
...
Don't install the frame rate limiting draw timeout when resuming a
draw tool that is not active, so accidential timeout installation from
whatever tool dispose code can't happen.
2012-11-07 23:21:13 +01:00
Michael Natterer
eba022f01b
Bug 687375 - Text tool: unnecessarily insists on having a layer before working
...
There is no reason to disallow the text tool from working on a
previously empty image, so allow it.
2012-11-06 22:22:02 +01:00
Michael Natterer
66bd90c9f2
Bug 533590 - Perspective clone of a pattern doesn't apply perspective
...
Implement perspective cloning from a pattern. This needed quite some
refactoring, so GimpSourceCore would be able call its get_source()
vfunc also for a GimpClone subclass: essentially this commit adds a
new GimpSourceCore::use_source() vfunc that replaces the
source_options->use_source flag hack, and makes sure the graph used in
GimpPerspectiveClone's get_source() impl reads from the pattern
instead the drawable.
This version does not properly tile the pattern yet, so you can only
clone one copy of the pattern (gegl:tile is not quite doing the right
thing, so it's disabled).
2012-11-01 21:39:14 +01:00
Massimo Valentini
9b58e2ba0c
Bug 684483 - Text tool: crash after double clicking text
...
It seems that when the undo action reverts a text -> mark-up change
(or v.v.) the notifications are inverted, first is emitted the new
value notification and successively the property becoming NULL. The
result is that gimp_text_buffer_set_{text,mark-up} is called last with
NULL, unsetting both text_buffer text and mark-up.
The right way to do it is to always prefer "markup" over "text" if
markup is present, no matter if the notification was for "markup" or
"text".
2012-10-22 15:40:55 +02:00
Michael Natterer
2b3e5ebd78
Bug 686523 - Text tool: text editor not shown on empty text box
...
gimp_text_tool_options_notify(): always show the editor, also when no
text object exists yet. There was no reason for this limitation.
2012-10-21 23:30:34 +02:00
Michael Natterer
438fc4221e
app: remove unused variable in gimp_unified_transform_tool_init()
2012-10-12 22:39:11 +02:00
Michael Natterer
52d933a1cc
Bug 663582 - Brush outline is too slow
...
Even less drawing: let the timeout running if it triggers within the
50ms since the last drawing, so it's reduced to its actual purpose of
updating to the actual cursor position after framerate-limiter skipped
drawing.
2012-10-06 16:39:14 +02:00
Michael Natterer
4218d9342f
Bug 663582 - Brush outline is too slow
...
One more try: merge the spirit of Alexia's patch, but don't disable
the timeout, only make sure the minimum fps is also applied when
drawing is triggered by gimp_draw_tool_resume().
2012-10-06 00:27:49 +02:00
Michael Natterer
db5c952c4e
Bug 663582 - Brush outline is too slow
...
Don't confuse microseconds with milliseconds: the 20 fps interval
is 50000, not 50, sigh.
2012-10-06 00:03:47 +02:00
Michael Natterer
fd4e220c28
Bug 663582 - Brush outline is too slow
...
Keep around the last drawing time in GimpDrawTool and make sure we
draw at least with a frame rate of around 20 fps, which feels
reasonably non-laggy.
2012-10-04 20:43:58 +02:00
Michael Natterer
303e554ab1
app: remove "gboolean active_layer_only" from gimp_image_crop()
...
Also a very historic API, it doesn't belong there. Instead, simply
call gimp_item_resize() in GimpCropTool.
2012-09-22 15:08:05 +02:00
Michael Natterer
c1811d6bdf
app: gimp_image_crop_auto_shrink() -> gimp_pickable_auto_shrink()
...
It was in gimpimag-crop only for historic reasons. Clean up API
and code to do simpler and more reasonable stuff.
2012-09-22 14:56:52 +02:00
Mikael Magnusson
da795c1267
gimptransformtool: Restore code that apparently was for the flip tool
2012-09-20 15:18:00 +02:00
Michael Natterer
9b927ba0cd
Bug 683791 - Free select tool constraint key
...
Fix condition that constrains angles to 15°, its bracketing was wrong.
2012-09-14 11:04:21 +02:00
Michael Natterer
2c3a046d83
Bug 683553 - Spinscale scrollvalues in Brushsize are much too smal
...
Set the step/page increments to 1.0/10.0 for brush size and to 0.1/1.0
for aspect ratio. the previous values were way too small.
2012-09-11 20:28:20 +02:00
Michael Natterer
e546f2b43b
Bug 683462 - cropping with rectangular select tool leaves misaligned...
...
Reset the tool on image changes again, but not if only the active
drawable changes, so keep bug #678890 closed:
Introduce new dirty flag GIMP_DIRTY_ACTIVE_DRAWABLE and set it on all
tools' dirty_mask except for rect select. Check the new flag when
reseting the active tool because of a drawable change.
2012-09-06 23:55:35 +02:00
Mikael Magnusson
0f380eba53
transformtool: actually use the correct index for the angle vector
2012-08-27 15:12:29 +02:00
Mikael Magnusson
6396e83057
transformtool: use new corner and side cursors appropriately considering current transform
2012-08-27 15:07:15 +02:00
Mikael Magnusson
11a9fe33d9
app: another minor cleanup in gimpunifiedtransformtool.c
...
you missed a spot
2012-08-23 02:16:06 +02:00
Mikael Magnusson
b11a705203
transformtool: rotate handles along with frame
2012-08-22 22:53:59 +02:00
Mikael Magnusson
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
Michael Natterer
5d711be340
app: formatting cleanup in gimpunifiedtransformtool.c
2012-08-22 20:45:16 +02:00
Michael Natterer
95584e5548
app: re-format a comment in gimptransformtool.c
2012-08-22 20:41:44 +02:00
Mikael Magnusson
8dfc72dca9
transformtool: Make real_pick_function and real_draw_gui implementations of vfuncs
2012-08-21 20:59:15 +02:00
Michael Natterer
b1acd93f5e
Some formatting cleanup in the unified transform tool commits
2012-08-21 19:50:01 +02:00
Mikael Magnusson
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
Mikael Magnusson
d789cbff9d
transformtool: Fix indent of switch statement
2012-08-20 20:28:19 +02:00
Mikael Magnusson
6af6218c2b
transformtool: Remove now unused variables
2012-08-20 16:57:58 +02:00
Mikael Magnusson
4c22ed8128
transformtool: Use the same method for frompivot for shearing as everything else
2012-08-20 16:42:29 +02:00
Mikael Magnusson
3f72695a80
transformtool: kill rotate and move handle, instead rotate when outside frame (move already works inside)
2012-08-20 15:46:48 +02:00
Mikael Magnusson
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
Mikael Magnusson
574df2b6db
transformtool: We show corrective preview for selections and paths, so why not drawables
2012-08-20 15:46:47 +02:00
Mikael Magnusson
4e57571103
transformtool: Remove some annoying duplication and draw perspective handles differently
2012-08-20 15:46:47 +02:00
Mikael Magnusson
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
Mikael Magnusson
c37619ade7
transformtool: Pick move operation anywhere inside polygon
2012-08-20 15:46:47 +02:00
Mikael Magnusson
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
Mikael Magnusson
62525e090b
transformtool: use GimpFrame + GtkBox to group the options instead of just putting GtkLabel between them
2012-08-20 15:46:46 +02:00
Mikael Magnusson
f84987de73
transformtool: Add the bunch of 8 separate options for 3 things
2012-08-20 15:46:46 +02:00
Mikael Magnusson
03117bdf40
transformtool: Update modifier keys for options, solves problem with perspective frompivot + constrain
2012-08-20 15:46:46 +02:00
Mikael Magnusson
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
Mikael Magnusson
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
Mikael Magnusson
293600c579
transformtool: Add a draw_gui method to the TransformTool class and remove some hack duplication
2012-08-20 15:46:46 +02:00
Mikael Magnusson
01142f248d
transformtool: some more cleanup + comments
2012-08-20 15:46:45 +02:00
Mikael Magnusson
03d9a75c30
transformtool: Rename p to d because p is a weird name for a delta/diff
2012-08-20 15:46:45 +02:00
Mikael Magnusson
eb65b09ebd
transformtool: move assignment of coords to after the logic code, this somehow fixes frompivot perspective
2012-08-20 15:46:45 +02:00
Mikael Magnusson
ed29503f28
transformtool: Deduplicate code, use more vector representations, fix style and warnings
2012-08-20 15:46:45 +02:00
Mikael Magnusson
70671f2967
transformtool: Factor out getpivotdelta() function
2012-08-20 15:46:45 +02:00
Mikael Magnusson
bad3c0d86c
transformtool: Add frompivot for perspective handles too
2012-08-20 15:46:45 +02:00
Mikael Magnusson
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
Mikael Magnusson
52dd46f9d3
transformtool: Copy the corner scale non-aspect frompivot code to side scale
2012-08-20 15:41:55 +02:00
Mikael Magnusson
76f23aa8a0
transformtool: Use better method for keepaspect side scaling
2012-08-20 15:41:55 +02:00
Mikael Magnusson
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
Mikael Magnusson
615b5fabfd
transformtool: Add the five options instead of just two
2012-08-20 15:41:55 +02:00
Mikael Magnusson
6dac9e84f9
transformtool: Show an incredibly helpful message in the statusbar when a handle is hovered over
2012-08-20 15:41:55 +02:00
Mikael Magnusson
5cfa57ae87
transformtool: how to draw in screen coords
2012-08-20 15:41:54 +02:00
Mikael Magnusson
b0dbaaae54
transformtool: Add todo about pivot point
...
Move pivot with frame, needs to do so for all operations
2012-08-20 15:41:54 +02:00
Mikael Magnusson
be3f42c401
transformtool: implement aspect constraint for scaling via side handle
2012-08-20 15:41:54 +02:00
Mikael Magnusson
e762764a1d
transformtool: Make basic scale op via side handle behave as spec, no constrain or frompivot
2012-08-20 15:41:54 +02:00
Mikael Magnusson
3367a415c4
transformtool: corner scale: use full transform machinery to keep pivot constant position, missing some offset maybe
2012-08-20 15:41:54 +02:00
Mikael Magnusson
d5220e7d42
transformtool: nonworking naive frompivot for corner scale
...
This just scales the distance to the pivot from the handle in x and y
separately, which turns out to only work sometimes.
2012-08-20 15:41:54 +02:00
Mikael Magnusson
c5b4beff65
transformtool: Make corner scale op behave as spec, no frompivot
2012-08-20 15:41:53 +02:00
Mikael Magnusson
948cf1801c
transformtool: implement fromcenter constraint for shearing (old spec)
...
This doesn't keep the pivot in place, it merely moves the opposite edge
by the same amount (but in the opposite direction).
2012-08-20 15:41:53 +02:00
Mikael Magnusson
9a58e878be
transformtool: Make shear op behave as spec, no frompivot
2012-08-20 15:41:53 +02:00
Mikael Magnusson
5ed30efc49
transformtool: remove unneeded old stuff, cleanup
2012-08-20 15:41:53 +02:00
Mikael Magnusson
ce2c959408
transformtool: Make perspective op behave as spec
2012-08-20 15:41:53 +02:00
Mikael Magnusson
a532c77bca
transformtool: Make rotation axis behave as spec
2012-08-20 15:41:33 +02:00
Mikael Magnusson
81cb334d94
transformtool: Make rotate op behave as spec
2012-08-20 15:22:22 +02:00
Mikael Magnusson
dd470c9259
transformtool: Make move op behave as spec
2012-08-20 15:22:22 +02:00
Mikael Magnusson
003ccf2aec
transformtool: Enable hit detection for new handles
2012-08-20 15:22:22 +02:00
Mikael Magnusson
a8a8450b6e
transformtool: Add temporary new handles
...
put perspective handles on the outside instead (if you invert the frame,
they'll switch place with the scale handles, oh well)
2012-08-20 15:22:22 +02:00
Mikael Magnusson
9e330e432b
transformtool: temp hack to fiddle with drawing interface
2012-08-20 15:22:22 +02:00
Mikael Magnusson
c4143ff209
transformtool: Remove shift-clicking to accept transform since shift is used as a modifier
2012-08-20 15:22:22 +02:00
Mikael Magnusson
362afb122a
transformtool: Try to straighten out modifiers
2012-08-20 15:22:21 +02:00
Mikael Magnusson
2967e4fbfd
transformtool: remove unused function shearvector()
2012-08-20 15:22:21 +02:00
Mikael Magnusson
99f9d4d219
transformtool: add old "new" unified transformation tool
...
This is the proof of concept code I wrote before gsoc, with very naive
behaviour and simple interface.
2012-08-20 15:22:21 +02:00
Mikael Magnusson
f5b08f33aa
transformtool: Infinite undo
...
add undo and redo buttons, can undo all interactions. The reset button
is equivalent to undoing all operations and lets you press redo to get
back to before you reset. Doing something after undo will of course
clear all redo events.
2012-08-20 15:22:21 +02:00
Mikael Magnusson
c883c761df
transformtool: calculate center handle position correctly, add pivot handle
...
and use pivot handle in rotatetool so it works as before.
2012-08-20 15:22:21 +02:00
Mikael Magnusson
7baaaa4867
app: remove useless function call in gimp_tool_motion
2012-08-20 15:22:20 +02:00
Michael Natterer
47c987b09e
Bug 676270 - cppcheck report
...
Fix a couple of harmless stuff pointed out in the report, and one
real bug: gimp_plug_in_close() was killing each process 10 times
on windows.
2012-08-04 03:20:36 +02:00
Michael Natterer
078128bb09
Bug 678890 - Selection box handles do not respond after changing layer
...
Make sure that temporarily setting/unsetting tool->control's "preserve
tool across image changes" does not mess up the default value:
Introduce gimp_tool_control_push/pop_preserve() which restores the old
state automatically, and use it in all tools, instead of saying
set_preserve(TRUE/FALSE) around image changes.
2012-07-26 18:17:01 +02:00
Massimo Valentini
c743a4fc0a
app: don't pass a NULL widget to gtk_widget_event
...
<Alt>C C <Ctrl>1 <ESC> used to print:
(gimp-2.8:1): Gtk-CRITICAL **: IA__gtk_widget_event:
assertion `GTK_IS_WIDGET (widget)' failed
2012-07-05 18:08:01 +02:00
Michael Natterer
3de48e6570
app: experiment with different UI value ranges for different image precisions
...
in the levels tool. This clearly needs a generic solution for the many
places that need such changes.
2012-06-07 21:47:07 +02:00
Michael Natterer
ccae8cffc3
app: add color-reduction to the colors menu
2012-05-23 12:56:24 +02:00
Michael Natterer
7d280abd9a
Bug 676585 - Gimp crashes when writing in Arabic and clicking right arrow
...
Check for pango_layout_move_cursor_visually() returning a new index of
G_MAXINT, which indicates that we moved beyond the end of the layout,
and do nothing instead of trying to access the memory there.
2012-05-23 09:44:51 +02:00
Michael Natterer
513e3b6a78
app: disable the foreground select tool properly: #if 0 everything
...
so it's not in the way of further cruft removal.
2012-05-21 03:09:08 +02:00
Michael Natterer
d93b7e5e54
app: the TileManager in gimptransformtoolundo.h needs porting
2012-05-21 02:27:03 +02:00
Michael Natterer
d80182cf25
app: disable the IScissors tool, if you want it back, please go ahead
2012-05-20 20:38:12 +02:00
Michael Natterer
e5fc441433
app: GimpIscissorsTool: move one-time initializations to class_init()
2012-05-20 19:19:12 +02:00
Michael Natterer
2d882dd64f
Bug 676279 - Ctrl or Shift causes selection tools to reset...
...
Make sure to not override the logic that separates the tool option's
selection mode from the one determined by modifiers, by blindly
calling gimp_modifiers_to_channel_op(state) on a zero state.
2012-05-17 23:34:22 +02:00
Michael Natterer
c4142d0574
app: change the value to render in the GimpScanConvert API to a 0..1 double
2012-05-13 23:13:53 +02:00
Alexandre Prokoudine
eb48617a38
Replaced old Difference of Gaussians, Laplace and Sobel filters with new GEGL operations
2012-05-13 06:41:19 +04:00
Alexandre Prokoudine
ac85c84a0f
Replaced old Ripple and Lens Distortion filters with new GEGL operations
2012-05-13 06:15:24 +04:00
Alexandre Prokoudine
20ae491b21
Replaced the old Unsharp Mask filter with the new GEGL operation
2012-05-13 05:38:24 +04:00
Michael Muré
bec5a7e805
cage tool: fix handle added in the wrong side of the cage
...
This happened when:
1) cage still open
2) clicking on the edge between the first and the last handle
2012-05-11 12:34:53 +09:00
Michael Muré
d9ba8b81da
Bug 675825 - (cage) simply using cage transform tool makes gimp to crash.
...
Just check if there is enough handles before closing
2012-05-11 12:02:58 +09:00
Michael Natterer
7101ee191a
app: move all GEGL operations to new directory app/operations/
2012-05-10 21:22:44 +02:00
Michael Natterer
69893e4f72
app: remove GimpPickable::get_tiles()
...
and change some legacy places to get their tiles from the buffer
returned by GimpPickable::get_buffer().
2012-05-06 01:01:54 +02:00
Michael Natterer
e7e8c9ef0a
app: don't call gimp_image_flush() when cancelling GimpImageMapTool
...
because the tool might be cancelled from some other place opening an
undo group, so flushing the image would update menus and whatnot while
that other operation is running, with unforeseeable side
effects. Also, flusing the image here is not needed because we didn't
change anything in the image. Instead, make sure manually that the
display is updated correctly after restoring GimpImageMapTool's
temporary editing.
2012-05-05 21:47:17 +02:00
Michael Natterer
d198c9d85c
app: don't use g_str_has_prefix() for blacklisting GEGL ops
...
so we don't accidentially blacklist things.
2012-05-05 20:49:27 +02:00
Michael Natterer
5ea928b3df
app: use our gtk_box_new() wrapper instead of gtk_vbox_new()
2012-05-04 17:23:17 +02:00
Michael Natterer
c1259daa54
app: blacklist gegl:sdl-display in the GEGL tool
2012-05-03 15:06:45 +02:00
Michael Natterer
84745b48e8
app: add a color button and picker to the colorize tool dialog
2012-05-03 15:02:34 +02:00
Michael Natterer
cf43a09626
app: clamp the return value of gimp_operation_levels_map_input()
...
before putting it into 8 bit for rendering UI stuff, because the
function itself doesn't clamp any longer.
2012-05-02 17:51:23 +02:00
Michael Natterer
1ea3bb827e
app: add a dedicated menu entry for gegl:color-temperature
2012-05-02 17:51:23 +02:00
Michael Natterer
3db9deed1c
app: add color pickers to all GEGL tool color properties
...
The way to make gimp_prop_table_new() create tool pickers is
disgusting, but works.
2012-05-02 17:51:22 +02:00
Michael Natterer
50439e812e
app: move GimpLevelTool's color picking stuff into GimpImageMapTool
...
so all subclasses can use it.
2012-05-02 17:51:22 +02:00
Michael Natterer
662bba9fb3
app: generalize some Babl format hardcoding in GimpLevelsTool
2012-05-02 17:51:22 +02:00
Michael Natterer
981f039053
app: don't disable the blend tool on indexed drawables
2012-05-02 17:51:21 +02:00
Michael Natterer
fa0faf4254
app: replace the polar-coords plug-in by gegl:polar-coordinates
2012-05-02 17:51:19 +02:00
Michael Natterer
c57b4f0fa3
app: port by color select and fuzzy select to float
...
so it works nicely on all precisions, disable HSV color matching for
now, need to decide what to do with it.
2012-05-02 17:51:18 +02:00
Michael Natterer
1bbd3d40a8
app: make the GimpTempBuf struct private and add accessors
2012-05-02 17:51:12 +02:00
Michael Natterer
7d9cd6a413
app: don't hardcode "Y u8" when checking whether to clip transformed buffers
...
instead, check if the format has alpha.
2012-05-02 17:51:08 +02:00
Michael Natterer
85bd6b0dd9
app: pass a format, not bpp, to gimp_viewable_get_dummy_pixbuf()
...
and add tons of <gegl.h> includes.
2012-05-02 17:51:08 +02:00
Michael Natterer
3e9fdf1815
app: change GimpBoundary to find the boundary a float component
...
Require passing in a Babl format that will extract the float component
the algorithm should run on.
2012-05-02 17:51:07 +02:00
Michael Natterer
3ea0e3f090
app: return double not int from GimpPickable::get_opacity_at()
...
and fix GimpLayer's impl to honor the mask also for layers without
alpha.
2012-05-02 17:51:07 +02:00
Michael Natterer
ca6323f382
app: fix signal signature of GimpColorTool::picked()
...
A Babl format is not of GIMP_TYPE_IMAGE_TYPE, this would have horribly
crashed on 64bit, I guess...
2012-05-02 17:51:02 +02:00
Michael Natterer
bdf6b48138
app: move GimpTempBuf from base/ to core/
...
and forget about include policy in base/, it's scheduled for removal
anyway.
2012-05-02 17:51:01 +02:00
Michael Natterer
dccb909009
app: make GimpTempBuf reference counted
...
and remove the "take_ownership" parameter from
gimp_temp_buf_create_buffer(), simply always ref the buf.
2012-05-02 17:51:00 +02:00
Michael Natterer
d5d8e36d21
app: gimp_-namespace all GimpTempBuf functions
2012-05-02 17:51:00 +02:00
Michael Natterer
42a5f01be3
app: rename TempBuf to GimpTempBuf
2012-05-02 17:51:00 +02:00
Michael Natterer
9285529f9b
app: silence compiler warning in GimpBucketFillTool
2012-05-02 17:50:59 +02:00
Michael Natterer
7441a1f6f7
app: turn the TempBuf's "bytes" into "format" and port everything to it
2012-05-02 17:50:59 +02:00
Michael Natterer
d743bae6a7
app: remove temp_buf_resize()
...
and fix its only user by simply reallocating the buf.
2012-05-02 17:50:58 +02:00
Mikael Magnusson
3406bf0b69
gimpbucketfilltool: Fix switch block always falling through to pattern fill
2012-05-02 17:50:54 +02:00
Michael Natterer
aebf55d799
app: blacklist gegl:threshold
2012-05-02 17:50:52 +02:00
Michael Natterer
64cd825796
app: blacklist all ops that are in gimp menus now, and some useless ones
2012-05-02 17:50:52 +02:00
Michael Natterer
797e622734
app: remove obsolete include
2012-05-02 17:50:52 +02:00
Michael Natterer
75f2bc1aac
app: resurrect the operation tool's title
2012-05-02 17:50:49 +02:00
Michael Natterer
cf37aa7dba
app: add a GimpSettingsBox to all GEGL operation filter dialogs
...
so they store all recently used settings, and explicitly added ones,
just like the color tools.
2012-05-02 17:50:49 +02:00
Michael Natterer
9031cdc645
app: add a ton of parameters to GimpImageMapTool::get_settings_ui()
...
so they can be passed in instead of being looked up in the class
struct, which enables freely configuring the settings stuff from
subclasses, such as soon GimpOperationTool.
2012-05-02 17:50:48 +02:00
Øyvind Kolås
818739a0e3
app: remove superfluous frame and label from GEGL tool
2012-05-02 17:50:47 +02:00
Øyvind Kolås
ebd419d4d5
app: use a gamma of 1.7 for brush radius slider
2012-05-02 17:50:45 +02:00
Michael Natterer
8bc6f1ee09
app: add parent_type parameter to gimp_gegl_get_config_proxy()
...
and derive from that type. Use GimpImageMapConfig as base class for
GimpOperationTool's config.
2012-05-02 17:50:42 +02:00
Michael Natterer
e8cc9d1bf5
app: turn gimp_image_map_tool_add_settings_gui() into a virtual function
...
and change it to return the settings ui, not add it.
2012-05-02 17:50:42 +02:00
Øyvind Kolås
49de3d5292
app: follow changes in GeglOperation API
2012-05-02 17:50:42 +02:00
Michael Natterer
2a853cd1ee
app: remove GimpPickable::get_bytes()
2012-05-02 17:50:42 +02:00
Michael Natterer
867da8f293
app: add gimp_context_get_foreground,background_pixel()
...
which takes a Babl format to convert from/to.
Include <gegl.h> in a million places.
2012-05-02 17:50:41 +02:00
Michael Natterer
89d525c970
app: remove legacy support from GimpImageMap
2012-05-02 17:50:40 +02:00
Michael Natterer
98226d0b36
app: remove legayc support from GimpImageMapTool
2012-05-02 17:50:40 +02:00
Michael Natterer
f248324fd3
app: remove the lagacy hue-saturation cruft
...
it's unclear whether the operation is correct, but that can be sorted
out on master and merged.
2012-05-02 17:50:40 +02:00
Michael Natterer
8008b75411
app: forgot the GimpImageType -> Babl change in pick_color() here
2012-05-02 17:50:39 +02:00
Michael Natterer
36e982e2ed
app: port gimp_image_pick_color() to return a Babl format
...
instead of a GimpImageType.
2012-05-02 17:50:39 +02:00
Michael Natterer
2c0fde88f2
app: remove the legacy color-balance cruft
2012-05-02 17:50:38 +02:00
Michael Natterer
3a48101b9d
app: use below new function for shapeburst blend and cage tool progress
2012-05-02 17:50:37 +02:00
Michael Natterer
96357dbfd3
app: add infrastructure to invoke GEGL filters from a menu item
...
and for fun add pixelize and gaussian blur to Filters -> Blur.
2012-05-02 17:46:16 +02:00
Michael Natterer
98ccc9512c
app: factor out the "Apply GEGL Operation" functionality from GimpGeglTool
...
to a new GimpOperationTool, make GimpGeglTool its subclass and leave
only the selection of the operation in GimpGeglTool.
2012-05-02 17:46:16 +02:00
Michael Natterer
726d3c980c
app: factor out gimp_gegl_config_proxy_sync() from GimpGeglTool
2012-05-02 17:46:16 +02:00
Michael Natterer
fd033afe11
app: factor out the creation of GeglOperation config proxy objects
2012-05-02 17:46:15 +02:00
Michael Natterer
2b6b5a8ada
app: remove unused base/ includes
2012-05-02 17:46:15 +02:00
Michael Natterer
8d5471502e
app: move GimpHistogram from base/ to core/
2012-05-02 17:46:13 +02:00
Michael Natterer
a4c83d13ed
app: forgot to remove the Threshold cruft typedef
2012-05-02 17:46:12 +02:00