Commit graph

17420 commits

Author SHA1 Message Date
Martin Nordholts e5f8e7d2cd Simplify my most recent ChangeLog entry...
svn path=/trunk/; revision=27318
2008-10-19 08:00:50 +00:00
Martin Nordholts 9d91e6b343 menus/image-menu.xml.in app/actions/debug-actions.c
* menus/image-menu.xml.in
* app/actions/debug-actions.c
* app/actions/debug-commands.h
* app/actions/debug-commands.c: Added a 'Dump Projection
Benchmarking' item to the Debug Menu so that we can test how
different GEGL graph setups affect performance.

svn path=/trunk/; revision=27317
2008-10-19 07:59:08 +00:00
Michael Natterer 099bc23234 add -Wmissing-format-attribute to CFLAGS.
2008-10-19  Michael Natterer  <mitch@gimp.org>

	* configure.in: add -Wmissing-format-attribute to CFLAGS.

	* plug-ins/imagemap/imap_main.c
	* plug-ins/imagemap/imap_object.h
	* plug-ins/imagemap/imap_source.c
	* plug-ins/imagemap/imap_statusbar.h: add G_GNUC_PRINTF().


svn path=/trunk/; revision=27316
2008-10-18 23:05:56 +00:00
Michael Natterer fc4081ba21 add -Wstrict-prototypes to CFLAGS.
2008-10-18  Michael Natterer  <mitch@gimp.org>

	* configure.in: add -Wstrict-prototypes to CFLAGS.


svn path=/trunk/; revision=27315
2008-10-18 19:25:03 +00:00
Sven Neumann e25c82e21a Applied patch from Alexia Death as attached to bug #471344:
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-18 18:46:15 +00:00
Sven Neumann 4d44235e6a fixed handling of empty strings. Don't quit silently, write an error
2008-10-17  Sven Neumann  <sven@gimp.org>

	* plug-ins/file-psd/psd-save.c (xfwrite): fixed handling of 
empty
	strings. Don't quit silently, write an error message to stderr 
at
	least.


svn path=/trunk/; revision=27302
2008-10-17 20:30:07 +00:00
Sven Neumann cd7cc88fc8 fixed ChangeLog entry
svn path=/trunk/; revision=27301
2008-10-17 16:36:08 +00:00
Sven Neumann 8f425553a7 added signal Gimp::image-opened to announce that an image has been loaded
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-17 12:03:08 +00:00
Sven Neumann 2199782b51 removed spurious chars from ChangeLog entry
svn path=/trunk/; revision=27294
2008-10-16 14:07:21 +00:00
Sven Neumann 584c70fed2 just some cleanup.
2008-10-16  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpviewrenderervectors.c
	(gimp_view_renderer_vectors_draw): just some cleanup.


svn path=/trunk/; revision=27293
2008-10-15 23:04:40 +00:00
Sven Neumann f55b832bd3 Bug 556248 – Scaling gives 'jagged' edges
2008-10-16  Sven Neumann  <sven@gimp.org>

	Bug 556248 – Scaling gives 'jagged' edges

	* app/paint-funcs/scale-region.c (scale): calculate pixel
	contributions based on pixel centers, not on pixel origins.


svn path=/trunk/; revision=27292
2008-10-15 22:43:27 +00:00
Jakub Steiner 51575faa97 remove white from the shadow to render correctly on dark backgrounds.
2008-10-15  Jakub Steiner <jimmac@gimp.org>
  * themes/Default/images/stock-gegl.svg:
  * themes/Default/images/stock-gegl-22.svg:
  * themes/Default/images/stock-gegl-22.png: remove white from the
    shadow to render correctly on dark backgrounds.

svn path=/trunk/; revision=27288
2008-10-15 15:34:39 +00:00
Michael Natterer a3bf87bfdb reindent the list of PDB types and remove the unused and deprecated types
2008-10-15  Michael Natterer  <mitch@gimp.org>

	* tools/pdbgen/pdb.pl: reindent the list of PDB types and remove
	the unused and deprecated types "boundary" and "region". Also
	remove "status" because it is unused (and unneeded and
	unimplemented).


svn path=/trunk/; revision=27287
2008-10-15 14:10:08 +00:00
Michael Natterer f2e93c0e78 add the gegl: prefix here too.
2008-10-15  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpgegltool.c (gimp_gegl_tool_operation_blacklisted):
	add the gegl: prefix here too.

	(gimp_gegl_tool_get_config): canonicalize the type name of the
	created config class or we crash.


svn path=/trunk/; revision=27286
2008-10-14 23:28:23 +00:00
Michael Natterer 1ccfc38561 add the gegl: prefix here too.
2008-10-15  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpgegltool.c (gimp_gegl_tool_operation_blacklisted):
	add the gegl: prefix here too.


svn path=/trunk/; revision=27285
2008-10-14 23:14:34 +00:00
Michael Natterer 880a699cae configure.in require GEGL >= 0.0.21.
2008-10-14  Michael Natterer  <mitch@gimp.org>

	* configure.in
	* app/sanity.c: require GEGL >= 0.0.21.

	* app/core/gimpchannel.c
	* app/core/gimpdrawable-brightness-contrast.c
	* app/core/gimpdrawable-invert.c
	* app/core/gimpimage.c
	* app/core/gimpimagemap.c
	* app/core/gimplayer.c
	* app/gegl/gimp-gegl-utils.c
	* app/tools/gimpbrightnesscontrasttool.c: GEGL operation names
	are now "gegl:"-prefixed.

	* app/core/gimpimagemap.c: set the node's "dont-cache" property
	unconditionally.


svn path=/trunk/; revision=27284
2008-10-14 22:44:42 +00:00
Sven Neumann ce4c2c3bfc let new docks appear at the pointer position.
2008-10-14  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpdialogfactory.c 
(gimp_dialog_factory_add_dialog):
	let new docks appear at the pointer position.


svn path=/trunk/; revision=27282
2008-10-14 21:39:14 +00:00
Michael Natterer 1e9b40bc7c add a default implementation of GimpDrawable::get_node() which contains a
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=27278
2008-10-14 18:46:44 +00:00
Michael Natterer 0b0e8def49 Fix date in my last commit.
svn path=/trunk/; revision=27276
2008-10-14 09:20:03 +00:00
Michael Natterer 79463b2065 remove function gimp_bpp_to_babl_format_linear() and add "gboolean linear"
2008-10-13  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimp-gegl-utils.[ch]: remove function
	gimp_bpp_to_babl_format_linear() and add "gboolean linear"
	parameter to gimp_bpp_to_babl_format().

	* app/gegl/gimpoperationtilesink.c (process)
	* app/gegl/gimpoperationtilesource.c (prepare): simply pass
	self->linear to above changed function instead of selecting
	between the two old functions.


svn path=/trunk/; revision=27275
2008-10-14 09:19:37 +00:00
Sven Neumann 121785c0ed comments.
2008-10-14  Sven Neumann  <sven@gimp.org>

	* app/signals.c (gimp_init_signal_handlers): comments.


svn path=/trunk/; revision=27274
2008-10-14 07:29:59 +00:00
Sven Neumann af64515e53 Bug 556182 – Could you please explain a few strings [I18N]
2008-10-13  Sven Neumann  <sven@gimp.org>

	Bug 556182 – Could you please explain a few strings [I18N]
	
	* plug-ins/pygimp/plug-ins/py-slice.py: added translator 
comments.


svn path=/trunk/; revision=27272
2008-10-13 20:33:31 +00:00
Sven Neumann f6e08757a1 app/Makefile.am new files with code split out of main.c.
2008-10-13  Sven Neumann  <sven@gimp.org>

	* app/Makefile.am
	* app/signals.[ch]: new files with code split out of main.c.

	* app/main.c: changed accordingly.


svn path=/trunk/; revision=27270
2008-10-13 19:32:33 +00:00
Martin Nordholts bce95343c8 Update with a new version that is the best known so far (maybe it's even
* app/gegl/gimpoperationadditionmode.c
(gimp_operation_addition_mode_process): Update with a new version
that is the best known so far (maybe it's even correct?).

svn path=/trunk/; revision=27269
2008-10-13 19:27:43 +00:00
Sven Neumann b387734c3d Bug 547967 – Improve app/paint-funcs/ maintainability
2008-10-13  Sven Neumann  <sven@gimp.org>

	Bug 547967 – Improve app/paint-funcs/ maintainability

	Applied patch from Luidnel Maignan that splits the legacy code 
for
	layer modes into new files.
	
	* app/paint-funcs/Makefile.am
	* app/paint-funcs/layer-modes.[ch]
	* app/paint-funcs/paint-funcs-utils.h: new files with code taken
	from ...

	* app/paint-funcs/paint-funcs-generic.h
	* app/paint-funcs/paint-funcs.c: ... these two files.


svn path=/trunk/; revision=27268
2008-10-13 18:51:32 +00:00
Sven Neumann c8517e9229 fixed typo in ChangeLog
svn path=/trunk/; revision=27265
2008-10-13 13:47:32 +00:00
Michael Natterer 6e6c921396 remove warning because the missing layer modes are now "implemented", ha
2008-10-13  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimp-gegl-utils.c (gimp_layer_mode_to_gegl_operation):
	remove warning because the missing layer modes are now
	"implemented", ha ha.


svn path=/trunk/; revision=27252
2008-10-12 23:09:25 +00:00
Michael Natterer 3f9e82004e renamed this class...
2008-10-12  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimpoperationpointcomposer.[ch]: renamed this class...

	* app/gegl/gimpoperationlayermode.[ch]: ...to this and add
	an own process() virtual function so we are free to hack even
	more badly in order to support legacy layer modes and proper
	ones which do meningfiul things to alpha. Simply redirect
	GeglOperationPointComposer's compose() calls to our own vfunc
	for now.

	* app/gegl/gegl-types.h
	* app/gegl/Makefile.am: changed accordingly.

	* app/gegl/gimpoperation*mode.[ch]: changed parent class and
	implemented process() method accordingly.


svn path=/trunk/; revision=27251
2008-10-12 20:26:27 +00:00
Michael Natterer 138781daf9 commit some #if 0'ed experimental code.
2008-10-12  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimpoperationadditionmode.c: commit some #if 0'ed
	experimental code.

	* app/actions/view-commands.c (view_use_gegl_cmd_callback): use
	gimp_image_update(), simply exposing the shell doesn't reconstruct
	the projection.


svn path=/trunk/; revision=27247
2008-10-12 19:01:22 +00:00
Michael Natterer ef1df223a8 add a "use_gegl" boolean member.
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 19:17:42 +00:00
Martin Nordholts ae75c33bfd Implement this one.
* app/gegl/gimpoperationadditionmode.c
(gimp_operation_addition_mode_process): Implement this one.

svn path=/trunk/; revision=27241
2008-10-11 19:12:49 +00:00
Michael Natterer 7a260b8f9e it's gimp-screen-node not gimp-screen_mode.
2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimp-gegl-utils.c (gimp_layer_mode_to_gegl_operation):
	it's gimp-screen-node not gimp-screen_mode.


svn path=/trunk/; revision=27240
2008-10-11 17:30:12 +00:00
Michael Natterer 414cc45abf add an empty abstract GeglOperationPointComposer subclass which can be
2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimpoperationpointcomposer.[ch]: add an empty abstract
	GeglOperationPointComposer subclass which can be used to hook in
	common debug or test or whatever code for below layer modes.

	* app/gegl/gimpoperation*mode.[ch]: add empty stubs of layer mode
	operations which do nothing but copying input to output.

	* app/gegl/Makefile.am
	* app/gegl/gegl-types.h: add them here and reordered things a bit.

	* app/gegl/gimp-gegl.c (gimp_gegl_init): register the new
	operations.

	* app/gegl/gimp-gegl-utils.c (gimp_layer_mode_to_gegl_operation):
	return the new operations.


svn path=/trunk/; revision=27239
2008-10-11 17:20:20 +00:00
Michael Natterer 2d24853f0e make it abstract.
2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimpoperationpointfilter.c: make it abstract.


svn path=/trunk/; revision=27232
2008-10-11 14:59:27 +00:00
Michael Natterer 90a194a631 don't return non-existing layer modes (in fact, return "normal" for all
2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimp-gegl-utils.c (gimp_layer_mode_to_gegl_operation):
	don't return non-existing layer modes (in fact, return "normal"
	for all modes).


svn path=/trunk/; revision=27231
2008-10-11 14:48:50 +00:00
Michael Natterer 0e88239524 add a projection node and implement GimpDrawable::get_node(). Reconfigure
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 10:29:19 +00:00
Michael Natterer e28e864ac6 remove obsolete assertion and redundant cast.
2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimplayer.c (gimp_layer_get_node): remove obsolete
	assertion and redundant cast.


svn path=/trunk/; revision=27229
2008-10-11 10:23:01 +00:00
Michael Natterer 302bda6c66 add GimpContainer::add() implementation, it's needed after all even though
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 10:18:46 +00:00
Michael Natterer 26de288d8b Fix old bug in the GimpContainer implementation that wasn't visible before
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-11 10:14:21 +00:00
Martin Nordholts a07e8586a5 Initialize 'index'.
* app/widgets/gimpdockseparator.c (gimp_dock_separator_drag_drop):
Initialize 'index'.

svn path=/trunk/; revision=27226
2008-10-11 08:42:57 +00:00
Martin Nordholts 8b459318d4 Add a GtkAnchorType member to GimpDockSeparator that specifies where a
* app/widgets/gimpdockseparator.c (gimp_dock_separator_new): Add a
GtkAnchorType member to GimpDockSeparator that specifies where a
dropped dockable shall be inserted.

(gimp_dock_separator_drag_drop): Get rid of the ugly hack where
the role of a given separator was based on its position as a child
in its container. Simply decide what role the separator has by
loooking at its anchor-member.

* app/widgets/gimpdock.c (gimp_dock_init)
(gimp_dock_add_book): Give the GimpDockSeparators their
appropriate roles directly at their construction.

svn path=/trunk/; revision=27218
2008-10-10 23:10:21 +00:00
Michael Natterer 012581b1b9 simplify by getting rid of code duplication.
2008-10-10  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawablestack.c
	(gimp_drawable_stack_add_node)
	(gimp_drawable_stack_remove_node): simplify by getting rid of code
	duplication.


svn path=/trunk/; revision=27217
2008-10-10 21:53:34 +00:00
Michael Natterer a037de0f18 move all the code that creates a graph of drawables and all
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 21:18:24 +00:00
Michael Natterer 513c1b80f6 app/core/core-types.h app/core/Makefile.am new GimpList subclass stub
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 20:04:03 +00:00
Michael Natterer b479b7b346 add virtual function GimpDrawable::get_node() which returns a node to be
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 19:36:17 +00:00
Michael Natterer ac745422b9 flush the image after setting active items back from temporarily selected
2008-10-10  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpmovetool.c (gimp_move_tool_button_release): flush
	the image after setting active items back from temporarily
	selected ones. Fixes menu item sensitivity.


svn path=/trunk/; revision=27209
2008-10-10 15:41:03 +00:00
Michael Natterer 5ad366c642 implement GimpItem::visibility-changed and turn the layer's node into a
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 13:52:13 +00:00
Michael Natterer 73a9bcf327 Bug 554983 – Layers Projection using GEGL
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 12:24:56 +00:00
Michael Natterer dba9e0c5e8 add new functions gimp_image_get_layer_by_index(), _channel_by_index() and
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 11:45:00 +00:00
Michael Natterer f2a6b781e4 the "shift" operation's x and y properties are doubles not ints.
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-10 11:30:56 +00:00