It made the transform code hard to read and never belonged into the
tile manager anyway. It's a simple pixel buffer that should not know
about any position in an image. Instead, pass around the offsets of
tile managers explicitly, so everything is less obscure for the price
of having more parameters. This will also help replacing TileManagers
with GeglBuffers.
which was there for the purpose of transfomring the same buffer
multiple times (which would be nice but is broken and disabled for
ages). Also remove some junk that was there for unknown reasons, this
tool has a long history.
- add a double "progress" property to GimpOperationCageTransform
and update it every 20 rows
- connect to the notify::progress in the tool and display a tool
progress
- completely halt the tool before starting it
- bail out on options changes when the tool is not active
- initialy set the mode to CAGE_CHANGE
- indentation, formatting, various small cleanups
Instead, keep around a GimpFilteredContainer in GimpToolInfo that
maintains a per-tool list of presets from the global preset factory.
Turn the tool options dialog's preset Save/Restore/Edit/Delete menus
and buttons into shortcuts for managing the active tool's presets.
In gimp_rectangle_tool_update_options(), freeze()/thaw() notifications
around setting setting x, y, width, height, so all values are
up-to-date when "notify" is emitted. Also, only set the values that
have actually changed so we don't process notifications when no change
was done.
Change the "GtkWidget *parent" parameter of GimpToolDialog to
"GimpDisplayShell". Also add API gimp_tool_dialog_set_shell() so an
existing dialog can be used on different images. Make sure the dialog
closes when the shell is unmapped (like when switching tabs in SWM),
and make the dialog transient for the toplevel GimpImageWindow.
Change all tool dialog users accordingly.
When transforming layer groups, don't cut out a buffer to transform.
Instead, simply call GimpTransformTool::transform() with
tr_tool->original being NULL, just as when we are transforming a
path. In the transform() implementations, simplify the code to not
look at the type of item to be transformed; instead, simply look at
tr_tool->original and transform it if it exists, otherwise call
gimp_item_transform() which does the right thing for all sorts of
items automatically.
like when leaving the canvas or crossing a window above (tools receive
one oper_update() with proximity = FALSE to indicate the pointer
leaving the canvas).
instead of using gimp_config_connect(model,view,NULL) because that
also connected the model's name to the view's *widget* name, which is
a really bad idea.
and redo how the curves tool sets its curves in order to support this
without code duplication. Also change the color of the yellow curve in
the dynamics output editor to orange because yellow is hardly visible.
This editing mode should work like the path tool.
The backup of the cages point for undo is replaced by a displacement that affect
all the selected point in CageConfig with commit/reset displacement.