app: s/sprintf/g_snprintf/ in xcf_save_image()
[gimp.git] / NEWS.pre-2-8
blobfaa006c1b17a7f16251267a341901600834de61c
1                    ------------------------------
2                    GNU Image Manipulation Program
3                           Development Branch
4                    ------------------------------
6 This used to be the development branch that lead to GIMP 2.8.
9 Changes in GIMP 2.8.0
10 =====================
13 Core:
15  - Add our own GimpOperationBrightnessContrast because GEGL one is different
18 Plug-ins:
20  - Fix some GFig rendering issues
23 Source and build system:
25  - Depend on Babl 0.1.10, GEGL 0.2.0 and some other new library versions
28 General:
30  - Bug fixes
31  - Translation updates
34 Changes in GIMP 2.7.5
35 =====================
38 UI:
40  - Minor application menu fixes on the Mac
41  - Make the toolbox arbitrarily resizable again
42  - Add axis labels to the dynamics curves to make them more obvious
43  - Fix dockable showing to do the right thing in both MWM and SWM
44  - Fix some glitches in the tool preset UI, like proper sensitivity
47 Core:
49  - Restore autoshrink functionality in the rectangle tools
50  - Allow smudge to work with dynamic brushes
51  - Make sure tool presets and tool options are consistent after loading
52  - Add automatic tags for the folders a file lives in
53  - Make the default Quick Mask color configurable
54  - Fix Color Balance so the "range" setting actually makes a difference
57 Plug-ins:
59  - Proper toplevel item sorting in the help browser
60  - Use libraries instead of launching programs in file-compressor
61  - Use the Ghostscript library instead of launching ghostscript
62  - Allow to switch off antialiasing when importing from PDF
63  - Embed the page setup in the main print dialog
64  - Port Gfig to cairo
67 Libgimp:
69  - Add PDB API to modify a lot of paint and ink options
72 Data:
74  - Add a new set of default brushes and tool presets from Ramon Miranda
77 Developer documentation:
79  - Update everything including app/ so all functions appear again
82 Source and build system:
84  - Remove the unmaintained makefile.msc build system
85  - Explicitly link plug-ins to -lm when needed
86  - Also create .xz tarballs
89 General:
91  - Lots of bug fixes
92  - Tons and tons of translation updates
95 Changes in GIMP 2.7.4
96 =====================
99 UI:
101  - Add a close button to image tabs in single-window mode
102  - Improve the transform tools' undo strings to be more descriptive
103  - Render the layer's "eye" icon in inconsistent state if the layer is
104    visible, but one of its parents isn't
105  - Add proper stacking for canvas items, so things don't hide each other
106  - Make sure single-window-mode and multi-window-mode are always saved
107    consistently in sessionrc
110 Core:
112  - Fix "render_image_tile_fault: assertion `tile[4] != NULL' failed"
113    warnings that occurred for some image sizes
114  - Fix attachment of the floating selection when the gegl projection
115    is enabled
116  - Replace heal algorithm with a new one by Jean-Yves Couleaud that
117    works much better
118  - Make resource sub-folders show up in UI as tags, allowing users
119    to easily locate resource collections they may have installed
120  - Fix graphics tablet canvas interaction by moving from
121    gdk_pointer_grab() to gtk_grab_add() for most grabs
122  - Stop using motion hints, they are a concept from the dark ages
125 Libgimp:
127  - Add a basic paint dynamics PDB interface
130 Plug-ins:
132  - Make writing color space information to BMP files optional
133  - PSD loader now reads and imports working paths
136 Script-Fu:
138  - Lots and lots of undeprecations
141 Developer documentation:
143  - Add devel-docs/gegl-porting-plan.txt
146 Source and build system:
148  - Make git-version.h generation work in shallow git clones
149  - Modernize use of autotools a bit, maintainer-mode and pdbgen
150    are now enabled by default
153 General:
155  - Make gimptool install scripts in the correct system-wide directory
156  - Fix lots and lots of stuff found by static code analysis
159 Changes in GIMP 2.7.3
160 =====================
165  - Use GimpSpinScales instead of scale entries in all dockable widgets
166  - Allow the spin scale to control a range larger than its scale's range
167  - Implement RTL mode in GimpSpinScale
168  - Add lots of tooltips to tool options
169  - Allow to drop more things to the empty image window, and simply
170    create new images from them
171  - Cage tool: allow to add handle to the cage when clicking on an edge
172  - Cage tool: allow to remove selected handles from the cage by hitting delete
173  - Remember column widths in multi-column dock windows
174  - Support starting GIMP in single-window mode
175  - When the brush is shared among paint tools, also share all
176    brush-modifying paint options
177  - Use ALT+number and ALT+Tab shortcuts to navigate between images
178    in both single- and multi-window mode
179  - Make 'Export to' always activatable and fall back to 'Export...' if
180    no export target has been set yet
181  - In single-window mode, add new dockable dialogs to the image window
182    instead of in a new window
183  - When switching on single-window mode, put docks in the image window
184    depending on what side of the window they originally had
185  - When switching off single-window mode, distribute dock windows
186    better
187  - Add a canvas item for the transform grid, fixing a major speed
188    regression, and add the same guides options as in the rectangle tools
189  - Don't unmaximize the single-window mode image window when closing
190    images
191  - Resurrect the "You can drop dockable dialogs here" help string
192    below the toolbox
193  - Make pick-and-move with the Move Tool work for layers in a layer
194    group
197 Core:
199  - Add GimpMotionBuffer which abstracts away stroke smoothing behind
200    a simple API and takes it out of GimpDisplayShell
201  - Add a GimpIdTable utility class
202  - Add a GimpDockContainer interface
203  - Add a GimpSessionManaged interface
204  - Add GimpCanvasRectangleGuides which makes the rectangle tool's
205    guides draw properly
208 Libgimp:
210  - Make libgimp depend on GdkPixbuf
211  - Add API to create layers from cairo surfaces
212  - Make it impossible to include individual files from any GIMP
213    library. This was always forbidden and designed so it most
214    probably breaks, but now it reliably breaks using #error
215  - Deprecate the "set_sensitive" logic and use g_object_bind_property()
218 Plug-ins:
220  - Use poppler's cairo API to load PDFs, the pixbuf API is removed
221  - Port screenshot from GdkPixbuf to cairo
222  - Fix the annoying parser build warnings in imagemap
223  - Add a check-for-deprecated-procedures-in-script-fu make target
224  - Update libpng code to not use deprecated API (file-mng and file-png)
225  - Add an Item class to pygimp
226  - Correct/update some labels and defaults in the JPEG plug-in's save dialog UI
227  - Fix "Bug 596410 - gimp-image-get-filename returns NULL for imported files"
230 Developer documentation:
232  - Many updates
235 Source and build system:
237  - Make cairo a global dependency, starting at libgimpcolor
238  - Require poppler >= 0.12.4
239  - Remove gimp-remote for good, it has been disabled for years
242 General:
244  - Some more undeprecations now that we use GTK+ 2.24
245  - Fix lots of warnings that are new in -Wall in GCC 4.6
246  - Lots of bug fixes and cleanup
247  - Lots of translation updates
250 Changes in GIMP 2.7.2
251 =====================
256  - A lot of undeprecations due to GTK+ 2.22 and 2.24
257  - Lots and lots of cairo porting, calls to gdk_draw_* are gone
258  - Merge the cage transform tool from GSoC
259  - Remove the old bitmap cursors completely and always use RGBA cursors
260    also for compat cursors for old X servers
261  - Add new GimpCanvasItem infrastructure with subclasses for everything
262    that needs to be drawn on the canvas and port all tools to canvas items,
263    this is a huge change that touches all tools and almost all display
264    code, and which finally gets rid of XOR drawing altogether
265  - Switch from purely idle-rendering the display to something that ensures
266    a minimum framerate, so we don't fail to update under heavy load
267  - Make the text tool handle RTL mode better
268  - Change GimpColorMapEditor to use the newly added proxy GimpPalette
269  - Replace the brush scale control in tool options by a brush size
270    one that works in pixels, and does the right thing when the brush
271    changes
272  - Add new widget GimpSpinScale which is a scale with number entry,
273    and use it in all tool options
274  - Make the brush, pattern etc. selectors in tool options more
275    compact and allow to directly jump to the editor dialogs
276  - Make handle sizes in tools consistent
277  - Add an on-canvas progress and use it for tool progress instead of
278    the statusbar
279  - Add a new GimpToolPalette class with lots of code that was
280    in GimpToolBox
281  - Allow to properly drop into and after a layer group
282  - Refactor and clean up the dynamics editor widget, and add colors
283    for the curves
284  - Add support for F2 to rename items in lists
285  - Clean up GimpDeviceStatus internally and visually
286  - Allow to set GimpToolPreset's icon using the new GimpIconPicker widget
287  - Make the text tool's style overlay show default values from the
288    text object if there is no style active at the cursor position/selection
289  - Show the the text size's unit in the text style overlay
290  - Make tool dialogs transient to the image window again
291  - Consistently add a "gimp-" prefix to all window roles
292  - Make the preset buttons in tool options work on the global tool
293    presets instead of the removed per-tool preset lists
294  - Add GimpControllerMouse, which allows to bind extra mouse buttons to
295    arbitrary actions
298 Core:
300  - Add uniform API to turn any GimpItem's outline into a selection
301  - Add support for color tags in text layers
302  - Remove the selection_control() stuff from GimpImage and with it
303    maybe last piece of UI code still not properly separated
304  - Add more validation code for XCF loading
305  - Add accessors to GimpPalette and use them globally
306  - Keep a proxy GimpPalette around for the image's colormap
307  - Don't scale SVGs when pasting or importing them
308  - A lot of changes to the input device handling code, partly
309    merged from the gtk3-port branch, add GimpDeviceManager class
310  - Add smoothing of paint strokes
311  - Fix display filters to work on a cairo surface
312  - Fix and enhance GimpImage's URI/filename handling API
313  - Unset "removed" flag on items when they get added back to
314    the image from the undo stack
315  - Change item creation to properly use GObject properties and
316    remove item_configure() and drawable_configure()
317  - Refactor tool event handling and move lots of stuff into
318    utility functions
319  - Clean up GimpViewRenderer API
320  - Implement transforms on group layers
321  - Clean up the transform tool a lot, and refactor away old junk
322  - Tool and tool event cleanup: enforce tool activate/halt invariants,
323    consistently shutdown all tools in control(HALT), and many other
324    tool fixes
325  - Remove GimpToolPresets object, this functionality got merged into
326    the new GimpToolPreset system
327  - Rename GimpFilteredContainer to GimpTaggedContainer and add a new
328    GimpFilteredContainer parent class which is a generic filter
329  - Remove the concept of an "offset" from TileManager and instead
330    pass around the offsets explicitly when needed, like when
331    transforming
332  - Move GimpBezier desc from vectors/ to core/ and add API to create
333    one from sorted BoundSegs
334  - Change GimpBrush boundary API to return a GimpBezierDesc
335  - Add GimpBrushCache object and use it to cache a brush's transformed
336    pixels and its outline, remove the caching code from GimpBrushCore
337  - Add GimpBezierDesc based API to GimpScanConvert and use it
340 GEGL:
342  - Add operations and gegl infrastructure for the cage tool
343  - Disable View -> Use GEGL as we will not have time to finish the
344    GEGL projection code for GIMP 2.8
347 Libgimp:
349  - Introduce an "item" type in the PDB and libgimp and deprecate
350    lots of old API in favor of item API
351  - Add procedures to create, traverse and manipulate layer trees
352  - Add more state to the context API, and deprecate functions with
353    too many parameters in favor of simpler ones that use context states,
354    particularly the entire transform and selection API
355  - Move GimpUnitStore and GimpUnitComboBox to libgimpwidgets, and
356    use them in GimpSizeEntry, deprecate GimpUnitMenu.
357  - Deprecate gimp_min_colors() and gimp_install_cmap()
358  - Add API that enables GimpRuler to track motion events by itself
359  - Add new selection API and deprecate all old selection functions
360  - Move around and rename all parasite functions, deprecate the old ones
361  - Add a generated PDB file in the "gimp" namespace and get rid
362    of "gimpmisc"
363  - Add unit conversion functions to libgimpbase
364  - Add function to reset a plug-in's context to default values
367 Plug-ins:
369  - Make script-fu server IPv6 aware
370  - Follow libgimp deprecations in plug-ins and scripts
371  - Add PDF export plugin
372  - Lots of cairo porting here too
373  - UTF-8 fixes in script-fu
374  - Set the progress to 1.0 when done
375  - Merge a lot of upstream fixes into script-fu's Tinyscheme
376  - Add "New Layer" option to MapObject
377  - Support loading of 16-bit raw PPM files
378  - Add web-page, a new plug-in which renders images of web pages
379  - Fix some more plug-ins to not warn if applied on an empty region
382 Data:
384  - Remove "Untitled" from palette names entries
387 Developer documentation:
389  - Move libgimp documentation from templates to inline comments
390  - Generate standard deprecated sections
393 Source and build system:
395  - Add more code documentation
396  - Add more unit tests and refactor existing ones to use global
397    test utility functions
398  - Add a manifest to executables (app and plug-ins, Win32)
399  - Depend on GLib 2.28, GTK+ 2.24, Cairo 1.10
400  - Make WebKit available to all plug-ins, not just the help browser
401  - Run UI tests on Xvfb if available
402  - Check for GdkPixbuf separately because it's now a separate library
403  - Allow tests to use uninstalled plug-ins from the build dir
404  - Remove, comment out, or build for GIMP_UNSTABLE some stuff that
405    should not be in a stable release
408 General:
410  - Improve safety on Win32 by calling SetDllDirectory() and
411    SetProcessDEPPolicy()
412  - Switch from GtkObject::destroy() to GObject::dispose() all over
413    the place
414  - Various changes that make maintaining the gtk3-port branch easier,
415    such as s/GtkAnchorType/GimpHandleAnchor/ and s/GtkObject/GtkAdjustment/
416  - Don't use gtk_container_add() for adding to GtkBoxes
417  - Inherit from GtkBox directly, not from GtkHBox/GtkVBox
418  - Add namespace to the ink blob types and functions
419  - Remove all useless calls to gtk_range_set_update_policy()
420  - Use GObject::constructed() instead of GObject::constructor() all
421    over the place
422  - Move more members to private and add accessors for them
423  - Stop using GdkNativeWindow, use guint32 instead
424  - Plug memory leaks
425  - Remove ps-menurc, we are not a PS clone
426  - Use the new g_[s]list_free_full() instead of foreach() and free()
427  - Don't use newly deprecated GTK+ API
428  - Use the new GDK_KEY_foo key names
429  - Lots of bug fixes and cleanup
430  - Lots of translation updates
433 Changes in GIMP 2.7.1
434 =====================
439  - Add "lock content" button to the layers, channels and paths dialogs,
440    make the lock buttons more compact
441  - Refuse to edit locked items
442  - Add support for layer groups
443  - Improve internals and GUI of the save/export functionality
444  - Move the shortcut dialog's "clear" button into the entry
445  - Clean up UI code by introducing GimpDockWindow and GimpImageWindow
446    classes
447  - Support multi-column dock windows
448  - Get rid of docking bars, use highlights in existing widget hierarchy instead
449  - Remove toolbox-window-hint gimprc setting and use dock-window-hint
450    for both toolbox and docks instead
451  - Move GimpDock::default-height style property to GimpDockWindow
452  - Polish save+export path-part precedence rules
453  - Merge the GSoC 2009 Advanced GUI for Brush Dynamics project
454  - Default to non-fixed-aspect in Canvas Size dialog
455  - Add a still incomplete and Single-window mode
456  - Have an Export button, not Save, in export dialogs
457  - Improve Free Select Tool handle highlighting
458  - Support changing user interface language from preferences
459  - Update ps-menurc with PS CS4 keyboard shortcuts
460  - Reduce spacing around canvas and use it for the canvas itself
461  - Put name of active dockables in dock window titles
462  - Don't have Toolbox in list of Recently Closed Docks, handle that
463    directly in the Windows menu
464  - Support selecting and tagging multiple objects in resource lists
465  - Improve on-canvas text editing and text attribute setting
466  - Add GimpContainerTreeStore and use it in all GtkTreeStore based views
467  - Add a new default "automatic" tab style that makes sure dockable tabs
468    always show as much detail as possible
469  - Remove the dockable title bar and add the menu arrow button next to the
470    notebook tabs
471  - Add an icon for the desaturate tool
472  - Add 'Rule of fifths' crop guide overlay
473  - Make Alt+Click on layers not affect active layer
476 Core:
478  - Make all GimpItems lockable so their contents can't be changed
479  - Make more sense when naming imported layers
480  - Make group layers work except for layer masks and save them in
481    the XCF
482  - Change GimpProjectable::update to GimpProjectable:invalidate
483  - Make sure we don't mix font backends (and crash) by explicitly
484    asking for FT/Fontconfig backends
485  - Move members of GimpObject to a private struct
486  - gimp_object_get_name() takes a gconstpointer now, remove casts
487    from all callers
488  - Let drawables connect to their floating selection's "update" signal
489    instead of letting the image do this job
490  - Fix brush rotation artifacts at even 90 degree rotation
491  - Don't leak shared tile memory on Solaris
492  - Add a PDB procedure to access a text layer's markup
493  - Remove legacy cruft from pdbgen and make sure number ranges are correct
494  - Move all image creation functions to a common file
495  - Add translation context to all undo descriptions
498 GEGL:
500  - Make sure all nodes are added to their resp. graphs
501  - Use GEGL for layer scaling if use-gegl is TRUE
504 Plug-ins:
506  - Updated script-fu's scheme to latest upstream fixes
507  - Don't store image-specific print settings globally
508  - Add fundamental OpenRaster (.ora) import and export support
509  - Add RGB565 support to the csource plug-in
512 Data:
514  - Add texture/grunge brushes made by Johannes Engelhardt
517 Developer documentation:
519  - Explain GimpContext
520  - Add SVG graphic with GIMP application core module dependencies
521  - Add a schedule for 2.8 development
524 Source and build system:
526  - Add more code documentation
527  - Clean up subsystem linking dependencies in app/
528  - Add unit testing framework in app/tests/ and some basic tests,
529    including basic UI tests and XCF tests
530  - Tentatively introduce usage of using Glade + GtkBuilder
531  - Depend on GLib 2.24.0 and GTK+ 2.20.0
532  - Add git commit hash in --verbose --version output
533  - Don't version control gtk-doc.m4, get it from gtkdocize
534  - Add GimpObject tracking code
535  - Plug memory leaks
536  - Lots of bug fixes and cleanup
537  - Lots of translation updates
540 Changes in GIMP 2.7.0
541 =====================
544  - Change the Text Tool to perform text editing on-canvas (GSoC 2008)
545    and add the ability to mix different text styles in the same layer
546  - Add support for tagging GIMP resources such as brushes and allow
547    filtering based on these tags (GSoC 2008)
548  - Separate the activities of saving an image and exporting it, there is
549    now a 'File->Export...' for example
550  - Port file plug-ins to new export API which gets rid of many
551    annoying export dialogs
552  - Add a simple parser to size entry widgets, images can be scaled
553    to e.g. "50%" or "2 * 37px + 10in"
554  - Arrange layer modes into more logical and useful groups
555  - Added support for rotation of brushes
556  - Make the Pointer dockable show information about selection position
557    and size
558  - Get rid of the Tools dockable and move toolbox configuration to
559    Preferences
560  - Allow closing the toolbox without closing the whole application
561  - Add status bar feedback for keyboard changes to brush parameters
562  - Add diagonal guides to the Crop Tool
563  - New docks are created at the pointer position
564  - Add support for printing crop marks for images
565  - Move 'Text along path' from tool options to text context menu
566  - Change default shortcuts for "Shrink Wrap" and "Fit in Window" to
567    Ctrl+J and Ctrl+Shift+J respectively since the previous shortcuts
568    are now used for the save+export feature
569  - Make Alt+Click on layers in Layers dockable create a selection from
570    the layer
571  - Allow to specify written language in the Text Tool
572  - Support custom mapping curves for input device properties like "Pressure"
573  - New desktop launcher icon
574  - Add 'Windows→Hide docks' menu item that does what 'Tab' does and also displays
575    its state. Make the state persistent across sessions, too.
576  - Make dock window title separators translatable
579 Plug-ins:
581  - Map the 'Linear Dodge' layer mode in PSD files to the 'Addition'
582    layer mode in GIMP
583  - Add JPEG2000 load plug-in
584  - Add X11 mouse cursor plug-in
585  - Add support for loading 16bit (RGB565) raw data
586  - Add palette exporter for CSS, PHP, Python, txt and Java, accessed
587    through palette context menu
588  - Add plug-in API for getting image URI, for manipulating size of
589    text layers, for getting and setting text layer hint, and for
590    unified export dialog appearance
591  - Add an 'As Animation' toggle to the GIF export options
592  - Add 'active_vectors' getsetter to Python 'gimp.Image'
595 Data:
597  - Add large variants of round brushes and remove duplicate and
598    useless brushes
599  - Add "FG to BG (Hardedge)" gradient
602 GEGL:
604  - Port the projection code, the code that composes a single image
605    from a stack of layers, to GEGL
606  - Port layer modes to GEGL
607  - Port the floating selection code to GEGL
608  - Refactor the layer stack code to prepare for layer groups later
609  - Prepare better and more intuitive handling of the floating
610    selection
611  - Add File->Debug->Show Image Graph that show the GEGL graph of an
612    image
613  - Allow to benchmark projection performance with
614    File->Debug->Benchmark Projection
615  - When using GEGL for the projection, use CIELCH instead of HSV/HSL
616    for color based layer modes
619 Core:
621  - Make painting strokes Catmull-Rom Spline interpolated
622  - Add support for arbitrary affine transforms of brushes
623  - Add support for brush dynamics to depend on tilt
624  - Add aspect ratio to brush dynamics
625  - Add infrastructure to soon support vector layers (GSoC 2006)
626  - Rearrange legacy layer mode code to increase maintainability
627  - Drop support for the obsolete GnomeVFS file-uri backend
628  - Allow to dump keyboard shortcuts with File->Debug->Dump Keyboard
629    Shortcuts
630  - Prepare data structures for layer groups
631  - Remove gimprc setting "menu-mnemonics",
632    "GtkSettings:gtk-enable-mnemonics" shall be used instead
633  - Remove "transient-docks" gimprc setting, the 'Utility window' hint
634    and a sane window manager does a better job
635  - Remove "web-browser" gimprc setting and use gtk_show_uri() instead
638 General:
640  - Changed license to (L)GPLv3+
641  - Use the automake 1.11 feature 'silent build rules' by default
642  - Lots of bug fixes and cleanup