Commit Graph

2514 Commits

Author SHA1 Message Date
9b96fc8e4c minor code cleanup.
2007-07-23  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprojection-construct.c: minor code cleanup.


svn path=/trunk/; revision=22976
2007-07-23 20:14:28 +00:00
e53f7a2c81 overwrite the menurc with the systemwide default. Only if that fails,
2007-07-20  Sven Neumann  <sven@gimp.org>

	* app/menus/menus.c (menus_clear): overwrite the menurc with the
	systemwide default. Only if that fails, delete the menurc file.

	* app/dialogs/preferences-dialog.c: string change.

	* app/core/gimp-user-install.c: formatting.

svn path=/trunk/; revision=22964
2007-07-20 12:41:08 +00:00
6b0e6990d1 remember whether a channel was active before quick mask was activated.
2007-07-20  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-quick-mask.[ch]: remember whether a channel
	was active before quick mask was activated. Fixes bug #134371.

svn path=/trunk/; revision=22961
2007-07-20 08:23:29 +00:00
a5d10b2ff0 renamed gimp_image_active_drawable() to gimp_image_get_active_drawable().
2007-07-19  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage.[ch]: renamed gimp_image_active_drawable() to
	gimp_image_get_active_drawable().

	* app/[lots of files]
	* tools/pdbgen/pdb/paths.pdb
	* tools/pdbgen/pdb/image.pdb: changed accordingly.

svn path=/trunk/; revision=22958
2007-07-19 14:59:51 +00:00
4ed227cf0e app/paint-funcs/Makefile.am app/paint-funcs/scale-funcs.[ch] moved
2007-07-17  Sven Neumann  <sven@gimp.org>

	* app/paint-funcs/Makefile.am
	* app/paint-funcs/scale-funcs.[ch]
	* app/paint-funcs/sample-funcs.[ch]: moved subsample_region() to
	new file and also moved subsample_indexed_region() there.

	* app/base/tile-manager-preview.c
	* app/core/gimpdrawable-preview.c: changed accordingly.


svn path=/trunk/; revision=22953
2007-07-18 12:47:00 +00:00
58ee85dfa6 added tile_manager_get_sub_preview().
2007-07-17  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager-preview.[ch]: added
	tile_manager_get_sub_preview().

	* app/core/gimpdrawable-preview.c: use the new function except 
for
	indexed drawables.


svn path=/trunk/; revision=22950
2007-07-17 20:33:10 +00:00
b47a3e52e5 app/base/Makefile.am added new file that holds code to create a preview
2007-07-17  Sven Neumann  <sven@gimp.org>

	* app/base/Makefile.am
	* app/base/tile-manager-preview.[ch]: added new file that holds 
code
	to create a preview from a tile manager.

	* app/core/gimpbuffer.c
	* app/core/gimpimage-preview.c: use the new function instead of
	duplicating this code.


svn path=/trunk/; revision=22948
2007-07-17 19:38:10 +00:00
9409179aa6 free the context list.
2007-07-17  Sven Neumann  <sven@gimp.org>

	* app/core/gimp.c (gimp_finalize): free the context list.

	* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui):
	removed unused vbox.

svn path=/trunk/; revision=22944
2007-07-17 11:15:15 +00:00
f3c451becd use the tool-info identifier as the name of the tool-options object.
2007-07-17  Sven Neumann  <sven@gimp.org>

	* app/core/gimptoolinfo.c (gimp_tool_info_new): use the tool-info
	identifier as the name of the tool-options object.

	* app/paint/gimppaintoptions.c (gimp_paint_options_new): use the
	paint-info identifier as the name of the paint-options object.

	* app/paint/gimp-paint.c (gimp_paint_register): added parameter check.

	* app/tools/gimp-tools.c (gimp_tools_init): formatting.

svn path=/trunk/; revision=22941
2007-07-17 10:04:06 +00:00
b56e206d0b sync with the default template. Fixes bug #457286.
2007-07-16  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-new.c (gimp_image_new_get_last_template): sync
	with the default template. Fixes bug #457286.

svn path=/trunk/; revision=22938
2007-07-16 13:49:17 +00:00
4625597ab8 update the image, not the drawable so we avoid constantly invalidating the
2007-06-27  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimagemap.c (gimp_image_map_clear)
	(gimp_image_map_do): update the image, not the drawable so we
	avoid constantly invalidating the drawable preview.

	* app/tools/gimpimagemaptool.c (gimp_image_map_tool_response):
	invalidate the drawable preview here.

	* app/paint/gimppaintcore.c (gimp_paint_core_paste)
	(gimp_paint_core_replace): clean up drawable offset handling code.


svn path=/trunk/; revision=22843
2007-06-26 22:41:06 +00:00
8c8d3786d9 Removed useless image flushing which caused the image preview to be
2007-06-27  Michael Natterer  <mitch@gimp.org>

	Removed useless image flushing which caused the image preview to
	be updated needlessly:

	* app/core/gimpimagemap.c (gimp_image_map_do): don't flush the
	image when the idle rendering is completed, emit our own "flush"
	signal instead just as for the incremental display updates.

	* app/tools/gimpimagemaptool.c (gimp_image_map_tool_notify_preview):
	when switching off the preview don't flush the image, only flush
	projection and display.


svn path=/trunk/; revision=22842
2007-06-26 22:14:35 +00:00
d8c632cb93 Invalidate the image preview after the projection is completely
2007-06-26  Michael Natterer  <mitch@gimp.org>

	Invalidate the image preview after the projection is
	completely constructed. Fixes bug #449141.

	* app/core/gimpmarshal.list: add VOID:BOOLEAN

	* app/core/gimpimage.[ch]: add boolean parameter
	invalidate_preview to the "flush" signal.

	* app/core/gimpprojection.[ch]: add boolean member
	invalidate_preview to the GimpProjection struct. Set it to TRUE if
	it was TRUE in the image's "flush" signal. When the projection is
	completely constructed after a flush, invalidate the image's
	preview.

	* app/display/gimpdisplay-handlers.c
	* app/widgets/gimpitemtreeview.c
	* app/widgets/gimpimagedock.c
	* app/widgets/gimpimageeditor.c: changed callback signatures
	accordingly.


svn path=/trunk/; revision=22840
2007-06-26 21:39:51 +00:00
7aa01e3120 applied patch from Geert Jordaens that reimplements the algorithm to
2007-06-25  Sven Neumann  <sven@gimp.org>

	* app/core/gimp-transform-resize.c: applied patch from Geert
	Jordaens that reimplements the algorithm to determine the largest
	rectangle. Fixes bug #412473.

svn path=/trunk/; revision=22834
2007-06-25 15:36:53 +00:00
09578ea070 removed extra check for gthread and fold it into the GLIB and GTK checks.
2007-06-25  Sven Neumann  <sven@gimp.org>

	* configure.in: removed extra check for gthread and fold it into
	the GLIB and GTK checks.

	* */Makefile.am: changed accordingly.

	* app/main.c (main): always call g_thread_init().

svn path=/trunk/; revision=22832
2007-06-25 12:41:59 +00:00
a42d1b45ed Only consider layers with combine mode Normal when testing if any layer
2007-06-22  Martin Nordholts  <martinn@svn.gnome.org>

	* app/core/gimpprojection-construct.c (gimp_projection_initialize): Only
	consider layers with combine mode Normal when testing if any layer
	covers the entire specified area. Fixes bug #440154.

svn path=/trunk/; revision=22824
2007-06-22 10:11:36 +00:00
e74f8a034c note that loading fonts may take a while (on Win32 at least).
2007-06-22  Sven Neumann  <sven@gimp.org>

	* app/core/gimp.c (gimp_restore): note that loading fonts may 
take
	a while (on Win32 at least).


svn path=/trunk/; revision=22823
2007-06-22 07:29:05 +00:00
610feafb3e app/base/base-types.h app/base/tile-manager.[ch] removed accessors for
2007-06-21  Sven Neumann  <sven@gimp.org>

	* app/base/base-types.h
	* app/base/tile-manager.[ch]
	* app/base/tile-manager-private.h: removed accessors for user_data.
	Instead pass the user_data when setting the validation proc.

	* app/base/tile-pyramid.c
	* app/core/gimpchannel.c
	* app/core/gimpprojection.c
	* app/core/gimpselection.c
	* app/tools/gimpiscissorstool.c: changed accordingly.

svn path=/trunk/; revision=22820
2007-06-21 14:36:58 +00:00
173c9d40aa use gboolean for boolean parameters.
2007-06-21  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.[ch]: use gboolean for boolean parameters.

	* app/base/tile-pyramid.c (tile_pyramid_get_memsize): pass TRUE
	for sparse to tile_manager_get_memsize().

	* app/base/tile.c
	* app/base/tile-swap.c: minor cleanups.

	* app/core/gimpprojection.c (gimp_projection_get_tiles_at_level):
	inline the creation of the TilePyramid.

svn path=/trunk/; revision=22818
2007-06-21 14:02:14 +00:00
52f7746e76 Make sure the image preview is only invalidated for visible image changes
2007-06-21  Michael Natterer  <mitch@gimp.org>

	Make sure the image preview is only invalidated for visible
	image changes (as it was before the change below).

	* app/core/gimpimage.h (struct GimpImageFlushAccumulator): added
	member "gboolean preview_invalidated".

	* app/core/gimpimage.c (gimp_image_update): set it to TRUE here.

	(gimp_image_real_flush): inavlidate the preview only if
	flush_accum.preview_invalidated is TRUE.


svn path=/trunk/; revision=22817
2007-06-21 13:35:31 +00:00
1a13f51e02 Part one of fix for bug #449141 (fixes the projection but still leaves
2007-06-21  Michael Natterer  <mitch@gimp.org>

	Part one of fix for bug #449141 (fixes the projection but still
	leaves some image previews unupdated).

	* app/core/gimpimage.c (lots of functions)
	* app/paint/gimppaintcore.c (gimp_paint_core_finish)
	* app/file/file-open.c (file_open_sanitize_image): removed calls
	to gimp_viewable_invalidate_preview(image).

	* app/file/file-open.c (file_open_sanitize_image): update and
	flush the entire image instead. Load plug-ins are not required to
	call gimp_drawable_update() or anything else to make sure the
	projection is up-to-date.

	* app/core/gimpimage.c (gimp_image_real_flush): inavlidate the
	image preview here because we now create it from the projection.
	(this is still not the entirely correct place though).


svn path=/trunk/; revision=22815
2007-06-21 10:09:27 +00:00
3038dc0e80 app/base/Makefile.am app/base/base-types.h image pyramid code split out of
2007-06-20  Sven Neumann  <sven@gimp.org>

	* app/base/Makefile.am
	* app/base/base-types.h
	* app/base/tile-pyramid.[ch]: image pyramid code split out of
	GimpProjection.

	* app/core/gimpprojection.[ch]: use the new TilePyramid.

svn path=/trunk/; revision=22807
2007-06-20 16:15:16 +00:00
5c1a08555f take the image size into account and return the level that is actually
2007-06-16  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprojection.c (gimp_projection_get_level): take 
the
	image size into account and return the level that is actually 
used.
	Fixes bug #448185.


svn path=/trunk/; revision=22792
2007-06-16 13:38:13 +00:00
c2a0689c2d micro optimization.
2007-06-14  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdatafactory.c
	(gimp_data_factory_refresh_cache_remove): micro optimization.

svn path=/trunk/; revision=22779
2007-06-14 11:30:12 +00:00
258895fb2e remove calls to container_freeze() and container_thaw()
2007-06-14  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdatafactory.c (gimp_data_factory_data_foreach):
	remove calls to container_freeze() and container_thaw()

	(gimp_data_factory_data_reload)
	(gimp_data_factory_data_free): add them here instead.

	(gimp_data_factory_data_save): remove freeze/thaw calls here
	without any replacement. The list doesn't change by saving its
	items. Fixes insanely long quit time when there are many data
	objects.


svn path=/trunk/; revision=22778
2007-06-14 11:12:31 +00:00
aaaf8605ae implement the GimpColorManaged interface.
2007-06-14  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage.c: implement the GimpColorManaged 
interface.


svn path=/trunk/; revision=22777
2007-06-14 07:06:58 +00:00
54caf4fbd4 don't disable image previews when layer previews are disabled. We do not
2007-06-11  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-preview.c: don't disable image previews 
when
	layer previews are disabled. We do not any longer create the 
image
	preview from the layer previews.

	* app/core/gimpimagefile.c
	* app/widgets/gimpthumbbox.c
	* tools/pdbgen/pdb/image.pdb: thumbnail rendering is not any
	longer disabled if layer previews are turned off.

	* app/config/gimprc-blurbs.h (THUMBNAIL_SIZE_BLURB): removed 
note
	that has become invalid by the change above.

	* app/core/gimpitem-preview.c: cosmetics.

	* app/pdb/image_cmds.c: regenerated.


svn path=/trunk/; revision=22756
2007-06-11 19:26:31 +00:00
65385a4781 added gimp_image_resize_to_selection().
2007-06-09  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-resize.[ch]: added
	gimp_image_resize_to_selection().

	* app/actions/image-actions.c
	* app/actions/image-commands.[ch]
	* app/widgets/gimphelp-ids.h
	* menus/image-menu.xml.in: added an action and a menu item for 
it.
	Fixes bug #335672.

	* plug-ins/common/align_layers.c: resolved a conflicting 
mnemonic.


svn path=/trunk/; revision=22749
2007-06-09 17:17:30 +00:00
d7c712403c fixed parameter passed to gimp_image_get_background(). Fixes bug #445719.
2007-06-09  Sven Neumann  <sven@gimp.org>

	* app/core/gimpselection.c (gimp_selection_extract): fixed
	parameter passed to gimp_image_get_background(). Fixes bug 
#445719.


svn path=/trunk/; revision=22748
2007-06-09 16:43:25 +00:00
d3f8ba267e same change here.
* app/core/gimpprojection.c (gimp_projection_invalidate):
	same change here.

svn path=/trunk/; revision=22746
2007-06-08 12:04:42 +00:00
5300747967 use a bit shift instead of a shift and a division.
2007-06-08  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprojection.c (gimp_projection_alloc_levels): use
	a bit shift instead of a shift and a division.

svn path=/trunk/; revision=22745
2007-06-08 11:53:11 +00:00
3ce8d74b14 #define GIMP_VIEWABLE_PRIORITY_IDLE, which is even lower than
2007-06-08  Sven Neumann  <sven@gimp.org>

	* app/core/gimpviewable.h: #define GIMP_VIEWABLE_PRIORITY_IDLE,
	which is even lower than G_PRIORITY_LOW.

	* app/core/gimpundo.c
	* app/widgets/gimpviewrenderer.c: create previews with
	GIMP_VIEWABLE_PRIORITY_IDLE so that they are run after the
	projection has been invalidated.


svn path=/trunk/; revision=22743
2007-06-07 23:05:02 +00:00
a9cec3c05f folded into a single loop.
2007-06-07  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprojection.c (gimp_projection_validate_pyramid_tile):
	folded into a single loop.

svn path=/trunk/; revision=22740
2007-06-07 15:43:55 +00:00
e20966e7c9 some loop unrolling
svn path=/trunk/; revision=22739
2007-06-07 15:29:25 +00:00
a67a70b559 weight the pixels by their alpha value.
2007-06-07  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprojection.c (gimp_projection_write_quarter):
	weight the pixels by their alpha value.

svn path=/trunk/; revision=22738
2007-06-07 15:20:49 +00:00
916cb45d93 removed the boolean from the GimpImage struct that used to track whether
2007-06-07  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage.[ch]: removed the boolean from the GimpImage
	struct that used to track whether the preview was valid.
	(gimp_image_invalidate_preview): just set the preview to NULL.

	* app/core/gimpimage-preview.c (gimp_image_get_new_preview):
	construct the preview from the projection instead of compositing
	the drawable previews.

svn path=/trunk/; revision=22737
2007-06-07 14:25:28 +00:00
916c53f0d8 lazily allocate the tile managers of the image pyramid.
2007-06-07  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprojection.c: lazily allocate the tile managers of
	the image pyramid.	
	(gimp_projection_write_quarter): minor optimization.

svn path=/trunk/; revision=22736
2007-06-07 14:21:49 +00:00
f322854007 app/text/Makefile.am app/core/Makefile.am app/tools/Makefile.am
2007-06-07  Sven Neumann  <sven@gimp.org>

	* app/text/Makefile.am
	* app/core/Makefile.am
	* app/tools/Makefile.am
	* app/display/Makefile.am
	* app/widgets/Makefile.am
	* app/base/Makefile.am
	* app/paint/Makefile.am
	* app/plug-in/Makefile.am
	* libgimp/Makefile.am
	* libgimpthumb/Makefile.am
	* tools/pdbgen/Makefile.am
	* libgimpwidgets/Makefile.am: applied the remaining parts of the
	patch from Daniel Richard G. to fix out-of-source-tree builds
	(bug #444960).

svn path=/trunk/; revision=22735
2007-06-07 13:19:44 +00:00
2a3fac83a9 reimplemented without using a logarithm.
2007-06-07  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprojection.c (gimp_projection_get_level):
	reimplemented without using a logarithm.

svn path=/trunk/; revision=22734
2007-06-07 10:35:26 +00:00
a4079a37db minor API cleanup. Use horizontal and vertical scale to determine the
2007-06-06  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprojection.[ch]: minor API cleanup. Use 
horizontal
	and vertical scale to determine the pyramid level to use.

	* app/display/gimpdisplayshell-draw.c
	* app/display/gimpdisplayshell-render.c: follow the API change.


svn path=/trunk/; revision=22730
2007-06-06 21:40:31 +00:00
2b401b8691 cosmetics.
2007-06-06  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprojection.c: cosmetics.

svn path=/trunk/; revision=22728
2007-06-06 13:59:41 +00:00
7917611e53 Implemented an image pyramid for the GimpProjection. An image pyramid
2007-06-06  Martin Nordholts  <martinn@svn.gnome.org>

	Implemented an image pyramid for the GimpProjection. An image pyramid
	caches a projection at several sizes, causing the rendering code not to
	have to swap in all tiles of a (potentially) large image; it can use
	small versions of the projection if the user is zoomed out.

	The image pyramid also imroves visual quality, especially at zoom levels
	where there is a pyramid level that matches perfectly (i.e. at e.g. 50%,
	25%, and 12.5% zoom). A step on the right track for bug #76096.

	* app/core/gimpprojection.[ch]: Adjusted to make use of an image
	pyramid. GimpProjection now keeps an array of TileManager:s, one per
	pyramid level. Renamed _alloc_tiles to _alloc_levels.

	* app/display/gimpdisplayshell-draw.c: (gimp_display_shell_draw_area):
	Use the right GimpProjection level when drawing

	* app/display/gimpdisplayshell-render.c: (render_image_init_info_full):
	Setup RenderInfo with level in mind

	* app/base/tile-manager.[ch]: Extended API a bit, nothing complicated.

	* app/base/tile-manager-private.h (struct _TileManager): Keep a pointer
	to the level below for use in an image pyramid.


svn path=/trunk/; revision=22727
2007-06-06 13:45:44 +00:00
67ec846b73 corrected a bug introduced by my last commit
svn path=/trunk/; revision=22726
2007-06-06 13:26:48 +00:00
5ca92142ad cleanup.
2007-06-06  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-preview.c (gimp_image_get_new_preview): cleanup.

svn path=/trunk/; revision=22725
2007-06-06 12:56:50 +00:00
097b1768a5 the projection is 2 bytes per pixel for grayscale images.
2007-06-06  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprojection.c (gimp_projection_estimate_memsize):
	the projection is 2 bytes per pixel for grayscale images.

svn path=/trunk/; revision=22723
2007-06-06 10:48:00 +00:00
798dd95499 #include "gimprojection.h"
svn path=/trunk/; revision=22722
2007-06-06 10:13:44 +00:00
feaf142fc7 added function that estimates the memory requirements for an image
2007-06-06  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprojection.[ch]: added function that estimates the
	memory requirements for an image projection.

	* app/core/gimptemplate.c (gimp_template_notify): use it.

svn path=/trunk/; revision=22721
2007-06-06 10:03:17 +00:00
c2d1214551 Changed "The GIMP" to "GIMP" everywhere, where it's used as a name.
2007-06-06  Mukund Sivaraman  <muks@mukund.org>

        Changed "The GIMP" to "GIMP" everywhere, where it's used as a name.


svn path=/trunk/; revision=22715
2007-06-06 08:44:52 +00:00
8cb4d6070b applied patch from Eric Lamarque which adds support for ABR v6 brushes.
2007-06-04  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrush-load.c: applied patch from Eric Lamarque
	which adds support for ABR v6 brushes. Did some minor cleanups in
	the patch, reordered functions and generally fixed error handling
	of the ABR parsers. Fixes bug #377016.


svn path=/trunk/; revision=22699
2007-06-04 10:43:31 +00:00
e5e3c8c65d check for errors even if the loader_func returned something so we display
2007-06-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdatafactory.c (gimp_data_factory_load_data): check
	for errors even if the loader_func returned something so we
	display errors from partially loaded files which contain multiple
	data items.


svn path=/trunk/; revision=22696
2007-06-03 21:46:04 +00:00