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/display/gimpdisplayshell-dnd.[ch]: added new function
gimp_display_shell_dnd_init() which connects all DND callbacks.
Made all DND callbacks static.
* app/display/gimpdisplayshell.c (gimp_display_shell_init): call
above function instead of connecting all DND callbacks here. Removed
lots of now unused #includes.
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/widgets/gimpcontainertreeview.[ch]: added virtual function
GimpContainerTreeView::drop_component(). Added EEKy "dnd_gimp"
needed for gimp_selection_data_get_component().
* app/widgets/gimpitemtreeview.c (gimp_item_tree_view_set_context):
set the "dnd_gimp" pointer if it is NULL.
* app/widgets/gimpcontainertreeview-dnd.c: handle component drops
and dispatch ::drop_component() accordingly.
* app/widgets/gimplayertreeview.c: implement dropping of
components as new layers. Addresses bugs #158483 and #158133.
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c
* app/display/gimpdisplayshell-dnd.[ch]
* app/widgets/gimptoolbox-dnd.c: enabled dropping of components
to the display and the toolbox. Addresses 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-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdnd.c: added gimp_dnd_get_component_icon().
* app/widgets/gimpcomponenteditor.c: allow to drag
components. They can't be dropped anywhere yet.
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpitemtreeview.c
(gimp_item_tree_view_drop_viewable): handle drops of items of all
types from all images and convert them if needed.
* app/widgets/gimplayertreeview.c: enable dropping of all kinds of
drawables. Addresses bug #158133.
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-enums.h (enum GimpDndType): reordered so
COMPONENT is after IMAGE.
* app/widgets/gimpdnd.[ch]
* app/widgets/gimpselectiondata.[ch]: added API for passing
components around via DND. Speaks in terms of a
(GimpImage,GimpChannelType) tuple.
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>
Allow to easily open brushes and patterns as images.
Fixes bug #163059.
* app/actions/brushes-actions.c
* app/actions/patterns-actions.c: added "brushes-open-as-image"
and "patterns-open-as-image" actions.
* app/actions/data-commands.[ch]: added
data_open_as_image_cmd_callback() which tries to load
data->filename as image.
* app/widgets/gimphelp-ids.h: added help IDs for the new actions.
* app/widgets/gimpdatafactoryview.c: added buttons.
* menus/brushes-menu.xml
* menus/patterns-menu.xml: added them to the menus.
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 Michael Natterer <mitch@gimp.org>
Made the file open and save dialogs use the last used folder
instead of defaulting to current directory. Fixes bug #162385.
* app/widgets/gimpfiledialog.[ch] (gimp_file_dialog_set_uri):
removed this function because it had no functionality except
creating usability problems.
* app/actions/file-commands.c: use gtk_file_chooser_set_uri()
instead but *only* if we already have an uri from an alread open
image or the document hinstory.
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_image): set
the file chooser's uri only if we have an uri from the image
itself. Leave the current folder untouched otherwise and just set
the current name (e.g. "Untitled").
* app/dialogs/file-save-dialog.c (file_save_dialog_save_image): on
successful save, remember the used uri by attaching it to the
"gimp" instance.
(file_save_dialog_new): set the last saved uri's folder on the
newly created file save dialog.
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-10 Manish Singh <yosh@gimp.org>
* modules/controller_midi.c: #include <time.h> to make sure all
the types are there for the alsa headers. Should address bug
#163593.
2005-01-09 Sven Neumann <sven@gimp.org>
* app/widgets/gimpactionview.c (gimp_action_view_new): connect to
"button_press_event" and start editing immidiately instead of
waiting for a second click. Fixes bug #163385.
2005-01-09 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdialogfactory.c (gimp_dialog_factories_toggle):
if called with (ensure_visibility == TRUE), raise the toolbox.
Fixes bug #163381.
2005-01-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_button_press): fixed handling of clicks
into a horizontally scrolled treeview.
2005-01-08 Sven Neumann <sven@gimp.org>
* app/dialogs/scale-dialog.c: use a GimpMessageBox to display the
informative message when scaling an indexed image.
2005-01-07 Shlomi Fish <shlomif@iglu.org.il>
* plug-ins/script-fu/scripts/frosty-logo.scm: made sure the shadow
is given enough space and then truncated instead of translated to the
center of the image, thus preventing the display of shadows with
a completely horizontal or vertical edge.
Fixes bug #132145.
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-07 Michael Natterer <mitch@gimp.org>
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c: GIMP_PROGRESS(NULL) is perfectly
valid, no need to say gdisp ? GIMP_PROGRESS(gdisp) : NULL.
* app/actions/plug-in-commands.c (plug_in_run_cmd_callback):
remember the last plug-in if it has at least 3 args, not 2.
Cleaned up the whole function and removed cruft.