Hacking:TODO

From GIMP Developer Wiki
Revision as of 20:56, 29 August 2016 by Prokoudine (Talk | contribs)

Jump to: navigation, search

2.10

Blocks the release = something that had worked before got broken / only partially works after major changes

Would be nice to have = feature request we have no time for, or a minor bug that doesn't affect too many people

Blocks the release

  • test and fix the merged PSD GSoC branch
  • port all file plugins to GEGL and GIO
  • deprecate all of libgimp/gimpcolor_pdb.h, replacements in libgimp/gimpdrawablecolor_pdb.h
  • Levels tool Output Level sliders works incorrectly #762443
  • Healing Tool - Sample Merged option does not work #519503
  • colors/levels/auto is broken for high bitdepth images #723213
  • Patch to make divide blend mode work at 32-bit floating point #728607
  • LCMS2 rounding errors cause problems with certain GIMP blend modes #736701 (trivial)
  • New Canvas rotation feature rotates brush #753412
  • The Perspective Tool creates an empy image instead of transforming it #316479 (initial patch available)
  • MyPaint brushes on its own package.
  • all 2.10 bugs with 2.10 milestone


Would be nice to have

  • Greyscale (no alpha) clipboard brushes are of the wrong type #344684
  • pick better size and position of the initial image window #363738
  • Filters not working on layer groups #676768
  • Bucket fill colour is always blended with filled pixel colour when threshold > 0 #553855
  • Move Tool doesn't move #664748
  • Should be possible to copy/paste whole layers in a single step #637313
  • Some settings in Tool Options are too long #122862
  • Allow mouse to optionally configure tablet devices #667862
  • Add session management for plug-in windows #358141 (patch with a workaround available)
  • support for exporting CMYK TIFF format #640613
  • Feature-Request n-point-deformation tool #745360 (probably won't have the time to polish it to enable by default for 2.10)
  • Make the histogram (dialog, Levels, Curves, etc) default to show RGB instead of Value #750940 (patch available)
  • Proposal to add gimp_metadata_set_from_iptc #727270
  • Precision Conversion "Dithering" dialog #735895
  • file-tiff-load crashes if I try to open a BigTIFF file #743034 (needs to be checked against the new tiff loader)
  • exif tags and embedded color space profile not synchronized #575744
  • The installation of .dll's into the plug-ins-subdirectory by additional plug-ins can cause malfunction of others #757057
  • Support for Cineon and DPX file formats #751548
  • Force parameter on Tool Options is ignored when there is dynamics force #748060
  • Support layer masks on layer groups #51112 (it's originally among 2.10 goals, so maybe it's a blocker?)
  • libgimp/gimptilebackendplugin.c provides no pyramid #690265 (probably is a blocker material)
  • Properly support the new-style built-in full screen mode of Mac OS X (version 10.7 and later) #765163 (depends on changes in GTK+, needs checking)
  • Monitor color profile is not applied to filter preview #556608 (most likely should be closed as resolved)
  • Fix different ways of writing Plug-in Plug-In Plugin #750180
  • Modernize autotools configuration #661953 (initial patch provided, didn't pass sanity check)
  • complete the Unified Transform tool
  • complete the Warp Transform tool
  • complete the N-Point Transform tool
  • complete the Seamless Clone tool
  • public API for handling text layers data, so that the PSD plugin could make use of text layers
  • merge and complete the new unit entry widget

3.0

Blocks the release

  • make sure all custom widgets are themed on GTK+3

Would be nice to have

.


Mindstorm: Miscellaneous ideas

This chapter is a very un-organized list of ideas/suggestions that were discussed by GIMP developers. It contains enough ideas for enhancement requests and other small changes, and it should be the perfect place for new GIMP developers to find an idea on what should they do.

I'm rating the ideas by an approximation of how hard do they seem so you'll know what to tackle first. However, remember that this is just an approximation.

More accepted separator characters inside GimpNumberPairEntry

Estimated Hacking level: easy

GimpNumberPairEntry is the widget used in all the rectangle selection tools, for specifying the ratio between the width and height of the selection. This widget is like a regular entry, except for the fact that it can accept two numbers separated by some predefined separator character.

It was recently discussed on the IRC (July 2010) that GimpNumberPairEntry's should have the possibility of accepting any non-digit character as a separator. For example :/ are a valid separators for ratios, xX,are a valid separators for exact sizes and in some cases even more separators would be considered logical.

Instead of trying to guess what should be considered a valid separator, it was suggested that any non-digit character would be accepted as a separator (we don't say that just punctuation characters are valid since then we ignore x and X). Now, in order to not change the api of the widget we can't omit the separator argument on the constructor.

We should either add a new function that enables using any non-digit character as a separator or make this the default behaviour. If anyone wants to do this, consult guiguru before also about what to do with erroneous inputs (such as "100:50:20" - should this be 100 and 50? or maybe 100 and 5020? The current behaviour is that if an erroneous input is given, it's ignored and the previous state is restored).

Export/Save specifications for non-dirty (clean) images

Estimated Hacking level: ?

Should we allow to re-export/re-save an image which was opened and no changes were made to it?

In addition to the fact that there doesn't seem to be any reason to export what you just imported back to the same file, this may even cause loss of quality/information. For example, when using lossy formats such as JPEG you will probably lose quality with each time you import and then export. Also,this is especially critical with images that were imported from one of the non-native formats (i.e. non XCF formats) since we may loose information in every such export (For example, gimp can import PSDs and ignore features it doesn't support, but if we re-export it the original information which is not supported by gimp will be lost). It doesn't seem smart to encourage this loss of quality and information...

Note that this should probably be consistent between saving and exporting; We won't allow saving an image to the original file if it wasn't modified only if we also apply the same restriction on exporting.

One last note: some file plugins import images and make changes to them during the import (for example, the JPEG plugin can rotate an image during import based on it's exif data). Should we allow these plugins to mark the imported image as dirty so that it can be saved again? [Editors note]: As far as I know there is no function to mark an image as dirty, so this will probably require the addition of a new PDB procedure.

Add support for angular guides

Estimated Hacking level: Easy-Medium Medium-Hard

In short: add support for guides with an arbitary angle (and not limited to 0 degrees/90 degrees. You'll need to take a look (at least) at the following files app/display/gimpdisplayshell-draw.c, app/core/gimpimage-guides.c, app/core/gimpguide.c).

Edit: Actually, any api change you'll make to existing function will force you to change these:

  • app/core/gimpimage-guides.c
  • app/core/gimpguideundo.c
  • app/core/gimpimage-flip.c
  • app/core/gimpguideundo.h
  • app/core/gimpguide.c
  • app/core/gimpimage-duplicate.c
  • app/core/gimpimage-crop.c
  • app/core/gimpimage-arrange.c
  • app/core/gimpimage-scale.c
  • app/core/gimpimage-snap.c
  • app/core/gimpimage-rotate.c
  • app/core/gimpimage-resize.c
  • app/display/gimpdisplayshell-expose.c
  • app/display/gimpdisplayshell-draw.c
  • app/tests/test-xcf.c
  • app/tools/gimpaligntool.c
  • app/tools/gimpmovetool.c
  • app/xcf/xcf-save.c

That's many many files - so annoying... It may be easier to introduce angular guides as new types of objects...

Support capturing the cursor inside the Screenshot plugin for Windows

Estimated Hacking level: Easy (If you have some windows programming expirience)

As the title states, unlike the unix version of the screenshot plugin, the windows version can not capture the cursor. Adding a support for this would be great! For thos who want to get a reference, you can see an article about how to get the bitmap of the cursor here: http://msdn.microsoft.com/en-us/magazine/cc301524.aspx. Note that some of the links in the article are broken, but you should be able to find the ones with the code.

Support layer modes/masks in transform previews

Estimated Hacking level: ?

Layer blending modes are currently disabled during transformation previews, due to the fact that they require a bit more processing. A small enhancement would be to add a check-box to enable layer modes during transformation previews. This is sometimes essential for getting the transformation right =) The same goes for enabling layer masks during transformation previews.

Support selecting guides by location with the align tool

Estimated Hacking level: Easy-Medium

Allow to pick a guide by it's x/y location with the align tool instead of fighting the cursor to select it

Create a plugin for laying out text inside the selection

Estimated Hacking level: ? Requires some knowledge of pango and cairo

Create a plugin that will allow taking a text layer and adding spaces/line-breaks so that it will flow into the selection. You may get some basic hints on how to do this from the following mail that was sent to the Pango mailing list - http://www.mail-archive.com/gtk-i18n-list@gnome.org/msg01373.html

See also

Roadmap