Difference between revisions of "Hacking:TODO"

From GIMP Developer Wiki
Jump to: navigation, search
(2.10 todo update, part 3)
(Quick fix)
 
(38 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
__TOC__
 
__TOC__
  
=2.10=
+
= Version 3.0 release blockers=
  
This list is [http://bugzilla.gnome.org/buglist.cgi?product=GIMP&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&target_milestone=2.10 all 2.10 bugs with 2.10 milestone] sorted into:
+
We list here release blockers for v3.0. These are the bugs and lacking features that prevent us from releasing v3.0:
  
* '''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==
 
 
{| class="wikitable sortable" style="text-align: left;"
 
! '''#'''
 
! '''Description'''
 
! '''Status'''
 
! '''Comment'''
 
|-
 
|  || test and fix the merged PSD GSoC branch || {{yes}} || |
 
|-
 
|  || port all file plugins to [http://wiki.gimp.org/index.php/Hacking:Porting_file_plugins_to_GEGL_and_GIO GEGL and GIO] || {{wip}} ||
 
|-
 
|  || deprecate all of libgimp/gimpcolor_pdb.h, replacements in libgimp/gimpdrawablecolor_pdb.h || {{no}} ||
 
|-
 
| || Exporting barely works after the GEGL port || {{wip}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=762443 #762443] || Levels tool Output Level sliders works incorrectly || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=519503 #519503] || Healing Tool - Sample Merged option does not work || {{no}} || Initial patch was rejected
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=723213 #723213] || colors/levels/auto is broken for high bitdepth images || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=728607 #728607] || Patch to make divide blend mode work at 32-bit floating point || {{wip}} || initial patch available
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=736701 #736701] || LCMS2 rounding errors cause problems with certain GIMP blend modes || {{no}} || LCMS dependency has to bump to demand v2.7+
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=753412 #753412] || New Canvas rotation feature rotates brush || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=316479 #316479] || The Perspective Tool creates an empy image instead of transforming it || {{wip}} || initial patch available
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=768772 #768772] || Apply dynamics to MyPaint brush || {{no}} ||
 
|-
 
| || MyPaint brushes on its own package || {{wip}} || https://github.com/mypaint/mypaint/pull/538
 
|}
 
 
 
==Would be nice to have==
 
 
{| class="wikitable sortable" style="text-align: left;"
 
! '''#'''
 
! '''Description'''
 
! '''Status'''
 
! '''Comment'''
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=344684 #344684] || Greyscale (no alpha) clipboard brushes are of the wrong type || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=363738 #363738] || pick better size and position of the initial image window || {{no}}  || patch prototyped only
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=676768 #676768] || Filters not working on layer groups || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=553855 #553855] || Bucket fill colour is always blended with filled pixel colour when threshold > 0  || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=664748 #664748] || Move Tool doesn't move || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=637313 #637313] || Should be possible to copy/paste whole layers in a single step || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=122862 #122862] || Some settings in Tool Options are too long || {{wip}} || Mostly done, still need to set the "ellipsize" property of the combos
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=667862 #667862] || Allow mouse to optionally configure tablet devices || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=358141 #358141] || Add session management for plug-in windows || {{wip}} || patch with a workaround available
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=640613 #640613] || support for exporting CMYK TIFF format || {{wip}} || outdated patch available
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=745360 #745360] || Feature-Request n-point-deformation tool || {{wip}} || probably won't have the time to polish it to enable by default for 2.10
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=750940 #750940] || Make the histogram (dialog, Levels, Curves, etc) default to show RGB instead of Value || {{wip}} || patch available
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=727270 #727270] || Proposal to add gimp_metadata_set_from_iptc || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=735895 #735895] || Precision Conversion "Dithering" dialog || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=743034 #743034] || file-tiff-load crashes if I try to open a BigTIFF file || {{no}} || needs to be checked against the new tiff loader
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=575744 #575744] || exif tags and embedded color space profile not synchronized || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=757057 #757057] || The installation of .dll's into the plug-ins-subdirectory by additional plug-ins can cause malfunction of others || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=751548 #751548] || Support for Cineon and DPX file formats || {{no}} || Outdated initial plugin available, needs much work
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=748060 #748060] || Force parameter on Tool Options is ignored when there is dynamics force || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=51112 #51112] || Support layer masks on layer groups || {{no}} || it's originally among 2.10 goals, so maybe it's a blocker?
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=690265 #690265] || libgimp/gimptilebackendplugin.c provides no pyramid || {{no}} || probably is a blocker
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=765163 #765163] || Properly support the new-style built-in full screen mode of Mac OS X (version 10.7 and later) || {{no}} || depends on changes in GTK+, needs checking
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=556608 #556608] || Monitor color profile is not applied to filter preview || {{wip}} || most likely should be closed as resolved
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=750180 #750180] || Fix different ways of writing Plug-in Plug-In Plugin  || {{no}} || available patch didn't pass sanity check
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=661953 #661953] || Modernize autotools configuration || {{no}} || initial patch provided, didn't pass sanity check
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=382688 #382688] || Export layers as pages to PDF file || {{wip}} || available patch doesn't apply to master anymore
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=766988 #766988] || Colors applied to images are not color managed || {{wip}} || most likely should be closed as resolved
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=642938 #642938] || scripts that require brushes that GIMP no longer installs || {{wip}} || initial patch available
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=158192 #158192] || add thumbnail loader for TIFF images || {{no}} || new tiff plugin needs checking
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=728633 #728633] || Improvements to the file-raw plugin || {{wip}} || the three remaining patches are available in branch bug-728633
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=601821 #601821] || Retrieve multiple images from TWAIN data source || {{wip}} || patches are in the bug-357818 branch
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=357818 #357818] || TWAIN plug-in should skip scanner selection if there is just one scanner available || {{wip}} || patches are in the bug-357818 branch
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=767662 #767662] || MyPaint Brush with parse error aborts GIMP || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=767650 #767650] || Uncommitted scissors selection is discarded in cases where some other selections get committed || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=589371 #589371] || Improve default set of resources || {{wip}} || Patches available
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=735992 #735992] || Add more resolutions/templates to the New file dialog of GIMP || {{wip}} || Patch available in the icons-wip branch
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=731279 #731279] || Tool Preset Editor not working correctly || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=648776 #648776] || Mirror painting || {{wip}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=706309 #706309] || GIMP does not display “Save As” button In “Quit GIMP” pop up || {{wip}} || Jehan was going to provide a new patch
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=769550 #769550] || Test GTK+ patch for keyboard shortcuts for non-English locales || {{wip}} || We only need to test the patched GTK+, then bump deps
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=320447 #320447] || Fast switching between "color managed display" and "softproof" || {{wip}} || Elle is unhappy, there seems to be a compromise reached
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=769976 #769976] || [PATCH] Save as JPEG ignore quality setting || {{wip}} || Patch available, needs checking
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=770171 #770171] || Mypaint eraser won't work unless there is an alpha channel || {{no}} || Should be moved to blockers probably
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=769820 #769820] || Cannot enter Iptc information when no metadata is available and fails to write it to file when it is || {{wip}} || mitch promised to apply the patch with some changes
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=770241 #770241] || GeglBuffer leaks when using GIMP to cut a selection || {{no}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=769960 #769960] || animated WebP loader is not properly handling blending and transparency || {{wip}} || patch available for further review (code style improved)
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=599573 #599573] || Remember dialog defaults between Gimp sessions || {{wip}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=759904 #759904] || Some icons can't be set from the icon theme || {{wip}} ||
 
|-
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=770424 #770424] || Themes: insensitive menu item are not readable  || {{no}} ||
 
|-
 
| || complete the Unified Transform tool || {{no}} ||
 
|-
 
| || complete the Warp Transform tool || {{no}} ||
 
|-
 
| || complete the Seamless Clone tool || {{no}} ||
 
|-
 
| || public API for handling text layers data, so that the PSD plugin could make use of text layers || {{no}} ||
 
|-
 
| || merge and complete the new [http://git.gnome.org/browse/gimp/log/?h=soc-2011-gimpunitentry unit entry widget] || {{no}} ||
 
|}
 
 
=3.0=
 
==Blocks the release==
 
 
* make sure all custom widgets are themed on GTK+3
 
* make sure all custom widgets are themed on GTK+3
==Would be nice to have==
 
  
To be decided upon.
+
For the list of regular bugs and feature requests, please see [https://gitlab.gnome.org/GNOME/gimp/issues?milestone_title=3.0 all 3.0 bug reports with 3.0 milestone]. Some of [https://gitlab.gnome.org/GNOME/gimp/issues?milestone_title=2.10 bug reports with 2.10 milestone] may apply as well.
  
 
=Mindstorm: Miscellaneous ideas=
 
=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.
+
This chapter is a very unorganized 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.
 
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 ==
 
== More accepted separator characters inside GimpNumberPairEntry ==
 +
 
Estimated Hacking level: easy
 
Estimated Hacking level: easy
  
Line 197: Line 39:
  
 
==Add support for angular guides==
 
==Add support for angular guides==
 +
 
Estimated Hacking level: Easy-Medium Medium-Hard
 
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.
+
In short: add support for guides with an arbitrary 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).
 
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).
  
Line 224: Line 67:
  
 
==Support capturing the cursor inside the Screenshot plugin for Windows==
 
==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!
+
Estimated Hacking level: Easy (If you have some windows programming experience)
 +
 
 +
As the title states, unlike the Unix version of the screenshot plugin, the windows version cannot 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.
 
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==
 
==Support layer modes/masks in transform previews==
 +
 
Estimated Hacking level: ?
 
Estimated Hacking level: ?
  
Line 236: Line 81:
  
 
==Support selecting guides by location with the align tool==
 
==Support selecting guides by location with the align tool==
 +
 
Estimated Hacking level: Easy-Medium
 
Estimated Hacking level: Easy-Medium
  
Line 241: Line 87:
  
 
==Create a plugin for laying out text inside the selection==
 
==Create a plugin for laying out text inside the selection==
Estimated Hacking level: ? Requires some knowledge of pango and cairo
+
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
 
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=
 
=See also=
 +
 
[[Roadmap]]
 
[[Roadmap]]

Latest revision as of 12:49, 14 November 2018

Version 3.0 release blockers

We list here release blockers for v3.0. These are the bugs and lacking features that prevent us from releasing v3.0:

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

For the list of regular bugs and feature requests, please see all 3.0 bug reports with 3.0 milestone. Some of bug reports with 2.10 milestone may apply as well.

Mindstorm: Miscellaneous ideas

This chapter is a very unorganized 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 arbitrary 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 experience)

As the title states, unlike the Unix version of the screenshot plugin, the windows version cannot 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