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.
2005-06-18 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c (gimp_imagefile_get_new_pixbuf):
simplified, use the eek wilber icon if the file doesn't exist.
2005-06-17 Sven Neumann <sven@gimp.org>
* app/core/gimpselection.c (gimp_selection_extract): fixed
long-standing bug in the calculation of the depth of the
tile-manager created when copying from an indexed drawable.
2005-06-15 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c (gimp_imagefile_load_thumb):
* app/widgets/gimpthumbbox.c (gimp_thumb_box_auto_thumbnail):
don't display a preview and don't attempt to create one if the
image file does not exist any longer (bug #307672).
2005-06-14 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.c (gimp_image_raise_layer)
(gimp_image_raise_layer_to_top): allow to raise a layer w/o an
alpha channel.
2005-06-10 Michael Natterer <mitch@gimp.org>
Fix bug #134304, as far as it's fixable:
* app/core/gimp-edit.c (gimp_edit_paste_as_new): handle pasting
buffers without alpha. Also don't uselessly convert all buffers
to RGB but create an image in the buffer's color space.
(gimp_edit_extract): call gimp_selection_extract() with
add_alpha = FALSE.
* app/core/gimpselection.c (gimp_selection_extract): set add_alpha
to TRUE if there is a selection, because the selection could have
any shape.
2005-06-08 Sven Neumann <sven@gimp.org>
Removed "stingy-memory-use" all over the place. This feature was
really not that useful anymore. The GUI for the preference option
was already removed for GIMP 2.2. Fixes bug #306617.
* app/config/gimpbaseconfig.[ch]: set IGNORE flag on
"stingy-memory-use".
* app/config/gimpcoreconfig.h: added a comment that the
font_path_writable variable is unused.
* app/base/temp-buf.[ch]: removed code that used to deal with
swapping temp-bufs to disk.
* app/base/base.c: made base_config a static variable.
* app/core/gimpdata.[ch]
* app/core/gimpdatafactory.[ch]: removed stingy_memory_use
parameter from data construction methods.
* app/core/gimp-gradients.c
* app/core/gimpbrush-load.[ch]
* app/core/gimpbrush.[ch]
* app/core/gimpbrushgenerated.[ch]
* app/core/gimpbrushpipe.[ch]
* app/core/gimpcontext.c
* app/core/gimpgradient-load.[ch]
* app/core/gimpgradient.[ch]
* app/core/gimppalette-import.c
* app/core/gimppalette.[ch]
* app/core/gimppattern.[ch]: changed accordingly.
* app/core/gimpitem-align.[ch]: newly created to
hold code for gimp_item_align().
* app/core/Makefile.am: add new files
* app/core/gimpitem.[ch]: remove code from here.
* app/tools/gimpaligntool.c: fix includes and remove
unneeded includes.
2005-05-31 Sven Neumann <sven@gimp.org>
* app/core/gimppalette-import.c: applied patch from Joao
S. O. Bueno Calligaris that adds support for loading PSP color
palette files (bug #305956).
2005-05-26 Sven Neumann <sven@gimp.org>
* app/core/gimpdata.[ch]: added MIME type as a construct property
to GimpData.
* app/core/gimpbrush-load.c
* app/core/gimpbrushgenerated.c
* app/core/gimpbrushpipe.c
* app/core/gimpgradient-load.c
* app/core/gimppalette.c
* app/core/gimppattern.c: set the MIME type when loading a data
object from file. MIME types needs review and GimpPalette isn't
quite done yet...
* app/core/gimpdashpattern.c: cosmetics.
2005-05-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpviewable.[ch]: added virtual function
GimpViewable::get_size() and public API gimp_viewable_get_size()
which return width and height and a boolean indicating if the
viewable has a size at all.
Added default implementation of GimpViewable::get_popup_size()
using the new get_size() API.
* app/core/gimpbrush.c
* app/core/gimpbuffer.c
* app/core/gimpdrawable.c
* app/core/gimpimage.c
* app/core/gimppattern.c: implement GimpViewable::get_size().
* app/core/gimpbrush.c
* app/core/gimppattern.c: removed GimpViewable::get_popup_size()
implementations, the default one is good enough.
* app/core/gimpbrushpipe.c (gimp_brush_pipe_get_popup_size):
redirect to gimp_viewable_get_size() instead of duplicating its
return values.
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpview.c: allow pixbuf dragging out of any
viewable that has a size.
* app/widgets/gimpdrawabletreeview.c: removed pixbuf dragging code
here.
* app/widgets/gimpdnd.c: set gimp busy around encoding/decoding
pixbufs into/from GtkSelectionData, because it can be a time
consuming operation.
2005-05-22 Sven Neumann <sven@gimp.org>
* tools/gimp-mkenums (parse_trigraph): use quotewords() from
Text::ParseWords to split the trigraph. This function correctly
deals with commas inside quotes.
* app/core/core-enums.[ch]: tweaked descriptions in the
GimpDashPreset enum.
2005-05-22 Sven Neumann <sven@gimp.org>
* app/core/gimpdashpattern.c: minor cleanup.
* app/widgets/gimpcellrendererdashes.c: don't draw a background,
draw the dash pattern twice, use the correct widget state.
2005-05-21 Sven Neumann <sven@gimp.org>
* app/core/gimpdashpattern.[ch]: added utility functions to copy
and to free a dash pattern.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcellrendererdashes.[ch]: added a simple cell
renderer to visualize a dash pattern.
* app/widgets/gimpstrokeeditor.c: show previews of the dash
presets in the combo-box.
2005-05-19 Sven Neumann <sven@gimp.org>
* app/core/gimpstrokeoptions.[ch]: renamed property "miter" to
"miter-limit" and added a description to be used as a tooltip in
the stroke editor.
* app/core/gimpdrawable-stroke.c
* app/widgets/gimpstrokeeditor.c: changed accordingly.
2005-05-19 Sven Neumann <sven@gimp.org>
* app/core/gimpstrokeoptions.[ch]
* app/widgets/gimpdasheditor.c
* app/widgets/gimpstrokeeditor.c: small change to the internal API
to reduce code and conversion between GArray and GValueArray.
2005-05-19 Sven Neumann <sven@gimp.org>
* app/core/gimpdashpattern.[ch]
* app/widgets/gimpdasheditor.c: moved more code out of
GimpDashEditor to gimpdashpattern.c. Fixed bug in last commit.
2005-05-19 Sven Neumann <sven@gimp.org>
* app/core/gimpdashpattern.[ch]
* app/widgets/gimpdasheditor.c: moved code out of GimpDashEditor
to gimpdashpattern.c.
2005-05-19 Sven Neumann <sven@gimp.org>
* app/core/Makefile.am
* app/core/gimpdashpattern.[ch]: new files with coode split out of
gimpstrokeoptions.c.
* app/core/gimpstrokeoptions.c: use gimp_dash_pattern_from_preset().
2005-05-06 Sven Neumann <sven@gimp.org>
* app/actions/layers-actions.c
* app/core/gimpimage.c (gimp_image_position_layer)
* app/widgets/gimplayertreeview.c (gimp_layer_tree_view_drop_possible):
drop the limitation that layers not at the bottom of the stack
have to have an alpha channel. Allow the user to move the
background layer up in the stack or reposition it using DND.
* tips/gimp-tips.xml.in: changed the relevant tip and some more.
2005-04-29 Sven Neumann <sven@gimp.org>
* app/core/gimpprojection-construct.c (gimp_projection_construct):
use copy_region() instead of using tile_manager_map_over_tile()
directly.
2005-04-29 Sven Neumann <sven@gimp.org>
* app/core/gimpprojection-construct.c: save COW projection code from
bit-rotting. It can now be enabled again (but is definitely broken).
2005-04-27 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-colormap.[ch]: declared the return value of
gimp_image_get_colormap() as const.
* app/display/gimpdisplayshell-render.c: added some const qualifiers.
2005-04-24 Hans Breuer <hans@breuer.org>
* menus/makefile.msc : build menus with nmake, too
menus/Makefile.am : added to EXTRA_DIST
* **/makefile.msc app/gimpcore.def : updated
* app/base/tmp-buf.c : there is no pid_t with msvc so typedef one
2005-04-19 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-snap.c: bail out early if the coords are
out-of-image plus a border of the snapping epsilon, and not just
out-of-image. Fixes bug #169892.
2005-04-16 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.c (gimp_context_real_set_brush)
(gimp_context_real_set_pattern): no need to get base_config twice
in the same function.
* app/widgets/gimpblobeditor.h: include the parent class.
* app/widgets/gimpdataeditor.c (gimp_data_editor_init): set the
name entry insensitive.
2005-04-16 Sven Neumann <sven@gimp.org>
Applied a patch (with minor modifications) from Karine Delvare
that makes it possible to choose between various ways to remove
color from a drawable (bug #155507):
* libgimpbase/gimpbaseenums.h: added new enum GimpDesaturateMode.
* libgimpbase/gimpbaseenums.c
* libgimp/gimpenums.c.tail
* plug-ins/pygimp/gimpenums.py
* tools/pdbgen/enums.pl: regenerated.
* app/core/gimpdrawable-desaturate.[ch]: implement other formulas
to remove colors from a drawable.
* tools/pdbgen/pdb/color.pdb: let gimp_desaturate() call
gimp_drawable_desaturate() with GIMP_DESATURATE_LIGHTNESS so that
it behaves like it always did.
* app/pdb/color_cmds.c: regenerated.
* app/dialogs/Makefile.am
* app/dialogs/desaturate-dialog.[ch]: new files that define a simple
dialog to choose a mode for desaturation.
* app/actions/drawable-actions.[ch]: use the new dialog.
2005-04-15 Michael Natterer <mitch@gimp.org>
Added loading of Photoshop brushes. Fixes bug #163047:
* app/core/Makefile.am
* app/core/gimpbrush-load.[ch]: new files holding all brush
loading code. Added .abr loader based on a patch by Adrian
Likins. Didn't add a new brush subclass as in the original patch,
but only a loading function which loads the brushes into standard
GimpBrush objects. Did misc fixes to the code, needs further
cleanup.
* app/core/gimpbrush.[ch]: removed brush loading code here.
* app/core/gimpbrushpipe.c: changed #includes accordingly.
* app/core/gimp.c (gimp_real_initialize): register the new load
functions and their extensions with the brush factory.
2005-04-13 Sven Neumann <sven@gimp.org>
* app/config/gimpcoreconfig.c: set GIMP_CONFIG_PARAM_CONFIRM on
the "font-path" property. Set GIMP_CONFIG_PARAM_IGNORE for
"font-path-writable".
* app/dialogs/preferences-dialog.c: don't use "font-path-writable".
* app/core/gimp.c (gimp_restore)
* app/text/gimp-fonts.c: handle --no-fonts similar to --no-data
and allow to load the fonts later by pressing "Refresh" in the
fonts dialog.
2005-04-13 Sven Neumann <sven@gimp.org>
* app/app_procs.c: register handler for the "GimpPaint" log domain.
* app/core/gimpdatafactory.c (gimp_data_factory_init): don't load
any data if TRUE is passed for no_data.
* app/tools/gimppainttool.c (gimp_paint_tool_draw): handle a NULL
brush gracefully.
2005-04-09 Michael Natterer <mitch@gimp.org>
Implement dragging and dropping in any GdkPixbuf supported
format. Fixes bug #172794 and bug #172795.
* app/core/gimplayer.[ch] (gimp_layer_new_from_region): new
function which contains all stuff that was in
gimp_layer_new_from_tiles().
(gimp_layer_new_from_tiles): use above function.
(gimp_layer_new_from_pixbuf): new function.
* app/widgets/Makefile.am
* app/widgets/gimppixbuf.[ch]: new files containing GdkPixbuf
utility functions for clipboard and DnD.
* app/widgets/gimpselectiondata.[ch]: removed
gimp_selection_data_set,get_pixbuf(), GTK+ provides the same API.
Also removed GdkAtom parameters all over the place because it's
always the same as selection_data->target.
* app/widgets/gimpclipboard.c: use the new pixbuf utility
functions and gtk_selection_data_set,get_pixbuf().
* app/widgets/widgets-enums.h
* app/widgets/gimpdnd.[ch]: removed never-implemented
GIMP_DND_TYPE_PNG and added a generic GIMP_DND_TYPE_PIXBUF
instead. Added API to drag and drop GdkPixbufs which transparently
converts from/to and GdkPixbuf-supported image format. Removed
passing around of GdkAtoms, since they were always the same
as selection_data->target.
* app/widgets/gimpdnd-xds.[ch]: follow GdkAtom parameter removal.
* app/widgets/gimpcontainertreeview.[ch]: added virtual function
GimpContainerTreeView::drop_pixbuf().
* app/widgets/gimpcontainertreeview-dnd.c: dispatch drop_pixbuf().
* app/widgets/gimplayertreeview.c: implement drop_pixbuf().
* app/widgets/gimpdrawabletreeview.c: allow to drag all drawables
as pixbufs.
* app/display/gimpdisplayshell-dnd.c: allow dropping of pixbufs.
2005-04-05 Sven Neumann <sven@gimp.org>
* app/core/core-enums.[ch]
* app/core/gimpimage.c
(gimp_image_remove_layer, gimp_image_remove_channel): handle a
floating selection attached to the layer or channel that is being
removed. Fixes bug #168582 but doesn't handle floating selections
attached to layer masks.
2005-04-04 Sven Neumann <sven@gimp.org>
* app/core/gimpdata.c (gimp_data_create_filename): return early if
called for an internal data object. Fixes bug #172581.
2005-04-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch]: added new signals "sample-point-added"
and "sample-point-removed" and public functions to emit them.
* app/core/gimpimage-sample-points.c (gimp_image_add_sample_point)
(gimp_image_remove_sample_point): emit them accordingly.
* app/core/gimpimage-undo-push.c (undo_pop_image_sample_point):
ditto.
(undo_pop_image_guide)
(undo_pop_image_sample_point): added comments why we add/remove
stuff manually instead of using the GimpImage APIs.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcursorview.[ch]
* app/widgets/gimpsamplepointeditor.[ch]: new widgets.
GimpCursorView is a replacement for the info window's "Cursor"
page, GimpSamplePointEditor is a view on an image's sample points.
The sample point editor does nothing yet except keeping a 2x2 grid
of GimpColorFrames. Addresses bug #137776.
* app/dialogs/dialogs.c
* app/dialogs/dialogs-constructors.[ch]: register the new widgets
as dockable dialogs.
* app/actions/dialogs-actions.c (dialogs_dockable_actions)
* menus/dialogs-menuitems.xml: added actions and menu items for
the new dialogs.
* app/display/gimpdisplayshell-cursor.c
(gimp_display_shell_update_cursor)
(gimp_display_shell_clear_cursor): update the new cursor view.
* app/widgets/gimphelp-ids.h: help IDs for the new dialogs.
* app/widgets/widgets-enums.[ch] (enum GimpColorFrameMode):
changed description "Pixel values" to "Pixel" because the former
was too long.
2005-03-25 Sven Neumann <sven@gimp.org>
* app/core/gimpmarshal.list: added VOID: OBJECT, OBJECT.
* app/widgets/gimpview.[ch]: pass old and new viewable in the
"set-viewable" signal.
* app/widgets/gimptoolbox-image-area.c: don't add the XDS drag source
more than once.
2005-03-24 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.[ch]
* app/core/gimpimage-undo-push.[ch]
* app/core/gimplayermask.[ch]: eek, my fault... removed
GIMP_UNDO_LAYER_MASK_EDIT stuff again because that just determines
the active drawable, which must not affect undo.
* app/pdb/pdb_glue.h
* app/actions/layers-commands.c (layers_mask_edit_cmd_callback):
changed accordingly.
(layers_mask_disable_cmd_callback): reverted last change. the old
code was correct.
2005-03-24 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.[ch] (enum GimpUndoType) : reordered values
so layer and layer mask undos are grouped together.
* app/core/gimpimage-undo-push.[ch]: same here. Changed the new
layer mask undos to have 3 simple push functions for the 3
properties, just as the layer property undos. Also made the code
look like the layer properties undo stuff.
* app/core/gimplayermask.c (gimp_layer_mask_set_apply,edit,show):
changed accordingly.
* app/core/core-enums.[ch]
* app/core/gimpimage-undo-push.[ch]
* app/core/gimplayermask.[ch]:
* app/pdb/pdb_glue.h
* app/actions/layers-commands.c: try again from clean tree;
hopefully will work this time. (bug #148852)
2005-03-24 Michael Natterer <mitch@gimp.org>
Added API to explicitly register dynamic menu items hierarchies.
Fixes bug #170623.
* app/core/gimp.h: added "GSList *plug_in_menu_branches".
* app/plug-in/plug-in-types.h
* app/plug-in/plug-ins.[ch]: added API to register plug-in menu
branches, just as for locale and help domans. Cleaned up handling
of locale and help domains.
(plug_ins_exit): free the registered menu branches.
* app/actions/plug-in-actions.[ch] (plug_in_actions_add_branch):
new function to explicitly add a menu branch action.
(plug_in_actions_setup): add the registered menu branches to each
new action group.
(plug_in_actions_build_path): always strip the untranslated menu
path from underlines before using it as hash table key or action
name.
* app/menus/plug-in-menus.c (plug_in_menus_add_proc): changed
accordingly: strip underlines from untranslated menu paths before
passing them to plug_in_menus_build_path().
* app/core/gimp-gui.[ch]: added gimp_menus_create_branch() plus
vtable entry to access the new stuff from the core. Renamed the
functions desling with items from gimp_foo_entry() to
gimp_foo_item().
* app/gui/gui-vtable.c: implement create_branch() and add the
branch action to all existing "plug-in" action groups. Note that
we don't need to create any menus because that happens implicitly
when adding menu items.
* tools/pdbgen/pdb/plug_in.pdb (plugin_menu_branch_register): new
PDB wrapper to access branch registering from plug-ins.
* app/pdb/internal_procs.c
* app/pdb/plug_in_cmds.c
* libgimp/gimpplugin_pdb.[ch]: regenerated.
* libgimp/gimp.def: changed accordingly.
* plug-ins/script-fu/script-fu-scripts.c (script_fu_find_scripts):
register the menu branches for all included scripts.
* app/core/core-enums.[ch]
* app/core/gimpimage-undo-push.[ch]
* app/pdb/pdb_glue.h
* app/actions/layers-commands.c: make layer mask property changes
undoable, should fix bug #148852. Note that a little shape-layer
stuff is in core-enums, will be needed shortly.
* app/tools/gimptransformtool.c
* app/tools/gimpfliptool.c
* app/core/gimpdrawabletransform.c: avoid messages and critical
error when transforming a drawable that does not intersect
the selection.
* app/core/gimpimage-convert.c: check for non-empty palette
before converting to indexed using custom palette, otherwise
show warning and abort; fixes bug #170973.
2005-03-19 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-sample-points.c
* app/display/gimpdisplayshell-draw.c
* app/display/gimpdisplayshell.c
* app/tools/gimpcolortool.c: make sure sample points always have
coordinates in the range [0..width/height-1], also added lots of
+0.5 because they live at the pixels' centers, not at their
borders. Fixed drawing of sample points at the display borders.
* app/core/gimpimage-convert.c: when converting grayscale
to mono, treat the palette as gray rather than rgb, giving
more than tenfold speedup. Fixes bug #170801.
2005-03-09 Michael Natterer <mitch@gimp.org>
More sample point stuff. Addresses bug #137776.
* app/core/gimpimage-sample-points.c
* app/core/gimpimage-undo-push.c: append, not prepend the sample
paints to the image's list because their index matters. Update
sample points when their index changes.
* app/display/gimpcanvas.[ch]: added own sytles for the sample
points. Added gimp_canvas_draw_text() which uses a PangoLayout
which is cached in the canvas.
* app/display/gimpdisplayshell-draw.c
(gimp_display_shell_draw_sample_point): draw the sample points
more distinct from guides using the new canvas APIs above.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_[hv]ruler_button_press): factored out all
code to
(gimp_display_shell_ruler_burron_press): which takes a boolean
"horizontal" variable and allows to add sample points with
<control>+drag.
* app/tools/gimpcolortool.[ch]: implement adding, moving and
removing of sample points in the same way as the move tool moves
guides.
* app/tools/gimpcolorpickertool.c
(gimp_color_picker_tool_oper_update): chain up.
2005-03-08 Sven Neumann <sven@gimp.org>
* app/core/gimpgradient.c (gimp_gradient_segment_split_uniform):
fixed brokeness introduced I when eliminating gradient->last_visited.
2005-03-08 Sven Neumann <sven@gimp.org>
* app/core/gimppalette.[ch]: renamed gimp_palette_[gs]et_n_columns
to gimp_palette_[gs]et_num_columns().
* app/dialogs/palette-import-dialog.c
* app/widgets/gimppaletteeditor.c: changed accordingly.
* tools/pdbgen/pdb/palette.pdb: added new PDB function to control
the number of columns used when displaying a palette (bug #169370).
* app/pdb/internal_procs.c
* app/pdb/palette_cmds.c
* libgimp/gimppalette_pdb.[ch]: regenerated.
* libgimp/gimp.def: updated.
2005-03-01 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.[ch]: added VISIBLE and LINKED to the
GimpImageResizeLayers enum.
* app/core/gimpimage-resize.c (gimp_image_resize_with_layers):
changed accordingly. Also looks nicer now.
2005-02-27 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-blend.c: fixed rounding errors in the
non-dithered case and optimized the dithering code.
2005-02-27 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-blend.c: (hopefully) improve the threaded
performance by using a dedicated RNG per tile.
2005-02-27 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-convert-fsdither.h
* app/core/gimpimage-convertc: save a kilobyte of data by using
guchar for the range array.
2005-02-27 Sven Neumann <sven@gimp.org>
* app/core/gimpgradient.[ch]: removed the "last_visited" field
from GimpGradient. Instead added the new function
gimp_gradient_get_color_at_segment() that allows the caller to do
the same optimization.
* app/actions/gradient-editor-commands.c
* app/core/gimpdrawable-blend.c
* app/core/gimppalette-import.c
* app/paint/gimppaintoptions.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimpviewrenderergradient.c: changed accordingly.
* app/pdb/gradient_cmds.c
* app/pdb/gradients_cmds.c: regenerated.
2005-02-24 Michael Natterer <mitch@gimp.org>
Allow to resize layers with the image. Fixes bug #87789.
* app/core/core-enums.[ch]: added enum GimpImageResizeLayers which
can be one of { NONE, MATCHING, ALL }.
* app/core/gimpimage-resize.[ch]: added new function
gimp_image_resize_with_layers().
* app/dialogs/resize-dialog.[ch]: added a "Layers" frame
containing a "Resize Layers" combo box offering the choices above.
Changed GimpResizeCallback signature accordingly.
* app/actions/image-commands.c
* app/actions/layers-commands.c: changed accordingly.
2005-02-20 Manish Singh <yosh@gimp.org>
Support for custom plug-in interpreters, independent of OS support.
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpinterpreterdb.[ch]: implemented GimpInterpreterDB,
which handles registering and resolving custom plug-in interpreters.
* app/core/gimp.[ch]: keep a GimpInterpreterDB around.
* app/config/gimpcoreconfig.[ch]
* app/config/gimprc-blurbs.h
* app/dialogs/preferences-dialog.c
* app/dialogs/user-install-dialog.c
* app/widgets/gimphelp-ids.h: interpreter-path config stuff.
* app/plug-in/plug-in.c: use registered interpreters when running
plug-ins.
* themes/Default/images/preferences/Makefile.am
* themes/Default/images/preferences/folders-interp.png: just copied
folders-plug-ins.png here, need a better one.
* data/interpreters/Makefile.am: creates system interpreter directory.
* data/interpreters/default.interp: sample interpreter file info.
* data/Makefile.am
* configure.in: add data/interpreters directory.
* plug-ins/pygimp/Makefile.am: install pygimp.interp, which configures
the python interpreter to point to the python we were built with. Also
register the .py extension.
* etc/gimprc
* docs/gimprc.5.in: regenerated
2005-02-20 Sven Neumann <sven@gimp.org>
* app/dialogs/user-install-dialog.c: migrate gimp-2.2 settings if
available. Pass the version to gimp_templates_migrate().
* app/core/gimp-templates.[ch] (gimp_templates_migrate): if
migrating templaterc from ~/.gimp-2.0, do a case-insensitive match
on template names to accommodate for the fact that we changed the
spelling of some default templates between 2.0 and 2.2.
2005-02-19 Hans Breuer <hans@breuer.org>
* app/base/pixel-processor.c : TILE_WIDTH is used unconditionally
so always include "tile.h"
* app/base/tile-swap.c : WIN32 needs <process.h> for _getpid()
* app/dialogs/user-install-dialog.c : include gimpwin32-io.h
* libgimpbase/gimpwin32-io.h : there are no group or other
flags in msvcrt, define S_IGRP etc in terms of _S_IREAD etc
* plug-ins/script-fu/script-fu.c plug-ins/script-fu/siod-wrapper.c :
no script-fu server on win32, make respective function calls conditional
* libgimpconfig/makefile.msc : new file
* **/makefile.msc app/gimpcore.def : updated, gimp builds
and runs once more with ms toolchain
2005-02-18 Sven Neumann <sven@gimp.org>
* app/core/Makefile.am
* app/core/gimpdrawable-convert.[ch]: new files holding
gimp_drawable_convert_rgb() and gimp_drawable_convert_grayscale()
moved out of gimpimage-convert.[ch].
* app/core/gimpchannel.c
* app/core/gimpimage-convert.[ch]
* app/core/gimplayer.c: changed accordingly.
2005-02-18 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-convert.c: some simple loop unrolling,
converted tabs to spaces and sprinkled the code with const
qualifiers.
2005-02-16 Sven Neumann <sven@gimp.org>
* app/base/pixel-processor.[ch]: added a variant of
pixel_regions_process_parallel() that takes a progress callback and
progress data. Does only work for the single-threaded case yet.
* app/core/gimpdrawable-blend.c (gradient_fill_region): parallelized.
2005-02-15 Sven Neumann <sven@gimp.org>
* app/core/gimpimagemap.[ch]: changed GimpImageMapApplyFunc to
be compatible with PixelProcessorFunc.
* app/base/color-balance.[ch]
* app/base/colorize.[ch]
* app/base/gimplut.[ch]
* app/base/hue-saturation.[ch]
* app/base/threshold.[ch]: removed wrappers that used to
shift parameters around to match GimpImageMapApplyFunc and
PixelProcessorFunc signatures.
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpcolorbalancetool.c
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c
* app/tools/gimpposterizetool.c
* app/tools/gimpthresholdtool.c: changed accordingly.
* tools/pdbgen/pdb/color.pdb: use pixel_region_process_parallel()
for all color operations.
* app/pdb/color_cmds.c: regenerated.
2005-02-14 Sven Neumann <sven@gimp.org>
* app/base/gimphistogram.[ch]: allocate temporary histogram slots
on demand and provide an array with enough slots for the maximum
number of threads. gimp_histogram_new() doesn't need a
GimpBaseConfig parameter any longer.
* app/core/gimpdrawable-equalize.c
* app/core/gimpdrawable-levels.c
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c
* app/tools/gimpthresholdtool.c
* app/widgets/gimphistogrameditor.c
* tools/pdbgen/pdb/color.pdb: changed accordingly.
* app/pdb/color_cmds.c: regenerated.
2005-02-13 Sven Neumann <sven@gimp.org>
* app/core/gimpprogress.c (gimp_progress_start): accept an empty
string.
* app/plug-in/plug-in-progress.c: if NULL is passed as message to
plug_in_progress_start(), set an empty string on the progress.
* tools/pdbgen/pdb/progress.pdb:
* libgimp/gimpprogress.[ch]: wrap the new gimp_progress_set_text()
PDP function with a function that accepts printf-like arguments.
* libgimp/gimpprogress_pdb.[ch]: regenerated.
* lots of plug-ins, most of them file plug-ins:
use gimp_progress_init(NULL) followed by gimp_progress_set_text()
to initialize the progress using the new API instead of constructing
a temporary string.
2005-02-12 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpbaseenums.h (enum GimpProgressCommand):
added GIMP_PROGRESS_COMMAND_PULSE.
* libgimpbase/gimpbaseenums.c
* plug-ins/pygimp/gimpenums.py
* tools/pdbgen/enums.pl: regenerated.
* app/core/gimppdbprogress.c: implement GimpProgress::pulse()
and send a PULSE command to the callback.
* libgimp/gimpprogress.c: handle PULSE by calling the set_value()
callback with a value of -1 and document that hack in the API docs.
* libgimp/gimpprogressbar.c: interpret -1 as request to pulse.
2005-02-12 Sven Neumann <sven@gimp.org>
* app/core/gimpprogress.[ch]: added GimpProgress::pulse.
* app/display/gimpdisplay.c
* app/display/gimpstatusbar.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpprogressbox.c
* app/widgets/gimpprogressdialog.c
* app/widgets/gimpthumbbox.c: implement it in the classes that
implement the GimpProgress interface.
* app/plug-in/plug-in-progress.[ch]: allow plug-ins to pulse their
progress.
* tools/pdbgen/pdb/progress.pdb: added a procedure for the new
functionality.
* app/pdb/internal_procs.c
* app/pdb/progress_cmds.c
* libgimp/gimpprogress_pdb.[ch]: regenerated.
* libgimp/gimp.def: updated.
2005-02-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpimagefile.c
* app/widgets/gimpthumbbox.c: enable explicit (not automatic while
browsing the list of files) thumbnailing of remote files
2005-02-07 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c (gimp_imagefile_get_desc_string):
changed "Remote Image" to "Remote File". The state of the
thumbnail doesn't tell us if this is an image file at all.
* app/widgets/gimpthumbbox.c: don't auto-thumbnail remote files.
* libgimpthumb/gimpthumb-utils.[ch]
* libgimpthumb/gimpthumbnail.c: do the same workaround for UNC
paths as in file_utils_filename_from_uri().
2005-02-03 Sven Neumann <sven@gimp.org>
* app/core/gimpimagemap.c (gimp_image_map_do): fixed handling of
pixel region that broke with my latest change. Fixes bug #166126.
2005-02-02 Michael Natterer <mitch@gimp.org>
* app/core/gimp-utils.[ch] (gimp_check_glib_version): removed this
function.
* app/sanity.c (sanity_check_glib): use glib_check_version()
instead and set required version to 2.6.0.
2005-02-02 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-convert.c (gimp_image_convert): relax/rigor
the floating selection around the convert operations so color
analysis for indexed conversion works on the floating selection's
drawable original pixels, and not on the composited one.
Fixes bug #165342.
2005-02-01 Sven Neumann <sven@gimp.org>
* app/core/gimpimagemap.c (gimp_image_map_do): tiny optimization
based on a patch by Bill Skaggs. Process up to 16 tiles in one go
before updating the display.
2005-01-23 Sven Neumann <sven@gimp.org>
* app/core/core-enums.h
* libgimpbase/gimpbaseenums.h: moved enums to libgimpbase (from
app/core and libgimp). The remaining enums in app/core/core-enums.h
need special treatment.
* app/core/core-enums.c:
* libgimp/gimpenums.h
* libgimpbase/gimpbaseenums.c
* tools/pdbgen/enums.pl: regenerated.
* libgimpbase/gimpbase.def
* libgimp/gimp.def: updated.
2005-01-21 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-transform.c: applied a patch from Geert
Jordaens that seems to fix drawable transformation using the new
Lanczos interpolation routine :)
2005-01-19 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-transform.c: applied a patch from Geert
Jordaens that fixes the crash in the drawable transformations
using the Lanczos interpolation type. The result is somewhat wrong
though :(
2005-01-18 Michael Natterer <mitch@gimp.org>
* app/core/gimpparasitelist.c (parasite_serialize): use
gimp_config_writer_data() to write the parasite data because
it's binary and can contain '\0'.
(gimp_parasite_list_deserialize): use gimp_scanner_parse_data() to
read it. Still accepts the old file format for backward
compatibility. Fixes bug #163131.
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel.c: implement GimpItem::convert(). Handles
any drawable, including conversion to GRAY, flattening and
resizing.
* app/widgets/gimpchanneltreeview.c: implement dropping of all
kinds of drawables as new channels. Fixes bug #158133.
Simplified component dropping by removing stuff which is done by
gimp_item_convert() now.
2005-01-15 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-transform.c
* app/paint-funcs/scale-funcs.c: minor cleanups to the new Lanczos
interpolation routines. Drawable transformations do still crash :(
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/core/gimpitem.c
* app/core/gimpdrawable.c
* app/vectors/gimpvectors.c: made GimpItem::scale() and ::resize()
work on unattached items.
* app/widgets/gimplayertreeview.c
(gimp_layer_tree_view_drop_component): fix drop index.
* app/widgets/gimpchanneltreeview.c: implement dropping of
components as new channels. Fixes bug #158483.
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel.c (gimp_channel_new*): don't require a
non-NULL color parameter (just leave the default color untouched
if NULL is passed).
* app/actions/channels-commands.c
* app/core/gimpchannel-select.c: pass NULL as color for temporary
channels or channels where we used to pass black.
2005-01-14 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.[ch] (enum GimpUndoType): added GIMP_UNDO_INK.
* app/paint/gimppaintcore.[ch]: added virtual function
GimpPaintCore::push_undo() and call it.
* app/paint/gimppaintcore-undo.[ch]: made it the default
implementation.
* app/paint/gimpink-blob.[ch]: added blob_duplicate().
* app/paint/gimpink.[ch]: added a "start_blob" (just like
GimpPaintCore::start_coords) which gets set whenever we start a
new stroke or line. Removed ink->lastx and ink->lasty because
they are the same as paint_core->last_coords.
* app/paint/Makefile.am
* app/paint/gimpink-undo.[ch]: new files implementing an
undo step for ink which restores the last blob used along
with the whole ink state. Fixes bug #163670.
2005-01-13 Michael Natterer <mitch@gimp.org>
Splitting GimpItem::convert() into two virtual functions was
apparently buggy over-engineering. Reverted that stuff and
implement item conversion much simpler:
* app/core/gimpitem.[ch]: have a single virtual function,
GimpItem::convert(), which takes a newly duplicated item and the
destination image.
(gimp_item_convert): simply call GimpItem::convert() on the result
of gimp_item_duplicate().
(gimp_item_real_convert): set the item's new image.
* app/core/gimplayer.c (gimp_layer_convert)
* app/vectors/gimpvectors.c (gimp_vectors_convert): changed
accordingly and chain up after, not before doing our own stuff
so the old image is still available as item->image for stuff
like colormap conversion. Fixes bug #163879.
2005-01-13 Sven Neumann <sven@gimp.org>
* app/units.c
* app/core/gimp-units.c
* app/core/gimp.c
* app/core/gimpunit.[ch]: added a utility function that frees the
memory allocated for user units. Minor cleanups.
2005-01-11 Sven Neumann <neumann@jpk.com>
* app/base/base-enums.[ch]
* app/core/gimpdrawable-transform.c
* app/core/gimpdrawable.c
* app/paint-funcs/Makefile.am
* app/paint-funcs/paint-funcs.[ch]
* app/paint-funcs/scale-funcs.[ch]: applied patch by Geert Jordaens
(after a good deal of reformatting for coding style compliance).
This factors the scale routines into their own file and adds a
sinc-based (Lanczos) interpolation routine (bug #162250).
2005-01-07 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-snap.c: moved variables to local scopes,
assign the snapped coords unconditionally (also if we don't snap),
cleanup.
(gimp_image_snap_rectangle): entirely rewritten to use local
mindist_x, mindist_y variables instead of fiddling with lots of
boolean variables. Implemented vectors snapping as if the required
GimpStroke functions existed (#defined them). Simon, your turn :)
2005-01-03 Michael Natterer <mitch@gimp.org>
Implemented "Snap to Canvas Edges" (fixes bug #152971) and
"Snap to Active Path" (half way done):
* app/core/gimpimage-snap.[ch]: added boolean snap_to_canvas and
snap_to_vectors parameters (snap_to_vectors works fine when
snapping to a point, but is unimplemented for snapping to a
rectangle).
* app/display/gimpdisplayshell.[ch] (struct GimpDisplayShell):
added snap_to_canvas and snap_to_vectors booleans.
* app/display/gimpdisplayshell-appearance.[ch]: added API to
get/set them.
* app/actions/view-actions.c
* app/actions/view-commands.[ch]
* app/widgets/gimphelp-ids.h: added actions, callbacks and help IDs.
* menus/image-menu.xml.in: added them to Image->View.
2004-12-31 Michael Natterer <mitch@gimp.org>
* app/core/gimppalette.[ch]: removed the just added
gimp_palette_insert_entry() and added a "gint position" parameter
to gimp_palette_add_entry() instead (no need to have two almost
identical functions).
* app/actions/palette-editor-commands.c
* app/core/gimppalette-import.c
* app/widgets/gimppaletteeditor.c
* tools/pdbgen/pdb/palette.pdb: changed accordingly.
* app/pdb/palette_cmds.c: regenerated.
2004-12-31 Michael Natterer <mitch@gimp.org>
Applied modified patch from Ben Campbell which adds drop
coordinates to the color drop callback and uses it to insert
colors in the palette editor. Extended the patch to add drop
coordinates to all drop callbacks.
* app/core/gimppalette.[ch]: added gimp_palette_insert_entry().
* app/display/gimpdisplayshell-dnd.[ch]: added drop coordinates
to all drop callbacks.
* app/dialogs/palette-import-dialog.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcontainerview.c
* app/widgets/gimpdnd.[ch]
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpfgbgeditor.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimppropwidgets.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimptoolbox-dnd.c
* app/widgets/gimptoolbox-image-area.c
* app/widgets/gimptoolbox-indicator-area.c
* app/widgets/gimptooloptionseditor.c
* libgimpwidgets/gimpcolorselect.c: changed accordingly. The passed
drop coordiantes are so far unused.
* app/widgets/gimppaletteeditor.c: use the drop coordinates to
insert the new color into the palette at the right place instead
of always appending. Fixes bug #150030.
* app/core/gimpbrush.c: don't ask for preview with
zero width or height, fixes bug #162232.
* app/base/brush-scale.c: remove tabs and trailing
whitespace.
* app/actions/documents-commands.c
* app/actions/file-commands.c
* app/dialogs/file-open-dialog.c
* app/dialogs/file-open-location-dialog.c
* app/display/gimpdisplayshell-dnd.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimptoolbox-dnd.c: replace % with space
in file name before showing error message,
fixes bug #162147.
* app/core/gimp-gui.c
* app/widgets/gimpmessagebox.c: be a bit more paranoid
about validating utf8 for messages.
2004-12-23 Michael Natterer <mitch@gimp.org>
Item conversion depends on the old *and* the new item type, so
it can't live in the old item's vtable only:
* app/core/gimpitem.[ch]: split GimpItem::convert() into
GimpItem::convert_from() (which is called on the old item and
creates the new item) and GimpItem::convert_to() (which is called
on the new item). This way functions from the old *and* new items'
vtables are called and it's possible to convert between item types
which live on different branches of the class hierarchy or to item
types which live further down the class tree than the old item.
(gimp_item_convert): call ::convert_to() on the new item created
by ::convert_from().
* app/vectors/gimpvectors.c: changed ::convert() implementation
to ::convert_from().
* app/core/gimplayer.c: changed ::convert() to ::convert_to().
Fixes bug #161877.
2004-12-15 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-preview.[ch]: added utility function
gimp_drawable_preview_bytes() and use it. Some cleanup,
untabified.
* app/widgets/gimpviewrendererdrawable.c: use
gimp_drawable_preview_bytes() instead of duplicating its code.
2004-12-15 Michael Natterer <mitch@gimp.org>
Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-preview.c (gimp_drawable_preview_scale):
fixed RGBA resampling by using premultiplied values for the
intermediate accumulation buffer. Fixes bugs #72880 and #72881.
2004-12-13 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-convert.c: applied patch from Adam D. Moss with
more fixed dither improvements (bug #161123).
2004-12-12 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-preview.c (gimp_drawable_get_sub_preview):
added precondition check for the coords of the src area. Some
cleanup and simplification.
* app/widgets/gimpviewrendererdrawable.c
(gimp_view_renderer_drawable_render): don't request sub-previews
of areas outside the drawable and don't reuqest previews of zero
width or height. Fixes crashes with the new preview code.
2004-12-12 Sven Neumann <sven@gimp.org>
Applied patch from Adam D. Moss (bug #161113):
* app/core/gimpimage-convert.c: Use a slower but much nicer
technique for finding the two best colours to dither between when
using fixed/positional dither methods. Makes positional dither
much less lame.
2004-12-12 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs.[ch]: added new function
copy_region_nocow() as a workaround for the fact that sharing
tiles with the projection is heavily broken.
* app/base/tile-manager.c (tile_invalidate): added a warning when
entering the code path that breaks badly.
* app/core/gimp-edit.[ch]: added gimp_edit_copy_visible(), using
the non-COW copying function above.
* app/widgets/gimphelp-ids.h: added GIMP_HELP_COPY_VISIBLE.
* app/actions/edit-actions.c
* app/actions/edit-commands.[ch]: added action & callback for
"edit-copy-visible".
* menus/image-menu.xml.in: added "edit-copy-visible" to the image
menu.
* tools/pdbgen/pdb/edit.pdb: added gimp_edit_copy_visible()
PDB wrapper.
* app/pdb/edit_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpedit_pdb.[ch]: regenerated.
* plug-ins/script-fu/scripts/copy-visible.scm: removed all code
and made it a backward compat wrapper around gimp-edit-copy-visible.
Fixes bug #138662.
2004-12-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-preview.c (gimp_drawable_preview_private):
implement it using gimp_drawable_get_sub_preview(). Removes
massive code duplication introduced by yesterday's fix.
2004-12-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-preview.[ch]: added new function
gimp_drawable_get_sub_preview() which returns a scaled preview of
a part of a drawable.
(gimp_drawable_preview_scale): made it work with srcPR.x and
srcPR.y being != 0.
* app/core/gimpimage-preview.c (gimp_image_get_new_preview)
* app/widgets/gimpviewrendererdrawable.c
(gimp_view_renderer_drawable_render): if the area of the drawable
preview is more than 4 times larger than the drawable itself (evil
heuristic, but seems to work fine), use above function to get a
sub-preview of the drawable instead of getting an insanely large
preview of the whole drawable just to use a small part of it.
Fixes bug #142074.
* app/core/gimpimage-preview.c (gimp_image_get_new_preview):
optimized by skipping layers which do not intersect with the
canvas.
* app/widgets/gimphistogrameditor.c: make histogram editor,
and therefore histogram dialog, use the selection. Should
resolve bug #72959.
* app/core/gimpdrawable-histogram.h: remove trailing
whitespace.
* app/core/gimpbrushpipe.c (gimp_brush_pipe_select_brush):
Don't initialize a new random number generator every time a brush
is selected from a pipe. Fixes bug #148205).
2004-12-05 Sven Neumann <sven@gimp.org>
* app/core/gimp-transform-utils.c (gimp_transform_matrix_flip_free):
applied patch from Joao S. O. Bueno that fixes bug #160339.
2004-12-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-undo-push.c (undo_pop_layer): when removing
the floating selection, call gimp_drawable_invalidate_boundary()
*before* setting gimage->floating_sel to NULL because otherwise
gimp_display_shell_selection_invis() won't clear the correct
selection bounds and leave garbage on screen. Fixes bug #160247.
2004-11-26 Sven Neumann <sven@gimp.org>
* app/core/gimpdocumentlist.c (gimp_document_list_deserialize):
don't add documents w/o a name to the list. Fixes bug #159510.
* app/core/gimpdrawable.c (gimp_drawable_resize): extended the
check to take the offsets into account as well.
2004-11-23 Sven Neumann <sven@gimp.org>
* app/core/gimp-templates.[ch]
* app/dialogs/user-install-dialog.c: merge the migrated user
templaterc with the system templaterc so the users who have used
gimp-2.0 before get our changes to the default templates.
2004-11-23 Michael Natterer <mitch@gimp.org>
* app/core/gimpparasitelist.c: cosmetics, untabified.
* libgimpbase/gimpparasiteio.[ch]: added g_return_if_fail()'s
to all functions.
(gimp_pixpipe_params_parse): changed "gchar*" param to "const
gchar*" (sortof API change, but these files are most probably only
used by GIMP itself). Still uses strtok() on the internal copy,
but at least not on the passed string.
* plug-ins/common/csource.c
* plug-ins/common/gif.c
* plug-ins/common/gih.c
* plug-ins/common/jpeg.c
* plug-ins/common/png.c
* plug-ins/common/tiff.c: use parasite getters instead of
accessing the scruct members directly. Always use g_strndup()
instead of just g_strdup() to get strings stored in parasites
because there is no guarantee that they are nul-terminated.
2004-11-23 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable.c (gimp_drawable_resize): do nothing if
the size doesn't change. This keeps text layers from being
modified when an image is cropped and the layer is entirely inside
the cropped area.
* menus/image-menu.xml.in: put the Quit item back for now. We
should think about this again in the next development cycle.
2004-09-21 Hans Breuer <hans@breuer.org>
* app/dialogs/makefile.msc : [new file]
app/dialogs/Makefile.am : added to EXTRA_DIST
* **/makefile.msc app/gimpcore.def : updated
* app/gimp.rc : let wilber be first
* app/widgets/gimppropwidgets.c : msvc6 can't cast uint64 either
* libgimpbase/gimpwin32-io.h : make up recent loss of ftruncate in GLib
* libgimpthumbnail/gimpthumbnail.c : <process.h> for getpid() on win32
* plug-ins/helpbrowser/dialog.c : include gimpwin32-io.h
* plug-ins/script-fu/siodwrapper.c plug-ins/script-fu/scrip-fu.c : there
is no script-fu-server on win32
2004-11-19 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/lib.pl
* tools/pdbgen/stddefs.pdb: added support for deprecated procedures
without any replacement.
* app/plug-in/plug-in-message.c (plug_in_handle_proc_run): added
a special warning for procedures without replacement.
* tools/pdbgen/pdb/drawable.pdb: deprecated drawable_set_image()
without any replacement and made it a nop (which fails if the
passed image is different from the drawable's image). It's not
needed any longer since 2.0 and moreover dangerous to use.
* app/pdb/drawable_cmds.c
* libgimp/gimpdrawable_pdb.[ch]: regenerated.
* app/core/gimpitem.c (gimp_item_set_image): replaced assertion
for gimp_item_is_floating() by !gimp_item_is_attached(). The
former warned when adding a layer with already added mask to the
image (which is a perfectly valid operation).
2004-11-17 Michael Natterer <mitch@gimp.org>
Made plug-in menu registration work the same way for ordinary and
temporary procedures. Addresses bug #158117.
* app/core/gimp-gui.[ch]: added "const gchar *menu_path" to
gimp_menus_create_entry().
* app/gui/gui-vtable.c (gui_menus_create_entry): if menu_path is
NULL, behave as before and create an action and its menu entries
for all the procedure's menu_paths. If it is non-NULL, skip action
creation and create a menu entry just for that path.
* app/plug-in/plug-ins.c (plug_ins_temp_proc_def_add): call
gimp_menus_create_entry() with a NULL menu path and call it if
proc_def->menu_paths *or* proc_def->menu_label is non-NULL, so
it creates at least the procedure's action, even if it has
no menu_path (yet).
* tools/pdbgen/pdb/plug_in.pdb (plugin_menu_register): check both
the list of procs and temp_procs when trying to register the
entry. Allow ordinary procedures and extensions to install stuff
at query() and init() time and allow temp_procs to install stuff
at any time.
* app/pdb/plug_in_cmds.c: regenerated.
2004-11-14 Sven Neumann <sven@gimp.org>
* app/core/gimppalette-import.c: applied a (slightly modified)
patch from Nickolay V. Shmyrev that changes the palette import
function to not only read palettes in the RIFF format but also
GIMP and Photoshop ACT palette files (bug #158297).
2004-11-13 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.[ch]
* app/file/file-open.c
* app/file/file-save.c: pass the MIME type from the save procedure
to gimp_imagefile_save_thumbnail() so that it can be stored with
the thumbnail.
* tools/pdbgen/pdb/fileops.pdb
* app/pdb/fileops_cmds.c: changed accordingly.
2004-11-13 Sven Neumann <sven@gimp.org>
* app/plug-in/plug-in-proc-def.[ch]
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-ins.[ch]: allow to associate a procedure for
thumbnail loading with any file load procedure.
* tools/pdbgen/pdb/fileops.pdb: export this functionality to the
PDB as gimp_register_thumbnail_loader().
* app/pdb/fileops_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpfileops_pdb.[ch]: regenerated.
* app/core/gimpimagefile.c
* app/file/file-open.[ch]: when creating a thumbnail for an image
file, use a thumbnail load procedure if available.
* plug-ins/common/svg.c: added "file_svg_load_thumb", a procedure
that allows to load a small preview of the SVG image.
2004-11-13 Simon Budig <simon@gimp.org>
* app/core/gimpimage-merge.c: Return the active layer instead of
the bottom layer when just merging down a floating selection.
Untabbified.
Fixes bug #158130.
2004-11-11 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.c
* app/core/gimpdrawable-blend.c
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpitem.c (gimp_item_stroke): added precondition
checks for gimp_item_is_attached() and removed checks for
gimp_item_get_image() to actually return an image (because it
always returns an image).
* tools/pdbgen/pdb/edit.pdb: let all wrappers fail if the drawable
is not attached.
* app/pdb/edit_cmds.c: regenerated.
* plug-ins/common/psd.c: Skip resources with unknown signatures
instead of quiting. Fixes bug #142468, and bug #152728
* app/core/gimpdrawable.c: in functions gimp_drawable_mask_bounds,
and gimp_drawable_mask_intersect: reinitialize the return values
after calling gimp_channel_bounds because gimp_channel_bounds
overwrites the values even when it returns false. This fixes the
bug where the gimp crashes when running color tools on layers
smaller than the image, and processes only part of the image when
the layer is larger than the image size.
2004-11-08 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable.c (gimp_drawable_mask_bounds)
(gimp_drawable_mask_intersect): initialize the return values before
checking if the drawable is attached. Keeps GIMP from going mad if
this assertion is ever triggered.
2004-11-02 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c (gimp_imagefile_save_thumb): minor
cleanup.
* libgimpthumb/gimpthumb-utils.c (_gimp_thumbs_delete_others): do
the right thing. Used to do the wrong thing when called with a
thumbnail size which is not from the GimpThumbSize enum.
2004-11-01 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-transform.[ch]
(gimp_drawable_transform_flip): renamed "center" to "auto_center".
(gimp_drawable_transform_rotate): added missing parameters so it
can be used for a to-be-added PDB wrapper offering a
GimpRotationType based rotate API.
Both functions: always clip when transforming a whole channel,
since they must keep their size.
(gimp_drawable_transform_affine): actually forward the passed
"clip_result" to transform_tiles_affine() instead of always FALSE.
2004-11-01 Michael Natterer <mitch@gimp.org>
* app/actions/drawable-actions.c: trailing whitespace.
* app/actions/drawable-commands.[ch]: partly revert alphabetical
ordering. Instead, group them as in drawable-actions.c and order
by alphabet inside the groups (different ordering in *-actions.c
and *-commands.c is inconvenient for the usual workflow of editing
both files at the same time).
* app/core/gimpdrawable-levels.h: indentation.
2004-10-27 Michael Natterer <mitch@gimp.org>
* app/core/gimp-transform-utils.[ch]. switch from x1,y1,x2,y2
bounding boxes to x,y,width,height ones. Added
gimp_transform_matrix_flip_free(). Renamed some parameters to be
consistent with others. Some internal cleanup.
* app/tools/gimpperspectivetool.c
* app/tools/gimpscaletool.c
* app/tools/gimpsheartool.c
* tools/pdbgen/pdb/drawable_transform.pdb
* tools/pdbgen/pdb/transform_tools.pdb: changed accordingly.
* tools/pdbgen/pdb/drawable_transform.pdb
* tools/pdbgen/pdb/transform_tools.pdb: guard all transform
wrappers with if(gimp_drawable_mask_intersect(...)), also the
ones which don't need the returned bounding box.
* tools/pdbgen/pdb/drawable_transform.pdb: renamed some parameters
and added gimp_drawable_transform_matrix() which takes the 9
coefficients of a 3x3 matrix for ultimate flexibility ;)
* app/pdb/drawable_transform_cmds.c
* app/pdb/internal_procs.c
* app/pdb/transform_tools_cmds.c
* libgimp/gimpdrawabletransform_pdb.[ch]: regenerated.
2004-10-26 Sven Neumann <sven@gimp.org>
Added new drawable transform API to the PDB. Largely based on
patches from Joao S. O. Bueno. Fixes bug #137053.
* app/core/gimpdrawable-transform.[ch]: added missing parameters
to gimp_drawable_transform_flip().
* tools/pdbgen/pdb/transform_tools.pdb: changed accordinly.
* app/base/base-enums.h
* app/core/core-enums.h: removed pdp-skip for GimpInterpolationType
and GimpTransformDirection enums.
* libgimp/gimpenums.h
* plug-ins/pygimp/gimpenums.py
* tools/pdbgen/enums.pl
* tools/pdbgen/groups.pl: regenerated.
* tools/pdbgen/Makefile.am
* tools/pdbgen/pdb/drawable_transform.pdb: added new file defining
the new PDB calls.
* app/pdb/Makefile.am
* app/pdb/drawable_transform_cmds.c
* app/pdb/internal_procs.c
* app/pdb/transform_tools_cmds.c
* libgimp/gimp_pdb.h
* libgimp/gimpdrawabletransform_pdb.[ch]: regenerated.
2004-10-26 Sven Neumann <sven@gimp.org>
* app/actions/channels-commands.c
* app/core/gimpchannel-select.c
* app/core/gimpimagefile.c
* app/core/gimpundo.c
* app/widgets/gimpcomponenteditor.c: use the new enum utility
functions from libgimpbase instead of accessing enum_value->value_name.
2004-10-25 Michael Natterer <mitch@gimp.org>
Don't store human readable and translatable enum/flag strings in
GEnumValue's and GTypeValue's fields but attach them to their
GType using separate structs and utility functions:
* tools/gimp-mkenums: added params and perl voodoo to support
generating a second array of values, which is used by the
Makefiles below to create and register arrays of value
descriptions.
* libgimpbase/gimpbasetypes.[ch]: added API to attach/retreive
arrays of translatable strings to/from enum and flags types. Added
structs GimpEnumDesc and GimpFlagsDesc for that purpose.
* libgimpbase/gimputils.[ch]: changed existing enum utility
functions, added new ones and added a symmetric API for flags.
* app/base/Makefile.am
* app/core/Makefile.am
* app/display/Makefile.am
* app/paint/Makefile.am
* app/text/Makefile.am
* app/tools/Makefile.am
* app/widgets/Makefile.am
* libgimp/Makefile.am
* libgimpbase/Makefile.am: changed *-enums.c generation rules
accordingly.
* app/base/base-enums.c
* app/core/core-enums.c
* app/display/display-enums.c
* app/paint/paint-enums.c
* app/text/text-enums.c
* app/tools/tools-enums.c
* app/widgets/widgets-enums.c
* libgimpbase/gimpbaseenums.c: regenerated.
* app/widgets/gimpenumstore.c
* app/widgets/gimpenumwidgets.c
* app/widgets/gimptemplateeditor.c
* libgimpwidgets/gimppreviewarea.c: follow the enum utility
function API changes.
2004-10-25 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c (gimp_imagefile_get_desc_string): say
"Click to create preview" if no preview is available.
2004-10-23 Sven Neumann <sven@gimp.org>
* libgimpthumb/gimpthumb-utils.[ch]
* libgimpthumb/gimpthumbnail.[ch]
* libgimpthumb/gimpthumb.def: added missing API, mainly for deleting
thumbnails.
* app/core/gimpimagefile.[ch]: when saving a thumbnail, delete a
failure thumbnail if one exists. Unless the thumbnail was created
explicitely, remove all other thumbnails for this image.
* app/actions/documents-commands.c: changed accordingly.
* app/file/file-open.c: only save a thumbnail if there isn't a
valid thumbnail already.
* app/widgets/gimpthumbbox.c: before attempting to create a new
thumbnail, check if there's an uptodate failure thumbnail.
2004-10-22 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.[ch]: added new enum GimpStrokeMethod which
can be one of { LIBART, PAINT_CORE }.
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpstrokedesc.[ch]: new object which encapsulates
the params and setup logic for the different stroke methods.
* app/core/gimpitem.[ch]: use it in GimpItem::stroke() and
in the gimp_item_stroke() wrapper.
* app/core/gimpchannel.c (gimp_channel_stroke)
* app/core/gimpselection.c (gimp_selection_stroke)
* app/vectors/gimpvectors.c (gimp_vectors_stroke): changed accprdingly.
* app/actions/select-commands.c
* app/actions/vectors-commands.c
* app/dialogs/stroke-dialog.c
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/paths.pdb: use GimpStrokeDesc. Simplifies the
code quite a bit.
* app/pdb/edit_cmds.c
* app/pdb/paths_cmds.c: regenerated.
2004-10-20 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-stroke.c
(gimp_drawable_stroke_scan_convert): Replacing the call to
gimp_channel_is_empty() by a simple gimp_drawable_mask_intersect()
was wrong because gimp_channel_is_empty() makes sure that the
selection doesn't mask itself while being stroked.
2004-10-20 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: added gimp_drawable_mask_intersect()
which returns the same bounding box as gimp_drawable_mask_bounds(),
but returns TRUE only if there is a non-empty intersection between
the drawable and the selection, or no selection at all. It also
returns the intersection as x,y,width,height instead of the
eeky x1,y1,x2,y2.
* app/core/gimp-edit.c
* app/core/gimpdrawable-blend.c
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpdrawable-desaturate.c
* app/core/gimpdrawable-equalize.c
* app/core/gimpdrawable-histogram.c
* app/core/gimpdrawable-invert.c
* app/core/gimpdrawable-stroke.c
* app/core/gimpimagemap.c
* app/core/gimpselection.c
* tools/pdbgen/pdb/color.pdb
* tools/pdbgen/pdb/transform_tools.pdb: either switch from
gimp_drawable_mask_bounds() to _intersect() or check the return
values of _mask_bounds() manually to avoid operations on empty
areas. Return successfully because it's a nop, not a failure.
Fixes bug #155733 for the core.
* app/pdb/color_cmds.c
* app/pdb/transform_tools_cmds.c: regenerated.
2004-10-14 Sven Neumann <sven@gimp.org>
* app/core/gimpprogress.[ch]: added "message" function to the
GimpProgress interface. Call gimp_message() if it is unimplemented.
* app/plug-in/plug-in-progress.[ch]: added new function
plug_in_progress_message() that passes the message to the current
proc_frame's progress.
* app/widgets/gimpthumbbox.c: implement GimpProgress::message.
Just do nothing in the implementation. We don't want to see
messages from file plug-ins that we use to create the thumbnails.
* tools/pdbgen/pdb/message.pdb
* app/pdb/message_cmds.c: if there's a current plug-in, dispatch
the message by calling plug_in_progress_message().
* app/display/gimpdisplayshell-close.c: fixed wrong types in
function calls.
2004-10-14 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.[ch]: register GimpConvertPaletteType with
the type system.
* app/widgets/gimpwidgets-utils.c (gimp_enum_radio_frame_add):
fixed to insert the widget at the right place in the radio box.
* app/dialogs/convert-dialog.c: use enum widgets and
gimp_enum_radio_frame_add(), resulting in a much better looking
dialog with much less lines of code.
2004-10-13 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c (gimp_imagefile_create_thumbnail): ref
the imagefile while creating the thumbnail.
* app/core/gimpimagefile.[ch]
* app/widgets/gimpthumbbox.c (gimp_thumb_box_auto_thumbnail): moved
the tricky part about thumbnail creation into the new function
gimp_imagefile_create_thumbnail_weak().
2004-10-12 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: renamed struct member "unit" to
"resolution_unit".
* app/actions/image-commands.c
* app/core/gimp-edit.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-undo-push.c
* app/dialogs/info-window.c
* app/vectors/gimpvectors-export.c
* app/widgets/gimptoolbox-dnd.c:
* app/xcf/xcf-load.c
* app/xcf/xcf-save.c: changed accordingly. Use gimp_image_get_unit()
where appropriate.
* app/core/gimptemplate.c (gimp_template_set_from_image): fixed
unit handling. Don't touch the template unit, it is used as the
initial display unit. This will need further changes...
2004-10-08 Sven Neumann <sven@gimp.org>
* app/config/gimpcoreconfig.[ch]
* app/config/gimprc-blurbs.h: added new gimprc option
"thumbnail-filesize-limit" that allows to control the maximum
filesize for automatic thumbnail creation.
* app/dialogs/preferences-dialog.c: added a GUI for it, needs
review.
* app/core/gimpimagefile.[ch]: minor cleanups. Moved call to
gimp_thumbnail_peek_image() from gimp_imagefile_save_thumb() to
gimp_imagefile_save_thumbnail() to avoid it being called twice.
* app/file/file-utils.[ch]: export utility function
file_utils_find_proc_by_extension() that allows to check for a
file plug-in by looking at the filename extension only.
* app/widgets/gimpthumbbox.[ch]: automatically create or update
thumbnails for image files with a known extension that are smaller
than "thumbnail-filesize-limit". Fixes bug #137176.
2004-10-06 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: store the time when the image is first
dirtied.
* app/display/gimpdisplayshell-close.c: tell the user what time
period of changes will be lost when the image is not saved.
2004-10-04 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb/brush.pdb
* tools/pdbgen/pdb/gradient.pdb
* tools/pdbgen/pdb/palette.pdb: disallow the empty string for
new brushes, gradients and palettes and check the return value
of gimp_data_factory_data_new(). Cleanup.
* app/core/gimpbrushgenerated.c (gimp_brush_generated_new)
* app/core/gimpgradient.c (gimp_gradient_new)
* app/core/gimpdatafactory.c (gimp_data_factory_data_new): same
here. Fixes bug #154264.
* app/core/gimpdata.[ch] (gimp_data_set_filename): added boolean
"deletable" parameter because it's not derivable from "writable".
* app/core/gimpdatafactory.c (gimp_data_factory_load_data): need
to figure "deletable" separately from "writable" to be able to
delete unsavable stuff in the user-writable data directories.
Fixes bug #154410.
(gimp_data_factory_data_save_single): cleaned up.
* app/pdb/brush_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/palette_cmds.c
* libgimp/gimpbrush_pdb.c
* libgimp/gimpgradient_pdb.c
* libgimp/gimppalette_pdb.c: regenerated.
2004-09-28 Michael Natterer <mitch@gimp.org>
* app/core/gimppalette.c: code review / cleanup.
(gimp_palette_delete_entry): don't add "Black" when the last color
gets removed, a palette can easily live with zero colors.
* app/widgets/gimppaletteeditor.c
(palette_editor_invalidate_preview): also update the entry which
shows the palette_entry's name.
2004-09-27 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c: removed conversion to TempBuf.
Instead implement GimpViewable::get_new_pixbuf by compositing the
thumbnail on a checkerboard.
* app/widgets/gimpviewrenderer.[ch]: renamed the no_view_pixbuf
struct member to pixbuf.
(gimp_view_renderer_real_render): try gimp_viewable_get_pixbuf()
and render the pixbuf before falling back to the TempBuf preview.
(gimp_view_renderer_render_pixbuf): new function that sets a
pixbuf for the renderer and flushes the render_buffer.
* app/widgets/gimpviewrendererimagefile.c
(gimp_view_renderer_imagefile_render): render the pixbuf.
* app/dialogs/dialogs-constructors.c: create the document history
dockable with a zero borderwidth.
2004-09-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-qmask.h: added comment about not changing the
silly "Qmask" string because it is used to identify the Quick Mask
in the XCF.
* app/core/gimpchannel.c: implement GimpViewable::get_description()
and return "Quick Mask" if it's the Quick Mask.
* app/actions/qmask-actions.c
* app/actions/qmask-commands.c
* app/core/core-enums.[ch]
* app/core/gimpimage-qmask.c
* app/display/gimpdisplayshell.c: s/QuickMask/Quick Mask/.
2004-09-25 Michael Natterer <mitch@gimp.org>
* app/core/gimppickable.[ch]: added new vitrual function
GimpPickableInterface::get_image()
* app/core/gimpdrawable.c
* app/core/gimpimagemap.c
* app/core/gimpprojection.[ch]: implement it.
2004-09-24 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-undo-push.c (undo_pop_fs_to_layer): factored
common code out of the UNDO amd REDO cases. Use gimp_drawable_update()
instead of gimp_viewable_invalidate_preview() so the projection
gets updated correctly. Fixes bug #149558.
* app/core/gimplayer-floating-sel.c (floating_sel_to_layer):
removed unused variables and their assignments.
2004-09-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimplayertreeview.c
(gimp_layer_tree_view_floating_selection_changed): removed the
hack that was displaying "Floating Selection" instead of the
floating layer's real name.
* app/core/gimplayer.c: implement GimpViewable::get_description()
instead and special case floating selections with a two-line
text that contains "Floating Selection".
* app/core/gimplayer-floating-sel.c
* app/core/gimpimage-undo-push.c: emit "name_changed" on the layer
when it changes its state from floating to normal or vice versa
so the views can update accordingly.
* app/core/gimpselection.c: s/"Selection"/"Floated Layer"/.
* app/tools/gimpeditselectiontool.c:
s/"Floating Layer"/"Floating Selection"/.
2004-09-19 Sven Neumann <sven@gimp.org>
Try to make floating selections more obvious:
* app/widgets/gimplayertreeview.c
(gimp_layer_tree_view_floating_selection_changed): always display
"Floating Selection" as the name for a floating selection.
* app/core/gimpselection.c (gimp_selection_float): call the new
layer "Selection" instead of "Floating Selection". This is what
will be displayed if the FS is turned into a layer.
* app/actions/layers-commands.c (layers_edit_layer_query): don't
special case floating selections here.
* app/core/gimplayer-floating-sel.c: cosmetics.
2004-09-18 Sven Neumann <sven@gimp.org>
* app/actions/qmask-commands.c
* libgimpcolor/gimprgb.c (gimp_rgba_distance): just some cleanup.
* app/core/gimpimage-qmask.c (gimp_image_set_qmask_color): always
set gimage->qmask_color regardless of the qmask state.
* libgimpwidgets/gimpcolorbutton.c (gimp_color_button_new): set
the type before setting the color.
2004-09-17 Sven Neumann <sven@gimp.org>
* app/core/gimp-edit.c (gimp_edit_paste): based on a patch from
Joao S. O. Bueno: Ensure that the pasted layer is always within
the image, if it fits and aligned at top left if it doesn't.
Fixes bug #142944.
2004-09-16 Sven Neumann <sven@gimp.org>
* app/core/gimpscanconvert.c (VALUE_TO_PIXEL): replaced a bitshift
with a binary and. Should be unnoticeably faster ;)
2004-09-16 Simon Budig <simon@gimp.org>
* app/core/gimpscanconvert.c: Implemented an own rendering
callback for libart and use it instead of art_gray_svp_aa().
This now handles non-antialiased scan conversions itself. It
also basically shows the way to implement a LUT for the
scan conversion.
2004-09-05 Simon Budig <simon@gimp.org>
* app/core/gimpimage-resize.[ch]: Implement function to resize
the image to contain all layers completely. Untabified.
* app/actions/image-actions.c
* app/actions/image-commands.[ch]
* app/widgets/gimphelp-ids.h
* menus/image-menu.xml.in: Make it available in the GUI.
* tools/pdbgen/pdb/image.pdb: Make it available in the PDB.
* app/pdb/image_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpimage_pdb.[ch]: regenerated.
2004-08-31 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-transform.[ch]: added GimpProgress
parameter to gimp_drawable_transform_affine().
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/transform_tools.pdb: show progress for "blend"
and all transform functions.
* app/pdb/edit_cmds.c
* app/pdb/transform_tools_cmds.c: regenerated.
2004-08-31 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintoptions.[ch]: added "GimpPaintInfo *paint_info"
member and construct property. Changed gimp_paint_options_new()
to take only a GimpPaintInfo parameter.
* app/core/gimpitem.c (gimp_item_stroke)
* app/core/gimppaintinfo.c (gimp_paint_info_new): changed accordingly.
* app/core/gimpchannel.c (gimp_channel_stroke)
* app/vectors/gimpvectors.c (gimp_vectors_stroke): use
paint_options->paint_info->paint_type directly instead of casting
to GimpToolOptions and using
tool_options->tool_info->paint_info->paint_type (eek). Fixes crash
when stroking via the PDB because newly created GimpToolOptions
instances have no "tool_info" pointer yet.
* tools/pdbgen/pdb/paint_tools.pdb: changed all paint PDB wrappers
accordingly.
* app/pdb/paint_tools_cmds.c: regenerated.
2004-08-30 Michael Natterer <mitch@gimp.org>
Brought the PDB progress into a working state. Fixes bug #6010,
addressed bugs #97266 and #135185 and unfortunately reopens bug
#150194 (will fix that later).
* libgimpbase/gimpbaseenums.h: added enum GimpProgressCommand.
* app/core/gimppdbprogress.c
* libgimp/gimpprogress.c: use the enum instead of integer
constants for the different progress commands. Cleanup.
* app/plug-in/plug-in-progress.c
* app/plug-in/plug-in-run.c
* app/plug-in/plug-in.c: switch bach to real refcouting for
plug_in->progress (reopens bug #150194) and enabled the PDB
progress code.
* plug-ins/script-fu/script-fu-scripts.c: cleaned up the
progress stuff and the script-fu interface a bit.
* plug-ins/pygimp/gimpenums.py
* plug-ins/script-fu/script-fu-constants.c
* tools/pdbgen/enums.pl: regenerated.
2004-08-29 Michael Natterer <mitch@gimp.org>
Added an API to allow plug-ins to embed the progress for the
actions they trigger into their own GUI (attention: half-done and
broken code ahead...)
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimppdbprogress.[ch]: new object implementing dispatching
progress calls to a temporary PDB procedure in a plug-in.
* app/Makefile.am: force to link gimppdbprogress.o, bah!
* app/plug-in/plug-in-progress.[ch]: added API to install,
uninstall and cancel a PDB progress for this plug-in, but disabled
the implementation because it doesn't work yet.
* tools/pdbgen/pdb/progress.pdb: added pdb wrappers for the new
install, uninstall and cancel functions.
* libgimp/Makefile.am
* libgimp/gimp.h
* libgimp/gimpprogress.[ch]: added an API around the PDB progress
stuff.
* app/pdb/internal_procs.c
* app/pdb/progress_cmds.c
* libgimp/gimpprogress_pdb.[ch]: regenerated.
* plug-ins/script-fu/script-fu-scripts.c: use the new API to show
the progress in the script-fu dialog.
2004-08-28 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-contiguous-region.c
(find_contiguous_region_helper): applied a patch from Eric Cheung
that changes the function to use a GQueue to implement recursion
instead of recursive function calls. Fixes bug #151124.
* plug-ins/common/noisify.c (noisify_dialog): left-align the
preview.
2004-08-26 Michael Natterer <mitch@gimp.org>
* app/core/gimpitem.c (gimp_item_stroke): implement the whole
paint_options fiddling here instead of in each subclass and pass
either GimpStrokeOptions or GimpPaintOptions (instead of
GimpStrokeOptions or GimpPaintInfo) to GimpItem::stroke().
Also copied code (that needs to be abstracted to a utility
function) from the tool_manager which makes sure we really use the
global brush, pattern etc. if these options are checked in prefs.
Fixes bug #150716.
* app/core/gimpchannel.c (gimp_channel_stroke)
* app/vectors/gimpvectors.c (gimp_vectors_stroke): removed the
duplicated code mentioned above and simply use the paint_options
passed.
2004-08-25 Sven Neumann <sven@gimp.org>
* app/widgets/gimpmessagebox.[ch]: added gimp_message_box_repeat().
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimperrordialog.[ch]: added new dialog that adds a new
GimpMessageBox for each message added. Fixes bug #92604.
* app/widgets/gimpwidgets-utils.[ch]: removed old gimp_message_box()
functionality.
* app/gui/gui.c (gui_abort): use a GimpMessageBox in a GimpDialog.
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs.c: manage GimpErrorDialog as singleton.
* app/gui/gui-vtable.c (gui_message): use the new error dialog.
* app/core/gimp-gui.c (gimp_message): substitue "GIMP" for a NULL
domain.
* app/widgets/gimperrorconsole.c (gimp_error_console_add): fail
when being called with a NULL domain.
2004-08-11 Michael Natterer <mitch@gimp.org>
* app/core/gimp-gui.[ch]: added "display_ID" to gimp_new_progress().
* app/gui/gui-vtable.c: changed accordingly.
* app/plug-in/plug-in-progress.[ch]: reenabled showing the
progress in a particular display.
2004-08-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-blend.c
* app/core/gimpprogress.c: some progress cleanup.
* app/display/gimpstatusbar.c (gimp_statusbar_progress_start): no
need to warn if there is already a progress active, just silently
return NULL as all other GimpProgressInterface implementors.
* app/plug-in/plug-in-progress.c: several progress fixes.
It's still a mess.
* plug-ins/common/url.c: don't show progress depending on
run_mode. Run the actual file plug-in with the same run_mode we
were invoked with.
2004-08-10 Michael Natterer <mitch@gimp.org>
Redid the whole internal progress stuff: don't pass around
progress_callback and progress_data; instead, provide a
pointer to a GimpProgressInterface which can be implemented
by a variety of backends.
Addresses (but not yet fixes) bugs #6010, #97266 and #135185.
* app/display/Makefile.am
* app/display/gimpprogress.[ch]: removed the old progress hack.
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpprogress.[ch]: implement GimpProgressInterface.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpprogressdialog.[ch]: the standalone progress
dialog as widget implementing GimpProgressInterface.
* app/display/gimpdisplay.c
* app/display/gimpstatusbar.[ch]
* app/widgets/gimpfiledialog.[ch]
* app/widgets/gimpthumbbox.[ch]: added GimpProgressInterface
implementation to these classes.
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: replaced the old progress vtable entries
by two new to create and destroy a GimpProgressDialog in case
no other progress is available.
* app/pdb/procedural_db.[ch]
* app/plug-in/plug-in-run.[ch]
* tools/pdbgen/app.pl: pass a GimpProgress to all PDB wrappers and
all plug-ins.
* app/plug-in/plug-in.[ch]
* app/plug-in/plug-ins.c
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-progress.c: handle the case there the
plug-in was crated with a progress as well as the case where it
wasn't.
* app/app_procs.c
* app/batch.c
* app/xcf/xcf.c
* app/file/file-open.[ch]
* app/file/file-save.[ch]
* app/widgets/gimphelp.c
* app/widgets/gimpbrushselect.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c: changed accordingly.
* app/core/gimpimagefile.[ch]
* app/display/gimpdisplayshell-dnd.c
* app/gui/file-open-dialog.c
* app/gui/file-open-location-dialog.c
* app/gui/file-save-dialog.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimptoolbox-dnd.c: pass a GimpProgress to all file
related functions. Embed the progress in the file dialog where
possible.
* app/core/gimpdrawable-blend.[ch]
* app/core/gimpdrawable-transform.[ch]
* app/core/gimpimage-convert.[ch]
* app/core/gimpimage-flip.[ch]
* app/core/gimpimage-resize.[ch]
* app/core/gimpimage-rotate.[ch]
* app/core/gimpimage-scale.[ch]
* app/core/gimpitem-linked.[ch]
* app/core/gimpitem.[ch]
* app/core/gimpchannel.c
* app/core/gimpdrawable.c
* app/core/gimplayer.c
* app/core/gimpselection.c
* app/vectors/gimpvectors.c: replaced callback/data by GimpProgress.
* app/tools/gimpblendtool.c
* app/tools/gimptransformtool.c
* app/gui/convert-dialog.c
* app/actions/documents-commands.c
* app/actions/file-commands.c
* app/actions/image-commands.c
* app/actions/layers-commands.c
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* tools/pdbgen/pdb/convert.pdb
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/layer.pdb: changed callers accordingly.
* app/pdb/*_cmds.c: regenerated.
2004-08-09 Michael Natterer <mitch@gimp.org>
Applied (slightly modified) patch from Shlomi Fish which adds a
progress bar to the RGB -> INDEXED conversion. Fixes bug #145274
(and shows that we really really need a GimpProgressInterface in
the core to give progress users full access to the progress API)
* app/core/gimpimage-convert.[ch]: added special
GimpImageConvertProgress function typedef to cope with the
different stages of converting. Support passing such a callback &
data to gimp_image_convert() and update the progress accordingly.
* app/gui/convert-dialog.[ch]: added a convert progress callback
and pass it to gimp_image_convert().
* app/actions/image-commands.c
* tools/pdbgen/pdb/convert.pdb: changed accordingly.
* app/pdb/convert_cmds.c: regenerated.
2004-08-04 Simon Budig <simon@gimp.org>
* app/core/gimpbrushgenerated.c: Enhanced the range of the hardness
parameter to make more soft brushes possible. Please note that this
makes existing generated brushes look more soft. But since people
apparently rarely use more than one or two generated brushes and
these get changed frequently I guess it should be OK.
2004-08-04 Michael Natterer <mitch@gimp.org>
Allow URI drops from apps linked against GLib < 2.4.4 to GIMP
linked against GLib >= 2.4.5. Fixes bug #148140.
* app/core/gimp-utils.[ch]: added gimp_check_glib_version().
* app/widgets/gimpselectiondata.c: added runtime check for GLib
versions that encode file:// URIs correctly (>= 2.4.5). For older
(broken) GLibs, leave the code path as is, for newer (fixed) ones,
perform an additional check if the dropped URI is in the (broken)
escaped-UTF-8 format and convert it to local filename encoding.
* app/gui/gui.c: warn the user that non-ASCII filenames can't
be used when linked against GLib 2.4.4.
2004-08-04 Michael Natterer <mitch@gimp.org>
* app/core/gimp.[ch]: changed member "ProcRecord last_plug_in" to
PlugInProcDef last_plug_in". Added function
gimp_set_last_plug_in() and signal Gimp::last-plug-in-changed.
* app/actions/plug-in-commands.c
* app/plug-in/plug-in-run.c: changed accordingly.
* app/actions/plug-in-actions.c: factored out updating of the
"Reshow Last" and "Rerun Last" actions to a private function.
Connect each "plug-in" action group to Gimp::last-plug-in-changed
and update the actions' label and sensitivity in the
callback. Fixes bug #149139.
2004-08-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-undo.[ch] (gimp_image_undo_can_compress):
new function which checks if undo compression is possible:
(1) is the image dirty? Fixes bug #148853.
(2) is redo stack empty?
(3) do both the passed undo object_type and undo_type
match the top undo item?
Consistently name the GType and GimpUndoType passed to undo
functions "object_type" and "undo_type" to avoid confusion.
* app/actions/layers-commands.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimptexttool.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c: use the new utility function
instead of checking the above conditions manually.
2004-08-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpbrushgenerated.c (gimp_brush_generated_load): don't
leak the brush's name if parsing the shape fails.
(gimp_brush_generated_dirty): shut up bogus compiler warnings
about uninitialized variables.
2004-08-02 Simon Budig <simon@gimp.org>
* app/widgets/gimpbrusheditor.c: Fixed brush spacing for brushes
with >= 2 spikes. Spotted by Joao S. O. Bueno.
Fixes bug #149099.
2004-07-31 Hans Breuer <hans@breuer.org>
* app/display/makefile.msc app/widgets/makefile.msc : build
but *dont link* display-enums.obj, widget-enums.obj and
gimpdisplayoptions.obj. They must be in the dll
* app/makefile.msc : build gimp.exe and gimp-console.exe both
using the same gimp-core.dll
* app/gimpcore.def : new file, exports for gimp-core.dll
* app/Makefile.am : added to EXTRA_DIST
* cursors/makefile.msc : new file to create gimp-tool-cursors.h
* cursors/Makefile.am : added to EXTRA_DIST
* **/makefile.msc : updated
* app/main.c app/app_procs.c : moved code to close the console
from the former to the later. It only is to be used if The Gimp
is not build as console app.
* plug-ins/gfig/gfig.c : dont gimp_drawable_detach() the same
drawable twice
* plug-ins/gfig-dialog.c() : added a g_return_if_fail() to avoid
crashing on File/Import
2004-08-01 Simon Budig <simon@gimp.org>
* app/core/core-enums.h
* app/core/gimpbrushgenerated.[ch]: Implement three different
brush shapes for generated brushes.
* app/core/gimpbrush.c: changed accordingly.
* app/core/core-enums.c: regenerated.
* app/widgets/gimpbrusheditor.[ch]: Add toggles for the shape.
* themes/Default/images/stock-brush-generated-*-16.png: New stock
icons for the brush shapes.
* themes/Default/images/Makefile.am
* libgimpwidgets/gimpstock.[ch]: changed accordingly
untabified the files touched.
2004-07-29 Michael Natterer <mitch@gimp.org>
Replaced the concept of having a boolean indicating if an undo
step dirties the image by a bitfield indicating which parts
of the image are dirtied:
* app/core/core-enums.[ch]: reordered two values in enum
GimpUndoType, added GIMP_DIRTY_IMAGE_SIZE to enum GimpDirtyMask.
The values of GimpDirtyMask are still questionable and will
probably change...
* app/core/gimpimage.[ch]: removed signal "undo_start" and added
a GimpDirtyMask parameter to the "dirty" and "clean" signals.
* app/core/gimpimage-undo.[ch] (gimp_image_undo_push): replaced
"gboolean dirties_image" by "GimpDirtyMask dirty_mask" and pass
it to gimp_image_dirty().
(gimp_image_undo_group_start): added *ugly* code which tries to
figure GimpDirtyMask from the group's GimpUndoType and store it in
the GimpUndoGroup. Call gimp_image_dirty() instead of the removed
gimp_image_undo_start(). This means the undo group now dirties the
image just like one of its undo steps, but that's no problem since
undoing cleans it in the same way.
* app/core/gimpundo.[ch]: s/dirties_image/dirty_mask/g
(gimp_undo_pop): emit clean/dirty signals *before* performing the
actual undo step so listeners can detach from the image before it
is changed by undo.
* app/core/gimpimage-undo-push.c (gimp_image_undo_push_*): pass a
GimpDirtyMask instead of TRUE/FALSE to gimp_image_undo_push().
* app/core/gimpimagemap.[ch]: removed "gboolean interactive"
because it makes no sense to use GimpImageMap noninteractively.
Don't freeze()/thaw() undo while the image_map is active which
fixes many ways of trashing the image's undo state but probably
introduces new ways of doing evil things.
* app/display/gimpdisplay-foreach.c
* app/display/gimpdisplayshell-handlers.c: changed according
to the GimpImage::clean()/dirty() signal changes. Small fixes
in the quit dialog's dirty image container.
* app/tools/gimptoolcontrol.[ch]: added member and API to
set/get the dirty_mask.
* app/tools/gimpcroptool.c
* app/tools/gimpimagemaptool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimptexttool.c
* app/tools/gimptransformtool.c: whenever setting "preserve" to
FALSE, also set a "dirty_mask" which specifies on which image
changes the tool wants to be canceled.
* app/tools/tool_manager.c: removed "undo_start" connection and
connect to both "dirty" *and* "clean" to check if the active_tool
needs to be canceled. Cancel the tool only if the dirty_mask
passed in the signal has common bits with the tool's dirty_mask.
Fixes bug #109561 and probably opens some new ones...
2004-07-29 Sven Neumann <sven@gimp.org>
* app/core/core-enums.h: removed enums GimpImageType and
GimpImageBaseType ...
* libgimpbase/gimpbaseenums.h: ... and added them here. Also moved
all enums from gimpbasetypes.h to this new file.
* libgimpbase/Makefile.am
* tools/pdbgen/Makefile.am: changed accordingly.
* app/core/core-enums.c
* libgimp/gimpenums.h
* libgimpbase/gimpbaseenums.c
* tools/pdbgen/enums.pl: regenerated.
* libgimpbase/gimpparasite.c
* libgimpbase/gimpprotocol.c
* libgimp/gimp.c: include <glib-object.h>
* libgimpbase/gimpbasetypes.[ch]: added API to set and get a
translation domain on a GType. This is used for translatable enum
values.
* libgimpbase/gimputils.[ch]: added API to retrieve the translated
name for an enum value.
* app/widgets/gimpenumstore.c
* app/widgets/gimpenumwidgets.c: use the new API in libgimpbase.
2004-07-29 Dave Neary <bolsh@gimp.org>
* app/core/gimpdrawable-transform.c: Stop signed ints overflowing
while getting the mean by replacing (a + b) / 2 with a / 2 + b / 2.
Fixes bug #128594 for drawables less than 32K wide.
2004-07-28 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.h: added still unused flags type
GimpDirtyMask.
* app/base/Makefile.am
* app/core/Makefile.am
* app/display/Makefile.am
* app/paint/Makefile.am
* app/text/Makefile.am
* app/tools/Makefile.am
* app/widgets/Makefile.am
* libgimpthumb/Makefile.am: changed calls to gimp-mkenums to
support GTypeFlags and to make the value arrays private to the
get_type() functions.
* app/base/base-enums.c
* app/core/core-enums.c
* app/display/display-enums.c
* app/paint/paint-enums.c
* app/text/text-enums.c
* app/tools/tools-enums.c
* app/widgets/widgets-enums.c: regenerated.
2004-07-27 Sven Neumann <sven@gimp.org>
* libgimpbase/Makefile.am
* libgimpbase/gimpbase.h
* libgimpbase/gimpbase.def
* libgimpbase/gimpmemsize.[ch]: added new files with memsize
related functions (moved here from gimputil.c) and
GIMP_TYPE_MEMSIZE (moved here from app/config/gimpconfig-types.[ch]).
* libgimpbase/gimputils.[ch]: removed gimp_memsize_to_string() here.
* libgimpbase/gimpunit.[ch]: added GIMP_TYPE_UNIT (moved here from
app/config/gimpconfig-types.[ch]).
* libgimpbase/gimpbase-private.c
* libgimp/gimptile.c
* libgimp/gimpunitcache.c
* plug-ins/help/domain.c
* app/xcf/xcf-read.c: need to include glib-object.h.
* plug-ins/common/uniteditor.c: use GIMP_TYPE_UNIT.
* app/config/gimpconfig-types.[ch]: removed code that lives in
libgimpbase now.
* app/config/gimpconfig-deserialize.c: changed accordingly.
* app/config/gimpbaseconfig.c
* app/config/gimpdisplayconfig.c
* app/core/gimpcontext.c
* app/gui/grid-dialog.c
* app/tools/gimpcolortool.c
* app/widgets/gimpaction.c
* app/widgets/gimpunitstore.c: no need to include gimpconfig-types.h
any longer.
2004-07-27 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.c (gimp_image_finalize): remove the image
from the image hash table and set its "gimp" pointer to NULL
*after* all layers, channels, vectors and the selection are
finalized; otherwise these items have no chance of removing
themselves from the item hash table (because image->gimp is
already NULL). Spotted by pgimeno and nomis.
(should be backported after it got some testing)
2004-07-26 Michael Natterer <mitch@gimp.org>
* app/core/gimpdatafactory.h: added "gboolean writable" to the
GimpDataFactoryLoaderEntry struct. Return a GList* instead of
GimpData* from GimpDataLoadFunc so it's possible to load more than
one data object from one file.
* app/core/gimpdatafactory.c (gimp_data_factory_load_data):
changed accordingly: add all items of the returned lists to the
data factory. Make the data object writable only if it's in the
writable path *and* its loader entry says it's a writable format
*and* the returned list contains exactly one element.
* app/core/gimp.c (gimp_real_initialize): declare all loader
entries as writable where we have code to read and write exactly
one object per file; all others are not writable.
* app/core/gimpbrush.[ch]
* app/core/gimpbrushgenerated.[ch]
* app/core/gimpbrushpipe.[ch]
* app/core/gimpgradient-load.[ch]
* app/core/gimppalette.[ch]
* app/core/gimppattern.[ch] (all load functions): return a list
containing the loaded object instead of the object itself.
2004-07-23 Sven Neumann <sven@gimp.org>
* app/core/gimpgradient-load.c (svg_parser_end_element): fixed
handling of the last gradient segment and did some code cleanup.
2004-07-23 Sven Neumann <sven@gimp.org>
* libgimpcolor/test-color-parser.c: added more test samples.
* libgimpcolor/gimprgb-parse.c: fixed a bug that I found with the
new tests.
* app/core/gimpgradient-load.c: changed SVG parser to handle
gradients that are defined more deeply in the SVG hierarchy. Added
a simplistic CSS style parser to deal with gradient definitions
that use CSS to define the gradient stop properties (closes bug
#148127).
2004-07-23 Sven Neumann <sven@gimp.org>
* app/core/gimpdatafactory.c: some newlines to improve error
messages.
* app/core/gimpgradient-load.c (gimp_gradient_load_svg): fixed
error handling.
2004-07-22 Sven Neumann <sven@gimp.org>
* libgimpcolor/gimprgb-parse.c
* libgimpcolor/gimprgb.h: use a signed integer to pass the string
length to the new parser functions. The API explicitely asks for
-1 to be passed...
* app/core/gimp.c
* app/core/gimpgradient-load.[ch]
* app/core/gimpgradient.h: added preliminary support for loading
simple SVG gradients (see bug #148127). Be careful with this new
feature; editing the loaded gradient will cause the SVG file to be
overwritten! Work in progress...
2004-07-21 Michael Natterer <mitch@gimp.org>
* app/core/gimpmarshal.list
* app/widgets/gimpcellrendereraccel.[ch]: added "gboolean delete"
parameter to the GimpCellRendererAccel::accel_edited() signal.
* app/widgets/gimpactionview.c: distinguish between deletion of an
accelerator and the user entering an invalid accelerator.
2004-07-21 Michael Natterer <mitch@gimp.org>
* app/core/gimpmarshal.list
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcellrendereraccel.[ch]: new cell renderer
which displays an accelerator and allows to edit it (ripped
out of libegg and modified).
* app/widgets/gimpactionview.c: use the new renderer and connect
to its "accel-edited" signal (its callback is one huge mess that
needs to be cleaned up). Added ugly hack to work around GTK+ API
limitation that seems to prevent implementing a shortcut editor in
a sane way.
* app/actions/file-actions.c
* app/actions/image-actions.c
* app/actions/tools-actions.c: added ugly hacks here, too.
* app/gui/preferences-dialog.c: relaced Cancel/Ok in the shortcut
editor by Close.
2004-07-19 Sven Neumann <sven@gimp.org>
* app/core/gimpchannel-combine.c (gimp_channel_combine_ellipse):
moved variable declarations to the scope they are being used in,
removed trailing whitespace, minor cleanups.
2004-07-19 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpwin32-io.h: added copyright header, added
#defines for access(), F_OK, R_OK and X_OK.
* app/core/gimpdata.c: include the above instead of defining
the workarounds here.
* app/base/tile-swap.c
* app/config/gimpconfig-dump.c
* libgimpthumb/gimpthumb-utils.c
* libgimpthumb/gimpthumbnail.c: for consistency, #include
gimpwin32-io.h with "" instead of <>.
2004-07-19 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel-combine.c (gimp_channel_combine_ellipse):
comments not intended for gtk-doc must not start with '/**'.
2004-07-19 Michael Natterer <mitch@gimp.org>
* app/config/config-types.h: removed GimpConfigInterface typedef,
added comments to typedefs which don't belong here.
* app/config/gimpconfig.h: added GimpConfigInterface typedef.
* app/core/core-types.h
* app/display/display-types.h: added commented out typedefs for
types that live in config-types.h for obscure reasons.
* app/core/core-types.h: reordered stuff to match the order in the
API docs (makes keeping stuff in sync much easier).
2004-07-16 Sven Neumann <sven@gimp.org>
* app/core/gimpdata.c:
* app/display/gimpcanvas.c:
* app/display/gimpdisplayshell.c
* app/display/gimpdisplayshell-transform.c: corrected API
documentation, removed trailing whitespace.
Please do always build the documentation if you add or change any
gtk-doc comments.
2004-07-15 Michael Natterer <mitch@gimp.org>
* app/core/gimpviewable.[ch]: corrected API docs and fixed
function parameter names to silent gtk-doc warnings.
2004-07-15 Michael Natterer <mitch@gimp.org>
* app/actions/file-commands.h: reordered to match the .c file.
* app/core/gimpitem.c
* app/vectors/gimpvectors-import.c: fixed API docs.
2004-07-14 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.c: added properties "gimp", "id", "width",
"height" and "base-type". Moved all code from gimp_image_new()
to GObject::constructor().
* app/core/gimpimage-convert.c
* app/core/gimpimage-crop.c
* app/core/gimpimage-resize.c
* app/core/gimpimage-rotate.c
* app/core/gimpimage-scale.c
* app/core/gimpimage-undo-push.c: set "width", "height" and
"base-type" with g_object_set() so "notify" is emitted on the
properties.
* app/core/gimpimage-undo.c (gimp_image_undo_pop_stack):
freeze/thaw property notifications around undoing/redoing so they
are not emitted in the middle of the undo operation.
2004-07-14 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimppickable.[ch]: new interface which has
get_image_type(), get_tiles() and get_color_at() methods.
* app/core/gimpdrawable.[ch]
* app/core/gimpimagemap.[ch]
* app/core/gimpprojection.[ch]: implement GimpPickableInterface
and removed public get_colot_at() functions.
* app/core/gimpimage-pick-color.[ch]: removed typedef
GimpImagePickColorFunc and gimp_image_pick_color_by_func(). Use
gimp_pickable_pick_color() instead.
* app/core/gimpimage-contiguous-region.c
* app/core/gimpimage-crop.c
* app/gui/info-window.c
* app/paint/gimpconvolve.c
* app/paint/gimpsmudge.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpimagemaptool.c
* app/widgets/gimpselectioneditor.c: use GimpPickable functions
instead of the various get_color_at() functions. Simplifies code
which has a "sample_merged" boolean. Various cleanups.
2004-07-13 Sven Neumann <sven@gimp.org>
* app/core/gimp-utils.[ch]: added new function
gimp_g_value_get_memsize() that attempts to calculate the memory
requirements for a GValue.
* app/text/gimptextundo.c (gimp_text_undo_get_memsize): use the
new function to obtain a better estimate for the size of the text
undo.
2004-07-12 Michael Natterer <mitch@gimp.org>
* app/text/gimptextundo.[ch]: removed member "guint time"...
* app/core/gimpundo.[ch]: ...and added it here.
* app/tools/gimptexttool.c (gimp_text_tool_apply): changed
accordingly. Reordered undo compression code to look like other
pieces of code which do undo compression.
2004-07-12 Michael Natterer <mitch@gimp.org>
* app/core/gimpundo.[ch]
* app/core/gimpitemundo.[ch]
* app/text/gimptextundo.[ch]: removed all _new() functions and
added properties and GObject::constructor() implementations
instead.
* app/core/gimpimage-undo.[ch] (gimp_image_undo_push): added
"GType undo_gtype" parameter and allow to pass name-value pairs as
"...". Une the new GParameter utility functions to construct the
appropriate undo step with g_object_newv().
(gimp_image_undo_push_item): removed.
(gimp_image_undo_push_undo): removed. Merged its code back into
gimp_image_undo_push(), where it originally came from.
* app/core/gimpimage-undo-push.c
* app/core/gimpundostack.c
* app/paint/gimppaintcore-undo.c
* app/tools/gimptransformtool-undo.c
* app/widgets/gimpundoeditor.c: changed accordingly.
2004-07-12 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/gimp-gui.[ch]: new files defining a GimpGui vtable
struct and contianing all the vtable wrapper functions. Reordered
and renamed some functions for consistency.
* app/core/gimp.[ch]: removed all the vtable code.
* app/gui/gui-vtable.c: changed accordingly.
2004-07-11 Hans Breuer <hans@breuer.org>
* **/makefile.msc : updated
app/actions/makefile.msc app/menus/makefile.msc : (new files)
app/actions/Makefile.msc app/menus/Makefile.am : added to EXTRA_DIST
* libgimpbase/gimputils.c libgimpwidgets/gimpmemsizeentry.c
app/widgets/gimppropwidgets.c : bumped compiler version check,
msvc6 still can't cast from unsigned __int64 to double
* app/actions/debug-actions.c : only use debug_*_callback
and thus debug_action if ENABLE_DEBUG_MENU
* app/core/gimpalette-import.c : added gimpwin32-io.h
* plug-ins/common/convmatrix.c : s/snprintf/g_snprintf/
* plug-ins/common/screenshot.c : make it compile with msvc,
but still no win32 specific implementation ...
2004-07-11 Michael Natterer <mitch@gimp.org>
* app/core/gimp-utils.[ch] (gimp_parameters_append)
(gimp_parameters_append_valist)
(gimp_parameters_free): new utility functions which create and
destroy GParameter arrays for g_object_newv().
* app/gui/gui-vtable.c (gui_pdb_dialog_new): use them.
2004-07-10 Michael Natterer <mitch@gimp.org>
Removed any remaining GUI dependency from the PDB wrappers:
* app/core/gimp.[ch]: added vtable entries for the display and
help stuff.
* app/widgets/gimphelp.[ch]: renamed gimp_help() to
gimp_help_show().
* app/gui/gui-vtable.c: implement the new display and help vtable
entries.
* tools/pdbgen/pdb.pl
* tools/pdbgen/pdb/display.pdb
* tools/pdbgen/pdb/help.pdb: use the new functions of the Gimp
object instead of using stuff from display/ and widgets/.
* tools/pdbgen/app.pl: removed bad hacks which enabled including
stuff from gui/, display/ and widgets/.
* app/Makefile.am: link widgets-enums.o, display-enums.o and
gimpdisplayoptions.o into the gimp-console binary because they are
needed for the config system and don't depend on any GUI stuff.
* app/pdb/Makefile.am: s/GTK_CFLAGS/GDK_PIXBUF_CFLAGS/
* app/pdb/display_cmds.c
* app/pdb/help_cmds.c: regenerated.