2006-07-19 Sven Neumann <sven@gimp.org>
Make message dialogs transient for the progress window.
Addresses
bug #347214.
* app/core/gimp-gui.[ch]: added a progress parameter to
gimp_message(). Let gimp_message() deal with optionally
delegating the message to gimp_progress_message().
* app/errors.c: changed accordingly.
* app/core/gimpprogress.[ch] (gimp_progress_message): return a
boolean indicating whether the message was handled.
* app/gui/Makefile.am
* app/gui/gui-message.[ch]
* app/gui/gui-vtable.c: moved message handling to a new file.
Only
use the global error dialog for messages without a progress.
Otherwise attach an error dialog to the progress and try to make
it transient to the progress window.
* tools/pdbgen/pdb/message.pdb:
* app/plug-in/gimpplugin-progress.[ch]: don't delegate messages
to
the progress interface, this is handled by gimp_message() now.
* app/pdb/message_cmds.c: regenerated.
* app/plug-in/gimpplugin.c
* app/actions/documents-commands.c: formatting.
2006-07-11 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-merge.[ch]: made gimp_image_merge_layers()
a
static function, it isn't used outside this file.
2006-07-07 Sven Neumann <sven@gimp.org>
Use Ctrl-P as the default keyboard shortcut for Print (bug #302870):
* app/actions/dialogs-actions.c: removed Ctrl-P shortcut from
Palettes dialog.
* etc/Makefile.am
* etc/menurc: added a default menurc file that binds Ctrl-P to
file-print-gtk.
* app/core/gimp-user-install.c: install the default menurc.
2006-06-28 Sven Neumann <sven@gimp.org>
* app/core/gimpstrokedesc.[ch]: removed broken implementation of
gimp_stroke_desc_duplicate() and reimplement it by overriding
the
duplicate() method of the GimpConfig interface.
2006-06-27 Sven Neumann <sven@gimp.org>
* app/core/gimpunit.c: applied patch from Zbigniew Chyla that
adds
translation context to some problematic strings (bug #345982).
2006-06-27 Sven Neumann <sven@gimp.org>
Based on a patch from Zbigniew Chyla:
* app/core/gimpunit.c (_gimp_unit_get_singular,
_gimp_unit_get_plural):
don't call gettext() on strings returned by
_gimp_unit_get_user_unit().
2006-06-16 Sven Neumann <sven@gimp.org>
* app/core/gimplist.c (gimp_list_new, gimp_list_new_weak): for
debugging purposes, set the children type as the name of the list.
2006-06-15 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-convert.c (gimp_image_convert): remove
duplicate colors for all palette types (except for MAKE_PALETTE
since there shouldn't be any unused colors then). That's what
the PDB documentation claims the function would be doing.
* app/dialogs/convert-dialog.c: allow use of the "Remove unused
colors" toggle for all but the optimized palette.
Finally implemented the suggestion in bug #144854, of
"strong" undo/redo commands that continue undoing so long
as they only encounter visibility changes.
* app/actions/edit-actions.c
* app/actions/edit-commands.c
* app/actions/edit-commands.h: added "strong undo"
and "strong redo" commands/actions.
* app/core/gimpimage-undo.[ch]: added functions
gimp_image_strong_undo() and gimp_image_strong_redo().
* app/core/gimpundo.[ch]: added utility function
gimp_undo_is_weak().
* app/widgets/gimphelp-ids.h:added id's.
* menus/image-menu.xml.in: added to edit menu,
bound to C-S-z and C-S-y.
This will no doubt need tweaking, but I will consider it
to fix bug #144854.
* app/core/core-enums.[ch]: add GimpAlignReferenceType enum
* app/core/gimpimage-arrange.c: support using a channel as
reference for alignment.
* app/tools/gimpaligntool.[ch]: support aligning with a list item,
image, selection, active layer, active channel, or active path.
Now similar in form and function to Inkscape Align/Distribute
dialog.
* app/core/core-enums.[ch]: add GIMP_ARRANGE_FOO values
to GimpAlignmentType, and change CENTER to HCENTER,
MIDDLE to VCENTER.
* app/core/gimpimage-arrange.c: extensively rewritten
to handle arrangement of objects, and to do the
required sorting of lists by offset.
* app/tools/gimpaligntool.[ch]: added ability to arrange
groups of layers etc with constant spacing. Also try
to change things so that the tool aligns with the
object that users expect intuitively.
* app/core/gimpimage-arrange.[ch]: added, utility function for
aligning and arranging things in an image.
* app/core/gimpitem-align.[ch}: removed, no longer needed.
* app/core/gimpimage-item-list.[ch] (gimp_image_item_list_align):
removed this function, no longer used.
* app/core/Makefile.am: changes described above.
* app/core/gimpguide.c: remove bit of cruft left accidentally.
* app/tools/gimpalignoptions.[ch]: remove "alignment type"
option, not needed at this point.
* app/tools/gimpaligntool.[ch]: numerous changes, most
importantly ability to align guides, and use them for
alignment. More work coming on this tool.
* app/core/gimpguide.[ch]: add "removed" signal and associated
paraphernalia.
* app/core/gimpimage-guides.c (gimp_image_remove_guide): call
gimp_guide_removed() to cause signal emission.
2006-06-07 Sven Neumann <sven@gimp.org>
* app/core/gimpguide.c: removed unused includes and property
blurbs;
fixed registration of the "id" property, it is not a GIMP_CONFIG
property.
2006-06-07 Sven Neumann <sven@gimp.org>
* app/core/gimpguide.[ch]: added a setter for "orientation".
* app/core/gimpimage-resize.c (gimp_image_resize_with_layers):
removed unused variable; use for() loops to iterate over guides
and sample points.
2006-06-07 Sven Neumann <sven@gimp.org>
* app/core/gimpguide.[ch]: derive from GObject, we don't need any
GimpObject functionality here. Declare "orientation" and "id"
properties CONSTRUCT_ONLY, added a gimp_guide_new() function and
emit notify on position changes.
* app/core/gimpimage-guides.c: use gimp_guide_new() to instantiate
guides.
* app/core/gimpimage.c (gimp_image_get_memsize): formatting.
2006-06-07 Michael Natterer <mitch@gimp.org>
* app/actions/context-commands.c: cosmetic cleanup.
* app/core/core-types.h: move the GimpGuide typedef to the
"misc objects" section.
* app/tools/gimpforegroundselecttool.c: cosmetic cleanup.
* app/tools/gimpmeasuretool.c (gimp_measure_tool_cursor_update):
use the new corner and side cursors instead of using X cursors.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): renamed local variable
"update_cursor" to "update_sw_cursor", it has confused me too
often...
* app/core/gimpguide.c
* app/core/gimpguide.h: new files, implementing GuideGimp as a GimpObject
* app/core/Makefile.am: add new files as sources
* app/core/gimpimage-guides.h
* app/core/gimpimage-guides.c: use the new object instead of defining
GimpGuide here as a struct.
* app/core/gimpimage-crop.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-flip.c
* app/core/gimpimage-resize.c
* app/core/gimpimage-rotate.c
* app/core/gimpimage-scale.c
* app/core/gimpimage-snap.c
* app/core/gimpimage-undo-push.c
* app/core/gimpimage.c
* app/display/gimpdisplayshell-draw.c
* app/display/gimpdisplayshell.c
* app/pdb/guides_cmds.c
* app/tools/gimpmovetool.c
* app/xcf/xcf-save.c
* tools/pdbgen/pdb/guides.pdb: include "core/gimpguide.h", and use
g_object_ref/unref instead of gimp_image_guide_ref/unref.
2006-06-05 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs.[ch]
* app/core/gimpchannel.[ch]
* app/core/gimpselection.c:
* app/actions/select-commands.c: further cleaned up the patch
from
bug #88633.
2006-06-05 Michael Natterer <mitch@gimp.org>
Applied slightly modified patch from saulgoode which allows to
border a selection without feathering. Fixes bug #88633.
* app/paint-funcs/paint-funcs.[ch] (border_region): added boolean
"feather_border" parameter.
* app/core/gimpchannel.[ch]: GimpChannel::border(): ditto.
* app/core/gimpselection.c: changed accordingly.
* app/actions/select-commands.c: added a toggle to the border
dialog and pass it to gimp_channel_border().
* tools/pdbgen/pdb/selection.pdb: pass TRUE here.
* app/pdb/selection_cmds.c: regenerated.
2006-06-05 Sven Neumann <sven@gimp.org>
* app/core/gimp-user-install.[ch]
* app/app_procs.c: always migrate old user settings during user
installation.
* app/dialogs/user-install-dialog.[ch]: don't ask questions and
only show the dialog in case of an error.
2006-06-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch]: renamed
gimp_image_coords_in_active_drawable() to
gimp_image_coords_in_active_pickable() and added boolean
"sample_merged" and "selected_only" parameters. Use floor()
instead of ROUND(), we want to round to the actual pixel, not to
the nearest pixel boundary.
* app/tools/gimpbucketfilltool.c
* app/tools/gimpclonetool.c
* app/tools/gimpcolortool.c
* app/tools/gimpfliptool.c
* app/tools/gimptransformtool.c: changed accordingly. Removed
quite some duplicated code which checked sample_merged and the
mask value at the cursor location.
* app/tools/gimpbycolorselecttool.c: use the hand tool cursor,
there's also a hand in the toolbox icon. Fixed cursor_update()
function to set the bad modifier when there is no pickable pixel
at the cursor loction.
* app/tools/gimpfuzzyselecttool.c: added cursor_update()
implementation which does the same as by_color_select's one.
* app/tools/gimpselectiontool.c
(gimp_selection_tool_cursor_update): don't override the bad
modifier which was set by a subclass' cursor_update().
2006-05-30 Michael Natterer <mitch@gimp.org>
Honor active components when pasting. Fixes bug #150845:
* app/core/gimplayer-floating-sel.c (floating_sel_composite):
don't temporarily set all image components to active while
compositing.
* app/core/gimpimage.c (gimp_image_set_component_active):
relax()/rigor() the floating selection around setting the "active"
flag. Also make sure the projection is updated correctly.
2006-05-29 Sven Neumann <sven@gimp.org>
* app/core/gimpbrushgenerated.c (gimp_brush_generated_load): don't
choke on brush files with empty names (bug #343140).
(gimp_brush_generated_save): warn about brushes with empty names.
2006-05-28 Michael Natterer <mitch@gimp.org>
* app/core/gimppalette-import.[ch]: added support for extracting
colors from the selected pixels only.
* app/dialogs/palette-import-dialog.c: added "Sample merged" and
"Selected Pixels only" toggles. Fixes bug #316212. Cleaned up the
code quite a bit.
2006-05-24 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.c (gimp_context_tool_list_thaw): the
default tool is the paintbrush, not rect select.
* app/tools/gimp-tools.c (gimp_tools_register): attach the default
visibility state to the tool_info.
* app/actions/tools-commands.c (tools_reset_cmd_callback): use the
attached boolean instead of reimplementing the default visibility
logic.
2006-05-23 Michael Natterer <mitch@gimp.org>
Fix for bug #333156:
* app/paint-funcs/paint-funcs-types.h (enum CombinationMode):
added value COMBINE_INTEN_A_INDEXED.
* app/paint-funcs/paint-funcs.c
(combine_inten_a_and_indexed_pixels): new function which
implements the new CombinationMode.
(combine_sub_region)
(combine_regions): added the needed bits to call the new function.
* app/core/gimpprojection-construct.c (project_indexed): added
mask PixelRegion parameter since that's supported by paint-funcs
now, replaced g_warning() about unimplemented combine type
by call to combine_regions(..., COMBINE_INTEN_A_INDEXED).
(gimp_projection_construct_layers): pass the mask to
project_indexed() and removed comments about not supporting it.
2006-05-23 Karine Delvare <edhel@gimp.org>
* app/core/gimpcontext.c
* app/tools/gimp-tools.c
* app/tools/gimpnewrectselecttool.c
* app/tools/gimprectselecttool.c
* app/widgets/gimptoolbox.c
* menus/image-menu.xml.in: replace old rect select by new in the
toolbox.
2006-05-23 Sven Neumann <sven@gimp.org>
It makes more sense to have GimpData::dirty indicate a name change
than to invalidate the previews whenever the name changes.
* app/core/gimpdata.c: call gimp_object_name_changed() from
gimp_data_real_dirty() instead of implementing
GimpObject::name-changed and calling gimp_data_dirty() from there.
* app/core/gimpbrushclipboard.c
* app/core/gimppalette.c
* app/core/gimppatternclipboard.c: call gimp_data_dirty() in place
of gimp_object_name_changed().
* app/core/gimpbrushgenerated.c (gimp_brush_generated_dirty):
chain up unconditionally.
2006-05-21 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/gimpimage-item-list.[ch]: new files with functions to
translate, flip, rotate, transform and align a list of items
inside an undo group.
(gimp_image_item_list_get_list): returns a list of items matching
any combination of GimpItemTypeMask and GimpItemSet.
* app/core/gimpitem.[ch]: added new function gimp_item_is_in_set().
* app/core/gimpitem-linked.[ch]: use the new functions. Removed
gimp_item_linked_get_list().
* app/tools/gimpeditselectiontool.c: use
gimp_image_item_list_get_list() instead of
gimp_item_linked_get_list().
* app/core/gimpimage-resize.c
* app/tools/gimpaligntool.c: use the new functions instead of
creating and iterating the lists manually.
2006-05-18 Sven Neumann <sven@gimp.org>
* app/core/gimpparamspecs-desc.c: use the enum's name instead of
the nick, strip the "GIMP_" prefix and canonicalize it.
2006-05-18 Sven Neumann <sven@gimp.org>
* tools/pdbgen/app.pl
* tools/pdbgen/lib.pl: removed code that used to fiddles with
the
argument descriptions.
* tools/pdbgen/pdb/*.pdb: removed %%desc%% placeholder, added
some
missing argument descriptions.
* app/pdb/*_cmds.c
* libgimp/gimpdrawabletransform_pdb.c
* libgimp/gimpfloatingsel_pdb.c
* libgimp/gimpgradient_pdb.c
* libgimp/gimppainttools_pdb.c: regenerated.
* app/core/Makefile.am
* app/core/gimpparamspecs-desc.[ch] (gimp_param_spec_get_desc):
new function that creates a parameter description for the PDB.
* app/pdb/gimppdb-query.c
* app/pdb/procedural_db_cmds.c: use the new function to create
the
descriptions on the fly.
2006-05-17 Michael Natterer <mitch@gimp.org>
* app/core/gimpbrushclipboard.c
(gimp_brush_clipboard_buffer_changed)
* app/core/gimppatternclipboard.c
(gimp_pattern_clipboard_buffer_changed): limit the size of
clipboard brushes and patterns to 512x512 pixels to prevent OOM
conditions when copying from huge drawables.
2006-05-17 Michael Natterer <mitch@gimp.org>
* app/core/gimpbrushclipboard.c
(gimp_brush_clipboard_buffer_changed)
* app/core/gimppatternclipboard.c
(gimp_pattern_clipboard_buffer_changed): remove calls to
gimp_data_dirty() because the emission of "name-changed" takes
care of that.
2006-05-17 Sven Neumann <sven@gimp.org>
* app/core/gimpbrushclipboard.c
(gimp_brush_clipboard_buffer_changed)
* app/core/gimppatternclipboard.c
(gimp_pattern_clipboard_buffer_changed): emit "name-changed" so that
the description is being updated.
2006-05-17 Michael Natterer <mitch@gimp.org>
* app/core/gimp.c (gimp_real_initialize): add a clipboard pattern
to the pattern factory (forgot to commit this file).
2006-05-16 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimppatternclipboard.[ch]: new GimpPattern subclass
that auto-updates its contents from gimp->global_buffer.
* app/core/gimp.c (gimp_real_initialize): add a clipboard pattern
to the pattern factory.
* app/widgets/gimpaction.c (gimp_action_set_proxy): replace the
GimpView by a new one if the viewable type changes, instead of
running into a warning (didn't happen before because this is only
used for imagefiles and patterns, which didn't have subclasses).
2006-05-16 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.[ch]: implement copy_color() and
copy_color_pixels() which copy only the color bytes into a dest
that has one byte less than src. Renamed component_pixels() to
copy_component_pixels().
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpbrushclipboard.[ch]: new GimpBrush subclass that
auto-updates its contents from gimp->global_buffer.
* app/core/gimp.c (gimp_real_initialize): add a clipboard brush to
the brush factory. Fixes bug #111082.
2006-05-16 Sven Neumann <sven@gimp.org>
* app/app_procs.c (app_run): indentation.
* app/core/gimp.c (gimp_real_initialize)
* app/plug-in/gimppluginmanager.c (gimp_plug_in_manager_restore):
moved a call to status_callback() to the plug-in manager.
2006-05-14 Michael Natterer <mitch@gimp.org>
Allow to initialize a new layer mask with any of the image's
channels. Fixes bug #310207.
* libgimpbase/gimpbaseenums.h (enum GimpAddMaskType): added
value GIMP_ADD_CHANNEL_MASK.
* libgimpbase/gimpbaseenums.c
* tools/pdbgen/enums.pl: regenerated.
* app/core/gimplayer.[ch] (gimp_layer_create_mask): added
GimpChannel* parameter. Hacked the GIMP_ADD_SELECTION_MASK code a
bit so it can handle GIMP_ADD_CHANNEL_MASK too. Cleaned up the
function a bit.
* app/dialogs/layer-add-mask-dialog.[ch]: added a menu of the
image's channels.
* app/actions/layers-commands.c (layers_add_mask_response): pass
the channel selected in the menu to gimp_layer_create_mask().
* tools/pdbgen/pdb/layer.pdb (layer_create_mask): use the image's
active channel when GIMP_ADD_CHANNEL_MASK is passed. Fail if there
is no active channel.
* app/pdb/layer_cmds.c: regenerated.
2006-05-13 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.c (gimp_layer_transform): add an alpha
channel if the layer has none and interpolation is requested.
Works around bug #315048, the real fix would be to implement
interpolation on layers without alpha.
2006-05-13 Hans Breuer <hans@breuer.org>
* **/makefile.msc app/gimpcore.def : updated
* app/core/gimp-util.c : dont include "config/gimpbaseconfig.c", it
gives an redefinition error with msvc. Instead include
config/gimpbaseconfig.h and libgimpconfig/gimpconfig-path.h
* plug-ins/common/psd_save.c : fix c99isms (declarations only at the
start of a block)
2006-05-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.c (gimp_image_new)
* app/core/gimpitem.c (gimp_item_configure)
* app/display/gimpdisplay.c (gimp_display_new): make sure IDs wrap
correctly at G_MAXINT and skip IDs which are currently in use.
It makes no sense to treat gimp->image_table and gimp->images
differently, since they keep the same set of images. And it makes
no sense to treat gimp->displays and gimp->images differently.
Moved all container adding into the objects' constructors:
* app/core/gimp.c (gimp_create_image): don't add the new image
to gimp->images here...
* app/core/gimpimage.c (gimp_image_constructor): ...but here.
* app/core/gimp-gui.c (gimp_create_display): don't add the new
display to gimp->displays here...
* app/display/gimpdisplay.c (gimp_display_new): ...but here.
2006-05-06 Michael Natterer <mitch@gimp.org>
* app/core/gimpparamspecs.[ch]: added "gboolean none_ok" members
to GimpParamSpecImageID, GimpParamSpecItemID and
GimpParamSpecDisplayID. If none_ok is set, allow '0' and '-1' as
valid IDs. Added "none_ok" parameter to all ID param spec
constructors.
* app/pdb/gimp-pdb-compat.c: set none_ok to TRUE in all compat
param specs, so only IDs that are really random garbage don't pass
validation. Fixes validation errors with 0 and -1 IDs.
* tools/pdbgen/app.pl: set none_ok to FALSE by default. Added
support for $arg->{none_ok} to control it.
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/progress.pdb
* tools/pdbgen/pdb/text_tool.pdb: use none_ok instead of
no_success (which disables validation entirely).
* app/pdb/[many]_cmds.c: regenerated.
2006-05-05 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginmanager.[ch]: added signals
"plug-in-opened" and "plug-in-closed". Added functions
gimp_plug_in_manager_add_open_plug_in() and _remove_open_plugin()
which maintain the list of open plug-ins and emit the signals.
* app/plug-in/gimpplugin.c (gimp_plug_in_open)
(gimp_plug_in_close): don't touch manager->open_plug_ins and don't
ref/unref the plug-in. Call above new functions instead. Don't
call gimp_pdb_dialogs_check().
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: removed gimp_pdb_dialogs_check().
* app/widgets/gimppdbdialog.[ch]: removed
gimp_pdb_dialogs_check_callback() and connect to the
plug-in-manager's "plug-in-closed" signal instead.
2006-05-04 Michael Natterer <mitch@gimp.org>
* app/core/gimpparamspecs.c (gimp_string_array_new)
(gimp_param_string_array_validate): restore the strict checks
on string arrays.
* app/plug-in/gimppluginmanager-help-domain.c
(gimp_plug_in_manager_get_help_domains): return NULL string arrays
when there are 0 help domains to fix the inconsistency at its root.
2006-05-03 Sven Neumann <sven@gimp.org>
* app/core/gimpparamspecs.c (gimp_string_array_new,
gimp_param_string_array_validate): relaxed the checks so that
GimpStringArray deals correctly with (length == 0 && data != NULL).
Fixes bug #340365.
2006-04-29 Sven Neumann <sven@gimp.org>
* app/core/Makefile.am (AM_CPP_FLAGS): define GIMP_APP_VERSION.
* app/core/gimp-user-install.c: use GIMP_APP_VERSION instead of
hardcoding it.
2006-04-29 Sven Neumann <sven@gimp.org>
* app/core/Makefile.am
* app/core/gimp-user-install.[ch]: new files based on code that
used to live in user-install-dialog.c.
* app/dialogs/user-install-dialog.[ch]: only the dialog code
remained here.
* app/app_procs.c: use the new user-install API. Perform a
non-interactive user installation when running without a display.
2006-04-27 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-locale-domain.[ch] (plug_in_locale_domains):
new function which returns string arrays of all registered locale
domains and paths.
(plug_in_standard_locale_domain): removed this function. The
standard plug-in domain is included in the domains returned by
plug_in_locale_domains().
* app/plug-in/plug-ins.c (plug_ins_init): simply bind the text
domains here instead of calling gimp_menus_init(). Destroy
gimp->plug_in_defs much earlier.
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: removed gimp_menus_init().
* app/menus/plug-in-menus.[ch]: removed plug_in_menus_init(),
binding text domains is completely done in the core now.
2006-04-27 Michael Natterer <mitch@gimp.org>
Added some signals inspired by Rockwalrus' libpdb:
* app/pdb/gimppdb.[ch]: added signals "register-procedure" and
"unregister-procedure".
* app/pdb/gimppluginprocedure.[ch]: added signal "menu-path-added".
* app/actions/plug-in-actions.[ch]
* app/menus/plug-in-menus.[ch]: connect to the new signals and
create/destroy plug-in actions and menus accordingly. Made all
needed functions private and merged some of them with the newly
added signal callbacks.
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: removed gimp_menus_create_item() and
gimp_menus_delete_item() and all related stuff.
* app/plug-in/plug-in.c
* app/plug-in/plug-ins.c: removed calls to the removed functions.
* app/plug-in/plug-ins.c (plug_ins_init): add the plug-in
procedures to the PDB *after* calling gimp_menus_init() so their
locale domains are properly initialized when the menus are
created.
2006-04-27 Sven Neumann <sven@gimp.org>
* libgimpcolor/gimprgb.[ch]: added "has_alpha" to GimpParamSpecRGB.
Made the GimpParamSpecRGB struct public. When validating a color,
only look at the alpha channel if has_alpha is set.
* libgimpconfig/gimpconfig-params.h: added "has_alpha" to
GIMP_CONFIG_INSTALL_PROP_RGB macro definition.
* libgimpconfig/gimpconfig-serialize.c: serialize color values as
"(rgb r g b)" if the param-spec indicates that the alpha channel
is meaningless.
* app/config/gimpconfig-dump.c: take "has_alpha" into account when
documenting color properties.
* app/core/gimpcontext.c
* app/core/gimpgrid.c
* app/display/gimpdisplayoptions.c
* app/text/gimptext.c
* app/widgets/gimpaction.c
* app/widgets/gimpcolorbar.c
* libgimpwidgets/gimpcolorarea.c
* libgimpwidgets/gimpcolorbutton.c: specify whether color properties
have an alpha channel.
* tools/pdbgen/app.pl: handle "has_alpha" for color paramaters.
* tools/pdbgen/pdb/channel.pdb
* tools/pdbgen/pdb/context.pdb
* tools/pdbgen/pdb/grid.pdb
* tools/pdbgen/pdb/image.pdb: set the "has_alpha" flag where
appropriate.
* app/pdb/gimp-pdb-compat.c (gimp_pdb_compat_param_spec): set
"has_alpha" to TRUE for GIMP_PDB_COLOR.
* app/pdb/channel_cmds.c
* app/pdb/context_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/grid_cmds.c
* app/pdb/image_cmds.c
* app/pdb/palette_cmds.c
* app/pdb/palettes_cmds.c
* app/pdb/selection_tools_cmds.c: regenerated.
* app/config/gimpdisplayconfig.c (gimp_display_config_class_init):
removed unused code.
2006-04-26 Michael Natterer <mitch@gimp.org>
* app/pdb/Makefile.am
* app/pdb/pdb-types.h
* app/pdb/gimppdb.[ch]: new object GimpPDB which keeps all
procedures and functions to register and run them. Renamed all
functions and did some cleanups.
* app/pdb/gimp-pdb.[ch]
* app/core/gimp.[ch]: removed the same stuff here.
* app/pdb/gimp-pdb-query.[ch]: removed these files...
* app/pdb/gimppdb-query.[ch]: ...added here as members of GimpPDB.
* app/pdb/gimp-pdb-compat.h: fix include guard.
* app/batch.c
* app/actions/vectors-commands.c
* app/dialogs/about-dialog.c
* app/file/file-open.c
* app/file/file-save.c
* app/plug-in/plug-in-message.c
* app/plug-in/plug-ins.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimphelp.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/font_select.pdb
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/palette_select.pdb
* tools/pdbgen/pdb/pattern_select.pdb
* tools/pdbgen/pdb/procedural_db.pdb: changed includes and function
calls accordingly.
* tools/pdbgen/app.pl: pass around GimpPDB instead of Gimp
pointers to register the internal procedures with. Changed some
newlines in the generated code.
* app/pdb/*_cmds.c
* app/pdb/internal_procs.[ch]: regenerated.
* app/core/gimppdbprogress.[ch]
* app/widgets/gimppdbdialog.[ch]: added "pdb" CONSTRUCT_ONLY
properties.
* app/plug-in/plug-in-progress.c
* app/gui/gui-vtable.c: pass gimp->pdb when creating them.
* app/widgets/gimpbrushselect.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c: use the new local pdb pointers
instead of some foo->bar->gimp->pdb overkill.
2006-04-15 Michael Natterer <mitch@gimp.org>
* app/core/gimp-utils.[ch]: added
gimp_g_type_instance_get_memsize() and
gimp_g_param_spec_get_memsize().
Changed gimp_g_object_get_memsize() to use
gimp_g_type_instance_get_memsize().
Handle more boxed types in gimp_g_value_get_memsize().
* app/core/gimp.c (gimp_get_memsize): add the memsize of some
members that are new or were forgotten.
* app/pdb/gimpprocedure.c
* app/pdb/gimppluginprocedure.c: implement GimpObject::get_memsize().
2006-04-07 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-run.[ch]: made plug_in_run_temp() public and
changed its parameters to match the ones of plug_in_run().
* app/pdb/gimpprocedure.[ch]: added GimpProcedure::execute_async()
which takes an additional display_ID parameter and returns nothing.
* app/pdb/gimppluginprocedure.c
* app/pdb/gimptemporaryprocedure.c: implement it, using
plug_in_run() and plug_in_run_temp().
* app/core/gimp-utils.[ch]: added gimp_value_array_truncate()
which takes a GValueArray and the number of values to truncate the
array to.
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* app/pdb/gimp-pdb.c
* app/plug-in/plug-ins.c
* app/widgets/gimphelp.c: use gimp_procedure_execute_async()
instead of plug_in_run() and don't #include "plug-in-run.h".
Truncate GValueArray passed to plug-ins again, and don't just pass
some default values to the noninteractive args.
Unrelated:
* tools/pdbgen/pdb/plug_in.pdb: don't call
gimp_menus_create_branch() here.
* app/plug-in/plug-ins.c (plug_ins_menu_branch_add): call it here
instead.
* app/pdb/plug_in_cmds.c: regenerated.
2006-04-07 Michael Natterer <mitch@gimp.org>
* app/core/gimpobject.h: added "guint disconnected : 1", we
have enough space for flags now.
* app/core/gimpobject.c (gimp_object_dispose): use the new
object->disconnected flag instead of attaching that boolean to the
object.
2006-04-07 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable.[ch]: renamed gimp_drawable_cmap() to
gimp_drawable_get_colormap() and let it return a const array.
* app/core/gimpdrawable-convert.c
* app/core/gimpimage-convert.c
* app/core/gimpselection.c
* app/display/gimpdisplayshell-preview.c: changed accordingly.
2006-04-07 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable.[ch]: renamed gimp_drawable_data() to
gimp_drawable_get_tiles().
[lots of files]: changed accordingly.
2006-04-07 Michael Natterer <mitch@gimp.org>
* app/pdb/gimp-pdb.c (gimp_pdb_register)
(gimp_pdb_unregister): ref all registered procedures.
* app/xcf/xcf.c
* tools/pdbgen/app.pl: unref newly created procedures after
registering them.
* app/core/gimp.[ch]: renamed member "plug_in_proc_defs" to
"plug_in_procedures". Renamed "proc_def" variables to "procedure".
* app/actions/plug-in-actions.c
* app/menus/plug-in-menus.c: changed accordingly.
* app/plug-in/plug-ins.[ch]: keep a reference to all procs which
are in gimp->plug_in_procedures.
(plug_ins_exit): unref them all and free the list. Apparently we
were leaking them before on exit.
* app/plug-in/plug-in-def.[ch]: s/proc_defs/procedures/. Ref
procedures added with plug_in_def_add_procedure(). Added
plug_in_def_remove_procedure() which unrefs them again. Removed
"free_proc_defs" parameter from plug_in_def_free() and always
unref the procedures.
* app/plug-in/plug-in.[ch]: added plug_in_add_temp_proc() and
plug_in_remove_temp() proc. Ref the added procedures.
* app/plug-in/plug-in-message.c: use the new APIs instead of
adding/removing procs and temp procs from their lists manually.
Unref the newly created procedure after adding then to the
plug_in_def or plug_in.
* app/plug-in/plug-in-rc.[ch]
* app/plug-in/plug-ins-query.c
* tools/pdbgen/pdb/plug_in.pdb: changed accordingly.
* app/pdb/*_cmds.c: regenerated.
2006-04-07 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-merge.[ch] (gimp_image_merge_visible_layers):
allow to discard invisible layers as suggested in bug #337557.
* app/actions/image-commands.c
* app/dialogs/image-merge-layers-dialog.[ch]: added a check button
to the Merge Visible Layers dialog to control the new feature.
* app/file/file-open.c
* tools/pdbgen/pdb/image.pdb: pass FALSE for the new parameter.
* app/pdb/image_cmds.c: regenerated.
2006-04-06 Sven Neumann <sven@gimp.org>
* app/core/gimpdata.c (gimp_data_error_quark)
* libgimpconfig/gimpconfig-error.c (gimp_config_error_quark)
* libgimpthumb/gimpthumb-error.c (gimp_thumb_error_quark):
g_quark_from_static_string() is already reasonably fast, not much
point in caching the result.
2006-04-05 Sven Neumann <sven@gimp.org>
* app/base/lut-funcs.[ch]: minor code cleanup, renamed a function,
declared some functions as static.
* app/core/gimpdrawable-equalize.c: changed accordingly.
2006-04-05 Tor Lillqvist <tml@novell.com>
* app/core/gimpobject.c (gimp_object_get_memsize): Check if
object->name is NULL before attempting to pass it to
g_strdup_printf(). Use "anonymous" for unnamed objects.
2006-04-05 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-types.h
* app/plug-in/plug-in-proc-def.[ch]: renamed to GimpPlugInProcedure
and made a GObject derived from GimpProcedure (instead of having
a pointer to a GimpProcedure). Added image_types and file_magic
utility functions taken from plug-ins.[ch]. Still lives in the
same crappy files because I am undecided where to put it...
* app/pdb/gimpprocedure.c (gimp_procedure_real_execute): removed
switch() statement and always call the internal marshaller because
GimpProcedure::execute() is properly overridden by
GimpPlugInProcedure now.
* app/plug-in/plug-ins.[ch]: removed the mime_type and file_magic
utilities added to GimpPlugInProcedure.
* app/actions/file-commands.c
* app/actions/plug-in-actions.[ch]
* app/actions/plug-in-commands.[ch]
* app/core/gimp-gui.[ch]
* app/core/gimp.[ch]
* app/core/gimpimage.[ch]
* app/dialogs/file-open-dialog.c
* app/dialogs/file-save-dialog.c
* app/dialogs/print-size-dialog.c
* app/file/file-open.[ch]
* app/file/file-save.[ch]
* app/file/file-utils.[ch]
* app/gui/gui-vtable.c
* app/menus/plug-in-menus.[ch]
* app/plug-in/plug-in-def.[ch]
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-in-run.c
* app/plug-in/plug-in.c
* app/plug-in/plug-ins-query.c
* app/widgets/gimpactiongroup.[ch]
* app/widgets/gimpdnd-xds.c
* app/widgets/gimpfiledialog.[ch]
* app/widgets/gimpfileprocview.[ch]
* app/widgets/gimppluginaction.[ch]
* app/xcf/xcf.c
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/plug_in.pdb: changed addordingly.
* app/pdb/fileops_cmds.c
* app/pdb/plug_in_cmds.c: regenerated.
2006-04-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpparamspecs.[ch]: added a shitload of new GTypes and
corresponding GParamSpecs to use them as PDB arguments.
Each GimpPDBArgType has one or more corresponding GTypes in the
core now.
* app/pdb/gimpargument.[ch] (struct GimpArgument)
(struct GimpArgumentSpec): removed "value" member because the
GValue's/GParamSpec's GType carries just as much information now.
(gimp_argument_type_to_pdb_arg_type): new function which maps
GTypes to GimpPDBArgType.
(gimp_pdb_arg_type_to_string): formerly known as
procedural_db_type_name().
* app/pdb/gimpprocedure.[ch]
* app/pdb/procedural_db.[ch]: completely switch to GValue. Use the
new GParamSpecs for procedure arguments. GimpPDBArgType is only
used for adding compat args/values of plug-in procedures.
(procedural_db_run_proc): the va_list expects a sequence of
(GType, value, GType, value, ..., G_TYPE_NONE) now.
* app/plug-in/plug-in-params.[ch]: changed accordingly.
(plug_in_param_defs_check): removed this function.
* app/plug-in/plug-in-message.c (plug_in_handle_proc_install): use
plug_in_proc_args_check() instead and initialize the GimpProcedure
before doing so.
* tools/pdbgen/app.pl
* tools/pdbgen/pdb.pl: use the new param spec types and their
utility functions. Changed argument/value registration
accordingly.
* app/pdb/procedural-db-query.c
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* app/core/gimppdbprogress.c
* app/dialogs/about-dialog.c
* app/file/file-open.c
* app/file/file-save.c
* app/plug-in/plug-in-progress.c
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-ins.c
* app/widgets/gimpbrushselect.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimphelp.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/procedural_db.pdb: changed accordingly.
* app/pdb/*_cmds.c: regenerated.
2006-04-02 Michael Natterer <mitch@gimp.org>
* app/core/gimpparasitelist.[ch] (gimp_parasite_list_add): removed
the return value again.
(gimp_parasite_list_find): return a const parasite.
* app/core/gimp-parasites.[ch]
* app/core/gimpimage.[ch]
* app/core/gimpitem.[ch] (*_parasite_attach): take a const
parasite. Make a local copy of the parasite struct because
gimp_parasite_shift_parent() changes it.
(*_parasite_find): return a const parasite.
* app/core/gimptemplate.c
* app/text/gimptextlayer-xcf.c
* app/xcf/xcf-load.c: changed accordingly.
2006-04-02 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-undo-push.[ch]
(gimp_image_undo_push_image,item_parasite): use "const GimpParasite*"
insted of gpointer for the parasite parameter.
* app/core/gimpparasitelist.[ch] (gimp_parasite_list_add): added
const to the parasite parameter, return the actually added
parasite (which is a copy).
* app/core/gimpunit.[ch] (_gimp_unit_new): added const to all
string parameters.
2006-04-02 Michael Natterer <mitch@gimp.org>
* app/core/gimpparamspecs.[ch]: removed GIMP_TYPE_PARASITE,
GIMP_TYPE_PARAM_PARASITE and the GimpRGB utility functions. Some
fixes/cleanup in the new array and string array code.
* libgimpbase/gimpbase.def
* libgimpbase/gimpparasite.[ch]
* libgimpcolor/gimpcolor.def
* libgimpcolor/gimprgb.[ch]: added the parasite and rgb stuff here.
* app/pdb/gimpargument.c: #include "libgimpbase/gimpbase.h"
* app/pdb/procedural_db.c: removed unused variable.
2006-03-31 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c (gimp_imagefile_get_new_pixbuf): use
"gtk-dialog-question" instead of "gimp-wilber-eek" to indicate a
missing thumbnail.
2006-03-30 Michael Natterer <mitch@gimp.org>
* app/pdb/procedural_db.c (procedural_db_execute_proc): don't
memset(0) the array of return values if the procedure didn't
succeed. GValues don't like to be treated like that and I don't
understand what the memsetting is good for. It just looks like a
very bad hack.
* app/file/file-open.c: additionally, don't access return_vals[>0]
unless the procedure returned successfully.
* app/core/gimppdbprogress.c
* app/widgets/gimppdbdialog.c: procedural_db_run_proc() always
returns non-NULL, no need to check for it.
2006-03-30 Michael Natterer <mitch@gimp.org>
* app/pdb/procedural_db.[ch] (struct Argument): replace the value
union by a GValue.
(procedural_db_argument_init)
(procedural_db_compat_arg_init): new functions to initialize
an Argument. They call g_value_init() on the Argument's value.
(procedural_db_arguments)
(procedural_db_return_values): initialize the returned Argument
arrays so their GValues are ready to use. Allow to get the
(unsuccessful) return values of a NULL ProcRecord.
(procedural_db_destroy_args): g_value_unset() the values. Added a
"gboolean full_destroy" parameter. Its only effect is to destroy
PDB arrays, everything else is nicely memory managed by GValue.
(procedural_db_execute)
(procedural_db_run_proc): do GValue stuff. Added n_args and
n_return_vals parameters to execute().
(procedural_db_execute_proc): private function to execute a
procedure. Validates the passed in arguments using the registered
GParamSpecs before passing them to the resp. exec method.
* app/plug-in/plug-in-params.[ch] (plug_in_params_to_args): needs
an array of ProcArgs now in order to initialize the Arguments'
GValues correctly. Passing NULL ProcArgs uses
procedural_db_compat_arg_init(), so procedures (plug-ins)
returning more values than expected work.
(plug_in_args_to_params): do GValue stuff here too.
(plug_in_args_destroy): removed this function,
procedural_db_destroy_args() does the same now.
* app/plug-in/plug-in-message.c (plug_in_handle_proc_run):
simplified quite a bit because everything returns n_return_values
now. Call plug_in_params_to_args() only of the procedure was found.
(plug_in_handle_proc_return_priv): pass ProcRecs to
plug_in_params_to_args().
* app/batch.c
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* app/core/gimppdbprogress.c
* app/dialogs/about-dialog.c
* app/file/file-open.c
* app/file/file-save.c
* app/plug-in/plug-ins.c
* app/plug-in/plug-in-progress.c
* app/plug-in/plug-in-run.[ch]
* app/widgets/gimphelp.c
* app/widgets/gimppdbdialog.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/fileops.pdb: changed accordingly: don't
g_new/g_free Argument arrays, always use procedural_db_foo()
functions. Use GValue functions to get/set Arguments.
* tools/pdbgen/pdb.pl: added get_value_func and set_value_func to
all PDB types. Removed id_func, id_ret_func and check_func. Added
flags which indicated that a type is an ID. Removed unused utility
functions.
* tools/pdbgen/lib.pl: use the flag instead of looking at
functions and value types.
* tools/pdbgen/app.pl: use the get_value_func and set_value_func
to marshal inargs and outargs. Removed all checks performed on
inargs because that's done by GParamSpec validation now. Added the
missing bits to register excluded values with GimpParamSpecEnum.
* app/pdb/*_cmds.c: regenerated.
2006-03-29 Michael Natterer <mitch@gimp.org>
* app/core/gimpparamspecs.[ch]: added GimpParamSpecEnum, which is
a GParamSpecEnum plus the possibility to exclude values.
Fixed lots of validation functions.
Made all structs and macros public.
2006-03-28 Michael Natterer <mitch@gimp.org>
* app/core/gimpparamspecs.[ch] (gimp_param_spec_string): reordered
params to be consistent with other param specs.
(gimp_value_get_rgb): utility function which reads the value
into a GimpRGB struct, instead of returning a pointer.
(gimp_value_set_rgb): added for symmetry. Just calls
g_value_set_boxed().
2006-03-27 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/gimpparamspecs.[ch]: new unused files. Checked in so
they can be easily reviewed.
2006-03-24 Sven Neumann <sven@gimp.org>
* app/actions/colormap-editor-actions.c
* app/actions/gradient-editor-actions.c
* app/actions/palette-editor-actions.c
* app/core/gimp-edit.c
* app/core/gimpchannel-select.c: some more string changes, mainly
avoiding the use of FG and BG in labels where there's no need for
being concise.
2006-03-24 Sven Neumann <sven@gimp.org>
* app/tools/gimprectselecttool.c: renamed from "Rect Select" to
"Rectangle Select" (bug #335715).
* app/core/gimpchannel-select.c (gimp_channel_select_rectangle):
string change (bug #335715).
* plug-ins/common/svg.c: follow the change to the file format
label done in the shared-mime-info package (bug #335716).
* configure.in: fixed the --without-libtiff case in the summary
(bug #335764).
2006-03-22 Sven Neumann <sven@gimp.org>
* app/base/siox.[ch] (siox_foreground_extract): let the caller
specify a region of interest. Call the progress function more often.
* app/core/gimpdrawable-foreground-extract.c
(gimp_drawable_foreground_extract_siox): pass a region of interest
to siox_foreground_extract() to speed up the SIOX tool.
2006-03-13 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-guides.[ch]: added gimp_image_get_guide() and
gimp_image_get_next_guide(), which take a guide_ID and return the
image's GimpGuide with that ID (the one after that for next_guide())
* tools/pdbgen/pdb/guides.pdb: use them instead of having this
code here.
* app/pdb/guides_cmds.c: regenerated.
2006-03-13 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.c (gimp_image_raise_layer_to_top,
gimp_image_lower_layer_to_bottom): silently return TRUE if the
layer is already at the top (or the bottom respectively).
2006-03-02 Michael Natterer <mitch@gimp.org>
* app/core/gimppickable.[ch]: added new methods ::get_bytes() and
::flush()
* app/core/gimpchannel.c
* app/core/gimpdrawable.c
* app/core/gimpimagemap.c
* app/core/gimpprojection.c: implement ::get_bytes()
* app/core/gimpprojection.c: implement ::flush() (immediately
process both the idle renderer's queue and the unflushed update
areas, to make sure that any reading from the projection will
re-construct it).
* app/core/gimp-edit.c
* app/core/gimpchannel.c
* app/core/gimpimage-contiguous-region.c
* app/core/gimpimage-crop.c
* app/core/gimppalette-import.c
* app/paint/gimpclone.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpiscissorstool.c
* tools/pdbgen/pdb/image.pdb: use the pickable interface more
consistently when reading from any drawable or the projection, and
call gimp_pickable_flush() before doing so. Fixes bug #332933.
* app/core/gimpimage-pick-color.c: added comment why the we don't
call gimp_pickable_flush() here.
* app/pdb/image_cmds.c
* libgimp/gimpimage_pdb.c: regenerated.
2006-02-21 Michael Natterer <mitch@gimp.org>
* app/plug-in/Makefile.am
* app/plug-in/plug-in-data.[ch]: new files which keep the
plug-in data list.
* app/pdb/procedural_db.[ch]: removed here, it only cluttered the
file with unrelated functionality.
* app/core/gimp.[ch]
* app/actions/plug-in-commands.c
* tools/pdbgen/pdb/procedural_db.pdb: changed accordingly.
* app/pdb/procedural_db_cmds.c: regenerated.
2006-02-20 Sven Neumann <sven@gimp.org>
* app/config/gimpcoreconfig.[ch]
* app/config/gimprc-blurbs.h
* app/core/gimp.[ch]: keep a history of recently used plug-ins.
* app/plug-in/plug-in-run.[ch] (plug_in_repeat): pass an index
into the plug-in history.
* app/actions/plug-in-actions.c
* app/actions/plug-in-commands.c
* app/menus/plug-in-menus.c
* menus/image-menu.xml.in: added a submenu with recently used
plug-ins to the Filters menu. Fixes bug #148855.
2006-01-31 Michael Schumacher <schumaml@cvs.gnome.org>
* app/core/gimpbrushpipe.c: applying a patch by Joao S. O. Bueno
Calligaris which implements PIPE_SELECT_VELOCITY for brush
pipes. Fixes bug #150227.
2006-01-18 Michael Natterer <mitch@gimp.org>
* app/config/config-types.c: define GIMP_PARAM_STATIC_STRINGS
which is G_PARAM_STATIC_NAME|NICK|BLURB. Also define
GIMP_PARAM_READABLE, _WRITABLE and _READWRITE which include
GIMP_PARAM_STATIC_STRINGS.
* app/*/*.c: use them for all object properties so their
strings are not copied.
2006-01-14 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig-utils.[ch] (gimp_config_connect_full):
variant of gimp_config_connect() which allows the connected
objects to have different propertynames.
* app/widgets/widgets-enums.[ch]: removed enum GimpViewType...
* app/core/core-enums.[ch]: ...and added it here.
* app/widgets/gimpviewablebutton.[ch] (gimp_viewable_button_new):
added "button_preview_size" parameter so the button and popup
preview sizes can be specified separately.
* app/widgets/gimptemplateeditor.c: changed accordingly.
* app/widgets/gimpviewablebox.[ch] (gimp_prop_*_box_new):
new functions which take additional "view_type_prop" and
"view_size_prop" parameters and sync the passed context's
properties with the resp. properties of the viewable button.
* app/paint/gimppaintoptions.[ch]
* app/tools/gimpbucketfilloptions.c
* app/tools/gimpclonetool.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimptextoptions.[ch]: added view-type and view-size
properties to the options objects and use the new viewable box
constructors so the selected view types and sizes are persistant
across sessions. Fixes bug #315443.
2006-01-02 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-convert-data.h
* app/core/gimpimage-convert.c: applied patch by Adam D. Moss that
replaces the default dither matrix by a 32x32 Bayer pattern (see
bug #136604).
2005-12-27 Michael Natterer <mitch@gimp.org>
Fixed incomplete core/ui separation of paint tools and paint
methods:
* app/core/core-enums.h
* app/core/gimpcontext.[ch]: added a "paint-info" property and API
so the current paint method can be selected without the need for
an active tool.
(gimp_context_real_set_tool): set the paint-info to
tool_info->paint_info so the paint method follows the active tool
just as the active image follows the active display.
* app/core/gimp.h (struct Gimp)
* app/core/gimppaintinfo.[ch]: added "standard_paint_info" API
and stuff to be consistent with other context object properties.
* app/paint/gimp-paint.c: set the paintbrush as
standard_paint_info.
* app/core/gimpstrokedesc.c (gimp_stroke_desc_new): removed the
hack of falling back to the paintbrush when there is no active
tool and use the active paint method instead. Fall back to the
standard paint method if there is no active one.
(nothing in the core uses the active tool any more now).
* app/widgets/gimpdeviceinfo.h: add the paint info to the
properties which are saved in devicerc.
Added identifiers (names) and stock-ids to GimpPaintInfo:
* app/core/gimppaintinfo.[ch] (gimp_paint_info_new): added
identifier and stock-id parameters.
* app/core/gimptoolinfo.c (gimp_tool_info_new): removed the hack
of setting the paint-info stock-id from the tool-info stock-id.
* app/paint/paint-types.h
* app/paint/gimp-paint.c: changed GimpPaintRegisterCallback
accordingly.
* app/tools/gimp-tools.c (gimp_tools_register): changed paint
info names accordingly.
* app/paint/*.c (gimp_*_register): pass identifier and stock-id
accordingly.
2005-12-23 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel.c
* app/core/gimpdrawable.c
* app/core/gimplayer.c
* app/core/gimplayermask.c
* app/text/gimptextlayer.c
* app/vectors/gimpvectors.c: moved variables to local scopes in
implementations of GimpItem::duplicate()
2005-12-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpstrokedesc.c (gimp_stroke_desc_new): fall back to
the paintbrush if we can't get the paint method from the active
tool (because there is no active tool). Fixes bug #323778.
2005-12-10 Michael Natterer <mitch@gimp.org>
* app/config/*.c
* app/core/*.c
* app/display/*.c
* app/text/*.c
* app/vectors/*.c: port to G_DEFINE_TYPE() and friends. Some related
core reordering and cleanup.
2005-11-16 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.c (gimp_layer_convert):
gimp_layer_transform_color() wants the destination image passed,
not the source image.
2005-11-13 Sven Neumann <sven@gimp.org>
* app/core/gimpdatafactory.c (gimp_data_factory_data_free): do not
return a value from a void function. Fixes bug #321333.
2005-11-05 Sven Neumann <sven@gimp.org>
* tools/pdbgen/app.pl: removed calls to the splash update function
during initialization of internal procedures. This only takes time
and doesn't provide useful information.
* app/pdb/internal_procs.[ch]: regenerated.
* app/pdb/procedural_db.[ch]: changed accordingly.
* core/gimp.c: call the splash update function from here.
2005-11-05 Sven Neumann <sven@gimp.org>
* app/gui/splash.c: added some commented-out debug output that can
be used to get an idea of where the startup time is being spent.
* app/core/gimp.c
* app/pdb/internal_procs.c
* app/pdb/procedural_db.c
* app/plug-in/plug-ins.c
* tools/pdbgen/app.pl: cosmetic changes.
2005-11-04 Sven Neumann <sven@gimp.org>
* app/core/gimpenvirontable.c (gimp_environ_table_load_env_file):
gimp_config_path_expand() only ever returns NULL if called with a
NULL path argument.
2005-11-01 Sven Neumann <sven@gimp.org>
* app/core/gimpbrushgenerated.c (gimp_brush_generated_load): use
gimp_brush_generated_new() to create the brush object. Removed
redundant calls to gimp_data_dirty().
* app/core/gimpdata.c: freeze the data object during construction.
2005-10-31 Michael Natterer <mitch@gimp.org>
Applied modified patch from Luis de Bethencourt Guimera which adds
a "Save document history" prefs option. Fixes bug #140001.
* app/config/gimprc-blurbs.h
* app/config/gimpcoreconfig.[ch]: added boolean property
"save-document-hitory".
* app/core/gimp.c
* app/file/file-open.c
* app/file/file-save.c: don't save the document history and don't
add files to the desktop-wide list of recently used files if the
option is FALSE.
* app/dialogs/preferences-dialog.c: added its toggle to the
"Environment" page.
2005-10-31 Sven Neumann <sven@gimp.org>
* app/core/gimpdata.[ch]
* app/core/gimpdatafactory.c: applied a heavily modified version
of the patch provided by Shlomi Fish in bug #311740. Introduces a
cache to speed up reloading of data files.
* app/actions/data-commands.c: set gimp busy while refreshing data
factories.
* app/widgets/gimpwidgets-utils.c (gimp_widget_accel_changed):
free the return value of gimp_get_accel_string().
2005-10-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-contiguous-region.c
(struct ContinuousRegionData)
(gimp_image_contiguous_region_by_color)
(contiguous_region_by_color): the color samples are always RGB or
RGBA, so always compare 3 or 4 bytes of pixel data, and not just
the number of bytes of the drawable/projection. Fixes "select by
color" on GRAYA (bug #319683).
2005-10-17 Sven Neumann <sven@gimp.org>
* app/base/base-enums.h
* app/base/siox.[ch]
* app/core/gimpdrawable-foreground-extract.[ch]
* app/tools/gimpforegroundselecttool.[ch]: export stateful SIOX to
the core API and use it from the foreground selection tool.
2005-10-17 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-foreground-extract.[ch]
* app/tools/gimpforegroundselectoptions.[ch]
* app/tools/gimpforegroundselecttool.c: added "multiblob"
property to GimpForegroundSelectOptions and pass it to
gimp_drawable_foreground_extract_siox().
2005-10-12 Sven Neumann <sven@gimp.org>
* app/base/base-types.h
* app/base/siox.[ch]: applied patch from Gerald Friedland that
introduces a state to the SIOX operation.
* app/core/gimpdrawable-foreground-extract.c: adapted to the new API.
2005-10-10 Michael Natterer <mitch@gimp.org>
* app/core/gimpviewable.c (gimp_viewable_get_description): set the
"tooltip" return value to NULL before calling the virtual function.
* app/core/gimpbrush.c
* app/core/gimpbuffer.c
* app/core/gimpchannel.c
* app/core/gimplayer.c
* app/core/gimppaintinfo.c
* app/core/gimppalette.c
* app/core/gimppattern.c
* app/core/gimptoolinfo.c (get_description): don't do it here.
* app/core/gimpbuffer.c
* app/core/gimppaintinfo.c: untabbify, cleanup.
* app/core/gimpobject.c: emit "notify::name" whenerver the name
changes, clenup.
2005-10-07 Sven Neumann <sven@gimp.org>
* app/core/gimppalette-import.[ch]: added new function
gimp_palette_import_from_drawable(), respecting the selection as
suggested in bug #316212.
2005-10-02 Simon Budig <simon@gimp.org>
* app/core/gimpcoords.c: use ABS instead of fabs.
* app/core/gimpimage-snap.c: Use proper default values for the
coordinates.
* app/vectors/gimpbezierstroke.c: Fix a bug plus add some debug
output. For some reason does not snap yet.
2005-10-01 Simon Budig <simon@gimp.org>
* app/core/gimpcoords.[ch]: Added small utility function for the
manhattan metric.
* app/vectors/gimpstroke.[ch]: virtualized stubs provided by mitch
* app/vectors/gimpbezierstroke.c: Reworked some internal functions
to make it easier to access the parameters for the coordinates of an
stroke interpolation. Simplified the straight line test. Added an
implementation of the _nearest_tangent_get () function that does
not yet seem to work properly. Not sure where the problem is.
2005-09-30 Michael Natterer <mitch@gimp.org>
* app/vectors/gimpstroke.[ch]: added stubs of two new snapping
functions.
* app/core/gimpimage-snap.c: removed their #defines here.
2005-09-26 Sven Neumann <sven@gimp.org>
* app/core/gimpdata.c
* app/file/file-save.c
* app/file/file-open.c: use g_access() from gstdio.h.
* app/config/gimpconfig-file.c (gimp_config_file_copy)
* libgimpthumb/gimpthumbnail.c: use g_chmod() from gstdio.h.
* app/file/gimprecentlist.c
* libgimpconfig/gimpconfigwriter.c: use g_creat() from gstdio.h.
2005-09-24 Hans Breuer <hans@breuer.org>
* **makefile.msc : updated
* app/dialogs/user-install-dialog.c : only add the migrate page if
there is something to migrate from. Avoids on version being NULL.
* app/dialogs/file-save-dialog.c : the g_print() output was crashing
on the assumption that ->menu_label != NULL. It is for colorhtml.py.
* app/widgets/gimpselectiondata.c : use HAVE_UNISTD_H and move
* process.h definition by G_OS_WIN32 below it being defined
* app/widgets/gimpwidgets-utils.c(gimp_window_get_native) : cast
return value to (GdkNativeWindow) it is not necessary an int.
* libgimpwidgets/gimpwidgets.def : added gimp_zoom_type_get_type
* plug-ins/help/gimp-help-lookup.c : dynamic lookup of help_root
instead of hard-coding DATADIR/GIMP_HELP_PREFIX
* plug-ins/xjt/xjt.c : there is no pid_t with msvc, typedef one.
2005-09-19 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c (gimp_imagefile_get_new_pixbuf): use
GTK_STOCK_DIRECTORY for GIMP_THUMB_STATE_FOLDER.
2005-09-13 Sven Neumann <sven@gimp.org>
* app/core/gimppalette-import.c (gimp_palette_import_from_image):
ignore transparent pixels as suggested in bug #316212.
2005-09-11 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.h (enum GimpUndoType): replaced lots of
bogus strings by properly translatable ones. Many of them are
fallbacks anyway, but they should be presentable to the user.
Fixes bug #315964.
2005-09-09 Michael Natterer <mitch@gimp.org>
Added parent window API to the GimpProgress interface and to
the libgimp progress stuff. Might look strange, but does
the right thing in almost all cases (image window, file dialog,
script-fu dialog etc). Fixes bug #62988.
* app/core/gimpprogress.[ch]: added GimpProgress::get_window()
which should return a toplevel window ID if the progress is in a
window that wants to be the transient parent of plug-in dialogs.
* app/widgets/gimpwidgets-utils.[ch] (gimp_window_get_native): new
function which returns the window handle of a GtkWindow's GdkWindow.
* app/widgets/gimpfiledialog.c: implement ::get_window().
* app/display/gimpdisplay.[ch]: ditto. Removed window handle API.
* app/gui/gui-vtable.c: changed accordingly.
* libgimpbase/gimpbaseenums.[ch] (enum GimpProgressCommand):
added GIMP_PROGRESS_COMMAND_GET_WINDOW.
* app/plug-in/plug-in-progress.[ch] (plug_in_progress_get_window):
new function. Also renamed some functions to match the
GimpProgress interface, and not the legacy PDB procedure names.
* tools/pdbgen/pdb/progress.pdb
* app/core/gimppdbprogress.c: implement get_window() on both
sides of the wire, keeping backward compatibility (hopefully).
* libgimp/gimpprogress.[ch]: deprecated gimp_progress_install()
and added gimp_progress_install_vtable() which takes a vtable with
padding to be extensible. Added get_window() vtable entry and
dispatch it accordingly. Also added pulse() which was implemented
in a hackish way before. Everything is of course backward
compatible.
* libgimp/gimpprogressbar.c: inmplement the get_window() stuff
so a plug-in dialog containing a progress can be the transient
parent of another dialog in another plug-in.
* libgimp/gimpui.[ch] (gimp_ui_get_progress_window): new function
which returns a foreign GdkWindow of this plug-ins progress
window.
Renamed gimp_window_set_transient_for_default_display() to
gimp_window_set_transient() and make it use the progress' window
handle instead of the display's (which is the right thing to do in
almost all cases).
* libgimp/gimp.def
* libgimp/gimpui.def: add the new functions.
* tools/pdbgen/enums.pl
* app/pdb/internal_procs.c
* app/pdb/progress_cmds.c
* libgimp/gimpprogress_pdb.[ch]: regenerated.
* libgimp/gimpexport.c
* plug-ins/*/*.c: follow API change.
2005-09-08 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer-floating-sel.c (floating_sel_boundary): if
the floating selection has no alpha, manually create BoundSegs of
its outline instead of calling boundary_find() (which creates a
boundary of the last channel). Fixes bug #145373.
* app/widgets/gimplayertreeview.c
(gimp_layer_tree_view_floating_selection_changed): update all
layer names' text attributes, not only for layers with alpha.
Fixes layer name display when making a new layer out of a floating
selection without alpha.
2005-09-07 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel-combine.c (gimp_channel_combine_ellipse):
use gimp_rectangle_intersect() instead of just looking at the
passed in w,h to figure whether nothing needs to be done. While
the algorithm does nicely with an entirely out-of-image ellipse,
the channel's bounds were set to a rectangle of zero width or
height, which caused subsequent calls to gimp_channel_bounds() to
return broken bounds. Fixes bug #315417.
(gimp_channel_combine_rect)
(gimp_channel_combine_mask): use gimp_rectangle_intersect() here
too instead of the usual unclear CLAMPing on x1,y1,x2,y2.
2005-09-05 Sven Neumann <sven@gimp.org>
Address bug #307971:
* app/core/gimp-gui.[ch]
* app/display/gimpdisplay.[ch]
* app/gui/gui-vtable.c
* tools/pdbgen/pdb/display.pdb: added PDB function to obtain a
window handle on an image display.
* app/pdb/display_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpdisplay_pdb.[ch]: regenerated.
* libgimp/gimpui.[ch]: added functions to set a GtkWindow transient
to an image display.
* plug-ins/common/gauss.c: use the new function exemplarily.
* libgimp/gimp.def
* libgimp/gimpui.def: updated.
2005-09-05 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.c: don't let named cut/copy affect the global
buffer. Fixes bug #315225. Also make "Global Buffer" translatable.
2005-09-05 Sven Neumann <sven@gimp.org>
* app/core/gimp.[ch]
* app/core/gimpimage-new.c: removed the confusing and redundant
feature of having the New Image dialog default to the size of the
global buffer. Please use Paste as New instead. Fixes bug #315106.
2005-09-04 Michael Natterer <mitch@gimp.org>
Cleaned up and fixed the order in which default tool options and
user context values are initialized, and added loading / saving of
the global user context. Fixes bug #165078.
* app/core/Makefile.am
* app/core/gimp-contexts.[ch]: new files which manage the global
contexts. Contains gimp_contexts_init/exit/load/save/clear().
* app/core/gimp.c: use the new init/exit functions instead of
implementing the stuff here.
* app/tools/gimp-tools.c: load/save/clear the user context from
here so it follows the same logic as the tool options. Reset all
tool options before loading the user context and copy the user
context's property to all tool options before loading tool
options.
* app/core/gimptoolinfo.c (gimp_tool_info_new): don't initialize
the tool options with the users context's properties. It's way too
early here and they will be overwritten later.
* app/widgets/gimpdevices.c (gimp_devices_restore): initialize all
device contexts with the user context's properties before loading
the devices and copying the active one back to the user context.
2005-09-03 Michael Natterer <mitch@gimp.org>
* app/base/pixel-region.[ch]: some general cleanup.
(pixel_region_init_temp_buf)
(pixel_region_init_data): new functions which initialize pixel
regions on TempBufs and on raw contiguous arrays of pixel data.
(pixel_region_configure): fixed a bug that has probably been there
forever: when processing contiguous (non-tiled) data, interpret
the original x and y coordinates of the region as offsets into
the data. Before this fix, the initial x and y were simply ignored
(by using them in a broken way), thus always forcing the upper
left corner of the region being the beginning of the passed data.
Lots of code was working around this problem by setting the
pixel_region's data pointer to the proper starting pixel of the
region in the middle the buffer.
* libgimp/gimppixelrgn.c: some general cleanup.
(gimp_pixel_rgn_configure): same fix as above. Fortunately, nobody
seems to know that libgimp pixel regions can be used on arrays of
data, just as core ones. Only two plug-ins were using this
feature, and they are antique and written by spencer and federico,
respectively. They both don't use offsets into the buffers and are
not affected by this change. It's highly unlikely that anybody out
there knows/uses this feature, so it can IMHO be safely changed.
* app/base/temp-buf.c
* app/core/gimpbuffer.c
* app/core/gimpdrawable-combine.c
* app/core/gimpdrawable-preview.c
* app/core/gimpimage-preview.c
* app/core/gimplayer.c
* app/paint/gimpbrushcore.c
* app/paint/gimpclone.c
* app/paint/gimpconvolve.c
* app/paint/gimpdodgeburn.c
* app/paint/gimppaintcore.c
* app/paint/gimpsmudge.c
* app/tools/gimpiscissorstool.c
* app/tools/gimppainttool.c: use the pixel_region_init_foo()
functions instead of initializing regions of TempBufs and raw data
manually. Removed lots of workarounds for the broken offset
handling. The changed places of code are much more readable now.
2005-09-03 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.[ch] (gimp_edit_paste_as_new): don't create a
display here.
(gimp_edit_named_cut)
(gimp_edit_named_copy)
(gimp_edit_named_copy_visible): new functions containing named
buffer wrappers around the functions affecting the global buffer
only.
* app/actions/edit-commands.c: use the new functions instead of
implementing them here, create a display for the image returned
by paste as new.
* app/actions/buffers-commands.c
* app/widgets/gimptoolbox-dnd.c: create displays here too.
* tools/pdbgen/pdb/edit.pdb: added wrappers for paste as new and
wrappers for all the cut/copy/paste named stuff.
Fixes bug #315130. Cleaned up and de-obfuscated.
* libgimp/gimp.def: changed accordingly.
* app/pdb/edit_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpedit_pdb.[ch]: regenerated.
2005-09-01 Sven Neumann <neumann@jpk.com>
* app/core/gimppalette.[ch]: reverted, it duplicates existing
functionality.
* app/core/gimppalette-import.c
(gimp_palette_import_from_indexed_image): name the colors using
their index in the colormap.
2005-08-20 Michael Natterer <mitch@gimp.org>
* app/base/boundary.[ch]: renamed puclic functions, defines and
enums to live in a proper "boundary" namespace. Cleaned up and
simplified internal code even more.
* app/core/gimpchannel.c
* app/core/gimpdrawable-stroke.c
* app/core/gimplayer-floating-sel.c
* app/paint/gimppaintcore-stroke.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpfuzzyselecttool.c
* app/tools/gimppainttool.c: changed accordingly.
2005-08-18 Sven Neumann <sven@gimp.org>
* app/core/gimptemplate.c: go back to using dpi as the default
resolution unit.
* app/core/gimp-utils.[ch]: moved the code to determine the unit
from the locale settings here as gimp_get_default_unit().
* app/dialogs/print-size-dialog.c
* app/widgets/gimpimagepropview.c: use the unit returned by the
new function to display the print size (bug #107497).
2005-08-17 Sven Neumann <sven@gimp.org>
* configure.in: check for langinfo.h and _NL_MEASUREMENT_MEASUREMENT.
* app/core/gimptemplate.c: try to determine the default unit from
the locale settings. Supposed to fix bug #107497.
2005-08-13 Manish Singh <yosh@gimp.org>
* app/core/gimpimage-preview.c (gimp_image_get_new_preview): if the
offsets of the layer are such that they are just on the border of
the image, detect that and bail instead of trying to make a
sub-preview with a 0 dimension.
2005-08-09 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs.[ch] (extract_from_inten_pixels)
(extract_from_indexed_pixels): pass src_bytes and dest_bytes to
these functions instead of just the source's bytes and whether it
has an alpha. Honor dest_bytes when extracting instead of crashing
by always asuming that the destination has alpha.
Fixes bug #312392.
(extract_from_region): removed has_alpha paramater. pass
src->bytes and dest->bytes to above functions.
* app/core/gimpselection.c (gimp_selection_extract): changed
accordingly.
2005-08-09 Sven Neumann <sven@gimp.org>
* app/base/siox.[ch]
* app/core/gimpdrawable-foreground-extract.[ch]
* app/tools/gimpforegroundselectoptions.[ch]
* app/tools/gimpforegroundselecttool.c: renamed Granularity to
Color Sensitivity, both in the GUI and in the APIs.
2005-08-09 Sven Neumann <sven@gimp.org>
* app/core/gimplayer.c (gimp_layer_transform_color): take image
type instead of basetype of the source drawable. Handle conversion
from drawables without alpha channel.
(gimp_layer_new_from_region): handle source regions without alpha.
2005-08-08 Sven Neumann <sven@gimp.org>
* app/core/gimpscanconvert.[ch]: added the possibility to specify
a clip rectangle.
* app/base/siox.c (find_max_blob): use g_try_malloc().
2005-08-07 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-resize.c (gimp_image_resize_with_layers):
take care of sample points. Addresses bug #137776.
2005-08-06 Sven Neumann <sven@gimp.org>
* app/base/siox.[ch]: reordered parameters to match the order of
parameters in gimp_drawable_foreground_extract_siox().
* app/core/gimpdrawable-foreground-extract.c: changed accordingly.
* app/tools/gimpforegroundselectoptions.[ch]: draw slider value to
the right.
* app/tools/gimpfreeselecttool.[ch]: added
gimp_free_select_tool_select() to calls the virtual select() method.
* app/tools/gimpforegroundselecttool.[ch]: queue an idle select if
the smoothness or granularity values change in the tool options.
2005-08-06 Sven Neumann <sven@gimp.org>
* app/base/siox.[ch]
* app/core/gimpdrawable-foreground-extract.[ch]: expose all
parameters of the SIOX algorithm. Provide default values.
* app/tools/gimpforegroundselectoptions.[ch]: added properties and
user interface for all SIOX parameters.
* app/tools/gimpforegroundselecttool.c: changed accordingly.
2005-08-06 Sven Neumann <sven@gimp.org>
* plug-ins/benchmark-foreground-extract.py: pass run-mode to PDB
calls.
2005-08-06 Sven Neumann <sven@gimp.org>
* app/base/siox.c
* app/core/gimpdrawable-foreground-extract.c: moved rectangle
intersection into gimp_drawable_foreground_extract().
2005-08-06 Sven Neumann <sven@gimp.org>
* app/core/gimpscanconvert.[ch]: added gimp_scan_convert_compose(),
an alternative to gimp_scan_convert_render() that allows to compose
strokes on a drawable.
* app/tools/gimpforegroundselecttool.c: use the new function to
get rid of temporary channels for applying the strokes. Also fixed
calculation of stroke width from display scale.
2005-08-06 Sven Neumann <sven@gimp.org>
* app/batch.c: canonicalize hardcoded procedure names.
* app/base/siox.[ch]
* app/core/gimpdrawable-foreground-extract.[ch]
* app/tools/gimpforegroundselecttool.c: restrict the working area
to the double of the bounding box of the initial selection.
2005-08-05 Michael Natterer <mitch@gimp.org>
* app/core/gimpitem.c (gimp_item_parasite_attach): revert previous
change. Instead, don't push undos if the item is not attached.
2005-08-05 Sven Neumann <sven@gimp.org>
* app/xcf/xcf-load.c (xcf_load_image): disable undo while the
image is being loaded.
* app/core/gimpitem.c (gimp_item_parasite_attach): don't try to
push an undo step if undo is disabled. Gets rid of warnings while
loading an XCF file with undoable drawable parasites.
2005-07-31 Sven Neumann <sven@gimp.org>
* app/core/gimpscanconvert.c (gimp_scan_convert_render): pass 255
as value to gimp_scan_convert_render_internal().
* app/tools/gimpforegroundselecttool.[ch]: add paint strokes as
foreground color; draw function is missing.
2005-07-29 Sven Neumann <sven@gimp.org>
* app/base/siox.[ch]
* app/core/gimpdrawable-foreground-extract.c: pass progress_callback
and progress_data to siox_foreground_extract().
2005-07-29 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-foreground-extract.[ch]: added a progress
parameter.
* app/tools/gimpforegroundselecttool.[ch]: changed the "select"
method to take a GimpDisplay instead of a GimpImage.
* tools/pdbgen/pdb/drawable.pdb
* app/tools/gimpforegroundselecttool.c: changed accordingly.
* app/pdb/drawable_cmds.c: regenerated.
2005-07-29 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpbaseenums.[ch]: added GimpForegroundExtractMode
in preparation for other implementations to be added in the future.
* libgimp/gimpenums.c.tail
* tools/pdbgen/enums.pl: regenerated.
* app/core/gimpdrawable-foreground-extract.[ch]
* app/tools/gimpforegroundselecttool.c
* tools/pdbgen/pdb/drawable.pdb: added the mode parameter.
* app/pdb/drawable_cmds.c
* libgimp/gimpdrawable_pdb.[ch]: regenerated.
2005-07-29 Sven Neumann <sven@gimp.org>
* app/core/gimpscanconvert.[ch]: added
gimp_scan_convert_render_value(), a variant of
gimp_scan_convert_render() that allows to pass the foreground value.
* app/tools/gimpfreeselecttool.[ch]: added a virtual "select" method.
* app/tools/Makefile.am
* app/tools/gimp-tools.c
* app/tools/gimpforegroundselecttool.[ch]: added a rough first
version of foreground selection tool based on the SIOX algorithm.
Work in progress...
* app/widgets/gimphelp-ids.h: added help-id for the new tool.
2005-07-28 Sven Neumann <sven@gimp.org>
* app/base/siox.[ch]: accept an offset between pixels and mask,
work only on the intersection rectangle.
* app/core/gimpdrawable-foreground-extract.c: pass the drawable
offsets to siox_foreground_extract().
2005-07-28 Sven Neumann <sven@gimp.org>
* app/core/Makefile.am
* app/core/cpercep.[ch]: moved cpercep from here ...
* app/base/Makefile.am
* app/base/cpercep.[ch]: ... to here.
* app/base/siox.[ch]: use the cpercep routines for RGB->LAB
conversion, gives a 20% speedup. Removed normalization which seems
redundant. Make it work for grayscale and indexed, not only RGB.
* app/core/gimpdrawable-foreground-extract.c
* app/core/gimpimage-convert.c: changed accordingly.
2005-07-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppaletteview.[ch]: added "entry-clicked" and
"color-dropped" signals. Completely handle color DND. Cleanup.
* app/core/gimpmarshal.list: marshallers for above signals.
* app/widgets/gimppaletteeditor.[ch]: chopped and reassembled.
Remove tons of code and use a GimpPaletteView instead of the
deprecated GtkPreview. Addresses bug #102204.
2005-07-13 Sven Neumann <sven@gimp.org>
* app/base/Makefile.am
* app/base/segmentator.[ch]: renamed to siox.[ch].
* app/base/siox.[ch]: added API docs and a link to the algorithm's
new homepage. Removed unused code.
* app/core/gimpdrawable-foreground-extract.c: changed accordingly.
2005-07-13 Michael Natterer <mitch@gimp.org>
* app/core/gimppalette.c (gimp_palette_add_entry): actually return
the added entry, and not always the palette's last entry (argh!).
* app/widgets/gimppaletteeditor.c: make sure the cursor is always
on the newly added color. Really fixes#15060 this time.
2005-07-12 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.c: pass opacity and paint_mode to
gimp_edit_fill_internal() instead of figuring them in the
function.
2005-07-10 Hans Breuer <hans@breuer.org>
* **/makefile.msc app/gimpcore.def : updated
* app/widgets/gimpcontrollerlist.c : dont include
"gimpmessagedialog.c" to avoid redefinitions.
Instead include gimpmessagebox.h and gimpmessagedialog.h
* plug-ins/common/raw.c : include <io.h>
* plug-ins/common/screenshot.c : make it compile. It
still has no code to actually work on win32.
2005-07-10 Sven Neumann <sven@gimp.org>
* app/base/segmentator.[ch]: ported to GIMP data structures. There
are still some TODOs, smooth_mask() isn't implemented yet.
* app/core/Makefile.am
* app/core/gimpdrawable-foreground-extract.[ch]: thin wrapper around
the new segmentation algorithm.
* tools/pdbgen/pdb/drawable.pdb: added a first draft of a PDB API
for foreground extraction.
* app/pdb/drawable_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpdrawable_pdb.[ch]: regenerated.
2005-07-09 Sven Neumann <sven@gimp.org>
* app/core/gimpchannel.c (gimp_channel_real_feather):
gaussian_blur_region() writes to the pixel data, need to initialize
the pixel region with dirty == TRUE;
* app/paint-funcs/paint-funcs-generic.h: formatting.
2005-07-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-pick-color.c (gimp_image_pick_color): if
sample_merged is FALSE and drawable is NULL, just get the image's
active drawable instead of bailing out.
* app/widgets/gimpcursorview.c (gimp_cursor_view_update_cursor):
use gimp_image_pick_color() insted of duplicating its code.
2005-07-05 Sven Neumann <sven@gimp.org>
* app/core/cpercep.[ch]: renamed cpercep_init_conversions() to
cpercep_init(); only initialize the tables on the first call.
* app/core/gimpimage-convert.c: changed accordingly.
2005-06-26 Manish Singh <yosh@gimp.org>
* app/core/gimpenvirontable.c: feed environment values through
gimp_config_path_expand, so ${gimp..} variables can be used.
* plug-ins/pygimp/Makefile.am: define PYTHONPATH in terms of
${gimp_plug_in_dir}. Use ; as a path separator on windows.
With this final changes, pygimp should work out of the box on
Win32 now. Thanks to Michael Schumacher and lode leroy for
figuring out the high level details and testing.