Krita TODO

	* write the Krita handbook.

Core

	* Remove multiple images per document. The view part has already been disabled, but it still has
	  signs of this, and doc is not changed yet.
	* Channels showing (note that we don't do Gimp-type grayscale
	  mask channels, just showing/hiding the various color
	  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
	* Colorspace-aware difference between pixel function
	* Anti-aliased filling (requires some simple colorspace
	  function to merge 2 Pixels)
	* Load/save configuration of everything user-settable.
	* Make toolbox look like Karbon's toolbox, but follow the
	  layout of photoshop's toolbox for minimum confusability.
        * Lock layers (make inaccessible) See bug #90456.
	* Link/unlink layer sets a nice icon. but doesn't actually link the
          layer to anything.
	* Long painter operations (e.g., convolution painter) should use the 
          progressbar and be cancelable.



File Format:

	* Save & load all annotations in .kra files
	* Save & load undo information in .kra files
	* Save & load more information, like PNG comments, gamma information, etc


Import/Export

* The image magick build should be ported to the fileformat framework
  and put in its own plugin (KisFileFormat, KisFileFormatRegistry)


User Interface

        * The description field in color settings is empty

        * Give color strategies an option page just like tools. Give layers an option page,
	  combine both pages to show for layer properties. Color strategies can be stateful.
	* Create brush-shape outline cursor
	* All dialogs ui-fied (#Boudewijn, Sven, Casper)
	* Implement the following dialogs / widgets:
		    - Variations (#Boudewijn)
		    - Gradient (nick from Scribus?)
		    - Histogram (#Boudewijn)
		    - Modify curves (nick from Perico)
	* Add previews to all relevant dialogs. (#Bart) 
	* Show which tool is associated with which pointer (mouse, stylus, eraser, other stylusses)
	* Allow guides to be disabled. Allow diagonal guides (useful
	  for perspective drawings)
        * Create templates for often-used image formats. Add save-as-template
        * Fix gimp XCF import/export (ImageMagick hacking...)
	* Fix imports to import metadata and image files in non-rgb encodings -> move import
	  export code to color strategies.

	Dockers
		* Tabs in dockers drag-and-droppable (vector of docker
		  windows, create new docker if tab dropped outside existing
		  docker window)
		* Add bird's eye view tab to dockers.
		* Add action (macro) docker
		* Add navigation/zoom docker
		* Add history docker
                * Convert the layer & channel box to a qlistbox; enable the channel box.

        * Use OpenGL if available to composite checkerboard with image so
          while scrolling the checks can stay in place, and the partially
          transparent image move. This maybe needs Qt 4. OpenGL can also be
  	  used to bumpmap images on a height-field canvas.

Selections

* Select freehand (drawing a shape and selecting the contents) does not work.

* The shape tools should (with filled as default) also be available as 
  selection tools. (fixed for ellipse)

* Invent and implement ways to visualise selection masks in more intelligent ways. When selecting a white area it should still be visible that it has been selected. Should be user configurable and globally implemented (ie not per layer)

Profiles

	* Add an input profile combobox to the import image & scan dialogs
	* Add an export profile combobox to the export image/print dialogs
        * Add loading and saving of profiles associated with images in .krita 
          files.
        * Export profiles in tiff, png and jpg (this and the previous item
          depend on ImageMagick or GraphicsMagick supporting this in some way.)
        * Support out-of-gamut warning indications for parts of an image 
          containing unprintable colours (no idea how to implement this). -> this
          is pretty easy with lcms

Color conversions

        * Replace QColor with KisColor, where KisColor is a combination of a
          byte array and a pointer to a color model
       * Add UI for depth choice
        * Add UI for display settings for high bit depths -- we have upscale
          and downscale, but that's not enough. I want, as in OpenEXR, to be
          able to set the lighting stops.
        * Add channel-depths other than 8 bits.
	* http://www.argyllcms.com may be faster than lcms in some
	  cases. Investigatge this

Tools

	* All tools must have a tool options tab (#Boudewijn, Adrian, Cyrille)
	
	* Implement the following tools: 
		    - Freehand selection (#Boudewijn)
		    - Polygonal selection (#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)
		    - 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
		    - 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 (use kotext with a transparent background here?)
		    - Measure tool
	            - calligraphic pen tool
         
	* Pressure sensivitize all relevant tools (e.g. line tool)
        * Add resize slider to freehand tools that resizes the mean brush size.
	* Divide the tools in tools and paint ops. Tools are:
	  freehand, rect, ellipse, curve, text, etc. Paintops are: pen, brush,
          filter, erase, select, deselect, airbrush etc.
	* Implement path tools
	* Sumi-e brush tool
	* Natural media tools (chalk, ink, oil, watercolour -- fun!)
	* The poly selection tool should be available, filled as a selection tool.

Plugins

	* As many filters as possible :-)
	* Load plugins into registry on Krita startup, instead of on
	  view creation. (Tried this, but failed miserable. BSAR)
	* The Variations plugin is just a mockup and does not use the same
          preview as the rest of Krita.
	* What's the difference between gamma correction and colour
	  adjustment? -> explained by Cyrille's mail, put this in handbook.

Modules

	* Add color models for LAB, XYZ, HSV etc.
	* Finally fix CMYK
	* Add Wet & Sticky model (in progress already)
	* Implement Curtiss et. al. for watercolour (Levien, wet dreams. In progress)

Printing

	* No CMYK separation for printing
	* No use of the resolution parameter (but the resolution dialog is still only a .ui file and not implemented at all)
	* Use gutenprint or something better for image printing.

Integration

	* There is currently no kimgio module for Krita images.

Paintops
	* The convolution paintop doesn't do anything at all. (But it isn't
	  used anywhere yet, so that's not so bad, perhaps. We cannot add a
	  new tool at the moment anyway. Let's scrap this todo item.)

