2009-03-19 Sven Neumann <sven@gimp.org>
Bug 471681 – Keyboard shortcuts for brush size/params need
feedback
* app/core/gimpbrushgenerated.c
* app/core/gimpcontext.c
* app/paint/gimppaintoptions.c: applied patch from Stephen G.
that
marks some strings for translation.
svn path=/trunk/; revision=28182
2009-03-03 Sven Neumann <sven@gimp.org>
Bug 520078 – Rotate brushes
* app/core/gimpbrush-transform.c: applied patch from Tal that
improves bilinear interpolation for the brush transformations
and
fixes a bug in the calculation of the transformation matrix.
svn path=/trunk/; revision=28098
2009-03-02 Michael Natterer <mitch@gimp.org>
* app/core/gimptagged.[ch]: add gimp_tagged_set_tags() which
takes a GList of tags.
* app/widgets/gimptagentry.c (gimp_tag_entry_assign_tags): use it.
(gimp_tag_entry_item_set_tags): remove.
svn path=/trunk/; revision=28094
2009-02-28 Sven Neumann <sven@gimp.org>
Bug 520078 – Rotate brushes
* app/core/gimpbrush-transform.c: applied patch from Tal that
implements bilinear interpolation for the brush transformations.
svn path=/trunk/; revision=28078
2009-02-14 Sven Neumann <sven@gimp.org>
Bug 99457 – Support for dynamics on tilt
* app/core/gimpbrush.[ch]
* app/core/gimpbrushgenerated.c
* app/core/gimpbrush-transform.[ch]
* app/paint/gimpbrushcore.c
* app/paint/gimpsmudge.c: applied patch from Alexia Death,
separates brush scaling for x and y.
svn path=/trunk/; revision=28036
2009-02-14 Sven Neumann <sven@gimp.org>
* app/core/gimpcoords-interpolate.c
* app/display/gimpdisplayshell-coords.c: applied patch from
Alexia
Death that fixes issues with the new stroke direction code
(bug #520078).
svn path=/trunk/; revision=28030
2009-02-14 Sven Neumann <sven@gimp.org>
Bug 472644 – Rotate with clipping crops the whole layer
* app/core/gimp-transform-resize.c: applied patch as attached to
bug #472644. Supposedly fixes the problem of the disappearing
image.
svn path=/trunk/; revision=28029
2009-02-13 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.c (gimp_drawable_sync_source_node): need
to rip the floating selection's source node out of its layer's
graph before using it in the floating selection sub-graph, and
need to plug it back there when it's not a floating selection any
longer.
Unrelated:
Also introduce a "fs_crop_node" that makes sure the floating
selection stops at the drawable's boundaries.
(gimp_drawable_visibility_changed): use item->node instead of
gimp_item_get_node() because the latter creates the node on
demand.
* app/core/gimpdrawable-private.h: add fs_crop_node member.
svn path=/trunk/; revision=28022
2009-02-11 Sven Neumann <sven@gimp.org>
* app/core/gimpcoords-interpolate.c
(gimp_coords_interpolate_catmull): applied patch from Alexia
Death
that fixes a bug that was introduced by the last commit.
svn path=/trunk/; revision=28013
2009-02-10 Sven Neumann <sven@gimp.org>
* app/core/gimpcoords-interpolate.c
* app/core/gimpbrush-transform.c
* app/paint/gimppaintoptions.c
* app/display/gimpdisplayshell-coords.c: applied patch from
Alexia
Death that fixes the direction of brush rotation (bug #520078).
svn path=/trunk/; revision=28010
2009-02-08 Michael Natterer <mitch@gimp.org>
Bug 520078 – Rotate brushes
Applied a slightly modified patch from Alexia Death:
* app/core/core-types.h (struct GimpCoords): add "direction" member.
* app/core/gimpcoords.c: take direction into account in mix(),
scalarprod(), length_squared(), manhattan_dist() and equal().
* app/core/gimpcoords-interpolate.c
(gimp_coords_interpolate_catmull): same here.
* app/display/gimpdisplayshell-coords.c
(gimp_display_shell_eval_event): same here.
* app/paint/gimppaintoptions.[ch]: add properties for direction
dynamics and adapt dynamics mixing accordingly.
* app/paint/gimpbrushcore.c (gimp_brush_core_interpolate):
"interpolate" direction too (in fact, just copy it from
last_coords since it doesn't change along a straight line).
* app/paint/gimppaintcore-stroke.c
(gimp_paint_core_stroke_emulate_dynamics): emulate direction too.
* app/tools/gimppaintoptions-gui.c: add GUI for direction dynamics.
svn path=/trunk/; revision=28001
2009-02-07 Michael Natterer <mitch@gimp.org>
Simplify floating selection handling a bit more:
* app/core/gimpdrawable.c
(gimp_drawable_attach_floating_sel)
(gimp_drawable_detach_floating_sel): call
gimp_image_set_floating_selection() from these functions.
* app/core/gimpfloatingselundo.c (gimp_floating_sel_undo_pop)
* app/core/gimpimage.c (gimp_image_add,remove_layer)
* app/core/gimplayer-floating-sel.c (floating_sel_to_layer): don't
call it here because we already call above functions.
svn path=/trunk/; revision=28000
2009-02-07 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.c
(gimp_drawable_attach_floating_sel)
(gimp_drawable_detach_floating_sel): call
gimp_drawable_invalidate_boundary(floating_sel). Fixes missing
selection update after turning a floating selection into a
layer. It's called redundantly now when adding or deleting a
floating selection, but that doesn't hurt much.
* app/core/gimpfloatingselundo.c (gimp_floating_sel_undo_pop):
don't call it here because we already call above functions.
svn path=/trunk/; revision=27999
Move undo tiles updating into a helper function
gimp_image_map_update_undo_tiles() so the logic of
gimp_image_map_apply() becomes clearer.
svn path=/trunk/; revision=27997
Introduce and use a local helper function
gimp_image_map_kill_any_idle_processors() to get a rid of some code
duplication.
svn path=/trunk/; revision=27996
Introduce and use a local helper function
gimp_image_map_cancel_any_idle_jobs() to get a rid of some code
duplication.
svn path=/trunk/; revision=27995
2009-02-05 Sven Neumann <sven@gimp.org>
Bug 520078 – Rotate brushes
Applied patch from Alexia Death:
* app/core/gimpbrush.[ch]
* app/core/gimpbrushgenerated.c
* app/core/gimpbrush-transform.[ch]: affine transformations for
brushes. So far only scaling and rotation is supported. The
transformation is done using nearest-neighbour. This is a
regression and we need to add back interpolation before the next
release.
* app/paint/gimpsmudge.c
* app/paint/gimppaintoptions.[ch]
* app/paint/gimpbrushcore.[ch]: allow to control the brush
rotation angle.
* app/tools/gimppaintoptions-gui.c
* app/tools/gimpbrushtool.c: added UI for controlling the
brush rotation angle.
* app/actions/tools-actions.c
* app/actions/tools-commands.[ch]: add actions for controlling
the
brush rotation angle.
svn path=/trunk/; revision=27987
2009-02-05 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.h
* app/core/gimpdrawable-preview.c: move the preview related
members to the private struct.
* app/core/gimpdrawable.c
* app/core/gimpdrawable-private.h
* app/core/gimpselection.c: changed accordingly.
svn path=/trunk/; revision=27986
2009-02-05 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: sort the types by inheritence again, but
keep the alphabetic ordering within one level.
svn path=/trunk/; revision=27985
2009-02-04 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/gimpdrawable-private.h: new file which contains struct
GimpDrawablePrivate. Move some stuff from GimpDrawable here.
* app/core/gimpdrawable.[ch]
* app/core/gimpdrawable-shadow.c: changed accordingly.
* app/text/gimptextlayer-xcf.c
* app/xcf/xcf-load.c: include the private struct for these ugly
corner cases.
svn path=/trunk/; revision=27982
Applied patch from Alexia Death that prepares brushes for
arbitrary transforms by renaming stuff with 'scale' to
'transform'. Takes us one step closer to fixing bug #520078.
* app/core/gimpbrush.[ch]
* app/core/gimpbrushgenerated.c
* app/paint/gimpbrushcore.[ch]
* app/paint/gimpsmudge.c
* app/core/gimpbrush-transform.[ch]: New names of
* app/core/gimpbrush-scale.[ch]
* app/core/Makefile.am: Update.
svn path=/trunk/; revision=27975
2009-01-29 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: removed gimp_image_get_type_string()
again.
* app/display/gimpdisplayshell-title.c
(gimp_display_shell_format_title): use the GimpImageBaseType
enum
instead.
* app/tools/gimptool.c (gimp_tool_oper_update): if the image is
empty and the tool can't handle that, display a message in the
statusbar telling the user about this.
svn path=/trunk/; revision=27970
2009-01-29 Sven Neumann <sven@gimp.org>
* app/core/gimpchannel-combine.c
(gimp_channel_combine_ellipse_rect):
fixed incorrect optimization that caused glitches in the rounded
corners on the left side of rectangular selections.
svn path=/trunk/; revision=27968
2009-01-26 Michael Natterer <mitch@gimp.org>
The GEGL projection does floating selections now:
* app/core/gimpdrawable.[ch] (struct GimpDrawable): add a couple
of GeglNodes which are used to create a sub-graph for this
drawable's floating selection.
(gimp_drawable_detach_floating_sel)
(gimp_drawable_attach_floating_sel): new functions to call
whenever a floating selection gets attached or detached.
Change the role of the drawable's "source_node": it's no longer a
direct tile source but an arbitrary graph. Add new internal
function gimp_drawable_sync_source_node() which creates a
sub-graph for the floating selection within the source node, and
uses the new "tile_source_node" directly otherwise. Connect to
"notify" of the floating selection and reconfigure its sub-graph
when its properties change. This is also one more refactoring in
the direction of layer trees.
* app/core/gimpfloatingselundo.c
* app/core/gimpimage.c
* app/core/gimplayer-floating-sel.c: call the new attach/detach
API whenever a floating selection is attached or detached from a
drawable. This will need more refactoring i guess...
svn path=/trunk/; revision=27961
2009-01-26 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.c (gimp_drawable_visibility_changed):
don't show the floating selection layer in the image graph, it
will be shown by the drawable it is attached to. This is a temp
special case hack, but better fits here than into the newly
created and clean GimpDrawableStack. The floating selection will
see the end of its days as layer soon enough anyway.
svn path=/trunk/; revision=27960
* app/core/gimpimage.[ch] (gimp_image_get_type_string): New method
to get a string representation of the image type.
* app/display/gimpdisplayshell-title.c
(gimp_display_shell_format_title): Ask the GimpImage for an image
type string instead of making assumptions about its
implementation.
svn path=/trunk/; revision=27947
2009-01-25 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/gimpparamspecs-duplicate.[ch]: new files implementing
gimp_param_spec_duplicate() which is supposed to duplicate any
gimp or gegl GParamSpec (but doesn't do this yet).
* app/tools/gimpgegltool.c: remove the code form here.
svn path=/trunk/; revision=27945