mirror of https://github.com/GNOME/gimp.git
550 lines
17 KiB
XML
550 lines
17 KiB
XML
<!-- Stuff that is scheduled to be done. Ideas do not go here, put
|
|
them into the old TODO file for now.
|
|
|
|
This is used to generate the online TODO list for GIMP using the
|
|
script docs/make-todo. There is a script on developer.gimp.org
|
|
that updates this file daily from anoncvs. If you modify this file,
|
|
you should check for parse errors by running:
|
|
|
|
$ docs/make-todo TODO.xml > /dev/null
|
|
|
|
before committing, or you may screw up the online version -->
|
|
|
|
<todo logourl="wilber.png">
|
|
<title>GIMP TODO List</title>
|
|
|
|
<section>
|
|
<title>General</title>
|
|
|
|
<entry size="big" difficulty="advanced" status="90%" target="1.4">
|
|
<title>Port to glib-2.0 and gtk+-2.0</title>
|
|
<description>
|
|
<p>
|
|
Most of the porting work is completed. By default all files
|
|
are compiled with the DISABLE_DEPRECATED definitions that
|
|
prevent us from using deprecated API. Some files however still
|
|
work around this. Mostly this is because they use legacy
|
|
widgets like GtkCList, GtkList or GtkPreview.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="easy" status="90%" target="1.4">
|
|
<title>Header cleanup</title>
|
|
<description>
|
|
<p>
|
|
Headers should only include other headers if absolutely necessary
|
|
(for derived objects for example). All functions must be
|
|
properly prototyped.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="big" difficulty="medium" status="80%" target="1.4">
|
|
<title>Code reorganization</title>
|
|
<description>
|
|
<p>
|
|
Split the core into several subdirectories and build libtool
|
|
convenience libraries which are then linked together to form
|
|
the gimp binary.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="80%" target="1.4">
|
|
<title>Unify color data types</title>
|
|
<description>
|
|
<p>
|
|
LibGimp already has a new type GimpRGB. This should be used
|
|
whereever possible. If necessary we can change this to a
|
|
more generic struct later. Migrating to GimpRGB first will make
|
|
this much easier.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="advanced" status="0%" target="1.4">
|
|
<title>Script-Fu overhaul</title>
|
|
<description>
|
|
<p>
|
|
Script-Fu shouldn't be an extension running all the time, but
|
|
an interpreter that gets started once a script is run and
|
|
terminates after script execution. This should also solve the
|
|
problem of having multiple scripts running at the same time.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="0%" target="1.4">
|
|
<title>Image/File Information</title>
|
|
<description>
|
|
<p>
|
|
Additionally to the image comment, GIMP should save and
|
|
manage File Information like "description", "keywords",
|
|
"copyright", "year", etc.
|
|
</p>
|
|
<p>
|
|
File Info data sets should be saveable separately and
|
|
importable from standard formats. See also
|
|
<a href="http://bugzilla.gnome.org/show_bug.cgi?id=56443">this
|
|
bug-report></a>.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
</section> <!-- General -->
|
|
|
|
<section>
|
|
<title>Objectification</title>
|
|
|
|
<entry size="small" difficulty="easy" status="100%" target="1.4">
|
|
<title>Generic GimpObject</title>
|
|
<description>
|
|
<p>
|
|
Directly derived from GObject, should probably have a name
|
|
argument.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="80%" target="1.4">
|
|
<title>Cleanup existing internal objects</title>
|
|
<description>
|
|
<p>
|
|
GimpDrawable, Layer, GimpImage, GDisplay need to be redone as
|
|
proper GimpObjects. Write new objects (with proper names) and
|
|
port all stuff to the new objects incrementally.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="advanced" status="80%" target="1.4">
|
|
<title>Generic data structures</title>
|
|
<description>
|
|
<p>
|
|
Brushes, Patterns, Gradients should be derived from a GimpData
|
|
object. This object has to provide hooks to generate previews.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="80%" target="1.4">
|
|
<title>Generic object container(s)</title>
|
|
<description>
|
|
<p>
|
|
A GimpContainer that holds GimpObject objects. Comparable to
|
|
the GCimContainer, but no serialization for now. Should probably
|
|
dispatch "changed" (or other) signals from its children.
|
|
</p>
|
|
<p>
|
|
This container will be used for lists of brushes, patterns,
|
|
layers, channels, paths, ...
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="advanced" status="0%" target="1.4">
|
|
<title>Abstract GimpBrush object and derived brush types</title>
|
|
<description>
|
|
<p>
|
|
The GimpBrush object we have now is not a generic BrushProvider.
|
|
We need an abstract object to derive the different kinds of brushes
|
|
from (BrushPipes, parametric brushes, ...). It has to provide
|
|
methods for the PaintCore to transparently select and use the brush
|
|
data. Paint tools should have to care about the brush type as less
|
|
as possible.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
</section> <!-- Objectification -->
|
|
|
|
<section>
|
|
<title>Tools</title>
|
|
|
|
<entry size="medium" difficulty="advanced" status="10%" target="1.4">
|
|
<title>Rewrite Path Tool</title>
|
|
<description>
|
|
<p>
|
|
The Path tool should be rewritten from scratch.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="advanced" status="30%" target="1.4">
|
|
<title>Rewrite Text Tool</title>
|
|
<description>
|
|
<p>
|
|
The Text tool should be rewritten from scratch using Pango to
|
|
layout and PangoFT2 to render.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="medium" status="0%" target="1.4">
|
|
<title>Add Options to "Stroke"</title>
|
|
<description>
|
|
<p>
|
|
The "Stroke" function should be configurable to optionally
|
|
stroke inside or outside the current selection only.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="medium" status="0%" target="1.4">
|
|
<title>Allow Transformations on Layer Masks</title>
|
|
<description>
|
|
<p>
|
|
Layers that have masks attached can currently not be manipulated
|
|
using the Transform Tool. It shouldn't be too hard to extend the
|
|
Transform Tool to handle layers with masks correctly.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
</section> <!-- Tools -->
|
|
|
|
<section>
|
|
<title>LibGimp</title>
|
|
|
|
<entry size="medium" difficulty="medium" status="70%" target="1.4">
|
|
<title>Restructure LibGimp</title>
|
|
<description>
|
|
<p>
|
|
Put libgimp, libgimpui (and new libs) into their own
|
|
subdirectories. Install all header files under
|
|
$prefix/include/gimp-MAJOR.MINOR/ and change gimptool
|
|
accordingly.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="20%" target="1.4">
|
|
<title>Utility library</title>
|
|
<description>
|
|
<p>
|
|
Put utility functions that are also used by the core into
|
|
a separate library.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="0%" target="1.4">
|
|
<title>File plug-in library</title>
|
|
<description>
|
|
<p>
|
|
Write a library with a bunch of common functions for file plug-ins
|
|
to remove code duplication in these plug-ins.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="90%" target="1.4">
|
|
<title>Move GCK functionality into LibGimp</title>
|
|
<description>
|
|
<p>
|
|
libgck, as found in the plug-ins dir has some nice functions we
|
|
want to clean up and make available in LibGimp so they can be
|
|
used by the core and plug-ins.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
</section> <!-- LibGimp -->
|
|
|
|
<section>
|
|
<title>User Interface</title>
|
|
|
|
<entry size="medium" difficulty="medium" status="80%" target="1.4">
|
|
<title>Abstract Container Views</title>
|
|
<description>
|
|
<p>
|
|
Views on data stored in a GimpContainer. The objects need to provide
|
|
hooks that this view can use to show data like patterns, brushes,
|
|
etc. in different views (list, grid, ...)
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="big" difficulty="advanced" status="0%" target="1.4">
|
|
<title>Effect Preview Widget</title>
|
|
<description>
|
|
<p>
|
|
A generic preview widget with functions like scrolling and zooming
|
|
useable by effect filters. Should have adaptive supersampling,
|
|
progressive display (if possible) and other neat stuff. This
|
|
would also fix the problem that many plug-ins still use the
|
|
deprecated GtkPreview widget.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="100%" target="1.4">
|
|
<title>Optionally disable tearoff windows</title>
|
|
<description>
|
|
<p>
|
|
Add an option to the Preferences to disable tearoff menus. Some
|
|
people seem to be annoyed by it and it should be trivial to
|
|
make them optional.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="100%" target="1.4">
|
|
<title>Implement "Save a Copy as..."</title>
|
|
<description>
|
|
<p>
|
|
Add a "Save a Copy as" function which works as "Save as" but
|
|
leaves the image's name untouched.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="0%" target="1.4">
|
|
<title>Implement "Open into layer"</title>
|
|
<description>
|
|
<p>
|
|
Add "Open into layer" that will load a file into the
|
|
current image as a new layer (or layers).
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="50%" target="1.4">
|
|
<title>Optionally set a different background for the image window</title>
|
|
<description>
|
|
<p>
|
|
It's often useful to view the image you're editing on a pure
|
|
white or pure black background instead of the theme's default
|
|
background.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="medium" status="0%" target="1.4">
|
|
<title>Fullscreen image view</title>
|
|
<description>
|
|
<p>
|
|
Add a possibility to show the image fullscreen (padded with the
|
|
configured canvas background color).
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="70%" target="1.4">
|
|
<title>Cleanup GIMP's color selectors</title>
|
|
<description>
|
|
<p>
|
|
The pluggable color selectors need to be overhauled. Move
|
|
the numerical input fields, the sliders, the "old" and "new"
|
|
color buttons and a color history out of the notebook so
|
|
they are always visible. Optionally allow an alpha value to
|
|
be specified. Maybe reduce the size of the color area in the
|
|
"GIMP" color selector.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="0%" target="1.4">
|
|
<title>Better keyboard navigation</title>
|
|
<description>
|
|
<p>
|
|
Think about a proper way to make all menus and dialogs accesible
|
|
and navigationable without using a mouse. GTK+-2.0 has very much
|
|
improved in this area. We need to go through all our dialogs and
|
|
install the relevant hooks to get a reasonable focus chain.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="0%" target="1.4">
|
|
<title>Move DND functions into LibGimp</title>
|
|
<description>
|
|
<p>
|
|
Move the DND functionality into LibGimp. This needs to be done
|
|
differently for app and plug-ins, but should be handled
|
|
transparently.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="10%" target="1.4">
|
|
<title>Add more widgets</title>
|
|
<description>
|
|
<p>
|
|
Lost of existing user interface elements can be implemented as
|
|
proper widgets in libgimpui, so they are useable from everywhere.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="100%" target="1.4">
|
|
<title>Add an Option to separately switch off the Layer Boundary</title>
|
|
<description>
|
|
<p>
|
|
Currently the Layer boundary (the yellow dotted line around
|
|
the active layer) can only be switched off together with the
|
|
selection. This is evil.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="50%" target="1.4">
|
|
<title>Display the Memory Consumption of the Image</title>
|
|
<description>
|
|
<p>
|
|
The current memory size of the image should always be
|
|
available in the interface. Also show the new size of the
|
|
image in the "Resize" and "Set Canvas Size" dialogs.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
</section> <!-- User Interface -->
|
|
|
|
<section>
|
|
<title>Help System</title>
|
|
|
|
<entry size="medium" difficulty="medium" status="0%" target="1.4">
|
|
<title>Rethink Plug-In and Script Help</title>
|
|
<description>
|
|
<p>
|
|
Currently a Plug-In's help file determined by the application
|
|
from it's executable name. This is broken because is does not
|
|
cover multiple PDB procedures implemented in one Plug-In.
|
|
</p>
|
|
<p>
|
|
A possible solution would be to pass the relative path to the
|
|
help file to gimp_install_procedure(). A similar fix should be
|
|
applied to Script-Fu and Perl.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
</section> <!-- Help System -->
|
|
|
|
<section>
|
|
<title>Internationalization</title>
|
|
|
|
<entry size="small" difficulty="medium" status="0%" target="1.4">
|
|
<title>Context-Sensitive Translations</title>
|
|
<description>
|
|
<p>
|
|
The same english string used in different contexts may need to
|
|
be translated differently in other languages. Think of a way to
|
|
implement this using gettext or come up with something better.
|
|
</p>
|
|
<p>
|
|
There is a patch with a possible solution on ftp.gimp.org,
|
|
but actually we'd like something cleaner if possible.
|
|
</p>
|
|
</description>
|
|
<url>ftp://ftp.gimp.org/pub/gimp/patches/gimp-chyla-20001207-0.patch</url>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
</section> <!-- Internationalization -->
|
|
|
|
</todo>
|