2006-08-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerview.c
(gimp_container_view_real_set_container)
(gimp_container_view_real_set_context)
(gimp_container_view_item_selected)
(gimp_container_view_thaw): support setting a context even if
the viewed container's children_type is *not* a property of
GimpContext. This removes a major restriction of container
views and allows to get rid of some hacks:
* app/widgets/gimpitemtreeview.[ch]: removed GimpContext member
and implement GimpContainerView::set_context() instead of
GimpDocked::set_context().
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimplayertreeview.c: use GimpContainerView's context
instead of GimpItemTreeView's and implement GimpContainerView's
set_context() instead of GimpDocked's.
* app/actions/actions.c (action_data_get_gimp)
(action_data_get_context): don't special-case GimpItemTreeView any
more, it's just like a normal GimpContainerView now.
* app/widgets/gimpcontrollerlist.c
(gimp_controller_list_constructor): set a context on the
GimpContainerView so its renderers have a context to use.
2006-08-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpthumbbox.[ch]: remember the context passed to
gimp_thumb_box_new() and use it instead of the user context when
creating thumbnails.
2006-08-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpgradienteditor.[ch] (struct GimpGradientEditor):
removed GimpContext member I added before deciding it needs to be
added to GimpDataEditor.
Use GimpDataEditor's context instead of the bogus one. Also use
the data editor's context instead of the user context wherever it
was used.
* app/widgets/gimppaletteeditor.c: use GimpDataEditor's context
instead of the user context here too.
2006-08-31 Michael Natterer <mitch@gimp.org>
* app/core/gimpgradient.[ch] (gimp_gradient_has_fg_bg_segments):
new funtion which returns TRUE if any of the gradient's segments
refer to FG of BG.
(gimp_gradient_segment_get_left_color_type)
(gimp_gradient_segment_set_left_color_type)
(gimp_gradient_segment_get_right_color_type)
(gimp_gradient_segment_set_right_color_type): new accessors for
the new GimpGradientColor stuff.
(gimp_gradient_segment_split_midpoint)
(gimp_gradient_segment_range_flip)
(gimp_gradient_segment_range_replicate): split, flip and replicate
the segments' color_types too.
* app/widgets/gimpviewrenderer.[ch]: added virtual functions
::set_context() and ::invalidate() and call them.
* app/widgets/gimpviewrenderergradient.[ch]: implement the virtual
functions. Connect to the context's "foreground-changed" and
"background-changed" signals if the gradient contains FG or BG
colors and invalidate the renderer whenever they change.
* app/core/gimp-gradients.c: removed signal connections which
invalidated the gradients on FG/BG changes of the user context.
2006-08-31 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite-mmx.c: moved declarations at the
beginning of the functions.
* app/tools/gimptransformtool.c (gimp_transform_tool_doit):
display a message if no paths are available. Could catch this
earlier, but this is the least intrusive change to fix bug #353495.
2006-08-29 Michael Natterer <mitch@gimp.org>
Changed GimpViewable preview rendering to have a context to get
FG/BG/whatever from. Use the context to enable dynamic FG/BG
colors in gradients. Fixes bug #127676 and bug #352214. Addresses
bug #128367 (doesn't fix it because there's no loading/saving and
no GUI yet).
* app/core/core-enums.[ch]: added enum GimpGradientColor to enable
specifying gradient colors in terms of foreground and background.
* app/core/gimpgradient.[ch]: added color_type members to the
GimpGradientSegment struct and honor them in
gimp_gradient_get_color_at(). Added GimpContext parameters to all
functions which finally call get_color_at().
* app/core/gimp-gradients.c: use the new method to implement the
builtin gradients.
* app/core/gimpviewable.[ch]: added GimpContext parameters to all
get_preview() and get_pixbuf() functions.
* app/core/gimpbrush.c
* app/core/gimpbuffer.c
* app/core/gimpdrawable-preview.[ch]
* app/core/gimpgradient.c
* app/core/gimpimage-preview.[ch]
* app/core/gimpimagefile.c
* app/core/gimppalette.c
* app/core/gimppattern.c
* app/core/gimpundo.[ch]
* app/text/gimpfont.c
* app/vectors/gimpvectors-preview.[ch]: changed ::get_preview()
and ::get_pixbuf() implementations accordingly.
* app/core/gimpdrawable-blend.c
* app/core/gimppalette-import.[ch]
* app/dialogs/dialogs-constructors.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/resize-dialog.c
* app/display/gimpdisplayshell-layer-select.c
* app/display/gimpdisplayshell.c
* app/display/gimpnavigationeditor.c
* app/paint/gimppaintoptions.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimptexttool.c
* app/actions/gradient-editor-commands.c
* app/widgets/gimpaction.c
* app/widgets/gimpbrusheditor.[ch]
* app/widgets/gimpbufferview.c
* app/widgets/gimpcellrendererviewable.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpclipboard.c
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainerbox.c
* app/widgets/gimpcontainercombobox.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainerentry.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.[ch]
* app/widgets/gimpdataeditor.[ch]
* app/widgets/gimpdevicestatus.c
* app/widgets/gimpdnd.[ch]
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimpgradientselect.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimppaletteeditor.[ch]
* app/widgets/gimppropwidgets.[ch]
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpthumbbox.[ch]
* app/widgets/gimptoolbox-image-area.c
* app/widgets/gimptoolbox-indicator-area.c
* app/widgets/gimptooloptionseditor.c
* app/widgets/gimpundoeditor.c
* app/widgets/gimpvectorstreeview.c
* app/widgets/gimpview-popup.[ch]
* app/widgets/gimpview.[ch]
* app/widgets/gimpviewablebutton.c
* app/widgets/gimpviewabledialog.c
* app/widgets/gimpviewrenderer.[ch]
* app/widgets/gimpviewrenderer-frame.c
* app/widgets/gimpviewrendererbrush.c
* app/widgets/gimpviewrendererbuffer.c
* app/widgets/gimpviewrendererdrawable.c
* app/widgets/gimpviewrenderergradient.c
* app/widgets/gimpviewrendererimage.c
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/gradient.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/image.pdb: added tons of GimpContext members
and parameters, implement GimpDocked::set_context() in many
widgets. Pass these locally remembered contexts to GimpViewable
functions. Did some minor cleanups on the way. There are still
some minor FIXMEs around where the code uses a NULL context (which
is allowed by the APIs)
* app/pdb/drawable_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/gradients_cmds.c
* app/pdb/image_cmds.c: regenerated.
2006-08-29 Sven Neumann <sven@gimp.org>
* libgimpbase/Makefile.am
* libgimpbase/gimpbase.h
* libgimpbase/gimprectangle.[ch]: added new files that hold
gimp_rectangle_intersect(), factored out of the core.
* libgimpbase/gimpbase.def: updated.
* app/core/gimp-edit.c
* app/core/gimp-utils.c
* app/core/gimp-utils.h
* app/core/gimpchannel-combine.c
* app/core/gimpdrawable-foreground-extract.c
* app/core/gimpdrawable-transform.c
* app/core/gimpdrawable.c
* app/core/gimpimage-preview.c
* app/core/gimplayer.c
* app/core/gimpscanconvert.c
* app/display/gimpdisplayshell-draw.c: changed includes accordingly.
* libgimp/gimpdrawablepreview.c: don't duplicate
gimp_rectangle_intersect() here, use the function in libgimpbase.
* app/base/siox.c: use gimp_rectangle_intersect() to reduce the
working area to the region of interest. Fixes bug #340422.
2006-08-29 Sven Neumann <sven@gimp.org>
* plug-ins/common/postscript.c (dither_grey): code cleanup and fix
for bug #353381 (crash when Preview option is selected).
2006-08-29 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-duplicate.c (gimp_image_duplicate)
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_image): a
somewhat hackish implementation of what's suggested in bug #353246.
Let the save dialog default to the folder of the duplicated image.
2006-08-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerview.[ch]: made set_container() a
virtual function of the GimpContainerView interface.
2006-08-28 Sven Neumann <sven@gimp.org>
* app/tools/gimptextoptions.[ch]
* app/tools/gimptexttool.c
* app/widgets/gimptexteditor.[ch]: make the text editor transient
to the display shell.
2006-08-27 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcolortool.c (gimp_color_tool_real_picked): applied
modified patch from David Gowers which selects a matching color
from the palette editor's active palette. I'm not sure if this
behavior is desirable but we'll never find out if we dont't try.
Fixes bug #343358.
* app/tools/gimpselectiontool.c (gimp_selection_tool_modifier_key):
When Alt is down, don't allow other modifiers to change the
operation shown in the options. Fixes bug #349338.
2006-08-25 Sven Neumann <sven@gimp.org>
* configure.in: print the value of $datarootdir in the summary.
* app/base/tile-swap.c (tile_swap_in_attempt): fixed error
handling in this unused function.
2006-08-25 Michael Natterer <mitch@gimp.org>
* app/actions/file-actions.c (file_actions_setup)
(file_actions_last_opened_update): if there are too few images in
the document history, use the action's name as its label for the
empty slots, to keep the translation of "" from showing up in the
shortcut editor.
2006-08-24 Sven Neumann <sven@gimp.org>
* desktop/gimp.desktop.in.in (Categories): removed "Application"
which is not any longer in the Desktop Menu spec.
2006-08-24 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-preview.c
(gimp_display_shell_draw_tri): just return if gdk_drawable_get_size()
returns 0 for width or height (bug #340056).
2006-08-24 Sven Neumann <sven@gimp.org>
* INSTALL: mention that multi-processor support is on by
default.
* app/base/tile-cache.c: fixed compilation if multi-processor
support is disabled (bug #352609).
* app/tools/tools-enums.h
* app/tools/gimptransformtool.[ch]: add support for handles at
midpoints of edges.
* app/tools/gimpscaletool.c: use midpoint handles for scaling
with fixed width or height. Fixes bug #344955.