TODO lists

Boudewijn Rempt boud at valdyas.org
Mon Jan 31 09:11:01 CET 2005


On Monday 31 January 2005 08:17, Boudewijn Rempt wrote:
> On Monday 31 January 2005 01:43, Sven Langkamp wrote:
> > We should really clean up the TODO lists and put everything into one
> > instead of three. It seems like most of the stuff in krita.alpha has been
> > implemented.
>
> I'll do that today -- I took a day off for hacking Krita anyway.

Okay: here's the consolidated & updated list:

Krita TODO


Scaling

	- replace calloc and free by new and delete.
	- check if memory allocations fail and free the resources if
	  they fail.
	- replace the structs CONTRIB and CLIST by some STL or Qt
	  container.
	- use iterators to access pixels.
        - Preview dialog should use KDialogBase
        - Decide on more user-friendly names for the scaling algs.

Core

	* 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.
	* 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.
        * Lock layers (make inaccessible) See bug #90456.

File Format:

	* Save & load actual profiles in .kra files
	* Save & load undo information in .kra files

User Interface

        * 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:
		    - Select by color range (#Boudewijn)
		    - Variations (#Boudewijn)
		    - Transform (#Boudewijn)
		    - Gradient (nick from Scribus?)
		    - Histogram (#Boudewijn)
		    - Modify curves (nick from Perico)
	* Add auto-scroll to canvas while painting	  
	* 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
        * Check OASIS file saving.
        * Fix gimp XCF import/export (ImageMagick hacking...)
	* Fix imports to import metadata and image files in non-rgb encodings.

	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

        * 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.

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.
        * Retrieve profiles from imported images (tiff, png and jpg can have
          them, for instance embedded by a calibrated scanner).
        * 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: 
		    - Elliptical selection (#Boudewijn)
		    - Crop (This is a must-have -- tried to do something with Krita
                         today and had to go to the Gimp)
		    - 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 (use KWord with a transparent background here?)
		    - Measure tool
		    - Pan tool (hand)
	            - 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
	* Calligraphic pen tool
	* Sumi-e brush tool
	* Natural media tools (chalk, ink, oil, watercolour -- fun!)


Plugins

	* As many filters as possible :-)
	* Load plugins into registry on Krita startup, instead of on
	  view creation.
        * Rename all plugins to have a krita prefix. 
	* Move all paintops to plugins.

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

-- 
Boudewijn Rempt 
http://www.valdyas.org/fading/index.cgi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kimageshop/attachments/20050131/a98fe7d3/attachment.pgp


More information about the kimageshop mailing list