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 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 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 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 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 Sven Neumann <sven@gimp.org>
* app/dialogs/Makefile.am
* menus/Makefile.am: when calling xsltproc, use the stylesheet from
$(srcdir). From the patch attached to bug #444960.
svn path=/trunk/; revision=22733
2007-06-07 Sven Neumann <sven@gimp.org>
* app/dialogs/Makefile.am: bail out with an error if xsltproc is
missing and authors.h needs to be regenerated.
* libgimpwidgets/Makefile.am: let gimpwidgets-private.lo, not the
C file, depend on gimp-wilber-pixbufs.h. From the patch attached to
bug #444960.
svn path=/trunk/; revision=22732
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 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 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 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-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-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-02 Michael Natterer <mitch@gimp.org>
* app/gui/gui.c (gui_exit_callback): disconnect the
gui_display_remove() and gui_display_changed() callbacks before
deleting the displays, not after (it makes no sense to update the
GUI while exiting).
svn path=/trunk/; revision=22694
2007-05-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox-dnd.c (gimp_toolbox_drop_drawable): set
"linked" and "lock-alpha" to FALSE too.
svn path=/trunk/; revision=22649
2007-05-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox-dnd.c (gimp_toolbox_drop_drawable): also
set the mode of the new layer to NORMAL and its opacity to OPAQUE.
svn path=/trunk/; revision=22647
2007-05-29 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-dnd.c
* app/widgets/gimptoolbox-dnd.c: make drop-duplicated drawables
visible before adding them to the image. Spotted by Jimmac.
svn path=/trunk/; revision=22645
2007-05-28 Michael Natterer <mitch@gimp.org>
Don't leave the user without progress bar just because the
display's statusbar is invisible:
* app/display/gimpstatusbar.[ch]: if the statusbar is invisible
when a progress wants to be shown, temporarily show it, recording
the fact in the new boolean "progress_shown" member. Added new API
gimp_statusbar_get/set_visible() which is aware of the new
temporary visibility state.
* app/display/gimpdisplayshell-appearance.c
(gimp_display_shell_set_show_statusbar)
* app/display/gimpdisplayshell-progress.c
(gimp_display_shell_progress_message): use the new API instead of
showing/hiding the widget directly.
svn path=/trunk/; revision=22642
2007-05-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfgbgview.[ch]: derive from GtkWidget instead of
GtkDrawingArea so we save a GdkWindow and render on the correct
background color also for inactive notebook tabs.
svn path=/trunk/; revision=22641
2007-05-28 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer-floating-sel.c (floating_sel_attach): set
"Lock Alpha" to TRUE again on floating selections.
(floating_sel_to_layer): instead, set it to FALSE when turning
it into a new layer. Fixes bug #418215 and keeps #161042 closed.
svn path=/trunk/; revision=22638
2007-05-27 Michael Natterer <mitch@gimp.org>
* app/core/gimp-utils.[ch] (gimp_container_get_neighbor_of_active):
new utility function which returns the neighbor of a container's
active item.
* app/widgets/gimpcontainerview-utils.[ch]
(gimp_container_view_remove_active): remove a container view's
active item, using above function to select its neighbor.
* app/actions/data-commands.c
* app/actions/buffers-commands.c
* app/actions/documents-commands.c
* app/actions/templates-commands.c: use above functions to select
reasonable items when deleting from a list (instead of always
jumping to the first item).
svn path=/trunk/; revision=22632
2007-05-26 Michael Natterer <mitch@gimp.org>
* app/config/gimpdisplayconfig.c (gimp_display_config_class_init):
also initialize alpha of xor-color's default value to stop
valgrind from complaining about uninitialized memory.
svn path=/trunk/; revision=22624
2007-05-26 Sven Neumann <sven@gimp.org>
* app/dialogs/layer-options-dialog.c: do not only declare
layer_options_dialog_free(), but do actually use it.
svn path=/trunk/; revision=22623