2008-10-10 Michael Natterer * app/core/gimpimage.[ch]: add new functions gimp_image_get_layer_by_index(), _channel_by_index() and _vectors_by_index(). * app/core/gimpprojection-construct.c * app/display/gimpdisplayshell-layer-select.c * app/xcf/xcf-load.c: use them instead of looking the items up in image->container and casting the return value. 2008-10-10 Michael Natterer * app/core/gimplayer.c (gimp_layer_translate) (gimp_layer_get_node): the "shift" operation's x and y properties are doubles not ints. (gimp_layer_apply_mask): properly disconnect the mask node. (gimp_layer_set_opacity): the opacity node has a "value" property, not "opacity". 2008-10-09 Michael Natterer Address Bug 554983 – Layers Projection using GEGL * app/gegl/gimp-gegl-utils.[ch]: add (imcomplete) function gimp_layer_mode_to_gegl_operation() from bug #554983. * app/core/gimpdrawable.[ch]: add gimp_drawable_get_source_node() which returns a GimpOperationTileSource for the drawable's tiles. (gimp_drawable_real_set_tiles) (gimp_drawable_configure): set the node's "tiles" property. * app/core/gimplayer.[ch]: add gimp_layer_get_node() which returns a GeglNode with proxy "input" and "output" pads to be plugged into the projection graph. The node has children for opacity, mask, layer mode and layer offset. (gimp_layer_translate) (gimp_layer_add_mask) (gimp_layer_apply_mask) (gimp_layer_set_opacity) (gimp_layer_set_mode): reconfigure the respective nodes. * app/core/gimpimage.[ch]: keep a "graph" node around and destroy it in finalize(). Not even a stub, just a silly GEGL dependency. 2008-10-09 Michael Natterer Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h had a GEGL dependency (they will have in the next commit, but I wanted to keep the commit separate). * app/dialogs/Makefile.am * app/file/Makefile.am * app/gui/Makefile.am * app/menus/Makefile.am * app/paint/Makefile.am * app/plug-in/Makefile.am * app/text/Makefile.am * app/vectors/Makefile.am * app/widgets/Makefile.am * app/xcf/Makefile.am: add GEGL_CFLAGS. * app/actions/*.c * app/core/*.c * app/dialogs/*.c * app/display/*.c * app/file/*.c * app/gui/*.c * app/menus/*.c * app/paint/*.c * app/pdb/gimppdb-utils.c * app/pdb/gimpprocedure.c * app/plug-in/*.c * app/text/*.c * app/tools/*.c * app/vectors/*.c * app/widgets/*.c * app/xcf/*.c: add or replace by to all files which include a drawable subclass or gimpimage.h * tools/pdbgen/app.pl: include instead of in all generated files. * app/pdb/*-cmds.c: regenerated. * data/images/gimp-splash.png: the goat is still sleeping. By Aurore Derriennic. 2008-10-09 Michael Natterer Remove the last code duplication from the undo system (or if not the last then at least the most ugly): * app/core/gimpimage.[ch] (gimp_image_add_layer,channel,vectors): add "gboolean push_undo" parameter and add the item without touching undo if it's TRUE. Changed assertions from g_object_is_floating() to !gimp_item_is_attached() so they also take items from the undo stack and not only newly created ones. (gimp_image_remove_layer,channel,vectors): add "push_undo" parameter here too. Also add a "new_active" parameter where an optional new active item can be passed. (gimp_image_remove_layer,channel): these functions must not be called with push_undo=FALSE and a floating selection attached to the layer/channel. This can't currently happen; added warnings in case other code is changed and makes it happen anyway. * app/core/gimpchannelundo.c * app/core/gimplayerundo.c * app/vectors/gimpvectorsundo.c: use above functions to add/remove items instead of duplicating (parts of) their code. Pass push_undo=FALSE and the previously active item to the remove() functions. * app/actions/channels-commands.c * app/actions/edit-commands.c * app/actions/layers-commands.c * app/actions/vectors-commands.c * app/core/gimp-edit.c * app/core/gimpchannelundo.c * app/core/gimpimage-crop.c * app/core/gimpimage-duplicate.c * app/core/gimpimage-merge.c * app/core/gimpimage-quick-mask.c * app/core/gimpimage-scale.c * app/core/gimplayer-floating-sel.c * app/core/gimplayerundo.c * app/core/gimpselection.c * app/core/gimptemplate.c * app/display/gimpdisplayshell-dnd.c * app/text/gimptext-compat.c * app/tools/gimptexttool.c * app/tools/gimpvectortool.c * app/vectors/gimpvectors-import.c * app/vectors/gimpvectorsundo.c * app/widgets/gimpchanneltreeview.c * app/widgets/gimpitemtreeview.[ch] * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimpvectorstreeview.c * app/xcf/xcf-load.c * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/paths.pdb: changed accordingly (pass TRUE unless it's a new image like when loading and XCF file). * app/pdb/image-cmds.c * app/pdb/paths-cmds.c: regenerated. 2008-10-09 Sven Neumann * data/images/Makefile.am * data/images/gimp-devel-logo.png: added 128x128 version of wilber-devel.png. * app/dialogs/about-dialog.c (about_dialog_load_logo): use gimp-devel-logo.png for unstable releasees. 2008-10-09 Sven Neumann Bug 555697 – build fails if configured with --without-libjpeg * plug-ins/Makefile.am: applied patch from Simon Zilliken that disables the build of the PSD plug-in if JPEG support is disabled. 2008-10-09 Michael Natterer Bug 134956 – Curves tool doesn't save free curves * app/core/gimpmarshal.list * app/widgets/gimpsettingsbox.[ch]: add signal "file-dialog-setup" and emit it when the export/import file chooser is fully constructed. Callbacks can then do additional things to the dialog, like adding custom buttons. * app/tools/gimpcurvestool.h * app/tools/gimplevelstool.h: add boolean member "export_old_format". * app/tools/gimpcurvestool.c * app/tools/gimplevelstool.c (gimp_*_tool_dialog): connect to the settings box' "file-dialog-setup". (gimp_*_tool_export_setup): new callback which adds a toggle to the file choosers that allows to export to the old format. Default saving the new format, we defaulted to the old one before. (gimp_*_tool_settings_export): check the "export_old_format" boolean and only save the cruft format if it is TRUE; chain up otherwise, which generically saves the new format. * app/tools/gimplevelstool.c (gimp_levels_tool_settings_import): add the same file format detection code as in the curves tool so it transparently loads old and new levels files. 2008-10-09 Sven Neumann * app/core/gimp-user-install.c (gimp_user_install_detect_old): use GIMP_MINOR_VERSION to determine the version to migrate from. 2008-10-09 Michael Natterer * app/gegl/gimpcurvesconfig.c (gimp_curves_config_save_cruft): when saving a curve of type GIMP_CURVE_FREE, don't use gimp_curve_get_point() because that returns nothing for free curves. (gimp_curves_config_load_cruft): reset the curve before loading it. * app/core/gimpcurve.c (gimp_curve_get_point): instead of above mentioned uninitialized nonsense, at least return -1,-1 for free curves. 2008-10-09 Michael Natterer * app/Makefile.am * tools/Makefile.am: change 2.6 to 2.7 here too. 2008-10-09 Sven Neumann * README * NEWS * configure.in: bumped version to 2.7.0 after creating a stable gimp-2-6 branch. 2008-10-09 Sven Neumann * Made 2.6.1 release. 2008-10-08 Martin Nordholts Bug 555587 – PSD file crashes PSD plug-in * plug-ins/file-psd/psd-load.c (add_merged_image): Handle img_a->alpha_names being NULL. 2008-10-08 Michael Natterer * libgimpwidgets/gimpruler.c: cosmetics. 2008-10-08 Michael Natterer Quick hack I needed for debugging and which doesn't hurt: * tools/test-clipboard.c (test_clipboard_paste): allow to paste to STDOUT by passing '-' as filename. 2008-10-08 Martin Nordholts * plug-ins/file-psd/psd-load.c (add_layers): Decrease scope of comp_mode and initialize it. 2008-10-08 Martin Nordholts Bug 555222 – PSD Load Plugin: unsupported compression mode * plug-ins/file-psd/psd-load.c (add_layers): Some PSD files can have channels where a compression method used for the channel data is specified, but without any actual channel data. Handle this case. Fix inspired by patch from Chris Mohler. 2008-10-08 Sven Neumann * app/base/tile-cache.c: use a GMutex instead of a GStaticMutex as the latter needs API that causes compiler warnings about dereferencing of type-punned pointers. 2008-10-07 Michael Natterer Bug 555362 – gimp-remote is not working properly * app/widgets/gimptoolbox-dnd.c (gimp_toolbox_dnd_init): add the window itself as drop traget again so gimp-remote works. 2008-10-07 Michael Natterer * app/*/Makefile.am: reorder sections consistently. Remove redundant CFLAGS. 2008-10-06 Sven Neumann Bug 555280 – some gif files will not be open * plug-ins/common/file-gif-load.c (GetCode): be more tolerant and continue loading with a warning message if there are bits missing at the end of the file. 2008-10-06 Sven Neumann * app/paint-funcs/scale-region.c (scale_region): removed debug output. 2008-10-06 Michael Natterer * plug-ins/common/file-gih.c * plug-ins/common/file-xbm.c: setting a spin button's page_increment to 1 is of no use, set it to 10 instead. 2008-10-06 Michael Natterer * app/plug-in/plug-in-menu-path.c (menu_path_mappings): add a fallback mapping from to so we catch really everything that wants to go to . 2008-10-06 Michael Natterer * app/core/gimpcontext.c (gimp_context_real_set_display): paranoia fix for hypothetical but harmful misbehavior: when setting the display from !=NULL to NULL, also set the image to NULL instead of relying on whatever obscure implicit behavior of other parts of GIMP which set a new display right away or make sure the image goes away together with the display. 2008-10-06 Michael Natterer * app/core/gimplayer.c (gimp_layer_add_mask): g_return_if_fail() on the mask's image being the same as the layer's image. The PDB already checks for this. * app/core/gimpimage.c (gimp_image_add_layer,channel,vectors): remove calls to gimp_item_set_image() because we only accept itmes of this image anyway. 2008-10-05 Michael Natterer * app/plug-in/gimpplugin-cleanup.c * app/vectors/gimpanchor.c: #include , not "glib-object.h". 2008-10-05 Michael Natterer * app/gegl/gegl-types.h: including ourselves serves no purpose. 2008-10-05 Michael Natterer Allow to "Open as Layers" in the empty display: * app/widgets/gimpfiledialog.[ch]: add member "gboolean open_as_layers". Rename gimp_file_dialog_set_image() to gimp_file_dialog_set_save_image() and add gimp_file_dialog_set_open_image() which sets both the image to load layers into and the "open_as_layers" boolean. * app/dialogs/file-open-dialog.c (file_open_dialog_response): look at dialog->open_as_layers instead of dialog->image to decide whether to open as layers (that's much more obvious). Enable open as layers without existing image by creating the image if it doesn't exist. * app/actions/file-commands.c (file_open_dialog_show): add "title" parameter and take the uri from the image if none was passed. Use the new gimp_file_dialog_set_open_image() instead of poking into the dialog struct. Change callers to pass the title and not get the uri from the image; instead always pass the image. * app/actions/file-actions.c (file_actions_update): keep "Open as Layers" sensitive even without image. 2008-10-05 Michael Natterer * app/core/gimpimage-contiguous-region.c: some formatting cleanups. (find_contiguous_segment): changed to return gboolean not gint. 2008-10-05 Sven Neumann * libgimpwidgets/gimpruler.c: cache the PangoLayout. Use it not only for drawing the numbers, but also to calculate the size requisition depending on the actual font size. 2008-10-05 Sven Neumann * libgimpwidgets/gimpruler.c: instead of hardcoding a size request, implement GtkWidget::size_request and set the size depending on the font-scale. 2008-10-05 Sven Neumann Bug 554890 – JPEG Save Options Dialog does not remember Subsampling mode * plug-ins/file-jpeg/jpeg.c (run): fixed problem introduced by the use of an enum for the subsampling factor. 2008-10-04 Michael Natterer * plug-ins/common/web-browser.c: return errors via return_vals instead of displaying them with g_message(). 2008-10-04 Sven Neumann * libgimpwidgets/gimpruler.c: increased ruler font scale from X_SMALL to SMALL as it appears to be too small for many users. * themes/Default/gtkrc: follow that change here, but keep the ruler font extra small in the Small theme. 2008-10-04 Sven Neumann * plug-ins/file-jpeg/jpeg-save.c: some cleanups to the subsampling code; in an attempt to fix bug #555031. 2008-10-04 Sven Neumann * INSTALL: updated GTK+ requirement. 2008-10-04 Michael Natterer * configure.in: depend on GTK+ 2.12.5 so motion history events of extended input devices have proper timestamps needed by paint tools. 2008-10-04 Sven Neumann * libgimpwidgets/gimpruler.c: make the font scale factor configurable in gtkrc. * themes/Default/gtkrc * themes/Small/gtkrc: for documentation, add the default value here. 2008-10-03 Sven Neumann * plug-ins/common/web-browser.c (browser_open_url): removed trailing whitespace and corrected error message. 2008-10-03 Hans Breuer * plug-ins/common/web-browser.c : when ShellExecute() is failing give the detailed (currently intentionally untranslated) error message via g_message() * **/makefie.msc gimpdefs.msc app/gimpcore.def : updated * app/core/gimpcurve.c : include for memcmp() * app/gegl/gimpcurvesconfig.c : include for strcmp() 2008-10-03 Sven Neumann Bug 554966 – Gimp crashes creating a new image using a template * app/display/gimpdisplayshell-scale.c (gimp_display_shell_scale_update_scrollbars) (gimp_display_shell_scale_update_rulers): bail out early if shell->display is NULL. 2008-10-03 Michael Natterer Bug 554785 – Compile failure on uri-backend-libcurl * plug-ins/file-uri/uri-backend-libcurl.c: apply patch from Robby Workman which fixes the build for this file. 2008-10-03 Sven Neumann * configure.in: removed custom error message from checks for babl and GEGL. The default error message is a lot more helpful. 2008-10-02 Sven Neumann * app/tools/gimpgegltool.c (gimp_gegl_tool_operation_blacklisted): add "text" to the list of blacklisted operations. 2008-10-02 Michael Natterer Bug 554646 – Opening Help crashes GIMP with lqr-plugin installed * app/widgets/gimphelp.c (gimp_help_get_help_domains): need to assign (*foo)[i] and not *foo[i] of a gchar** returned via return value location. 2008-10-02 Michael Natterer * app/plug-in/gimppluginprocframe.c: keep a reference to the proc_frame's procedure. We can't asume it's always there since it could be a temporary one and its plug-in might die during procedure execution, taking the temp_proc with it. 2008-10-02 Martin Nordholts Bug 553534 – centering issues after image scaling and setting zoom to 100% * app/display/display-enums.h: Added a GimpZoomFocus enum with 'best guess', 'pointer' or 'image center' values. * app/display/gimpdisplayshell-scale.[ch] (gimp_display_shell_scale): Take a GimpZoomFocus parameter and pass it on to (gimp_display_shell_scale_get_zoom_focus): which returns the requested zoom focus point if one was given, else makes a best guess. * app/actions/view-commands.c * app/display/gimpstatusbar.c * app/display/gimpnavigationeditor.c * app/display/gimpdisplayshell-callbacks.c * app/display/gimpdisplayshell-scale-dialog.c: For explicit-zoom commands like "zoom to 100%", always use the image center as the zoom focus point. For all other zooming, continue to use the best-guess method. * app/display/display-enums.c: Regenerated. 2008-10-02 Sven Neumann Bug 554898 – Compile failure on uri-backend-wget.c * plug-ins/file-uri/uri-backend-wget.c: removed spurious commas that broke the build. 2008-10-01 Sven Neumann * Makefile.am (EXTRA_DIST): added ChangeLog.pre-2-6 and NEWS.pre-2-6. 2008-10-01 Sven Neumann * tools/gimptool.c: create the target directory and intermediate parent directories as needed. Restores the behavior of the gimptool shell script. 2008-10-01 Sven Neumann * menus/Makefile.am (%.xml): added a dependency on configure.in to make sure that the image-menu.xml file is rebuilt when the version number is changed. 2008-10-01 Tor Lillqvist * app/plug-in/gimpplugin.c * app/widgets/gtkscalebutton.c: : Don't #define _GNU_SOURCE on Windows as it confuses newest mingw headers. 2008-10-01 Sven Neumann * configure.in: bumped version to 2.6.1 (interface age 1). 2008-09-30 Sven Neumann * Made 2.6.0 release.