TODO list

Boudewijn Rempt boud at
Thu Jul 8 21:03:25 CEST 2004

Dear people,

I'm off for a week or two, wandering about the Thuringer Wald. I have packed 
my powerbook, so I might do some work on Krita, but I don't give promises.
There's no earthly reason for anyone to stop working just because I'm not 
here: we're having a great momentum right now. I would dearly love to find a 
pixel iterator in CVS when I come back :-).

And that's only the tip of the ice-berg, because here's the revised TODO for 
version 1.0 -- I've added people's names to features I know they're working 
on (I'll detail what I'm working on and the issues I'm having in another post 
-- I won't be able to fix & finish everything tonight :-):

Krita TODO

This it the TODO list for the first release of Krita, which I hope we
will be able to make in September or October. This release will be limited
to 8-bit per channel and one, or at most two working color models (RGBA 
and CMYK). (XXX: bitmap and grayscale, too? I don't think there's any
urgency for indexed images like gifs.)

The very first thing that's needed to at least enable me to use Krita
to maintain the Krita screenshots page is screenshot and scale :-).

Items with a hash have work started on them.


	* Discontinuous selections (A byte-map mask for a whole image) (#Boudewijn)
	* Channels
	* Histogram computations (#Boudewijn)
	* Adjustment layers (Layers that dynamically apply a filter to
	  the layer they are linked to, these do not store actual
	  image date, except for an occasional mask)
	* Mask layers
	* Loading and saving of selections
	* Painting of gradients
        * loading Gimp gradients
	* Fill with pattern (#Bart)
	* Non-rectangular fill (#Bart)
	* Load/save configuration of everything user-settable.
	* Add filtering with image kernels (3 * 3 blocks of pixels)
	* Scaling of images (#Boudewijn, Bart)
	* Fix composite ops (nick from the code gwenview nicked for
	  the xcf import)
	* Make toolbox look like Karbon's toolbox, but follow the
	  layout of photoshop's toolbox for minimum confusability.
        * Rework iterators to allow iterating over pixels (#Cyrillle, Casper)
        * Auto-extending layers (#Casper)
        * Code cleanup (make naming conformant to Qt) (#Dirk)

User Interface
	* Allow choice between crosshair-cursor, brush-shape outline cursor
	  and iconic cursor.
	* All dialogs ui-fied (#Boudewijn, Sven, Casper)
	* Tabs in dockers drag-and-droppable (vector of docker
	  windows, create new docker if tab dropped outside existing
	  docker window)
	* Show/Hide rulers
	* Implement the following dialogs / widgets:
		    - Select by color range (#Boudewijn)
		    - Variations (#Boudewijn)
		    - Transform (#Boudewijn)
		    - Gradient (nick from Scribus?)
		    - Histogram (#Boudewijn)
		    - Modify curves (nick from Perico)
	* Add history docker
	* Add auto-scroll to canvas while painting	  
	* Full-screen mode (#Boudewijn -- this should work, but it doesn't. Don't 
          why :-(.)
	* Add previews to all relevant dialogs. (XXX: let preview work 
	  on rendered QImage, or on scaled image?)(#Bart) 
	* Allow an active tool for every pointer present in X. (#Adrian -- no
          support yet for Wacom tablets that have more than one stylus)
	* File/Open should list all image types Krita can handle, and simply
          import non-native images, instead of forcing the user to use the 
          image menu item.

	* All tools must have a tool options tab (#Boudewijn, Adrian, Cyrille)
	* Loading and saving of tool state (XXX: do we really want this? It is
          horribly confusing in the Gimp)
	* Implement the following tools: 
		    - Elliptical selection (#Boudewijn)
		    - Crop
		    - Freehand selection (#Boudewijn)
		    - Polygonal selection (#Boudewijn)
		    - Continguous selection (magic wand) (#Boudewijn)
		    - pen(cil) tool (same as brush, but not anti-aliased) (#Boudewijn,
                      done, except there's still a little ant-aliasing 
present, perhaps
                      dependent on the brush).
		    - fix airbrush tool (add rate option, add increase
		      of brush size if kept in one place)
		    - poly-line tool
		    - rectangle tool (#Clarence, still some work to with opacity and so on)
		    - ellipse too (#Clarence, still some work to with opacity and so on)l
		    - polygon tool
		    - color changer, smudge tool,sharpen tool, blur
		      tool, dodge tool, burn tool, sponge tool (These
		      last are perhaps more generally: painting with
		      filters tool)
		    - stamp tool (paint with patttern/image selection) (#Cyrille)
		    - Text tool
		    - Measure tool
		    - Pan tool (hand)
		    - Gradient tool
	* Pressure sensivitize all relevant tools (e.g. line tool)
	* XXX Make tools plugins? (#Boudewijn)


	* As many filters as possible :-)
	* Fix filters to use current image, instead of first image in
	  the document.
        * Make tools and color strategy plugins into ktrader managed
        * Rename all plugins to have a krita prefix. 
        * Move all color strategies and tools to plugins. (#Boudewijn)

That's more or less all for version 1,0; afterwards I propose to move to:

	* Add bit-depth independence
	* Completely hide data storage backend from the code behind
	* Add color models for LAB etc.
	* Make pipe brushes pay attention to parasites

User interface

	* Add action (macro) docker
	* Add navigation/zoom docker
	* Add scriptability 
	* Add third cursor mode:  outline of current brush
	* Rethink document model (perhaps add dynamic links between images)

	* Implement path tools
	* Calligraphic pen tool
	* Sumi-e brush tool
	* Natural media tools (chalk, ink, oil, watercolour -- fun!)

A much shorter list, much harder  TODO's :-).

Boudewijn Rempt |

More information about the kimageshop mailing list