* 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
2009-01-17 Michael Natterer <mitch@gimp.org>
* all files with a GPL header and all COPYING files:
Change licence to GPLv3 (and to LGPLv3 for libgimp).
Cleaned up some copyright headers and regenerated the parsers in
the ImageMap plugin.
svn path=/trunk/; revision=27913
2009-01-10 Sven Neumann <sven@gimp.org>
Bug 471344 – Circular brush strokes are not smooth and have
corners
Bug 127785 – stroking with size linked to pressure sensitivity
should scale the spacing
* app/core/gimpcoords-interpolate.[ch]
* app/display/gimpdisplayshell.[ch]
* app/display/gimpdisplayshell-callbacks.[ch]
* app/display/gimpdisplayshell-coords.[ch]: applied patch from
Alexia Death that introduces a Catmul-Rom splines based event
interpolation and also adapts the brush spacing to brush size.
svn path=/trunk/; revision=27898
2009-01-01 Sven Neumann <sven@gimp.org>
Bug 565112 – code duplication in app/core/gimpimage-snap.c
* app/core/gimpimage-snap.c: based on a patch from Daniel
Hornung,
add the utility function gimp_image_snap_distance().
svn path=/trunk/; revision=27869
2009-01-01 Sven Neumann <sven@gimp.org>
Bug 565223 – Perspective transformation jagged edges / comb effect
* app/core/gimp-transform-region.c: reverted the code change, but
not the cleanups, from commit r26786.
svn path=/trunk/; revision=27866
2008-12-27 Sven Neumann <sven@gimp.org>
Bug 564593 – crash when the drawable is changed while a color
tools is active
* app/core/gimpdrawable-shadow.c
(gimp_drawable_merge_shadow_tiles):
keep a reference to the shadow tiles because it might otherwise
be
free'd under our feet.
svn path=/trunk/; revision=27832
Merge the rest of the tagging code developed on the tagging branch
by Aurimas Juška. Development will now continue in trunk.
* app/core/gimptag.[ch]: New files (not strictly true but almost)
implementing the represention of a tag.
* app/core/gimptagcache.[ch]: New files implementing functionality
for loading and saving tags to tags.xml, and assigning loaded tags
to tagged objects.
* app/core/gimpfilteredcontainer.[ch]: New files implementing a
tag filtered GimpContainer.
* app/widgets/gimptagentry.[ch]: New files implementing a
GtkEntry-like widget for entering tags.
* app/widgets/gimpcombotagentry.[ch]: New files implementing a
combobox-like widget for selecting tags.
* app/widgets/gimptagpopup.[ch]: New files implementing a popup of
all available tags that can be selected and combined in a
checkbox-like way.
* app/core/gimp.[ch]: Add a GimpTagCache member and manage tag
assignment and saving and loading to/from tags.xml.
* app/widgets/gimpdatafactoryview.c: Add the tag query and tag
assignment widgets to the UI and show the tag filtered items
instead of all items.
* app/core/Makefile.am
* app/widgets/Makefile.am: Add new files.
* app/core/core-types.h
* app/widgets/widgets-types.h: Add new types.
svn path=/trunk/; revision=27816
2008-12-14 Sven Neumann <sven@gimp.org>
* app/core/gimp.c: reverted last change as it is totally bogus
and
the old code was correct.
svn path=/trunk/; revision=27788
Partial merge of code from Aurimas Juška.
* app/core/gimpdata.c: Implement GimpTagged::get_identifier() and
GimpTagged::get_checksum().
* app/core/gimpbrush.c:
* app/core/gimpgradient.c
* app/core/gimppalette.c
* app/core/gimppattern.c: Implement GimpTagged::get_checksum().
They all use the GimpData implementation of
GimpTagged::get_identifier().
svn path=/trunk/; revision=27784
Partial merge of code from Aurimas Juška.
* app/core/gimpdata.[ch] (gimp_data_make_internal): Add an
'identifier' parameter/instance struct member that can be used to
identify the internal GimpData object across sessions. It is the
internal-object counterpart to a file path.
* app/core/gimp.c
* app/core/gimpcurve.c
* app/core/gimpbrush.c
* app/core/gimppattern.c
* app/core/gimppalette.c
* app/core/gimpgradient.c
* app/core/gimp-gradients.c: Assign an identifier to the the
internal GimpData objects.
svn path=/trunk/; revision=27781
Partial merge of code from Aurimas Juška.
* app/core/gimptag.c: A new minimal GimpTag type with only a
gimp_tag_equals() class function so that we can
* app/core/gimptagged.c
* app/core/gimpdata.c (gimp_data_add_tag, gimp_data_remove_tag):
Adapt these to GimpTag being an object instead of a GQuark.
* app/core/core-types.h: Update GimpTag typedef.
* app/core/Makefile.am: Add gimptag.[ch].
svn path=/trunk/; revision=27778
2008-12-08 Sven Neumann <sven@gimp.org>
* app/core/gimpchannel.c
* app/core/gimpdrawable-operation.c
* app/core/gimpdrawablestack.c
* app/core/gimpimage.c
* app/core/gimpimagemap.c
* app/core/gimplayer.c
* app/core/gimpprojection.c: gegl_node_add_child() and
gegl_node_remove_child() are public API in GEGL now.
svn path=/trunk/; revision=27770
2008-12-04 Sven Neumann <sven@gimp.org>
Bug 563130 – Hue selection mode does not cross the 0-360 degrees
line
* app/core/gimpimage-contiguous-region.c (pixel_difference):
applied patch from Daniel Hornung.
svn path=/trunk/; revision=27764
2008-12-03 Sven Neumann <sven@gimp.org>
* app/core/gimpitem.c (gimp_item_get_offset_node): use
"gegl:translate" instead of "gegl:shift".
svn path=/trunk/; revision=27750
2008-12-03 Sven Neumann <sven@gimp.org>
* app/core/gimpimagemap.c: renamed GeglNode shift to translate.
Use "gegl:translate" instead of "gegl:shift".
svn path=/trunk/; revision=27749
2008-11-22 Michael Natterer <mitch@gimp.org>
* app/core/gimpselection.[ch]: make the entire selection
API take GimpSelection arguments, not GimpChannel.
Clean up gimp_selection_load() a bit.
* app/actions/select-commands.c
* app/core/gimp-edit.c
* app/core/gimpdrawable-transform.c
* app/core/gimpimage-quick-mask.c
* app/tools/gimpeditselectiontool.c
* tools/pdbgen/pdb/selection.pdb: add the needed casts.
* app/pdb/selection-cmds.c: regenerated.
svn path=/trunk/; revision=27711
* app/core/gimpcontainer.[ch]: Move the rest of the class instance
members to GimpContainerPriv and rename the member num_children to
n_children.
svn path=/trunk/; revision=27694
2008-11-20 Michael Natterer <mitch@gimp.org>
* app/core/gimpundo.h (struct GimpUndoAccumulator): remove members
"quick_mask_changed" and "alpha_changed" (the former was unused
and the latter is entirely handled by the image's flush
accumulator now.
* app/core/gimpimage-undo.c
* app/core/gimplayerundo.c: changed accordingly.
svn path=/trunk/; revision=27690
2008-11-20 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-quick-mask.c (gimp_image_get_quick_mask_state):
image->quick_mask_state is a boolean, return it directly instead
of "state != NULL".
svn path=/trunk/; revision=27688
2008-11-17 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.[ch]: add boolean property
"floating-selection" which indicates if the layer is a floating
selection. Add new API gimp_layer_set_floating_sel_drawable()
which sets layer->fs.drawable and emits notify on the property.
Did some minor cleanup in the existing property code.
* app/core/gimpfloatingselundo.c: use the new function instead of
setting layer->fs.drawable manually.
* app/core/gimplayer-floating-sel.c: same here. Remove some
includes and local variables that are obsolete.
svn path=/trunk/; revision=27676
2008-11-15 Michael Natterer <mitch@gimp.org>
Bug 560897 – Floating Selection, objects appearing in background
* app/core/gimpdrawable.c (gimp_drawable_init_src_region): use the
right offsets (not off_y for both x and y) when applying the
floating selection.
svn path=/trunk/; revision=27658
2008-11-14 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch] (struct GimpImageFlushAccumulator):
add member "gboolean floating_selection_changed".
(gimp_image_set_floating_selection): new function which sets
the image's floating_sel pointer and sets the flag in the
accumulator to TRUE for later signal emission on flush.
(gimp_image_projectable_flush): emit "floating-selection-changed"
if the flag in the accumulator is TRUE.
* app/core/gimpimage.c (gimp_image_add,remove_layer)
* app/core/gimpfloatingselundo.c (gimp_floating_sel_undo_pop)
* app/core/gimplayer-floating-sel.c (floating_sel_to_layer): use
gimp_image_set_floating_selection() instead of setting
image->floating_sel menually and remove all calls to
gimp_image_floating_selection_changed().
svn path=/trunk/; revision=27650
2008-11-13 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: added gimp_image_get_display_name().
* app/dialogs/palette-import-dialog.c
* app/display/gimpdisplayshell-close.c
* app/display/gimpdisplayshell-title.c
* app/pdb/gimppdb-utils.c
* app/widgets/gimpviewabledialog.c: use the new method instead
of
getting the image URI and mangling it with
file_utils_uri_display_basename().
svn path=/trunk/; revision=27637
2008-11-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpitem.c: add read-only "offset-x" and "offset-y"
properties. Call gimp_item_set_offset() from all places that set
offset_x and offset_y in this file. Freeze and thaw GObject
notification around all calls to virtual functions which might
emit notify. Add missing notifications whenever width and height
change.
* app/core/gimpimage-rotate.c: use gimp_item_set_offset() instead
of setting the values manually.
svn path=/trunk/; revision=27623
2008-11-10 Michael Natterer <mitch@gimp.org>
* app/core/gimpprojection.[ch]
* app/core/gimpprojection-construct.c: add code that keeps the
gegl processor around across calls, but destroy it anyway until
gegl_processor_set_rectangle() is fixed.
svn path=/trunk/; revision=27607
2008-11-10 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-curves.c (gimp_drawable_curves_explicit):
use GIMP_CURVE_FREE, not _SMOOTH. Fixes the resp. PDB call.
svn path=/trunk/; revision=27601
2008-11-10 Sven Neumann <sven@gimp.org>
Bug 559725 – Allow to set image-type and image-num-layers for
thumbnail
* app/file/file-open.[ch] (file_open_thumbnail): added
parameters
for image-type and number of layers. Try to get these from the
procedure return values. Changes based on a patch from "tks".
* app/core/gimpimagefile.c (gimp_imagefile_create_thumbnail)
(gimp_thumbnail_set_info): set image-type and number of layers
if
specified.
svn path=/trunk/; revision=27595
2008-11-09 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer-floating-sel.[ch]: remove
floating_sel_remove() and reorder one function.
* app/core/gimpimage.c (gimp_image_remove_layer): add the single
line of special code that needs to be done when removing a
floating selection.
* app/core/gimpselection.c
* app/actions/layers-commands.c
* tools/pdbgen/pdb/floating_sel.pdb: changed accordingly.
* app/pdb/floating-sel-cmds.c: regenerated.
* app/core/core-enums.[ch]
* app/core/gimpimage-undo.c: remove enum value
GIMP_UNDO_GROUP_FS_REMOVE.
svn path=/trunk/; revision=27583
2008-11-09 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer-floating-sel.[ch]: made
floating_sel_composite() private and simplify it a lot by using
gimp_rectangle_intersect().
svn path=/trunk/; revision=27580
2008-11-09 Michael Natterer <mitch@gimp.org>
Bye bye floating_sel_rigor() and floating_sel_relax():
* app/core/gimpdrawable.[ch] (gimp_drawable_init_src_region):
implement compositing the floating selection on the fly. Add
return parameter "TileManager **temp_tiles" which returns the temp
buffer used for compositing; the caller has to unref the tiles.
* app/core/gimpchannel-project.c
* app/core/gimplayer-project.c: unref the temp_tiles.
* app/core/gimplayer.[ch]: remove members fs.backing_store and
fs.initial.
* app/core/gimplayer-floating-sel.[ch]: remove functions rigor(),
relax(), store() and restore(), they are not needed any longer.
Some minor cleanup, more to come.
* app/core/gimpprojection-construct.c: don't composite the
floating selection before projecting because that happens on the
fly now.
* app/core/core-enums.[ch]
* app/core/gimpfloatingselundo.c
* app/core/gimpimage-undo-push.[ch]: remove the rigor and relax
undos.
* app/core/gimpdrawable.c
* app/core/gimpimage-convert.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage.c
* app/core/gimplayer.c
* app/xcf/xcf-save.c: remove all calls to rigor and relax and all
implementations of virtual functions that were just there to
rigor/releax around chaining up.
* tools/pdbgen/pdb/floating_sel.pdb: remove all code from the
rigor and relax wrappers and deprecate the API.
* app/pdb/floating-sel-cmds.c
* libgimp/gimpfloatingsel_pdb.[ch]: regenerated.
* plug-ins/file-xjt/xjt.c: don't call rigor and relax.
svn path=/trunk/; revision=27579
2008-11-08 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: add optional parameter "PixelRegion
*destPR" to GimpDrawable::apply_region().
* app/core/gimpdrawable-combine.[ch]: if the passed destPR is !=
NULL, write the result of the combination into that region instead
of the drawable's tiles. The region must have the exact size of
the result.
* app/core/gimp-edit.c
* app/core/gimpchannel.c
* app/core/gimpdrawable-blend.c
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpdrawable-shadow.c
* app/core/gimpdrawable-stroke.c
* app/core/gimpimagemap.c
* app/core/gimplayer-floating-sel.c
* app/paint/gimppaintcore.c: pass NULL as destPR. Code actually
using this feature follows.
svn path=/trunk/; revision=27574
2008-11-08 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: add new function
gimp_drawable_init_src_region() which will initialize a
PixelRegion on this drawable's "projection" (with the floating
selection combined), but for now just uses drawable->tiles.
* app/core/gimpchannel-project.c
* app/core/gimplayer-project.c: use it instead of
pixel_region_init() on the drawable's tiles.
svn path=/trunk/; revision=27573
2008-11-08 Michael Natterer <mitch@gimp.org>
Abstract the legacy projection code away into a virtual function
of GimpDrawable:
* app/core/gimpdrawable.[ch]: add new virtual function
GimpDrawable::project_region() which projects an area of a
drawable onto a passed in PixelRegion.
* app/core/Makefile.am
* app/core/gimpchannel-project.[ch]
* app/core/gimplayer-project.[ch]: new files which implement it.
* app/core/gimpchannel.c
* app/core/gimplayer.c: hook it in.
* app/core/gimpprojection-construct.c: get rid all the projection
code moved to above new files and project all drawables in one
loop.
* app/core/gimpprojectable.[ch]: remove the legacy methods
get_colormap() and get_components(), they are not needed any
longer.
* app/core/gimpimage.c: changed accordingly.
svn path=/trunk/; revision=27571
2008-11-07 Sven Neumann <sven@gimp.org>
* app/core/gimppalette-load.c (gimp_palette_load_aco): improved
error handling. Fixes compiler warnings about ignoring the
return
value of read().
svn path=/trunk/; revision=27570
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpitemstack.[ch]: new GimpList subclass which (for
now) does nothing but taking ownership of its children by the
means of g_object_ref_sink().
* app/core/gimpdrawablestack.[ch]: derive from GimpItemStack.
* app/core/gimpimage.c: use a GimpItemStack instead of a plain
GimpList for the list of vectors. Remove code which takes
ownerships of added items from gimp_image_add_layer(),
add_channel() and add_vectors().
svn path=/trunk/; revision=27568
2008-11-06 Sven Neumann <sven@gimp.org>
* tools/gimp-mkenums: use NC_() to mark enum values for
translation.
Use a lower-case short form of the type name as translation
context.
* libgimp/libgimp-intl.h: define the NC_() macro as noop.
* libgimpbase/gimpbasetypes.[ch]
* libgimpbase/gimpbase.def: added new functions to set and
get a translation context on an enum type.
* app/base/Makefile.am
* app/core/Makefile.am
* app/display/Makefile.am
* app/paint/Makefile.am
* app/plug-in/Makefile.am
* app/text/Makefile.am
* app/tools/Makefile.am
* app/widgets/Makefile.am
* libgimp/Makefile.am
* libgimpbase/Makefile.am:
* libgimpconfig/Makefile.am
* libgimpthumb/Makefile.am
* libgimpwidgets/Makefile.am: register the translation context
with the enum types.
* app/display/display-enums.h
* libgimpbase/gimpbaseenums.h
* libgimpconfig/gimpcolorconfig-enums.h: removed old-style
explicit
translation context.
* app/base/base-enums.c
* app/core/core-enums.c
* app/display/display-enums.c
* app/paint/paint-enums.c
* app/plug-in/plug-in-enums.c
* app/text/text-enums.c
* app/tools/tools-enums.c
* app/widgets/widgets-enums.c
* libgimpbase/gimpbaseenums.c
* libgimpconfig/gimpcolorconfig-enums.c
* libgimpwidgets/gimpwidgetsenums.c: regenerated.
svn path=/trunk/; revision=27562
2008-11-05 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawablestack.[ch]: add new function
gimp_drawable_stack_invalidate_previews() which does just what it
says.
* app/core/gimpimage.[ch]: merge invalidate_layer_previews() and
invalidate_channels_previews() into a single invalidate_previews()
and replace all calls to the old functions by calls to
gimp_drawable_stack_invalidate_previews().
* app/file/file-open.c: changed accordingly.
svn path=/trunk/; revision=27560
2008-11-05 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-convert.c (gimp_image_convert): remove call
to gimp_image_invalidate_layer_previews(), they are invalidated by
exchanging their tiles and by setting the image's colormap anyway.
svn path=/trunk/; revision=27559
2008-11-05 Michael Natterer <mitch@gimp.org>
This should remove any image or viewable dependency from the
projection (apart from the projectable's get_image() method, but
that one is not supposed to return the projection's model but
rather the image the projection is part of).
* app/core/gimpprojectable.[ch]: add vfunc get_size() which
completes the API needed for GEGL projection.
Add vfuncs get_layers(), get_channels(), get_components() and
get_colormap() which are needed for the legacy projection code.
* app/core/gimpimage.c: implement the new methods.
* app/core/gimpprojection.c
* app/core/gimpprojection-construct.c: use them and remove all
calls to image and viewable API.
svn path=/trunk/; revision=27558
2008-11-05 Michael Natterer <mitch@gimp.org>
* app/core/gimpprojectable.[ch]: add signal "structure-changed"
and API to emit it.
* app/core/gimpimage.c: emit it when the image emits
"mode-changed" and "size-changed".
* app/core/gimpprojection.c: connect to the new signal instead of
"mode-changed" and "size-changed" to get rid of one more image
dependency.
svn path=/trunk/; revision=27556
2008-11-04 Michael Natterer <mitch@gimp.org>
* app/core/gimpprojectable.[ch]: add vitrual function
invalidate_preview().
* app/core/gimpimage.c: implement it and redirect to
gimp_viewable_invalidate_preview().
* app/core/gimpprojection.c: call the new API instead of
gimp_viewable_invalidate_preview(). Some cleanup in the disabled
cow-projection code.
svn path=/trunk/; revision=27553
2008-11-04 Michael Natterer <mitch@gimp.org>
Unfinished first step to make the projection independent of
GimpImage, also one step closer to layer grouping.
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpprojectable.[ch]: add new interface which abstracts
something that can have a projection attached to it. Has "update"
and "flush" signals and get_graph() and get_image()
vfuncs. get_image() is temporary until the hack is finishes.
* app/core/gimpimage.[ch]: implement GimpProjectableInterface,
remove "update" and "flush" signals and made get_graph() a private
implementation of the interface method. Moved interface method
implementations after virtual function implementations.
* app/core/gimpprojection.[ch]: change member "image" to
"projectable" and use the projectable API as often as
possible. Still some implicit dependencies on the projectable
being an image left but it's getting close.
* app/core/gimpprojection-construct.c: same here.
svn path=/trunk/; revision=27552
2008-11-04 Sven Neumann <sven@sven>
* app/base/tile-pyramid.[ch] (tile_pyramid_new):
* app/core/gimpprojection.c
(gimp_projection_get_tiles_at_level):
reverted last change as the code in tile-pyramid does care about
the pixel format and it should continue to reject types that it
cannot handle.
svn path=/trunk/; revision=27545
2008-11-04 Michael Natterer <mitch@gimp.org>
* app/base/tile-pyramid.[ch] (tile_pyramid_new): changed "type"
parameter into "bytes" because tile managers don't care about
the pixel format of their tiles. Reordered parameters to match
tile_manager_new().
* app/core/gimpprojection.c (gimp_projection_get_tiles_at_level):
pass the bytes instead of the image type.
svn path=/trunk/; revision=27544
2008-11-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch] (gimp_drawable_set_tiles): add
"GimpImageType type" parameter because there are only a few calls
to this function which (can easily pass the current type); however
most calls to gimp_drawable_set_tiles_full() were just using the
function because of the type argument and passed in the item's
current offsets (which means peeking into the item struct or using
temp variables).
* app/core/gimpdrawable-offset.c (gimp_drawable_offset)
* app/text/gimptextlayer.c (gimp_text_layer_render)
* app/tools/gimptransformtool.c (gimp_transform_tool_doit): pass
the type to set_tiles().
* app/core/gimpchannel.c (gimp_channel_convert)
* app/core/gimpimage-convert.c (gimp_image_convert)
* app/core/gimplayer.c (gimp_layer_convert,add_alpha,flatten):
change calls to set_tiles_full() into set_tiles() because the
offset doesn't change.
svn path=/trunk/; revision=27535
* app/core/gimpitem.c (gimp_item_set_offsets): New function that
sets the offset of the item and also keeps the offset_node in
sync.
* app/core/gimpdrawable.c (gimp_drawable_real_set_tiles): Use the
function instead of setting the offsets directly. Fixes corrupted
display when cropping images with GEGL enabled for the projection.
svn path=/trunk/; revision=27528
* app/core/gimpitem.[ch]: Moved the shift_node from GimpLayer to
GimpItem, and call it offset_node. Also added
gimp_item_get_offset_node() meant to be used in the same way as
gimp_item_offsets().
(gimp_item_real_translate): Keep the offset_node up to date.
* app/core/gimplayer.[ch]: Don't manage the offset_node, get it
from GimpItem instead.
svn path=/trunk/; revision=27527
2008-11-02 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch]: add new functions
gimp_image_get_layer_iter(), channel_iter() and vectors_iter()
which return the GList inside the resp. GimpList.
* app/actions/channels-actions.c
* app/actions/layers-actions.c
* app/actions/vectors-actions.c
* app/core/gimpimage-convert.c
* app/core/gimpimage-crop.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-flip.c
* app/core/gimpimage-item-list.c
* app/core/gimpimage-merge.c
* app/core/gimpimage-resize.c
* app/core/gimpimage-rotate.c
* app/core/gimpimage-scale.c
* app/core/gimpimage.c
* app/core/gimpimage.h
* app/core/gimpprojection-construct.c
* app/display/gimpdisplayshell-draw.c
* app/file/file-open.c
* app/tools/gimpaligntool.c
* app/tools/gimpdrawtool.c
* app/vectors/gimpvectors-compat.c
* app/vectors/gimpvectors-export.c
* app/widgets/gimplayertreeview.c
* app/xcf/xcf-save.c
* tools/pdbgen/pdb/image.pdb: use the new functions instead of
peeking both into the image and the list. Remove inclusions of
"gimplist.h" or change them into "gimpcontainer.h" if needed.
* app/pdb/image-cmds.c: regenerated.
svn path=/trunk/; revision=27524
2008-11-02 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawablestack.[ch]: add "update" signal with the
same signature as GimpImage::update(). Install handlers for the
drawables' "update" and "visibility-changed" signals and emit
"update" accordingly, item offsets taken into account. Also emit
"update" when drawables are added, removed and reordered.
* app/core/gimpimage.[ch]: remove handlers and tons of code that
makes sure the image emits "update" on any of the above handled
events and simply connect the layer and channel stacks' "update"
signal to gimp_image_update().
svn path=/trunk/; revision=27523
2008-11-02 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.[ch]: remove the mask_node and simply set
both opacity and the layer mask's source node on the opacity_node.
Needs latest SVN GEGL.
svn path=/trunk/; revision=27522
* app/core/gimpitem.[ch]: Move the base GeglNode here in
preparation for moving the GimpLayer gegl:shift op to here as
well. After all, the offsets are properties of GimpItem and not
GimpLayer.
* app/core/gimpdrawable.[ch]: Delegate appropriate stuff to the
GimpItem base class, like part of the visibility toggling and the
creation and destruction of the GimpItem node.
* app/core/gimplayer.c
* app/core/gimpchannel.c
* app/core/gimpdrawablestack.c: Changed accordingly, use the new
function names.
* app/core/gimpitempropundo.c
* app/vectors/gimpvectors-warp.c
* app/vectors/gimpvectorsmodundo.c: Include gegl.h instead of
glib-object.h
svn path=/trunk/; revision=27521
* app/gegl/gimpoperation*.c: Prefix the GIMP GEGL operations with
"gimp:" instead of "gimp-" so we follow the GEGL prefix style and
better serialize to XML.
* app/tools/gimp*tool.c
* app/core/gimpdrawable-*.c
* app/core/gimpdrawable.c
* app/core/gimpimagemap.c
* app/core/gimpprojection.c: Changed accordingly.
svn path=/trunk/; revision=27512
2008-10-31 Sven Neumann <sven@gimp.org>
* configure.in: bumped minimum required version of Cairo to
1.6.4.
* app/core/gimpscanconvert.c: use
cairo_format_stride_for_width().
svn path=/trunk/; revision=27488
2008-10-29 Michael Natterer <mitch@gimp.org>
* app/core/gimpselection.[ch]: change member "gboolean stroking"
into "gint stroking_count". Add push/pop API to increase/decrease
the counter. Pretend the selection is empty if the counter is > 0.
Enables correctly rendering vector layers even if there is a
selection.
svn path=/trunk/; revision=27464
2008-10-29 Sven Neumann <sven@gimp.org>
Bug 558420 – projection incorrect with alpha-less layers
* app/core/gimpprojection-construct.c
(gimp_projection_initialize):
need to initialize the projection if the covering layer is not
opaque.
svn path=/trunk/; revision=27460
* app/gegl/gimpoperationpointlayermode.c: Completed the rename
with gimp:layer-mode -> gimp:point-layer-mode and also did some
formating.
* app/core/gimplayer.c: Changed accordingly.
svn path=/trunk/; revision=27408
GimpOperationLayerMode instantiable and add a GimpLayerModeEffects
property to it that we check in ::process() to blend pixels
together.
* app/gegl/gimpoperationlayermode.[ch]: Do the change described
above. Currently only Normal and Addition are implemented. Normal
so that we don't need a special case for the gegl:normal op. Also,
the Dissolve layer mode is not a point op and needs to be
implemented elsewhere.
* app/gegl/gimpoperation*mode.c: Removed.
* app/gegl/gimp-gegl-utils.[ch]: Removed
gimp_layer_mode_to_gegl_operation().
* app/core/gimplayer.c
* app/gegl/Makefile.am
* app/gegl/gimp-gegl.c: Adapt.
svn path=/trunk/; revision=27400
2008-10-25 Michael Natterer <mitch@gimp.org>
Merge a modified and enhanced patch from the vector layer branch:
* app/core/gimpdrawable-stroke.[ch]: add new public API
gimp_drawable_fill_boundary() and gimp_drawable_fill_vectors().
Split the internal code up so that there are functions which turn
the BoundSegs and GimpVectors into a GimpScanConvert and changed
gimp_drawable_stroke_scan_convert() so it can either fill the
shape or stroke it.
svn path=/trunk/; revision=27399
2008-10-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.c (gimp_context_parent_notify): bail out if
the notification is not about one of our own properties
(but from a subclass).
svn path=/trunk/; revision=27394
2008-10-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpstrokeoptions.[ch]: add "gboolean use_context_color"
parameter to gimp_stroke_options_new() and set the passed context
as parent of the new options only if it's TRUE. Also fixed the
GimpConfig::duplicate() implementation to really duplicate the
object and not just return an object containing default values.
* app/core/gimpfilloptions.[ch]: add gimp_fill_options_new().
* app/actions/select-commands.c
* app/dialogs/stroke-dialog.c
* app/actions/vectors-commands.c
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/paths.pdb: pass TRUE to gimp_stroke_options_new().
* app/pdb/edit-cmds.c
* app/pdb/paths-cmds.c: regenerated.
svn path=/trunk/; revision=27393
2008-10-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpfilloptions.[ch]: add non-serializable properties
pattern-view-type and pattern-view-size which are used only by the
new UI below.
* app/widgets/gimpfilleditor.[ch]: added boolean edit-context
property. If TRUE, add widgets to edit the context's foreground and
pattern. Add "edit_context" parameter to gimp_fill_editor_new().
* app/widgets/gimpstrokeeditor.[ch]: add the same parameter here.
* app/widgets/gimpwidgets-utils.[ch]: add gimp_enum_radio_box_add()
which does the same as the existing gimp_enum_radio_frame_add().
* app/dialogs/stroke-dialog.c: pass FALSE for "edit_context"
because this dialog takes its foreground and pattern from the user
context and doesn't need it's own GUI for them.
svn path=/trunk/; revision=27392
2008-10-24 Michael Natterer <mitch@gimp.org>
Another merge from the vector layer branch:
* app/core/gimpstrokedesc.c (gimp_stroke_desc_new): make sure
each stroke desc always has GimpPaintInfo.
svn path=/trunk/; revision=27383
2008-10-23 Michael Natterer <mitch@gimp.org>
Merge a part of SOC 2006's vector layer branch:
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpfilloptions.[ch]: new GimpContext subclass factored
out of GimpStrokeOptions. Has "style" and "antialias" properties.
* app/core/gimpstrokeoptions.[ch]: derive from GimpFillOptions
and remove said properties.
* app/core/gimpdrawable-stroke.c
(gimp_drawable_stroke_scan_convert): changed accordingly.
svn path=/trunk/; revision=27378
2008-10-18 Sven Neumann <sven@gimp.org>
Applied patch from Alexia Death as attached to bug #471344:
* app/core/Makefile.am
* app/core/gimpcoords-interpolate.[ch]: new files with
interpolation code taken from ...
* app/vectors/gimpbezierstroke.c: ... here.
* app/Makefile.am (AM_LDFLAGS): make it link.
svn path=/trunk/; revision=27314
2008-10-17 Sven Neumann <sven@sven>
* app/core/gimp.[ch]: added signal Gimp::image-opened to
announce
that an image has been loaded and a display was created for it.
* app/file/file-open.c (file_open_with_proc_and_display): call
gimp_opened() to emit the new signal.
* app/gui/dbus-service.xml
* app/gui/gimpdbusservice.[ch]: propagate the 'opened' signal to
listeners of the "org.gimp.GIMP.UI" DBus service.
* app/gui/gui-unique.c: formatting.
svn path=/trunk/; revision=27297
2008-10-14 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: add a default implementation of
GimpDrawable::get_node() which contains a layer mode node.
Implement GimpItem::visibility_changed() and turn the node into a
nop when the drawable is invisible. Added public function
gimp_drawable_get_mode_node() so subclasses can plug stuff
into its "aux" pad.
* app/core/gimplayer.[ch]
* app/core/gimpchannel.[ch]: changed accordingly (remove
duplicated member and code that is now in GimpDrawable).
svn path=/trunk/; revision=27277
2008-10-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpprojection.h: add a "use_gegl" boolean member.
* app/core/gimpprojection-construct.c (gimp_projection_construct):
use the boolean instead of hardcoding FALSE.
* app/actions/view-actions.c
* app/actions/view-commands.[ch]: add a "Use GEGL" action and
callback which sets the boolean and exposes the display.
* menus/image-menu.xml.in: add it to the "View" menu.
svn path=/trunk/; revision=27242
2008-10-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel.[ch]: add a projection node and
implement GimpDrawable::get_node(). Reconfigure the node in
visibility_changed(), set_color(), set_opacity() and
set_show_masked().
* app/core/gimpimage.c (gimp_image_get_graph): enable code that
projects the channels stack on top of the layer stack.
* app/core/gimpprojection-construct.c: remove the call to
gimp_projection_construct_channels() from the GEGL code path. Also
don't touch proj->construct_flag.
svn path=/trunk/; revision=27230
2008-10-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawablestack.c: add GimpContainer::add()
implementation, it's needed after all even though everybody uses
gimp_container_insert() on drawable stacks.
(gimp_drawable_stack_remove_node): no need to have a special check
for newly added nodes, this can't happen any more now that we have
an add() impl.
(gimp_drawable_stack_get_graph): free the reverse list.
svn path=/trunk/; revision=27228
2008-10-11 Michael Natterer <mitch@gimp.org>
Fix old bug in the GimpContainer implementation that wasn't
visible before the drawable stack completly b0rked when removing
the second-last item:
* app/core/gimpcontainer.c: add default implementations of ::add()
and ::remove() and update container->num_children there instead of
in the gimp_container_add() and _remove() wrapper functions.
This way not only external callbacks connected to the "add" and
"remove" signals are called with the correct num_children, also
implemtations of ::add() and ::remove() in subclass have the right
number available before/after upchaining. Add paranoia code to the
wrapper functions which check if the subclass reall chains up.
* app/core/gimplist.c: chain up in add() and remove().
svn path=/trunk/; revision=27227
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawablestack.[ch]: move all the code that creates
a graph of drawables and all adding/removing/reordering code from
GimpImage to this file.
* app/core/gimpimage.c: remove the code here and use the layer
stack's subgraph instead. Add #if 0'ed code that blends the
channels on top of that but that doesn't work because channels
don't provide nodes yet.
svn path=/trunk/; revision=27216
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h
* app/core/Makefile.am
* app/core/gimpdrawablestack.[ch]: new GimpList subclass stub
which will manage the subgraphs of layers and channels and is also
the first step towards layer tree.
* app/core/gimpimage.c (gimp_image_init): keep the layers and
channels in GimpDrawableStacks instead of plain GimpLists.
svn path=/trunk/; revision=27212
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: add virtual function
GimpDrawable::get_node() which returns a node to be plugged into
the projection.
* app/core/gimplayer.[ch]: remove public get_node() api and
implement the virtual function instead.
* app/core/gimpimage.c: changed accordingly.
svn path=/trunk/; revision=27211
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.c: implement GimpItem::visibility-changed
and turn the layer's node into a nop when the layer is invisible.
(gimp_layer_get_node): connect the stuff to a nop here too for
invisible layers.
svn path=/trunk/; revision=27208
2008-10-10 Michael Natterer <mitch@gimp.org>
Bug 554983 – Layers Projection using GEGL
First projection using GEGL, wheeeee. Disabled by default because
it doesn't work with floating selection (and will not, FS
refactoring is in the queue).
* app/core/gimpimage.[ch]: add gimp_image_get_graph() which
returns a GeglNode representing the image's projection.
(gimp_image_add_layer_node)
(gimp_image_remove_layer_node): new utility functions to add and
remove layer nodes to/from the graph.
(gimp_image_add_layer)
(gimp_image_remove_layer)
(gimp_image_position_layer): call them to keep the graph up to date.
* app/core/gimpdrawable.c (gimp_drawable_real_update): invalidate
the source node.
* app/core/gimpprojection.[ch]: keep a projection graph around and
add gimp_projection_get_sink_node() which returns the node that
writes to the projection tiles.
* app/core/gimpprojection-construct.c: add
gimp_projection_construct_gegl() which is a few-liner that uses a
GeglProcessor to run the projection graph.
(gimp_projection_construct): call the new function (disabled by
default).
svn path=/trunk/; revision=27207
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch]: add new functions
gimp_image_get_layer_by_index(), _channel_by_index() and
_vectors_by_index().
* app/core/gimpprojection-construct.c
* app/display/gimpdisplayshell-layer-select.c
* app/xcf/xcf-load.c: use them instead of looking the items up
in image->container and casting the return value.
svn path=/trunk/; revision=27206
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.c (gimp_layer_translate)
(gimp_layer_get_node): the "shift" operation's x and y properties
are doubles not ints.
(gimp_layer_apply_mask): properly disconnect the mask node.
(gimp_layer_set_opacity): the opacity node has a "value" property,
not "opacity".
svn path=/trunk/; revision=27205
2008-10-09 Michael Natterer <mitch@gimp.org>
Address Bug 554983 – Layers Projection using GEGL
* app/gegl/gimp-gegl-utils.[ch]: add (imcomplete) function
gimp_layer_mode_to_gegl_operation() from bug #554983.
* app/core/gimpdrawable.[ch]: add gimp_drawable_get_source_node()
which returns a GimpOperationTileSource for the drawable's
tiles.
(gimp_drawable_real_set_tiles)
(gimp_drawable_configure): set the node's "tiles" property.
* app/core/gimplayer.[ch]: add gimp_layer_get_node() which returns
a GeglNode with proxy "input" and "output" pads to be plugged
into the projection graph. The node has children for opacity,
mask, layer mode and layer offset.
(gimp_layer_translate)
(gimp_layer_add_mask)
(gimp_layer_apply_mask)
(gimp_layer_set_opacity)
(gimp_layer_set_mode): reconfigure the respective nodes.
* app/core/gimpimage.[ch]: keep a "graph" node around and destroy
it in finalize(). Not even a stub, just a silly GEGL dependency.
svn path=/trunk/; revision=27204
2008-10-09 Michael Natterer <mitch@gimp.org>
Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h
had a GEGL dependency (they will have in the next commit, but I
wanted to keep the commit separate).
* app/dialogs/Makefile.am
* app/file/Makefile.am
* app/gui/Makefile.am
* app/menus/Makefile.am
* app/paint/Makefile.am
* app/plug-in/Makefile.am
* app/text/Makefile.am
* app/vectors/Makefile.am
* app/widgets/Makefile.am
* app/xcf/Makefile.am: add GEGL_CFLAGS.
* app/actions/*.c
* app/core/*.c
* app/dialogs/*.c
* app/display/*.c
* app/file/*.c
* app/gui/*.c
* app/menus/*.c
* app/paint/*.c
* app/pdb/gimppdb-utils.c
* app/pdb/gimpprocedure.c
* app/plug-in/*.c
* app/text/*.c
* app/tools/*.c
* app/vectors/*.c
* app/widgets/*.c
* app/xcf/*.c: add <gegl.h> or replace <glib-object.h> by <gegl.h>
to all files which include a drawable subclass or gimpimage.h
* tools/pdbgen/app.pl: include <gegl.h> instead of <glib-object.h>
in all generated files.
* app/pdb/*-cmds.c: regenerated.
* data/images/gimp-splash.png: the goat is still sleeping.
By Aurore Derriennic.
svn path=/trunk/; revision=27202
2008-10-09 Michael Natterer <mitch@gimp.org>
Remove the last code duplication from the undo system (or if not
the last then at least the most ugly):
* app/core/gimpimage.[ch] (gimp_image_add_layer,channel,vectors):
add "gboolean push_undo" parameter and add the item without
touching undo if it's TRUE. Changed assertions from
g_object_is_floating() to !gimp_item_is_attached() so they also
take items from the undo stack and not only newly created ones.
(gimp_image_remove_layer,channel,vectors): add "push_undo"
parameter here too. Also add a "new_active" parameter where an
optional new active item can be passed.
(gimp_image_remove_layer,channel): these functions must not be
called with push_undo=FALSE and a floating selection attached to
the layer/channel. This can't currently happen; added warnings in
case other code is changed and makes it happen anyway.
* app/core/gimpchannelundo.c
* app/core/gimplayerundo.c
* app/vectors/gimpvectorsundo.c: use above functions to add/remove
items instead of duplicating (parts of) their code. Pass
push_undo=FALSE and the previously active item to the remove()
functions.
* app/actions/channels-commands.c
* app/actions/edit-commands.c
* app/actions/layers-commands.c
* app/actions/vectors-commands.c
* app/core/gimp-edit.c
* app/core/gimpchannelundo.c
* app/core/gimpimage-crop.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-merge.c
* app/core/gimpimage-quick-mask.c
* app/core/gimpimage-scale.c
* app/core/gimplayer-floating-sel.c
* app/core/gimplayerundo.c
* app/core/gimpselection.c
* app/core/gimptemplate.c
* app/display/gimpdisplayshell-dnd.c
* app/text/gimptext-compat.c
* app/tools/gimptexttool.c
* app/tools/gimpvectortool.c
* app/vectors/gimpvectors-import.c
* app/vectors/gimpvectorsundo.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpitemtreeview.[ch]
* app/widgets/gimplayertreeview.c
* app/widgets/gimptoolbox-dnd.c
* app/widgets/gimpvectorstreeview.c
* app/xcf/xcf-load.c
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/paths.pdb: changed accordingly (pass TRUE
unless it's a new image like when loading and XCF file).
* app/pdb/image-cmds.c
* app/pdb/paths-cmds.c: regenerated.
svn path=/trunk/; revision=27200
2008-10-09 Michael Natterer <mitch@gimp.org>
Bug 134956 – Curves tool doesn't save free curves
* app/core/gimpmarshal.list
* app/widgets/gimpsettingsbox.[ch]: add signal "file-dialog-setup"
and emit it when the export/import file chooser is fully
constructed. Callbacks can then do additional things to the
dialog, like adding custom buttons.
* app/tools/gimpcurvestool.h
* app/tools/gimplevelstool.h: add boolean member
"export_old_format".
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c (gimp_*_tool_dialog): connect to
the settings box' "file-dialog-setup".
(gimp_*_tool_export_setup): new callback which adds a toggle to
the file choosers that allows to export to the old format.
Default saving the new format, we defaulted to the old one before.
(gimp_*_tool_settings_export): check the "export_old_format"
boolean and only save the cruft format if it is TRUE; chain up
otherwise, which generically saves the new format.
* app/tools/gimplevelstool.c (gimp_levels_tool_settings_import):
add the same file format detection code as in the curves tool
so it transparently loads old and new levels files.
svn path=/trunk/; revision=27194
2008-10-09 Sven Neumann <sven@sven>
* app/core/gimp-user-install.c (gimp_user_install_detect_old):
use GIMP_MINOR_VERSION to determine the version to migrate from.
svn path=/trunk/; revision=27192
2008-10-09 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpcurvesconfig.c (gimp_curves_config_save_cruft):
when saving a curve of type GIMP_CURVE_FREE, don't use
gimp_curve_get_point() because that returns nothing for free
curves.
(gimp_curves_config_load_cruft): reset the curve before loading it.
* app/core/gimpcurve.c (gimp_curve_get_point): instead of above
mentioned uninitialized nonsense, at least return -1,-1 for free
curves.
svn path=/trunk/; revision=27190
2008-10-06 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.c (gimp_context_real_set_display): paranoia
fix for hypothetical but harmful misbehavior: when setting the
display from !=NULL to NULL, also set the image to NULL instead of
relying on whatever obscure implicit behavior of other parts of
GIMP which set a new display right away or make sure the image
goes away together with the display.
svn path=/trunk/; revision=27145
2008-10-06 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.c (gimp_layer_add_mask): g_return_if_fail()
on the mask's image being the same as the layer's image. The PDB
already checks for this.
* app/core/gimpimage.c (gimp_image_add_layer,channel,vectors):
remove calls to gimp_item_set_image() because we only accept
itmes of this image anyway.
svn path=/trunk/; revision=27138
2008-10-05 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-contiguous-region.c: some formatting cleanups.
(find_contiguous_segment): changed to return gboolean not gint.
svn path=/trunk/; revision=27134
2008-09-30 Michael Natterer <mitch@gimp.org>
Bug 546924 – "New Image" misscalculating dimensions for non-pixel
sized templates
* app/core/gimptemplate.h: added private param flag
GIMP_TEMPLATE_PARAM_COPY_FIRST.
* app/core/gimptemplate.c (gimp_template_class_init): set the flag
on the resolution properties.
* app/dialogs/image-new-dialog.c (image_new_template_changed):
make sure the resolution properties are copied first.
* libgimpconfig/gimpconfig-utils.c (gimp_config_sync): remove
comment about fixing the template editor. That's not true any
more.
svn path=/trunk/; revision=27091
2008-09-29 Michael Natterer <mitch@gimp.org>
* app/core/gimpcurve.c (gimp_curve_copy): no need to memcpy() the
arrays, they are properly copied by gimp_config_sync() now. Add
call to gimp_data_dirty() so GimpCurvesConfig gets notified.
* app/gegl/gimpcurvesconfig.c (gimp_curves_config_set_property):
use gimp_config_copy() instead of copying the curve menually.
svn path=/trunk/; revision=27076
2008-09-25 Sven Neumann <sven@gimp.org>
* app/core/gimp.[ch]: added a 'restored' flag to the Gimp object
and set it in gimp_real_restore(). Added method
gimp_is_restored().
* app/gui/gui.c: call gui_unique_init() in gui_init() instead of
that later in gui_restore_after_callback(). By doing so we start
our DBus service (or message proxy window on Win32) much earlier
in the start process, thus reducing the time frame where two
instances of gimp can be launched.
* app/gui/gui-unique.c
* app/gui/gimpdbusservice.c: wait handling the queued file-open
requests until gimp is fully restored.
* app/gui/splash.c (splash_update): only run one iteration of
the
main loop. Doing it in a while loop can cause us to get stuck if
the gimp-unique service already added an idle handler.
svn path=/trunk/; revision=27049
2008-09-20 Simon Budig <simon@gimp.org>
* app/core/gimpcurve.c: whitespace fix
* app/gegl/gimplevelsconfig.c: make sure that the points set by
default gets unset before calculating the levels->curves
transition. We don't want stray points in the corners.
svn path=/trunk/; revision=27018
2008-09-18 Simon Budig <simon@gimp.org>
* app/core/gimpcurve.c: comment fix
* app/gegl/gimplevelsconfig.c: improve the levels->curves
transition. Not perfect, the result does not match a "real"
gamma correction, especially in the dark areas, where the
curves are too dark compared to the levels.
svn path=/trunk/; revision=27001
2008-09-18 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-shadow.c
(gimp_drawable_get_shadow_tiles):
no need to check if the drawable is attached as shadow tiles are
per drawable now.
svn path=/trunk/; revision=26986
2008-09-16 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: added GError parameter to
gimp_image_{raise,lower}_{channel,layer,vectors} functions and
removed calls to g_message().
* app/actions/channels-commands.c
* app/actions/layers-commands.c
* app/actions/vectors-commands.c: pass NULL for the GError
parameter as these actions are insensitive if they would fail.
* tools/pdbgen/pdb/image.pdb: changed accordingly. Corrected the
documentation.
* app/pdb/image-cmds.c
* libgimp/gimpimage_pdb.c: regenerated.
svn path=/trunk/; revision=26953
2008-09-15 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.[ch] (gimp_layer_add_mask): add GError
parameter and replace g_message() by g_set_error().
* app/core/gimplayermaskundo.c
* app/xcf/xcf-load.c
* app/actions/layers-commands.c: pass NULL errors since these
places know what they are doing. Ha ha...
* tools/pdbgen/pdb/layer.pdb
* tools/pdbgen/pdb/image.pdb: pass the error so we get more real
error messages for failed PDB calls.
* app/pdb/image-cmds.c
* app/pdb/layer-cmds.c: regenerated.
svn path=/trunk/; revision=26948
2008-09-11 Michael Natterer <mitch@gimp.org>
* app/core/gimp-modules.c (gimp_modules_unload): make a string
pointer const.
svn path=/trunk/; revision=26927
* app/core/gimpchannel.c (gimp_channel_real_all): We don't want to
clear the region, we want to fill it with OPAQUE_OPACITY.
svn path=/trunk/; revision=26891