From 2785103a6bd4de55bd26d79e34d0fdd4b329a73a Mon Sep 17 00:00:00 2001
From: tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>
Date: Sun, 26 Jun 2011 00:29:37 +0000
Subject: Remove krita* in preparation for name switch from Krita to Chalk

git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1238361 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
---
 doc/krita/Makefile.am                              |     4 -
 doc/krita/README.SCREENSHOTS                       |     7 -
 doc/krita/commands-dialogs.docbook                 |  1411 -
 doc/krita/commands-menus.docbook                   |  2158 -
 doc/krita/commands-palettes.docbook                |   769 -
 doc/krita/commands-toolbars.docbook                |   752 -
 doc/krita/commands.docbook                         |    14 -
 doc/krita/createdocument.png                       |   Bin 27560 -> 0 bytes
 doc/krita/credits.docbook                          |    63 -
 doc/krita/crocusses-autocontrast.png               |   Bin 499566 -> 0 bytes
 doc/krita/crocusses-blur.png                       |   Bin 468963 -> 0 bytes
 doc/krita/crocusses-brightnesscontrast.png         |   Bin 546359 -> 0 bytes
 doc/krita/crocusses-bumpmap.png                    |   Bin 571359 -> 0 bytes
 doc/krita/crocusses-coloradjustment.png            |   Bin 528837 -> 0 bytes
 doc/krita/crocusses-colortoalpha.png               |   Bin 415308 -> 0 bytes
 doc/krita/crocusses-colortransfer.png              |   Bin 555355 -> 0 bytes
 doc/krita/crocusses-customconvolution.png          |   Bin 554020 -> 0 bytes
 doc/krita/crocusses-desaturate.png                 |   Bin 406993 -> 0 bytes
 doc/krita/crocusses-edgebottom.png                 |   Bin 559660 -> 0 bytes
 doc/krita/crocusses-edgeleft.png                   |   Bin 571228 -> 0 bytes
 doc/krita/crocusses-edgeright.png                  |   Bin 571084 -> 0 bytes
 doc/krita/crocusses-embossall.png                  |   Bin 510986 -> 0 bytes
 doc/krita/crocusses-embosshorvert.png              |   Bin 458936 -> 0 bytes
 doc/krita/crocusses-embossvariable.png             |   Bin 422056 -> 0 bytes
 doc/krita/crocusses-gaussianblur.png               |   Bin 530129 -> 0 bytes
 doc/krita/crocusses-gaussiannoise.png              |   Bin 286299 -> 0 bytes
 doc/krita/crocusses-invert.png                     |   Bin 539223 -> 0 bytes
 doc/krita/crocusses-lenscorrection.png             |   Bin 508845 -> 0 bytes
 doc/krita/crocusses-maximizechannel.png            |   Bin 459662 -> 0 bytes
 doc/krita/crocusses-meanremoval.png                |   Bin 567175 -> 0 bytes
 doc/krita/crocusses-minimizechannel.png            |   Bin 425665 -> 0 bytes
 doc/krita/crocusses-oilpaint.png                   |   Bin 495456 -> 0 bytes
 doc/krita/crocusses-pixelize.png                   |   Bin 478589 -> 0 bytes
 doc/krita/crocusses-raindrops.png                  |   Bin 534756 -> 0 bytes
 doc/krita/crocusses-randomnoise.png                |   Bin 564986 -> 0 bytes
 doc/krita/crocusses-randompick.png                 |   Bin 519596 -> 0 bytes
 doc/krita/crocusses-roundcorners.png               |   Bin 539417 -> 0 bytes
 doc/krita/crocusses-sharpen.png                    |   Bin 553923 -> 0 bytes
 doc/krita/crocusses-smalltiles.png                 |   Bin 361991 -> 0 bytes
 doc/krita/crocusses-sobel.png                      |   Bin 471366 -> 0 bytes
 doc/krita/crocusses-topedge.png                    |   Bin 559862 -> 0 bytes
 doc/krita/crocusses-unsharpmask.png                |   Bin 428074 -> 0 bytes
 doc/krita/crocusses-wave.png                       |   Bin 523440 -> 0 bytes
 doc/krita/crocusses-waveletnoise.png               |   Bin 529842 -> 0 bytes
 doc/krita/crocusses.png                            |   Bin 793765 -> 0 bytes
 doc/krita/developers-plugins.docbook               |  1553 -
 doc/krita/developers-scripting.docbook             |   534 -
 doc/krita/developers.docbook                       |    13 -
 doc/krita/dialogs-addpalette.png                   |   Bin 4551 -> 0 bytes
 doc/krita/dialogs-blur.png                         |   Bin 48397 -> 0 bytes
 doc/krita/dialogs-brightnesscontrast.png           |   Bin 49053 -> 0 bytes
 doc/krita/dialogs-bumpmap.png                      |   Bin 67767 -> 0 bytes
 doc/krita/dialogs-coloradjustment.png              |   Bin 51960 -> 0 bytes
 doc/krita/dialogs-colorrange.png                   |   Bin 15922 -> 0 bytes
 doc/krita/dialogs-colortoalpha.png                 |   Bin 87706 -> 0 bytes
 doc/krita/dialogs-colortransfer.png                |   Bin 95725 -> 0 bytes
 doc/krita/dialogs-convertimagetype.png             |   Bin 20431 -> 0 bytes
 doc/krita/dialogs-convertlayertype.png             |   Bin 20122 -> 0 bytes
 doc/krita/dialogs-cubism.png                       |   Bin 24275 -> 0 bytes
 doc/krita/dialogs-customconvolution.png            |   Bin 56964 -> 0 bytes
 doc/krita/dialogs-documentinformation.png          |   Bin 15469 -> 0 bytes
 doc/krita/dialogs-dropshadow.png                   |   Bin 7698 -> 0 bytes
 doc/krita/dialogs-emboss.png                       |   Bin 43741 -> 0 bytes
 doc/krita/dialogs-filtersgallery.png               |   Bin 96050 -> 0 bytes
 doc/krita/dialogs-gaussiannoise.png                |   Bin 90251 -> 0 bytes
 doc/krita/dialogs-histogram.png                    |   Bin 16401 -> 0 bytes
 doc/krita/dialogs-imageproperties.png              |   Bin 7708 -> 0 bytes
 doc/krita/dialogs-imagerestoration.png             |   Bin 50998 -> 0 bytes
 doc/krita/dialogs-imagesize.png                    |   Bin 16604 -> 0 bytes
 doc/krita/dialogs-layerproperties.png              |   Bin 14492 -> 0 bytes
 doc/krita/dialogs-layersize.png                    |   Bin 13466 -> 0 bytes
 doc/krita/dialogs-lenscorrection.png               |   Bin 94890 -> 0 bytes
 doc/krita/dialogs-newadjustmentlayer.png           |   Bin 93986 -> 0 bytes
 doc/krita/dialogs-newlayer.png                     |   Bin 5868 -> 0 bytes
 doc/krita/dialogs-oilpaint.png                     |   Bin 37142 -> 0 bytes
 doc/krita/dialogs-pixelize.png                     |   Bin 16146 -> 0 bytes
 doc/krita/dialogs-raindrops.png                    |   Bin 45473 -> 0 bytes
 doc/krita/dialogs-randomnoise.png                  |   Bin 139396 -> 0 bytes
 doc/krita/dialogs-randompick.png                   |   Bin 91945 -> 0 bytes
 doc/krita/dialogs-rotateimage.png                  |   Bin 16183 -> 0 bytes
 doc/krita/dialogs-rotatelayer.png                  |   Bin 20300 -> 0 bytes
 doc/krita/dialogs-roundcorners.png                 |   Bin 46187 -> 0 bytes
 doc/krita/dialogs-separateimage.png                |   Bin 7936 -> 0 bytes
 doc/krita/dialogs-shearimage.png                   |   Bin 9517 -> 0 bytes
 doc/krita/dialogs-shearlayer.png                   |   Bin 7941 -> 0 bytes
 doc/krita/dialogs-smalltiles.png                   |   Bin 32127 -> 0 bytes
 doc/krita/dialogs-sobel.png                        |   Bin 83673 -> 0 bytes
 doc/krita/dialogs-substrate.png                    |   Bin 22652 -> 0 bytes
 doc/krita/dialogs-unsharpmask.png                  |   Bin 93324 -> 0 bytes
 doc/krita/dialogs-wave.png                         |   Bin 99302 -> 0 bytes
 doc/krita/dialogs-waveletnoise.png                 |   Bin 77064 -> 0 bytes
 doc/krita/faq.docbook                              |    51 -
 doc/krita/index.docbook                            |   137 -
 doc/krita/installation.docbook                     |    73 -
 doc/krita/introduction.docbook                     |   153 -
 doc/krita/mainscreen.png                           |   Bin 79116 -> 0 bytes
 doc/krita/mountains-burn.png                       |   Bin 160961 -> 0 bytes
 doc/krita/mountains-color.png                      |   Bin 192281 -> 0 bytes
 doc/krita/mountains-darken.png                     |   Bin 159111 -> 0 bytes
 doc/krita/mountains-divide.png                     |   Bin 173190 -> 0 bytes
 doc/krita/mountains-dodge.png                      |   Bin 173312 -> 0 bytes
 doc/krita/mountains-hue.png                        |   Bin 234147 -> 0 bytes
 doc/krita/mountains-lighten.png                    |   Bin 149118 -> 0 bytes
 doc/krita/mountains-multiply.png                   |   Bin 172594 -> 0 bytes
 doc/krita/mountains-normal.png                     |   Bin 3514 -> 0 bytes
 doc/krita/mountains-original.png                   |   Bin 238432 -> 0 bytes
 doc/krita/mountains-overlay.png                    |   Bin 249222 -> 0 bytes
 doc/krita/mountains-saturation.png                 |   Bin 231772 -> 0 bytes
 doc/krita/mountains-screen.png                     |   Bin 172229 -> 0 bytes
 doc/krita/mountains-value.png                      |   Bin 218819 -> 0 bytes
 doc/krita/mountains.png                            |   Bin 975941 -> 0 bytes
 doc/krita/newimage.png                             |   Bin 29884 -> 0 bytes
 doc/krita/palettes-colors-gray.png                 |   Bin 1426 -> 0 bytes
 doc/krita/palettes-colors-hsv.png                  |   Bin 10419 -> 0 bytes
 doc/krita/palettes-colors-palettes.png             |   Bin 3356 -> 0 bytes
 doc/krita/palettes-colors-rgb.png                  |   Bin 1841 -> 0 bytes
 doc/krita/palettes-colors-watercolors.png          |   Bin 3031 -> 0 bytes
 doc/krita/palettes-controlbox-bezier.png           |   Bin 2961 -> 0 bytes
 doc/krita/palettes-controlbox-brush.png            |   Bin 3644 -> 0 bytes
 doc/krita/palettes-controlbox-colorpicker.png      |   Bin 7578 -> 0 bytes
 doc/krita/palettes-controlbox-contiguousfill.png   |   Bin 5642 -> 0 bytes
 doc/krita/palettes-controlbox-crop.png             |   Bin 4123 -> 0 bytes
 doc/krita/palettes-controlbox-duplicate.png        |   Bin 5857 -> 0 bytes
 doc/krita/palettes-controlbox-ellipse.png          |   Bin 3444 -> 0 bytes
 doc/krita/palettes-controlbox-fill.png             |   Bin 5468 -> 0 bytes
 doc/krita/palettes-controlbox-gradient.png         |   Bin 6695 -> 0 bytes
 doc/krita/palettes-controlbox-histogram.png        |   Bin 1597 -> 0 bytes
 doc/krita/palettes-controlbox-line.png             |   Bin 3815 -> 0 bytes
 doc/krita/palettes-controlbox-overview.png         |   Bin 20949 -> 0 bytes
 doc/krita/palettes-controlbox-paintwithfilters.png |   Bin 7826 -> 0 bytes
 doc/krita/palettes-controlbox-polygon.png          |   Bin 4286 -> 0 bytes
 doc/krita/palettes-controlbox-polyline.png         |   Bin 3815 -> 0 bytes
 doc/krita/palettes-controlbox-rectangle.png        |   Bin 3444 -> 0 bytes
 doc/krita/palettes-controlbox-select.png           |   Bin 1538 -> 0 bytes
 doc/krita/palettes-controlbox-selectcontiguous.png |   Bin 3525 -> 0 bytes
 doc/krita/palettes-controlbox-selectmagnetic.png   |   Bin 3765 -> 0 bytes
 doc/krita/palettes-controlbox-selectsimilar.png    |   Bin 2806 -> 0 bytes
 doc/krita/palettes-controlbox-star.png             |   Bin 5078 -> 0 bytes
 doc/krita/palettes-controlbox-text.png             |   Bin 4120 -> 0 bytes
 doc/krita/palettes-controlbox-transform.png        |   Bin 1529 -> 0 bytes
 doc/krita/palettes-layers-layers.png               |   Bin 2825 -> 0 bytes
 doc/krita/palettes-layers-scriptsmanager.png       |   Bin 10082 -> 0 bytes
 doc/krita/preferences-color.png                    |   Bin 9181 -> 0 bytes
 doc/krita/preferences-display.png                  |   Bin 2053 -> 0 bytes
 doc/krita/preferences-general.png                  |   Bin 4016 -> 0 bytes
 doc/krita/preferences-grid.png                     |   Bin 4554 -> 0 bytes
 doc/krita/preferences-performance.png              |   Bin 2846 -> 0 bytes
 doc/krita/preferences-sidebar.png                  |   Bin 8953 -> 0 bytes
 doc/krita/preferences-tablet.png                   |   Bin 3391 -> 0 bytes
 doc/krita/settings.docbook                         |   229 -
 doc/krita/tool-bezier-example.png                  |   Bin 3300 -> 0 bytes
 doc/krita/tool-bezier-example2.png                 |   Bin 3588 -> 0 bytes
 doc/krita/tool-bezier-example3.png                 |   Bin 8637 -> 0 bytes
 doc/krita/tool-bezier.png                          |   Bin 862 -> 0 bytes
 doc/krita/tool-brush.png                           |   Bin 759 -> 0 bytes
 doc/krita/tool-colorpicker.png                     |   Bin 821 -> 0 bytes
 doc/krita/tool-contiguousfill.png                  |   Bin 1197 -> 0 bytes
 doc/krita/tool-crop.png                            |   Bin 902 -> 0 bytes
 doc/krita/tool-duplicate.png                       |   Bin 1235 -> 0 bytes
 doc/krita/tool-ellipse.png                         |   Bin 885 -> 0 bytes
 doc/krita/tool-eraseselection.png                  |   Bin 1178 -> 0 bytes
 doc/krita/tool-gradient.png                        |   Bin 481 -> 0 bytes
 doc/krita/tool-line.png                            |   Bin 574 -> 0 bytes
 doc/krita/tool-move.png                            |   Bin 883 -> 0 bytes
 doc/krita/tool-paintselection.png                  |   Bin 1073 -> 0 bytes
 doc/krita/tool-paintwithfilters-example.png        |   Bin 236144 -> 0 bytes
 doc/krita/tool-paintwithfilters.png                |   Bin 882 -> 0 bytes
 doc/krita/tool-pan.png                             |   Bin 913 -> 0 bytes
 doc/krita/tool-perspectivegrid.png                 |   Bin 1044 -> 0 bytes
 doc/krita/tool-perspectivetransform.png            |   Bin 883 -> 0 bytes
 doc/krita/tool-polygon.png                         |   Bin 898 -> 0 bytes
 doc/krita/tool-polyline.png                        |   Bin 708 -> 0 bytes
 doc/krita/tool-rectangle.png                       |   Bin 539 -> 0 bytes
 doc/krita/tool-selectbezier.png                    |   Bin 797 -> 0 bytes
 doc/krita/tool-selectcontiguous.png                |   Bin 876 -> 0 bytes
 doc/krita/tool-selectelliptical.png                |   Bin 775 -> 0 bytes
 doc/krita/tool-selectmagnetic.png                  |   Bin 1123 -> 0 bytes
 doc/krita/tool-selectoutline.png                   |   Bin 927 -> 0 bytes
 doc/krita/tool-selectpolygonal.png                 |   Bin 939 -> 0 bytes
 doc/krita/tool-selectrectangular.png               |   Bin 637 -> 0 bytes
 doc/krita/tool-selectsimilar.png                   |   Bin 835 -> 0 bytes
 doc/krita/tool-star.png                            |   Bin 1042 -> 0 bytes
 doc/krita/tool-text.png                            |   Bin 1008 -> 0 bytes
 doc/krita/tool-transform.png                       |   Bin 616 -> 0 bytes
 doc/krita/tool-zoom.png                            |   Bin 981 -> 0 bytes
 .../toolbar-brushes-brushshapes-autobrush.png      |   Bin 6981 -> 0 bytes
 .../toolbar-brushes-brushshapes-custombrush.png    |   Bin 24320 -> 0 bytes
 .../toolbar-brushes-brushshapes-predefined.png     |   Bin 5756 -> 0 bytes
 doc/krita/toolbar-brushes-gradients.png            |   Bin 12138 -> 0 bytes
 .../toolbar-brushes-patterns-custompattern.png     |   Bin 18845 -> 0 bytes
 doc/krita/toolbar-brushes-patterns.png             |   Bin 37517 -> 0 bytes
 doc/krita/toolbar-brushesandstuff.png              |   Bin 4514 -> 0 bytes
 doc/krita/toolbar-edit.png                         |   Bin 1852 -> 0 bytes
 doc/krita/toolbar-file.png                         |   Bin 3617 -> 0 bytes
 doc/krita/toolbar-krita.png                        |   Bin 21661 -> 0 bytes
 doc/krita/toolbar-navigation.png                   |   Bin 1196 -> 0 bytes
 doc/krita/toolbar-transformationtools.png          |   Bin 2339 -> 0 bytes
 doc/krita/toolbars-button-zoomin.png               |   Bin 1079 -> 0 bytes
 doc/krita/toolbars-button-zoomout.png              |   Bin 1040 -> 0 bytes
 doc/krita/tutorial-quick-starts.docbook            |   183 -
 doc/krita/tutorial-quick-starts1.png               |   Bin 517486 -> 0 bytes
 doc/krita/tutorial-quick-starts10.png              |   Bin 5261 -> 0 bytes
 doc/krita/tutorial-quick-starts11.png              |   Bin 15273 -> 0 bytes
 doc/krita/tutorial-quick-starts12.png              |   Bin 64871 -> 0 bytes
 doc/krita/tutorial-quick-starts2.png               |   Bin 13703 -> 0 bytes
 doc/krita/tutorial-quick-starts3.png               |   Bin 376212 -> 0 bytes
 doc/krita/tutorial-quick-starts4.png               |   Bin 5868 -> 0 bytes
 doc/krita/tutorial-quick-starts5.png               |   Bin 251715 -> 0 bytes
 doc/krita/tutorial-quick-starts6.png               |   Bin 45704 -> 0 bytes
 doc/krita/tutorial-quick-starts7.png               |   Bin 73296 -> 0 bytes
 doc/krita/tutorial-quick-starts8.png               |   Bin 3636 -> 0 bytes
 doc/krita/tutorial-quick-starts9.png               |   Bin 7115 -> 0 bytes
 doc/krita/tutorial-select-layer-1.png              |   Bin 99976 -> 0 bytes
 doc/krita/tutorial-select-layer-10.png             |   Bin 21980 -> 0 bytes
 doc/krita/tutorial-select-layer-11.png             |   Bin 28349 -> 0 bytes
 doc/krita/tutorial-select-layer-12.png             |   Bin 2908 -> 0 bytes
 doc/krita/tutorial-select-layer-13.png             |   Bin 5912 -> 0 bytes
 doc/krita/tutorial-select-layer-2.png              |   Bin 7974 -> 0 bytes
 doc/krita/tutorial-select-layer-3.png              |   Bin 17499 -> 0 bytes
 doc/krita/tutorial-select-layer-4.png              |   Bin 3852 -> 0 bytes
 doc/krita/tutorial-select-layer-5.png              |   Bin 5555 -> 0 bytes
 doc/krita/tutorial-select-layer-6.png              |   Bin 14353 -> 0 bytes
 doc/krita/tutorial-select-layer-7.png              |   Bin 5173 -> 0 bytes
 doc/krita/tutorial-select-layer-8.png              |   Bin 6463 -> 0 bytes
 doc/krita/tutorial-select-layer-9.png              |   Bin 21072 -> 0 bytes
 doc/krita/tutorial-select-layer-sample.png         |   Bin 5905 -> 0 bytes
 doc/krita/tutorial-select-layer.docbook            |   263 -
 doc/krita/tutorial-starting.docbook                |   117 -
 doc/krita/tutorial-tablet-1.png                    |   Bin 99770 -> 0 bytes
 doc/krita/tutorial-tablet-2.png                    |   Bin 27896 -> 0 bytes
 doc/krita/tutorial-tablet-3.png                    |   Bin 33492 -> 0 bytes
 doc/krita/tutorial-tablet.docbook                  |   141 -
 doc/krita/tutorial.docbook                         |    14 -
 doc/krita/using-colorspaces.docbook                |   149 -
 doc/krita/using-filters.docbook                    |   923 -
 doc/krita/using-images.docbook                     |    66 -
 doc/krita/using-layers.docbook                     |   620 -
 doc/krita/using-selections-1.png                   |   Bin 115987 -> 0 bytes
 doc/krita/using-selections-2.png                   |   Bin 128193 -> 0 bytes
 doc/krita/using-selections-3.png                   |   Bin 131771 -> 0 bytes
 doc/krita/using-selections-4.png                   |   Bin 29987 -> 0 bytes
 doc/krita/using-selections-5.png                   |   Bin 24734 -> 0 bytes
 doc/krita/using-selections-6.png                   |   Bin 194321 -> 0 bytes
 doc/krita/using-selections.docbook                 |   200 -
 doc/krita/using-views.docbook                      |   167 -
 filters/krita/Makefile.am                          |    34 -
 filters/krita/configure.in.in                      |    66 -
 filters/krita/gmagick/Makefile.am                  |    44 -
 filters/krita/gmagick/configure.in.bot             |    23 -
 .../krita/gmagick/kis_image_magick_converter.cc    |  1142 -
 filters/krita/gmagick/kis_image_magick_converter.h |   104 -
 filters/krita/gmagick/krita_magick.desktop         |    57 -
 filters/krita/gmagick/krita_magick_export.desktop  |    55 -
 filters/krita/gmagick/krita_magick_import.desktop  |    61 -
 filters/krita/gmagick/magickexport.cpp             |    78 -
 filters/krita/gmagick/magickexport.h               |    37 -
 filters/krita/gmagick/magickimport.cpp             |   105 -
 filters/krita/gmagick/magickimport.h               |    37 -
 filters/krita/jpeg/Makefile.am                     |    51 -
 filters/krita/jpeg/configure.in.bot                |     7 -
 filters/krita/jpeg/iccjpeg.c                       |   270 -
 filters/krita/jpeg/iccjpeg.h                       |    99 -
 filters/krita/jpeg/kis_jpeg_converter.cc           |   542 -
 filters/krita/jpeg/kis_jpeg_converter.h            |    91 -
 filters/krita/jpeg/kis_jpeg_export.cc              |   152 -
 filters/krita/jpeg/kis_jpeg_export.h               |    35 -
 filters/krita/jpeg/kis_jpeg_import.cc              |   105 -
 filters/krita/jpeg/kis_jpeg_import.h               |    34 -
 filters/krita/jpeg/kis_wdg_options_jpeg.ui         |   149 -
 filters/krita/jpeg/krita_jpeg.desktop              |    58 -
 filters/krita/jpeg/krita_jpeg_export.desktop       |    52 -
 filters/krita/jpeg/krita_jpeg_import.desktop       |    52 -
 filters/krita/libkisexif/Makefile.am               |    20 -
 filters/krita/libkisexif/kis_exif_io.cpp           |   177 -
 filters/krita/libkisexif/kis_exif_io.h             |    45 -
 filters/krita/magick/Makefile.am                   |    44 -
 filters/krita/magick/configure.in.bot              |    15 -
 filters/krita/magick/kis_image_magick_converter.cc |  1087 -
 filters/krita/magick/kis_image_magick_converter.h  |   104 -
 filters/krita/magick/krita_magick.desktop          |    58 -
 filters/krita/magick/krita_magick_export.desktop   |    55 -
 filters/krita/magick/krita_magick_import.desktop   |    61 -
 filters/krita/magick/magickexport.cpp              |    78 -
 filters/krita/magick/magickexport.h                |    37 -
 filters/krita/magick/magickimport.cpp              |   105 -
 filters/krita/magick/magickimport.h                |    37 -
 filters/krita/openexr/Makefile.am                  |    51 -
 filters/krita/openexr/configure.in.bot             |     9 -
 filters/krita/openexr/kis_openexr_export.cpp       |   155 -
 filters/krita/openexr/kis_openexr_export.h         |    38 -
 filters/krita/openexr/kis_openexr_import.cpp       |   160 -
 filters/krita/openexr/kis_openexr_import.h         |    38 -
 filters/krita/openexr/krita_openexr.desktop        |    57 -
 filters/krita/openexr/krita_openexr_export.desktop |    52 -
 filters/krita/openexr/krita_openexr_import.desktop |    52 -
 filters/krita/pdf/Makefile.am                      |    30 -
 filters/krita/pdf/configure.in.bot                 |     7 -
 filters/krita/pdf/configure.in.in                  |     4 -
 filters/krita/pdf/kis_pdf_import.cpp               |   158 -
 filters/krita/pdf/kis_pdf_import.h                 |    35 -
 filters/krita/pdf/kis_pdf_import_widget.cpp        |   147 -
 filters/krita/pdf/kis_pdf_import_widget.h          |    55 -
 filters/krita/pdf/krita_pdf.desktop                |    63 -
 filters/krita/pdf/krita_pdf_import.desktop         |    51 -
 filters/krita/pdf/pdfimportwidgetbase.ui           |   321 -
 filters/krita/png/Makefile.am                      |    44 -
 filters/krita/png/configure.in.bot                 |     8 -
 filters/krita/png/kis_png_converter.cc             |   794 -
 filters/krita/png/kis_png_converter.h              |    82 -
 filters/krita/png/kis_png_export.cc                |   124 -
 filters/krita/png/kis_png_export.h                 |    35 -
 filters/krita/png/kis_png_import.cc                |   105 -
 filters/krita/png/kis_png_import.h                 |    34 -
 filters/krita/png/kis_wdg_options_png.ui           |   183 -
 filters/krita/png/krita_png.desktop                |    57 -
 filters/krita/png/krita_png_export.desktop         |    51 -
 filters/krita/png/krita_png_import.desktop         |    51 -
 filters/krita/raw/Makefile.am                      |    35 -
 filters/krita/raw/dcraw.1                          |   182 -
 filters/krita/raw/dcraw.c                          |  5999 --
 filters/krita/raw/kis_raw_import.cpp               |   630 -
 filters/krita/raw/kis_raw_import.h                 |    71 -
 filters/krita/raw/krita_raw.desktop                |    57 -
 filters/krita/raw/krita_raw_import.desktop         |    51 -
 filters/krita/raw/wdgrawimport.ui                  |   496 -
 filters/krita/tiff/Makefile.am                     |    55 -
 filters/krita/tiff/configure.in.bot                |     7 -
 filters/krita/tiff/kis_dlg_options_tiff.cpp        |   134 -
 filters/krita/tiff/kis_dlg_options_tiff.h          |    45 -
 filters/krita/tiff/kis_tiff_converter.cc           |   677 -
 filters/krita/tiff/kis_tiff_converter.h            |    94 -
 filters/krita/tiff/kis_tiff_export.cc              |   123 -
 filters/krita/tiff/kis_tiff_export.h               |    35 -
 filters/krita/tiff/kis_tiff_import.cc              |   105 -
 filters/krita/tiff/kis_tiff_import.h               |    34 -
 filters/krita/tiff/kis_tiff_reader.cc              |   121 -
 filters/krita/tiff/kis_tiff_reader.h               |   206 -
 filters/krita/tiff/kis_tiff_stream.cc              |   164 -
 filters/krita/tiff/kis_tiff_stream.h               |    81 -
 filters/krita/tiff/kis_tiff_writer_visitor.cpp     |   237 -
 filters/krita/tiff/kis_tiff_writer_visitor.h       |    53 -
 filters/krita/tiff/kis_tiff_ycbcr_reader.cc        |   170 -
 filters/krita/tiff/kis_tiff_ycbcr_reader.h         |    73 -
 filters/krita/tiff/kis_wdg_options_tiff.ui         |   741 -
 filters/krita/tiff/kis_ycbcr_colorspace.h          |    27 -
 filters/krita/tiff/krita_tiff.desktop              |    63 -
 filters/krita/tiff/krita_tiff_export.desktop       |    52 -
 filters/krita/tiff/krita_tiff_import.desktop       |    52 -
 filters/krita/xcf/Makefile.am                      |    42 -
 filters/krita/xcf/krita_xcf_export.desktop         |    52 -
 filters/krita/xcf/krita_xcf_import.desktop         |    52 -
 filters/krita/xcf/xcf/README                       |     2 -
 filters/krita/xcf/xcf/xcf-load.cc                  |  1740 -
 filters/krita/xcf/xcf/xcf-load.h                   |    27 -
 filters/krita/xcf/xcf/xcf-private.h                |    95 -
 filters/krita/xcf/xcf/xcf-read.cc                  |   118 -
 filters/krita/xcf/xcf/xcf-read.h                   |    37 -
 filters/krita/xcf/xcf/xcf-save.cc                  |  1826 -
 filters/krita/xcf/xcf/xcf-save.h                   |    29 -
 filters/krita/xcf/xcf/xcf-seek.cc                  |    79 -
 filters/krita/xcf/xcf/xcf-seek.h                   |    30 -
 filters/krita/xcf/xcf/xcf-write.cc                 |   104 -
 filters/krita/xcf/xcf/xcf-write.h                  |    39 -
 filters/krita/xcf/xcfexport.cpp                    |    78 -
 filters/krita/xcf/xcfexport.h                      |    37 -
 filters/krita/xcf/xcfimport.cpp                    |    99 -
 filters/krita/xcf/xcfimport.h                      |    37 -
 krita/AUTHORS                                      |    20 -
 krita/ChangeLog                                    |     1 -
 krita/HACKING                                      |    93 -
 krita/IMAGE_LIBRARIES                              |   259 -
 krita/Makefile.am                                  |    47 -
 krita/README                                       |    13 -
 krita/TODO                                         |   181 -
 krita/UIcomments                                   |    59 -
 krita/colorspaces/Makefile.am                      |    15 -
 krita/colorspaces/README                           |    11 -
 krita/colorspaces/cmyk_u16/Makefile.am             |    30 -
 krita/colorspaces/cmyk_u16/cmyk_u16_plugin.cc      |    61 -
 krita/colorspaces/cmyk_u16/cmyk_u16_plugin.h       |    38 -
 .../cmyk_u16/kis_cmyk_u16_colorspace.cc            |   714 -
 .../colorspaces/cmyk_u16/kis_cmyk_u16_colorspace.h |   123 -
 .../cmyk_u16/krita_cmyk_u16_plugin.desktop         |    85 -
 krita/colorspaces/cmyk_u8/Makefile.am              |    20 -
 krita/colorspaces/cmyk_u8/cmyk_plugin.cc           |    66 -
 krita/colorspaces/cmyk_u8/cmyk_plugin.h            |    38 -
 krita/colorspaces/cmyk_u8/cmykplugin.rc            |     7 -
 krita/colorspaces/cmyk_u8/composite.h              |    76 -
 krita/colorspaces/cmyk_u8/kis_cmyk_colorspace.cc   |   710 -
 krita/colorspaces/cmyk_u8/kis_cmyk_colorspace.h    |   126 -
 krita/colorspaces/cmyk_u8/kritacmykplugin.desktop  |    99 -
 krita/colorspaces/cmyk_u8/templates/.directory     |     5 -
 krita/colorspaces/cmyk_u8/templates/Makefile.am    |     8 -
 .../templates/cr48-action-template_cmyk_empty.png  |   Bin 432 -> 0 bytes
 .../templates/crsc-action-template_cmyk_empty.svgz |   Bin 1655 -> 0 bytes
 .../cmyk_u8/templates/white_2000x800.desktop       |   100 -
 .../cmyk_u8/templates/white_2000x800.kra           |   Bin 17590 -> 0 bytes
 krita/colorspaces/gray_u16/Makefile.am             |    29 -
 krita/colorspaces/gray_u16/gray_u16_plugin.cc      |    63 -
 krita/colorspaces/gray_u16/gray_u16_plugin.h       |    38 -
 .../gray_u16/kis_gray_u16_colorspace.cc            |   658 -
 .../colorspaces/gray_u16/kis_gray_u16_colorspace.h |   118 -
 .../gray_u16/krita_gray_u16_plugin.desktop         |    83 -
 krita/colorspaces/gray_u8/Makefile.am              |    31 -
 krita/colorspaces/gray_u8/gray_plugin.cc           |    77 -
 krita/colorspaces/gray_u8/gray_plugin.h            |    37 -
 krita/colorspaces/gray_u8/grayplugin.rc            |     7 -
 krita/colorspaces/gray_u8/kis_gray_colorspace.cc   |   997 -
 krita/colorspaces/gray_u8/kis_gray_colorspace.h    |   114 -
 krita/colorspaces/gray_u8/kritagrayplugin.desktop  |    97 -
 krita/colorspaces/gray_u8/templates/.directory     |    48 -
 krita/colorspaces/gray_u8/templates/Makefile.am    |     8 -
 .../templates/cr48-action-template_gray_empty.png  |   Bin 1368 -> 0 bytes
 .../templates/crsc-action-template_gray_empty.svgz |   Bin 1725 -> 0 bytes
 .../gray_u8/templates/white_640x480.desktop        |    99 -
 .../gray_u8/templates/white_640x480.kra            |   Bin 2824 -> 0 bytes
 krita/colorspaces/gray_u8/tests/Makefile.am        |    17 -
 .../kis_strategy_colorspace_grayscale_tester.cpp   |   155 -
 .../kis_strategy_colorspace_grayscale_tester.h     |    34 -
 krita/colorspaces/lms_f32/Makefile.am              |    28 -
 .../colorspaces/lms_f32/kis_lms_f32_colorspace.cc  |   385 -
 krita/colorspaces/lms_f32/kis_lms_f32_colorspace.h |   157 -
 .../lms_f32/krita_lms_f32_plugin.desktop           |    77 -
 krita/colorspaces/lms_f32/lms_f32_plugin.cc        |    64 -
 krita/colorspaces/lms_f32/lms_f32_plugin.h         |    40 -
 krita/colorspaces/lms_f32/lms_f32_plugin.rc        |     9 -
 krita/colorspaces/rgb_f16half/Makefile.am          |    35 -
 .../rgb_f16half/kis_rgb_f16half_colorspace.cc      |   952 -
 .../rgb_f16half/kis_rgb_f16half_colorspace.h       |   144 -
 .../rgb_f16half/krita_rgb_f16half_plugin.desktop   |    76 -
 .../colorspaces/rgb_f16half/rgb_f16half_plugin.cc  |    63 -
 krita/colorspaces/rgb_f16half/rgb_f16half_plugin.h |    39 -
 .../colorspaces/rgb_f16half/rgb_f16half_plugin.rc  |     9 -
 krita/colorspaces/rgb_f16half/tests/Makefile.am    |    19 -
 .../tests/kis_rgb_f16half_colorspace_tester.cc     |   545 -
 .../tests/kis_rgb_f16half_colorspace_tester.h      |    47 -
 krita/colorspaces/rgb_f32/Makefile.am              |    34 -
 .../colorspaces/rgb_f32/kis_rgb_f32_colorspace.cc  |   949 -
 krita/colorspaces/rgb_f32/kis_rgb_f32_colorspace.h |   165 -
 .../rgb_f32/krita_rgb_f32_plugin.desktop           |    77 -
 krita/colorspaces/rgb_f32/rgb_f32_plugin.cc        |    63 -
 krita/colorspaces/rgb_f32/rgb_f32_plugin.h         |    39 -
 krita/colorspaces/rgb_f32/rgb_f32_plugin.rc        |     9 -
 krita/colorspaces/rgb_f32/tests/Makefile.am        |    17 -
 .../kis_strategy_colorspace_rgb_f32_tester.cc      |   541 -
 .../tests/kis_strategy_colorspace_rgb_f32_tester.h |    47 -
 krita/colorspaces/rgb_u16/Makefile.am              |    32 -
 .../colorspaces/rgb_u16/kis_rgb_u16_colorspace.cc  |   869 -
 krita/colorspaces/rgb_u16/kis_rgb_u16_colorspace.h |   128 -
 .../rgb_u16/krita_rgb_u16_plugin.desktop           |    80 -
 krita/colorspaces/rgb_u16/rgb_u16_plugin.cc        |    61 -
 krita/colorspaces/rgb_u16/rgb_u16_plugin.h         |    37 -
 krita/colorspaces/rgb_u16/tests/Makefile.am        |    17 -
 .../kis_strategy_colorspace_rgb_u16_tester.cc      |   524 -
 .../tests/kis_strategy_colorspace_rgb_u16_tester.h |    46 -
 krita/colorspaces/rgb_u8/Makefile.am               |    33 -
 krita/colorspaces/rgb_u8/composite.h               |   868 -
 krita/colorspaces/rgb_u8/kis_rgb_colorspace.cc     |  1501 -
 krita/colorspaces/rgb_u8/kis_rgb_colorspace.h      |   116 -
 krita/colorspaces/rgb_u8/kritargbplugin.desktop    |    99 -
 krita/colorspaces/rgb_u8/rgb_plugin.cc             |    74 -
 krita/colorspaces/rgb_u8/rgb_plugin.h              |    38 -
 krita/colorspaces/rgb_u8/rgbplugin.rc              |     9 -
 krita/colorspaces/rgb_u8/templates/.directory      |     6 -
 krita/colorspaces/rgb_u8/templates/Makefile.am     |     8 -
 .../templates/cr48-action-template_rgb_empty.png   |   Bin 2364 -> 0 bytes
 .../templates/crsc-action-template_rgb_empty.svgz  |   Bin 1818 -> 0 bytes
 .../rgb_u8/templates/transparent_1024x768.desktop  |    91 -
 .../rgb_u8/templates/transparent_1024x768.kra      |   Bin 7141 -> 0 bytes
 .../rgb_u8/templates/transparent_1280x1024.desktop |    92 -
 .../rgb_u8/templates/transparent_1280x1024.kra     |   Bin 9806 -> 0 bytes
 .../rgb_u8/templates/transparent_1600x1200.desktop |    97 -
 .../rgb_u8/templates/transparent_1600x1200.kra     |   Bin 13147 -> 0 bytes
 .../rgb_u8/templates/transparent_640x480.desktop   |    92 -
 .../rgb_u8/templates/transparent_640x480.kra       |   Bin 4947 -> 0 bytes
 .../rgb_u8/templates/white_1024x768.desktop        |   102 -
 .../rgb_u8/templates/white_1024x768.kra            |   Bin 5323 -> 0 bytes
 .../rgb_u8/templates/white_1280x1024.desktop       |    95 -
 .../rgb_u8/templates/white_1280x1024.kra           |   Bin 7988 -> 0 bytes
 .../rgb_u8/templates/white_1600x1200.desktop       |    95 -
 .../rgb_u8/templates/white_1600x1200.kra           |   Bin 11442 -> 0 bytes
 .../rgb_u8/templates/white_640x480.desktop         |   102 -
 .../colorspaces/rgb_u8/templates/white_640x480.kra |   Bin 3164 -> 0 bytes
 krita/colorspaces/rgb_u8/tests/Makefile.am         |    17 -
 .../tests/kis_strategy_colorspace_rgb_tester.cpp   |   197 -
 .../tests/kis_strategy_colorspace_rgb_tester.h     |    34 -
 krita/colorspaces/wet/Makefile.am                  |    28 -
 krita/colorspaces/wet/kis_texture_filter.cc        |    43 -
 krita/colorspaces/wet/kis_texture_filter.h         |    38 -
 krita/colorspaces/wet/kis_texture_painter.cc       |    92 -
 krita/colorspaces/wet/kis_texture_painter.h        |    40 -
 krita/colorspaces/wet/kis_wet_colorspace.cc        |   514 -
 krita/colorspaces/wet/kis_wet_colorspace.h         |   219 -
 krita/colorspaces/wet/kis_wet_palette_widget.cc    |   245 -
 krita/colorspaces/wet/kis_wet_palette_widget.h     |    68 -
 .../wet/kis_wetness_visualisation_filter.cc        |    77 -
 .../wet/kis_wetness_visualisation_filter.h         |    51 -
 krita/colorspaces/wet/kis_wetop.cc                 |   230 -
 krita/colorspaces/wet/kis_wetop.h                  |    73 -
 krita/colorspaces/wet/kritawetplugin.desktop       |    86 -
 krita/colorspaces/wet/todo                         |    24 -
 krita/colorspaces/wet/wdgpressure.ui               |    60 -
 krita/colorspaces/wet/wet_plugin.cc                |   128 -
 krita/colorspaces/wet/wet_plugin.h                 |    46 -
 krita/colorspaces/wet/wetdreams/Makefile           |     6 -
 krita/colorspaces/wet/wetdreams/wetmain.c          |   517 -
 krita/colorspaces/wet/wetdreams/wetpaint.c         |   101 -
 krita/colorspaces/wet/wetdreams/wetpaint.h         |     4 -
 krita/colorspaces/wet/wetdreams/wetphysics.c       |   334 -
 krita/colorspaces/wet/wetdreams/wetphysics.h       |     9 -
 krita/colorspaces/wet/wetdreams/wetpix.c           |   332 -
 krita/colorspaces/wet/wetdreams/wetpix.h           |    87 -
 krita/colorspaces/wet/wetdreams/wettexture.c       |    84 -
 krita/colorspaces/wet/wetdreams/wettexture.h       |     9 -
 krita/colorspaces/wet/wetphysicsfilter.cc          |   424 -
 krita/colorspaces/wet/wetphysicsfilter.h           |    87 -
 krita/colorspaces/wet/wetplugin.rc                 |     8 -
 krita/colorspaces/wetsticky/Makefile.am            |    25 -
 krita/colorspaces/wetsticky/README                 |    42 -
 krita/colorspaces/wetsticky/TODO                   |     7 -
 krita/colorspaces/wetsticky/brushop/Makefile.am    |    28 -
 krita/colorspaces/wetsticky/brushop/README         |     2 -
 .../colorspaces/wetsticky/brushop/kis_wsbrushop.cc |   117 -
 .../colorspaces/wetsticky/brushop/kis_wsbrushop.h  |    56 -
 .../wetsticky/brushop/kritawsbrushpaintop.desktop  |    73 -
 .../wetsticky/brushop/wetpaintbrush.png            |   Bin 1329 -> 0 bytes
 .../wetsticky/brushop/wsbrushpaintop_plugin.cc     |    56 -
 .../wetsticky/brushop/wsbrushpaintop_plugin.h      |    44 -
 .../wetsticky/kis_wet_sticky_colorspace.cc         |   605 -
 .../wetsticky/kis_wet_sticky_colorspace.h          |   148 -
 .../colorspaces/wetsticky/kis_ws_engine_filter.cc  |   180 -
 krita/colorspaces/wetsticky/kis_ws_engine_filter.h |    77 -
 krita/colorspaces/wetsticky/kritawsplugin.desktop  |    46 -
 krita/colorspaces/wetsticky/wet_sticky_plugin.cc   |    60 -
 krita/colorspaces/wetsticky/wet_sticky_plugin.h    |    42 -
 krita/colorspaces/wetsticky/ws/GNU                 |     0
 .../wetsticky/ws/GNU Public Licence.txt            |   341 -
 krita/colorspaces/wetsticky/ws/README              |     4 -
 krita/colorspaces/wetsticky/ws/TODO                |    24 -
 krita/colorspaces/wetsticky/ws/after.jpg           |   Bin 29607 -> 0 bytes
 krita/colorspaces/wetsticky/ws/anim.c              |   154 -
 krita/colorspaces/wetsticky/ws/before.jpg          |   Bin 15496 -> 0 bytes
 krita/colorspaces/wetsticky/ws/canvas.c            |   514 -
 krita/colorspaces/wetsticky/ws/canvas.h            |    70 -
 krita/colorspaces/wetsticky/ws/cmap.c              |   681 -
 krita/colorspaces/wetsticky/ws/constants.h         |    69 -
 krita/colorspaces/wetsticky/ws/engine.c            |   802 -
 krita/colorspaces/wetsticky/ws/engine.h            |    33 -
 krita/colorspaces/wetsticky/ws/engine3.c           |   617 -
 krita/colorspaces/wetsticky/ws/load_ppm.c          |   244 -
 krita/colorspaces/wetsticky/ws/main.c              |   105 -
 krita/colorspaces/wetsticky/ws/makefile            |    55 -
 krita/colorspaces/wetsticky/ws/mona.pgm            |   Bin 86269 -> 0 bytes
 krita/colorspaces/wetsticky/ws/ogl_interface.c     |   302 -
 krita/colorspaces/wetsticky/ws/test2.jpg           |   Bin 13051 -> 0 bytes
 krita/colorspaces/wetsticky/ws/test3.jpg           |   Bin 21238 -> 0 bytes
 krita/colorspaces/wetsticky/ws/types.h             |    72 -
 krita/colorspaces/wetsticky/ws/win_interface.h     |    28 -
 krita/colorspaces/wetsticky/ws/x_interface.c       |   795 -
 krita/colorspaces/wetsticky/wstool.ui              |   262 -
 krita/colorspaces/ycbcr_u16/Makefile.am            |    27 -
 .../ycbcr_u16/kis_ycbcr_u16_colorspace.cc          |   338 -
 .../ycbcr_u16/kis_ycbcr_u16_colorspace.h           |   144 -
 .../ycbcr_u16/krita_ycbcr_u16_plugin.desktop       |    71 -
 krita/colorspaces/ycbcr_u16/ycbcr_u16_plugin.cc    |    60 -
 krita/colorspaces/ycbcr_u16/ycbcr_u16_plugin.h     |    38 -
 krita/colorspaces/ycbcr_u8/Makefile.am             |    29 -
 .../ycbcr_u8/kis_ycbcr_u8_colorspace.cc            |   344 -
 .../colorspaces/ycbcr_u8/kis_ycbcr_u8_colorspace.h |   144 -
 .../ycbcr_u8/krita_ycbcr_u8_plugin.desktop         |    71 -
 krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.cc      |    62 -
 krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.h       |    38 -
 krita/configure.in.bot                             |    19 -
 krita/configure.in.in                              |   110 -
 krita/core/Makefile.am                             |    59 -
 krita/core/createdcop.py                           |   171 -
 krita/core/kis_adjustment_layer.cc                 |   252 -
 krita/core/kis_adjustment_layer.h                  |   106 -
 krita/core/kis_alpha_mask.cc                       |   132 -
 krita/core/kis_alpha_mask.h                        |   106 -
 krita/core/kis_autobrush_resource.cc               |   106 -
 krita/core/kis_autobrush_resource.h                |    71 -
 krita/core/kis_autogradient_resource.cc            |   221 -
 krita/core/kis_autogradient_resource.h             |    88 -
 krita/core/kis_background.cc                       |   155 -
 krita/core/kis_background.h                        |    49 -
 krita/core/kis_basic_math_toolbox.cpp              |   137 -
 krita/core/kis_basic_math_toolbox.h                |    44 -
 krita/core/kis_boundary.cc                         |    83 -
 krita/core/kis_boundary.h                          |    57 -
 krita/core/kis_brush.cc                            |  1333 -
 krita/core/kis_brush.h                             |   192 -
 krita/core/kis_change_profile_visitor.h            |   109 -
 krita/core/kis_colorspace_convert_visitor.h        |   101 -
 krita/core/kis_command.cc                          |    43 -
 krita/core/kis_command.h                           |    55 -
 krita/core/kis_convolution_painter.cc              |   426 -
 krita/core/kis_convolution_painter.h               |    95 -
 krita/core/kis_crop_visitor.h                      |   109 -
 krita/core/kis_datamanager.h                       |   217 -
 krita/core/kis_exif_info.cc                        |    66 -
 krita/core/kis_exif_info.h                         |    58 -
 krita/core/kis_exif_value.cc                       |   678 -
 krita/core/kis_exif_value.h                        |   270 -
 krita/core/kis_fill_painter.cc                     |   407 -
 krita/core/kis_fill_painter.h                      |   207 -
 krita/core/kis_filter.cc                           |   133 -
 krita/core/kis_filter.h                            |   201 -
 krita/core/kis_filter_config_widget.cc             |    31 -
 krita/core/kis_filter_config_widget.h              |    50 -
 krita/core/kis_filter_configuration.cc             |   185 -
 krita/core/kis_filter_configuration.h              |   105 -
 krita/core/kis_filter_registry.cc                  |    82 -
 krita/core/kis_filter_registry.h                   |    53 -
 krita/core/kis_filter_strategy.cc                  |   192 -
 krita/core/kis_filter_strategy.h                   |   150 -
 krita/core/kis_gradient.cc                         |   639 -
 krita/core/kis_gradient.h                          |   265 -
 krita/core/kis_gradient_painter.cc                 |   723 -
 krita/core/kis_gradient_painter.h                  |    84 -
 krita/core/kis_group_layer.cc                      |   428 -
 krita/core/kis_group_layer.h                       |   141 -
 krita/core/kis_histogram.cc                        |   215 -
 krita/core/kis_histogram.h                         |   150 -
 krita/core/kis_image.cc                            |  1702 -
 krita/core/kis_image.h                             |   461 -
 krita/core/kis_image_iface.cc                      |    97 -
 krita/core/kis_image_iface.h                       |    65 -
 krita/core/kis_imagepipe_brush.cc                  |   456 -
 krita/core/kis_imagepipe_brush.h                   |   169 -
 krita/core/kis_iterator.cc                         |   142 -
 krita/core/kis_iterator.h                          |   173 -
 krita/core/kis_iteratorpixeltrait.h                |   131 -
 krita/core/kis_iterators_pixel.cc                  |    59 -
 krita/core/kis_iterators_pixel.h                   |   154 -
 krita/core/kis_layer.cc                            |   611 -
 krita/core/kis_layer.h                             |   257 -
 krita/core/kis_layer_visitor.h                     |    43 -
 krita/core/kis_math_toolbox.cpp                    |   166 -
 krita/core/kis_math_toolbox.h                      |   124 -
 krita/core/kis_merge_visitor.h                     |   358 -
 krita/core/kis_meta_registry.cc                    |    68 -
 krita/core/kis_meta_registry.h                     |    49 -
 krita/core/kis_nameserver.cc                       |    49 -
 krita/core/kis_nameserver.h                        |    40 -
 krita/core/kis_paint_device.cc                     |  1285 -
 krita/core/kis_paint_device.h                      |   597 -
 krita/core/kis_paint_device_action.h               |    43 -
 krita/core/kis_paint_device_iface.cc               |    74 -
 krita/core/kis_paint_device_iface.h                |    85 -
 krita/core/kis_paint_layer.cc                      |   509 -
 krita/core/kis_paint_layer.h                       |   157 -
 krita/core/kis_painter.cc                          |   928 -
 krita/core/kis_painter.h                           |   432 -
 krita/core/kis_paintop.cc                          |   113 -
 krita/core/kis_paintop.h                           |   141 -
 krita/core/kis_paintop_registry.cc                 |   139 -
 krita/core/kis_paintop_registry.h                  |    84 -
 krita/core/kis_palette.cc                          |   306 -
 krita/core/kis_palette.h                           |   113 -
 krita/core/kis_part_layer_iface.h                  |    36 -
 krita/core/kis_pattern.cc                          |   335 -
 krita/core/kis_pattern.h                           |    80 -
 krita/core/kis_perspective_grid.cpp                |   100 -
 krita/core/kis_perspective_grid.h                  |   107 -
 krita/core/kis_perspective_math.cpp                |   546 -
 krita/core/kis_perspective_math.h                  |    70 -
 krita/core/kis_perspectivetransform_worker.cpp     |   121 -
 krita/core/kis_perspectivetransform_worker.h       |    52 -
 krita/core/kis_point.h                             |    48 -
 krita/core/kis_random_accessor.cpp                 |    58 -
 krita/core/kis_random_accessor.h                   |    95 -
 krita/core/kis_random_sub_accessor.cpp             |    84 -
 krita/core/kis_random_sub_accessor.h               |    45 -
 krita/core/kis_rect.cc                             |    28 -
 krita/core/kis_rect.h                              |    50 -
 krita/core/kis_resource.cc                         |    62 -
 krita/core/kis_resource.h                          |    84 -
 krita/core/kis_rotate_visitor.cc                   |   406 -
 krita/core/kis_rotate_visitor.h                    |    80 -
 krita/core/kis_scale_visitor.cc                    |   279 -
 krita/core/kis_scale_visitor.h                     |   204 -
 krita/core/kis_selected_transaction.cc             |    73 -
 krita/core/kis_selected_transaction.h              |    50 -
 krita/core/kis_selection.cc                        |   582 -
 krita/core/kis_selection.h                         |   160 -
 krita/core/kis_shear_visitor.h                     |    95 -
 krita/core/kis_strategy_move.cc                    |   148 -
 krita/core/kis_strategy_move.h                     |    59 -
 krita/core/kis_substrate.h                         |    78 -
 krita/core/kis_thread.h                            |    57 -
 krita/core/kis_thread_pool.cc                      |   192 -
 krita/core/kis_thread_pool.h                       |    70 -
 krita/core/kis_transaction.cc                      |    94 -
 krita/core/kis_transaction.h                       |    46 -
 krita/core/kis_transform_visitor.h                 |   137 -
 krita/core/kis_transform_worker.cc                 |   676 -
 krita/core/kis_transform_worker.h                  |    79 -
 krita/core/kis_types.h                             |    90 -
 krita/core/kis_vec.cc                              |    67 -
 krita/core/kis_vec.h                               |   405 -
 krita/core/tests/Makefile.am                       |    30 -
 .../core/tests/kis_filter_configuration_tester.cc  |    67 -
 krita/core/tests/kis_filter_configuration_tester.h |    34 -
 krita/core/tests/kis_image_tester.cpp              |    88 -
 krita/core/tests/kis_image_tester.h                |    32 -
 krita/core/tests/kis_integer_maths_tester.cpp      |    93 -
 krita/core/tests/kis_integer_maths_tester.h        |    34 -
 krita/core/tiles/Makefile.am                       |    23 -
 krita/core/tiles/kis_memento.cc                    |   154 -
 krita/core/tiles/kis_memento.h                     |   147 -
 krita/core/tiles/kis_tile.cc                       |   152 -
 krita/core/tiles/kis_tile.h                        |    87 -
 krita/core/tiles/kis_tile_global.h                 |    23 -
 krita/core/tiles/kis_tiled_random_accessor.cc      |   115 -
 krita/core/tiles/kis_tiled_random_accessor.h       |    66 -
 krita/core/tiles/kis_tileddatamanager.cc           |  1044 -
 krita/core/tiles/kis_tileddatamanager.h            |   233 -
 krita/core/tiles/kis_tiledhlineiterator.cc         |   213 -
 krita/core/tiles/kis_tilediterator.cc              |   131 -
 krita/core/tiles/kis_tilediterator.h               |   213 -
 krita/core/tiles/kis_tiledrectiterator.cc          |   242 -
 krita/core/tiles/kis_tiledvlineiterator.cc         |   154 -
 krita/core/tiles/kis_tilemanager.cc                |   578 -
 krita/core/tiles/kis_tilemanager.h                 |   139 -
 krita/core/tiles/tests/Makefile.am                 |    15 -
 krita/core/tiles/tests/kis_tiled_data_tester.cpp   |    74 -
 krita/core/tiles/tests/kis_tiled_data_tester.h     |    32 -
 krita/data/Makefile.am                             |     7 -
 krita/data/README                                  |    13 -
 krita/data/brushes/10x10square.gbr                 |   Bin 143 -> 0 bytes
 krita/data/brushes/10x10squareBlur.gbr             |   Bin 148 -> 0 bytes
 krita/data/brushes/11circle.gbr                    |   Bin 161 -> 0 bytes
 krita/data/brushes/11fcircle.gbr                   |   Bin 159 -> 0 bytes
 krita/data/brushes/13circle.gbr                    |   Bin 209 -> 0 bytes
 krita/data/brushes/13fcircle.gbr                   |   Bin 207 -> 0 bytes
 krita/data/brushes/15circle.gbr                    |   Bin 265 -> 0 bytes
 krita/data/brushes/15fcircle.gbr                   |   Bin 263 -> 0 bytes
 krita/data/brushes/17circle.gbr                    |   Bin 329 -> 0 bytes
 krita/data/brushes/17fcircle.gbr                   |   Bin 327 -> 0 bytes
 krita/data/brushes/19circle.gbr                    |   Bin 401 -> 0 bytes
 krita/data/brushes/19fcircle.gbr                   |   Bin 399 -> 0 bytes
 krita/data/brushes/1circle.gbr                     |   Bin 41 -> 0 bytes
 krita/data/brushes/20x20square.gbr                 |   Bin 443 -> 0 bytes
 krita/data/brushes/20x20squareBlur.gbr             |   Bin 448 -> 0 bytes
 krita/data/brushes/3circle.gbr                     |   Bin 49 -> 0 bytes
 krita/data/brushes/3fcircle.gbr                    |   Bin 47 -> 0 bytes
 krita/data/brushes/5circle.gbr                     |   Bin 65 -> 0 bytes
 krita/data/brushes/5fcircle.gbr                    |   Bin 63 -> 0 bytes
 krita/data/brushes/5x5square.gbr                   |   Bin 66 -> 0 bytes
 krita/data/brushes/5x5squareBlur.gbr               |   Bin 71 -> 0 bytes
 krita/data/brushes/7circle.gbr                     |   Bin 89 -> 0 bytes
 krita/data/brushes/7fcircle.gbr                    |   Bin 87 -> 0 bytes
 krita/data/brushes/9circle.gbr                     |   Bin 121 -> 0 bytes
 krita/data/brushes/9fcircle.gbr                    |   Bin 119 -> 0 bytes
 krita/data/brushes/BRUSHES.README                  |    19 -
 krita/data/brushes/COPYING                         |   340 -
 krita/data/brushes/DStar11.gbr                     |   Bin 168 -> 0 bytes
 krita/data/brushes/DStar17.gbr                     |   Bin 336 -> 0 bytes
 krita/data/brushes/DStar25.gbr                     |   Bin 672 -> 0 bytes
 krita/data/brushes/Makefile.am                     |    69 -
 krita/data/brushes/SketchBrush-16.gih              |   Bin 1618 -> 0 bytes
 krita/data/brushes/SketchBrush-32.gih              |   Bin 5458 -> 0 bytes
 krita/data/brushes/SketchBrush-64.gih              |   Bin 20818 -> 0 bytes
 krita/data/brushes/callig1.gbr                     |   Bin 147 -> 0 bytes
 krita/data/brushes/callig2.gbr                     |   Bin 447 -> 0 bytes
 krita/data/brushes/callig3.gbr                     |   Bin 272 -> 0 bytes
 krita/data/brushes/callig4.gbr                     |   Bin 72 -> 0 bytes
 krita/data/brushes/confetti.gbr                    |   Bin 793 -> 0 bytes
 krita/data/brushes/confetti.gih                    |   Bin 8076 -> 0 bytes
 krita/data/brushes/cursor.gbr                      |   Bin 899 -> 0 bytes
 krita/data/brushes/cursor_big_lb.gbr               |   Bin 2858 -> 0 bytes
 krita/data/brushes/cursor_big_lw.gbr               |   Bin 2858 -> 0 bytes
 krita/data/brushes/cursor_big_rb.gbr               |   Bin 2858 -> 0 bytes
 krita/data/brushes/cursor_big_rw.gbr               |   Bin 2858 -> 0 bytes
 krita/data/brushes/cursor_lw.gbr                   |   Bin 1802 -> 0 bytes
 krita/data/brushes/cursor_resize_diag_1.gbr        |   Bin 1072 -> 0 bytes
 krita/data/brushes/cursor_resize_diag_2.gbr        |   Bin 1072 -> 0 bytes
 krita/data/brushes/cursor_resize_hor.gbr           |   Bin 958 -> 0 bytes
 krita/data/brushes/cursor_resize_vert.gbr          |   Bin 959 -> 0 bytes
 krita/data/brushes/cursor_rw.gbr                   |   Bin 1802 -> 0 bytes
 krita/data/brushes/cursor_small_lb.gbr             |   Bin 1004 -> 0 bytes
 krita/data/brushes/cursor_small_lw.gbr             |   Bin 1004 -> 0 bytes
 krita/data/brushes/cursor_small_rb.gbr             |   Bin 1004 -> 0 bytes
 krita/data/brushes/cursor_small_rw.gbr             |   Bin 1004 -> 0 bytes
 krita/data/brushes/cursor_tiny_lw.gbr              |   Bin 523 -> 0 bytes
 krita/data/brushes/cursor_tiny_rw.gbr              |   Bin 523 -> 0 bytes
 krita/data/brushes/cursor_up.gbr                   |   Bin 1606 -> 0 bytes
 krita/data/brushes/dunes.gbr                       |   Bin 1100 -> 0 bytes
 krita/data/brushes/feltpen.gih                     |   Bin 118795 -> 0 bytes
 krita/data/brushes/galaxy.gbr                      |   Bin 2636 -> 0 bytes
 krita/data/brushes/galaxy_big.gbr                  |   Bin 10037 -> 0 bytes
 krita/data/brushes/galaxy_small.gbr                |   Bin 749 -> 0 bytes
 krita/data/brushes/hsparks.gih                     |   Bin 127644 -> 0 bytes
 krita/data/brushes/pepper.gbr                      |   Bin 11991 -> 0 bytes
 krita/data/brushes/pixel.gbr                       |   Bin 48 -> 0 bytes
 krita/data/brushes/vine.gih                        |   Bin 116027 -> 0 bytes
 krita/data/gradients/Abstract_1.ggr                |     9 -
 krita/data/gradients/Abstract_2.ggr                |     9 -
 krita/data/gradients/Abstract_3.ggr                |     9 -
 krita/data/gradients/Aneurism.ggr                  |    11 -
 krita/data/gradients/Blinds.ggr                    |    12 -
 krita/data/gradients/Blue_Green.ggr                |     5 -
 krita/data/gradients/Browns.ggr                    |    14 -
 krita/data/gradients/Brushed_Aluminium.ggr         |    27 -
 krita/data/gradients/Burning_Paper.ggr             |     9 -
 krita/data/gradients/Burning_Transparency.ggr      |     9 -
 krita/data/gradients/CD.ggr                        |    21 -
 krita/data/gradients/CD_Half.ggr                   |    12 -
 krita/data/gradients/Caribbean_Blues.ggr           |     6 -
 krita/data/gradients/Coffee.ggr                    |     4 -
 krita/data/gradients/Cold_Steel.ggr                |     5 -
 krita/data/gradients/Cold_Steel_2.ggr              |     6 -
 krita/data/gradients/Crown_molding.ggr             |     9 -
 krita/data/gradients/Dark_1.ggr                    |     6 -
 krita/data/gradients/Deep_Sea.ggr                  |     5 -
 krita/data/gradients/Default.ggr                   |     4 -
 krita/data/gradients/Flare_Glow_Angular_1.ggr      |    49 -
 krita/data/gradients/Flare_Glow_Radial_1.ggr       |     7 -
 krita/data/gradients/Flare_Glow_Radial_2.ggr       |     8 -
 krita/data/gradients/Flare_Glow_Radial_3.ggr       |     8 -
 krita/data/gradients/Flare_Glow_Radial_4.ggr       |     6 -
 krita/data/gradients/Flare_Radial_101.ggr          |    10 -
 krita/data/gradients/Flare_Radial_102.ggr          |     9 -
 krita/data/gradients/Flare_Radial_103.ggr          |     4 -
 krita/data/gradients/Flare_Rays_Radial_1.ggr       |     5 -
 krita/data/gradients/Flare_Rays_Radial_2.ggr       |     5 -
 krita/data/gradients/Flare_Rays_Size_1.ggr         |    19 -
 krita/data/gradients/Flare_Sizefac_101.ggr         |     4 -
 krita/data/gradients/Four_bars.ggr                 |    11 -
 krita/data/gradients/French_flag.ggr               |     6 -
 krita/data/gradients/French_flag_smooth.ggr        |     5 -
 .../gradients/Full_saturation_spectrum_CCW.ggr     |     4 -
 .../data/gradients/Full_saturation_spectrum_CW.ggr |     4 -
 krita/data/gradients/German_flag.ggr               |     6 -
 krita/data/gradients/German_flag_smooth.ggr        |     5 -
 krita/data/gradients/Golden.ggr                    |    17 -
 krita/data/gradients/Greens.ggr                    |    12 -
 krita/data/gradients/Horizon_1.ggr                 |     8 -
 krita/data/gradients/Horizon_2.ggr                 |     8 -
 krita/data/gradients/Incandescent.ggr              |     7 -
 krita/data/gradients/Land_1.ggr                    |     8 -
 krita/data/gradients/Land_and_Sea.ggr              |     8 -
 krita/data/gradients/Makefile.am                   |     4 -
 krita/data/gradients/Metallic_Something.ggr        |    11 -
 krita/data/gradients/Mexican_flag.ggr              |     6 -
 krita/data/gradients/Mexican_flag_smooth.ggr       |     5 -
 krita/data/gradients/Nauseating_Headache.ggr       |    28 -
 krita/data/gradients/Neon_Cyan.ggr                 |     7 -
 krita/data/gradients/Neon_Green.ggr                |     7 -
 krita/data/gradients/Neon_Yellow.ggr               |     7 -
 krita/data/gradients/Pastel_Rainbow.ggr            |     4 -
 krita/data/gradients/Pastels.ggr                   |    17 -
 krita/data/gradients/Purples.ggr                   |    10 -
 krita/data/gradients/Radial_Eyeball_Blue.ggr       |     8 -
 krita/data/gradients/Radial_Eyeball_Brown.ggr      |     8 -
 krita/data/gradients/Radial_Eyeball_Green.ggr      |     8 -
 krita/data/gradients/Radial_Glow_1.ggr             |     8 -
 krita/data/gradients/Radial_Rainbow_Hoop.ggr       |     6 -
 krita/data/gradients/Romanian_flag.ggr             |     6 -
 krita/data/gradients/Romanian_flag_smooth.ggr      |     5 -
 krita/data/gradients/Rounded_edge.ggr              |    10 -
 krita/data/gradients/Shadows_1.ggr                 |     8 -
 krita/data/gradients/Shadows_2.ggr                 |     8 -
 krita/data/gradients/Shadows_3.ggr                 |     9 -
 krita/data/gradients/Skyline.ggr                   |     8 -
 krita/data/gradients/Skyline_polluted.ggr          |     8 -
 krita/data/gradients/Square_Wood_Frame.ggr         |     9 -
 krita/data/gradients/Sunrise.ggr                   |     9 -
 krita/data/gradients/Three_bars_sin.ggr            |     9 -
 krita/data/gradients/Tropical_Colors.ggr           |    12 -
 krita/data/gradients/Tube_Red.ggr                  |    10 -
 krita/data/gradients/Wood_1.ggr                    |     6 -
 krita/data/gradients/Wood_2.ggr                    |    12 -
 krita/data/gradients/Yellow_Contrast.ggr           |    10 -
 krita/data/gradients/Yellow_Orange.ggr             |     5 -
 krita/data/images/Azay-Le-Rideau.jpg               |   Bin 82588 -> 0 bytes
 krita/data/images/Makefile.am                      |     6 -
 krita/data/images/WeyDesc.png                      |   Bin 1061530 -> 0 bytes
 krita/data/images/evenings.jpg                     |   Bin 53510 -> 0 bytes
 krita/data/images/hakonepa.jpg                     |   Bin 58724 -> 0 bytes
 krita/data/images/hiro_awate.jpg                   |   Bin 54283 -> 0 bytes
 krita/data/images/paintbrush.png                   |   Bin 13186 -> 0 bytes
 krita/data/images/previewfilter.png                |   Bin 5988 -> 0 bytes
 krita/data/krita_filter.desktop                    |    47 -
 krita/data/krita_paintop.desktop                   |    41 -
 krita/data/krita_plugin.desktop                    |    42 -
 krita/data/krita_tool.desktop                      |    46 -
 krita/data/palettes/40_Colors.gpl                  |    43 -
 krita/data/palettes/Anchor.gpl                     |   448 -
 krita/data/palettes/Bears.gpl                      |   259 -
 krita/data/palettes/Bgold.gpl                      |   259 -
 krita/data/palettes/Blues.gpl                      |   261 -
 krita/data/palettes/Borders.gpl                    |   259 -
 krita/data/palettes/Browns_And_Yellows.gpl         |    25 -
 krita/data/palettes/Caramel.gpl                    |   259 -
 krita/data/palettes/Cascade.gpl                    |   259 -
 krita/data/palettes/China.gpl                      |   259 -
 krita/data/palettes/Coldfire.gpl                   |   259 -
 krita/data/palettes/Cool_Colors.gpl                |    11 -
 krita/data/palettes/Cranes.gpl                     |   259 -
 krita/data/palettes/DMC.gpl                        |   458 -
 krita/data/palettes/Dark_pastels.gpl               |   259 -
 krita/data/palettes/Default.gpl                    |    26 -
 krita/data/palettes/Ega.gpl                        |   244 -
 krita/data/palettes/Firecode.gpl                   |   259 -
 krita/data/palettes/Gold.gpl                       |   259 -
 krita/data/palettes/GrayViolet.gpl                 |   259 -
 krita/data/palettes/Grayblue.gpl                   |   259 -
 krita/data/palettes/Grays.gpl                      |    34 -
 krita/data/palettes/Greens.gpl                     |   259 -
 krita/data/palettes/Hilite.gpl                     |   259 -
 krita/data/palettes/Khaki.gpl                      |   258 -
 krita/data/palettes/Lights.gpl                     |    28 -
 krita/data/palettes/Madeira.gpl                    |   372 -
 krita/data/palettes/Makefile.am                    |    50 -
 krita/data/palettes/Muted.gpl                      |    81 -
 krita/data/palettes/Named_Colors.gpl               |   452 -
 krita/data/palettes/News3.gpl                      |   259 -
 krita/data/palettes/Op2.gpl                        |   259 -
 krita/data/palettes/Paintjet.gpl                   |    22 -
 krita/data/palettes/Pantone_Coated_Approx.gpl      |   949 -
 krita/data/palettes/Pastels.gpl                    |    21 -
 krita/data/palettes/Plasma.gpl                     |   260 -
 krita/data/palettes/Reds.gpl                       |   259 -
 krita/data/palettes/Reds_And_Purples.gpl           |    33 -
 krita/data/palettes/Royal.gpl                      |   259 -
 krita/data/palettes/Topographic.gpl                |   265 -
 krita/data/palettes/Visibone.gpl                   |   346 -
 krita/data/palettes/Visibone_2.gpl                 |   266 -
 krita/data/palettes/Volcano.gpl                    |   259 -
 krita/data/palettes/Warm_Colors.gpl                |    10 -
 krita/data/palettes/Web.gpl                        |   220 -
 krita/data/palettes/new_kde.gpl                    |    48 -
 krita/data/patterns/3dgreen.pat                    |   Bin 6108 -> 0 bytes
 krita/data/patterns/Craters.pat                    |   Bin 39707 -> 0 bytes
 krita/data/patterns/Makefile.am                    |     5 -
 krita/data/patterns/Moonfoot.pat                   |   Bin 14442 -> 0 bytes
 krita/data/patterns/Stripes1px.pat                 |   Bin 9253 -> 0 bytes
 krita/data/patterns/Stripes2px.pat                 |   Bin 9248 -> 0 bytes
 krita/data/patterns/amethyst.pat                   |   Bin 12321 -> 0 bytes
 krita/data/patterns/bark.pat                       |   Bin 22173 -> 0 bytes
 krita/data/patterns/blue.pat                       |   Bin 6108 -> 0 bytes
 krita/data/patterns/bluegrid.pat                   |   Bin 1909 -> 0 bytes
 krita/data/patterns/bluesquares.pat                |   Bin 48037 -> 0 bytes
 krita/data/patterns/blueweb.pat                    |   Bin 12321 -> 0 bytes
 krita/data/patterns/brick.pat                      |   Bin 27674 -> 0 bytes
 krita/data/patterns/burlap.pat                     |   Bin 27676 -> 0 bytes
 krita/data/patterns/burlwood.pat                   |   Bin 27681 -> 0 bytes
 krita/data/patterns/choc_swirl.pat                 |   Bin 7538 -> 0 bytes
 krita/data/patterns/corkboard.pat                  |   Bin 10097 -> 0 bytes
 krita/data/patterns/cracked.pat                    |   Bin 62238 -> 0 bytes
 krita/data/patterns/crinklepaper.pat               |   Bin 49191 -> 0 bytes
 krita/data/patterns/electric.pat                   |   Bin 9638 -> 0 bytes
 krita/data/patterns/fibers.pat                     |   Bin 7531 -> 0 bytes
 krita/data/patterns/granite1.pat                   |   Bin 10035 -> 0 bytes
 krita/data/patterns/ground1.pat                    |   Bin 30034 -> 0 bytes
 krita/data/patterns/ice.pat                        |   Bin 43228 -> 0 bytes
 krita/data/patterns/java.pat                       |   Bin 12315 -> 0 bytes
 krita/data/patterns/leather.pat                    |   Bin 12320 -> 0 bytes
 krita/data/patterns/leaves.pat                     |   Bin 7537 -> 0 bytes
 krita/data/patterns/leopard.pat                    |   Bin 11921 -> 0 bytes
 krita/data/patterns/lightning.pat                  |   Bin 40707 -> 0 bytes
 krita/data/patterns/marble1.pat                    |   Bin 16418 -> 0 bytes
 krita/data/patterns/marble2.pat                    |   Bin 16418 -> 0 bytes
 krita/data/patterns/marble3.pat                    |   Bin 12322 -> 0 bytes
 krita/data/patterns/nops.pat                       |   Bin 49177 -> 0 bytes
 krita/data/patterns/paper.pat                      |   Bin 10030 -> 0 bytes
 krita/data/patterns/parque1.pat                    |   Bin 12322 -> 0 bytes
 krita/data/patterns/parque2.pat                    |   Bin 12322 -> 0 bytes
 krita/data/patterns/parque3.pat                    |   Bin 12322 -> 0 bytes
 krita/data/patterns/pastel.pat                     |   Bin 12325 -> 0 bytes
 krita/data/patterns/pine.pat                       |   Bin 10781 -> 0 bytes
 krita/data/patterns/pink_marble.pat                |   Bin 49188 -> 0 bytes
 krita/data/patterns/pool.pat                       |   Bin 6111 -> 0 bytes
 krita/data/patterns/qube1.pat                      |   Bin 5331 -> 0 bytes
 krita/data/patterns/rain.pat                       |   Bin 35021 -> 0 bytes
 krita/data/patterns/recessed.pat                   |   Bin 6433 -> 0 bytes
 krita/data/patterns/redcube.pat                    |   Bin 12320 -> 0 bytes
 krita/data/patterns/rock.pat                       |   Bin 30510 -> 0 bytes
 krita/data/patterns/sky.pat                        |   Bin 11002 -> 0 bytes
 krita/data/patterns/slate.pat                      |   Bin 16414 -> 0 bytes
 krita/data/patterns/sm_squares.pat                 |   Bin 7538 -> 0 bytes
 krita/data/patterns/starfield.pat                  |   Bin 49163 -> 0 bytes
 krita/data/patterns/stone33.pat                    |   Bin 73034 -> 0 bytes
 krita/data/patterns/terra.pat                      |   Bin 12318 -> 0 bytes
 krita/data/patterns/walnut.pat                     |   Bin 49183 -> 0 bytes
 krita/data/patterns/warning.pat                    |   Bin 1233 -> 0 bytes
 krita/data/patterns/wood1.pat                      |   Bin 27690 -> 0 bytes
 krita/data/patterns/wood2.pat                      |   Bin 30030 -> 0 bytes
 krita/data/patterns/wood3.pat                      |   Bin 7532 -> 0 bytes
 krita/data/patterns/wood4.pat                      |   Bin 7532 -> 0 bytes
 krita/data/patterns/wood5.pat                      |   Bin 27677 -> 0 bytes
 krita/data/profiles/Adobe.icm                      |   Bin 2036 -> 0 bytes
 krita/data/profiles/Apple.icm                      |   Bin 2036 -> 0 bytes
 krita/data/profiles/CIE.icm                        |   Bin 2036 -> 0 bytes
 krita/data/profiles/CMY.icm                        |   Bin 101936 -> 0 bytes
 krita/data/profiles/ColorMatch.icm                 |   Bin 2044 -> 0 bytes
 krita/data/profiles/Makefile.am                    |     4 -
 krita/data/profiles/NTSC.icm                       |   Bin 2044 -> 0 bytes
 krita/data/profiles/PAL.icm                        |   Bin 2040 -> 0 bytes
 krita/data/profiles/README                         |     5 -
 krita/data/profiles/SMPTE-C.icm                    |   Bin 2052 -> 0 bytes
 krita/data/profiles/WideGamut.icm                  |   Bin 2044 -> 0 bytes
 krita/data/profiles/cmyk.icm                       |   Bin 725407 -> 0 bytes
 krita/data/profiles/fogra27l.icm                   |   Bin 225823 -> 0 bytes
 krita/data/profiles/lcmslabi.icm                   |   Bin 154326 -> 0 bytes
 krita/data/profiles/lcmsxyzi.icm                   |   Bin 154323 -> 0 bytes
 krita/data/profiles/monoscnr.icm                   |   Bin 410 -> 0 bytes
 krita/data/profiles/sRGB.icm                       |   Bin 2032 -> 0 bytes
 krita/data/profiles/srgb_color_space_profile.icm   |   Bin 3144 -> 0 bytes
 krita/data/profiles/srgbspac.icm                   |   Bin 28202 -> 0 bytes
 krita/data/profiles/tifflab8spac.icm               |   Bin 200182 -> 0 bytes
 krita/data/profiles/ycc601.icm                     |   Bin 101940 -> 0 bytes
 krita/data/profiles/ycc709.icm                     |   Bin 101940 -> 0 bytes
 krita/data/templates/.directory                    |    56 -
 krita/design.h                                     |    27 -
 krita/doc/DESIGN.obsolete                          |   179 -
 krita/doc/Developing Krita Plugins.odt             |   Bin 50195 -> 0 bytes
 krita/doc/autoextending paintdevices               |    54 -
 krita/doc/background_paper.txt                     |    84 -
 krita/doc/brush.txt                                |    36 -
 krita/doc/channels_masks_selections                |    12 -
 krita/doc/colordiff                                |    68 -
 krita/doc/colorspaces.xmi                          | 41965 --------------
 krita/doc/colorstrategyAPI                         |    58 -
 krita/doc/controller.xmi                           | 39776 -------------
 krita/doc/coordinates.txt                          |     9 -
 krita/doc/dirty.txt                                |    53 -
 krita/doc/doc-outline                              |   187 -
 krita/doc/histograms.xmi                           |  4145 --
 krita/doc/hooks                                    |    33 -
 krita/doc/howtofilters.txt                         |    30 -
 krita/doc/impexp.txt                               |    41 -
 krita/doc/krita-features                           |   215 -
 krita/doc/krita.kpr                                |   Bin 2857392 -> 0 bytes
 krita/doc/krita.pdf                                |   Bin 2701147 -> 0 bytes
 krita/doc/krita.xmi                                | 56432 -------------------
 krita/doc/large_files                              |    36 -
 krita/doc/layersupdatesignals.flw                  |   Bin 10783 -> 0 bytes
 krita/doc/manual/krita.kwd                         |   Bin 2505238 -> 0 bytes
 krita/doc/oasis                                    |     5 -
 krita/doc/paint_device.txt                         |    98 -
 krita/doc/palettedesign.txt                        |    34 -
 krita/doc/plugins.txt                              |    32 -
 krita/doc/profiles.txt                             |   125 -
 krita/doc/resolution.txt                           |    40 -
 krita/doc/scripts/dcop.py                          |    14 -
 krita/doc/sdk                                      |    10 -
 krita/doc/selections                               |   127 -
 krita/doc/the preview widget                       |    81 -
 krita/doc/transform_undo.txt                       |    38 -
 krita/dtd/Makefile.am                              |     4 -
 krita/dtd/krita.dtd                                |    93 -
 krita/extracti18n.pl                               |    90 -
 krita/krita.desktop                                |    95 -
 krita/krita.rc                                     |   199 -
 krita/krita_part_init.cc                           |    23 -
 krita/krita_readonly.rc                            |    35 -
 krita/kritacolor/Makefile.am                       |    45 -
 krita/kritacolor/README                            |     4 -
 krita/kritacolor/TODO                              |    11 -
 krita/kritacolor/colorspaces/Makefile.am           |    20 -
 .../kritacolor/colorspaces/kis_alpha_colorspace.cc |   296 -
 .../kritacolor/colorspaces/kis_alpha_colorspace.h  |    93 -
 krita/kritacolor/colorspaces/kis_lab_colorspace.cc |   571 -
 krita/kritacolor/colorspaces/kis_lab_colorspace.h  |   153 -
 krita/kritacolor/colorspaces/kis_xyz_colorspace.cc |   624 -
 krita/kritacolor/colorspaces/kis_xyz_colorspace.h  |   112 -
 krita/kritacolor/kis_abstract_colorspace.cc        |   762 -
 krita/kritacolor/kis_abstract_colorspace.h         |   312 -
 krita/kritacolor/kis_basic_histogram_producers.cc  |   484 -
 krita/kritacolor/kis_basic_histogram_producers.h   |   197 -
 krita/kritacolor/kis_channelinfo.h                 |   115 -
 krita/kritacolor/kis_color.cc                      |   185 -
 krita/kritacolor/kis_color.h                       |    90 -
 krita/kritacolor/kis_color_conversions.cc          |   427 -
 krita/kritacolor/kis_color_conversions.h           |    49 -
 krita/kritacolor/kis_colorspace.cc                 |    39 -
 krita/kritacolor/kis_colorspace.h                  |   450 -
 .../kritacolor/kis_colorspace_factory_registry.cc  |   222 -
 krita/kritacolor/kis_colorspace_factory_registry.h |   121 -
 krita/kritacolor/kis_colorspace_iface.cc           |    39 -
 krita/kritacolor/kis_colorspace_iface.h            |    43 -
 krita/kritacolor/kis_composite_op.cc               |   138 -
 krita/kritacolor/kis_composite_op.h                |   103 -
 krita/kritacolor/kis_f16half_base_colorspace.cc    |   125 -
 krita/kritacolor/kis_f16half_base_colorspace.h     |   107 -
 krita/kritacolor/kis_f32_base_colorspace.cc        |   125 -
 krita/kritacolor/kis_f32_base_colorspace.h         |    83 -
 krita/kritacolor/kis_histogram_producer.cc         |    67 -
 krita/kritacolor/kis_histogram_producer.h          |   129 -
 krita/kritacolor/kis_profile.cc                    |   208 -
 krita/kritacolor/kis_profile.h                     |    98 -
 krita/kritacolor/kis_u16_base_colorspace.cc        |   148 -
 krita/kritacolor/kis_u16_base_colorspace.h         |    80 -
 krita/kritacolor/kis_u8_base_colorspace.cc         |   118 -
 krita/kritacolor/kis_u8_base_colorspace.h          |    77 -
 krita/kritacolor/krita_colorspace.desktop          |    38 -
 krita/kritacolor/tests/Makefile.am                 |    16 -
 .../tests/kis_color_conversions_tester.cpp         |   227 -
 .../tests/kis_color_conversions_tester.h           |    44 -
 krita/kritapart.desktop                            |    91 -
 krita/main.cc                                      |    43 -
 krita/pics/Makefile.am                             |    22 -
 krita/pics/deletelayer.png                         |   Bin 376 -> 0 bytes
 krita/pics/height.png                              |   Bin 202 -> 0 bytes
 krita/pics/hi128-app-krita.png                     |   Bin 9549 -> 0 bytes
 krita/pics/hi16-app-krita.png                      |   Bin 638 -> 0 bytes
 krita/pics/hi22-app-krita.png                      |   Bin 930 -> 0 bytes
 krita/pics/hi32-app-krita.png                      |   Bin 1487 -> 0 bytes
 krita/pics/hi48-app-krita.png                      |   Bin 2587 -> 0 bytes
 krita/pics/hi64-app-krita.png                      |   Bin 3836 -> 0 bytes
 krita/pics/krita.svg                               |   509 -
 krita/pics/linked.png                              |   Bin 528 -> 0 bytes
 krita/pics/locked.png                              |   Bin 557 -> 0 bytes
 krita/pics/lowerlayer.png                          |   Bin 363 -> 0 bytes
 krita/pics/newlayer.png                            |   Bin 426 -> 0 bytes
 krita/pics/novisible.png                           |   Bin 721 -> 0 bytes
 krita/pics/raiselayer.png                          |   Bin 344 -> 0 bytes
 krita/pics/shade.png                               |   Bin 235 -> 0 bytes
 krita/pics/tablet.png                              |   Bin 4454 -> 0 bytes
 krita/pics/tool_screenshot.png                     |   Bin 852 -> 0 bytes
 krita/pics/unlinked.png                            |   Bin 363 -> 0 bytes
 krita/pics/unlocked.png                            |   Bin 605 -> 0 bytes
 krita/pics/visible.png                             |   Bin 771 -> 0 bytes
 krita/pics/width.png                               |   Bin 179 -> 0 bytes
 krita/plugins/Makefile.am                          |     5 -
 krita/plugins/README                               |    42 -
 krita/plugins/configure.in.in                      |     2 -
 krita/plugins/filters/Makefile.am                  |     4 -
 krita/plugins/filters/blur/Makefile.am             |    22 -
 krita/plugins/filters/blur/blur.cc                 |    50 -
 krita/plugins/filters/blur/blur.h                  |    37 -
 krita/plugins/filters/blur/kis_blur_filter.cc      |   143 -
 krita/plugins/filters/blur/kis_blur_filter.h       |    49 -
 krita/plugins/filters/blur/kis_wdg_blur.cc         |   116 -
 krita/plugins/filters/blur/kis_wdg_blur.h          |    50 -
 krita/plugins/filters/blur/kritablurfilter.desktop |    38 -
 krita/plugins/filters/blur/wdgblur.ui              |   227 -
 krita/plugins/filters/bumpmap/Makefile.am          |    19 -
 krita/plugins/filters/bumpmap/bumpmap.cc           |   533 -
 krita/plugins/filters/bumpmap/bumpmap.h            |   130 -
 .../filters/bumpmap/kritabumpmapfilter.desktop     |    71 -
 krita/plugins/filters/bumpmap/wdgbumpmap.ui        |   374 -
 krita/plugins/filters/cimg/.kdev_ignore            |     0
 krita/plugins/filters/cimg/CImg.h                  | 19174 -------
 krita/plugins/filters/cimg/Makefile.am             |    35 -
 krita/plugins/filters/cimg/kis_cimg_filter.cc      |   711 -
 krita/plugins/filters/cimg/kis_cimg_filter.h       |   124 -
 krita/plugins/filters/cimg/kis_cimg_plugin.cc      |    44 -
 krita/plugins/filters/cimg/kis_cimg_plugin.h       |    32 -
 .../plugins/filters/cimg/kis_cimgconfig_widget.cc  |    94 -
 krita/plugins/filters/cimg/kis_cimgconfig_widget.h |    50 -
 krita/plugins/filters/cimg/kritacimg.desktop       |    79 -
 krita/plugins/filters/cimg/wdg_cimg.ui             |   298 -
 krita/plugins/filters/colorify/Colorify.cpp        |   122 -
 krita/plugins/filters/colorify/Colorify.h          |    56 -
 krita/plugins/filters/colorify/KisWdgColorify.cpp  |    50 -
 krita/plugins/filters/colorify/KisWdgColorify.h    |    45 -
 krita/plugins/filters/colorify/Makefile.am         |    23 -
 krita/plugins/filters/colorify/WdgColorifyBase.ui  |    97 -
 .../filters/colorify/kritacolorifyfilter.desktop   |    42 -
 krita/plugins/filters/colors/Makefile.am           |    21 -
 krita/plugins/filters/colors/colors.cc             |    53 -
 krita/plugins/filters/colors/colors.h              |    37 -
 krita/plugins/filters/colors/kis_color_to_alpha.cc |    95 -
 krita/plugins/filters/colors/kis_color_to_alpha.h  |    47 -
 krita/plugins/filters/colors/kis_minmax_filters.cc |   162 -
 krita/plugins/filters/colors/kis_minmax_filters.h  |    56 -
 .../filters/colors/kis_wdg_color_to_alpha.cc       |    55 -
 .../filters/colors/kis_wdg_color_to_alpha.h        |    45 -
 .../colors/kritaextensioncolorsfilters.desktop     |    42 -
 .../plugins/filters/colors/wdgcolortoalphabase.ui  |   113 -
 krita/plugins/filters/colorsfilters/Makefile.am    |    26 -
 .../plugins/filters/colorsfilters/colorsfilters.cc |   315 -
 .../plugins/filters/colorsfilters/colorsfilters.h  |    73 -
 .../kis_brightness_contrast_filter.cc              |   347 -
 .../colorsfilters/kis_brightness_contrast_filter.h |    84 -
 .../filters/colorsfilters/kis_perchannel_filter.cc |   421 -
 .../filters/colorsfilters/kis_perchannel_filter.h  |   100 -
 .../colorsfilters/kritacolorsfilter.desktop        |    94 -
 .../colorsfilters/wdg_brightness_contrast.ui       |   292 -
 .../filters/colorsfilters/wdg_perchannel.ui        |   190 -
 .../plugins/filters/convolutionfilters/Makefile.am |    28 -
 .../convolutionfilters/convolutionfilters.cc       |   176 -
 .../convolutionfilters/convolutionfilters.h        |   152 -
 .../convolutionfilters/kis_convolution_filter.cc   |   138 -
 .../convolutionfilters/kis_convolution_filter.h    |    99 -
 .../kis_custom_convolution_filter.cc               |    93 -
 .../kis_custom_convolution_filter.h                |    54 -
 ...convolution_filter_configuration_base_widget.ui |   189 -
 ...stom_convolution_filter_configuration_widget.cc |    83 -
 ...ustom_convolution_filter_configuration_widget.h |    46 -
 .../kritaconvolutionfilters.desktop                |    75 -
 krita/plugins/filters/cubismfilter/Makefile.am     |    24 -
 .../filters/cubismfilter/kis_cubism_filter.cc      |   453 -
 .../filters/cubismfilter/kis_cubism_filter.h       |    78 -
 .../cubismfilter/kis_cubism_filter_plugin.cc       |    42 -
 .../cubismfilter/kis_cubism_filter_plugin.h        |    32 -
 krita/plugins/filters/cubismfilter/kis_polygon.cc  |   102 -
 krita/plugins/filters/cubismfilter/kis_polygon.h   |    37 -
 .../filters/cubismfilter/kritacubismfilter.desktop |    85 -
 krita/plugins/filters/embossfilter/Makefile.am     |    24 -
 .../filters/embossfilter/kis_emboss_filter.cc      |   179 -
 .../filters/embossfilter/kis_emboss_filter.h       |    62 -
 .../embossfilter/kis_emboss_filter_plugin.cc       |    40 -
 .../embossfilter/kis_emboss_filter_plugin.h        |    32 -
 .../filters/embossfilter/kritaembossfilter.desktop |    71 -
 krita/plugins/filters/example/Makefile.am          |    22 -
 krita/plugins/filters/example/example.cc           |    95 -
 krita/plugins/filters/example/example.h            |    47 -
 krita/plugins/filters/example/kritaexample.desktop |    81 -
 .../plugins/filters/fastcolortransfer/Makefile.am  |    23 -
 .../filters/fastcolortransfer/fastcolortransfer.cc |   206 -
 .../filters/fastcolortransfer/fastcolortransfer.h  |    55 -
 .../kis_wdg_fastcolortransfer.cpp                  |    50 -
 .../fastcolortransfer/kis_wdg_fastcolortransfer.h  |    47 -
 .../kritafastcolortransfer.desktop                 |    69 -
 .../fastcolortransfer/wdgfastcolortransfer.ui      |    75 -
 krita/plugins/filters/halftone/kis_halftone.cpp    |   190 -
 krita/plugins/filters/halftone/kis_halftone.h      |    79 -
 krita/plugins/filters/imageenhancement/Makefile.am |    27 -
 .../filters/imageenhancement/imageenhancement.cpp  |    73 -
 .../filters/imageenhancement/imageenhancement.h    |    34 -
 .../imageenhancement/kis_simple_noise_reducer.cpp  |   129 -
 .../imageenhancement/kis_simple_noise_reducer.h    |    59 -
 .../kis_wavelet_noise_reduction.cpp                |   130 -
 .../imageenhancement/kis_wavelet_noise_reduction.h |    68 -
 .../imageenhancement/kritaimageenhancement.desktop |    80 -
 .../filters/lenscorrectionfilter/Makefile.am       |    23 -
 .../kis_wdg_lens_correction.cpp                    |    74 -
 .../lenscorrectionfilter/kis_wdg_lens_correction.h |    44 -
 .../kritalenscorrectionfilter.desktop              |    69 -
 .../lenscorrectionfilter/lenscorrectionfilter.cc   |   152 -
 .../lenscorrectionfilter/lenscorrectionfilter.h    |    53 -
 .../wdglenscorrectionoptions.ui                    |   229 -
 krita/plugins/filters/levelfilter/Makefile.am      |    25 -
 .../plugins/filters/levelfilter/kgradientslider.cc |   338 -
 .../plugins/filters/levelfilter/kgradientslider.h  |    85 -
 .../filters/levelfilter/kis_level_filter.cc        |   324 -
 .../plugins/filters/levelfilter/kis_level_filter.h |    94 -
 .../filters/levelfilter/kritalevelfilter.desktop   |    73 -
 krita/plugins/filters/levelfilter/levelfilter.cc   |    67 -
 krita/plugins/filters/levelfilter/levelfilter.h    |    35 -
 krita/plugins/filters/levelfilter/wdg_level.ui     |   331 -
 krita/plugins/filters/noisefilter/Makefile.am      |    23 -
 .../plugins/filters/noisefilter/kis_wdg_noise.cpp  |    59 -
 krita/plugins/filters/noisefilter/kis_wdg_noise.h  |    44 -
 .../filters/noisefilter/kritanoisefilter.desktop   |    77 -
 krita/plugins/filters/noisefilter/noisefilter.cc   |   128 -
 krita/plugins/filters/noisefilter/noisefilter.h    |    52 -
 .../plugins/filters/noisefilter/wdgnoiseoptions.ui |   111 -
 krita/plugins/filters/oilpaintfilter/Makefile.am   |    24 -
 .../filters/oilpaintfilter/kis_oilpaint_filter.cc  |   256 -
 .../filters/oilpaintfilter/kis_oilpaint_filter.h   |    69 -
 .../oilpaintfilter/kis_oilpaint_filter_plugin.cc   |    43 -
 .../oilpaintfilter/kis_oilpaint_filter_plugin.h    |    32 -
 .../oilpaintfilter/kritaoilpaintfilter.desktop     |    77 -
 krita/plugins/filters/pixelizefilter/Makefile.am   |    24 -
 .../filters/pixelizefilter/kis_pixelize_filter.cc  |   188 -
 .../filters/pixelizefilter/kis_pixelize_filter.h   |    61 -
 .../pixelizefilter/kis_pixelize_filter_plugin.cc   |    43 -
 .../pixelizefilter/kis_pixelize_filter_plugin.h    |    32 -
 .../pixelizefilter/kritapixelizefilter.desktop     |    83 -
 krita/plugins/filters/raindropsfilter/Makefile.am  |    24 -
 .../raindropsfilter/kis_raindrops_filter.cc        |   439 -
 .../filters/raindropsfilter/kis_raindrops_filter.h |    67 -
 .../raindropsfilter/kis_raindrops_filter_plugin.cc |    44 -
 .../raindropsfilter/kis_raindrops_filter_plugin.h  |    33 -
 .../raindropsfilter/kritaraindropsfilter.desktop   |    81 -
 krita/plugins/filters/randompickfilter/Makefile.am |    23 -
 .../randompickfilter/kis_wdg_random_pick.cpp       |    64 -
 .../filters/randompickfilter/kis_wdg_random_pick.h |    44 -
 .../randompickfilter/kritarandompickfilter.desktop |    65 -
 .../filters/randompickfilter/randompickfilter.cc   |   131 -
 .../filters/randompickfilter/randompickfilter.h    |    52 -
 .../randompickfilter/wdgrandompickoptions.ui       |   135 -
 krita/plugins/filters/roundcorners/Makefile.am     |    23 -
 .../roundcorners/kis_round_corners_filter.cc       |   158 -
 .../roundcorners/kis_round_corners_filter.h        |    58 -
 .../kis_round_corners_filter_plugin.cc             |    43 -
 .../roundcorners/kis_round_corners_filter_plugin.h |    32 -
 .../roundcorners/kritaroundcornersfilter.desktop   |    39 -
 krita/plugins/filters/smalltilesfilter/Makefile.am |    23 -
 .../smalltilesfilter/kis_small_tiles_filter.cc     |   187 -
 .../smalltilesfilter/kis_small_tiles_filter.h      |    70 -
 .../kis_small_tiles_filter_plugin.cc               |    43 -
 .../kis_small_tiles_filter_plugin.h                |    32 -
 .../smalltilesfilter/kritasmalltilesfilter.desktop |    39 -
 krita/plugins/filters/sobelfilter/Makefile.am      |    23 -
 .../filters/sobelfilter/kis_sobel_filter.cc        |   217 -
 .../plugins/filters/sobelfilter/kis_sobel_filter.h |    75 -
 .../filters/sobelfilter/kis_sobel_filter_plugin.cc |    43 -
 .../filters/sobelfilter/kis_sobel_filter_plugin.h  |    32 -
 .../filters/sobelfilter/kritasobelfilter.desktop   |    39 -
 krita/plugins/filters/threadtest/Makefile.am       |    18 -
 .../filters/threadtest/kritathreadtest.desktop     |    38 -
 krita/plugins/filters/threadtest/threadtest.cc     |   140 -
 krita/plugins/filters/threadtest/threadtest.h      |    46 -
 krita/plugins/filters/unsharp/Makefile.am          |    20 -
 .../plugins/filters/unsharp/kis_unsharp_filter.cc  |   152 -
 krita/plugins/filters/unsharp/kis_unsharp_filter.h |    47 -
 krita/plugins/filters/unsharp/kis_wdg_unsharp.cc   |    52 -
 krita/plugins/filters/unsharp/kis_wdg_unsharp.h    |    45 -
 .../filters/unsharp/kritaunsharpfilter.desktop     |    40 -
 krita/plugins/filters/unsharp/unsharp.cc           |    50 -
 krita/plugins/filters/unsharp/unsharp.h            |    37 -
 krita/plugins/filters/unsharp/wdgunsharp.ui        |   138 -
 krita/plugins/filters/wavefilter/Makefile.am       |    23 -
 krita/plugins/filters/wavefilter/kis_wdg_wave.cpp  |    90 -
 krita/plugins/filters/wavefilter/kis_wdg_wave.h    |    44 -
 .../filters/wavefilter/kritawavefilter.desktop     |    72 -
 krita/plugins/filters/wavefilter/wavefilter.cc     |   169 -
 krita/plugins/filters/wavefilter/wavefilter.h      |    53 -
 krita/plugins/filters/wavefilter/wdgwaveoptions.ui |   281 -
 krita/plugins/paintops/Makefile.am                 |     2 -
 krita/plugins/paintops/defaultpaintops/Makefile.am |    39 -
 krita/plugins/paintops/defaultpaintops/README      |     3 -
 .../plugins/paintops/defaultpaintops/airbrush.png  |   Bin 1038 -> 0 bytes
 .../defaultpaintops/defaultpaintops_plugin.cc      |    70 -
 .../defaultpaintops/defaultpaintops_plugin.h       |    36 -
 krita/plugins/paintops/defaultpaintops/eraser.png  |   Bin 735 -> 0 bytes
 .../paintops/defaultpaintops/kis_airbrushop.cc     |   150 -
 .../paintops/defaultpaintops/kis_airbrushop.h      |    60 -
 .../paintops/defaultpaintops/kis_brushop.cc        |   284 -
 .../plugins/paintops/defaultpaintops/kis_brushop.h |   113 -
 .../paintops/defaultpaintops/kis_convolveop.cc     |    58 -
 .../paintops/defaultpaintops/kis_convolveop.h      |    56 -
 .../defaultpaintops/kis_dlgbrushcurvecontrol.ui    |   271 -
 .../paintops/defaultpaintops/kis_duplicateop.cc    |   341 -
 .../paintops/defaultpaintops/kis_duplicateop.h     |    62 -
 .../paintops/defaultpaintops/kis_eraseop.cc        |   140 -
 .../plugins/paintops/defaultpaintops/kis_eraseop.h |    56 -
 .../plugins/paintops/defaultpaintops/kis_penop.cc  |   132 -
 krita/plugins/paintops/defaultpaintops/kis_penop.h |    58 -
 .../paintops/defaultpaintops/kis_smudgeop.cc       |   328 -
 .../paintops/defaultpaintops/kis_smudgeop.h        |   118 -
 .../defaultpaintops/kritadefaultpaintops.desktop   |    93 -
 .../paintops/defaultpaintops/paintbrush.png        |   Bin 770 -> 0 bytes
 krita/plugins/paintops/defaultpaintops/pencil.png  |   Bin 794 -> 0 bytes
 krita/plugins/paintops/defaultpaintops/src/README  |     2 -
 .../paintops/defaultpaintops/src/pencil_01.svg     |   637 -
 .../src/pencil_jonathan_dietrich_01.svg            |   434 -
 .../src/pennello_mauro_olivo_01.svg                |   616 -
 krita/plugins/tools/Makefile.am                    |     3 -
 krita/plugins/tools/defaulttools/Makefile.am       |    83 -
 .../tools/defaulttools/closedhand_cursor.xpm       |    28 -
 krita/plugins/tools/defaulttools/default_tools.cc  |    88 -
 krita/plugins/tools/defaulttools/default_tools.h   |    44 -
 krita/plugins/tools/defaulttools/kis_tool_brush.cc |   167 -
 krita/plugins/tools/defaulttools/kis_tool_brush.h  |    87 -
 .../tools/defaulttools/kis_tool_colorpicker.cc     |   298 -
 .../tools/defaulttools/kis_tool_colorpicker.h      |    88 -
 .../tools/defaulttools/kis_tool_duplicate.cc       |   255 -
 .../tools/defaulttools/kis_tool_duplicate.h        |    92 -
 .../plugins/tools/defaulttools/kis_tool_ellipse.cc |   186 -
 .../plugins/tools/defaulttools/kis_tool_ellipse.h  |    91 -
 krita/plugins/tools/defaulttools/kis_tool_fill.cc  |   233 -
 krita/plugins/tools/defaulttools/kis_tool_fill.h   |   109 -
 .../tools/defaulttools/kis_tool_gradient.cc        |   309 -
 .../plugins/tools/defaulttools/kis_tool_gradient.h |   124 -
 krita/plugins/tools/defaulttools/kis_tool_line.cc  |   254 -
 krita/plugins/tools/defaulttools/kis_tool_line.h   |   100 -
 krita/plugins/tools/defaulttools/kis_tool_move.cc  |   181 -
 krita/plugins/tools/defaulttools/kis_tool_move.h   |    89 -
 krita/plugins/tools/defaulttools/kis_tool_pan.cc   |    96 -
 krita/plugins/tools/defaulttools/kis_tool_pan.h    |    80 -
 .../tools/defaulttools/kis_tool_rectangle.cc       |   187 -
 .../tools/defaulttools/kis_tool_rectangle.h        |    96 -
 krita/plugins/tools/defaulttools/kis_tool_text.cc  |   198 -
 krita/plugins/tools/defaulttools/kis_tool_text.h   |    81 -
 krita/plugins/tools/defaulttools/kis_tool_zoom.cc  |   191 -
 krita/plugins/tools/defaulttools/kis_tool_zoom.h   |    98 -
 .../tools/defaulttools/kritadefaulttools.desktop   |    56 -
 .../plugins/tools/defaulttools/openhand_cursor.xpm |    28 -
 .../plugins/tools/defaulttools/tool_color_fill.png |   Bin 1102 -> 0 bytes
 .../tools/defaulttools/tool_colorpicker.png        |   Bin 713 -> 0 bytes
 .../plugins/tools/defaulttools/tool_duplicate.png  |   Bin 1087 -> 0 bytes
 .../tools/defaulttools/tool_duplicate_cursor.png   |   Bin 309 -> 0 bytes
 krita/plugins/tools/defaulttools/tool_ellipse.png  |   Bin 524 -> 0 bytes
 .../tools/defaulttools/tool_ellipse_cursor.png     |   Bin 309 -> 0 bytes
 .../tools/defaulttools/tool_fill_cursor.png        |   Bin 516 -> 0 bytes
 krita/plugins/tools/defaulttools/tool_freehand.png |   Bin 658 -> 0 bytes
 .../tools/defaulttools/tool_freehand_cursor.png    |   Bin 261 -> 0 bytes
 krita/plugins/tools/defaulttools/tool_gradient.png |   Bin 386 -> 0 bytes
 .../tools/defaulttools/tool_gradient_cursor.png    |   Bin 294 -> 0 bytes
 krita/plugins/tools/defaulttools/tool_line.png     |   Bin 354 -> 0 bytes
 .../tools/defaulttools/tool_line_cursor.png        |   Bin 248 -> 0 bytes
 krita/plugins/tools/defaulttools/tool_move.png     |   Bin 664 -> 0 bytes
 krita/plugins/tools/defaulttools/tool_pan.png      |   Bin 863 -> 0 bytes
 .../plugins/tools/defaulttools/tool_rectangle.png  |   Bin 334 -> 0 bytes
 .../tools/defaulttools/tool_rectangle_cursor.png   |   Bin 230 -> 0 bytes
 krita/plugins/tools/defaulttools/tool_text.png     |   Bin 891 -> 0 bytes
 .../tools/defaulttools/tool_text_cursor.png        |   Bin 300 -> 0 bytes
 krita/plugins/tools/defaulttools/tool_zoom.png     |   Bin 877 -> 0 bytes
 .../tools/defaulttools/tool_zoom_minus_cursor.png  |   Bin 283 -> 0 bytes
 .../tools/defaulttools/tool_zoom_plus_cursor.png   |   Bin 302 -> 0 bytes
 krita/plugins/tools/defaulttools/wdgcolorpicker.ui |   167 -
 krita/plugins/tools/selectiontools/Makefile.am     |    56 -
 .../selectiontools/kis_tool_move_selection.cc      |   223 -
 .../tools/selectiontools/kis_tool_move_selection.h |    75 -
 .../tools/selectiontools/kis_tool_select_brush.cc  |   168 -
 .../tools/selectiontools/kis_tool_select_brush.h   |    83 -
 .../selectiontools/kis_tool_select_contiguous.cc   |   234 -
 .../selectiontools/kis_tool_select_contiguous.h    |    95 -
 .../selectiontools/kis_tool_select_elliptical.cc   |   321 -
 .../selectiontools/kis_tool_select_elliptical.h    |    99 -
 .../tools/selectiontools/kis_tool_select_eraser.cc |   156 -
 .../tools/selectiontools/kis_tool_select_eraser.h  |    82 -
 .../selectiontools/kis_tool_select_outline.cc      |   295 -
 .../tools/selectiontools/kis_tool_select_outline.h |   101 -
 .../selectiontools/kis_tool_select_polygonal.cc    |   315 -
 .../selectiontools/kis_tool_select_polygonal.h     |   106 -
 .../selectiontools/kis_tool_select_rectangular.cc  |   323 -
 .../selectiontools/kis_tool_select_rectangular.h   |    95 -
 .../selectiontools/kritaselectiontools.desktop     |    52 -
 .../tools/selectiontools/selection_tools.cc        |    77 -
 .../plugins/tools/selectiontools/selection_tools.h |    44 -
 .../tools/selectiontools/tool_brush_selection.png  |   Bin 1052 -> 0 bytes
 .../tools/selectiontools/tool_brush_selection.svg  |   827 -
 .../selectiontools/tool_brush_selection_cursor.png |   Bin 339 -> 0 bytes
 .../selectiontools/tool_contiguous_selection.png   |   Bin 836 -> 0 bytes
 .../tool_contiguous_selection_cursor.png           |   Bin 321 -> 0 bytes
 .../selectiontools/tool_elliptical_selection.png   |   Bin 703 -> 0 bytes
 .../selectiontools/tool_elliptical_selection.svg   |   256 -
 .../tool_elliptical_selection_cursor.png           |   Bin 296 -> 0 bytes
 .../tools/selectiontools/tool_eraser_selection.png |   Bin 1087 -> 0 bytes
 .../tools/selectiontools/tool_eraser_selection.svg |  1993 -
 .../tool_eraser_selection_cursor.png               |   Bin 341 -> 0 bytes
 .../selectiontools/tool_outline_selection.png      |   Bin 556 -> 0 bytes
 .../selectiontools/tool_outline_selection.svg      |   329 -
 .../tool_outline_selection_cursor.png              |   Bin 359 -> 0 bytes
 .../selectiontools/tool_polygonal_selection.png    |   Bin 576 -> 0 bytes
 .../selectiontools/tool_polygonal_selection.svg    |   364 -
 .../tool_polygonal_selection_cursor.png            |   Bin 433 -> 0 bytes
 .../tools/selectiontools/tool_rect_selection.png   |   Bin 523 -> 0 bytes
 .../tools/selectiontools/tool_rect_selection.svg   |   191 -
 .../tool_rectangular_selection_cursor.png          |   Bin 224 -> 0 bytes
 krita/plugins/tools/tool_crop/Makefile.am          |    37 -
 krita/plugins/tools/tool_crop/kis_tool_crop.cc     |   925 -
 krita/plugins/tools/tool_crop/kis_tool_crop.h      |   149 -
 .../plugins/tools/tool_crop/kritatoolcrop.desktop  |    47 -
 krita/plugins/tools/tool_crop/tool_crop.cc         |    62 -
 krita/plugins/tools/tool_crop/tool_crop.h          |    43 -
 krita/plugins/tools/tool_crop/tool_crop.png        |   Bin 693 -> 0 bytes
 krita/plugins/tools/tool_crop/tool_crop_cursor.png |   Bin 306 -> 0 bytes
 krita/plugins/tools/tool_crop/wdg_tool_crop.ui     |   216 -
 krita/plugins/tools/tool_curves/Makefile.am        |    56 -
 .../tools/tool_curves/kis_curve_framework.cc       |   260 -
 .../tools/tool_curves/kis_curve_framework.h        |   354 -
 krita/plugins/tools/tool_curves/kis_tool_bezier.cc |   366 -
 krita/plugins/tools/tool_curves/kis_tool_bezier.h  |    98 -
 .../tools/tool_curves/kis_tool_bezier_paint.cc     |   115 -
 .../tools/tool_curves/kis_tool_bezier_paint.h      |    63 -
 .../tools/tool_curves/kis_tool_bezier_select.cc    |   104 -
 .../tools/tool_curves/kis_tool_bezier_select.h     |    63 -
 krita/plugins/tools/tool_curves/kis_tool_curve.cc  |   593 -
 krita/plugins/tools/tool_curves/kis_tool_curve.h   |   205 -
 .../plugins/tools/tool_curves/kis_tool_example.cc  |   108 -
 krita/plugins/tools/tool_curves/kis_tool_example.h |    67 -
 .../plugins/tools/tool_curves/kis_tool_moutline.cc |   809 -
 .../plugins/tools/tool_curves/kis_tool_moutline.h  |   132 -
 .../tools/tool_curves/kritatoolcurves.desktop      |    36 -
 .../tools/tool_curves/tool_bezier_cursor.png       |   Bin 2854 -> 0 bytes
 .../tools/tool_curves/tool_bezier_paint.png        |   Bin 680 -> 0 bytes
 .../tools/tool_curves/tool_bezier_select.png       |   Bin 637 -> 0 bytes
 .../tools/tool_curves/tool_curve_dragging.png      |   Bin 2956 -> 0 bytes
 krita/plugins/tools/tool_curves/tool_curves.cc     |    67 -
 krita/plugins/tools/tool_curves/tool_curves.h      |    36 -
 krita/plugins/tools/tool_curves/tool_example.png   |   Bin 2918 -> 0 bytes
 .../tools/tool_curves/tool_example_cursor.png      |   Bin 2854 -> 0 bytes
 krita/plugins/tools/tool_curves/tool_moutline.png  |   Bin 778 -> 0 bytes
 .../tools/tool_curves/tool_moutline_cursor.png     |   Bin 2858 -> 0 bytes
 .../tools/tool_curves/tool_moutline_editing.png    |   Bin 2968 -> 0 bytes
 .../plugins/tools/tool_curves/wdg_tool_example.ui  |   128 -
 krita/plugins/tools/tool_filter/Makefile.am        |    38 -
 krita/plugins/tools/tool_filter/kis_filterop.cc    |   154 -
 krita/plugins/tools/tool_filter/kis_filterop.h     |    63 -
 krita/plugins/tools/tool_filter/kis_tool_filter.cc |   154 -
 krita/plugins/tools/tool_filter/kis_tool_filter.h  |    81 -
 .../tools/tool_filter/kritatoolfilter.desktop      |    92 -
 krita/plugins/tools/tool_filter/tool_filter.cc     |    68 -
 krita/plugins/tools/tool_filter/tool_filter.h      |    43 -
 krita/plugins/tools/tool_filter/tool_filter.png    |   Bin 497 -> 0 bytes
 krita/plugins/tools/tool_filter/tool_filter.svg    |   468 -
 .../tools/tool_filter/tool_filter_cursor.png       |   Bin 295 -> 0 bytes
 .../plugins/tools/tool_perspectivegrid/Makefile.am |    35 -
 .../kis_tool_perspectivegrid.cc                    |   499 -
 .../kis_tool_perspectivegrid.h                     |   111 -
 .../kritatoolperspectivegrid.desktop               |    35 -
 .../tool_perspectivegrid/tool_perspectivegrid.cc   |    62 -
 .../tool_perspectivegrid/tool_perspectivegrid.h    |    43 -
 .../tool_perspectivegrid/tool_perspectivegrid.png  |   Bin 738 -> 0 bytes
 .../tool_perspectivegrid/tool_perspectivegrid.svg  |    87 -
 .../tools/tool_perspectivetransform/Makefile.am    |    35 -
 .../kis_tool_perspectivetransform.cc               |   742 -
 .../kis_tool_perspectivetransform.h                |   131 -
 .../kritatoolperspectivetransform.desktop          |    37 -
 .../tool_perspectivetransform.cc                   |    63 -
 .../tool_perspectivetransform.h                    |    43 -
 .../tool_perspectivetransform.png                  |   Bin 691 -> 0 bytes
 .../tool_perspectivetransform.svg                  |    87 -
 krita/plugins/tools/tool_polygon/Makefile.am       |    36 -
 .../plugins/tools/tool_polygon/kis_tool_polygon.cc |   252 -
 .../plugins/tools/tool_polygon/kis_tool_polygon.h  |   102 -
 .../tools/tool_polygon/kritatoolpolygon.desktop    |    52 -
 krita/plugins/tools/tool_polygon/tool_polygon.cc   |    62 -
 krita/plugins/tools/tool_polygon/tool_polygon.h    |    39 -
 krita/plugins/tools/tool_polygon/tool_polygon.png  |   Bin 773 -> 0 bytes
 .../tools/tool_polygon/tool_polygon_cursor.png     |   Bin 402 -> 0 bytes
 krita/plugins/tools/tool_polyline/Makefile.am      |    36 -
 .../tools/tool_polyline/kis_tool_polyline.cc       |   271 -
 .../tools/tool_polyline/kis_tool_polyline.h        |   109 -
 .../tools/tool_polyline/kritatoolpolyline.desktop  |    49 -
 krita/plugins/tools/tool_polyline/polyline.png     |   Bin 587 -> 0 bytes
 krita/plugins/tools/tool_polyline/tool_polyline.cc |    64 -
 krita/plugins/tools/tool_polyline/tool_polyline.h  |    43 -
 .../tools/tool_polyline/tool_polyline_cursor.png   |   Bin 397 -> 0 bytes
 krita/plugins/tools/tool_selectsimilar/Makefile.am |    32 -
 .../tool_selectsimilar/kis_tool_selectsimilar.cc   |   271 -
 .../tool_selectsimilar/kis_tool_selectsimilar.h    |   102 -
 .../kritatoolselectsimilar.desktop                 |    43 -
 .../tools/tool_selectsimilar/selectsimilar.cc      |    61 -
 .../tools/tool_selectsimilar/selectsimilar.h       |    35 -
 .../tool_selectsimilar/tool_similar_selection.png  |   Bin 724 -> 0 bytes
 .../tool_selectsimilar/tool_similar_selection.svg  |  2118 -
 .../tool_similar_selection_minus_cursor.png        |   Bin 613 -> 0 bytes
 .../tool_similar_selection_plus_cursor.png         |   Bin 630 -> 0 bytes
 krita/plugins/tools/tool_star/Makefile.am          |    37 -
 krita/plugins/tools/tool_star/kis_tool_star.cc     |   245 -
 krita/plugins/tools/tool_star/kis_tool_star.h      |   101 -
 .../plugins/tools/tool_star/kritatoolstar.desktop  |    52 -
 krita/plugins/tools/tool_star/tool_star.cc         |    62 -
 krita/plugins/tools/tool_star/tool_star.h          |    43 -
 krita/plugins/tools/tool_star/tool_star.png        |   Bin 625 -> 0 bytes
 krita/plugins/tools/tool_star/tool_star_cursor.png |   Bin 367 -> 0 bytes
 krita/plugins/tools/tool_star/wdg_tool_star.ui     |   128 -
 krita/plugins/tools/tool_transform/Makefile.am     |    37 -
 .../tools/tool_transform/kis_tool_transform.cc     |   916 -
 .../tools/tool_transform/kis_tool_transform.h      |   155 -
 .../tool_transform/kritatooltransform.desktop      |    46 -
 .../plugins/tools/tool_transform/rotate_cursor.xpm |    29 -
 .../plugins/tools/tool_transform/tool_transform.cc |    64 -
 .../plugins/tools/tool_transform/tool_transform.h  |    43 -
 .../tools/tool_transform/tool_transform.png        |   Bin 458 -> 0 bytes
 .../tools/tool_transform/wdg_tool_transform.ui     |   243 -
 krita/plugins/viewplugins/Makefile.am              |    24 -
 krita/plugins/viewplugins/colorrange/Makefile.am   |    25 -
 krita/plugins/viewplugins/colorrange/colorrange.cc |    82 -
 krita/plugins/viewplugins/colorrange/colorrange.h  |    45 -
 krita/plugins/viewplugins/colorrange/colorrange.rc |    10 -
 .../viewplugins/colorrange/dlg_colorrange.cc       |   351 -
 .../viewplugins/colorrange/dlg_colorrange.h        |   100 -
 .../viewplugins/colorrange/kritacolorrange.desktop |    40 -
 .../viewplugins/colorrange/wdg_colorrange.ui       |   252 -
 .../viewplugins/colorspaceconversion/Makefile.am   |    27 -
 .../colorspaceconversion/colorspaceconversion.cc   |   155 -
 .../colorspaceconversion/colorspaceconversion.h    |    51 -
 .../colorspaceconversion/colorspaceconversion.rc   |    11 -
 .../dlg_colorspaceconversion.cc                    |    91 -
 .../dlg_colorspaceconversion.h                     |    50 -
 .../kritacolorspaceconversion.desktop              |    40 -
 .../colorspaceconversion/wdgconvertcolorspace.ui   |   218 -
 krita/plugins/viewplugins/dropshadow/Makefile.am   |    31 -
 .../viewplugins/dropshadow/dlg_dropshadow.cc       |   117 -
 .../viewplugins/dropshadow/dlg_dropshadow.h        |    60 -
 krita/plugins/viewplugins/dropshadow/dropshadow.rc |    11 -
 .../viewplugins/dropshadow/kis_dropshadow.cc       |   758 -
 .../viewplugins/dropshadow/kis_dropshadow.h        |    72 -
 .../dropshadow/kis_dropshadow_plugin.cc            |    91 -
 .../viewplugins/dropshadow/kis_dropshadow_plugin.h |    46 -
 .../viewplugins/dropshadow/kritadropshadow.desktop |    39 -
 .../viewplugins/dropshadow/wdg_dropshadow.ui       |   235 -
 .../plugins/viewplugins/filtersgallery/Makefile.am |    26 -
 .../viewplugins/filtersgallery/filters_gallery.cc  |   138 -
 .../viewplugins/filtersgallery/filters_gallery.h   |    54 -
 .../filtersgallery/kis_dlg_filtersgallery.cc       |   133 -
 .../filtersgallery/kis_dlg_filtersgallery.h        |    69 -
 .../filtersgallery/kis_wdg_filtersgallery.ui       |   123 -
 .../filtersgallery/kritafiltersgallery.desktop     |    45 -
 .../filtersgallery/kritafiltersgallery.rc          |     9 -
 krita/plugins/viewplugins/histogram/Makefile.am    |    25 -
 .../plugins/viewplugins/histogram/dlg_histogram.cc |    68 -
 .../plugins/viewplugins/histogram/dlg_histogram.h  |    58 -
 krita/plugins/viewplugins/histogram/histogram.cc   |   105 -
 krita/plugins/viewplugins/histogram/histogram.h    |    50 -
 krita/plugins/viewplugins/histogram/histogram.rc   |    10 -
 .../viewplugins/histogram/kis_histogram_widget.cc  |   147 -
 .../viewplugins/histogram/kis_histogram_widget.h   |    55 -
 .../viewplugins/histogram/kritahistogram.desktop   |    43 -
 .../plugins/viewplugins/histogram/wdghistogram.ui  |   229 -
 .../viewplugins/histogram_docker/Makefile.am       |    22 -
 .../histogram_docker/histogramdocker.cc            |   192 -
 .../viewplugins/histogram_docker/histogramdocker.h |    81 -
 .../histogram_docker/kis_accumulating_producer.cc  |   102 -
 .../histogram_docker/kis_accumulating_producer.h   |    77 -
 .../histogram_docker/kis_cachedhistogram.cc        |    37 -
 .../histogram_docker/kis_cachedhistogram.h         |    53 -
 .../histogram_docker/kis_imagerasteredcache.cc     |   162 -
 .../histogram_docker/kis_imagerasteredcache.h      |    81 -
 .../histogram_docker/kritahistogramdocker.desktop  |    40 -
 .../histogram_docker/kritahistogramdocker.rc       |     3 -
 .../plugins/viewplugins/history_docker/Makefile.am |    18 -
 .../viewplugins/history_docker/historydocker.cc    |    58 -
 .../viewplugins/history_docker/historydocker.h     |    34 -
 .../history_docker/kritahistorydocker.desktop      |    73 -
 krita/plugins/viewplugins/imagesize/Makefile.am    |    25 -
 .../plugins/viewplugins/imagesize/configure.in.in  |     1 -
 .../plugins/viewplugins/imagesize/dlg_imagesize.cc |   277 -
 .../plugins/viewplugins/imagesize/dlg_imagesize.h  |    83 -
 .../plugins/viewplugins/imagesize/dlg_layersize.cc |   261 -
 .../plugins/viewplugins/imagesize/dlg_layersize.h  |    74 -
 krita/plugins/viewplugins/imagesize/imagesize.cc   |   190 -
 krita/plugins/viewplugins/imagesize/imagesize.h    |    49 -
 krita/plugins/viewplugins/imagesize/imagesize.rc   |    15 -
 .../viewplugins/imagesize/kritaimagesize.desktop   |    39 -
 .../plugins/viewplugins/imagesize/wdg_imagesize.ui |   365 -
 .../plugins/viewplugins/imagesize/wdg_layersize.ui |   234 -
 .../viewplugins/imagesize/wdg_resolution.ui        |   152 -
 .../viewplugins/modify_selection/Makefile.am       |    27 -
 .../modify_selection/dlg_border_selection.cc       |    76 -
 .../modify_selection/dlg_border_selection.h        |    49 -
 .../modify_selection/dlg_grow_selection.cc         |    76 -
 .../modify_selection/dlg_grow_selection.h          |    49 -
 .../modify_selection/dlg_shrink_selection.cc       |    81 -
 .../modify_selection/dlg_shrink_selection.h        |    50 -
 .../modify_selection/kritamodifyselection.desktop  |    40 -
 .../modify_selection/modify_selection.cc           |   158 -
 .../modify_selection/modify_selection.h            |    47 -
 .../modify_selection/modify_selection.rc           |    10 -
 .../modify_selection/wdg_border_selection.ui       |    57 -
 .../modify_selection/wdg_grow_selection.ui         |    57 -
 .../modify_selection/wdg_shrink_selection.ui       |    68 -
 .../viewplugins/performancetest/Makefile.am        |    25 -
 .../viewplugins/performancetest/dlg_perftest.cc    |   110 -
 .../viewplugins/performancetest/dlg_perftest.h     |    56 -
 .../performancetest/kritaperftest.desktop          |    41 -
 .../viewplugins/performancetest/perftest.cc        |  1198 -
 .../plugins/viewplugins/performancetest/perftest.h |    76 -
 .../viewplugins/performancetest/perftest.rc        |     9 -
 .../viewplugins/performancetest/wdg_perftest.ui    |   283 -
 krita/plugins/viewplugins/rotateimage/Makefile.am  |    25 -
 .../viewplugins/rotateimage/dlg_rotateimage.cc     |   147 -
 .../viewplugins/rotateimage/dlg_rotateimage.h      |    66 -
 .../rotateimage/kritarotateimage.desktop           |    40 -
 .../plugins/viewplugins/rotateimage/rotateimage.cc |   134 -
 .../plugins/viewplugins/rotateimage/rotateimage.h  |    50 -
 .../plugins/viewplugins/rotateimage/rotateimage.rc |    25 -
 .../viewplugins/rotateimage/wdg_rotateimage.ui     |   245 -
 krita/plugins/viewplugins/screenshot/Makefile.am   |    27 -
 .../viewplugins/screenshot/kritascreenshot.desktop |    47 -
 krita/plugins/viewplugins/screenshot/ksnapshot.cpp |   499 -
 krita/plugins/viewplugins/screenshot/ksnapshot.h   |   137 -
 .../viewplugins/screenshot/ksnapshotwidget.ui      |   335 -
 .../viewplugins/screenshot/ksnapshotwidget.ui.h    |   118 -
 krita/plugins/viewplugins/screenshot/main.cpp      |    38 -
 .../viewplugins/screenshot/regiongrabber.cpp       |   170 -
 .../plugins/viewplugins/screenshot/regiongrabber.h |    72 -
 .../screenshot/screenshot-kpresenter.rc            |     9 -
 .../viewplugins/screenshot/screenshot-krita.rc     |     9 -
 .../viewplugins/screenshot/screenshot-kword.rc     |     9 -
 .../plugins/viewplugins/screenshot/screenshot.cpp  |    78 -
 krita/plugins/viewplugins/screenshot/screenshot.h  |    43 -
 krita/plugins/viewplugins/scripting/Makefile.am    |    29 -
 .../viewplugins/scripting/kritacore/Makefile.am    |    30 -
 .../scripting/kritacore/kritacoremodule.cpp        |   288 -
 .../scripting/kritacore/kritacoremodule.h          |   205 -
 .../viewplugins/scripting/kritacore/krs_brush.cpp  |    41 -
 .../viewplugins/scripting/kritacore/krs_brush.h    |    48 -
 .../viewplugins/scripting/kritacore/krs_color.cpp  |    42 -
 .../viewplugins/scripting/kritacore/krs_color.h    |    49 -
 .../viewplugins/scripting/kritacore/krs_doc.cpp    |    46 -
 .../viewplugins/scripting/kritacore/krs_doc.h      |    53 -
 .../viewplugins/scripting/kritacore/krs_filter.cpp |    76 -
 .../viewplugins/scripting/kritacore/krs_filter.h   |    76 -
 .../kritacore/krs_filter_configuration.cpp         |    72 -
 .../scripting/kritacore/krs_filter_configuration.h |    65 -
 .../scripting/kritacore/krs_histogram.cpp          |   104 -
 .../scripting/kritacore/krs_histogram.h            |   115 -
 .../viewplugins/scripting/kritacore/krs_image.cpp  |   148 -
 .../viewplugins/scripting/kritacore/krs_image.h    |    94 -
 .../viewplugins/scripting/kritacore/krs_iterator.h |   307 -
 .../scripting/kritacore/krs_paint_layer.cpp        |   207 -
 .../scripting/kritacore/krs_paint_layer.h          |   140 -
 .../scripting/kritacore/krs_painter.cpp            |   358 -
 .../viewplugins/scripting/kritacore/krs_painter.h  |   242 -
 .../scripting/kritacore/krs_pattern.cpp            |    39 -
 .../viewplugins/scripting/kritacore/krs_pattern.h  |    48 -
 .../scripting/kritacore/krs_script_progress.cpp    |    67 -
 .../scripting/kritacore/krs_script_progress.h      |    77 -
 .../scripting/kritacore/krs_wavelet.cpp            |   114 -
 .../viewplugins/scripting/kritacore/krs_wavelet.h  |    92 -
 .../viewplugins/scripting/kritascripting.desktop   |    81 -
 .../scripting/kritascripting/Makefile.am           |    19 -
 .../kritascripting/kis_script_monitor.cpp          |    51 -
 .../scripting/kritascripting/kis_script_monitor.h  |    51 -
 .../kritascripting/kis_script_progress.cpp         |    64 -
 .../scripting/kritascripting/kis_script_progress.h |    54 -
 .../viewplugins/scripting/samples/Makefile.am      |     3 -
 .../scripting/samples/python/Makefile.am           |     5 -
 .../viewplugins/scripting/samples/python/invert.py |    48 -
 .../scripting/samples/python/invertpython.rc       |     9 -
 .../scripting/samples/python/reshapehisto.py       |   300 -
 .../scripting/samples/python/reshapehisto.rc       |     9 -
 .../viewplugins/scripting/samples/ruby/Makefile.am |    18 -
 .../viewplugins/scripting/samples/ruby/changecs.rb |     5 -
 .../viewplugins/scripting/samples/ruby/changecs.rc |     9 -
 .../scripting/samples/ruby/filterstest.rb          |    31 -
 .../scripting/samples/ruby/filterstest.rc          |     9 -
 .../viewplugins/scripting/samples/ruby/invert.rb   |    45 -
 .../scripting/samples/ruby/invertruby.rc           |     9 -
 .../scripting/samples/ruby/randompaint.rb          |    98 -
 .../scripting/samples/ruby/randompaint.rc          |     9 -
 .../scripting/samples/ruby/torture-filters.rb      |    70 -
 .../scripting/samples/ruby/torture-filters.rc      |     9 -
 .../scripting/samples/ruby/torture-painting.rb     |   133 -
 .../scripting/samples/ruby/torture-painting.rc     |     9 -
 krita/plugins/viewplugins/scripting/scripting.cc   |   111 -
 krita/plugins/viewplugins/scripting/scripting.h    |    54 -
 krita/plugins/viewplugins/scripting/scripting.rc   |    10 -
 krita/plugins/viewplugins/selectopaque/Makefile.am |    25 -
 .../selectopaque/kritaselectopaque.desktop         |    26 -
 .../viewplugins/selectopaque/selectopaque.cc       |   116 -
 .../viewplugins/selectopaque/selectopaque.h        |    45 -
 .../viewplugins/selectopaque/selectopaque.rc       |    10 -
 .../viewplugins/separate_channels/Makefile.am      |    27 -
 .../viewplugins/separate_channels/dlg_separate.cc  |   110 -
 .../viewplugins/separate_channels/dlg_separate.h   |    68 -
 .../viewplugins/separate_channels/imageseparate.rc |     9 -
 .../separate_channels/kis_channel_separator.cc     |   301 -
 .../separate_channels/kis_channel_separator.h      |    70 -
 .../kis_separate_channels_plugin.cc                |    96 -
 .../kis_separate_channels_plugin.h                 |    46 -
 .../kritaseparatechannels.desktop                  |    42 -
 .../separate_channels/wdg_separations.ui           |   182 -
 krita/plugins/viewplugins/shearimage/Makefile.am   |    25 -
 .../viewplugins/shearimage/dlg_shearimage.cc       |    96 -
 .../viewplugins/shearimage/dlg_shearimage.h        |    55 -
 .../viewplugins/shearimage/kritashearimage.desktop |    37 -
 krita/plugins/viewplugins/shearimage/shearimage.cc |   113 -
 krita/plugins/viewplugins/shearimage/shearimage.h  |    47 -
 krita/plugins/viewplugins/shearimage/shearimage.rc |    13 -
 .../viewplugins/shearimage/wdg_shearimage.ui       |   102 -
 krita/plugins/viewplugins/substrate/Makefile.am    |    26 -
 .../plugins/viewplugins/substrate/dlg_substrate.cc |    59 -
 .../plugins/viewplugins/substrate/dlg_substrate.h  |    62 -
 .../substrate/kis_repeating_substrate.cc           |     0
 .../substrate/kis_repeating_substrate.h            |    69 -
 .../viewplugins/substrate/kritasubstrate.desktop   |    35 -
 krita/plugins/viewplugins/substrate/substrate.cc   |    78 -
 krita/plugins/viewplugins/substrate/substrate.h    |    45 -
 krita/plugins/viewplugins/substrate/substrate.rc   |     8 -
 .../plugins/viewplugins/substrate/wdgsubstrate.ui  |   221 -
 krita/plugins/viewplugins/variations/Makefile.am   |    26 -
 .../viewplugins/variations/dlg_variations.cc       |    58 -
 .../viewplugins/variations/dlg_variations.h        |    62 -
 .../viewplugins/variations/kritavariations.desktop |    40 -
 krita/plugins/viewplugins/variations/variations.cc |    88 -
 krita/plugins/viewplugins/variations/variations.h  |    45 -
 krita/plugins/viewplugins/variations/variations.rc |     8 -
 .../viewplugins/variations/wdg_variations.ui       |   897 -
 krita/sdk/Makefile.am                              |    23 -
 krita/sdk/kis_annotation.h                         |    89 -
 krita/sdk/kis_canvas_controller.h                  |   200 -
 krita/sdk/kis_canvas_observer.h                    |    55 -
 krita/sdk/kis_canvas_subject.h                     |   192 -
 krita/sdk/kis_debug_areas.h                        |    34 -
 krita/sdk/kis_generic_registry.h                   |   166 -
 krita/sdk/kis_global.h                             |    83 -
 krita/sdk/kis_id.h                                 |   108 -
 krita/sdk/kis_integer_maths.h                      |   111 -
 krita/sdk/kis_progress_display_interface.h         |    76 -
 krita/sdk/kis_progress_subject.cc                  |    29 -
 krita/sdk/kis_progress_subject.h                   |    45 -
 krita/sdk/kis_shared_ptr_vector.h                  |    70 -
 krita/sdk/kis_undo_adapter.h                       |    67 -
 krita/todo-1.6                                     |    74 -
 krita/ui/Makefile.am                               |    75 -
 krita/ui/imageviewer.cc                            |    78 -
 krita/ui/imageviewer.h                             |    53 -
 krita/ui/kcurve.cc                                 |   450 -
 krita/ui/kcurve.h                                  |    80 -
 krita/ui/kis_aboutdata.h                           |    68 -
 krita/ui/kis_autobrush.cc                          |   177 -
 krita/ui/kis_autobrush.h                           |    56 -
 krita/ui/kis_autogradient.cc                       |   147 -
 krita/ui/kis_autogradient.h                        |    53 -
 krita/ui/kis_birdeye_box.cc                        |   311 -
 krita/ui/kis_birdeye_box.h                         |    69 -
 krita/ui/kis_boundary_painter.cc                   |    81 -
 krita/ui/kis_boundary_painter.h                    |    33 -
 krita/ui/kis_brush_chooser.cc                      |   102 -
 krita/ui/kis_brush_chooser.h                       |    52 -
 krita/ui/kis_button_event.h                        |    45 -
 krita/ui/kis_button_press_event.h                  |    31 -
 krita/ui/kis_button_release_event.h                |    31 -
 krita/ui/kis_canvas.cc                             |  1355 -
 krita/ui/kis_canvas.h                              |   383 -
 krita/ui/kis_canvas_painter.cc                     |  1440 -
 krita/ui/kis_canvas_painter.h                      |   356 -
 krita/ui/kis_clipboard.cc                          |   287 -
 krita/ui/kis_clipboard.h                           |    80 -
 krita/ui/kis_cmb_composite.cc                      |    88 -
 krita/ui/kis_cmb_composite.h                       |    71 -
 krita/ui/kis_cmb_idlist.cc                         |    97 -
 krita/ui/kis_cmb_idlist.h                          |    68 -
 krita/ui/kis_color_cup.cc                          |   118 -
 krita/ui/kis_color_cup.h                           |    96 -
 krita/ui/kis_config.cc                             |   442 -
 krita/ui/kis_config.h                              |   143 -
 krita/ui/kis_controlframe.cc                       |   343 -
 krita/ui/kis_controlframe.h                        |   130 -
 krita/ui/kis_cursor.cc                             |   374 -
 krita/ui/kis_cursor.h                              |    73 -
 krita/ui/kis_custom_brush.cc                       |   158 -
 krita/ui/kis_custom_brush.h                        |    63 -
 krita/ui/kis_custom_image_widget.cc                |   110 -
 krita/ui/kis_custom_image_widget.h                 |    58 -
 krita/ui/kis_custom_palette.cc                     |   151 -
 krita/ui/kis_custom_palette.h                      |    62 -
 krita/ui/kis_custom_pattern.cc                     |   118 -
 krita/ui/kis_custom_pattern.h                      |    61 -
 krita/ui/kis_dlg_adj_layer_props.cc                |   168 -
 krita/ui/kis_dlg_adj_layer_props.h                 |    81 -
 krita/ui/kis_dlg_adjustment_layer.cc               |   193 -
 krita/ui/kis_dlg_adjustment_layer.h                |    86 -
 krita/ui/kis_dlg_apply_profile.cc                  |    96 -
 krita/ui/kis_dlg_apply_profile.h                   |    49 -
 krita/ui/kis_dlg_image_properties.cc               |   173 -
 krita/ui/kis_dlg_image_properties.h                |    62 -
 krita/ui/kis_dlg_layer_properties.cc               |   106 -
 krita/ui/kis_dlg_layer_properties.h                |    54 -
 krita/ui/kis_dlg_new_layer.cc                      |   159 -
 krita/ui/kis_dlg_new_layer.h                       |    61 -
 krita/ui/kis_dlg_preferences.cc                    |   821 -
 krita/ui/kis_dlg_preferences.h                     |   277 -
 krita/ui/kis_doc.cc                                |  1171 -
 krita/ui/kis_doc.h                                 |   224 -
 krita/ui/kis_doc_iface.cc                          |    67 -
 krita/ui/kis_doc_iface.h                           |    50 -
 krita/ui/kis_double_click_event.h                  |    31 -
 krita/ui/kis_double_widget.cc                      |   147 -
 krita/ui/kis_double_widget.h                       |    78 -
 krita/ui/kis_event.h                               |    62 -
 krita/ui/kis_factory.cc                            |   153 -
 krita/ui/kis_factory.h                             |    59 -
 krita/ui/kis_filter_manager.cc                     |   408 -
 krita/ui/kis_filter_manager.h                      |    87 -
 krita/ui/kis_filters_listview.cc                   |   250 -
 krita/ui/kis_filters_listview.h                    |   143 -
 krita/ui/kis_gradient_chooser.cc                   |    77 -
 krita/ui/kis_gradient_chooser.h                    |    63 -
 krita/ui/kis_gradient_slider_widget.cc             |   219 -
 krita/ui/kis_gradient_slider_widget.h              |    80 -
 krita/ui/kis_grid_drawer.cpp                       |   223 -
 krita/ui/kis_grid_drawer.h                         |    71 -
 krita/ui/kis_grid_manager.cpp                      |   156 -
 krita/ui/kis_grid_manager.h                        |    65 -
 krita/ui/kis_histogram_view.cc                     |   354 -
 krita/ui/kis_histogram_view.h                      |   104 -
 krita/ui/kis_icon_item.cc                          |   116 -
 krita/ui/kis_icon_item.h                           |    48 -
 krita/ui/kis_iconwidget.cc                         |    80 -
 krita/ui/kis_iconwidget.h                          |    50 -
 krita/ui/kis_import_catcher.cc                     |    80 -
 krita/ui/kis_import_catcher.h                      |    58 -
 krita/ui/kis_input_device.cc                       |   101 -
 krita/ui/kis_input_device.h                        |    86 -
 krita/ui/kis_int_spinbox.cc                        |   198 -
 krita/ui/kis_int_spinbox.h                         |   200 -
 krita/ui/kis_itemchooser.cc                        |    81 -
 krita/ui/kis_itemchooser.h                         |    65 -
 krita/ui/kis_label_cursor_pos.cc                   |    53 -
 krita/ui/kis_label_cursor_pos.h                    |    43 -
 krita/ui/kis_label_progress.cc                     |   214 -
 krita/ui/kis_label_progress.h                      |    66 -
 krita/ui/kis_label_zoom.cc                         |    21 -
 krita/ui/kis_label_zoom.h                          |    34 -
 krita/ui/kis_layerbox.cc                           |   675 -
 krita/ui/kis_layerbox.h                            |   124 -
 krita/ui/kis_layerlist.cc                          |   220 -
 krita/ui/kis_layerlist.h                           |    80 -
 krita/ui/kis_load_visitor.h                        |   187 -
 krita/ui/kis_matrix_widget.ui                      |   210 -
 krita/ui/kis_matrix_widget.ui.h                    |    17 -
 krita/ui/kis_move_event.h                          |    31 -
 krita/ui/kis_multi_bool_filter_widget.cc           |    68 -
 krita/ui/kis_multi_bool_filter_widget.h            |    56 -
 krita/ui/kis_multi_double_filter_widget.cc         |   103 -
 krita/ui/kis_multi_double_filter_widget.h          |    79 -
 krita/ui/kis_multi_integer_filter_widget.cc        |   104 -
 krita/ui/kis_multi_integer_filter_widget.h         |    83 -
 krita/ui/kis_opengl_canvas.cc                      |   127 -
 krita/ui/kis_opengl_canvas.h                       |    72 -
 krita/ui/kis_opengl_canvas_painter.cc              |   849 -
 krita/ui/kis_opengl_canvas_painter.h               |   212 -
 krita/ui/kis_opengl_image_context.cc               |   371 -
 krita/ui/kis_opengl_image_context.h                |   157 -
 krita/ui/kis_paintop_box.cc                        |   249 -
 krita/ui/kis_paintop_box.h                         |   104 -
 krita/ui/kis_palette_view.cc                       |   150 -
 krita/ui/kis_palette_view.h                        |    70 -
 krita/ui/kis_palette_widget.cc                     |   162 -
 krita/ui/kis_palette_widget.h                      |    80 -
 krita/ui/kis_part_layer.cc                         |   260 -
 krita/ui/kis_part_layer.h                          |   148 -
 krita/ui/kis_part_layer_handler.cc                 |    94 -
 krita/ui/kis_part_layer_handler.h                  |    58 -
 krita/ui/kis_pattern_chooser.cc                    |    57 -
 krita/ui/kis_pattern_chooser.h                     |    42 -
 krita/ui/kis_perspective_grid_manager.cpp          |   159 -
 krita/ui/kis_perspective_grid_manager.h            |    55 -
 krita/ui/kis_populate_visitor.h                    |   117 -
 krita/ui/kis_previewdialog.cc                      |    46 -
 krita/ui/kis_previewdialog.h                       |    45 -
 krita/ui/kis_previewwidget.cc                      |   409 -
 krita/ui/kis_previewwidget.h                       |   141 -
 krita/ui/kis_previewwidgetbase.ui                  |   271 -
 krita/ui/kis_qpaintdevice_canvas.cc                |   120 -
 krita/ui/kis_qpaintdevice_canvas.h                 |    67 -
 krita/ui/kis_qpaintdevice_canvas_painter.cc        |   647 -
 krita/ui/kis_qpaintdevice_canvas_painter.h         |   189 -
 krita/ui/kis_resource_mediator.cc                  |   117 -
 krita/ui/kis_resource_mediator.h                   |    73 -
 krita/ui/kis_resourceserver.cc                     |   199 -
 krita/ui/kis_resourceserver.h                      |    91 -
 krita/ui/kis_ruler.cc                              |   367 -
 krita/ui/kis_ruler.h                               |    81 -
 krita/ui/kis_save_visitor.h                        |   171 -
 krita/ui/kis_savexml_visitor.h                     |   144 -
 krita/ui/kis_selection_manager.cc                  |  1643 -
 krita/ui/kis_selection_manager.h                   |   137 -
 krita/ui/kis_selection_options.cc                  |    70 -
 krita/ui/kis_selection_options.h                   |    57 -
 krita/ui/kis_text_brush.cc                         |    74 -
 krita/ui/kis_text_brush.h                          |    71 -
 krita/ui/kis_tool.cc                               |    69 -
 krita/ui/kis_tool.h                                |   144 -
 krita/ui/kis_tool_controller.h                     |    39 -
 krita/ui/kis_tool_dummy.cc                         |   111 -
 krita/ui/kis_tool_dummy.h                          |    85 -
 krita/ui/kis_tool_factory.h                        |    41 -
 krita/ui/kis_tool_freehand.cc                      |   354 -
 krita/ui/kis_tool_freehand.h                       |   103 -
 krita/ui/kis_tool_manager.cc                       |   303 -
 krita/ui/kis_tool_manager.h                        |   103 -
 krita/ui/kis_tool_non_paint.cc                     |   115 -
 krita/ui/kis_tool_non_paint.h                      |    85 -
 krita/ui/kis_tool_paint.cc                         |   260 -
 krita/ui/kis_tool_paint.h                          |   119 -
 krita/ui/kis_tool_registry.cc                      |   111 -
 krita/ui/kis_tool_registry.h                       |    60 -
 krita/ui/kis_tool_shape.cc                         |    67 -
 krita/ui/kis_tool_shape.h                          |    53 -
 krita/ui/kis_tool_types.h                          |    34 -
 krita/ui/kis_view.cc                               |  4018 --
 krita/ui/kis_view.h                                |   664 -
 krita/ui/kis_view_iface.cc                         |    98 -
 krita/ui/kis_view_iface.h                          |    58 -
 krita/ui/kobirdeyepanel.cpp                        |   619 -
 krita/ui/kobirdeyepanel.h                          |   263 -
 krita/ui/layerlist.cpp                             |  1325 -
 krita/ui/layerlist.h                               |   269 -
 krita/ui/squeezedcombobox.cpp                      |   167 -
 krita/ui/squeezedcombobox.h                        |   137 -
 krita/ui/wdgapplyprofile.ui                        |   172 -
 krita/ui/wdgautobrush.ui                           |   355 -
 krita/ui/wdgautogradient.ui                        |   399 -
 krita/ui/wdgbirdeye.ui                             |   304 -
 krita/ui/wdgcolorsettings.ui                       |   357 -
 krita/ui/wdgcustombrush.ui                         |   199 -
 krita/ui/wdgcustompalette.ui                       |    88 -
 krita/ui/wdgcustompattern.ui                       |   156 -
 krita/ui/wdgdisplaysettings.ui                     |    90 -
 krita/ui/wdggeneralsettings.ui                     |   183 -
 krita/ui/wdggridsettings.ui                        |   468 -
 krita/ui/wdglayerbox.ui                            |   299 -
 krita/ui/wdglayerproperties.ui                     |   170 -
 krita/ui/wdgnewimage.ui                            |   435 -
 krita/ui/wdgpalettechooser.ui                      |   105 -
 krita/ui/wdgperformancesettings.ui                 |   146 -
 krita/ui/wdgpressuresettings.ui                    |    66 -
 krita/ui/wdgselectionoptions.ui                    |    64 -
 krita/ui/wdgshapeoptions.ui                        |    98 -
 krita/ui/wdgtabletdevicesettings.ui                |   193 -
 krita/ui/wdgtabletsettings.ui                      |   104 -
 krita/ui/wdgtextbrush.ui                           |   158 -
 plugins/scan/scan-krita.rc                         |     9 -
 tools/quickprint/krita_konqi.desktop               |    63 -
 1990 files changed, 388943 deletions(-)
 delete mode 100644 doc/krita/Makefile.am
 delete mode 100644 doc/krita/README.SCREENSHOTS
 delete mode 100644 doc/krita/commands-dialogs.docbook
 delete mode 100644 doc/krita/commands-menus.docbook
 delete mode 100644 doc/krita/commands-palettes.docbook
 delete mode 100644 doc/krita/commands-toolbars.docbook
 delete mode 100644 doc/krita/commands.docbook
 delete mode 100644 doc/krita/createdocument.png
 delete mode 100644 doc/krita/credits.docbook
 delete mode 100644 doc/krita/crocusses-autocontrast.png
 delete mode 100644 doc/krita/crocusses-blur.png
 delete mode 100644 doc/krita/crocusses-brightnesscontrast.png
 delete mode 100644 doc/krita/crocusses-bumpmap.png
 delete mode 100644 doc/krita/crocusses-coloradjustment.png
 delete mode 100644 doc/krita/crocusses-colortoalpha.png
 delete mode 100644 doc/krita/crocusses-colortransfer.png
 delete mode 100644 doc/krita/crocusses-customconvolution.png
 delete mode 100644 doc/krita/crocusses-desaturate.png
 delete mode 100644 doc/krita/crocusses-edgebottom.png
 delete mode 100644 doc/krita/crocusses-edgeleft.png
 delete mode 100644 doc/krita/crocusses-edgeright.png
 delete mode 100644 doc/krita/crocusses-embossall.png
 delete mode 100644 doc/krita/crocusses-embosshorvert.png
 delete mode 100644 doc/krita/crocusses-embossvariable.png
 delete mode 100644 doc/krita/crocusses-gaussianblur.png
 delete mode 100644 doc/krita/crocusses-gaussiannoise.png
 delete mode 100644 doc/krita/crocusses-invert.png
 delete mode 100644 doc/krita/crocusses-lenscorrection.png
 delete mode 100644 doc/krita/crocusses-maximizechannel.png
 delete mode 100644 doc/krita/crocusses-meanremoval.png
 delete mode 100644 doc/krita/crocusses-minimizechannel.png
 delete mode 100644 doc/krita/crocusses-oilpaint.png
 delete mode 100644 doc/krita/crocusses-pixelize.png
 delete mode 100644 doc/krita/crocusses-raindrops.png
 delete mode 100644 doc/krita/crocusses-randomnoise.png
 delete mode 100644 doc/krita/crocusses-randompick.png
 delete mode 100644 doc/krita/crocusses-roundcorners.png
 delete mode 100644 doc/krita/crocusses-sharpen.png
 delete mode 100644 doc/krita/crocusses-smalltiles.png
 delete mode 100644 doc/krita/crocusses-sobel.png
 delete mode 100644 doc/krita/crocusses-topedge.png
 delete mode 100644 doc/krita/crocusses-unsharpmask.png
 delete mode 100644 doc/krita/crocusses-wave.png
 delete mode 100644 doc/krita/crocusses-waveletnoise.png
 delete mode 100644 doc/krita/crocusses.png
 delete mode 100644 doc/krita/developers-plugins.docbook
 delete mode 100644 doc/krita/developers-scripting.docbook
 delete mode 100644 doc/krita/developers.docbook
 delete mode 100644 doc/krita/dialogs-addpalette.png
 delete mode 100644 doc/krita/dialogs-blur.png
 delete mode 100644 doc/krita/dialogs-brightnesscontrast.png
 delete mode 100644 doc/krita/dialogs-bumpmap.png
 delete mode 100644 doc/krita/dialogs-coloradjustment.png
 delete mode 100644 doc/krita/dialogs-colorrange.png
 delete mode 100644 doc/krita/dialogs-colortoalpha.png
 delete mode 100644 doc/krita/dialogs-colortransfer.png
 delete mode 100644 doc/krita/dialogs-convertimagetype.png
 delete mode 100644 doc/krita/dialogs-convertlayertype.png
 delete mode 100644 doc/krita/dialogs-cubism.png
 delete mode 100644 doc/krita/dialogs-customconvolution.png
 delete mode 100644 doc/krita/dialogs-documentinformation.png
 delete mode 100644 doc/krita/dialogs-dropshadow.png
 delete mode 100644 doc/krita/dialogs-emboss.png
 delete mode 100644 doc/krita/dialogs-filtersgallery.png
 delete mode 100644 doc/krita/dialogs-gaussiannoise.png
 delete mode 100644 doc/krita/dialogs-histogram.png
 delete mode 100644 doc/krita/dialogs-imageproperties.png
 delete mode 100644 doc/krita/dialogs-imagerestoration.png
 delete mode 100644 doc/krita/dialogs-imagesize.png
 delete mode 100644 doc/krita/dialogs-layerproperties.png
 delete mode 100644 doc/krita/dialogs-layersize.png
 delete mode 100644 doc/krita/dialogs-lenscorrection.png
 delete mode 100644 doc/krita/dialogs-newadjustmentlayer.png
 delete mode 100644 doc/krita/dialogs-newlayer.png
 delete mode 100644 doc/krita/dialogs-oilpaint.png
 delete mode 100644 doc/krita/dialogs-pixelize.png
 delete mode 100644 doc/krita/dialogs-raindrops.png
 delete mode 100644 doc/krita/dialogs-randomnoise.png
 delete mode 100644 doc/krita/dialogs-randompick.png
 delete mode 100644 doc/krita/dialogs-rotateimage.png
 delete mode 100644 doc/krita/dialogs-rotatelayer.png
 delete mode 100644 doc/krita/dialogs-roundcorners.png
 delete mode 100644 doc/krita/dialogs-separateimage.png
 delete mode 100644 doc/krita/dialogs-shearimage.png
 delete mode 100644 doc/krita/dialogs-shearlayer.png
 delete mode 100644 doc/krita/dialogs-smalltiles.png
 delete mode 100644 doc/krita/dialogs-sobel.png
 delete mode 100644 doc/krita/dialogs-substrate.png
 delete mode 100644 doc/krita/dialogs-unsharpmask.png
 delete mode 100644 doc/krita/dialogs-wave.png
 delete mode 100644 doc/krita/dialogs-waveletnoise.png
 delete mode 100644 doc/krita/faq.docbook
 delete mode 100644 doc/krita/index.docbook
 delete mode 100644 doc/krita/installation.docbook
 delete mode 100644 doc/krita/introduction.docbook
 delete mode 100644 doc/krita/mainscreen.png
 delete mode 100644 doc/krita/mountains-burn.png
 delete mode 100644 doc/krita/mountains-color.png
 delete mode 100644 doc/krita/mountains-darken.png
 delete mode 100644 doc/krita/mountains-divide.png
 delete mode 100644 doc/krita/mountains-dodge.png
 delete mode 100644 doc/krita/mountains-hue.png
 delete mode 100644 doc/krita/mountains-lighten.png
 delete mode 100644 doc/krita/mountains-multiply.png
 delete mode 100644 doc/krita/mountains-normal.png
 delete mode 100644 doc/krita/mountains-original.png
 delete mode 100644 doc/krita/mountains-overlay.png
 delete mode 100644 doc/krita/mountains-saturation.png
 delete mode 100644 doc/krita/mountains-screen.png
 delete mode 100644 doc/krita/mountains-value.png
 delete mode 100644 doc/krita/mountains.png
 delete mode 100644 doc/krita/newimage.png
 delete mode 100644 doc/krita/palettes-colors-gray.png
 delete mode 100644 doc/krita/palettes-colors-hsv.png
 delete mode 100644 doc/krita/palettes-colors-palettes.png
 delete mode 100644 doc/krita/palettes-colors-rgb.png
 delete mode 100644 doc/krita/palettes-colors-watercolors.png
 delete mode 100644 doc/krita/palettes-controlbox-bezier.png
 delete mode 100644 doc/krita/palettes-controlbox-brush.png
 delete mode 100644 doc/krita/palettes-controlbox-colorpicker.png
 delete mode 100644 doc/krita/palettes-controlbox-contiguousfill.png
 delete mode 100644 doc/krita/palettes-controlbox-crop.png
 delete mode 100644 doc/krita/palettes-controlbox-duplicate.png
 delete mode 100644 doc/krita/palettes-controlbox-ellipse.png
 delete mode 100644 doc/krita/palettes-controlbox-fill.png
 delete mode 100644 doc/krita/palettes-controlbox-gradient.png
 delete mode 100644 doc/krita/palettes-controlbox-histogram.png
 delete mode 100644 doc/krita/palettes-controlbox-line.png
 delete mode 100644 doc/krita/palettes-controlbox-overview.png
 delete mode 100644 doc/krita/palettes-controlbox-paintwithfilters.png
 delete mode 100644 doc/krita/palettes-controlbox-polygon.png
 delete mode 100644 doc/krita/palettes-controlbox-polyline.png
 delete mode 100644 doc/krita/palettes-controlbox-rectangle.png
 delete mode 100644 doc/krita/palettes-controlbox-select.png
 delete mode 100644 doc/krita/palettes-controlbox-selectcontiguous.png
 delete mode 100644 doc/krita/palettes-controlbox-selectmagnetic.png
 delete mode 100644 doc/krita/palettes-controlbox-selectsimilar.png
 delete mode 100644 doc/krita/palettes-controlbox-star.png
 delete mode 100644 doc/krita/palettes-controlbox-text.png
 delete mode 100644 doc/krita/palettes-controlbox-transform.png
 delete mode 100644 doc/krita/palettes-layers-layers.png
 delete mode 100644 doc/krita/palettes-layers-scriptsmanager.png
 delete mode 100644 doc/krita/preferences-color.png
 delete mode 100644 doc/krita/preferences-display.png
 delete mode 100644 doc/krita/preferences-general.png
 delete mode 100644 doc/krita/preferences-grid.png
 delete mode 100644 doc/krita/preferences-performance.png
 delete mode 100644 doc/krita/preferences-sidebar.png
 delete mode 100644 doc/krita/preferences-tablet.png
 delete mode 100644 doc/krita/settings.docbook
 delete mode 100644 doc/krita/tool-bezier-example.png
 delete mode 100644 doc/krita/tool-bezier-example2.png
 delete mode 100644 doc/krita/tool-bezier-example3.png
 delete mode 100644 doc/krita/tool-bezier.png
 delete mode 100644 doc/krita/tool-brush.png
 delete mode 100644 doc/krita/tool-colorpicker.png
 delete mode 100644 doc/krita/tool-contiguousfill.png
 delete mode 100644 doc/krita/tool-crop.png
 delete mode 100644 doc/krita/tool-duplicate.png
 delete mode 100644 doc/krita/tool-ellipse.png
 delete mode 100644 doc/krita/tool-eraseselection.png
 delete mode 100644 doc/krita/tool-gradient.png
 delete mode 100644 doc/krita/tool-line.png
 delete mode 100644 doc/krita/tool-move.png
 delete mode 100644 doc/krita/tool-paintselection.png
 delete mode 100644 doc/krita/tool-paintwithfilters-example.png
 delete mode 100644 doc/krita/tool-paintwithfilters.png
 delete mode 100644 doc/krita/tool-pan.png
 delete mode 100644 doc/krita/tool-perspectivegrid.png
 delete mode 100644 doc/krita/tool-perspectivetransform.png
 delete mode 100644 doc/krita/tool-polygon.png
 delete mode 100644 doc/krita/tool-polyline.png
 delete mode 100644 doc/krita/tool-rectangle.png
 delete mode 100644 doc/krita/tool-selectbezier.png
 delete mode 100644 doc/krita/tool-selectcontiguous.png
 delete mode 100644 doc/krita/tool-selectelliptical.png
 delete mode 100644 doc/krita/tool-selectmagnetic.png
 delete mode 100644 doc/krita/tool-selectoutline.png
 delete mode 100644 doc/krita/tool-selectpolygonal.png
 delete mode 100644 doc/krita/tool-selectrectangular.png
 delete mode 100644 doc/krita/tool-selectsimilar.png
 delete mode 100644 doc/krita/tool-star.png
 delete mode 100644 doc/krita/tool-text.png
 delete mode 100644 doc/krita/tool-transform.png
 delete mode 100644 doc/krita/tool-zoom.png
 delete mode 100644 doc/krita/toolbar-brushes-brushshapes-autobrush.png
 delete mode 100644 doc/krita/toolbar-brushes-brushshapes-custombrush.png
 delete mode 100644 doc/krita/toolbar-brushes-brushshapes-predefined.png
 delete mode 100644 doc/krita/toolbar-brushes-gradients.png
 delete mode 100644 doc/krita/toolbar-brushes-patterns-custompattern.png
 delete mode 100644 doc/krita/toolbar-brushes-patterns.png
 delete mode 100644 doc/krita/toolbar-brushesandstuff.png
 delete mode 100644 doc/krita/toolbar-edit.png
 delete mode 100644 doc/krita/toolbar-file.png
 delete mode 100644 doc/krita/toolbar-krita.png
 delete mode 100644 doc/krita/toolbar-navigation.png
 delete mode 100644 doc/krita/toolbar-transformationtools.png
 delete mode 100644 doc/krita/toolbars-button-zoomin.png
 delete mode 100644 doc/krita/toolbars-button-zoomout.png
 delete mode 100644 doc/krita/tutorial-quick-starts.docbook
 delete mode 100644 doc/krita/tutorial-quick-starts1.png
 delete mode 100644 doc/krita/tutorial-quick-starts10.png
 delete mode 100644 doc/krita/tutorial-quick-starts11.png
 delete mode 100644 doc/krita/tutorial-quick-starts12.png
 delete mode 100644 doc/krita/tutorial-quick-starts2.png
 delete mode 100644 doc/krita/tutorial-quick-starts3.png
 delete mode 100644 doc/krita/tutorial-quick-starts4.png
 delete mode 100644 doc/krita/tutorial-quick-starts5.png
 delete mode 100644 doc/krita/tutorial-quick-starts6.png
 delete mode 100644 doc/krita/tutorial-quick-starts7.png
 delete mode 100644 doc/krita/tutorial-quick-starts8.png
 delete mode 100644 doc/krita/tutorial-quick-starts9.png
 delete mode 100644 doc/krita/tutorial-select-layer-1.png
 delete mode 100644 doc/krita/tutorial-select-layer-10.png
 delete mode 100644 doc/krita/tutorial-select-layer-11.png
 delete mode 100644 doc/krita/tutorial-select-layer-12.png
 delete mode 100644 doc/krita/tutorial-select-layer-13.png
 delete mode 100644 doc/krita/tutorial-select-layer-2.png
 delete mode 100644 doc/krita/tutorial-select-layer-3.png
 delete mode 100644 doc/krita/tutorial-select-layer-4.png
 delete mode 100644 doc/krita/tutorial-select-layer-5.png
 delete mode 100644 doc/krita/tutorial-select-layer-6.png
 delete mode 100644 doc/krita/tutorial-select-layer-7.png
 delete mode 100644 doc/krita/tutorial-select-layer-8.png
 delete mode 100644 doc/krita/tutorial-select-layer-9.png
 delete mode 100644 doc/krita/tutorial-select-layer-sample.png
 delete mode 100644 doc/krita/tutorial-select-layer.docbook
 delete mode 100644 doc/krita/tutorial-starting.docbook
 delete mode 100644 doc/krita/tutorial-tablet-1.png
 delete mode 100644 doc/krita/tutorial-tablet-2.png
 delete mode 100644 doc/krita/tutorial-tablet-3.png
 delete mode 100644 doc/krita/tutorial-tablet.docbook
 delete mode 100644 doc/krita/tutorial.docbook
 delete mode 100644 doc/krita/using-colorspaces.docbook
 delete mode 100644 doc/krita/using-filters.docbook
 delete mode 100644 doc/krita/using-images.docbook
 delete mode 100644 doc/krita/using-layers.docbook
 delete mode 100644 doc/krita/using-selections-1.png
 delete mode 100644 doc/krita/using-selections-2.png
 delete mode 100644 doc/krita/using-selections-3.png
 delete mode 100644 doc/krita/using-selections-4.png
 delete mode 100644 doc/krita/using-selections-5.png
 delete mode 100644 doc/krita/using-selections-6.png
 delete mode 100644 doc/krita/using-selections.docbook
 delete mode 100644 doc/krita/using-views.docbook
 delete mode 100644 filters/krita/Makefile.am
 delete mode 100644 filters/krita/configure.in.in
 delete mode 100644 filters/krita/gmagick/Makefile.am
 delete mode 100644 filters/krita/gmagick/configure.in.bot
 delete mode 100644 filters/krita/gmagick/kis_image_magick_converter.cc
 delete mode 100644 filters/krita/gmagick/kis_image_magick_converter.h
 delete mode 100644 filters/krita/gmagick/krita_magick.desktop
 delete mode 100644 filters/krita/gmagick/krita_magick_export.desktop
 delete mode 100644 filters/krita/gmagick/krita_magick_import.desktop
 delete mode 100644 filters/krita/gmagick/magickexport.cpp
 delete mode 100644 filters/krita/gmagick/magickexport.h
 delete mode 100644 filters/krita/gmagick/magickimport.cpp
 delete mode 100644 filters/krita/gmagick/magickimport.h
 delete mode 100644 filters/krita/jpeg/Makefile.am
 delete mode 100644 filters/krita/jpeg/configure.in.bot
 delete mode 100644 filters/krita/jpeg/iccjpeg.c
 delete mode 100644 filters/krita/jpeg/iccjpeg.h
 delete mode 100644 filters/krita/jpeg/kis_jpeg_converter.cc
 delete mode 100644 filters/krita/jpeg/kis_jpeg_converter.h
 delete mode 100644 filters/krita/jpeg/kis_jpeg_export.cc
 delete mode 100644 filters/krita/jpeg/kis_jpeg_export.h
 delete mode 100644 filters/krita/jpeg/kis_jpeg_import.cc
 delete mode 100644 filters/krita/jpeg/kis_jpeg_import.h
 delete mode 100644 filters/krita/jpeg/kis_wdg_options_jpeg.ui
 delete mode 100644 filters/krita/jpeg/krita_jpeg.desktop
 delete mode 100644 filters/krita/jpeg/krita_jpeg_export.desktop
 delete mode 100644 filters/krita/jpeg/krita_jpeg_import.desktop
 delete mode 100644 filters/krita/libkisexif/Makefile.am
 delete mode 100644 filters/krita/libkisexif/kis_exif_io.cpp
 delete mode 100644 filters/krita/libkisexif/kis_exif_io.h
 delete mode 100644 filters/krita/magick/Makefile.am
 delete mode 100644 filters/krita/magick/configure.in.bot
 delete mode 100644 filters/krita/magick/kis_image_magick_converter.cc
 delete mode 100644 filters/krita/magick/kis_image_magick_converter.h
 delete mode 100644 filters/krita/magick/krita_magick.desktop
 delete mode 100644 filters/krita/magick/krita_magick_export.desktop
 delete mode 100644 filters/krita/magick/krita_magick_import.desktop
 delete mode 100644 filters/krita/magick/magickexport.cpp
 delete mode 100644 filters/krita/magick/magickexport.h
 delete mode 100644 filters/krita/magick/magickimport.cpp
 delete mode 100644 filters/krita/magick/magickimport.h
 delete mode 100644 filters/krita/openexr/Makefile.am
 delete mode 100644 filters/krita/openexr/configure.in.bot
 delete mode 100644 filters/krita/openexr/kis_openexr_export.cpp
 delete mode 100644 filters/krita/openexr/kis_openexr_export.h
 delete mode 100644 filters/krita/openexr/kis_openexr_import.cpp
 delete mode 100644 filters/krita/openexr/kis_openexr_import.h
 delete mode 100644 filters/krita/openexr/krita_openexr.desktop
 delete mode 100644 filters/krita/openexr/krita_openexr_export.desktop
 delete mode 100644 filters/krita/openexr/krita_openexr_import.desktop
 delete mode 100644 filters/krita/pdf/Makefile.am
 delete mode 100644 filters/krita/pdf/configure.in.bot
 delete mode 100644 filters/krita/pdf/configure.in.in
 delete mode 100644 filters/krita/pdf/kis_pdf_import.cpp
 delete mode 100644 filters/krita/pdf/kis_pdf_import.h
 delete mode 100644 filters/krita/pdf/kis_pdf_import_widget.cpp
 delete mode 100644 filters/krita/pdf/kis_pdf_import_widget.h
 delete mode 100644 filters/krita/pdf/krita_pdf.desktop
 delete mode 100644 filters/krita/pdf/krita_pdf_import.desktop
 delete mode 100644 filters/krita/pdf/pdfimportwidgetbase.ui
 delete mode 100644 filters/krita/png/Makefile.am
 delete mode 100644 filters/krita/png/configure.in.bot
 delete mode 100644 filters/krita/png/kis_png_converter.cc
 delete mode 100644 filters/krita/png/kis_png_converter.h
 delete mode 100644 filters/krita/png/kis_png_export.cc
 delete mode 100644 filters/krita/png/kis_png_export.h
 delete mode 100644 filters/krita/png/kis_png_import.cc
 delete mode 100644 filters/krita/png/kis_png_import.h
 delete mode 100644 filters/krita/png/kis_wdg_options_png.ui
 delete mode 100644 filters/krita/png/krita_png.desktop
 delete mode 100644 filters/krita/png/krita_png_export.desktop
 delete mode 100644 filters/krita/png/krita_png_import.desktop
 delete mode 100644 filters/krita/raw/Makefile.am
 delete mode 100644 filters/krita/raw/dcraw.1
 delete mode 100644 filters/krita/raw/dcraw.c
 delete mode 100644 filters/krita/raw/kis_raw_import.cpp
 delete mode 100644 filters/krita/raw/kis_raw_import.h
 delete mode 100644 filters/krita/raw/krita_raw.desktop
 delete mode 100644 filters/krita/raw/krita_raw_import.desktop
 delete mode 100644 filters/krita/raw/wdgrawimport.ui
 delete mode 100644 filters/krita/tiff/Makefile.am
 delete mode 100644 filters/krita/tiff/configure.in.bot
 delete mode 100644 filters/krita/tiff/kis_dlg_options_tiff.cpp
 delete mode 100644 filters/krita/tiff/kis_dlg_options_tiff.h
 delete mode 100644 filters/krita/tiff/kis_tiff_converter.cc
 delete mode 100644 filters/krita/tiff/kis_tiff_converter.h
 delete mode 100644 filters/krita/tiff/kis_tiff_export.cc
 delete mode 100644 filters/krita/tiff/kis_tiff_export.h
 delete mode 100644 filters/krita/tiff/kis_tiff_import.cc
 delete mode 100644 filters/krita/tiff/kis_tiff_import.h
 delete mode 100644 filters/krita/tiff/kis_tiff_reader.cc
 delete mode 100644 filters/krita/tiff/kis_tiff_reader.h
 delete mode 100644 filters/krita/tiff/kis_tiff_stream.cc
 delete mode 100644 filters/krita/tiff/kis_tiff_stream.h
 delete mode 100644 filters/krita/tiff/kis_tiff_writer_visitor.cpp
 delete mode 100644 filters/krita/tiff/kis_tiff_writer_visitor.h
 delete mode 100644 filters/krita/tiff/kis_tiff_ycbcr_reader.cc
 delete mode 100644 filters/krita/tiff/kis_tiff_ycbcr_reader.h
 delete mode 100644 filters/krita/tiff/kis_wdg_options_tiff.ui
 delete mode 100644 filters/krita/tiff/kis_ycbcr_colorspace.h
 delete mode 100644 filters/krita/tiff/krita_tiff.desktop
 delete mode 100644 filters/krita/tiff/krita_tiff_export.desktop
 delete mode 100644 filters/krita/tiff/krita_tiff_import.desktop
 delete mode 100644 filters/krita/xcf/Makefile.am
 delete mode 100644 filters/krita/xcf/krita_xcf_export.desktop
 delete mode 100644 filters/krita/xcf/krita_xcf_import.desktop
 delete mode 100644 filters/krita/xcf/xcf/README
 delete mode 100644 filters/krita/xcf/xcf/xcf-load.cc
 delete mode 100644 filters/krita/xcf/xcf/xcf-load.h
 delete mode 100644 filters/krita/xcf/xcf/xcf-private.h
 delete mode 100644 filters/krita/xcf/xcf/xcf-read.cc
 delete mode 100644 filters/krita/xcf/xcf/xcf-read.h
 delete mode 100644 filters/krita/xcf/xcf/xcf-save.cc
 delete mode 100644 filters/krita/xcf/xcf/xcf-save.h
 delete mode 100644 filters/krita/xcf/xcf/xcf-seek.cc
 delete mode 100644 filters/krita/xcf/xcf/xcf-seek.h
 delete mode 100644 filters/krita/xcf/xcf/xcf-write.cc
 delete mode 100644 filters/krita/xcf/xcf/xcf-write.h
 delete mode 100644 filters/krita/xcf/xcfexport.cpp
 delete mode 100644 filters/krita/xcf/xcfexport.h
 delete mode 100644 filters/krita/xcf/xcfimport.cpp
 delete mode 100644 filters/krita/xcf/xcfimport.h
 delete mode 100644 krita/AUTHORS
 delete mode 100644 krita/ChangeLog
 delete mode 100644 krita/HACKING
 delete mode 100644 krita/IMAGE_LIBRARIES
 delete mode 100644 krita/Makefile.am
 delete mode 100644 krita/README
 delete mode 100644 krita/TODO
 delete mode 100644 krita/UIcomments
 delete mode 100644 krita/colorspaces/Makefile.am
 delete mode 100644 krita/colorspaces/README
 delete mode 100644 krita/colorspaces/cmyk_u16/Makefile.am
 delete mode 100644 krita/colorspaces/cmyk_u16/cmyk_u16_plugin.cc
 delete mode 100644 krita/colorspaces/cmyk_u16/cmyk_u16_plugin.h
 delete mode 100644 krita/colorspaces/cmyk_u16/kis_cmyk_u16_colorspace.cc
 delete mode 100644 krita/colorspaces/cmyk_u16/kis_cmyk_u16_colorspace.h
 delete mode 100644 krita/colorspaces/cmyk_u16/krita_cmyk_u16_plugin.desktop
 delete mode 100644 krita/colorspaces/cmyk_u8/Makefile.am
 delete mode 100644 krita/colorspaces/cmyk_u8/cmyk_plugin.cc
 delete mode 100644 krita/colorspaces/cmyk_u8/cmyk_plugin.h
 delete mode 100644 krita/colorspaces/cmyk_u8/cmykplugin.rc
 delete mode 100644 krita/colorspaces/cmyk_u8/composite.h
 delete mode 100644 krita/colorspaces/cmyk_u8/kis_cmyk_colorspace.cc
 delete mode 100644 krita/colorspaces/cmyk_u8/kis_cmyk_colorspace.h
 delete mode 100644 krita/colorspaces/cmyk_u8/kritacmykplugin.desktop
 delete mode 100644 krita/colorspaces/cmyk_u8/templates/.directory
 delete mode 100644 krita/colorspaces/cmyk_u8/templates/Makefile.am
 delete mode 100644 krita/colorspaces/cmyk_u8/templates/cr48-action-template_cmyk_empty.png
 delete mode 100644 krita/colorspaces/cmyk_u8/templates/crsc-action-template_cmyk_empty.svgz
 delete mode 100644 krita/colorspaces/cmyk_u8/templates/white_2000x800.desktop
 delete mode 100644 krita/colorspaces/cmyk_u8/templates/white_2000x800.kra
 delete mode 100644 krita/colorspaces/gray_u16/Makefile.am
 delete mode 100644 krita/colorspaces/gray_u16/gray_u16_plugin.cc
 delete mode 100644 krita/colorspaces/gray_u16/gray_u16_plugin.h
 delete mode 100644 krita/colorspaces/gray_u16/kis_gray_u16_colorspace.cc
 delete mode 100644 krita/colorspaces/gray_u16/kis_gray_u16_colorspace.h
 delete mode 100644 krita/colorspaces/gray_u16/krita_gray_u16_plugin.desktop
 delete mode 100644 krita/colorspaces/gray_u8/Makefile.am
 delete mode 100644 krita/colorspaces/gray_u8/gray_plugin.cc
 delete mode 100644 krita/colorspaces/gray_u8/gray_plugin.h
 delete mode 100644 krita/colorspaces/gray_u8/grayplugin.rc
 delete mode 100644 krita/colorspaces/gray_u8/kis_gray_colorspace.cc
 delete mode 100644 krita/colorspaces/gray_u8/kis_gray_colorspace.h
 delete mode 100644 krita/colorspaces/gray_u8/kritagrayplugin.desktop
 delete mode 100644 krita/colorspaces/gray_u8/templates/.directory
 delete mode 100644 krita/colorspaces/gray_u8/templates/Makefile.am
 delete mode 100644 krita/colorspaces/gray_u8/templates/cr48-action-template_gray_empty.png
 delete mode 100644 krita/colorspaces/gray_u8/templates/crsc-action-template_gray_empty.svgz
 delete mode 100644 krita/colorspaces/gray_u8/templates/white_640x480.desktop
 delete mode 100644 krita/colorspaces/gray_u8/templates/white_640x480.kra
 delete mode 100644 krita/colorspaces/gray_u8/tests/Makefile.am
 delete mode 100644 krita/colorspaces/gray_u8/tests/kis_strategy_colorspace_grayscale_tester.cpp
 delete mode 100644 krita/colorspaces/gray_u8/tests/kis_strategy_colorspace_grayscale_tester.h
 delete mode 100644 krita/colorspaces/lms_f32/Makefile.am
 delete mode 100644 krita/colorspaces/lms_f32/kis_lms_f32_colorspace.cc
 delete mode 100644 krita/colorspaces/lms_f32/kis_lms_f32_colorspace.h
 delete mode 100644 krita/colorspaces/lms_f32/krita_lms_f32_plugin.desktop
 delete mode 100644 krita/colorspaces/lms_f32/lms_f32_plugin.cc
 delete mode 100644 krita/colorspaces/lms_f32/lms_f32_plugin.h
 delete mode 100644 krita/colorspaces/lms_f32/lms_f32_plugin.rc
 delete mode 100644 krita/colorspaces/rgb_f16half/Makefile.am
 delete mode 100644 krita/colorspaces/rgb_f16half/kis_rgb_f16half_colorspace.cc
 delete mode 100644 krita/colorspaces/rgb_f16half/kis_rgb_f16half_colorspace.h
 delete mode 100644 krita/colorspaces/rgb_f16half/krita_rgb_f16half_plugin.desktop
 delete mode 100644 krita/colorspaces/rgb_f16half/rgb_f16half_plugin.cc
 delete mode 100644 krita/colorspaces/rgb_f16half/rgb_f16half_plugin.h
 delete mode 100644 krita/colorspaces/rgb_f16half/rgb_f16half_plugin.rc
 delete mode 100644 krita/colorspaces/rgb_f16half/tests/Makefile.am
 delete mode 100644 krita/colorspaces/rgb_f16half/tests/kis_rgb_f16half_colorspace_tester.cc
 delete mode 100644 krita/colorspaces/rgb_f16half/tests/kis_rgb_f16half_colorspace_tester.h
 delete mode 100644 krita/colorspaces/rgb_f32/Makefile.am
 delete mode 100644 krita/colorspaces/rgb_f32/kis_rgb_f32_colorspace.cc
 delete mode 100644 krita/colorspaces/rgb_f32/kis_rgb_f32_colorspace.h
 delete mode 100644 krita/colorspaces/rgb_f32/krita_rgb_f32_plugin.desktop
 delete mode 100644 krita/colorspaces/rgb_f32/rgb_f32_plugin.cc
 delete mode 100644 krita/colorspaces/rgb_f32/rgb_f32_plugin.h
 delete mode 100644 krita/colorspaces/rgb_f32/rgb_f32_plugin.rc
 delete mode 100644 krita/colorspaces/rgb_f32/tests/Makefile.am
 delete mode 100644 krita/colorspaces/rgb_f32/tests/kis_strategy_colorspace_rgb_f32_tester.cc
 delete mode 100644 krita/colorspaces/rgb_f32/tests/kis_strategy_colorspace_rgb_f32_tester.h
 delete mode 100644 krita/colorspaces/rgb_u16/Makefile.am
 delete mode 100644 krita/colorspaces/rgb_u16/kis_rgb_u16_colorspace.cc
 delete mode 100644 krita/colorspaces/rgb_u16/kis_rgb_u16_colorspace.h
 delete mode 100644 krita/colorspaces/rgb_u16/krita_rgb_u16_plugin.desktop
 delete mode 100644 krita/colorspaces/rgb_u16/rgb_u16_plugin.cc
 delete mode 100644 krita/colorspaces/rgb_u16/rgb_u16_plugin.h
 delete mode 100644 krita/colorspaces/rgb_u16/tests/Makefile.am
 delete mode 100644 krita/colorspaces/rgb_u16/tests/kis_strategy_colorspace_rgb_u16_tester.cc
 delete mode 100644 krita/colorspaces/rgb_u16/tests/kis_strategy_colorspace_rgb_u16_tester.h
 delete mode 100644 krita/colorspaces/rgb_u8/Makefile.am
 delete mode 100644 krita/colorspaces/rgb_u8/composite.h
 delete mode 100644 krita/colorspaces/rgb_u8/kis_rgb_colorspace.cc
 delete mode 100644 krita/colorspaces/rgb_u8/kis_rgb_colorspace.h
 delete mode 100644 krita/colorspaces/rgb_u8/kritargbplugin.desktop
 delete mode 100644 krita/colorspaces/rgb_u8/rgb_plugin.cc
 delete mode 100644 krita/colorspaces/rgb_u8/rgb_plugin.h
 delete mode 100644 krita/colorspaces/rgb_u8/rgbplugin.rc
 delete mode 100644 krita/colorspaces/rgb_u8/templates/.directory
 delete mode 100644 krita/colorspaces/rgb_u8/templates/Makefile.am
 delete mode 100644 krita/colorspaces/rgb_u8/templates/cr48-action-template_rgb_empty.png
 delete mode 100644 krita/colorspaces/rgb_u8/templates/crsc-action-template_rgb_empty.svgz
 delete mode 100644 krita/colorspaces/rgb_u8/templates/transparent_1024x768.desktop
 delete mode 100644 krita/colorspaces/rgb_u8/templates/transparent_1024x768.kra
 delete mode 100644 krita/colorspaces/rgb_u8/templates/transparent_1280x1024.desktop
 delete mode 100644 krita/colorspaces/rgb_u8/templates/transparent_1280x1024.kra
 delete mode 100644 krita/colorspaces/rgb_u8/templates/transparent_1600x1200.desktop
 delete mode 100644 krita/colorspaces/rgb_u8/templates/transparent_1600x1200.kra
 delete mode 100644 krita/colorspaces/rgb_u8/templates/transparent_640x480.desktop
 delete mode 100644 krita/colorspaces/rgb_u8/templates/transparent_640x480.kra
 delete mode 100644 krita/colorspaces/rgb_u8/templates/white_1024x768.desktop
 delete mode 100644 krita/colorspaces/rgb_u8/templates/white_1024x768.kra
 delete mode 100644 krita/colorspaces/rgb_u8/templates/white_1280x1024.desktop
 delete mode 100644 krita/colorspaces/rgb_u8/templates/white_1280x1024.kra
 delete mode 100644 krita/colorspaces/rgb_u8/templates/white_1600x1200.desktop
 delete mode 100644 krita/colorspaces/rgb_u8/templates/white_1600x1200.kra
 delete mode 100644 krita/colorspaces/rgb_u8/templates/white_640x480.desktop
 delete mode 100644 krita/colorspaces/rgb_u8/templates/white_640x480.kra
 delete mode 100644 krita/colorspaces/rgb_u8/tests/Makefile.am
 delete mode 100644 krita/colorspaces/rgb_u8/tests/kis_strategy_colorspace_rgb_tester.cpp
 delete mode 100644 krita/colorspaces/rgb_u8/tests/kis_strategy_colorspace_rgb_tester.h
 delete mode 100644 krita/colorspaces/wet/Makefile.am
 delete mode 100644 krita/colorspaces/wet/kis_texture_filter.cc
 delete mode 100644 krita/colorspaces/wet/kis_texture_filter.h
 delete mode 100644 krita/colorspaces/wet/kis_texture_painter.cc
 delete mode 100644 krita/colorspaces/wet/kis_texture_painter.h
 delete mode 100644 krita/colorspaces/wet/kis_wet_colorspace.cc
 delete mode 100644 krita/colorspaces/wet/kis_wet_colorspace.h
 delete mode 100644 krita/colorspaces/wet/kis_wet_palette_widget.cc
 delete mode 100644 krita/colorspaces/wet/kis_wet_palette_widget.h
 delete mode 100644 krita/colorspaces/wet/kis_wetness_visualisation_filter.cc
 delete mode 100644 krita/colorspaces/wet/kis_wetness_visualisation_filter.h
 delete mode 100644 krita/colorspaces/wet/kis_wetop.cc
 delete mode 100644 krita/colorspaces/wet/kis_wetop.h
 delete mode 100644 krita/colorspaces/wet/kritawetplugin.desktop
 delete mode 100644 krita/colorspaces/wet/todo
 delete mode 100644 krita/colorspaces/wet/wdgpressure.ui
 delete mode 100644 krita/colorspaces/wet/wet_plugin.cc
 delete mode 100644 krita/colorspaces/wet/wet_plugin.h
 delete mode 100644 krita/colorspaces/wet/wetdreams/Makefile
 delete mode 100644 krita/colorspaces/wet/wetdreams/wetmain.c
 delete mode 100644 krita/colorspaces/wet/wetdreams/wetpaint.c
 delete mode 100644 krita/colorspaces/wet/wetdreams/wetpaint.h
 delete mode 100644 krita/colorspaces/wet/wetdreams/wetphysics.c
 delete mode 100644 krita/colorspaces/wet/wetdreams/wetphysics.h
 delete mode 100644 krita/colorspaces/wet/wetdreams/wetpix.c
 delete mode 100644 krita/colorspaces/wet/wetdreams/wetpix.h
 delete mode 100644 krita/colorspaces/wet/wetdreams/wettexture.c
 delete mode 100644 krita/colorspaces/wet/wetdreams/wettexture.h
 delete mode 100644 krita/colorspaces/wet/wetphysicsfilter.cc
 delete mode 100644 krita/colorspaces/wet/wetphysicsfilter.h
 delete mode 100644 krita/colorspaces/wet/wetplugin.rc
 delete mode 100644 krita/colorspaces/wetsticky/Makefile.am
 delete mode 100644 krita/colorspaces/wetsticky/README
 delete mode 100644 krita/colorspaces/wetsticky/TODO
 delete mode 100644 krita/colorspaces/wetsticky/brushop/Makefile.am
 delete mode 100644 krita/colorspaces/wetsticky/brushop/README
 delete mode 100644 krita/colorspaces/wetsticky/brushop/kis_wsbrushop.cc
 delete mode 100644 krita/colorspaces/wetsticky/brushop/kis_wsbrushop.h
 delete mode 100644 krita/colorspaces/wetsticky/brushop/kritawsbrushpaintop.desktop
 delete mode 100644 krita/colorspaces/wetsticky/brushop/wetpaintbrush.png
 delete mode 100644 krita/colorspaces/wetsticky/brushop/wsbrushpaintop_plugin.cc
 delete mode 100644 krita/colorspaces/wetsticky/brushop/wsbrushpaintop_plugin.h
 delete mode 100644 krita/colorspaces/wetsticky/kis_wet_sticky_colorspace.cc
 delete mode 100644 krita/colorspaces/wetsticky/kis_wet_sticky_colorspace.h
 delete mode 100644 krita/colorspaces/wetsticky/kis_ws_engine_filter.cc
 delete mode 100644 krita/colorspaces/wetsticky/kis_ws_engine_filter.h
 delete mode 100644 krita/colorspaces/wetsticky/kritawsplugin.desktop
 delete mode 100644 krita/colorspaces/wetsticky/wet_sticky_plugin.cc
 delete mode 100644 krita/colorspaces/wetsticky/wet_sticky_plugin.h
 delete mode 100644 krita/colorspaces/wetsticky/ws/GNU
 delete mode 100644 krita/colorspaces/wetsticky/ws/GNU Public Licence.txt
 delete mode 100644 krita/colorspaces/wetsticky/ws/README
 delete mode 100644 krita/colorspaces/wetsticky/ws/TODO
 delete mode 100644 krita/colorspaces/wetsticky/ws/after.jpg
 delete mode 100644 krita/colorspaces/wetsticky/ws/anim.c
 delete mode 100644 krita/colorspaces/wetsticky/ws/before.jpg
 delete mode 100644 krita/colorspaces/wetsticky/ws/canvas.c
 delete mode 100644 krita/colorspaces/wetsticky/ws/canvas.h
 delete mode 100644 krita/colorspaces/wetsticky/ws/cmap.c
 delete mode 100644 krita/colorspaces/wetsticky/ws/constants.h
 delete mode 100644 krita/colorspaces/wetsticky/ws/engine.c
 delete mode 100644 krita/colorspaces/wetsticky/ws/engine.h
 delete mode 100644 krita/colorspaces/wetsticky/ws/engine3.c
 delete mode 100644 krita/colorspaces/wetsticky/ws/load_ppm.c
 delete mode 100644 krita/colorspaces/wetsticky/ws/main.c
 delete mode 100644 krita/colorspaces/wetsticky/ws/makefile
 delete mode 100644 krita/colorspaces/wetsticky/ws/mona.pgm
 delete mode 100644 krita/colorspaces/wetsticky/ws/ogl_interface.c
 delete mode 100644 krita/colorspaces/wetsticky/ws/test2.jpg
 delete mode 100644 krita/colorspaces/wetsticky/ws/test3.jpg
 delete mode 100644 krita/colorspaces/wetsticky/ws/types.h
 delete mode 100644 krita/colorspaces/wetsticky/ws/win_interface.h
 delete mode 100644 krita/colorspaces/wetsticky/ws/x_interface.c
 delete mode 100644 krita/colorspaces/wetsticky/wstool.ui
 delete mode 100644 krita/colorspaces/ycbcr_u16/Makefile.am
 delete mode 100644 krita/colorspaces/ycbcr_u16/kis_ycbcr_u16_colorspace.cc
 delete mode 100644 krita/colorspaces/ycbcr_u16/kis_ycbcr_u16_colorspace.h
 delete mode 100644 krita/colorspaces/ycbcr_u16/krita_ycbcr_u16_plugin.desktop
 delete mode 100644 krita/colorspaces/ycbcr_u16/ycbcr_u16_plugin.cc
 delete mode 100644 krita/colorspaces/ycbcr_u16/ycbcr_u16_plugin.h
 delete mode 100644 krita/colorspaces/ycbcr_u8/Makefile.am
 delete mode 100644 krita/colorspaces/ycbcr_u8/kis_ycbcr_u8_colorspace.cc
 delete mode 100644 krita/colorspaces/ycbcr_u8/kis_ycbcr_u8_colorspace.h
 delete mode 100644 krita/colorspaces/ycbcr_u8/krita_ycbcr_u8_plugin.desktop
 delete mode 100644 krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.cc
 delete mode 100644 krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.h
 delete mode 100644 krita/configure.in.bot
 delete mode 100644 krita/configure.in.in
 delete mode 100644 krita/core/Makefile.am
 delete mode 100755 krita/core/createdcop.py
 delete mode 100644 krita/core/kis_adjustment_layer.cc
 delete mode 100644 krita/core/kis_adjustment_layer.h
 delete mode 100644 krita/core/kis_alpha_mask.cc
 delete mode 100644 krita/core/kis_alpha_mask.h
 delete mode 100644 krita/core/kis_autobrush_resource.cc
 delete mode 100644 krita/core/kis_autobrush_resource.h
 delete mode 100644 krita/core/kis_autogradient_resource.cc
 delete mode 100644 krita/core/kis_autogradient_resource.h
 delete mode 100644 krita/core/kis_background.cc
 delete mode 100644 krita/core/kis_background.h
 delete mode 100644 krita/core/kis_basic_math_toolbox.cpp
 delete mode 100644 krita/core/kis_basic_math_toolbox.h
 delete mode 100644 krita/core/kis_boundary.cc
 delete mode 100644 krita/core/kis_boundary.h
 delete mode 100644 krita/core/kis_brush.cc
 delete mode 100644 krita/core/kis_brush.h
 delete mode 100644 krita/core/kis_change_profile_visitor.h
 delete mode 100644 krita/core/kis_colorspace_convert_visitor.h
 delete mode 100644 krita/core/kis_command.cc
 delete mode 100644 krita/core/kis_command.h
 delete mode 100644 krita/core/kis_convolution_painter.cc
 delete mode 100644 krita/core/kis_convolution_painter.h
 delete mode 100644 krita/core/kis_crop_visitor.h
 delete mode 100644 krita/core/kis_datamanager.h
 delete mode 100644 krita/core/kis_exif_info.cc
 delete mode 100644 krita/core/kis_exif_info.h
 delete mode 100644 krita/core/kis_exif_value.cc
 delete mode 100644 krita/core/kis_exif_value.h
 delete mode 100644 krita/core/kis_fill_painter.cc
 delete mode 100644 krita/core/kis_fill_painter.h
 delete mode 100644 krita/core/kis_filter.cc
 delete mode 100644 krita/core/kis_filter.h
 delete mode 100644 krita/core/kis_filter_config_widget.cc
 delete mode 100644 krita/core/kis_filter_config_widget.h
 delete mode 100644 krita/core/kis_filter_configuration.cc
 delete mode 100644 krita/core/kis_filter_configuration.h
 delete mode 100644 krita/core/kis_filter_registry.cc
 delete mode 100644 krita/core/kis_filter_registry.h
 delete mode 100644 krita/core/kis_filter_strategy.cc
 delete mode 100644 krita/core/kis_filter_strategy.h
 delete mode 100644 krita/core/kis_gradient.cc
 delete mode 100644 krita/core/kis_gradient.h
 delete mode 100644 krita/core/kis_gradient_painter.cc
 delete mode 100644 krita/core/kis_gradient_painter.h
 delete mode 100644 krita/core/kis_group_layer.cc
 delete mode 100644 krita/core/kis_group_layer.h
 delete mode 100644 krita/core/kis_histogram.cc
 delete mode 100644 krita/core/kis_histogram.h
 delete mode 100644 krita/core/kis_image.cc
 delete mode 100644 krita/core/kis_image.h
 delete mode 100644 krita/core/kis_image_iface.cc
 delete mode 100644 krita/core/kis_image_iface.h
 delete mode 100644 krita/core/kis_imagepipe_brush.cc
 delete mode 100644 krita/core/kis_imagepipe_brush.h
 delete mode 100644 krita/core/kis_iterator.cc
 delete mode 100644 krita/core/kis_iterator.h
 delete mode 100644 krita/core/kis_iteratorpixeltrait.h
 delete mode 100644 krita/core/kis_iterators_pixel.cc
 delete mode 100644 krita/core/kis_iterators_pixel.h
 delete mode 100644 krita/core/kis_layer.cc
 delete mode 100644 krita/core/kis_layer.h
 delete mode 100644 krita/core/kis_layer_visitor.h
 delete mode 100644 krita/core/kis_math_toolbox.cpp
 delete mode 100644 krita/core/kis_math_toolbox.h
 delete mode 100644 krita/core/kis_merge_visitor.h
 delete mode 100644 krita/core/kis_meta_registry.cc
 delete mode 100644 krita/core/kis_meta_registry.h
 delete mode 100644 krita/core/kis_nameserver.cc
 delete mode 100644 krita/core/kis_nameserver.h
 delete mode 100644 krita/core/kis_paint_device.cc
 delete mode 100644 krita/core/kis_paint_device.h
 delete mode 100644 krita/core/kis_paint_device_action.h
 delete mode 100644 krita/core/kis_paint_device_iface.cc
 delete mode 100644 krita/core/kis_paint_device_iface.h
 delete mode 100644 krita/core/kis_paint_layer.cc
 delete mode 100644 krita/core/kis_paint_layer.h
 delete mode 100644 krita/core/kis_painter.cc
 delete mode 100644 krita/core/kis_painter.h
 delete mode 100644 krita/core/kis_paintop.cc
 delete mode 100644 krita/core/kis_paintop.h
 delete mode 100644 krita/core/kis_paintop_registry.cc
 delete mode 100644 krita/core/kis_paintop_registry.h
 delete mode 100644 krita/core/kis_palette.cc
 delete mode 100644 krita/core/kis_palette.h
 delete mode 100644 krita/core/kis_part_layer_iface.h
 delete mode 100644 krita/core/kis_pattern.cc
 delete mode 100644 krita/core/kis_pattern.h
 delete mode 100644 krita/core/kis_perspective_grid.cpp
 delete mode 100644 krita/core/kis_perspective_grid.h
 delete mode 100644 krita/core/kis_perspective_math.cpp
 delete mode 100644 krita/core/kis_perspective_math.h
 delete mode 100644 krita/core/kis_perspectivetransform_worker.cpp
 delete mode 100644 krita/core/kis_perspectivetransform_worker.h
 delete mode 100644 krita/core/kis_point.h
 delete mode 100644 krita/core/kis_random_accessor.cpp
 delete mode 100644 krita/core/kis_random_accessor.h
 delete mode 100644 krita/core/kis_random_sub_accessor.cpp
 delete mode 100644 krita/core/kis_random_sub_accessor.h
 delete mode 100644 krita/core/kis_rect.cc
 delete mode 100644 krita/core/kis_rect.h
 delete mode 100644 krita/core/kis_resource.cc
 delete mode 100644 krita/core/kis_resource.h
 delete mode 100644 krita/core/kis_rotate_visitor.cc
 delete mode 100644 krita/core/kis_rotate_visitor.h
 delete mode 100644 krita/core/kis_scale_visitor.cc
 delete mode 100644 krita/core/kis_scale_visitor.h
 delete mode 100644 krita/core/kis_selected_transaction.cc
 delete mode 100644 krita/core/kis_selected_transaction.h
 delete mode 100644 krita/core/kis_selection.cc
 delete mode 100644 krita/core/kis_selection.h
 delete mode 100644 krita/core/kis_shear_visitor.h
 delete mode 100644 krita/core/kis_strategy_move.cc
 delete mode 100644 krita/core/kis_strategy_move.h
 delete mode 100644 krita/core/kis_substrate.h
 delete mode 100644 krita/core/kis_thread.h
 delete mode 100644 krita/core/kis_thread_pool.cc
 delete mode 100644 krita/core/kis_thread_pool.h
 delete mode 100644 krita/core/kis_transaction.cc
 delete mode 100644 krita/core/kis_transaction.h
 delete mode 100644 krita/core/kis_transform_visitor.h
 delete mode 100644 krita/core/kis_transform_worker.cc
 delete mode 100644 krita/core/kis_transform_worker.h
 delete mode 100644 krita/core/kis_types.h
 delete mode 100644 krita/core/kis_vec.cc
 delete mode 100644 krita/core/kis_vec.h
 delete mode 100644 krita/core/tests/Makefile.am
 delete mode 100644 krita/core/tests/kis_filter_configuration_tester.cc
 delete mode 100644 krita/core/tests/kis_filter_configuration_tester.h
 delete mode 100644 krita/core/tests/kis_image_tester.cpp
 delete mode 100644 krita/core/tests/kis_image_tester.h
 delete mode 100644 krita/core/tests/kis_integer_maths_tester.cpp
 delete mode 100644 krita/core/tests/kis_integer_maths_tester.h
 delete mode 100644 krita/core/tiles/Makefile.am
 delete mode 100644 krita/core/tiles/kis_memento.cc
 delete mode 100644 krita/core/tiles/kis_memento.h
 delete mode 100644 krita/core/tiles/kis_tile.cc
 delete mode 100644 krita/core/tiles/kis_tile.h
 delete mode 100644 krita/core/tiles/kis_tile_global.h
 delete mode 100644 krita/core/tiles/kis_tiled_random_accessor.cc
 delete mode 100644 krita/core/tiles/kis_tiled_random_accessor.h
 delete mode 100644 krita/core/tiles/kis_tileddatamanager.cc
 delete mode 100644 krita/core/tiles/kis_tileddatamanager.h
 delete mode 100644 krita/core/tiles/kis_tiledhlineiterator.cc
 delete mode 100644 krita/core/tiles/kis_tilediterator.cc
 delete mode 100644 krita/core/tiles/kis_tilediterator.h
 delete mode 100644 krita/core/tiles/kis_tiledrectiterator.cc
 delete mode 100644 krita/core/tiles/kis_tiledvlineiterator.cc
 delete mode 100644 krita/core/tiles/kis_tilemanager.cc
 delete mode 100644 krita/core/tiles/kis_tilemanager.h
 delete mode 100644 krita/core/tiles/tests/Makefile.am
 delete mode 100644 krita/core/tiles/tests/kis_tiled_data_tester.cpp
 delete mode 100644 krita/core/tiles/tests/kis_tiled_data_tester.h
 delete mode 100644 krita/data/Makefile.am
 delete mode 100644 krita/data/README
 delete mode 100644 krita/data/brushes/10x10square.gbr
 delete mode 100644 krita/data/brushes/10x10squareBlur.gbr
 delete mode 100644 krita/data/brushes/11circle.gbr
 delete mode 100644 krita/data/brushes/11fcircle.gbr
 delete mode 100644 krita/data/brushes/13circle.gbr
 delete mode 100644 krita/data/brushes/13fcircle.gbr
 delete mode 100644 krita/data/brushes/15circle.gbr
 delete mode 100644 krita/data/brushes/15fcircle.gbr
 delete mode 100644 krita/data/brushes/17circle.gbr
 delete mode 100644 krita/data/brushes/17fcircle.gbr
 delete mode 100644 krita/data/brushes/19circle.gbr
 delete mode 100644 krita/data/brushes/19fcircle.gbr
 delete mode 100644 krita/data/brushes/1circle.gbr
 delete mode 100644 krita/data/brushes/20x20square.gbr
 delete mode 100644 krita/data/brushes/20x20squareBlur.gbr
 delete mode 100644 krita/data/brushes/3circle.gbr
 delete mode 100644 krita/data/brushes/3fcircle.gbr
 delete mode 100644 krita/data/brushes/5circle.gbr
 delete mode 100644 krita/data/brushes/5fcircle.gbr
 delete mode 100644 krita/data/brushes/5x5square.gbr
 delete mode 100644 krita/data/brushes/5x5squareBlur.gbr
 delete mode 100644 krita/data/brushes/7circle.gbr
 delete mode 100644 krita/data/brushes/7fcircle.gbr
 delete mode 100644 krita/data/brushes/9circle.gbr
 delete mode 100644 krita/data/brushes/9fcircle.gbr
 delete mode 100644 krita/data/brushes/BRUSHES.README
 delete mode 100644 krita/data/brushes/COPYING
 delete mode 100644 krita/data/brushes/DStar11.gbr
 delete mode 100644 krita/data/brushes/DStar17.gbr
 delete mode 100644 krita/data/brushes/DStar25.gbr
 delete mode 100644 krita/data/brushes/Makefile.am
 delete mode 100644 krita/data/brushes/SketchBrush-16.gih
 delete mode 100644 krita/data/brushes/SketchBrush-32.gih
 delete mode 100644 krita/data/brushes/SketchBrush-64.gih
 delete mode 100644 krita/data/brushes/callig1.gbr
 delete mode 100644 krita/data/brushes/callig2.gbr
 delete mode 100644 krita/data/brushes/callig3.gbr
 delete mode 100644 krita/data/brushes/callig4.gbr
 delete mode 100644 krita/data/brushes/confetti.gbr
 delete mode 100644 krita/data/brushes/confetti.gih
 delete mode 100644 krita/data/brushes/cursor.gbr
 delete mode 100644 krita/data/brushes/cursor_big_lb.gbr
 delete mode 100644 krita/data/brushes/cursor_big_lw.gbr
 delete mode 100644 krita/data/brushes/cursor_big_rb.gbr
 delete mode 100644 krita/data/brushes/cursor_big_rw.gbr
 delete mode 100644 krita/data/brushes/cursor_lw.gbr
 delete mode 100644 krita/data/brushes/cursor_resize_diag_1.gbr
 delete mode 100644 krita/data/brushes/cursor_resize_diag_2.gbr
 delete mode 100644 krita/data/brushes/cursor_resize_hor.gbr
 delete mode 100644 krita/data/brushes/cursor_resize_vert.gbr
 delete mode 100644 krita/data/brushes/cursor_rw.gbr
 delete mode 100644 krita/data/brushes/cursor_small_lb.gbr
 delete mode 100644 krita/data/brushes/cursor_small_lw.gbr
 delete mode 100644 krita/data/brushes/cursor_small_rb.gbr
 delete mode 100644 krita/data/brushes/cursor_small_rw.gbr
 delete mode 100644 krita/data/brushes/cursor_tiny_lw.gbr
 delete mode 100644 krita/data/brushes/cursor_tiny_rw.gbr
 delete mode 100644 krita/data/brushes/cursor_up.gbr
 delete mode 100644 krita/data/brushes/dunes.gbr
 delete mode 100644 krita/data/brushes/feltpen.gih
 delete mode 100644 krita/data/brushes/galaxy.gbr
 delete mode 100644 krita/data/brushes/galaxy_big.gbr
 delete mode 100644 krita/data/brushes/galaxy_small.gbr
 delete mode 100644 krita/data/brushes/hsparks.gih
 delete mode 100644 krita/data/brushes/pepper.gbr
 delete mode 100644 krita/data/brushes/pixel.gbr
 delete mode 100644 krita/data/brushes/vine.gih
 delete mode 100644 krita/data/gradients/Abstract_1.ggr
 delete mode 100644 krita/data/gradients/Abstract_2.ggr
 delete mode 100644 krita/data/gradients/Abstract_3.ggr
 delete mode 100644 krita/data/gradients/Aneurism.ggr
 delete mode 100644 krita/data/gradients/Blinds.ggr
 delete mode 100644 krita/data/gradients/Blue_Green.ggr
 delete mode 100644 krita/data/gradients/Browns.ggr
 delete mode 100644 krita/data/gradients/Brushed_Aluminium.ggr
 delete mode 100644 krita/data/gradients/Burning_Paper.ggr
 delete mode 100644 krita/data/gradients/Burning_Transparency.ggr
 delete mode 100644 krita/data/gradients/CD.ggr
 delete mode 100644 krita/data/gradients/CD_Half.ggr
 delete mode 100644 krita/data/gradients/Caribbean_Blues.ggr
 delete mode 100644 krita/data/gradients/Coffee.ggr
 delete mode 100644 krita/data/gradients/Cold_Steel.ggr
 delete mode 100644 krita/data/gradients/Cold_Steel_2.ggr
 delete mode 100644 krita/data/gradients/Crown_molding.ggr
 delete mode 100644 krita/data/gradients/Dark_1.ggr
 delete mode 100644 krita/data/gradients/Deep_Sea.ggr
 delete mode 100644 krita/data/gradients/Default.ggr
 delete mode 100644 krita/data/gradients/Flare_Glow_Angular_1.ggr
 delete mode 100644 krita/data/gradients/Flare_Glow_Radial_1.ggr
 delete mode 100644 krita/data/gradients/Flare_Glow_Radial_2.ggr
 delete mode 100644 krita/data/gradients/Flare_Glow_Radial_3.ggr
 delete mode 100644 krita/data/gradients/Flare_Glow_Radial_4.ggr
 delete mode 100644 krita/data/gradients/Flare_Radial_101.ggr
 delete mode 100644 krita/data/gradients/Flare_Radial_102.ggr
 delete mode 100644 krita/data/gradients/Flare_Radial_103.ggr
 delete mode 100644 krita/data/gradients/Flare_Rays_Radial_1.ggr
 delete mode 100644 krita/data/gradients/Flare_Rays_Radial_2.ggr
 delete mode 100644 krita/data/gradients/Flare_Rays_Size_1.ggr
 delete mode 100644 krita/data/gradients/Flare_Sizefac_101.ggr
 delete mode 100644 krita/data/gradients/Four_bars.ggr
 delete mode 100644 krita/data/gradients/French_flag.ggr
 delete mode 100644 krita/data/gradients/French_flag_smooth.ggr
 delete mode 100644 krita/data/gradients/Full_saturation_spectrum_CCW.ggr
 delete mode 100644 krita/data/gradients/Full_saturation_spectrum_CW.ggr
 delete mode 100644 krita/data/gradients/German_flag.ggr
 delete mode 100644 krita/data/gradients/German_flag_smooth.ggr
 delete mode 100644 krita/data/gradients/Golden.ggr
 delete mode 100644 krita/data/gradients/Greens.ggr
 delete mode 100644 krita/data/gradients/Horizon_1.ggr
 delete mode 100644 krita/data/gradients/Horizon_2.ggr
 delete mode 100644 krita/data/gradients/Incandescent.ggr
 delete mode 100644 krita/data/gradients/Land_1.ggr
 delete mode 100644 krita/data/gradients/Land_and_Sea.ggr
 delete mode 100644 krita/data/gradients/Makefile.am
 delete mode 100644 krita/data/gradients/Metallic_Something.ggr
 delete mode 100644 krita/data/gradients/Mexican_flag.ggr
 delete mode 100644 krita/data/gradients/Mexican_flag_smooth.ggr
 delete mode 100644 krita/data/gradients/Nauseating_Headache.ggr
 delete mode 100644 krita/data/gradients/Neon_Cyan.ggr
 delete mode 100644 krita/data/gradients/Neon_Green.ggr
 delete mode 100644 krita/data/gradients/Neon_Yellow.ggr
 delete mode 100644 krita/data/gradients/Pastel_Rainbow.ggr
 delete mode 100644 krita/data/gradients/Pastels.ggr
 delete mode 100644 krita/data/gradients/Purples.ggr
 delete mode 100644 krita/data/gradients/Radial_Eyeball_Blue.ggr
 delete mode 100644 krita/data/gradients/Radial_Eyeball_Brown.ggr
 delete mode 100644 krita/data/gradients/Radial_Eyeball_Green.ggr
 delete mode 100644 krita/data/gradients/Radial_Glow_1.ggr
 delete mode 100644 krita/data/gradients/Radial_Rainbow_Hoop.ggr
 delete mode 100644 krita/data/gradients/Romanian_flag.ggr
 delete mode 100644 krita/data/gradients/Romanian_flag_smooth.ggr
 delete mode 100644 krita/data/gradients/Rounded_edge.ggr
 delete mode 100644 krita/data/gradients/Shadows_1.ggr
 delete mode 100644 krita/data/gradients/Shadows_2.ggr
 delete mode 100644 krita/data/gradients/Shadows_3.ggr
 delete mode 100644 krita/data/gradients/Skyline.ggr
 delete mode 100644 krita/data/gradients/Skyline_polluted.ggr
 delete mode 100644 krita/data/gradients/Square_Wood_Frame.ggr
 delete mode 100644 krita/data/gradients/Sunrise.ggr
 delete mode 100644 krita/data/gradients/Three_bars_sin.ggr
 delete mode 100644 krita/data/gradients/Tropical_Colors.ggr
 delete mode 100644 krita/data/gradients/Tube_Red.ggr
 delete mode 100644 krita/data/gradients/Wood_1.ggr
 delete mode 100644 krita/data/gradients/Wood_2.ggr
 delete mode 100644 krita/data/gradients/Yellow_Contrast.ggr
 delete mode 100644 krita/data/gradients/Yellow_Orange.ggr
 delete mode 100644 krita/data/images/Azay-Le-Rideau.jpg
 delete mode 100644 krita/data/images/Makefile.am
 delete mode 100644 krita/data/images/WeyDesc.png
 delete mode 100644 krita/data/images/evenings.jpg
 delete mode 100644 krita/data/images/hakonepa.jpg
 delete mode 100644 krita/data/images/hiro_awate.jpg
 delete mode 100644 krita/data/images/paintbrush.png
 delete mode 100644 krita/data/images/previewfilter.png
 delete mode 100644 krita/data/krita_filter.desktop
 delete mode 100644 krita/data/krita_paintop.desktop
 delete mode 100644 krita/data/krita_plugin.desktop
 delete mode 100644 krita/data/krita_tool.desktop
 delete mode 100644 krita/data/palettes/40_Colors.gpl
 delete mode 100644 krita/data/palettes/Anchor.gpl
 delete mode 100644 krita/data/palettes/Bears.gpl
 delete mode 100644 krita/data/palettes/Bgold.gpl
 delete mode 100644 krita/data/palettes/Blues.gpl
 delete mode 100644 krita/data/palettes/Borders.gpl
 delete mode 100644 krita/data/palettes/Browns_And_Yellows.gpl
 delete mode 100644 krita/data/palettes/Caramel.gpl
 delete mode 100644 krita/data/palettes/Cascade.gpl
 delete mode 100644 krita/data/palettes/China.gpl
 delete mode 100644 krita/data/palettes/Coldfire.gpl
 delete mode 100644 krita/data/palettes/Cool_Colors.gpl
 delete mode 100644 krita/data/palettes/Cranes.gpl
 delete mode 100644 krita/data/palettes/DMC.gpl
 delete mode 100644 krita/data/palettes/Dark_pastels.gpl
 delete mode 100644 krita/data/palettes/Default.gpl
 delete mode 100644 krita/data/palettes/Ega.gpl
 delete mode 100644 krita/data/palettes/Firecode.gpl
 delete mode 100644 krita/data/palettes/Gold.gpl
 delete mode 100644 krita/data/palettes/GrayViolet.gpl
 delete mode 100644 krita/data/palettes/Grayblue.gpl
 delete mode 100644 krita/data/palettes/Grays.gpl
 delete mode 100644 krita/data/palettes/Greens.gpl
 delete mode 100644 krita/data/palettes/Hilite.gpl
 delete mode 100644 krita/data/palettes/Khaki.gpl
 delete mode 100644 krita/data/palettes/Lights.gpl
 delete mode 100644 krita/data/palettes/Madeira.gpl
 delete mode 100644 krita/data/palettes/Makefile.am
 delete mode 100644 krita/data/palettes/Muted.gpl
 delete mode 100644 krita/data/palettes/Named_Colors.gpl
 delete mode 100644 krita/data/palettes/News3.gpl
 delete mode 100644 krita/data/palettes/Op2.gpl
 delete mode 100644 krita/data/palettes/Paintjet.gpl
 delete mode 100644 krita/data/palettes/Pantone_Coated_Approx.gpl
 delete mode 100644 krita/data/palettes/Pastels.gpl
 delete mode 100644 krita/data/palettes/Plasma.gpl
 delete mode 100644 krita/data/palettes/Reds.gpl
 delete mode 100644 krita/data/palettes/Reds_And_Purples.gpl
 delete mode 100644 krita/data/palettes/Royal.gpl
 delete mode 100644 krita/data/palettes/Topographic.gpl
 delete mode 100644 krita/data/palettes/Visibone.gpl
 delete mode 100644 krita/data/palettes/Visibone_2.gpl
 delete mode 100644 krita/data/palettes/Volcano.gpl
 delete mode 100644 krita/data/palettes/Warm_Colors.gpl
 delete mode 100644 krita/data/palettes/Web.gpl
 delete mode 100644 krita/data/palettes/new_kde.gpl
 delete mode 100644 krita/data/patterns/3dgreen.pat
 delete mode 100644 krita/data/patterns/Craters.pat
 delete mode 100644 krita/data/patterns/Makefile.am
 delete mode 100644 krita/data/patterns/Moonfoot.pat
 delete mode 100644 krita/data/patterns/Stripes1px.pat
 delete mode 100644 krita/data/patterns/Stripes2px.pat
 delete mode 100644 krita/data/patterns/amethyst.pat
 delete mode 100644 krita/data/patterns/bark.pat
 delete mode 100644 krita/data/patterns/blue.pat
 delete mode 100644 krita/data/patterns/bluegrid.pat
 delete mode 100644 krita/data/patterns/bluesquares.pat
 delete mode 100644 krita/data/patterns/blueweb.pat
 delete mode 100644 krita/data/patterns/brick.pat
 delete mode 100644 krita/data/patterns/burlap.pat
 delete mode 100644 krita/data/patterns/burlwood.pat
 delete mode 100644 krita/data/patterns/choc_swirl.pat
 delete mode 100644 krita/data/patterns/corkboard.pat
 delete mode 100644 krita/data/patterns/cracked.pat
 delete mode 100644 krita/data/patterns/crinklepaper.pat
 delete mode 100644 krita/data/patterns/electric.pat
 delete mode 100644 krita/data/patterns/fibers.pat
 delete mode 100644 krita/data/patterns/granite1.pat
 delete mode 100644 krita/data/patterns/ground1.pat
 delete mode 100644 krita/data/patterns/ice.pat
 delete mode 100644 krita/data/patterns/java.pat
 delete mode 100644 krita/data/patterns/leather.pat
 delete mode 100644 krita/data/patterns/leaves.pat
 delete mode 100644 krita/data/patterns/leopard.pat
 delete mode 100644 krita/data/patterns/lightning.pat
 delete mode 100644 krita/data/patterns/marble1.pat
 delete mode 100644 krita/data/patterns/marble2.pat
 delete mode 100644 krita/data/patterns/marble3.pat
 delete mode 100644 krita/data/patterns/nops.pat
 delete mode 100644 krita/data/patterns/paper.pat
 delete mode 100644 krita/data/patterns/parque1.pat
 delete mode 100644 krita/data/patterns/parque2.pat
 delete mode 100644 krita/data/patterns/parque3.pat
 delete mode 100644 krita/data/patterns/pastel.pat
 delete mode 100644 krita/data/patterns/pine.pat
 delete mode 100644 krita/data/patterns/pink_marble.pat
 delete mode 100644 krita/data/patterns/pool.pat
 delete mode 100644 krita/data/patterns/qube1.pat
 delete mode 100644 krita/data/patterns/rain.pat
 delete mode 100644 krita/data/patterns/recessed.pat
 delete mode 100644 krita/data/patterns/redcube.pat
 delete mode 100644 krita/data/patterns/rock.pat
 delete mode 100644 krita/data/patterns/sky.pat
 delete mode 100644 krita/data/patterns/slate.pat
 delete mode 100644 krita/data/patterns/sm_squares.pat
 delete mode 100644 krita/data/patterns/starfield.pat
 delete mode 100644 krita/data/patterns/stone33.pat
 delete mode 100644 krita/data/patterns/terra.pat
 delete mode 100644 krita/data/patterns/walnut.pat
 delete mode 100644 krita/data/patterns/warning.pat
 delete mode 100644 krita/data/patterns/wood1.pat
 delete mode 100644 krita/data/patterns/wood2.pat
 delete mode 100644 krita/data/patterns/wood3.pat
 delete mode 100644 krita/data/patterns/wood4.pat
 delete mode 100644 krita/data/patterns/wood5.pat
 delete mode 100644 krita/data/profiles/Adobe.icm
 delete mode 100644 krita/data/profiles/Apple.icm
 delete mode 100644 krita/data/profiles/CIE.icm
 delete mode 100644 krita/data/profiles/CMY.icm
 delete mode 100644 krita/data/profiles/ColorMatch.icm
 delete mode 100644 krita/data/profiles/Makefile.am
 delete mode 100644 krita/data/profiles/NTSC.icm
 delete mode 100644 krita/data/profiles/PAL.icm
 delete mode 100644 krita/data/profiles/README
 delete mode 100644 krita/data/profiles/SMPTE-C.icm
 delete mode 100644 krita/data/profiles/WideGamut.icm
 delete mode 100644 krita/data/profiles/cmyk.icm
 delete mode 100644 krita/data/profiles/fogra27l.icm
 delete mode 100644 krita/data/profiles/lcmslabi.icm
 delete mode 100644 krita/data/profiles/lcmsxyzi.icm
 delete mode 100644 krita/data/profiles/monoscnr.icm
 delete mode 100644 krita/data/profiles/sRGB.icm
 delete mode 100644 krita/data/profiles/srgb_color_space_profile.icm
 delete mode 100644 krita/data/profiles/srgbspac.icm
 delete mode 100644 krita/data/profiles/tifflab8spac.icm
 delete mode 100644 krita/data/profiles/ycc601.icm
 delete mode 100644 krita/data/profiles/ycc709.icm
 delete mode 100644 krita/data/templates/.directory
 delete mode 100644 krita/design.h
 delete mode 100644 krita/doc/DESIGN.obsolete
 delete mode 100644 krita/doc/Developing Krita Plugins.odt
 delete mode 100644 krita/doc/autoextending paintdevices
 delete mode 100644 krita/doc/background_paper.txt
 delete mode 100644 krita/doc/brush.txt
 delete mode 100644 krita/doc/channels_masks_selections
 delete mode 100644 krita/doc/colordiff
 delete mode 100644 krita/doc/colorspaces.xmi
 delete mode 100644 krita/doc/colorstrategyAPI
 delete mode 100644 krita/doc/controller.xmi
 delete mode 100644 krita/doc/coordinates.txt
 delete mode 100644 krita/doc/dirty.txt
 delete mode 100644 krita/doc/doc-outline
 delete mode 100644 krita/doc/histograms.xmi
 delete mode 100644 krita/doc/hooks
 delete mode 100644 krita/doc/howtofilters.txt
 delete mode 100644 krita/doc/impexp.txt
 delete mode 100644 krita/doc/krita-features
 delete mode 100644 krita/doc/krita.kpr
 delete mode 100644 krita/doc/krita.pdf
 delete mode 100644 krita/doc/krita.xmi
 delete mode 100644 krita/doc/large_files
 delete mode 100644 krita/doc/layersupdatesignals.flw
 delete mode 100644 krita/doc/manual/krita.kwd
 delete mode 100644 krita/doc/oasis
 delete mode 100644 krita/doc/paint_device.txt
 delete mode 100644 krita/doc/palettedesign.txt
 delete mode 100644 krita/doc/plugins.txt
 delete mode 100644 krita/doc/profiles.txt
 delete mode 100644 krita/doc/resolution.txt
 delete mode 100644 krita/doc/scripts/dcop.py
 delete mode 100644 krita/doc/sdk
 delete mode 100644 krita/doc/selections
 delete mode 100644 krita/doc/the preview widget
 delete mode 100644 krita/doc/transform_undo.txt
 delete mode 100644 krita/dtd/Makefile.am
 delete mode 100644 krita/dtd/krita.dtd
 delete mode 100755 krita/extracti18n.pl
 delete mode 100644 krita/krita.desktop
 delete mode 100644 krita/krita.rc
 delete mode 100644 krita/krita_part_init.cc
 delete mode 100644 krita/krita_readonly.rc
 delete mode 100644 krita/kritacolor/Makefile.am
 delete mode 100644 krita/kritacolor/README
 delete mode 100644 krita/kritacolor/TODO
 delete mode 100644 krita/kritacolor/colorspaces/Makefile.am
 delete mode 100644 krita/kritacolor/colorspaces/kis_alpha_colorspace.cc
 delete mode 100644 krita/kritacolor/colorspaces/kis_alpha_colorspace.h
 delete mode 100644 krita/kritacolor/colorspaces/kis_lab_colorspace.cc
 delete mode 100644 krita/kritacolor/colorspaces/kis_lab_colorspace.h
 delete mode 100644 krita/kritacolor/colorspaces/kis_xyz_colorspace.cc
 delete mode 100644 krita/kritacolor/colorspaces/kis_xyz_colorspace.h
 delete mode 100644 krita/kritacolor/kis_abstract_colorspace.cc
 delete mode 100644 krita/kritacolor/kis_abstract_colorspace.h
 delete mode 100644 krita/kritacolor/kis_basic_histogram_producers.cc
 delete mode 100644 krita/kritacolor/kis_basic_histogram_producers.h
 delete mode 100644 krita/kritacolor/kis_channelinfo.h
 delete mode 100644 krita/kritacolor/kis_color.cc
 delete mode 100644 krita/kritacolor/kis_color.h
 delete mode 100644 krita/kritacolor/kis_color_conversions.cc
 delete mode 100644 krita/kritacolor/kis_color_conversions.h
 delete mode 100644 krita/kritacolor/kis_colorspace.cc
 delete mode 100644 krita/kritacolor/kis_colorspace.h
 delete mode 100644 krita/kritacolor/kis_colorspace_factory_registry.cc
 delete mode 100644 krita/kritacolor/kis_colorspace_factory_registry.h
 delete mode 100644 krita/kritacolor/kis_colorspace_iface.cc
 delete mode 100644 krita/kritacolor/kis_colorspace_iface.h
 delete mode 100644 krita/kritacolor/kis_composite_op.cc
 delete mode 100644 krita/kritacolor/kis_composite_op.h
 delete mode 100644 krita/kritacolor/kis_f16half_base_colorspace.cc
 delete mode 100644 krita/kritacolor/kis_f16half_base_colorspace.h
 delete mode 100644 krita/kritacolor/kis_f32_base_colorspace.cc
 delete mode 100644 krita/kritacolor/kis_f32_base_colorspace.h
 delete mode 100644 krita/kritacolor/kis_histogram_producer.cc
 delete mode 100644 krita/kritacolor/kis_histogram_producer.h
 delete mode 100644 krita/kritacolor/kis_profile.cc
 delete mode 100644 krita/kritacolor/kis_profile.h
 delete mode 100644 krita/kritacolor/kis_u16_base_colorspace.cc
 delete mode 100644 krita/kritacolor/kis_u16_base_colorspace.h
 delete mode 100644 krita/kritacolor/kis_u8_base_colorspace.cc
 delete mode 100644 krita/kritacolor/kis_u8_base_colorspace.h
 delete mode 100644 krita/kritacolor/krita_colorspace.desktop
 delete mode 100644 krita/kritacolor/tests/Makefile.am
 delete mode 100644 krita/kritacolor/tests/kis_color_conversions_tester.cpp
 delete mode 100644 krita/kritacolor/tests/kis_color_conversions_tester.h
 delete mode 100644 krita/kritapart.desktop
 delete mode 100644 krita/main.cc
 delete mode 100644 krita/pics/Makefile.am
 delete mode 100644 krita/pics/deletelayer.png
 delete mode 100644 krita/pics/height.png
 delete mode 100644 krita/pics/hi128-app-krita.png
 delete mode 100644 krita/pics/hi16-app-krita.png
 delete mode 100644 krita/pics/hi22-app-krita.png
 delete mode 100644 krita/pics/hi32-app-krita.png
 delete mode 100644 krita/pics/hi48-app-krita.png
 delete mode 100644 krita/pics/hi64-app-krita.png
 delete mode 100644 krita/pics/krita.svg
 delete mode 100644 krita/pics/linked.png
 delete mode 100644 krita/pics/locked.png
 delete mode 100644 krita/pics/lowerlayer.png
 delete mode 100644 krita/pics/newlayer.png
 delete mode 100644 krita/pics/novisible.png
 delete mode 100644 krita/pics/raiselayer.png
 delete mode 100644 krita/pics/shade.png
 delete mode 100644 krita/pics/tablet.png
 delete mode 100644 krita/pics/tool_screenshot.png
 delete mode 100644 krita/pics/unlinked.png
 delete mode 100644 krita/pics/unlocked.png
 delete mode 100644 krita/pics/visible.png
 delete mode 100644 krita/pics/width.png
 delete mode 100644 krita/plugins/Makefile.am
 delete mode 100644 krita/plugins/README
 delete mode 100644 krita/plugins/configure.in.in
 delete mode 100644 krita/plugins/filters/Makefile.am
 delete mode 100644 krita/plugins/filters/blur/Makefile.am
 delete mode 100644 krita/plugins/filters/blur/blur.cc
 delete mode 100644 krita/plugins/filters/blur/blur.h
 delete mode 100644 krita/plugins/filters/blur/kis_blur_filter.cc
 delete mode 100644 krita/plugins/filters/blur/kis_blur_filter.h
 delete mode 100644 krita/plugins/filters/blur/kis_wdg_blur.cc
 delete mode 100644 krita/plugins/filters/blur/kis_wdg_blur.h
 delete mode 100644 krita/plugins/filters/blur/kritablurfilter.desktop
 delete mode 100644 krita/plugins/filters/blur/wdgblur.ui
 delete mode 100644 krita/plugins/filters/bumpmap/Makefile.am
 delete mode 100644 krita/plugins/filters/bumpmap/bumpmap.cc
 delete mode 100644 krita/plugins/filters/bumpmap/bumpmap.h
 delete mode 100644 krita/plugins/filters/bumpmap/kritabumpmapfilter.desktop
 delete mode 100644 krita/plugins/filters/bumpmap/wdgbumpmap.ui
 delete mode 100644 krita/plugins/filters/cimg/.kdev_ignore
 delete mode 100644 krita/plugins/filters/cimg/CImg.h
 delete mode 100644 krita/plugins/filters/cimg/Makefile.am
 delete mode 100644 krita/plugins/filters/cimg/kis_cimg_filter.cc
 delete mode 100644 krita/plugins/filters/cimg/kis_cimg_filter.h
 delete mode 100644 krita/plugins/filters/cimg/kis_cimg_plugin.cc
 delete mode 100644 krita/plugins/filters/cimg/kis_cimg_plugin.h
 delete mode 100644 krita/plugins/filters/cimg/kis_cimgconfig_widget.cc
 delete mode 100644 krita/plugins/filters/cimg/kis_cimgconfig_widget.h
 delete mode 100644 krita/plugins/filters/cimg/kritacimg.desktop
 delete mode 100644 krita/plugins/filters/cimg/wdg_cimg.ui
 delete mode 100644 krita/plugins/filters/colorify/Colorify.cpp
 delete mode 100644 krita/plugins/filters/colorify/Colorify.h
 delete mode 100644 krita/plugins/filters/colorify/KisWdgColorify.cpp
 delete mode 100644 krita/plugins/filters/colorify/KisWdgColorify.h
 delete mode 100644 krita/plugins/filters/colorify/Makefile.am
 delete mode 100644 krita/plugins/filters/colorify/WdgColorifyBase.ui
 delete mode 100644 krita/plugins/filters/colorify/kritacolorifyfilter.desktop
 delete mode 100644 krita/plugins/filters/colors/Makefile.am
 delete mode 100644 krita/plugins/filters/colors/colors.cc
 delete mode 100644 krita/plugins/filters/colors/colors.h
 delete mode 100644 krita/plugins/filters/colors/kis_color_to_alpha.cc
 delete mode 100644 krita/plugins/filters/colors/kis_color_to_alpha.h
 delete mode 100644 krita/plugins/filters/colors/kis_minmax_filters.cc
 delete mode 100644 krita/plugins/filters/colors/kis_minmax_filters.h
 delete mode 100644 krita/plugins/filters/colors/kis_wdg_color_to_alpha.cc
 delete mode 100644 krita/plugins/filters/colors/kis_wdg_color_to_alpha.h
 delete mode 100644 krita/plugins/filters/colors/kritaextensioncolorsfilters.desktop
 delete mode 100644 krita/plugins/filters/colors/wdgcolortoalphabase.ui
 delete mode 100644 krita/plugins/filters/colorsfilters/Makefile.am
 delete mode 100644 krita/plugins/filters/colorsfilters/colorsfilters.cc
 delete mode 100644 krita/plugins/filters/colorsfilters/colorsfilters.h
 delete mode 100644 krita/plugins/filters/colorsfilters/kis_brightness_contrast_filter.cc
 delete mode 100644 krita/plugins/filters/colorsfilters/kis_brightness_contrast_filter.h
 delete mode 100644 krita/plugins/filters/colorsfilters/kis_perchannel_filter.cc
 delete mode 100644 krita/plugins/filters/colorsfilters/kis_perchannel_filter.h
 delete mode 100644 krita/plugins/filters/colorsfilters/kritacolorsfilter.desktop
 delete mode 100644 krita/plugins/filters/colorsfilters/wdg_brightness_contrast.ui
 delete mode 100644 krita/plugins/filters/colorsfilters/wdg_perchannel.ui
 delete mode 100644 krita/plugins/filters/convolutionfilters/Makefile.am
 delete mode 100644 krita/plugins/filters/convolutionfilters/convolutionfilters.cc
 delete mode 100644 krita/plugins/filters/convolutionfilters/convolutionfilters.h
 delete mode 100644 krita/plugins/filters/convolutionfilters/kis_convolution_filter.cc
 delete mode 100644 krita/plugins/filters/convolutionfilters/kis_convolution_filter.h
 delete mode 100644 krita/plugins/filters/convolutionfilters/kis_custom_convolution_filter.cc
 delete mode 100644 krita/plugins/filters/convolutionfilters/kis_custom_convolution_filter.h
 delete mode 100644 krita/plugins/filters/convolutionfilters/kis_custom_convolution_filter_configuration_base_widget.ui
 delete mode 100644 krita/plugins/filters/convolutionfilters/kis_custom_convolution_filter_configuration_widget.cc
 delete mode 100644 krita/plugins/filters/convolutionfilters/kis_custom_convolution_filter_configuration_widget.h
 delete mode 100644 krita/plugins/filters/convolutionfilters/kritaconvolutionfilters.desktop
 delete mode 100644 krita/plugins/filters/cubismfilter/Makefile.am
 delete mode 100644 krita/plugins/filters/cubismfilter/kis_cubism_filter.cc
 delete mode 100644 krita/plugins/filters/cubismfilter/kis_cubism_filter.h
 delete mode 100644 krita/plugins/filters/cubismfilter/kis_cubism_filter_plugin.cc
 delete mode 100644 krita/plugins/filters/cubismfilter/kis_cubism_filter_plugin.h
 delete mode 100644 krita/plugins/filters/cubismfilter/kis_polygon.cc
 delete mode 100644 krita/plugins/filters/cubismfilter/kis_polygon.h
 delete mode 100644 krita/plugins/filters/cubismfilter/kritacubismfilter.desktop
 delete mode 100644 krita/plugins/filters/embossfilter/Makefile.am
 delete mode 100644 krita/plugins/filters/embossfilter/kis_emboss_filter.cc
 delete mode 100644 krita/plugins/filters/embossfilter/kis_emboss_filter.h
 delete mode 100644 krita/plugins/filters/embossfilter/kis_emboss_filter_plugin.cc
 delete mode 100644 krita/plugins/filters/embossfilter/kis_emboss_filter_plugin.h
 delete mode 100644 krita/plugins/filters/embossfilter/kritaembossfilter.desktop
 delete mode 100644 krita/plugins/filters/example/Makefile.am
 delete mode 100644 krita/plugins/filters/example/example.cc
 delete mode 100644 krita/plugins/filters/example/example.h
 delete mode 100644 krita/plugins/filters/example/kritaexample.desktop
 delete mode 100644 krita/plugins/filters/fastcolortransfer/Makefile.am
 delete mode 100644 krita/plugins/filters/fastcolortransfer/fastcolortransfer.cc
 delete mode 100644 krita/plugins/filters/fastcolortransfer/fastcolortransfer.h
 delete mode 100644 krita/plugins/filters/fastcolortransfer/kis_wdg_fastcolortransfer.cpp
 delete mode 100644 krita/plugins/filters/fastcolortransfer/kis_wdg_fastcolortransfer.h
 delete mode 100644 krita/plugins/filters/fastcolortransfer/kritafastcolortransfer.desktop
 delete mode 100644 krita/plugins/filters/fastcolortransfer/wdgfastcolortransfer.ui
 delete mode 100644 krita/plugins/filters/halftone/kis_halftone.cpp
 delete mode 100644 krita/plugins/filters/halftone/kis_halftone.h
 delete mode 100644 krita/plugins/filters/imageenhancement/Makefile.am
 delete mode 100644 krita/plugins/filters/imageenhancement/imageenhancement.cpp
 delete mode 100644 krita/plugins/filters/imageenhancement/imageenhancement.h
 delete mode 100644 krita/plugins/filters/imageenhancement/kis_simple_noise_reducer.cpp
 delete mode 100644 krita/plugins/filters/imageenhancement/kis_simple_noise_reducer.h
 delete mode 100644 krita/plugins/filters/imageenhancement/kis_wavelet_noise_reduction.cpp
 delete mode 100644 krita/plugins/filters/imageenhancement/kis_wavelet_noise_reduction.h
 delete mode 100644 krita/plugins/filters/imageenhancement/kritaimageenhancement.desktop
 delete mode 100644 krita/plugins/filters/lenscorrectionfilter/Makefile.am
 delete mode 100644 krita/plugins/filters/lenscorrectionfilter/kis_wdg_lens_correction.cpp
 delete mode 100644 krita/plugins/filters/lenscorrectionfilter/kis_wdg_lens_correction.h
 delete mode 100644 krita/plugins/filters/lenscorrectionfilter/kritalenscorrectionfilter.desktop
 delete mode 100644 krita/plugins/filters/lenscorrectionfilter/lenscorrectionfilter.cc
 delete mode 100644 krita/plugins/filters/lenscorrectionfilter/lenscorrectionfilter.h
 delete mode 100644 krita/plugins/filters/lenscorrectionfilter/wdglenscorrectionoptions.ui
 delete mode 100644 krita/plugins/filters/levelfilter/Makefile.am
 delete mode 100644 krita/plugins/filters/levelfilter/kgradientslider.cc
 delete mode 100644 krita/plugins/filters/levelfilter/kgradientslider.h
 delete mode 100644 krita/plugins/filters/levelfilter/kis_level_filter.cc
 delete mode 100644 krita/plugins/filters/levelfilter/kis_level_filter.h
 delete mode 100644 krita/plugins/filters/levelfilter/kritalevelfilter.desktop
 delete mode 100644 krita/plugins/filters/levelfilter/levelfilter.cc
 delete mode 100644 krita/plugins/filters/levelfilter/levelfilter.h
 delete mode 100644 krita/plugins/filters/levelfilter/wdg_level.ui
 delete mode 100644 krita/plugins/filters/noisefilter/Makefile.am
 delete mode 100644 krita/plugins/filters/noisefilter/kis_wdg_noise.cpp
 delete mode 100644 krita/plugins/filters/noisefilter/kis_wdg_noise.h
 delete mode 100644 krita/plugins/filters/noisefilter/kritanoisefilter.desktop
 delete mode 100644 krita/plugins/filters/noisefilter/noisefilter.cc
 delete mode 100644 krita/plugins/filters/noisefilter/noisefilter.h
 delete mode 100644 krita/plugins/filters/noisefilter/wdgnoiseoptions.ui
 delete mode 100644 krita/plugins/filters/oilpaintfilter/Makefile.am
 delete mode 100644 krita/plugins/filters/oilpaintfilter/kis_oilpaint_filter.cc
 delete mode 100644 krita/plugins/filters/oilpaintfilter/kis_oilpaint_filter.h
 delete mode 100644 krita/plugins/filters/oilpaintfilter/kis_oilpaint_filter_plugin.cc
 delete mode 100644 krita/plugins/filters/oilpaintfilter/kis_oilpaint_filter_plugin.h
 delete mode 100644 krita/plugins/filters/oilpaintfilter/kritaoilpaintfilter.desktop
 delete mode 100644 krita/plugins/filters/pixelizefilter/Makefile.am
 delete mode 100644 krita/plugins/filters/pixelizefilter/kis_pixelize_filter.cc
 delete mode 100644 krita/plugins/filters/pixelizefilter/kis_pixelize_filter.h
 delete mode 100644 krita/plugins/filters/pixelizefilter/kis_pixelize_filter_plugin.cc
 delete mode 100644 krita/plugins/filters/pixelizefilter/kis_pixelize_filter_plugin.h
 delete mode 100644 krita/plugins/filters/pixelizefilter/kritapixelizefilter.desktop
 delete mode 100644 krita/plugins/filters/raindropsfilter/Makefile.am
 delete mode 100644 krita/plugins/filters/raindropsfilter/kis_raindrops_filter.cc
 delete mode 100644 krita/plugins/filters/raindropsfilter/kis_raindrops_filter.h
 delete mode 100644 krita/plugins/filters/raindropsfilter/kis_raindrops_filter_plugin.cc
 delete mode 100644 krita/plugins/filters/raindropsfilter/kis_raindrops_filter_plugin.h
 delete mode 100644 krita/plugins/filters/raindropsfilter/kritaraindropsfilter.desktop
 delete mode 100644 krita/plugins/filters/randompickfilter/Makefile.am
 delete mode 100644 krita/plugins/filters/randompickfilter/kis_wdg_random_pick.cpp
 delete mode 100644 krita/plugins/filters/randompickfilter/kis_wdg_random_pick.h
 delete mode 100644 krita/plugins/filters/randompickfilter/kritarandompickfilter.desktop
 delete mode 100644 krita/plugins/filters/randompickfilter/randompickfilter.cc
 delete mode 100644 krita/plugins/filters/randompickfilter/randompickfilter.h
 delete mode 100644 krita/plugins/filters/randompickfilter/wdgrandompickoptions.ui
 delete mode 100644 krita/plugins/filters/roundcorners/Makefile.am
 delete mode 100644 krita/plugins/filters/roundcorners/kis_round_corners_filter.cc
 delete mode 100644 krita/plugins/filters/roundcorners/kis_round_corners_filter.h
 delete mode 100644 krita/plugins/filters/roundcorners/kis_round_corners_filter_plugin.cc
 delete mode 100644 krita/plugins/filters/roundcorners/kis_round_corners_filter_plugin.h
 delete mode 100644 krita/plugins/filters/roundcorners/kritaroundcornersfilter.desktop
 delete mode 100644 krita/plugins/filters/smalltilesfilter/Makefile.am
 delete mode 100644 krita/plugins/filters/smalltilesfilter/kis_small_tiles_filter.cc
 delete mode 100644 krita/plugins/filters/smalltilesfilter/kis_small_tiles_filter.h
 delete mode 100644 krita/plugins/filters/smalltilesfilter/kis_small_tiles_filter_plugin.cc
 delete mode 100644 krita/plugins/filters/smalltilesfilter/kis_small_tiles_filter_plugin.h
 delete mode 100644 krita/plugins/filters/smalltilesfilter/kritasmalltilesfilter.desktop
 delete mode 100644 krita/plugins/filters/sobelfilter/Makefile.am
 delete mode 100644 krita/plugins/filters/sobelfilter/kis_sobel_filter.cc
 delete mode 100644 krita/plugins/filters/sobelfilter/kis_sobel_filter.h
 delete mode 100644 krita/plugins/filters/sobelfilter/kis_sobel_filter_plugin.cc
 delete mode 100644 krita/plugins/filters/sobelfilter/kis_sobel_filter_plugin.h
 delete mode 100644 krita/plugins/filters/sobelfilter/kritasobelfilter.desktop
 delete mode 100644 krita/plugins/filters/threadtest/Makefile.am
 delete mode 100644 krita/plugins/filters/threadtest/kritathreadtest.desktop
 delete mode 100644 krita/plugins/filters/threadtest/threadtest.cc
 delete mode 100644 krita/plugins/filters/threadtest/threadtest.h
 delete mode 100644 krita/plugins/filters/unsharp/Makefile.am
 delete mode 100644 krita/plugins/filters/unsharp/kis_unsharp_filter.cc
 delete mode 100644 krita/plugins/filters/unsharp/kis_unsharp_filter.h
 delete mode 100644 krita/plugins/filters/unsharp/kis_wdg_unsharp.cc
 delete mode 100644 krita/plugins/filters/unsharp/kis_wdg_unsharp.h
 delete mode 100644 krita/plugins/filters/unsharp/kritaunsharpfilter.desktop
 delete mode 100644 krita/plugins/filters/unsharp/unsharp.cc
 delete mode 100644 krita/plugins/filters/unsharp/unsharp.h
 delete mode 100644 krita/plugins/filters/unsharp/wdgunsharp.ui
 delete mode 100644 krita/plugins/filters/wavefilter/Makefile.am
 delete mode 100644 krita/plugins/filters/wavefilter/kis_wdg_wave.cpp
 delete mode 100644 krita/plugins/filters/wavefilter/kis_wdg_wave.h
 delete mode 100644 krita/plugins/filters/wavefilter/kritawavefilter.desktop
 delete mode 100644 krita/plugins/filters/wavefilter/wavefilter.cc
 delete mode 100644 krita/plugins/filters/wavefilter/wavefilter.h
 delete mode 100644 krita/plugins/filters/wavefilter/wdgwaveoptions.ui
 delete mode 100644 krita/plugins/paintops/Makefile.am
 delete mode 100644 krita/plugins/paintops/defaultpaintops/Makefile.am
 delete mode 100644 krita/plugins/paintops/defaultpaintops/README
 delete mode 100644 krita/plugins/paintops/defaultpaintops/airbrush.png
 delete mode 100644 krita/plugins/paintops/defaultpaintops/defaultpaintops_plugin.cc
 delete mode 100644 krita/plugins/paintops/defaultpaintops/defaultpaintops_plugin.h
 delete mode 100644 krita/plugins/paintops/defaultpaintops/eraser.png
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_airbrushop.cc
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_airbrushop.h
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_brushop.cc
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_brushop.h
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_convolveop.cc
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_convolveop.h
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_dlgbrushcurvecontrol.ui
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_duplicateop.cc
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_duplicateop.h
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_eraseop.cc
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_eraseop.h
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_penop.cc
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_penop.h
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_smudgeop.cc
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kis_smudgeop.h
 delete mode 100644 krita/plugins/paintops/defaultpaintops/kritadefaultpaintops.desktop
 delete mode 100644 krita/plugins/paintops/defaultpaintops/paintbrush.png
 delete mode 100644 krita/plugins/paintops/defaultpaintops/pencil.png
 delete mode 100644 krita/plugins/paintops/defaultpaintops/src/README
 delete mode 100644 krita/plugins/paintops/defaultpaintops/src/pencil_01.svg
 delete mode 100644 krita/plugins/paintops/defaultpaintops/src/pencil_jonathan_dietrich_01.svg
 delete mode 100644 krita/plugins/paintops/defaultpaintops/src/pennello_mauro_olivo_01.svg
 delete mode 100644 krita/plugins/tools/Makefile.am
 delete mode 100644 krita/plugins/tools/defaulttools/Makefile.am
 delete mode 100644 krita/plugins/tools/defaulttools/closedhand_cursor.xpm
 delete mode 100644 krita/plugins/tools/defaulttools/default_tools.cc
 delete mode 100644 krita/plugins/tools/defaulttools/default_tools.h
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_brush.cc
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_brush.h
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_colorpicker.cc
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_colorpicker.h
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_duplicate.cc
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_duplicate.h
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_ellipse.cc
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_ellipse.h
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_fill.cc
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_fill.h
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_gradient.cc
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_gradient.h
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_line.cc
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_line.h
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_move.cc
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_move.h
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_pan.cc
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_pan.h
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_rectangle.cc
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_rectangle.h
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_text.cc
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_text.h
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_zoom.cc
 delete mode 100644 krita/plugins/tools/defaulttools/kis_tool_zoom.h
 delete mode 100644 krita/plugins/tools/defaulttools/kritadefaulttools.desktop
 delete mode 100644 krita/plugins/tools/defaulttools/openhand_cursor.xpm
 delete mode 100644 krita/plugins/tools/defaulttools/tool_color_fill.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_colorpicker.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_duplicate.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_duplicate_cursor.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_ellipse.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_ellipse_cursor.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_fill_cursor.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_freehand.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_freehand_cursor.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_gradient.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_gradient_cursor.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_line.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_line_cursor.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_move.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_pan.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_rectangle.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_rectangle_cursor.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_text.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_text_cursor.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_zoom.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_zoom_minus_cursor.png
 delete mode 100644 krita/plugins/tools/defaulttools/tool_zoom_plus_cursor.png
 delete mode 100644 krita/plugins/tools/defaulttools/wdgcolorpicker.ui
 delete mode 100644 krita/plugins/tools/selectiontools/Makefile.am
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_move_selection.cc
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_move_selection.h
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_brush.cc
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_brush.h
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_contiguous.cc
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_contiguous.h
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_elliptical.cc
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_elliptical.h
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_eraser.cc
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_eraser.h
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_outline.cc
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_outline.h
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_polygonal.cc
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_polygonal.h
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_rectangular.cc
 delete mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_rectangular.h
 delete mode 100644 krita/plugins/tools/selectiontools/kritaselectiontools.desktop
 delete mode 100644 krita/plugins/tools/selectiontools/selection_tools.cc
 delete mode 100644 krita/plugins/tools/selectiontools/selection_tools.h
 delete mode 100644 krita/plugins/tools/selectiontools/tool_brush_selection.png
 delete mode 100644 krita/plugins/tools/selectiontools/tool_brush_selection.svg
 delete mode 100644 krita/plugins/tools/selectiontools/tool_brush_selection_cursor.png
 delete mode 100644 krita/plugins/tools/selectiontools/tool_contiguous_selection.png
 delete mode 100644 krita/plugins/tools/selectiontools/tool_contiguous_selection_cursor.png
 delete mode 100644 krita/plugins/tools/selectiontools/tool_elliptical_selection.png
 delete mode 100644 krita/plugins/tools/selectiontools/tool_elliptical_selection.svg
 delete mode 100644 krita/plugins/tools/selectiontools/tool_elliptical_selection_cursor.png
 delete mode 100644 krita/plugins/tools/selectiontools/tool_eraser_selection.png
 delete mode 100644 krita/plugins/tools/selectiontools/tool_eraser_selection.svg
 delete mode 100644 krita/plugins/tools/selectiontools/tool_eraser_selection_cursor.png
 delete mode 100644 krita/plugins/tools/selectiontools/tool_outline_selection.png
 delete mode 100644 krita/plugins/tools/selectiontools/tool_outline_selection.svg
 delete mode 100644 krita/plugins/tools/selectiontools/tool_outline_selection_cursor.png
 delete mode 100644 krita/plugins/tools/selectiontools/tool_polygonal_selection.png
 delete mode 100644 krita/plugins/tools/selectiontools/tool_polygonal_selection.svg
 delete mode 100644 krita/plugins/tools/selectiontools/tool_polygonal_selection_cursor.png
 delete mode 100644 krita/plugins/tools/selectiontools/tool_rect_selection.png
 delete mode 100644 krita/plugins/tools/selectiontools/tool_rect_selection.svg
 delete mode 100644 krita/plugins/tools/selectiontools/tool_rectangular_selection_cursor.png
 delete mode 100644 krita/plugins/tools/tool_crop/Makefile.am
 delete mode 100644 krita/plugins/tools/tool_crop/kis_tool_crop.cc
 delete mode 100644 krita/plugins/tools/tool_crop/kis_tool_crop.h
 delete mode 100644 krita/plugins/tools/tool_crop/kritatoolcrop.desktop
 delete mode 100644 krita/plugins/tools/tool_crop/tool_crop.cc
 delete mode 100644 krita/plugins/tools/tool_crop/tool_crop.h
 delete mode 100644 krita/plugins/tools/tool_crop/tool_crop.png
 delete mode 100644 krita/plugins/tools/tool_crop/tool_crop_cursor.png
 delete mode 100644 krita/plugins/tools/tool_crop/wdg_tool_crop.ui
 delete mode 100644 krita/plugins/tools/tool_curves/Makefile.am
 delete mode 100644 krita/plugins/tools/tool_curves/kis_curve_framework.cc
 delete mode 100644 krita/plugins/tools/tool_curves/kis_curve_framework.h
 delete mode 100644 krita/plugins/tools/tool_curves/kis_tool_bezier.cc
 delete mode 100644 krita/plugins/tools/tool_curves/kis_tool_bezier.h
 delete mode 100644 krita/plugins/tools/tool_curves/kis_tool_bezier_paint.cc
 delete mode 100644 krita/plugins/tools/tool_curves/kis_tool_bezier_paint.h
 delete mode 100644 krita/plugins/tools/tool_curves/kis_tool_bezier_select.cc
 delete mode 100644 krita/plugins/tools/tool_curves/kis_tool_bezier_select.h
 delete mode 100644 krita/plugins/tools/tool_curves/kis_tool_curve.cc
 delete mode 100644 krita/plugins/tools/tool_curves/kis_tool_curve.h
 delete mode 100644 krita/plugins/tools/tool_curves/kis_tool_example.cc
 delete mode 100644 krita/plugins/tools/tool_curves/kis_tool_example.h
 delete mode 100644 krita/plugins/tools/tool_curves/kis_tool_moutline.cc
 delete mode 100644 krita/plugins/tools/tool_curves/kis_tool_moutline.h
 delete mode 100644 krita/plugins/tools/tool_curves/kritatoolcurves.desktop
 delete mode 100644 krita/plugins/tools/tool_curves/tool_bezier_cursor.png
 delete mode 100644 krita/plugins/tools/tool_curves/tool_bezier_paint.png
 delete mode 100644 krita/plugins/tools/tool_curves/tool_bezier_select.png
 delete mode 100644 krita/plugins/tools/tool_curves/tool_curve_dragging.png
 delete mode 100644 krita/plugins/tools/tool_curves/tool_curves.cc
 delete mode 100644 krita/plugins/tools/tool_curves/tool_curves.h
 delete mode 100644 krita/plugins/tools/tool_curves/tool_example.png
 delete mode 100644 krita/plugins/tools/tool_curves/tool_example_cursor.png
 delete mode 100644 krita/plugins/tools/tool_curves/tool_moutline.png
 delete mode 100644 krita/plugins/tools/tool_curves/tool_moutline_cursor.png
 delete mode 100644 krita/plugins/tools/tool_curves/tool_moutline_editing.png
 delete mode 100644 krita/plugins/tools/tool_curves/wdg_tool_example.ui
 delete mode 100644 krita/plugins/tools/tool_filter/Makefile.am
 delete mode 100644 krita/plugins/tools/tool_filter/kis_filterop.cc
 delete mode 100644 krita/plugins/tools/tool_filter/kis_filterop.h
 delete mode 100644 krita/plugins/tools/tool_filter/kis_tool_filter.cc
 delete mode 100644 krita/plugins/tools/tool_filter/kis_tool_filter.h
 delete mode 100644 krita/plugins/tools/tool_filter/kritatoolfilter.desktop
 delete mode 100644 krita/plugins/tools/tool_filter/tool_filter.cc
 delete mode 100644 krita/plugins/tools/tool_filter/tool_filter.h
 delete mode 100644 krita/plugins/tools/tool_filter/tool_filter.png
 delete mode 100644 krita/plugins/tools/tool_filter/tool_filter.svg
 delete mode 100644 krita/plugins/tools/tool_filter/tool_filter_cursor.png
 delete mode 100644 krita/plugins/tools/tool_perspectivegrid/Makefile.am
 delete mode 100644 krita/plugins/tools/tool_perspectivegrid/kis_tool_perspectivegrid.cc
 delete mode 100644 krita/plugins/tools/tool_perspectivegrid/kis_tool_perspectivegrid.h
 delete mode 100644 krita/plugins/tools/tool_perspectivegrid/kritatoolperspectivegrid.desktop
 delete mode 100644 krita/plugins/tools/tool_perspectivegrid/tool_perspectivegrid.cc
 delete mode 100644 krita/plugins/tools/tool_perspectivegrid/tool_perspectivegrid.h
 delete mode 100644 krita/plugins/tools/tool_perspectivegrid/tool_perspectivegrid.png
 delete mode 100644 krita/plugins/tools/tool_perspectivegrid/tool_perspectivegrid.svg
 delete mode 100644 krita/plugins/tools/tool_perspectivetransform/Makefile.am
 delete mode 100644 krita/plugins/tools/tool_perspectivetransform/kis_tool_perspectivetransform.cc
 delete mode 100644 krita/plugins/tools/tool_perspectivetransform/kis_tool_perspectivetransform.h
 delete mode 100644 krita/plugins/tools/tool_perspectivetransform/kritatoolperspectivetransform.desktop
 delete mode 100644 krita/plugins/tools/tool_perspectivetransform/tool_perspectivetransform.cc
 delete mode 100644 krita/plugins/tools/tool_perspectivetransform/tool_perspectivetransform.h
 delete mode 100644 krita/plugins/tools/tool_perspectivetransform/tool_perspectivetransform.png
 delete mode 100644 krita/plugins/tools/tool_perspectivetransform/tool_perspectivetransform.svg
 delete mode 100644 krita/plugins/tools/tool_polygon/Makefile.am
 delete mode 100644 krita/plugins/tools/tool_polygon/kis_tool_polygon.cc
 delete mode 100644 krita/plugins/tools/tool_polygon/kis_tool_polygon.h
 delete mode 100644 krita/plugins/tools/tool_polygon/kritatoolpolygon.desktop
 delete mode 100644 krita/plugins/tools/tool_polygon/tool_polygon.cc
 delete mode 100644 krita/plugins/tools/tool_polygon/tool_polygon.h
 delete mode 100644 krita/plugins/tools/tool_polygon/tool_polygon.png
 delete mode 100644 krita/plugins/tools/tool_polygon/tool_polygon_cursor.png
 delete mode 100644 krita/plugins/tools/tool_polyline/Makefile.am
 delete mode 100644 krita/plugins/tools/tool_polyline/kis_tool_polyline.cc
 delete mode 100644 krita/plugins/tools/tool_polyline/kis_tool_polyline.h
 delete mode 100644 krita/plugins/tools/tool_polyline/kritatoolpolyline.desktop
 delete mode 100644 krita/plugins/tools/tool_polyline/polyline.png
 delete mode 100644 krita/plugins/tools/tool_polyline/tool_polyline.cc
 delete mode 100644 krita/plugins/tools/tool_polyline/tool_polyline.h
 delete mode 100644 krita/plugins/tools/tool_polyline/tool_polyline_cursor.png
 delete mode 100644 krita/plugins/tools/tool_selectsimilar/Makefile.am
 delete mode 100644 krita/plugins/tools/tool_selectsimilar/kis_tool_selectsimilar.cc
 delete mode 100644 krita/plugins/tools/tool_selectsimilar/kis_tool_selectsimilar.h
 delete mode 100644 krita/plugins/tools/tool_selectsimilar/kritatoolselectsimilar.desktop
 delete mode 100644 krita/plugins/tools/tool_selectsimilar/selectsimilar.cc
 delete mode 100644 krita/plugins/tools/tool_selectsimilar/selectsimilar.h
 delete mode 100644 krita/plugins/tools/tool_selectsimilar/tool_similar_selection.png
 delete mode 100644 krita/plugins/tools/tool_selectsimilar/tool_similar_selection.svg
 delete mode 100644 krita/plugins/tools/tool_selectsimilar/tool_similar_selection_minus_cursor.png
 delete mode 100644 krita/plugins/tools/tool_selectsimilar/tool_similar_selection_plus_cursor.png
 delete mode 100644 krita/plugins/tools/tool_star/Makefile.am
 delete mode 100644 krita/plugins/tools/tool_star/kis_tool_star.cc
 delete mode 100644 krita/plugins/tools/tool_star/kis_tool_star.h
 delete mode 100644 krita/plugins/tools/tool_star/kritatoolstar.desktop
 delete mode 100644 krita/plugins/tools/tool_star/tool_star.cc
 delete mode 100644 krita/plugins/tools/tool_star/tool_star.h
 delete mode 100644 krita/plugins/tools/tool_star/tool_star.png
 delete mode 100644 krita/plugins/tools/tool_star/tool_star_cursor.png
 delete mode 100644 krita/plugins/tools/tool_star/wdg_tool_star.ui
 delete mode 100644 krita/plugins/tools/tool_transform/Makefile.am
 delete mode 100644 krita/plugins/tools/tool_transform/kis_tool_transform.cc
 delete mode 100644 krita/plugins/tools/tool_transform/kis_tool_transform.h
 delete mode 100644 krita/plugins/tools/tool_transform/kritatooltransform.desktop
 delete mode 100644 krita/plugins/tools/tool_transform/rotate_cursor.xpm
 delete mode 100644 krita/plugins/tools/tool_transform/tool_transform.cc
 delete mode 100644 krita/plugins/tools/tool_transform/tool_transform.h
 delete mode 100644 krita/plugins/tools/tool_transform/tool_transform.png
 delete mode 100644 krita/plugins/tools/tool_transform/wdg_tool_transform.ui
 delete mode 100644 krita/plugins/viewplugins/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/colorrange/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/colorrange/colorrange.cc
 delete mode 100644 krita/plugins/viewplugins/colorrange/colorrange.h
 delete mode 100644 krita/plugins/viewplugins/colorrange/colorrange.rc
 delete mode 100644 krita/plugins/viewplugins/colorrange/dlg_colorrange.cc
 delete mode 100644 krita/plugins/viewplugins/colorrange/dlg_colorrange.h
 delete mode 100644 krita/plugins/viewplugins/colorrange/kritacolorrange.desktop
 delete mode 100644 krita/plugins/viewplugins/colorrange/wdg_colorrange.ui
 delete mode 100644 krita/plugins/viewplugins/colorspaceconversion/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/colorspaceconversion/colorspaceconversion.cc
 delete mode 100644 krita/plugins/viewplugins/colorspaceconversion/colorspaceconversion.h
 delete mode 100644 krita/plugins/viewplugins/colorspaceconversion/colorspaceconversion.rc
 delete mode 100644 krita/plugins/viewplugins/colorspaceconversion/dlg_colorspaceconversion.cc
 delete mode 100644 krita/plugins/viewplugins/colorspaceconversion/dlg_colorspaceconversion.h
 delete mode 100644 krita/plugins/viewplugins/colorspaceconversion/kritacolorspaceconversion.desktop
 delete mode 100644 krita/plugins/viewplugins/colorspaceconversion/wdgconvertcolorspace.ui
 delete mode 100644 krita/plugins/viewplugins/dropshadow/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/dropshadow/dlg_dropshadow.cc
 delete mode 100644 krita/plugins/viewplugins/dropshadow/dlg_dropshadow.h
 delete mode 100644 krita/plugins/viewplugins/dropshadow/dropshadow.rc
 delete mode 100644 krita/plugins/viewplugins/dropshadow/kis_dropshadow.cc
 delete mode 100644 krita/plugins/viewplugins/dropshadow/kis_dropshadow.h
 delete mode 100644 krita/plugins/viewplugins/dropshadow/kis_dropshadow_plugin.cc
 delete mode 100644 krita/plugins/viewplugins/dropshadow/kis_dropshadow_plugin.h
 delete mode 100644 krita/plugins/viewplugins/dropshadow/kritadropshadow.desktop
 delete mode 100644 krita/plugins/viewplugins/dropshadow/wdg_dropshadow.ui
 delete mode 100644 krita/plugins/viewplugins/filtersgallery/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/filtersgallery/filters_gallery.cc
 delete mode 100644 krita/plugins/viewplugins/filtersgallery/filters_gallery.h
 delete mode 100644 krita/plugins/viewplugins/filtersgallery/kis_dlg_filtersgallery.cc
 delete mode 100644 krita/plugins/viewplugins/filtersgallery/kis_dlg_filtersgallery.h
 delete mode 100644 krita/plugins/viewplugins/filtersgallery/kis_wdg_filtersgallery.ui
 delete mode 100644 krita/plugins/viewplugins/filtersgallery/kritafiltersgallery.desktop
 delete mode 100644 krita/plugins/viewplugins/filtersgallery/kritafiltersgallery.rc
 delete mode 100644 krita/plugins/viewplugins/histogram/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/histogram/dlg_histogram.cc
 delete mode 100644 krita/plugins/viewplugins/histogram/dlg_histogram.h
 delete mode 100644 krita/plugins/viewplugins/histogram/histogram.cc
 delete mode 100644 krita/plugins/viewplugins/histogram/histogram.h
 delete mode 100644 krita/plugins/viewplugins/histogram/histogram.rc
 delete mode 100644 krita/plugins/viewplugins/histogram/kis_histogram_widget.cc
 delete mode 100644 krita/plugins/viewplugins/histogram/kis_histogram_widget.h
 delete mode 100644 krita/plugins/viewplugins/histogram/kritahistogram.desktop
 delete mode 100644 krita/plugins/viewplugins/histogram/wdghistogram.ui
 delete mode 100644 krita/plugins/viewplugins/histogram_docker/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/histogram_docker/histogramdocker.cc
 delete mode 100644 krita/plugins/viewplugins/histogram_docker/histogramdocker.h
 delete mode 100644 krita/plugins/viewplugins/histogram_docker/kis_accumulating_producer.cc
 delete mode 100644 krita/plugins/viewplugins/histogram_docker/kis_accumulating_producer.h
 delete mode 100644 krita/plugins/viewplugins/histogram_docker/kis_cachedhistogram.cc
 delete mode 100644 krita/plugins/viewplugins/histogram_docker/kis_cachedhistogram.h
 delete mode 100644 krita/plugins/viewplugins/histogram_docker/kis_imagerasteredcache.cc
 delete mode 100644 krita/plugins/viewplugins/histogram_docker/kis_imagerasteredcache.h
 delete mode 100644 krita/plugins/viewplugins/histogram_docker/kritahistogramdocker.desktop
 delete mode 100644 krita/plugins/viewplugins/histogram_docker/kritahistogramdocker.rc
 delete mode 100644 krita/plugins/viewplugins/history_docker/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/history_docker/historydocker.cc
 delete mode 100644 krita/plugins/viewplugins/history_docker/historydocker.h
 delete mode 100644 krita/plugins/viewplugins/history_docker/kritahistorydocker.desktop
 delete mode 100644 krita/plugins/viewplugins/imagesize/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/imagesize/configure.in.in
 delete mode 100644 krita/plugins/viewplugins/imagesize/dlg_imagesize.cc
 delete mode 100644 krita/plugins/viewplugins/imagesize/dlg_imagesize.h
 delete mode 100644 krita/plugins/viewplugins/imagesize/dlg_layersize.cc
 delete mode 100644 krita/plugins/viewplugins/imagesize/dlg_layersize.h
 delete mode 100644 krita/plugins/viewplugins/imagesize/imagesize.cc
 delete mode 100644 krita/plugins/viewplugins/imagesize/imagesize.h
 delete mode 100644 krita/plugins/viewplugins/imagesize/imagesize.rc
 delete mode 100644 krita/plugins/viewplugins/imagesize/kritaimagesize.desktop
 delete mode 100644 krita/plugins/viewplugins/imagesize/wdg_imagesize.ui
 delete mode 100644 krita/plugins/viewplugins/imagesize/wdg_layersize.ui
 delete mode 100644 krita/plugins/viewplugins/imagesize/wdg_resolution.ui
 delete mode 100644 krita/plugins/viewplugins/modify_selection/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/modify_selection/dlg_border_selection.cc
 delete mode 100644 krita/plugins/viewplugins/modify_selection/dlg_border_selection.h
 delete mode 100644 krita/plugins/viewplugins/modify_selection/dlg_grow_selection.cc
 delete mode 100644 krita/plugins/viewplugins/modify_selection/dlg_grow_selection.h
 delete mode 100644 krita/plugins/viewplugins/modify_selection/dlg_shrink_selection.cc
 delete mode 100644 krita/plugins/viewplugins/modify_selection/dlg_shrink_selection.h
 delete mode 100644 krita/plugins/viewplugins/modify_selection/kritamodifyselection.desktop
 delete mode 100644 krita/plugins/viewplugins/modify_selection/modify_selection.cc
 delete mode 100644 krita/plugins/viewplugins/modify_selection/modify_selection.h
 delete mode 100644 krita/plugins/viewplugins/modify_selection/modify_selection.rc
 delete mode 100644 krita/plugins/viewplugins/modify_selection/wdg_border_selection.ui
 delete mode 100644 krita/plugins/viewplugins/modify_selection/wdg_grow_selection.ui
 delete mode 100644 krita/plugins/viewplugins/modify_selection/wdg_shrink_selection.ui
 delete mode 100644 krita/plugins/viewplugins/performancetest/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/performancetest/dlg_perftest.cc
 delete mode 100644 krita/plugins/viewplugins/performancetest/dlg_perftest.h
 delete mode 100644 krita/plugins/viewplugins/performancetest/kritaperftest.desktop
 delete mode 100644 krita/plugins/viewplugins/performancetest/perftest.cc
 delete mode 100644 krita/plugins/viewplugins/performancetest/perftest.h
 delete mode 100644 krita/plugins/viewplugins/performancetest/perftest.rc
 delete mode 100644 krita/plugins/viewplugins/performancetest/wdg_perftest.ui
 delete mode 100644 krita/plugins/viewplugins/rotateimage/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/rotateimage/dlg_rotateimage.cc
 delete mode 100644 krita/plugins/viewplugins/rotateimage/dlg_rotateimage.h
 delete mode 100644 krita/plugins/viewplugins/rotateimage/kritarotateimage.desktop
 delete mode 100644 krita/plugins/viewplugins/rotateimage/rotateimage.cc
 delete mode 100644 krita/plugins/viewplugins/rotateimage/rotateimage.h
 delete mode 100644 krita/plugins/viewplugins/rotateimage/rotateimage.rc
 delete mode 100644 krita/plugins/viewplugins/rotateimage/wdg_rotateimage.ui
 delete mode 100644 krita/plugins/viewplugins/screenshot/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/screenshot/kritascreenshot.desktop
 delete mode 100644 krita/plugins/viewplugins/screenshot/ksnapshot.cpp
 delete mode 100644 krita/plugins/viewplugins/screenshot/ksnapshot.h
 delete mode 100644 krita/plugins/viewplugins/screenshot/ksnapshotwidget.ui
 delete mode 100644 krita/plugins/viewplugins/screenshot/ksnapshotwidget.ui.h
 delete mode 100644 krita/plugins/viewplugins/screenshot/main.cpp
 delete mode 100644 krita/plugins/viewplugins/screenshot/regiongrabber.cpp
 delete mode 100644 krita/plugins/viewplugins/screenshot/regiongrabber.h
 delete mode 100644 krita/plugins/viewplugins/screenshot/screenshot-kpresenter.rc
 delete mode 100644 krita/plugins/viewplugins/screenshot/screenshot-krita.rc
 delete mode 100644 krita/plugins/viewplugins/screenshot/screenshot-kword.rc
 delete mode 100644 krita/plugins/viewplugins/screenshot/screenshot.cpp
 delete mode 100644 krita/plugins/viewplugins/screenshot/screenshot.h
 delete mode 100644 krita/plugins/viewplugins/scripting/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/kritacoremodule.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/kritacoremodule.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_brush.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_brush.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_color.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_color.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_doc.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_doc.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_filter.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_filter.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_filter_configuration.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_filter_configuration.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_histogram.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_histogram.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_image.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_image.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_iterator.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_paint_layer.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_paint_layer.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_painter.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_painter.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_pattern.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_pattern.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_script_progress.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_script_progress.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_wavelet.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_wavelet.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritascripting.desktop
 delete mode 100644 krita/plugins/viewplugins/scripting/kritascripting/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/scripting/kritascripting/kis_script_monitor.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritascripting/kis_script_monitor.h
 delete mode 100644 krita/plugins/viewplugins/scripting/kritascripting/kis_script_progress.cpp
 delete mode 100644 krita/plugins/viewplugins/scripting/kritascripting/kis_script_progress.h
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/python/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/python/invert.py
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/python/invertpython.rc
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/python/reshapehisto.py
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/python/reshapehisto.rc
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/changecs.rb
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/changecs.rc
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/filterstest.rb
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/filterstest.rc
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/invert.rb
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/invertruby.rc
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/randompaint.rb
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/randompaint.rc
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/torture-filters.rb
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/torture-filters.rc
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/torture-painting.rb
 delete mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/torture-painting.rc
 delete mode 100644 krita/plugins/viewplugins/scripting/scripting.cc
 delete mode 100644 krita/plugins/viewplugins/scripting/scripting.h
 delete mode 100644 krita/plugins/viewplugins/scripting/scripting.rc
 delete mode 100644 krita/plugins/viewplugins/selectopaque/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/selectopaque/kritaselectopaque.desktop
 delete mode 100644 krita/plugins/viewplugins/selectopaque/selectopaque.cc
 delete mode 100644 krita/plugins/viewplugins/selectopaque/selectopaque.h
 delete mode 100644 krita/plugins/viewplugins/selectopaque/selectopaque.rc
 delete mode 100644 krita/plugins/viewplugins/separate_channels/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/separate_channels/dlg_separate.cc
 delete mode 100644 krita/plugins/viewplugins/separate_channels/dlg_separate.h
 delete mode 100644 krita/plugins/viewplugins/separate_channels/imageseparate.rc
 delete mode 100644 krita/plugins/viewplugins/separate_channels/kis_channel_separator.cc
 delete mode 100644 krita/plugins/viewplugins/separate_channels/kis_channel_separator.h
 delete mode 100644 krita/plugins/viewplugins/separate_channels/kis_separate_channels_plugin.cc
 delete mode 100644 krita/plugins/viewplugins/separate_channels/kis_separate_channels_plugin.h
 delete mode 100644 krita/plugins/viewplugins/separate_channels/kritaseparatechannels.desktop
 delete mode 100644 krita/plugins/viewplugins/separate_channels/wdg_separations.ui
 delete mode 100644 krita/plugins/viewplugins/shearimage/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/shearimage/dlg_shearimage.cc
 delete mode 100644 krita/plugins/viewplugins/shearimage/dlg_shearimage.h
 delete mode 100644 krita/plugins/viewplugins/shearimage/kritashearimage.desktop
 delete mode 100644 krita/plugins/viewplugins/shearimage/shearimage.cc
 delete mode 100644 krita/plugins/viewplugins/shearimage/shearimage.h
 delete mode 100644 krita/plugins/viewplugins/shearimage/shearimage.rc
 delete mode 100644 krita/plugins/viewplugins/shearimage/wdg_shearimage.ui
 delete mode 100644 krita/plugins/viewplugins/substrate/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/substrate/dlg_substrate.cc
 delete mode 100644 krita/plugins/viewplugins/substrate/dlg_substrate.h
 delete mode 100644 krita/plugins/viewplugins/substrate/kis_repeating_substrate.cc
 delete mode 100644 krita/plugins/viewplugins/substrate/kis_repeating_substrate.h
 delete mode 100644 krita/plugins/viewplugins/substrate/kritasubstrate.desktop
 delete mode 100644 krita/plugins/viewplugins/substrate/substrate.cc
 delete mode 100644 krita/plugins/viewplugins/substrate/substrate.h
 delete mode 100644 krita/plugins/viewplugins/substrate/substrate.rc
 delete mode 100644 krita/plugins/viewplugins/substrate/wdgsubstrate.ui
 delete mode 100644 krita/plugins/viewplugins/variations/Makefile.am
 delete mode 100644 krita/plugins/viewplugins/variations/dlg_variations.cc
 delete mode 100644 krita/plugins/viewplugins/variations/dlg_variations.h
 delete mode 100644 krita/plugins/viewplugins/variations/kritavariations.desktop
 delete mode 100644 krita/plugins/viewplugins/variations/variations.cc
 delete mode 100644 krita/plugins/viewplugins/variations/variations.h
 delete mode 100644 krita/plugins/viewplugins/variations/variations.rc
 delete mode 100644 krita/plugins/viewplugins/variations/wdg_variations.ui
 delete mode 100644 krita/sdk/Makefile.am
 delete mode 100644 krita/sdk/kis_annotation.h
 delete mode 100644 krita/sdk/kis_canvas_controller.h
 delete mode 100644 krita/sdk/kis_canvas_observer.h
 delete mode 100644 krita/sdk/kis_canvas_subject.h
 delete mode 100644 krita/sdk/kis_debug_areas.h
 delete mode 100644 krita/sdk/kis_generic_registry.h
 delete mode 100644 krita/sdk/kis_global.h
 delete mode 100644 krita/sdk/kis_id.h
 delete mode 100644 krita/sdk/kis_integer_maths.h
 delete mode 100644 krita/sdk/kis_progress_display_interface.h
 delete mode 100644 krita/sdk/kis_progress_subject.cc
 delete mode 100644 krita/sdk/kis_progress_subject.h
 delete mode 100644 krita/sdk/kis_shared_ptr_vector.h
 delete mode 100644 krita/sdk/kis_undo_adapter.h
 delete mode 100644 krita/todo-1.6
 delete mode 100644 krita/ui/Makefile.am
 delete mode 100644 krita/ui/imageviewer.cc
 delete mode 100644 krita/ui/imageviewer.h
 delete mode 100644 krita/ui/kcurve.cc
 delete mode 100644 krita/ui/kcurve.h
 delete mode 100644 krita/ui/kis_aboutdata.h
 delete mode 100644 krita/ui/kis_autobrush.cc
 delete mode 100644 krita/ui/kis_autobrush.h
 delete mode 100644 krita/ui/kis_autogradient.cc
 delete mode 100644 krita/ui/kis_autogradient.h
 delete mode 100644 krita/ui/kis_birdeye_box.cc
 delete mode 100644 krita/ui/kis_birdeye_box.h
 delete mode 100644 krita/ui/kis_boundary_painter.cc
 delete mode 100644 krita/ui/kis_boundary_painter.h
 delete mode 100644 krita/ui/kis_brush_chooser.cc
 delete mode 100644 krita/ui/kis_brush_chooser.h
 delete mode 100644 krita/ui/kis_button_event.h
 delete mode 100644 krita/ui/kis_button_press_event.h
 delete mode 100644 krita/ui/kis_button_release_event.h
 delete mode 100644 krita/ui/kis_canvas.cc
 delete mode 100644 krita/ui/kis_canvas.h
 delete mode 100644 krita/ui/kis_canvas_painter.cc
 delete mode 100644 krita/ui/kis_canvas_painter.h
 delete mode 100644 krita/ui/kis_clipboard.cc
 delete mode 100644 krita/ui/kis_clipboard.h
 delete mode 100644 krita/ui/kis_cmb_composite.cc
 delete mode 100644 krita/ui/kis_cmb_composite.h
 delete mode 100644 krita/ui/kis_cmb_idlist.cc
 delete mode 100644 krita/ui/kis_cmb_idlist.h
 delete mode 100644 krita/ui/kis_color_cup.cc
 delete mode 100644 krita/ui/kis_color_cup.h
 delete mode 100644 krita/ui/kis_config.cc
 delete mode 100644 krita/ui/kis_config.h
 delete mode 100644 krita/ui/kis_controlframe.cc
 delete mode 100644 krita/ui/kis_controlframe.h
 delete mode 100644 krita/ui/kis_cursor.cc
 delete mode 100644 krita/ui/kis_cursor.h
 delete mode 100644 krita/ui/kis_custom_brush.cc
 delete mode 100644 krita/ui/kis_custom_brush.h
 delete mode 100644 krita/ui/kis_custom_image_widget.cc
 delete mode 100644 krita/ui/kis_custom_image_widget.h
 delete mode 100644 krita/ui/kis_custom_palette.cc
 delete mode 100644 krita/ui/kis_custom_palette.h
 delete mode 100644 krita/ui/kis_custom_pattern.cc
 delete mode 100644 krita/ui/kis_custom_pattern.h
 delete mode 100644 krita/ui/kis_dlg_adj_layer_props.cc
 delete mode 100644 krita/ui/kis_dlg_adj_layer_props.h
 delete mode 100644 krita/ui/kis_dlg_adjustment_layer.cc
 delete mode 100644 krita/ui/kis_dlg_adjustment_layer.h
 delete mode 100644 krita/ui/kis_dlg_apply_profile.cc
 delete mode 100644 krita/ui/kis_dlg_apply_profile.h
 delete mode 100644 krita/ui/kis_dlg_image_properties.cc
 delete mode 100644 krita/ui/kis_dlg_image_properties.h
 delete mode 100644 krita/ui/kis_dlg_layer_properties.cc
 delete mode 100644 krita/ui/kis_dlg_layer_properties.h
 delete mode 100644 krita/ui/kis_dlg_new_layer.cc
 delete mode 100644 krita/ui/kis_dlg_new_layer.h
 delete mode 100644 krita/ui/kis_dlg_preferences.cc
 delete mode 100644 krita/ui/kis_dlg_preferences.h
 delete mode 100644 krita/ui/kis_doc.cc
 delete mode 100644 krita/ui/kis_doc.h
 delete mode 100644 krita/ui/kis_doc_iface.cc
 delete mode 100644 krita/ui/kis_doc_iface.h
 delete mode 100644 krita/ui/kis_double_click_event.h
 delete mode 100644 krita/ui/kis_double_widget.cc
 delete mode 100644 krita/ui/kis_double_widget.h
 delete mode 100644 krita/ui/kis_event.h
 delete mode 100644 krita/ui/kis_factory.cc
 delete mode 100644 krita/ui/kis_factory.h
 delete mode 100644 krita/ui/kis_filter_manager.cc
 delete mode 100644 krita/ui/kis_filter_manager.h
 delete mode 100644 krita/ui/kis_filters_listview.cc
 delete mode 100644 krita/ui/kis_filters_listview.h
 delete mode 100644 krita/ui/kis_gradient_chooser.cc
 delete mode 100644 krita/ui/kis_gradient_chooser.h
 delete mode 100644 krita/ui/kis_gradient_slider_widget.cc
 delete mode 100644 krita/ui/kis_gradient_slider_widget.h
 delete mode 100644 krita/ui/kis_grid_drawer.cpp
 delete mode 100644 krita/ui/kis_grid_drawer.h
 delete mode 100644 krita/ui/kis_grid_manager.cpp
 delete mode 100644 krita/ui/kis_grid_manager.h
 delete mode 100644 krita/ui/kis_histogram_view.cc
 delete mode 100644 krita/ui/kis_histogram_view.h
 delete mode 100644 krita/ui/kis_icon_item.cc
 delete mode 100644 krita/ui/kis_icon_item.h
 delete mode 100644 krita/ui/kis_iconwidget.cc
 delete mode 100644 krita/ui/kis_iconwidget.h
 delete mode 100644 krita/ui/kis_import_catcher.cc
 delete mode 100644 krita/ui/kis_import_catcher.h
 delete mode 100644 krita/ui/kis_input_device.cc
 delete mode 100644 krita/ui/kis_input_device.h
 delete mode 100644 krita/ui/kis_int_spinbox.cc
 delete mode 100644 krita/ui/kis_int_spinbox.h
 delete mode 100644 krita/ui/kis_itemchooser.cc
 delete mode 100644 krita/ui/kis_itemchooser.h
 delete mode 100644 krita/ui/kis_label_cursor_pos.cc
 delete mode 100644 krita/ui/kis_label_cursor_pos.h
 delete mode 100644 krita/ui/kis_label_progress.cc
 delete mode 100644 krita/ui/kis_label_progress.h
 delete mode 100644 krita/ui/kis_label_zoom.cc
 delete mode 100644 krita/ui/kis_label_zoom.h
 delete mode 100644 krita/ui/kis_layerbox.cc
 delete mode 100644 krita/ui/kis_layerbox.h
 delete mode 100644 krita/ui/kis_layerlist.cc
 delete mode 100644 krita/ui/kis_layerlist.h
 delete mode 100644 krita/ui/kis_load_visitor.h
 delete mode 100644 krita/ui/kis_matrix_widget.ui
 delete mode 100644 krita/ui/kis_matrix_widget.ui.h
 delete mode 100644 krita/ui/kis_move_event.h
 delete mode 100644 krita/ui/kis_multi_bool_filter_widget.cc
 delete mode 100644 krita/ui/kis_multi_bool_filter_widget.h
 delete mode 100644 krita/ui/kis_multi_double_filter_widget.cc
 delete mode 100644 krita/ui/kis_multi_double_filter_widget.h
 delete mode 100644 krita/ui/kis_multi_integer_filter_widget.cc
 delete mode 100644 krita/ui/kis_multi_integer_filter_widget.h
 delete mode 100644 krita/ui/kis_opengl_canvas.cc
 delete mode 100644 krita/ui/kis_opengl_canvas.h
 delete mode 100644 krita/ui/kis_opengl_canvas_painter.cc
 delete mode 100644 krita/ui/kis_opengl_canvas_painter.h
 delete mode 100644 krita/ui/kis_opengl_image_context.cc
 delete mode 100644 krita/ui/kis_opengl_image_context.h
 delete mode 100644 krita/ui/kis_paintop_box.cc
 delete mode 100644 krita/ui/kis_paintop_box.h
 delete mode 100644 krita/ui/kis_palette_view.cc
 delete mode 100644 krita/ui/kis_palette_view.h
 delete mode 100644 krita/ui/kis_palette_widget.cc
 delete mode 100644 krita/ui/kis_palette_widget.h
 delete mode 100644 krita/ui/kis_part_layer.cc
 delete mode 100644 krita/ui/kis_part_layer.h
 delete mode 100644 krita/ui/kis_part_layer_handler.cc
 delete mode 100644 krita/ui/kis_part_layer_handler.h
 delete mode 100644 krita/ui/kis_pattern_chooser.cc
 delete mode 100644 krita/ui/kis_pattern_chooser.h
 delete mode 100644 krita/ui/kis_perspective_grid_manager.cpp
 delete mode 100644 krita/ui/kis_perspective_grid_manager.h
 delete mode 100644 krita/ui/kis_populate_visitor.h
 delete mode 100644 krita/ui/kis_previewdialog.cc
 delete mode 100644 krita/ui/kis_previewdialog.h
 delete mode 100644 krita/ui/kis_previewwidget.cc
 delete mode 100644 krita/ui/kis_previewwidget.h
 delete mode 100644 krita/ui/kis_previewwidgetbase.ui
 delete mode 100644 krita/ui/kis_qpaintdevice_canvas.cc
 delete mode 100644 krita/ui/kis_qpaintdevice_canvas.h
 delete mode 100644 krita/ui/kis_qpaintdevice_canvas_painter.cc
 delete mode 100644 krita/ui/kis_qpaintdevice_canvas_painter.h
 delete mode 100644 krita/ui/kis_resource_mediator.cc
 delete mode 100644 krita/ui/kis_resource_mediator.h
 delete mode 100644 krita/ui/kis_resourceserver.cc
 delete mode 100644 krita/ui/kis_resourceserver.h
 delete mode 100644 krita/ui/kis_ruler.cc
 delete mode 100644 krita/ui/kis_ruler.h
 delete mode 100644 krita/ui/kis_save_visitor.h
 delete mode 100644 krita/ui/kis_savexml_visitor.h
 delete mode 100644 krita/ui/kis_selection_manager.cc
 delete mode 100644 krita/ui/kis_selection_manager.h
 delete mode 100644 krita/ui/kis_selection_options.cc
 delete mode 100644 krita/ui/kis_selection_options.h
 delete mode 100644 krita/ui/kis_text_brush.cc
 delete mode 100644 krita/ui/kis_text_brush.h
 delete mode 100644 krita/ui/kis_tool.cc
 delete mode 100644 krita/ui/kis_tool.h
 delete mode 100644 krita/ui/kis_tool_controller.h
 delete mode 100644 krita/ui/kis_tool_dummy.cc
 delete mode 100644 krita/ui/kis_tool_dummy.h
 delete mode 100644 krita/ui/kis_tool_factory.h
 delete mode 100644 krita/ui/kis_tool_freehand.cc
 delete mode 100644 krita/ui/kis_tool_freehand.h
 delete mode 100644 krita/ui/kis_tool_manager.cc
 delete mode 100644 krita/ui/kis_tool_manager.h
 delete mode 100644 krita/ui/kis_tool_non_paint.cc
 delete mode 100644 krita/ui/kis_tool_non_paint.h
 delete mode 100644 krita/ui/kis_tool_paint.cc
 delete mode 100644 krita/ui/kis_tool_paint.h
 delete mode 100644 krita/ui/kis_tool_registry.cc
 delete mode 100644 krita/ui/kis_tool_registry.h
 delete mode 100644 krita/ui/kis_tool_shape.cc
 delete mode 100644 krita/ui/kis_tool_shape.h
 delete mode 100644 krita/ui/kis_tool_types.h
 delete mode 100644 krita/ui/kis_view.cc
 delete mode 100644 krita/ui/kis_view.h
 delete mode 100644 krita/ui/kis_view_iface.cc
 delete mode 100644 krita/ui/kis_view_iface.h
 delete mode 100644 krita/ui/kobirdeyepanel.cpp
 delete mode 100644 krita/ui/kobirdeyepanel.h
 delete mode 100644 krita/ui/layerlist.cpp
 delete mode 100644 krita/ui/layerlist.h
 delete mode 100644 krita/ui/squeezedcombobox.cpp
 delete mode 100644 krita/ui/squeezedcombobox.h
 delete mode 100644 krita/ui/wdgapplyprofile.ui
 delete mode 100644 krita/ui/wdgautobrush.ui
 delete mode 100644 krita/ui/wdgautogradient.ui
 delete mode 100644 krita/ui/wdgbirdeye.ui
 delete mode 100644 krita/ui/wdgcolorsettings.ui
 delete mode 100644 krita/ui/wdgcustombrush.ui
 delete mode 100644 krita/ui/wdgcustompalette.ui
 delete mode 100644 krita/ui/wdgcustompattern.ui
 delete mode 100644 krita/ui/wdgdisplaysettings.ui
 delete mode 100644 krita/ui/wdggeneralsettings.ui
 delete mode 100644 krita/ui/wdggridsettings.ui
 delete mode 100644 krita/ui/wdglayerbox.ui
 delete mode 100644 krita/ui/wdglayerproperties.ui
 delete mode 100644 krita/ui/wdgnewimage.ui
 delete mode 100644 krita/ui/wdgpalettechooser.ui
 delete mode 100644 krita/ui/wdgperformancesettings.ui
 delete mode 100644 krita/ui/wdgpressuresettings.ui
 delete mode 100644 krita/ui/wdgselectionoptions.ui
 delete mode 100644 krita/ui/wdgshapeoptions.ui
 delete mode 100644 krita/ui/wdgtabletdevicesettings.ui
 delete mode 100644 krita/ui/wdgtabletsettings.ui
 delete mode 100644 krita/ui/wdgtextbrush.ui
 delete mode 100644 plugins/scan/scan-krita.rc
 delete mode 100644 tools/quickprint/krita_konqi.desktop

diff --git a/doc/krita/Makefile.am b/doc/krita/Makefile.am
deleted file mode 100644
index 085981d9b..000000000
--- a/doc/krita/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-
-KDE_LANG = en
-KDE_DOCS = AUTO
-
diff --git a/doc/krita/README.SCREENSHOTS b/doc/krita/README.SCREENSHOTS
deleted file mode 100644
index bc1d55bd0..000000000
--- a/doc/krita/README.SCREENSHOTS
+++ /dev/null
@@ -1,7 +0,0 @@
-Note for translators:
-
-The file "mountains.png" is the original photo used for creating the screenshots
-in the Dialogs section.
-
-
-- ASK
\ No newline at end of file
diff --git a/doc/krita/commands-dialogs.docbook b/doc/krita/commands-dialogs.docbook
deleted file mode 100644
index 758a4924c..000000000
--- a/doc/krita/commands-dialogs.docbook
+++ /dev/null
@@ -1,1411 +0,0 @@
-<sect1 id="commands-dialogs">
-<title>Dialogs</title>
-
-<para>
-This section describes &krita;'s dialog windows.
-</para>
-
-<sect2 id="commands-dialogs-image">
-<title>Dialogs for working with images</title>
-
-<sect3 id="commands-dialogs-images-colorrange">
-<title>The <guilabel>Color Range</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Color Range</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-colorrange.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Color Range</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Color Range</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-You can create a selection based on the color values of pixels here. In the
-dropdown box, choose which color range you want to select. Pixels will be
-selected according to their color value on this scale (&eg; a fully yellow
-pixel would score maximally on the yellow scale and on the red and green scales).
-If you check the <guilabel>Invert</guilabel> box, the selection becomes inverted:
-pixels will become selected if they have a lower value in the specified range instead.
-You can choose whether the current selection should be
-added to or subtracted from the color range selection by clicking the
-respective option: <guilabel>Add to current selection</guilabel> or
-<guilabel>Subtract from current selection</guilabel>. Choose
-<guibutton>Select</guibutton> to actually perform the selection or
-<guibutton>Deselect</guibutton> to remove these pixels from the selection.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-image-convertimagetype">
-<title>The <guilabel>Convert Image Type</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Convert Image Type</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-convertimagetype.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Convert Image Type</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Convert Image Type</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog allows you to convert your image from one color space to another.
-The <guilabel>Target color space</guilabel> and <guilabel>Destination ICM
-profile</guilabel> are used to set to which colorspace and profile the image
-will be converted. You can influence how this conversion is done with the
-<guilabel>Rendering Intent</guilabel> option.
-</para>
-<para>
-With <guilabel>Perceptual</guilabel> conversion, the source color space is
-mapped linearly to the destination color space. If the destination color space
-<quote>accepts</quote> a lesser color range than the source, shifts may occur
-because the range is compressed. <guilabel>Relative colorimetric</guilabel>
-conversion converts every color to the closest color in the destination color
-space. This may mean that a certain color range is mapped to one color in the
-destination color space. <guilabel>Saturation</guilabel> means that fully
-saturated colors will remain fully saturated, even if this means that the
-actual color is changed. With <guilabel>Absolute colorimetric</guilabel>
-conversion, the same approach is used as with <guilabel>Relative
-colorimetric</guilabel>, but the white point of the color space (the value
-designating the color white) is not changed to match the new color space,
-which may result in unwanted changes to near colors.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-image-imageproperties">
-<title>The <guilabel>Image Properties</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Image Properties</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-imageproperties.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Image Properties</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Image Properties</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-In this dialog you can change a couple of image properties. First of all, the
-<guilabel>Name</guilabel> of the image. If you did not set a name earlier
-(that can also be done when creating the image), it will have a default name
-like <quote>Image1</quote>. Then, you can set its size (determined by the
-<guilabel>Width</guilabel> and <guilabel>Height</guilabel> in pixels and
-the <guilabel>Resolution</guilabel> in dots per inch) and the color profile to
-be used (<guilabel>Profile</guilabel>). Finally, you can fill in the
-<guilabel>Description</guilabel> field with any information you want to add to
-the image.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-image-imagesize">
-<title>The <guilabel>Image Size</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Image Size</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-imagesize.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Image Size</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Image Size</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog lets you resize your image. In the top part, you can choose the
-way the image is resized. If you choose <guilabel>Resize</guilabel>, the size
-of the image is changed, but its layers (which contain the actual contents)
-will not be modified. So, when you double the height and width of the image,
-your original image will occupy the top-left quarter part of your new image.
-On decreasing the size of your image, the image layers will stretch out over
-the image borders, unless you choose <guilabel>Crop layers on image
-resize</guilabel>, which will crop all layers to the new image size.
-</para><para>
-With <guilabel>Scale</guilabel>, the image layers will be resized with the
-image. So increasing the image size will actually enlarge the contents, and
-similar for decreasing.
-</para><para>
-Under <guilabel>Pixel dimensions</guilabel>, you can set which new size you
-want the image to have. The original size is given as a reference. The new
-size can be set both as pixels or as a percentage, with 100% being the
-original size. If you select <guilabel>Constrain proportions</guilabel>, the
-new width and height will always be set to the same percentage. For example,
-if you have an image of 200 x 100 pixels, and set the width to 20 pixels, the
-height will automatically be changed to 10. With this checkbox unselected, you
-can also resize the image non-proportionally. 
-</para><para>
-The <guilabel>Filter:</guilabel> dropdown box can be used to select a
-different algorithm for determining the colors of the pixels in the newly
-resized image that did not correspond to a pixel in the old image (the
-calculated corresponding location in the old image was located in between
-pixels). <guilabel>BSpline</guilabel> uses a 4 x 4 pixel grid and results into a quite high
-blurring. <guilabel>Bell</guilabel> is quite fast while resulting in a reasonably smooth image.
-<guilabel>Box</guilabel> is the fastest method, but yields the least appealing result. <guilabel>Hermite</guilabel>
-keeps the image quite sharp, while smoothing it as well, and is reasonably
-fast. <guilabel>Lanczos3</guilabel> results in sharp images, but is very slow.  <guilabel>Mitchell</guilabel> (the
-default) is not very fast, but often yields a good intermediate result.
-<guilabel>Triangle/Bilinear</guilabel> uses the 2 x 2 pixel grid around the calculated location
-resulting in relatively sharp lines. 
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-image-rotateimage">
-<title>The <guilabel>Rotate Image</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Rotate Image</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-rotateimage.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Rotate Image</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Rotate Image</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-With this dialog, you can rotate the image. The top part of the dialog shows
-the result of the rotation in the form of a change in dimension (if any).
-Under <guilabel>Direction</guilabel> you can choose between 
-rotating clockwise and counter-clockwise. Under <guilabel>Angle</guilabel>,
-you can set the amount of rotation. 90, 180 and 270 degrees can be selected
-using the respective option button, other amounts need to be specified with
-the <guilabel>Custom</guilabel> spin box.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-image-separateimage">
-<title>The <guilabel>Separate Image</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Separate Image</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-separateimage.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Separate Image</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Separate Image</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-With this dialog, you can separate (part of) your image. Every color component
-(channel) will be put into a separate layer or image. At the top of the
-dialog, the current color model is shown. Below that, a couple of options can
-be set.
-</para>
-<para>
-Under <guilabel>Source</guilabel>, you can choose what part of the image to
-separate. The two options are <guilabel>Current layer</guilabel>, which
-(obviously) only uses the currently selected layer and <guilabel>Flatten all
-layers before separation</guilabel>, which uses the entire image.
-</para>
-<para>
-Under <guilabel>Output</guilabel>, you can choose where the result of the
-separation should be written to: either to a couple of layers, or to a couple
-of images.
-</para>
-<para>
-Under <guilabel>Alpha Options</guilabel>, you can choose what should be done
-with the alpha channel of the selected layer(s). It can be copied to each new
-channel, be discarded, or separated on its own.
-</para>
-<para>
-The two options at the bottom of the dialog, finally, determine whether the
-source should be downscaled to 8 bit colors (if it contains more), and whether
-the output should be in color (default is to separate the channels to grayscale
-values).
-</para>
-</sect3>
-
-<sect3 id="commands-dialogs-image-shearimage">
-<title>The <guilabel>Shear Image</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Shear Image</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-shearimage.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Shear Image</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Shear Image</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog allows you to shear your image. By shearing, the bounding
-rectangle of your image is transformed into a parallellogram. One pixel
-row/column is kept in place, the next one is shifted by a certain amount, the
-next one by the same amount relative to the previous one, etcetera.
-The X and Y shearing angles can be set using the two spin boxes.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-image-substrate">
-<title>The <guilabel>Substrate</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Substrate</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-substrate.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Substrate</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Substrate</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-(This dialog is still to be described.)
-</para>
-
-</sect3>
-
-</sect2>
-
-<sect2 id="commands-dialogs-layers">
-<title>Dialogs for working with layers</title>
-
-<sect3 id="commands-dialogs-layers-convertlayertype">
-<title>The <guilabel>Convert Layer Type</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Convert Layer Type</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-convertlayertype.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Convert Layer Type</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Convert Layer Type</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog is exactly the same as the <link
-linkend="commands-dialogs-image-convertimagetype"><guilabel>Convert Image
-Type</guilabel> dialog</link>, which converts an entire image instead of a
-single layer. See the description there for details.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-layers-dropshadow">
-<title>The <guilabel>Drop Shadow</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Drop Shadow</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-dropshadow.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Drop Shadow</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Drop Shadow</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-With this dialog, you can add a drop shadow effect to the current layer.
-Select the X and Y offsets (displacements) of the shadow relative to the
-original layer with the two topmost spin boxes. The <guilabel>Blur
-radius</guilabel> spinbox determines the radius in which the shadow will be
-blurred (to achieve a smooth transition at the shadow border). If you want
-a special color for the shadow, you can choose one with the
-<guilabel>Color</guilabel> field. The <guilabel>Opacity</guilabel> slider and
-spinbox can be used to make the shadow more or less transparent. Disable the
-<guilabel>Allow resizing</guilabel> checkbox if you don't want the layer to be
-resized in order to give it a shadow.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-layers-histogram">
-<title>The <guilabel>Histogram</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Histogram</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-histogram.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Histogram</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Histogram</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog shows a histogram for the current layer. With the
-<guilabel>Method:</guilabel> settings, you can choose what kind of histogram
-to show. You can change the channel(s) to show with the
-<guilabel>Channels:</guilabel> listbox, and the scale on which it should be
-drawn with the <guilabel>Linear</guilabel> and
-<guilabel>Logarithmic</guilabel> radio buttons. Under the preview, there are
-buttons available to zoom in to, and move over, the histogram. These are
-activated for 16-bit colorspace layers.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-layers-layerproperties">
-<title>The <guilabel>Layer Properties</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Layer Properties</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-layerproperties.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Layer Properties</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Layer Properties</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog is in essence the same as the <link
-linkend="commands-dialogs-layers-newlayer">New Layer</link> dialog, with the difference that
-you cannot change its colorspace or profile anymore. These properties are
-shown, though, to keep the information complete.
-</para>
-</sect3>
-
-<sect3 id="commands-dialogs-layers-layersize">
-<title>The <guilabel>Layer Size</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Layer Size</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-layersize.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Layer Size</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Layer Size</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog allows you to resize the current layer.
-Under <guilabel>Pixel dimensions</guilabel>, you can set which new size you
-want the layer to have. The original size is given as a reference. The new
-size can be set both as pixels or as a percentage, with 100% being the
-original size. If you select <guilabel>Constrain proportions</guilabel>, the
-new width and height will always be set to the same percentage. For example,
-if you have a layer of 200 x 100 pixels, and set the width to 20 pixels, the
-height will automatically be changed to 10. With this checkbox unselected, you
-can also resize the layer non-proportionally. The <guilabel>Filter:</guilabel>
-dropdown list can be used to select a different algorithm for resizing the
-layer.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-layers-newadjustmentlayer">
-<title>The <guilabel>New Adjustment Layer</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>New Adjustment Layer</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-newadjustmentlayer.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>New Adjustment Layer</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>New Adjustment Layer</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-In this dialog, you can select the type of adjustment layer to add to the
-image. In the left-hand list, you can see the available adjustment layers,
-each with a preview. When you select one, the <guilabel>Preview</guilabel>
-will change to show a correctly scaled preview of what the result of the
-adjustment layer is going to be. 
-</para><para>
-You can then choose to show either the original image or the preview of the
-adjustment layer with the radio buttons below the preview window. The buttons
-next to these allow you to zoom in, zoom out, and refresh the preview,
-respectively. The <guilabel>Autoupdate</guilabel> checkbox determines if the
-preview window should update automatically after you made a change.
-</para><para>
-The various options available for the filter that is used to create the
-adjustment layer, are shown at the bottom of the dialog. See the section on
-<link linkend="commands-dialogs-filters">filters</link> of this chapter for
-descriptions.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-layers-newlayer">
-<title>The <guilabel>New Layer</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>New Layer</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-newlayer.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>New Layer</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>New Layer</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-You can add a new layer to your image with this dialog. If you want a
-descriptive name for your layer, you can fill one in at
-<guilabel>Name:</guilabel>. You can select the desired colorspace for the new
-layer from the <guilabel>Colorspace:</guilabel> list, and the specific
-color profile for that colorspace at <guilabel>Profile:</guilabel>.
-You can preset the layer's <guilabel>Opacity</guilabel> (you can change it later with the slider in
-the <guilabel>Layer</guilabel> box), and choose the mode with which the layer should be composited
-onto the final image.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-layers-rotatelayer">
-<title>The <guilabel>Rotate Layer</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Rotate Layer</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-rotatelayer.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Rotate Layer</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Rotate Layer</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog, similar to the <link
-linkend="commands-dialogs-image-rotateimage"><guilabel>Rotate Image</guilabel>
-dialog</link>, allows you to rotate the current layer. You can choose the
-direction in which to rotate and the amount to rotate the layer by.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-layers-shearlayer">
-<title>The <guilabel>Shear Layer</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Shear Layer</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-shearlayer.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Shear Layer</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Shear Layer</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog works the same as the <link
-linkend="commands-dialogs-image-shearimage"><guilabel>Shear Image</guilabel>
-dialog</link>, except that it operates on the current layer instead of on the
-entire image.
-</para>
-
-</sect3>
-
-</sect2>
-
-<sect2 id="commands-dialogs-filters">
-<title>Dialogs for working with filters</title>
-
-<para>
-All filter dialogs consist of a filter-specific part, at the left, and a
-generic part, at the right. The generic part contains a preview window, which
-you can configure using the controls below it. Choose
-<guilabel>Preview</guilabel> or <guilabel>Original</guilabel> depending on
-whether you want the preview window to show the preview of the filter effect
-or the original image. The four buttons at the bottom right allow you to zoom
-in and zoom out, set the zooming factor to 100% (this shows the image at its
-original size), and refresh the preview, respectively. Furthermore, the option
-<guilabel>Autoupdate</guilabel> determines if the preview window is updated
-automatically. If you uncheck this checkbox, you will have to refresh the
-preview yourself.
-</para>
-
-<sect3 id="commands-dialogs-filters-blur">
-<title>The <guilabel>Blur</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Blur</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-blur.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Blur</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Blur</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog allows you to customize the way your image is blurred. The
-<guilabel>Half-width</guilabel> and <guilabel>Half-height</guilabel> spinboxes
-determine the size of the areas of your image that are consecutively blurred.
-With the <guilabel>Strength</guilabel> spinbox you can set the strength with which the
-blurring should be applied, and with the <guilabel>Angle</guilabel> spinbox
-you can add a rotation to the area. The <guilabel>Shape</guilabel> setting,
-finally, allows you to choose between circular and rectangular areas
-</para>
-
-</sect3>
-
-
-<sect3 id="commands-dialogs-filters-brightnesscontrast">
-<title>The <guilabel>Brightness / Contrast</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Brightness / Contrast</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-brightnesscontrast.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Brightness / Contrast</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Brightness / Contrast</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-With this dialog, you can customize the brightness and contrast of your image.
-</para><para>
-The curve diagram has a histogram-like background that shows you the abundance
-of various brightness levels. The curve itself (initially a diagonal line from
-bottom left to top right) determines to which new brightness level (on the
-vertical axis) pixels with a certain original level (on the horizontal axis) are
-to be mapped. For example, the default diagonal line from bottom left to top
-right sets every original pixel to its own brightness value, meaning no
-change. A horizontal line means that all pixels will get the same brightness.
-This means minimal contrast, the brightness itself is indicated by the height
-at which the line is placed.
-</para><para>
-You can click on a handle (red circle) to select it (a selected handle is
-indicated by a filled circle) and drag it around to change the shape of the
-curve. The curve will be drawn smoothly through the handles (always
-strictly from left to right). If you click on the curve, a handle is added to
-it at that position. Clicking somewhere else in the image will also add a
-handle at that point. You can press <keycap>Delete</keycap> to delete the
-currently selected handle.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-bumpmap">
-<title>The <guilabel>Bumpmap</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Bumpmap</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-bumpmap.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Bumpmap</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Bumpmap</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-You can apply a bumpmap effect and customize it using this dialog. One layer
-is used as bumpmap layer: it is read as grayscale image and the gray values of
-its pixels are used to to distort the other layer for creating the depth
-illusion. High grey values, &ie; more white, mean a larger height, small
-values, &ie; near black, mean a smaller height &mdash; or a larger depth, the
-height can get <quote>below sealevel</quote>. A light source, shining
-<quote>from above</quote> on the image that lies <quote>on the ground</quote>,
-is simulated to determine the depth and direction of the shadows.
-</para><para>
-The first option in this dialog offers you the selection of the
-<guilabel>Bumpmap layer</guilabel>.
-</para><para>
-Under <guilabel>Type</guilabel>, you can select what kind of bumpmap to be
-applied. There are three types, <guilabel>Linear</guilabel> (a normal
-application of the bumpmap), <guilabel>Spherical</guilabel> (focusing on the
-extremes, that is, the shadow and highlight values) and
-<guilabel>Sinusoidal</guilabel> (focusing on the midtone values).
-</para><para>
-Then, there are three options to modify the bumpmap apart from its
-algorithmical application. With <guilabel>Compensate for darkening</guilabel>,
-the image is restored to about its original average lightness if using the
-bumpmap filter would make it darker. The <guilabel>Invert bumpmap</guilabel>
-option creates an inverted bumpmap (high and low are reversed). With
-<guilabel>Tile bumpmap</guilabel>, a bumpmap layer that is smaller than the
-layer it is applied to, will be tiled (repeatedly) to cover the entire layer.
-</para><para>
-Under <guilabel>Settings</guilabel>, you can select the mathematical
-parameters for the bumpmap. First of all, <guilabel>Azimuth</guilabel> (the
-angle of the light source in the X-Y plane), <guilabel>Elevation</guilabel>
-(the height of the simulated light source above the surface in degrees, with 0
-degrees being on the ground and 90 degrees being vertically above the image),
-and <guilabel>Depth</guilabel> (the maximal vertical distortion of the image).
-</para><para>
-Then, there are the <guilabel>X offset</guilabel> and <guilabel>Y
-offset</guilabel>, with which you can displace the bumpmap layer relative to
-the destination layer, <guilabel>Water level</guilabel> (the depth seen as
-neutral), and <guilabel>Ambient light</guilabel>, which determines the
-relative amount of ambient (environmental) light.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-coloradjustment">
-<title>The <guilabel>Color Adjustment</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Color Adjustment</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-coloradjustment.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Color Adjustment</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Color Adjustment</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog allows you to customize the <guilabel>Color Adjustment</guilabel> filter. You can use
-the curve (see the section on <link
-linkend="commands-dialogs-filters-brightnesscontrast">Brightness /
-Contrast</link> for a description on the curve) to determine the mapping
-from old to new color levels, for each of the channels separately.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-colortoalpha">
-<title>The <guilabel>Color to Alpha</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Color to Alpha</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-colortoalpha.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Color to Alpha</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Color to Alpha</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-With this dialog, you can make parts of the image having a certain color
-transparent (officially <quote>alpha-transparent</quote>). You can select the
-color you want to remove from the image (replacing it with transparency) with
-the <guilabel>Color</guilabel> swatch, and how much a color may differ from
-the selected one before it is considered not to match, with the
-<guilabel>Threshold</guilabel> spinbox. Setting a threshold of zero (0)
-ensures that only pixels with the exact matching color will be made
-transparent, higher thresholds will make other colors match as well.
-</para>
-
-</sect3>
-<sect3 id="commands-dialogs-filters-colortransfer">
-<title>The <guilabel>Color Transfer</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Color Transfer</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-colortransfer.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Color Transfer</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Color Transfer</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog lets you copy the colors from one image (the <guilabel>Reference
-Image</guilabel>) to the current one. The colors in both images are compared
-and each color in the one you are working with, will be replaced by the
-nearest one in the reference image.
-</para>
-
-</sect3>
-
-<!--
-<sect3 id="commands-dialogs-filters-cubism">
-<title>The <guilabel>Cubism</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Cubism</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-cubism.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Cubism</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The Cubism dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog has two filter-specific options. The <guilabel>Tile
-size:</guilabel> slider and spinbox determine how big the tiles are in which
-the image is subdivided, the <guilabel>Tile saturation:</guilabel> setting
-sets the color saturation of the tiles.
-</para>
-
-</sect3>
--->
-
-<sect3 id="commands-dialogs-filters-customconvolution">
-<title>The <guilabel>Custom Convolution</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Custom Convolution</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-customconvolution.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Custom Convolution</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Custom Convolution</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-With this filter, you can apply a customized distortion effect to your image.
-The nine spinboxes at the top left determine the distortion. Each pixel is
-assigned a new value based on these values: the old color values of the pixel
-inself and the eight surrounding pixels are each multiplied by the values in
-the respective spinboxes, these results are added, and the final result is the
-new color value for the pixel. Before being applied, this final result can be
-multiplied with a certain <guilabel>Factor:</guilabel> or a certain
-<guilabel>Offset:</guilabel> can be added to it.
-</para><para>
-In the example screenshot, each pixel is assigned a new value based on its
-own (the 1 in the center), to which are added the values of the pixels to its
-top right and directly below it (each with a factor of 1, &ie; the actual
-value, since multiplying by one has no effect), and from which are subtracted
-the values of the pixels to its bottom right and directly above it (added with
-a factor of -1, so subtracted by a factor of 1).
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-emboss">
-<title>The <guilabel>Emboss</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Emboss</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-emboss.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Emboss</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Emboss</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog contains just one option, the <guilabel>Depth:</guilabel> slider
-and spinbox which determines the depth of the embossing effect.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-filtersgallery">
-<title>The <guilabel>Filters Gallery</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Filters Gallery</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-filtersgallery.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Filters Gallery</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Filters Gallery</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog can be used to get a quick overview of what the various available
-filters do. The filters are in turn applied to the current image and the
-results are put in the left list box as thumbnails. If you select one, its
-options become available in the <guilabel>Configuration</guilabel> section.
-See the description of the respective filter for details.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-gaussiannoise">
-<title>The <guilabel>Gaussian Noise Reduction</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Gaussian Noise Reduction</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-gaussiannoise.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Gaussian Noise Reduction</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Gaussian Noise Reduction</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog allows you to customize a Gaussian noise reduction. The
-<guilabel>Threshold</guilabel> setting is a measure for how much noise should
-be removed (&ie; how quickly a <quote>lonely</quote> pixel should be made
-equal to its surroundings), while the <guilabel>Window Size</guilabel> setting
-determines the radius of the area considered when changing pixels.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-lenscorrection">
-<title>The <guilabel>Lens Correction</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Lens Correction</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-lenscorrection.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Lens Correction</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Lens Correction</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-With this dialog, you can fix an image which is distorted due to common lens
-anomalies. You can specify a <guilabel>Distortion correction</guilabel>,
-indicating how much the image should be corrected if its
-concaveness / convexness is not right, for areas near the center and areas
-near the edges. If you want an asymmetrical correction, you can specify
-different <guilabel>X</guilabel> and <guilabel>Y</guilabel> coordinates for
-the center (in percentages of the total width and height, measured from the
-top left).
-</para><para>
-You can also correct a too light or too dark image with the
-<guilabel>Brightness correction</guilabel> spinbox.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-imagerestoration">
-<title>The <guilabel>Image Restoration</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Image Restoration</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-imagerestoration.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Image Restoration</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Image Restoration</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-Using this dialog, you can specify exactly how the image restoration should
-be done. This filter tries to increase the quality of an image, for instance
-by removing scratches. Various options are available to customize its
-behaviour.
-</para><para>
-(Unfortunately, these are not described as of yet.)
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-oilpaint">
-<title>The <guilabel>Oilpaint</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Oilpaint</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-oilpaint.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Oilpaint</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Oilpaint</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog can configure two parameters for the associated filter. The
-<guilabel>Brush size:</guilabel> setting determines the size of the brush that
-is used to simulate the oilpaint effect, the <guilabel>Smooth:</guilabel>
-setting specifies if the difference in colors between adjacent
-<quote>swatches</quote> may be large (low smoothness) or should be small (high
-smoothness).
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-pixelize">
-<title>The <guilabel>Pixelize</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Pixelize</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-pixelize.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Pixelize</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Pixelize</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-On this dialog, you can adjust two settings. <guilabel>Pixel width:</guilabel>
-and <guilabel>Pixel height:</guilabel> indicate the width and height of the
-area that should be taken together and averaged to form one new, large
-<quote>pixel</quote>.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-raindrops">
-<title>The <guilabel>Raindrops</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Raindrops</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-raindrops.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Raindrops</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Raindrops</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This filter can be configured using the settings <guilabel>Drop
-size:</guilabel> (the average diameter of the raindrops),
-<guilabel>Number:</guilabel> (the number of raindrop effects that should be
-added to the image), and <guilabel>Fish eyes:</guilabel> (the percentage of
-raindrops that should be rendered as fisheye lens effects instead of plain
-raindrop effects).
-</para>
-</sect3>
-
-<sect3 id="commands-dialogs-filters-randomnoise">
-<title>The <guilabel>Random Noise</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Random Noise</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-randomnoise.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Random Noise</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Random Noise</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This filter adds random noise (speckles, or something similar) to your image.
-There are two customizable settings: the amount of noise
-(<guilabel>Level</guilabel>, as a percentage) and the
-<guilabel>Opacity</guilabel> of the noise (should the original color still be
-a bit visible or not).
-</para>
-
-</sect3>
-<sect3 id="commands-dialogs-filters-randompick">
-<title>The <guilabel>Random Pick</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Random Pick</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-randompick.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Random Pick</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Random Pick</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-In this dialog, you can specify parameters for the <guilabel>Random Pick</guilabel>
-filter. The <guilabel>Level</guilabel> setting determines how much pixels will
-be affected (measured as a percentage), the area which is looked in to take a
-new color for a pixel is set with the <guilabel>Size of the window</guilabel>
-setting, and the <guilabel>Opacity</guilabel> of the modifications can be set as
-well.
-</para>
-
-</sect3>
-
-
-<sect3 id="commands-dialogs-filters-roundcorners">
-<title>The <guilabel>Round Corners</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Round Corners</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-roundcorners.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Round Corners</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Round Corners</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog has one setting: the radius of the rounded corners.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-smalltiles">
-<title>The <guilabel>Small Tiles</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Small Tiles</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-smalltiles.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Small Tiles</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Small Tiles</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-In this dialog, you can set the amount of subdivisions with the
-<guilabel>Number of tiles</guilabel> settings.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-sobel">
-<title>The <guilabel>Sobel</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Sobel</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-sobel.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Sobel</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Sobel</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-Here, you can set the parameters for the <guilabel>Sobel</guilabel> edge
-detection filter. First of all you can determine which directions to sobel in:
-horizontally, vertically, or both. The <guilabel>Keep sign of
-result</guilabel> setting does not affect regular images.
-<guilabel>Make image opaque</guilabel> determines whether the resulting image
-is opaque or transparent.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-unsharpmask">
-<title>The <guilabel>Unsharp Mask</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Unsharp Mask</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-unsharpmask.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Unsharp Mask</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Unsharp Mask</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog offers three options for the sharpening filter
-<guilabel>Unsharp Mask</guilabel>: the radius (<guilabel>Half-size</guilabel>)
-of the mask, the <guilabel>Amount</guilabel> of sharpening that should be
-done, and the <guilabel>Threshold</guilabel> level.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-wave">
-<title>The <guilabel>Wave</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Wave</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-wave.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Wave</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Wave</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-For both the horizontal and the vertical components of the wave distortion
-(note: a vertical wave means that the vertical position is dependent on the
-horizontal one, and hence looks like a <quote>W</quote>),
-you can determine four settings here. The <guilabel>Wavelength</guilabel> (a
-shorter wavelength means a more erratical wave), the
-<guilabel>Shift</guilabel> (which point of the wave should be started at), the
-<guilabel>Amplitude</guilabel> (the amount of distortion), and the
-<guilabel>Shape</guilabel> (<guilabel>Sinusoidal</guilabel> or rounded,
-versus <guilabel>Triangle</guilabel> or pointy).
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-filters-waveletnoise">
-<title>The <guilabel>Wavelet Noise Reduction</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Wavelet Noise Reduction</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-waveletnoise.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Wavelet Noise Reduction</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Wavelet Noise Reduction</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-The only setting here, <guilabel>Threshold</guilabel>, indicates how easily pixels
-are seen as noise that should be removed and made equal to the surrounding area.
-</para>
-
-</sect3>
-
-</sect2>
-
-<sect2 id="commands-dialogs-misc">
-<title>Miscellaneous dialogs</title>
-
-<sect3 id="commands-dialogs-misc-addpalette">
-<title>The <guilabel>Add Palette</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Add Palette</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-addpalette.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Add Palette</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Add Palette</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-With this dialog, you can add a custom color palette to &krita;. Fill in the
-name for your palette in the text field at the top. Then make the palette: use
-the button <guibutton>Add New Color...</guibutton> to add a color to the palette
-and <guibutton>Remove Selected Color</guibutton> to remove the currently
-selected color. Click the button <guibutton>Add to Predefined
-Palettes</guibutton> to add your newly created palette to the palette list, or
-just choose <guibutton>OK</guibutton> when you're done.
-</para>
-
-</sect3>
-
-<sect3 id="commands-dialogs-misc-documentinformation">
-<title>The <guilabel>Document Information</guilabel> dialog</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Document Information</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-documentinformation.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Document Information</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Document Information</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This dialog is the same as in other &koffice; programs. You can enter various
-information about your document here, which will be saved with the document so
-that you can retrieve it later to review or edit.
-</para>
-
-<para>
-On the <guilabel>General</guilabel> tab, you can enter the title, subject and
-keywords, as well as an abstract. On the bottom of this tab, some statistical
-information is displayed. On the <guilabel>Author</guilabel> tab, you can
-store information about yourself. The third tab, <guilabel>User-defined
-Metadata</guilabel>, allows you to store any other information.
-</para>
-</sect3>
-
-</sect2>
-
-
-</sect1>
diff --git a/doc/krita/commands-menus.docbook b/doc/krita/commands-menus.docbook
deleted file mode 100644
index b3abdcc93..000000000
--- a/doc/krita/commands-menus.docbook
+++ /dev/null
@@ -1,2158 +0,0 @@
-<sect1 id="commands-menus">
-<title>Menus</title>
-
-<para>
-Some of &krita;'s menus are standard in &kde; or &koffice;, while others are
-particular to &krita;. The <guimenu>File</guimenu> menu contains commands for
-manipluating files. In the <guimenu>Edit</guimenu> menu, you can find commands
-that do things with the current selection.  With the commands from the
-<guimenu>View</guimenu> menu, you can change the way you look at the image.
-The <guimenu>Image</guimenu> menu contains commands that change the entire
-image, like converting all layers to another color model or resizing or
-scaling the image. The <guimenu>Layer</guimenu> menu is like the
-<guimenu>Image</guimenu> menu, but the commands only work on the current
-layer. The <guimenu>Select</guimenu> menu contains commands to create and
-manipulate selections. The <guimenu>Filter</guimenu> menu contains all the
-filters you have installed. These work on the current layer. The
-<guimenu>Scripts</guimenu> menu contains entries for working with scripts.
-The <guimenu>Settings</guimenu> menu is again common to &koffice; and allows
-you to manipulate the toolbars, shortcuts and configuration of &krita;.
-Finally, the <guimenu>Help</guimenu> menu gives you access to various
-(hopefully helpful) information, such as this handbook.
-</para>
-
-<!-- ====== File ================================================ -->
-
-<sect2 id="commands-menus-file">
-<title>The <guimenu>File</guimenu> Menu</title>
-<para>
-<variablelist>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>N</keycap></keycombo></shortcut>
-<guimenu>File</guimenu>
-<guimenuitem>New</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Creates a new document.</action> This displays the
-<guilabel>New document</guilabel> dialog, standard across &koffice;, in which
-you can choose to start with a blank document of a certain type, or to open a
-recently opened document.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>O</keycap></keycombo></shortcut>
-<guimenu>File</guimenu>
-<guimenuitem>Open...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens an existing document.</action>
-Because this uses the usual &kde; <guilabel>Open Document</guilabel>
-dialog to let you select a file, you can open files via various protocols
-(ftp, fish, etcetera).
-</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>File</guimenu>
-<guimenuitem>Open Recent</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens a recently
-opened document.</action> Clicking this menu item will show a 
-submenu with the ten most recently opened documents in which
-you can quickly open an image you have been working on lately.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>S</keycap></keycombo></shortcut>
-<guimenu>File</guimenu>
-<guimenuitem>Save</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Saves the document.</action> If you
-haven't saved the document before, you will get the <guilabel>Save
-Document As</guilabel> dialog, otherwise the document will be saved under
-its current name. </para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>File</guimenu>
-<guimenuitem>Save As...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Saves the document under a different name.</action>
-The default &kde; dialog is used, so saving remotely via ftp
-or ssh (fish) is perfectly possible.</para> </listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>File</guimenu>
-<guimenuitem>Reload</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Reloads the current document
-from disk.</action> All changes since you last saved the document
-will be lost.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>File</guimenu>
-<guimenuitem>Import...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens an existing document.</action> Unlike 
-<menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>,
-this does not load the actual document, but only its contents: you receive a
-copy of the chosen file as a new document.
-</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>File</guimenu>
-<guimenuitem>Export...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Saves the document under a different name.</action> (For
-the moment, this is the same as
-<menuchoice><guimenu>File</guimenu><guimenuitem>Save
-As...</guimenuitem></menuchoice>.)
-</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>File</guimenu>
-<guimenuitem>Mail...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Sends the document via email.</action> The default &kde;
-mail compose window will be used.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>P</keycap></keycombo></shortcut>
-<guimenu>File</guimenu>
-<guimenuitem>Print...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Prints the document.</action> You will see the usual
-&kde; print dialog appear.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>File</guimenu>
-<guimenuitem>Print Preview...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Shows a preview of what the printed document
-will look like.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>File</guimenu>
-<guimenuitem>Document Information</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-misc-documentinformation"><guilabel>Document
-Information</guilabel> dialog</link>.</action> This dialog can be used to add
-various information to the image, like title, subject, keywords, author
-information, and any other information you want to save with the
-image.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>W</keycap></keycombo></shortcut>
-<guimenu>File</guimenu>
-<guimenuitem>Close</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Closes the document.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>Q</keycap></keycombo></shortcut>
-<guimenu>File</guimenu>
-<guimenuitem>Quit</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Quits &krita;.</action></para></listitem>
-</varlistentry>
-
-</variablelist>
-</para>
-
-</sect2>
-
-<!-- ====== Edit ================================================ -->
-
-
-<sect2 id="commands-menus-edit">
-<title>The <guimenu>Edit</guimenu> Menu</title>
-<para>
-<variablelist>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>Z</keycap></keycombo></shortcut>
-<guimenu>Edit</guimenu>
-<guimenuitem>Undo</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Undoes the last action carried out.</action> Actions
-(like painting a stroke, filling an area, etcetera) are stored on
-a <quote>stack</quote>. The last action you did will be undone, and the image is
-restored to the state before that. Immediately choosing
-<guimenuitem>Undo</guimenuitem> again will undo the action that was carried
-out before the one just undone, etcetera.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;&Shift;<keycap>Z</keycap></keycombo></shortcut>
-<guimenu>Edit</guimenu>
-<guimenuitem>Redo</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Redoes the last action undone.</action> As described at
-<guimenuitem>Undo</guimenuitem>, a series of actions can be undone. With
-<guimenuitem>Redo</guimenuitem>, an action undone is carried out again, and if
-more actions have been undone before that, you can redo these in
-turn.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>X</keycap></keycombo></shortcut>
-<guimenu>Edit</guimenu>
-<guimenuitem>Cut</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Cuts the selection to the
-clipboard.</action> The current selection is put on the &kde; 
-clipboard, and the selection is cleared.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>C</keycap></keycombo></shortcut>
-<guimenu>Edit</guimenu>
-<guimenuitem>Copy</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Copies the selection to the
-clipboard.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>V</keycap></keycombo></shortcut>
-<guimenu>Edit</guimenu>
-<guimenuitem>Paste</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Pastes the contents of the
-clipboard.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Edit</guimenu>
-<guimenuitem>Paste into New Image</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Pastes the contents of the
-clipboard as a new image.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Edit</guimenu>
-<guimenuitem>Clear</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Clears the selection.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Alt;&Backspace;</keycombo></shortcut>
-<guimenu>Edit</guimenu>
-<guimenuitem>Fill with Foreground Color</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Fills the selection with the current foreground
-color.</action> The current foreground color is shown in the top left color
-square of the <guilabel>Colors</guilabel> palette.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut>&Backspace;</shortcut>
-<guimenu>Edit</guimenu>
-<guimenuitem>Fill with Background Color</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Fills the selection with the current background
-color.</action> The current background color is shown in the bottom right color
-square in the top left corner of the <guilabel>Colors</guilabel>
-palette.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Edit</guimenu>
-<guimenuitem>Fill with Pattern</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Fills the selection with the current pattern.</action>
-The current pattern is shown on the <guilabel>Brush Shapes</guilabel> toolbar,
-usually at the top right of the &krita; window.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Edit</guimenu>
-<guisubmenu>Resources</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Contains options for working with color
-palettes.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Edit</guimenu>
-<guisubmenu>Resources</guisubmenu>
-<guimenuitem>Add New Palette...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-misc-addpalette"><guilabel>Add Palette</guilabel>
-dialog</link>.</action> You can create a custom color palette
-here.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Edit</guimenu>
-<guisubmenu>Resources</guisubmenu>
-<guimenuitem>Edit Palette...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <guilabel>Edit Palette</guilabel>
-dialog.</action> Choose a color palette to edit from this list. You will then be
-given the same dialog as with <guilabel>Add Palette</guilabel>, with the
-difference that you edit the chosen color palette instead of adding a new
-one.</para>
-</listitem></varlistentry>
-
-</variablelist>
-</para>
-
-</sect2>
-
-<!-- ====== View ================================================ -->
-
-
-<sect2 id="commands-menus-view">
-<title>The <guimenu>View</guimenu> Menu</title>
-<para>
-<variablelist>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;&Shift;<keycap>F</keycap></keycombo></shortcut>
-<guimenu>View</guimenu>
-<guimenuitem>Full Screen Mode</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Switches between normal view
-and full screen view.</action> In full screen view, the title
-bar is hidden and the actual application window is resized to the entire
-screen.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guimenuitem>New View</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens a new view for the
-current document.</action> A new application window is opened
-so that you can have two different views of the same document, for example
-to work on different areas at the same time, or to look at an area at different
-zoom levels simultaneously. Changes you make to the document in one view are
-immediately visible in other views.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;&Shift;<keycap>W</keycap></keycombo></shortcut>
-<guimenu>View</guimenu>
-<guimenuitem>Close All Views</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Closes all views.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guimenuitem>Split View</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Splits the current view.</action> The
-drawing area will be split into two parts, which can be used
-just like two views in different windows.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guimenuitem>Remove View</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Unsplits the view.</action> The second
-view (the bottom or right one) will be closed and the first one will remain
-visible.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Splitter Orientation</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Changes the way the split
-view is displayed.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Splitter Orientation</guisubmenu>
-<guimenuitem>Vertical</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Changes the orientation of
-the splitter to vertical.</action> The two split
-views will be positioned side by side.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Splitter Orientation</guisubmenu>
-<guimenuitem>Horizontal</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Changes the orientation of
-the splitter to horizontal.</action> The two split views will
-be positioned above each other.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>+</keycap></keycombo></shortcut>
-<guimenu>View</guimenu>
-<guimenuitem>Zoom In</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Zooms in on the view.</action> The view
-will be more detailed, but a smaller area will be visible at the
-same time.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>-</keycap></keycombo></shortcut>
-<guimenu>View</guimenu>
-<guimenuitem>Zoom Out</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Zooms out of the view.</action> A larger
-area will be visible at the same time, but it will be less
-detailed.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>0</keycap></keycombo></shortcut>
-<guimenu>View</guimenu>
-<guimenuitem>Actual Pixels</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Zooms the view to actual pixel
-level.</action> (1:1 scale)</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guimenuitem>Actual Size</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Zooms the view to the actual image
-size.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guimenuitem>Fit to Page</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Zooms the view so that the image fills the available
-workspace.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>R</keycap></keycombo></shortcut>
-<guimenu>View</guimenu>
-<guimenuitem>Show Rulers</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Toggles display of the
-rulers on and off.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guimenuitem>Show Grid</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Toggles display of the
-grid lines on and off.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Grid Spacing</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Contains various options to set the distance between
-grid lines.</action> The available spacing options are
-<guimenuitem>1x1</guimenuitem>, <guimenuitem>2x2</guimenuitem>,
-<guimenuitem>5x5</guimenuitem>, <guimenuitem>10x10</guimenuitem>,
-<guimenuitem>20x20</guimenuitem>, and <guimenuitem>40x40</guimenuitem>.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Show Perspective Grid</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Toggles display of the perspective grid on and off.</action>
-</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Clear Perspective Grid</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Clears the perspective grid.</action> (All grid lines
-that were created, are deleted.)</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Palettes</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Allows you to toggle the
-display of the various palettes on and off.</action> The
-default view of &krita; shows all palettes, and the items are listed as Hide
-<replaceable>palette</replaceable> therefore. When a certain palette is hidden,
-the corresponding menu item changes to Show
-<replaceable>palette</replaceable>.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;&Shift;<keycap>H</keycap></keycombo></shortcut>
-<guimenu>View</guimenu>
-<guisubmenu>Palettes</guisubmenu>
-<guimenuitem>Hide All Palette Windows</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Hides all palettes.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Palettes</guisubmenu>
-<guimenuitem>Hide Overview</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Hides the
-<guilabel>Overview</guilabel> palette.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Palettes</guisubmenu>
-<guimenuitem>Hide HSV</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Hides the
-<guilabel>HSV</guilabel> palette.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Palettes</guisubmenu>
-<guimenuitem>Hide RGB</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Hides the
-<guilabel>RGB</guilabel> palette.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Palettes</guisubmenu>
-<guimenuitem>Hide Gray</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Hides the
-<guilabel>Gray</guilabel> palette.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Palettes</guisubmenu>
-<guimenuitem>Hide Palettes</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Hides the
-<guilabel>Palettes</guilabel> palette.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Palettes</guisubmenu>
-<guimenuitem>Hide Layers</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Hides the <guilabel>Layers</guilabel>
-palette.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Palettes</guisubmenu>
-<guimenuitem>Hide Scripts Manager</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Hides the <guilabel>Scripts Manager</guilabel>.
-</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Palettes</guisubmenu>
-<guimenuitem>Hide Histogram</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Hides the
-<guilabel>Histogram</guilabel> palette.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Palettes</guisubmenu>
-<guimenuitem>Hide Watercolors</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Hides the <guilabel>Watercolors</guilabel>
-palette.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guisubmenu>Palettes</guisubmenu>
-<guimenuitem>Hide Brush, Ellipse, Filter tool, Line, Polygon &etc;</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Hides the palette of the selected 
-<guilabel>Tool</guilabel>.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>View</guimenu>
-<guimenuitem>Wetness Visualisation</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Toggles indication of the wetness of watercolor paint
-on and off.</action></para></listitem>
-</varlistentry>
-
-</variablelist>
-</para>
-
-</sect2>
-
-<!-- ====== Image =============================================== -->
-
-
-<sect2 id="commands-menus-image">
-<title>The <guimenu>Image</guimenu> Menu</title>
-<para>
-<variablelist>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Image</guimenu>
-<guimenuitem>Image Properties</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-image-imageproperties"><guilabel>Image
-Properties</guilabel> dialog</link>,
-in which you can change the image name, size,
-profile and description.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Image</guimenu>
-<guimenuitem>Resize Image to Size of Current Layer</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Resizes the image to the
-size of the currently active layer.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Image</guimenu>
-<guisubmenu>Substrate...</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-image-substrate"><guilabel>Substrate</guilabel> dialog</link>.</action></para></listitem>
-</varlistentry>
-<varlistentry>
-<term><menuchoice>
-<guimenu>Image</guimenu>
-<guisubmenu>Rotate</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Rotates the image.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Image</guimenu>
-<guisubmenu>Rotate</guisubmenu>
-<guimenuitem>Rotate Image...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-image-rotateimage"><guilabel>Rotate Image</guilabel>
-dialog</link>.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Image</guimenu>
-<guisubmenu>Rotate</guisubmenu>
-<guimenuitem>Rotate Image CW</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Rotates the image 90 degrees
-clockwise.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Image</guimenu>
-<guisubmenu>Rotate</guisubmenu>
-<guimenuitem>Rotate Image CCW</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Rotates the image 90 degrees counterclockwise
-(270 degrees clockwise).</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Image</guimenu>
-<guisubmenu>Rotate</guisubmenu>
-<guimenuitem>Rotate 180</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Rotates the image 180 degrees.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Image</guimenu>
-<guimenuitem>Convert Image Type...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-image-convertimagetype"><guilabel>Convert All
-Layers</guilabel> dialog</link>.</action> This allows you to convert the image
-to a different color space. Apart from the color space, the profile and
-rendering intent can be specified as well.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Image</guimenu>
-<guimenuitem>Separate Image...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the
-<link linkend="commands-dialogs-image-separateimage"><guilabel>Separate Image</guilabel>
-dialog</link>.</action> You can separate the image into layers for each
-individual colorspace component there.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Image</guimenu>
-<guimenuitem>Change Image Size...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the
-<link linkend="commands-dialogs-image-imagesize"><guilabel>Image Size</guilabel>
-dialog </link>.</action> You can resize or scale the image using various
-algorithms here.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Image</guimenu>
-<guimenuitem>Shear Image...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-image-shearimage"><guilabel>Shear Image</guilabel>
-dialog</link>.</action> You can shear the image in X or Y directions,
-or both.</para></listitem>
-</varlistentry>
-
-</variablelist>
-</para>
-
-</sect2>
-
-<!-- ====== Layer =============================================== -->
-
-<sect2 id="commands-menus-layer">
-<title>The <guimenu>Layer</guimenu> Menu</title>
-
-<para>
-<variablelist>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Creates a new layer.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;&Shift;<keycap>N</keycap></keycombo></shortcut>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guimenuitem>Add...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the
-<link linkend="commands-dialogs-layers-newlayer"><guilabel>New Layer</guilabel>
-dialog</link>.</action> This will create a new empty
-layer. You can set the name, opacity, composite mode and
-layer type.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guisubmenu>Object Layer</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Creates a new layer for a
-given &koffice; object type.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guisubmenu>Object Layer</guisubmenu>
-<guimenuitem>Scalable Graphics</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Creates a new layer for an
-embedded &karbon14; object.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guisubmenu>Object Layer</guisubmenu>
-<guimenuitem>Text Documents</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Creates a new layer for an
-embedded &kword; document.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guisubmenu>Object Layer</guisubmenu>
-<guimenuitem>Flowchart &amp; Diagram</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Creates a new layer for an embedded
-&kivio; object.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guisubmenu>Object Layer</guisubmenu>
-<guimenuitem>Slide Presentations</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Creates a new layer for an embedded
-&kpresenter; object.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guisubmenu>Object Layer</guisubmenu>
-<guimenuitem>Image Object</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Creates a new layer for an
-embedded &krita; object.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guisubmenu>Object Layer</guisubmenu>
-<guimenuitem>Report Template</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Creates a new layer for an embedded
-&kugar; Designer object.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guisubmenu>Object Layer</guisubmenu>
-<guimenuitem>Chart</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Creates a new layer for an
-embedded &kchart; object.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guisubmenu>Object Layer</guisubmenu>
-<guimenuitem>Formula Editor</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Creates a new layer for an
-embedded &kformula; object.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guisubmenu>Object Layer</guisubmenu>
-<guimenuitem>Report Generator</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Creates a new layer for an
-embedded &kugar; object.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guisubmenu>Object Layer</guisubmenu>
-<guimenuitem>Project Management</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Creates a new layer for an
-embedded KPlato object.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guisubmenu>Object Layer</guisubmenu>
-<guimenuitem>Spreadsheets</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Creates a new layer for an
-embedded &kspread; document.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guimenuitem>Adjustment Layer</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-layers-newadjustmentlayer"><guilabel>New Adjustment
-Layer</guilabel>dialog</link>.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guimenuitem>Insert Image as Layer...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <guilabel>Import Image</guilabel>
-dialog.</action> You can browse and select an image file,
-which will be inserted in a new layer.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;&Shift;<keycap>J</keycap></keycombo></shortcut>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guimenuitem>Cut Selection to New Layer</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Cuts the current selection
-and inserts it as a new layer.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>J</keycap></keycombo></shortcut>
-<guimenu>Layer</guimenu>
-<guisubmenu>New</guisubmenu>
-<guimenuitem>Copy Selection to New Layer</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Copies the current selection
-and inserts it as a new layer.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guimenuitem>Remove</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Removes the current layer
-and its contents.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guimenuitem>Duplicate</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Duplicates the current
-layer.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guimenuitem>Hide/Show</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Toggles the visibility of
-the current layer in the image editing window.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Mask</guisubmenu>
-</menuchoice></term>
-<listitem><para>Contains actions for working with layer masks.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Mask</guisubmenu>
-<guimenuitem>Create Mask</guimenuitem>
-</menuchoice></term>
-<listitem><para><action></action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Mask</guisubmenu>
-<guimenuitem>Mask From Selection</guimenuitem>
-</menuchoice></term>
-<listitem><para><action></action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Mask</guisubmenu>
-<guimenuitem>Mask To Selection</guimenuitem>
-</menuchoice></term>
-<listitem><para><action></action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Mask</guisubmenu>
-<guimenuitem>Apply Mask</guimenuitem>
-</menuchoice></term>
-<listitem><para><action></action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Mask</guisubmenu>
-<guimenuitem>Remove Mask</guimenuitem>
-</menuchoice></term>
-<listitem><para><action></action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Mask</guisubmenu>
-<guimenuitem>Edit Mask</guimenuitem>
-</menuchoice></term>
-<listitem><para><action></action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Mask</guisubmenu>
-<guimenuitem>Show Mask</guimenuitem>
-</menuchoice></term>
-<listitem><para><action></action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>]</keycap></keycombo></shortcut>
-<guimenu>Layer</guimenu>
-<guimenuitem>Raise</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Moves the current layer one
-level upward.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>[</keycap></keycombo></shortcut>
-<guimenu>Layer</guimenu>
-<guimenuitem>Lower</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Moves the current layer one
-level downward.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;&Shift;<keycap>]</keycap></keycombo></shortcut>
-<guimenu>Layer</guimenu>
-<guimenuitem>To Top</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Moves the current layer to the
-top.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;&Shift;<keycap>[</keycap></keycombo></shortcut>
-<guimenu>Layer</guimenu>
-<guimenuitem>To Bottom</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Moves the current layer to
-the bottom.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guimenuitem>Save Layer as Image...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <guilabel>Export Layer</guilabel>
-dialog.</action> The current layer will be saved to the
-chosen file.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guimenuitem>Flip on X Axis</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Flips the current layer
-horizontally.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guimenuitem>Flip on Y Axis</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Flips the current layer
-vertically.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guimenuitem>Properties</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-layers-layerproperties"><guilabel>Layer
-Properties</guilabel> dialog</link>.</action> You can change the name,
-colorspace, opacity, composite mode and position of the current layer
-here.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>E</keycap></keycombo></shortcut>
-<guimenu>Layer</guimenu>
-<guimenuitem>Merge with Layer Below</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Merges the current layer
-with the one below it.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;&Shift;<keycap>E</keycap></keycombo></shortcut>
-<guimenu>Layer</guimenu>
-<guimenuitem>Flatten Image</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Merges all visible layers.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Rotate</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Rotates the current layer.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Rotate</guisubmenu>
-<guimenuitem>Rotate Layer...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-layers-rotatelayer"><guilabel>Rotate Layer</guilabel>
-dialog</link>.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Rotate</guisubmenu>
-<guimenuitem>Rotate CW</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Rotates the current layer 90 degrees
-clockwise.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Rotate</guisubmenu>
-<guimenuitem>Rotate CCW</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Rotates the current layer 90 degrees counterclockwise
-(270 degrees clockwise).</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Rotate</guisubmenu>
-<guimenuitem>Rotate 180</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Rotates the current layer by
-180 degrees.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guimenuitem>Histogram...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-layers-histogram"><guilabel>Histogram</guilabel>
-dialog</link>, in which you can see histograms for the current
-layer.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guimenuitem>Convert Layer Type...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the
-<link linkend="commands-dialogs-layers-convertlayertype"><guilabel>Convert
-Current Layer</guilabel> dialog</link>.</action> You can
-set various options with respect to the colorspace and
-rendering intent.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guimenuitem>Scale Layer...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-layers-layersize"><guilabel>Layer
-Size</guilabel> dialog</link>.</action> You can choose the new
-dimensions and the resize filter to use.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Layer Effects</guisubmenu>
-</menuchoice></term>
-<listitem><para>Contains commands to add effects to the current layer.
-</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guisubmenu>Layer Effects</guisubmenu>
-<guimenuitem>Add Drop Shadow...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-layers-dropshadow"><guilabel>Drop Shadow</guilabel>
-dialog</link>.</action> This dialog can be used to add a drop shadow beneath
-the current layer.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Layer</guimenu>
-<guimenuitem>Shear Layer...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-layers-shearlayer"><guilabel>Shear Layer</guilabel>
-dialog</link>.</action> You can select the X and Y angles to shear
-by.</para></listitem>
-</varlistentry>
-
-</variablelist>
-</para>
-
-</sect2>
-
-<!-- ====== Select ============================================== -->
-
-
-<sect2 id="commands-menus-select">
-<title>The <guimenu>Select</guimenu> Menu</title>
-<para>
-<variablelist>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>A</keycap></keycombo></shortcut>
-<guimenu>Select</guimenu>
-<guimenuitem>Select All</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Selects the entire
-current layer.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;&Shift;<keycap>A</keycap></keycombo></shortcut>
-<guimenu>Select</guimenu>
-<guimenuitem>Deselect</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Unselects everything.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;&Shift;<keycap>D</keycap></keycombo></shortcut>
-<guimenu>Select</guimenu>
-<guimenuitem>Reselect</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Reselects the previous
-unselected areas.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>I</keycap></keycombo></shortcut>
-<guimenu>Select</guimenu>
-<guimenuitem>Invert</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Inverts the selection.</action>
-(Everything that is selected will be unselected and vice
-versa.)</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Alt;&Ctrl;<keycap>D</keycap></keycombo></shortcut>
-<guimenu>Select</guimenu>
-<guimenuitem>Feather...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Feathers the selection.</action> (Adds
-a soft border around it.)</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Select</guimenu>
-<guimenuitem>Similar</guimenuitem>
-</menuchoice></term>
-<listitem><para><action></action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;<keycap>H</keycap></keycombo></shortcut>
-<guimenu>Select</guimenu>
-<guisubmenu>Hide Selection</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Hides the selection.</action> The selection is still
-active, but it is not made visible anymore.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Select</guimenu>
-<guisubmenu>Grow Selection...</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Grows the selection.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Select</guimenu>
-<guisubmenu>Shrink Selection...</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Shrinks the selection.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Select</guimenu>
-<guisubmenu>Border Selection...</guisubmenu>
-</menuchoice></term>
-<listitem><para><action>Borders the selection.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Select</guimenu>
-<guimenuitem>Color Range...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-images-colorrange"><guilabel>Color Range</guilabel>
-dialog</link>.</action></para></listitem>
-</varlistentry>
-
-</variablelist>
-</para>
-
-</sect2>
-
-<!-- ====== Filter ============================================== -->
-
-
-<sect2 id="commands-menus-filter">
-<title>The <guimenu>Filter</guimenu> Menu</title>
-
-<para>See the <link linkend="filters">Filters</link> chapter for more
-information on filters.</para> <para>
-<variablelist>
-
-<varlistentry>
-<term><menuchoice>
-<shortcut><keycombo
-action="simul">&Ctrl;&Shift;<keycap>J</keycap></keycombo></shortcut>
-<guimenu>Filter</guimenu>
-<guimenuitem>Apply Filter Again</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Repeats the last filter
-action.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Adjust</guisubmenu>
-</menuchoice></term>
-<listitem><para>Contains various options for changing the
-colors in your image.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Adjust</guisubmenu>
-<guimenuitem>Auto Contrast</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Automatically changes the image to obtain as much
-contrast as possible.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Adjust</guisubmenu>
-<guimenuitem>Brightness/Contrast...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the
-<link
-linkend="commands-dialogs-filters-brightnesscontrast"><guilabel>Brightness/Contrast</guilabel>
-dialog</link>.</action> You can set the
-brightness and contrast ratio of your image here.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Adjust</guisubmenu>
-<guimenuitem>Desaturate</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Desaturates the image.</action> This
-will effectively convert the current image to grayscale, but all subsequent
-painting is done with usual colors.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Adjust</guisubmenu>
-<guimenuitem>Invert</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Inverts the image or
-selection.</action> (Black becomes white, blue becomes yellow,
-etcetera.)</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Adjust</guisubmenu>
-<guimenuitem>Color Adjustment...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-coloradjustment"><guilabel>Color Adjustment</guilabel>
-dialog</link>.</action> You can adjust the colorspace components
-of the current image there (for example, in an RGB image, you can change the
-contribution of red, green, and blue to the total image).</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Artistic</guisubmenu>
-</menuchoice></term>
-<listitem><para>Contains various filters for
-<quote>artistic</quote> actions.</para></listitem>
-</varlistentry>
-
-<!--<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Artistic</guisubmenu>
-<guimenuitem>Cubism...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-cubism"><guilabel>Cubism</guilabel>
-dialog</link>.</action> This allows you to add a cubism effect to the
-selection or image.</para></listitem>
-</varlistentry>-->
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Artistic</guisubmenu>
-<guimenuitem>Oilpaint...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-oilpaint"><guilabel>Oilpaint</guilabel>
-dialog</link> to add
-an oilpaint effect to the selection or image.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Artistic</guisubmenu>
-<guimenuitem>Pixelize...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-pixelize"><guilabel>Pixelize</guilabel>
-dialog</link> to pixelize the image.</action> (A block of pixels is
-changed so that they all become the same, averaged color.)</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Artistic</guisubmenu>
-<guimenuitem>Raindrops...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-raindrops"><guilabel>Raindrops</guilabel>
-dialog</link> to add a raindrops effect to the selection or
-image.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Artistic</guisubmenu>
-<guimenuitem>Dry the Paint</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Dries wet paint.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Blur</guisubmenu>
-</menuchoice></term>
-<listitem><para>Contains various blur filters.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Blur</guisubmenu>
-<guimenuitem>Gaussian Blur</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Performs a slight blur on the image or
-selection.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Colors</guisubmenu>
-</menuchoice></term>
-<listitem><para>Contains filters that change the image colors.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Colors</guisubmenu>
-<guimenuitem>Color to Alpha</guimenuitem>
-</menuchoice></term>
-<listitem><para><action></action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Colors</guisubmenu>
-<guimenuitem>Color Transfer</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-colortransfer">Color Transfer</link> dialog
-to give the image a new look.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Colors</guisubmenu>
-<guimenuitem>Maximize Channel</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Adjusts the colors of each pixel by removing color
-channels that are less abundant.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Colors</guisubmenu>
-<guimenuitem>Minimize Channel</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Adjusts the colors of each pixel by removing color
-channels that are abundant.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Edge Detection</guisubmenu>
-</menuchoice></term>
-<listitem><para>Contains edge detecting filters.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Edge Detection</guisubmenu>
-<guimenuitem>Bottom Edge Detection</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Performs edge detection with the bottom sides of image
-parts as references.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Edge Detection</guisubmenu>
-<guimenuitem>Left Edge Detection</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Performs edge detection with the left sides of image
-parts as references.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Edge Detection</guisubmenu>
-<guimenuitem>Right Edge Detection</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Performs edge detection with the right sides of image
-parts as references.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Edge Detection</guisubmenu>
-<guimenuitem>Sobel...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <guilabel>Sobel</guilabel>
-dialog.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Edge Detection</guisubmenu>
-<guimenuitem>Top Edge Detection</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Performs edge detection with the top sides of image
-parts as references.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu>
-</menuchoice></term>
-<listitem><para>Contains image enhancing
-filters.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu>
-<guimenuitem>CImg Image Restoration...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-imagerestoration"><guilabel>Image
-Restoration</guilabel> dialog</link>.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu>
-<guimenuitem>Custom Convolution...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-customconvolution"><guilabel>Custom
-Convolution</guilabel> dialog</link>.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu>
-<guimenuitem>Gaussian Noise Reduction...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action></action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu>
-<guimenuitem>Mean Removal</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Sharpens the image or selection by aggravating color
-borders.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu>
-<guimenuitem>Sharpen</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Sharpens the image or selection.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu>
-<guimenuitem>Unsharp Mask</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Applies an unsharp mask to the image or
-selection.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu>
-<guimenuitem>Wavelet Noise Reducer</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Reduces noise in the image or
-selection.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Emboss</guisubmenu>
-</menuchoice></term>
-<listitem><para>Contains emboss filters.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Emboss</guisubmenu>
-<guimenuitem>Emboss Horizontal &amp; Vertical</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Embosses the image or selection on the two main
-directions.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Emboss</guisubmenu>
-<guimenuitem>Emboss with Variable Depth...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-emboss"><guilabel>Emboss</guilabel>
-dialog</link>.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Emboss</guisubmenu>
-<guimenuitem>Emboss in All Directions</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Embosses the image or
-selection.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Emboss</guisubmenu>
-<guimenuitem>Emboss Horizontal Only</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Embosses the image or selection on the horizontal axis
-only.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Emboss</guisubmenu>
-<guimenuitem>Emboss Laplascian</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Embosses the image or selection using the Laplace
-technique.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Emboss</guisubmenu>
-<guimenuitem>Emboss Vertical Only</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Embosses the image or selection on the vertical axis
-only.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Map</guisubmenu>
-</menuchoice></term>
-<listitem><para>Contains map filters.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Map</guisubmenu>
-<guimenuitem>Bumpmap...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-bumpmap"><guilabel>Bumpmap</guilabel>
-dialog</link>.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Map</guisubmenu>
-<guimenuitem>Round Corners...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-roundcorners"><guilabel>Round
-Corners</guilabel> dialog</link> to round off the corners of the image or
-selection.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Map</guisubmenu>
-<guimenuitem>Small Tiles...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Shrinks the image or selection and then tiles
-it.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Other</guisubmenu>
-</menuchoice></term>
-<listitem><para>Contains miscellaneous filters.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Other</guisubmenu>
-<guimenuitem>Lens Correction...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-lenscorrection">Lens Correction</link>
-dialog to correct for lens anomalies.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Other</guisubmenu>
-<guimenuitem>Random Noise...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-randomnoise">Random Noise</link> dialog to add
-random noise to the image.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Other</guisubmenu>
-<guimenuitem>Random Pick...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-randompick">Random Pick</link> dialog to
-distort the image.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guisubmenu>Other</guisubmenu>
-<guimenuitem>Wave...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <link
-linkend="commands-dialogs-filters-wave">Wave</link> dialog to distort the
-image</action></para></listitem>
-</varlistentry>
-
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Filter</guimenu>
-<guimenuitem>Filters Gallery</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the
-<link linkend="commands-dialogs-filters-filtersgallery"><guilabel>Filters
-Gallery</guilabel> dialog</link>.</action> This
-shows previews of the various filters and allows for easy
-comparison.</para></listitem>
-</varlistentry>
-
-</variablelist>
-</para>
-
-</sect2>
-
-<!-- ====== Scripts ============================================= -->
-
-
-<sect2 id="commands-menus-scripts">
-<title>The <guimenu>Scripts</guimenu> Menu</title>
-<para>
-<variablelist>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Scripts</guimenu>
-<guimenuitem>Execute Script File</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Executes a script file.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Scripts</guimenu>
-<guimenuitem>Script Manager</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <guilabel>Script Manager</guilabel> dialog.
-</action></para></listitem>
-</varlistentry>
-
-</variablelist>
-</para>
-
-</sect2>
-
-<!-- ====== Settings ============================================ -->
-
-<sect2 id="commands-menus-settings">
-<title>The <guimenu>Settings</guimenu> Menu</title>
-<para>
-<variablelist>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Settings</guimenu>
-<guisubmenu>Toolbars</guisubmenu>
-</menuchoice></term>
-<listitem><para>Contains options to display or hide the various
-toolbars.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Settings</guimenu>
-<guisubmenu>Toolbars</guisubmenu>
-<guimenuitem>File</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Displays or hides the <guilabel>File</guilabel>
-toolbar.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Settings</guimenu>
-<guisubmenu>Toolbars</guisubmenu>
-<guimenuitem>Edit</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Displays or hides the <guilabel>Edit</guilabel>
-toolbar.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Settings</guimenu>
-<guisubmenu>Toolbars</guisubmenu>
-<guimenuitem>Navigation</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Displays or hides the <guilabel>Navigation</guilabel>
-toolbar.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Settings</guimenu>
-<guisubmenu>Toolbars</guisubmenu>
-<guimenuitem>&krita;</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Displays or hides the
-<guilabel>&krita;</guilabel> toolbar.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Settings</guimenu>
-<guisubmenu>Toolbars</guisubmenu>
-<guimenuitem>Brushes and Stuff</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Displays or hides the
-<guilabel>Brushes and Stuff</guilabel> toolbar.</action></para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Settings</guimenu>
-<guimenuitem>Configure Shortcuts...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <guilabel>Configure Shortcuts
-</guilabel> dialog.</action> This dialog is common to most &kde; applications
-and allows you to configure shortcuts for all actions &krita; has to
-offer.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Settings</guimenu>
-<guimenuitem>Configure Toolbars...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the <guilabel>Configure Toolbars</guilabel>
-dialog.</action> This dialog is common to most &kde; applications
-and allows you to configure &krita;'s toolbars.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Settings</guimenu>
-<guimenuitem>Configure &krita;...</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Opens the
-<link linkend="settings-preferences"><guilabel>Preferences</guilabel>
-dialog</link>.</action> You can configure &krita; here to match your personal
-preferences.</para></listitem>
-</varlistentry>
-
-</variablelist>
-</para>
-
-</sect2>
-
-
-<!-- ====== Help ================================================ -->
-
-<sect2 id="commands-menus-help">
-<title>The <guimenu>Help</guimenu> Menu</title>
-&help.menu.documentation;
-</sect2>
-
-</sect1>
diff --git a/doc/krita/commands-palettes.docbook b/doc/krita/commands-palettes.docbook
deleted file mode 100644
index 3661be608..000000000
--- a/doc/krita/commands-palettes.docbook
+++ /dev/null
@@ -1,769 +0,0 @@
-<sect1 id="commands-palettes">
-<title>Palettes</title>
-
-<para>
-This section describes &krita;'s palettes. The palettes are usually found at
-the right hand side of &krita;'s main window. There are three palettes which
-help you in customizing your images:
-</para>
-
-<sect2 id="commands-palettes-controlbox">
-<title>The <guilabel>Control box</guilabel> palette</title>
-<para>The <guilabel>Control box</guilabel> contains three tabs. You can get an
-overview of the image, view a color histogram, and modify options for the
-current tool.</para>
-
-<sect3 id="commands-palettes-controlbox-overview">
-<title><guilabel>Overview</guilabel></title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Overview</guilabel> tab</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-overview.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Overview</guilabel> tab</phrase>
-</textobject>
-<caption><para>The <guilabel>Overview</guilabel> tab</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>This tab offers you two settings. With the spinbox, slider, and
-<guibutton>1:1</guibutton> button at the bottom, you can set the zoom level
-for the document. The <guilabel>Exposure</guilabel> slider and textbox can be
-used to choose the exposure level for OpenEXR images. Furthermore, the
-<guilabel>X</guilabel> and <guilabel>Y</guilabel> labels indicate the current
-pointer position, with (0,0) being the top left corner of the canvas.</para>
-</sect3>
-
-<sect3 id="commands-palettes-controlbox-histogram">
-<title><guilabel>Histogram</guilabel></title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Histogram</guilabel> tab</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-histogram.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Histogram</guilabel> tab</phrase>
-</textobject>
-<caption><para>The <guilabel>Histogram</guilabel> tab</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>This tab displays a color histogram showing the distribution of
-colors over the image. The histogram is split up in red, green and blue
-levels.</para>
-</sect3>
-
-<sect3 id="commands-palettes-controlbox-tool">
-<title><guilabel>Tool</guilabel></title>
-
-<para>Actually, there is no tab named like this, since the tab name changes to
-reflect the name of the currently selected tool. This tab shows the
-customization options available for the tools that have them.</para>
-
-<sect4 id="commands-palettes-controlbox-tool-brush">
-<title><guilabel>Brush</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Brush</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-brush.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Brush</guilabel></phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Brush</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>There are three options available on this tab.
-</para><para>
-The <guilabel>Opacity</guilabel> slider and spin box are used to set the 
-opacity when drawing (opacity is the opposite of transparency, i.e. 100%
-opaque is 0% transparent, and vice versa).
-</para><para>
-In the <guilabel>Mode</guilabel> drop down box, you can choose a drawing
-mode. This changes the actual effect that results from drawing on the image
-(for example, only changing the saturation or lightness).
-</para><para>
-With the <guilabel>Paint direct</guilabel> option, you can determine whether
-you want to paint directly on the current layer, or on a temporary layer which
-is then composited onto the actual layer. This makes a difference especially
-when using relative low opacity values.</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-line">
-<title><guilabel>Line</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Line</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-line.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Line</guilabel></phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Line</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>See <link
-linkend="commands-palettes-controlbox-tool-brush">Brush</link>
-for the description of <guilabel>Opacity</guilabel> and
-<guilabel>Mode</guilabel>. The <guilabel>?</guilabel> button shows a tip about
-the usage of modifier keys.</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-rectangle">
-<title><guilabel>Rectangle</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Rectangle</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-rectangle.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The Tool tab for <guilabel>Rectangle</guilabel></phrase>
-</textobject>
-<caption><para>The Tool tab for <guilabel>Rectangle</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>See <link
-linkend="commands-palettes-controlbox-tool-brush">Brush</link> for a description of <guilabel>Opacity</guilabel> and
-<guilabel>Mode</guilabel>.
-</para><para>
-The <guilabel>Fill</guilabel> drop down box is used to specify whether the
-inside of the rectangle should be filled. You can choose between three fill
-options: the current foreground color, background color or pattern is
-used.</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-bezier">
-<title><guilabel>Bezier</guilabel></title>
-<para>See <link
-linkend="commands-palettes-controlbox-tool-brush">Brush</link> for the
-description of <guilabel>Mode</guilabel> and <guilabel>Opacity</guilabel>.</para>
-</sect4>
-
-
-<sect4 id="commands-palettes-controlbox-tool-ellipse">
-<title><guilabel>Ellipse</guilabel></title>
-<para>The same options as for <link
-linkend="commands-palettes-controlbox-tool-rectangle">Rectangle</link> are
-available here.</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-polygon">
-<title><guilabel>Polygon</guilabel></title>
-<para>The same options as for <link
-linkend="commands-palettes-controlbox-tool-rectangle">Rectangle</link> are
-available here.</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-polyline">
-<title><guilabel>Polyline</guilabel></title>
-<para>The same options as for <link
-linkend="commands-palettes-controlbox-tool-line">Line</link>
-are available here.</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-star">
-<title><guilabel>Star</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Star</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-star.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Star</guilabel></phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Star</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>The options for <link
-linkend="commands-palettes-controlbox-tool-rectangle">Rectangle</link> are
-available here, as well as two options specific to this tool.
-</para><para>
-The <guilabel>Vertices</guilabel> drop down box is used to set the amount
-of vertices (points) in the star.
-</para><para>
-The <guilabel>Ratio</guilabel> setting defines the shape of the
-star. A ratio of 0% will create a star with no inner area (when drawing the
-star, the two lines that make up a star point, overlap). Increasing the ratio
-will slowly make the star more outlined (the two lines are <quote>pulled
-apart</quote>). A star with a ratio of 100% is a regular polygon.
-</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-duplicate">
-<title><guilabel>Duplicate</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Duplicate</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-duplicate.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Duplicate</guilabel></phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Duplicate</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>The same options as for <link
-linkend="commands-palettes-controlbox-tool-line">Line</link>
-are available here. In addition, there are three other options.
-</para><para>
-With the <guilabel>Healing</guilabel> and
-<guilabel>Healing radius</guilabel> options, you can specify that the
-duplication should not copy the colors, but only the <quote>structure</quote>
-of the source area.
-</para><para>
-If you enable the <guilabel>Correct the perspective</guilabel> option, the
-duplicate tool will follow your perspective grid.
-</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-paintwithfilters">
-<title><guilabel>Paint with Filters</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Paint with Filters</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-paintwithfilters.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Paint with Filters</guilabel></phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Paint with Filters</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>Depending on the filter, you can set different options here. The
-options you can set are the same as those available in the
-<quote>normal</quote> settings dialog for the chosen filter. See the
-<link linkend="commands-dialogs-filters">Filters section in the Dialogs
-chapter</link> for more information.</para> </sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-transform">
-<title><guilabel>Transform</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Transform</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-transform.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Transform</guilabel></phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Transform</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<!-- >The <guilabel>Move X</guilabel> and <guilabel>Move Y</guilabel>
-spin boxes show, and can be used to set, the displacement of the layer or
-selection. The same applies to <guilabel>Scale X</guilabel> and <guilabel>Scale
-Y</guilabel> for the scaling of the current layer or selection. Finally, -->
-<para>You can choose which transformation algorithm to use in the
-<guilabel>Filter</guilabel> drop down box.</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-crop">
-<title><guilabel>Crop</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Crop</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-crop.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Crop</guilabel></phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Crop</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>Set the corner coordinates of the area that should remain with the
-four spin boxes <guilabel>X</guilabel>, <guilabel>Y</guilabel>,
-<guilabel>Width</guilabel> and <guilabel>Height</guilabel>. You can also
-fill in <guilabel>Ratio</guilabel> to determine the Y/X ratio. Check one of
-the checkboxes to have the respective value remain constant while changing the
-size of the area. The drop down box can be used to select whether the entire
-image or only the current layer should be cropped. Clicking the
-<guibutton>Crop</guibutton> button has the same effect as double-clicking
-outside the area in the image.</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-contiguousfill">
-<title><guilabel>Contiguous Fill</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Contiguous Fill</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-contiguousfill.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Contiguous Fill</guilabel></phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Contiguous Fill</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>The same options as for <link
-linkend="commands-palettes-controlbox-tool-brush">Brush</link>
-are available here, as are a couple of other options.
-</para><para>
-The setting in the <guilabel>Threshold</guilabel> slider and spin box
-determines how near the color of a point should be to the color of the
-starting point of the fill, in order for the fill to spread out over the
-former point. A higher threshold will therefore fill areas that have less
-similar colors, a lower threshold limits the spread.
-</para><para>
-If you check the <guilabel>Fill entire selection</guilabel> checkbox, the
-entire selection will be filled instead of only the neighboring area.
-</para><para>
-Checking the <guilabel>Limit to current layer</guilabel> checkbox changes the
-behavior of the fill: the extent to which the fill is done, is determined from
-the current layer only instead of the entire image.
-</para><para>
-By checking the <guilabel>Use pattern</guilabel> checkbox you can choose to
-fill with the currently selected pattern instead of with the foreground color.
-</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-gradient">
-<title><guilabel>Gradient</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Gradient</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-gradient.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Gradient</guilabel></phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Gradient</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>The same options as for <link
-linkend="commands-palettes-controlbox-tool-brush">Brush</link>
-are available here, as are a couple of other options.
-</para><para>
-The <guilabel>Shape</guilabel> drop down box can be used to select the gradient
-type: <guilabel>Linear</guilabel>, <guilabel>Bi-Linear</guilabel>, <guilabel>Radial</guilabel>, 
-<guilabel>Square</guilabel>, <guilabel>Conical</guilabel> and <guilabel>Conical Symmetric</guilabel>.
-</para><para>
-The <guilabel>Repeat</guilabel> option determines whether the gradient is
-repeated if it does not fill the entire image. With <guilabel>None</guilabel>, the colors on the
-ends of the gradient are used to fill the remaining space. With <guilabel>Forwards</guilabel>, the
-gradient is normally repeated (connecting the back end of one occurrence with
-the front end of the next). With <guilabel>Alternating</guilabel>, the gradient is repeated with
-every second occurrence being drawn from back to front (linking front to front
-and back to back).
-</para><para>
-Check the <guilabel>Reverse</guilabel> checkbox to have the gradient drawn
-reversed (from back to front).
-</para><para>
-The final setting is <guilabel>Anti-alias threshold</guilabel>, which
-determines how smooth the gradient will become.
-</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-text">
-<title><guilabel>Text</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Text</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-text.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Text</guilabel></phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Text</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>The same options as for <link
-linkend="commands-palettes-controlbox-tool-brush">Brush</link>
-are available here. Furthermore there is an option <guilabel>Font</guilabel>,
-which shows the font that will be used for the text. Click the
-<guibutton>...</guibutton> button to change the font.
-</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-colorpicker">
-<title><guilabel>Color Picker</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Color Picker</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-colorpicker.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Color Picker</guilabel></phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Color Picker</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>The first option is a dropdown box in which you can choose which
-layer to pick the color from. If you choose a specific layer,
-the color of the point in that layer will be retrieved. With <guilabel>Sample
-All Visible Layers</guilabel>, the topmost visible layer which is not
-transparent at that point is used.
-</para><para>
-If the <guilabel>Update current color</guilabel> checkbox is checked, then the
-current foreground color (when clicking with the &LMB;) or background color
-(when clicking with the &RMB;) is set to the picked color.
-</para><para>
-The checkbox <guilabel>Add to palette</guilabel> and the accompanying
-dropdown box determine whether the picked color should be added to an existing
-palette. Check the checkbox, and choose the desired palette from the list, if
-you want to do so.
-</para><para>
-The checkbox <guilabel>Show colors as percentages</guilabel> switches the
-range of color values displayed from the <quote>normal</quote> range (e.g. 0 to
-255) to a scaled value between 0% and 100%.
-</para><para>
-With the <guilabel>Sample radius</guilabel> option, you can choose the area
-size to use when picking the color. A radius of one just picks one pixel,
-larger radii will make the picker average over the colors of the circle-shaped
-area with the chosen radius that is centered around the chosen pixel.
-</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-select">
-<title><guilabel>Select</guilabel> tools</title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Select</guilabel> tools</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-select.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Select</guilabel> tools</phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Select</guilabel> tools</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>The <guilabel>Paint Selection</guilabel>, <guilabel>Erase Selection</guilabel>,
-<guilabel>Select Rectangular</guilabel>, <guilabel>Select Elliptical</guilabel>, <guilabel>Select Polygonal</guilabel> and <guilabel>Select Outline</guilabel> tools have one option:
-the <guilabel>Action</guilabel> to perform. You can choose between <guilabel>Add</guilabel> to, or
-<guilabel>Subtract</guilabel> from the selection.</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-selectcontiguous">
-<title><guilabel>Select Contiguous Area</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Select Contiguous</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-selectcontiguous.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Select Contiguous</guilabel></phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Select Contiguous</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>The <guilabel>Action</guilabel> is the same as discussed with the
-<link linkend="commands-palettes-controlbox-tool-select">Select
-operations</link>.
-</para><para>
-The slider and spin box at <guilabel>Fuzziness</guilabel> determine how near
-colors must be to the color at the clicked point to be added to the selection.
-</para><para>
-When the <guilabel>Sample merged</guilabel> checkbox is checked, the
-bounds of the selection are determined by looking at the entire image instead
-of at the current layer.
-</para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-selectsimilar">
-<title><guilabel>Similar Select</guilabel></title>
-<para>The <guilabel>Action</guilabel> and <guilabel>Fuzziness</guilabel> 
-options are the same as with <link
-linkend="commands-palettes-controlbox-tool-selectcontiguous">Select
-contiguous</link>. </para>
-</sect4>
-
-<sect4 id="commands-palettes-controlbox-tool-selectmagnetic">
-<title><guilabel>Select Magnetic</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Select Magnetic</guilabel></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-controlbox-selectmagnetic.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Select Magnetic</guilabel></phrase>
-</textobject>
-<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Select Magnetic</guilabel></para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>The <guilabel>Action</guilabel> option is the same as with the other
-<link linkend="commands-palettes-controlbox-tool-select">Select tools</link>.
-</para>
-<para>
-The <guilabel>Distance</guilabel> option determines the maximal distance at
-which boundaries to attach to, are searched for. The <guibutton>To
-Selection</guibutton> button has the same effect as double-clicking the &LMB;:
-the selection is finished.
-</para>
-</sect4>
-
-</sect3>
-
-</sect2>
-
-<sect2 id="commands-palettes-colors">
-<title>The <guilabel>Colors</guilabel> palette</title>
-<para>In this palette you can choose the foreground and background colors
-that should be used for painting. You can choose these in five different
-ways. Each of these has its own tab on this palette.
-</para><para>
-You can choose which color to set by clicking the corresponding
-buttons at the top left. The topmost color is the foreground color, the
-bottom one is the background color. You can click the double-headed arrow
-to swap the colors: foreground color becomes background color and vice
-versa. You can reset the colors to the default (foreground black, background
-white) by clicking the small black/white icon.
-</para>
-
-<sect3 id="commands-palettes-colors-hsv">
-<title><guilabel>HSV</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>HSV</guilabel> tab</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-colors-hsv.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>HSV</guilabel> tab</phrase>
-</textobject>
-<caption><para>The <guilabel>HSV</guilabel> tab</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>On this tab, you can select a color via the Hue / Saturation / Value
-system.
-</para><para>
-The hue determines the major color and starts at red with 0, then increases
-along the color spectrum (that is, along the <quote>line</quote> yellow, green,
-blue, violet) to a maximum of 359. This is represented in the circle on the tab
-as the angle component (starting at the top, rotate along the circle
-in clockwise direction to increase the hue).
-</para><para>
-The saturation determines the pureness of the color. A saturation of 255
-yields the pure color, while a saturation of 0 yields a gray. This is the
-radius component of the color circle on the tab: the center corresponds to
-no saturation, the circle boundary corresponds to fully saturated.
-</para><para>
-The value determines the lightness of the color. This darkens or lightens the
-color, as can be set using the vertical slider on the tab. A value of 0 gives
-black, a value of 255 gives the pure color.
-</para>
-</sect3>
-
-<sect3 id="commands-palettes-colors-rgb">
-<title><guilabel>RGB</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>RGB</guilabel> tab</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-colors-rgb.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>RGB</guilabel> tab</phrase>
-</textobject>
-<caption><para>The <guilabel>RGB</guilabel> tab</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>On this tab, colors can be selected using their Red / Green / Blue
-components.
-</para><para>
-You can set red, green and blue components on a scale of 0 to 255. At 0 that
-color component is absent, at 255 it is used at maximum intensity. The sliders
-will change color to give you a hint about which color you will produce by
-altering the corresponding value.
-</para>
-</sect3>
-
-<sect3 id="commands-palettes-colors-gray">
-<title><guilabel>Gray</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Gray</guilabel> tab</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-colors-gray.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Gray</guilabel> tab</phrase>
-</textobject>
-<caption><para>The <guilabel>Gray</guilabel> tab</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>On this tab, you can choose a gray value (indicated with a K for Key,
-the usual designation for black).</para>
-<para>The gray value can be chosen on a scale from 0 (pure white) to 255
-(pure black).</para>
-</sect3>
-
-<sect3 id="commands-palettes-colors-palettes">
-<title><guilabel>Palettes</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Palettes</guilabel> tab</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-colors-palettes.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Palettes</guilabel> tab</phrase>
-</textobject>
-<caption><para>The <guilabel>Palettes</guilabel> tab</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>On this tab, you can select a color from one of several predefined
-color palettes.</para>
-<para>You can choose which color palette to pick from in the drop down
-box at the top.</para>
-</sect3>
-
-<sect3 id="commands-palettes-colors-watercolors">
-<title><guilabel>Watercolors</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Watercolors</guilabel> tab</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-colors-watercolors.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Watercolors</guilabel> tab</phrase>
-</textobject>
-<caption><para>The <guilabel>Watercolors</guilabel> tab</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>This tab offers you a selection of watercolors for painting with <quote>wet
-paint</quote>.
-</para><para>
-You can set two options to modify the painting behaviour: <guilabel>Paint
-strength</guilabel> influences how much paint you will apply to the canvas,
-and <guilabel>Wetness</guilabel> determines how wet the paint is when it is
-applied. You can dry the paint later.
-</para>
-</sect3>
-
-</sect2>
-
-<sect2 id="commands-palettes-layers">
-<title>The <guilabel>Layers</guilabel> palette</title>
-<para>This palette offers two tabs.</para>
-
-<sect3 id="commands-palettes-layers-layers">
-<title><guilabel>Layers</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Layers</guilabel> tab</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-layers-layers.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Layers</guilabel> tab</phrase>
-</textobject>
-<caption><para>The <guilabel>Layers</guilabel> tab</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>This tab offers you access to various operations on layers.
-</para><para>
-On the top left, you can select what blending mode should be used for the
-selected layer. These are the same possibilities as you can choose from for
-drawing modes.
-</para><para>
-The slider/textbox at the top right determines the opacity of the selected
-layer. 0% opacity corresponds to 100% transparency, and vice versa.
-</para><para>
-The list shows all layers and their names, and offers various controls for each
-layer. The eye icon toggles whether the layer is visible or not. The link icon
-is used to link layers together. The lock icon determines if the layer is
-locked or not. Locked layers cannot be edited.
-</para><para>
-Below the layer list, there are some other controls. You can create a new
-layer, move the current layer up or down, show the layer's properties and
-delete it.
-</para>
-<para>
-There are some more handy tricks you can do with the mouse within the list.
-Right-click on the layer list and select <guilabel>New Folder</guilabel> to
-create a new layer folder, which you can use to group layers in. You can also
-drag and drop layers to change their order. To do so, click on the bottom part
-of the list item representing the layer, drag the mouse, and release the mouse
-button at the desired position. If you click at the top part of the list item
-instead, you will get a text field so that you can rename the layer.
-</para>
-</sect3>
-
-<sect3 id="commands-palettes-layers-scriptsmanager">
-<title><guilabel>Scripts Manager</guilabel></title>
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Script Manager</guilabel> tab</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="palettes-layers-scriptsmanager.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Script Manager</guilabel> tab</phrase>
-</textobject>
-<caption><para>The <guilabel>Script Manager</guilabel> tab</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>This tab is a smaller version of the <guilabel>Script
-Manager</guilabel> dialog. See the description over there for more
-information.
-</para>
-</sect3>
-
-</sect2>
-
-</sect1>
diff --git a/doc/krita/commands-toolbars.docbook b/doc/krita/commands-toolbars.docbook
deleted file mode 100644
index 05ddea55d..000000000
--- a/doc/krita/commands-toolbars.docbook
+++ /dev/null
@@ -1,752 +0,0 @@
-<sect1 id="commands-toolbars">
-<title>Toolbars</title>
-
-<para>This section describes &krita;'s toolbars. By default, the
-<guilabel>Krita</guilabel> toolbar is located to the left of the drawing area,
-while the others can be found at the top, below the menu bar.</para>
-
-<para>You can customize your toolbars by choosing
-<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
-Toolbars...</guimenuitem></menuchoice> or by clicking with the &RMB; on a
-toolbar and choosing <guimenuitem>Configure Toolbars...</guimenuitem>.</para>
-
-<sect2 id="commands-toolbars-file">
-<title>The <guilabel>File</guilabel> Toolbar</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>File</guilabel> toolbar</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="toolbar-file.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>File</guilabel> toolbar</phrase>
-</textobject>
-<caption><para>The <guilabel>File</guilabel> toolbar</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>This toolbar contains actions for working with files. In &krita;'s
-default, there are five buttons on this toolbar: <guilabel>New</guilabel>,
-<guilabel>Open</guilabel>, <guilabel>Save</guilabel>, <guilabel>Print
-Preview</guilabel>, and <guilabel>Print</guilabel>.</para>
-
-<para>These actions all correspond to entries in the <link
-linkend="commands-menus-file"><guimenu>File</guimenu> menu</link>.</para>
-
-</sect2>
-
-<sect2 id="commands-toolbars-edit">
-<title>The <guilabel>Edit</guilabel> Toolbar</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Edit</guilabel> toolbar</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="toolbar-edit.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Edit</guilabel> toolbar</phrase>
-</textobject>
-<caption><para>The <guilabel>Edit</guilabel> toolbar</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>This toolbar contains editing actions. With default settings this
-toolbar offers four buttons: <guilabel>Undo</guilabel>,
-<guilabel>Redo</guilabel>, <guilabel>Cut</guilabel>, and
-<guilabel>Copy</guilabel>.</para>
-
-<para>These actions all correspond to entries in the <link
-linkend="commands-menus-edit"><guimenu>Edit</guimenu> menu</link>.</para>
-</sect2>
-
-<sect2 id="commands-toolbars-navigation">
-<title>The <guilabel>Navigation</guilabel> Toolbar</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Navigation</guilabel> toolbar</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="toolbar-navigation.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Navigation</guilabel> toolbar</phrase>
-</textobject>
-<caption><para>The <guilabel>Navigation</guilabel> toolbar</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>This toolbar offers easy access to navigation actions. The two
-default actions available are <guilabel>Zoom In</guilabel> and
-<guilabel>Zoom Out</guilabel>. With <guilabel>Zoom In</guilabel>, the zoom 
-level is increased. You will see less, but in higher detail. With
-<guilabel>Zoom Out</guilabel>, the zoom level is decreased, so that you see
-more at less detail. </para>
-
-</sect2>
-
-<sect2 id="commands-toolbars-krita">
-<title>The <guilabel>Krita</guilabel> Toolbar</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Krita</guilabel> toolbar</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="toolbar-krita.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Krita</guilabel> toolbar</phrase>
-</textobject>
-<caption><para>The <guilabel>Krita</guilabel> toolbar</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This toolbar contains painting operations and tools, as well as editing and
-selecting tools. The available actions and some controls are listed below. You
-can change the behaviour of most tools (and with that, usually the resulting
-effect) by setting their <link
-linkend="commands-palettes-controlbox-tool">options</link>.
-</para>
-
-<variablelist>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-brush.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Brush</guilabel></term>
-<listitem><para>
-With this tool you can paint freely. Click the &LMB; to paint a
-single instance of the currently selected brush, or hold the &LMB; and drag
-your mouse around to paint. The mouse movements you make are directly used for
-painting.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-line.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Line</guilabel></term>
-<listitem><para>
-This tool is used to draw lines. Click the &LMB; to indicate the first
-endpoint, keep the button pressed, drag to the second endpoint and release the
-button.
-</para><para>
-Use &Shift; while holding the mouse button to restrict drawing to only
-horizontal or vertical lines. You can press &Alt; while still keeping the &LMB;
-down to move the line to a different location.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-rectangle.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Rectangle</guilabel></term>
-<listitem><para>
-This tool can be used to paint rectangles. Click and hold the &LMB; to indicate
-one corner of the rectangle, drag to the opposite corner, and release the
-button.
-</para><para>
-If you hold &Shift; while drawing, a square will be drawn instead of a
-rectangle. Holding &Ctrl; will change the way the rectangle is constructed.
-Normally, the first mouse click indicates one corner and the second click the
-opposite. With &Ctrl;, the initial mouse position indicates the center of the
-rectangle, and the final mouse position indicates a corner.
-You can press &Alt; while still keeping the &LMB; down to move the rectangle to
-a different location.
-</para><para>
-You can change between the corner/corner and center/corner drawing
-methods as often as you want by pressing or releasing &Ctrl;, provided that you
-keep the &LMB; pressed. With &Ctrl; pressed, mouse movements will affect all
-four corners of the rectangle (relative to the center), without &Ctrl;, one
-of the corners is unaffected.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-ellipse.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Ellipse</guilabel></term>
-<listitem><para>
-Use this tool to paint an ellipse. The currently selected brush is used for
-drawing the ellipse outline. Click and hold the &LMB; to indicate one corner of
-the <quote>bounding rectangle</quote> of the ellipse, then move your mouse to
-the opposite corner. &krita; will show a preview of the ellipse using a thin
-line. Release the button to draw the ellipse.
-</para><para>
-If you hold &Shift; while drawing, a circle will be drawn instead of an
-ellipse. Holding &Ctrl; will change the way the ellipse is constructed: instead
-of two corners, the initial mouse position indicates the ellipse center, and the
-final mouse position indicates one of the corners of the bounding rectangle.
-You can press &Alt; while still keeping the &LMB; down to move the ellipse to a
-different location.
-</para><para>
-You can change between the corner/corner and center/corner drawing
-methods as often as you want by pressing or releasing &Ctrl;, provided that you
-keep the &LMB; pressed. With &Ctrl; pressed, mouse movements will
-affect all four corners of the bounding rectangle (relative to the center),
-without &Ctrl;, the corner opposite to the one you are moving remains still.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-polygon.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Polygon</guilabel></term>
-<listitem><para>
-With this tool you can draw polygons. Click the &LMB; to indicate the
-starting point and successive vertices, then double-click or press &Enter; to
-connect the last vertex to the starting point.
-</para></listitem></varlistentry>
-
-<varlistentry> <term><inlinemediaobject><imageobject><imagedata
-fileref="tool-polyline.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Polyline</guilabel></term>
-<listitem><para>
-Polylines are drawn like polygons, with the difference that the double-click
-indicating the end of the polyline does not connect the last vertex to the
-first one.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-star.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Star</guilabel></term>
-<listitem><para>
-This tool creates star-shaped objects. Press the &LMB; to indicate the center,
-and drag the mouse to change the size and rotation of the star.
-</para><para>
-You can press &Alt; while still keeping the &LMB; down to move the star to a
-different location.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-bezier.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Bezier</guilabel></term>
-<listitem><para>
-You can draw Bezier curves by using this tool. Click the &LMB; to indicate the
-starting point of the curve, then click again for consecutive control points
-of the curve. 
-</para>
-<para>
-<screenshot>
-<screeninfo>Drawing a Bezier curve</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tool-bezier-example.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>Drawing a Bezier curve</phrase>
-</textobject>
-<caption><para>Drawing a Bezier curve</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>
-&krita; will show a blue line with two handles when you add a control point.
-You can drag these handles to change the direction of the curve in that point.
-</para>
-<para>
-<screenshot>
-<screeninfo>Modifying a Bezier curve</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tool-bezier-example2.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>Modifying a Bezier curve</phrase>
-</textobject>
-<caption><para>Modifying a Bezier curve</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-<para>
-You can click on a previously inserted control point to modify it. With an intermediate
-control point (&ie; a point that is not the starting point and not the ending
-point), you can move the direction handles seperately to have the curve enter
-and leave the point in different directions. After editing a point, you can
-just click on the canvas to continue adding points to the curve.
-</para>
-<para>
-Pressing <keycap>Delete</keycap> will remove the currently selected control
-point from the curve. Double-click the &LMB; on any point of the curve or
-press &Enter; to finish drawing, or press &Esc; to cancel the entire curve.
-You can use &Ctrl; while keeping the &LMB; pressed to move the entire curve to
-a different position.
-</para>
-<para>
-<screenshot>
-<screeninfo>A finished Bezier curve</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tool-bezier-example3.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>A finished Bezier curve</phrase>
-</textobject>
-<caption><para>A finished Bezier curve</para></caption>
-</mediaobject>
-</screenshot>
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-duplicate.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Duplicate</guilabel></term>
-<listitem><para>
-You can use this tool to duplicate parts of an image. Press &Shift; and click
-with the &LMB; on the location you want to duplicate from. &krita; will
-indicate this location by an outline of your current brush. Then click with
-the &LMB; to designate the location where you want to duplicate to, and drag
-with the mouse. You will then duplicate whatever is at the source location to
-the current (destination) location.
-</para><para>
-While you are painting the duplicate, both your cursor in the destination
-location and the brush outline in the source location will move, in order to
-give you visual feedback.
-</para><para>
-You can also use this tool to correct colors in a part of the image: use the
-<guilabel>Healing</guilabel> option for that.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-paintwithfilters.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Paint with
-filters</guilabel></term>
-<listitem><para>
-This tool allows you to pick a filter and draw with it. The image below shows
-the effect of using a large circular brush and painting with, from left to
-right, the Maximize Channel, Minimize Channel, Invert, and Desaturate filters.
-</para>
-<para>
-<screenshot>
-<screeninfo>Painting with filters</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tool-paintwithfilters-example.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>Painting with filters</phrase>
-</textobject>
-<caption><para>Painting with filters</para></caption>
-</mediaobject>
-</screenshot>
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-crop.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Crop</guilabel></term>
-<listitem><para>
-With this tool you can crop a layer or an image to a certain rectangular area.
-Click and drag with the &LMB; to define an area. This area is designated by an
-outline with 8 handles. You can then use the handles to change the size of the
-area which the image or layer is to be cropped to. You can also click and drag
-inside the area to move the outline in its entirety.
-</para><para>
-Double-click outside the area (i.e. on a part of the image that is to be removed)
-to confirm the cropping operation.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-move.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Move</guilabel></term>
-<listitem><para>
-With this tool, you can move the current layer or selection by dragging the
-mouse.
-</para></listitem></varlistentry>
-
-<varlistentry>
-<term><inlinemediaobject><imageobject><imagedata fileref="tool-transform.png"
-format="PNG"></imagedata> </imageobject></inlinemediaobject> Transform</term>
-<listitem><para>
-With this tool you can quickly transform the current selection or layer.
-Handles will appear at the corners and sides, with which you can resize the
-selection or layer. You can perform rotations by moving the mouse above or to
-the left of the handles and dragging it. You can also click anywhere inside
-the selection or layer and move it by dragging the mouse.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-perspectivetransform.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Perspective Transform</guilabel></term>
-<listitem><para>
-This tool allows you to change the perspective of an image. Designate the area
-which should become the new image by clicking at its top-left, top-right,
-bottom-right and bottom-left corners. The area given by these four corners
-will then be transformed so that the given corners become the corners of the
-actual image.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-contiguousfill.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Contiguous Fill</guilabel></term>
-<listitem><para>
-Use this tool to fill a contiguous area of one color with the current
-foreground color or a pattern. Simply click to fill up the area.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-gradient.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Gradient</guilabel></term>
-<listitem><para>
-This tool fills the current layer or selection with the currently selected
-gradient. Click the &LMB;, hold it, and drag the mouse to define two endpoints.
-The gradient will be drawn along this line. If the line does not extend to the
-border of the selection or layer, the color at the corresponding endpoint of
-the gradient will be used to fill up the rest of the area at that side.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-text.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Text</guilabel></term>
-<listitem><para>
-With this tool you can add simple text to your image. Click the &LMB; on the
-location at which you want have the text. Then enter the desired text in the
-dialog window that appears. The text will be horizontally centered on, and
-the top of the text will be at the same height as, the chosen location.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-colorpicker.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Color Picker</guilabel></term>
-<listitem><para>
-With this tool you can find the color values of a point. Click the &LMB;
-somewhere in the image to see color information about that point in the
-<guilabel>Control box</guilabel>.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-pan.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Pan</guilabel></term>
-<listitem><para>
-This tool can be used to navigate through your image. Click and hold the &LMB;
-and move the mouse to scroll in a certain direction.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-zoom.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Zoom</guilabel></term>
-<listitem><para>
-Use this tool to zoom in and out. Click the &LMB; to increase the zoom by
-a factor 2 (e.g. 1:1 to 2:1), click the &RMB; to decrease the zoom by a factor
-2 (e.g. 1:1 to 1:2).
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-perspectivegrid.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Perspective Grid</guilabel></term>
-<listitem><para>
-You can create and edit a perspective grid with this tool. Click the &LMB; and
-drag the mouse to indicate the first two corners of the grid, then click for
-the third and fourth corners. The outline of the grid is now shown and you can
-edit it if you are not completely happy. When you switch to a different tool,
-the perspective grid will be subdivided and shown as thin gray lines.
-</para>
-<note><para>If you only see three corners instead of four, you probably
-clicked instead of dragging initially. In this case you can still click the
-handle of your now combined first and second corners and drag it to get four
-separate corners.</para></note>
-<para>
-Clicking the <guilabel>Perspective Grid</guilabel> tool again later will allow
-you to modify the grid. You can hide or remove the grid by choosing the
-<guimenuitem>Hide Perspective Grid</guimenuitem> or <guimenuitem>Clear
-Perspective Grid</guimenuitem> options from the <guimenu>View</guimenu> menu.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-paintselection.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Paint Selection</guilabel></term>
-<listitem><para>
-This tool can be used to select custom areas. The currently selected brush is
-used to select areas: instead of painting on the image, the area is selected.
-For more information on selections, see <link
-linkend="selections">the Selections chapter</link>.
-</para></listitem></varlistentry>
-
-<varlistentry>
-<term><inlinemediaobject><imageobject><imagedata
-fileref="tool-eraseselection.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Erase Selection</guilabel></term>
-<listitem><para>
-This tool works almost the same as the <guilabel>Paint Selection</guilabel>
-tool, but a selection, if it exists at the mouse location, is removed instead
-of created.
-</para></listitem></varlistentry>
-
-<varlistentry>
-<term><inlinemediaobject><imageobject><imagedata
-fileref="tool-selectrectangular.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Select Rectangular</guilabel></term>
-<listitem><para>
-You can use this tool to select rectangular areas. Operation is similar to the
-<guilabel>Rectangle</guilabel> tool, and &Shift;, &Ctrl; and &Alt; can be used
-like when painting rectangles.
-</para></listitem></varlistentry>
-
-<varlistentry>
-<term><inlinemediaobject><imageobject><imagedata
-fileref="tool-selectelliptical.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Select Elliptical</guilabel></term>
-<listitem><para>
-You can use this tool to select elliptical areas. Operation is similar to the
-<guilabel>Ellipse</guilabel> tool, and &Shift;, &Ctrl; and &Alt; can be used
-like when painting ellipses.
-</para></listitem></varlistentry>
-
-<varlistentry>
-<term><inlinemediaobject><imageobject><imagedata
-fileref="tool-selectpolygonal.png"
-format="PNG"></imagedata> </imageobject></inlinemediaobject> <guilabel>Select
-Polygonal</guilabel></term>
-<listitem><para>
-You can use this tool to select polygonal areas. Operation is similar to the
-<guilabel>Polygon</guilabel> tool, and &Shift;, &Ctrl; and &Alt; can be used
-like when painting polygons.
-</para></listitem></varlistentry>
-
-<varlistentry>
-<term><inlinemediaobject><imageobject><imagedata
-fileref="tool-selectoutline.png"
-format="PNG"></imagedata> </imageobject></inlinemediaobject> <guilabel>Select
-Outline</guilabel></term>
-<listitem><para>
-You can use this tool to select custom outlined areas. Click the &LMB; and drag
-with your mouse, like when painting with the <guilabel>Brush</guilabel> tool,
-to define the outline. When you release the mouse button, the outline will be
-finished with a straight line between the current position and the start
-position.
-</para></listitem></varlistentry>
-
-<varlistentry>
-<term><inlinemediaobject><imageobject><imagedata
-fileref="tool-selectcontiguous.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Select Contiguous</guilabel></term>
-<listitem><para>
-With this tool you can select contiguous areas of a color. Click with the
-&LMB; to select an area.
-</para></listitem></varlistentry>
-
-<varlistentry>
-<term><inlinemediaobject><imageobject><imagedata
-fileref="tool-selectsimilar.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Select Similar</guilabel></term>
-<listitem><para>
-With this tool you can select multiple areas with the same color. Detection is
-done the same as with the contiguous fill, but the areas do not need to be
-adjacent.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-selectmagnetic.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Magnetic Selection</guilabel></term>
-<listitem><para>
-With this tool you can easily select a visually distinct area. Click with the
-&LMB; and move the mouse around the area that you want to select. If the area
-has a well enough defined boundary, the selection will be drawn nicely around
-it. You will see a number of control points appear, which connect the various
-parts of the selection boundary.
-</para><para>
-If you want more control over the area that is selected, press &Ctrl; to
-switch to manual mode. You will now have to click for each control point.
-In manual mode, you can also move control points by clicking on them with the
-&LMB; and dragging with the mouse.
-</para><para>
-When you want to return to automatic mode, simply press &Ctrl; again. You can
-switch between these two modes as often as you like.
-</para></listitem></varlistentry>
-
-<varlistentry><term><inlinemediaobject><imageobject><imagedata
-fileref="tool-selectbezier.png" format="PNG"></imagedata>
-</imageobject></inlinemediaobject> <guilabel>Select Bezier</guilabel></term>
-<listitem><para>
-With this tool you can select an area by drawing a Bezier outline. See the
-description of the Bezier tool for details.
-</para></listitem></varlistentry>
-
-</variablelist>
-
-</sect2>
-
-<sect2 id="commands-toolbars-brushesandstuff">
-<title>The <guilabel>Brushes and Stuff</guilabel> Toolbar</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Brushes and Stuff</guilabel> toolbar</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="toolbar-brushesandstuff.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Brushes and Stuff</guilabel> toolbar</phrase>
-</textobject>
-<caption><para>The <guilabel>Brushes and Stuff</guilabel> toolbar</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>This toolbar contains dropdown <quote>palettes</quote> in which you
-can choose brush shapes, gradients, and fill patterns. It also contains a
-dropdown box for painter's tools, and a tablet pressure setting.</para>
-
-<sect3 id="commands-toolbars-brushesandstuff-brushshapes">
-<title><guilabel>Brush Shapes</guilabel></title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Brush Shapes</guilabel> palette</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="toolbar-brushes-brushshapes-predefined.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Brush Shapes</guilabel> palette</phrase>
-</textobject>
-<caption><para>The <guilabel>Brush Shapes</guilabel> palette</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>In the <guilabel>Brush Shapes</guilabel> palette, you can choose
-which brush to paint with. This brush is used for painting operations
-like <guilabel>Freehand</guilabel>, <guilabel>Rectangle</guilabel>,
-<guilabel>Ellipse</guilabel>, etcetera. You can choose a predefined
-brush (in the <guilabel>Predefined Brushes</guilabel> tab, shown above), or
-customize or create one.</para>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Brush Shapes</guilabel> palette with the <guilabel>Autobrush</guilabel> tab</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="toolbar-brushes-brushshapes-autobrush.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Brush Shapes</guilabel> palette with the <guilabel>Autobrush</guilabel> tab</phrase>
-</textobject>
-<caption><para>The <guilabel>Brush Shapes</guilabel> palette with the <guilabel>Autobrush</guilabel>
-tab</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>The <guilabel>Autobrush</guilabel> tab allows you to create a customized
-rectangular or ellipsoid brush. You can set its height and width using
-the <guilabel>Size</guilabel> spin boxes. The link icon controls whether 
-the height and width are forced to be the same or not. If a connected link
-picture is shown, changing one value will automatically change the other one 
-as well. A disconnected link indicates that both values can be set
-independently. The fuzziness of the brush can be set with the
-<guilabel>Fade</guilabel> spin boxes. Again, horizontal and vertical values can
-be allowed to differ or not, depending on the state of the link button.</para>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Brush Shapes</guilabel> palette with the <guilabel>Custom Brush</guilabel> tab</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="toolbar-brushes-brushshapes-custombrush.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Brush Shapes</guilabel> palette with the <guilabel>Custom Brush</guilabel> tab</phrase>
-</textobject>
-<caption><para>The <guilabel>Brush Shapes</guilabel> palette with the <guilabel>Custom Brush</guilabel>
-tab</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>The <guilabel>Custom Brush</guilabel> tab of this palette lets you
-use the current image as a brush. With the <guibutton>Add to
-Predefined Brushes</guibutton> button, you can save it for later use.</para>
-
-</sect3>
-
-<sect3 id="commands-toolbars-brushesandstuff-gradients">
-<title>Gradients</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Gradients</guilabel> palette</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="toolbar-brushes-gradients.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Gradients</guilabel> palette</phrase>
-</textobject>
-<caption><para>The <guilabel>Gradients</guilabel> palette</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>In the <guilabel>Gradients</guilabel> palette, you can choose a gradient
-to paint with using the <guilabel>Gradient</guilabel> tool. Clicking once on a gradient in the
-palette will show a larger preview. Click it again to make it the current
-gradient.</para>
-<para>You can create your own gradients with the <guibutton>Custom
-Gradient</guibutton> button.</para>
-
-</sect3>
-
-<sect3 id="commands-toolbars-brushesandstuff-patterns">
-<title>Patterns</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Patterns</guilabel> palette</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="toolbar-brushes-patterns.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Patterns</guilabel> palette</phrase>
-</textobject>
-<caption><para>The <guilabel>Patterns</guilabel> palette</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>The <guilabel>Patterns</guilabel> palette allows you to choose a pattern
-for operations like Pattern fill. Click a pattern to see a preview at
-actual size, then click it again to select it.</para>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Patterns</guilabel> palette with the <guilabel>Custom Pattern</guilabel> tab selected</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="toolbar-brushes-patterns-custompattern.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Patterns</guilabel> palette with the <guilabel>Custom Pattern</guilabel> tab selected</phrase>
-</textobject>
-<caption><para>The <guilabel>Patterns</guilabel> palette with the <guilabel>Custom Pattern</guilabel> tab selected</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>You can also create a custom pattern, as is shown above.</para>
-
-</sect3>
-
-<sect3 id="commands-toolbars-brushesandstuff-painterstools">
-<title>Painter's tools</title>
-
-<para>With the <guilabel>Painter's tools</guilabel> dropdown box, you can
-select the tool your painting operation should simulate. For example, you can
-paint with a normal brush, an airbrush, or a filter.</para>
-
-</sect3>
-
-<sect3 id="commands-toolbars-brushesandstuff-pressurevariation">
-<title>Pressure variation</title>
-
-<para>This setting allows you to change &krita;'s behaviour when you use a
-tablet to paint with. When you change the pressure on the tablet, you can
-choose between changing the line width (<guilabel>size</guilabel>), the
-opacity, and the darkness.</para>
-
-</sect3>
-
-</sect2>
-
-</sect1>
diff --git a/doc/krita/commands.docbook b/doc/krita/commands.docbook
deleted file mode 100644
index 13ab46b05..000000000
--- a/doc/krita/commands.docbook
+++ /dev/null
@@ -1,14 +0,0 @@
-<chapter id="commands">
-<title>Command Reference</title>
-
-<para>
-This chapter explains &krita;'s user interface in detail. Each of the menus,
-toolbars, palettes, and dialogs will be discussed.
-</para>
-
-&commands-menus;
-&commands-toolbars;
-&commands-palettes;
-&commands-dialogs;
-
-</chapter>
diff --git a/doc/krita/createdocument.png b/doc/krita/createdocument.png
deleted file mode 100644
index 79047af8c..000000000
Binary files a/doc/krita/createdocument.png and /dev/null differ
diff --git a/doc/krita/credits.docbook b/doc/krita/credits.docbook
deleted file mode 100644
index 9059e1478..000000000
--- a/doc/krita/credits.docbook
+++ /dev/null
@@ -1,63 +0,0 @@
-<chapter id="credits">
-
-<title>Credits and License</title>
-
-<para>
-&krita;
-</para>
-<para>
-Program copyright &copy; 1999-2006 The &krita; Team
-</para>
-
-<para>
-Contributors:
-
-<itemizedlist>
-<listitem><para>Adrian Page
-<email>Adrian.Page@tesco.net</email></para></listitem>
-<listitem><para>Andrew Richards
-<email>physajr@phys.canterbury.ac.nz</email></para></listitem>
-<listitem><para>Bart Coppens <email>kde@bartcoppens.be</email></para></listitem>
-<listitem><para>Boudewijn Rempt
-<email>boud@valdyas.org</email> (current maintainer)</para></listitem>
-<listitem><para>Carsten Pfeiffer
-<email>pfeiffer@kde.org</email></para></listitem>
-<listitem><para>Casper Boemann <email>cbr@boemann.dk</email></para></listitem>
-<listitem><para>Cyrille Berger <email>cyb@lepi.org</email></para></listitem>
-<listitem><para>Danny Allen
-<email>dannya40uk@yahoo.co.uk</email></para></listitem>
-<listitem><para>Dirk Schoenberger
-<email>dirk.schoenberger@sz-online.de</email></para></listitem>
-<listitem><para>G&aacute;bor Lehel
-<email>illissius@gmail.com</email></para></listitem>
-<listitem><para>John Califf
-<email>jcaliff@compuzone.net</email></para></listitem>
-<listitem><para>Matthias Elter <email>elter@kde.org</email></para></listitem>
-<listitem><para>Melchior Franz <email>melchior@kde.org</email></para></listitem>
-<listitem><para>Michael Koch <email>koch@kde.org</email></para></listitem>
-<listitem><para>Michael Thaler
-<email>michael.thaler@ph.tum.de</email></para></listitem>
-<listitem><para>Patrick Julien
-<email>freak@codepimps.org</email></para></listitem>
-<listitem><para>Roger Larsson
-<email>roger.larsson@norran.net</email></para></listitem>
-<listitem><para>Sven Langkamp
-<email>longamp@reallygood.de</email></para></listitem>
-</itemizedlist>
-</para>
-
-<para>
-Documentation copyright &copy; 2005-2006 Boudewijn Rempt
-<email>boud@valdyas.org</email>, Sander Koning
-<email>sanderkoning@kde.nl</email>
-with contributions from Casper Boemann, Bart Coppens, Cyrille Berger, Burkhard
-Lueck, and Anne-Marie Mahfouf.
-</para>
-
-<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
-&underFDL;           <!-- FDL: do not remove -->
-&underGPL;        	 <!-- GPL License -->
-
-</chapter>
-
-
diff --git a/doc/krita/crocusses-autocontrast.png b/doc/krita/crocusses-autocontrast.png
deleted file mode 100644
index 3e73db57c..000000000
Binary files a/doc/krita/crocusses-autocontrast.png and /dev/null differ
diff --git a/doc/krita/crocusses-blur.png b/doc/krita/crocusses-blur.png
deleted file mode 100644
index 3b31dbe1d..000000000
Binary files a/doc/krita/crocusses-blur.png and /dev/null differ
diff --git a/doc/krita/crocusses-brightnesscontrast.png b/doc/krita/crocusses-brightnesscontrast.png
deleted file mode 100644
index b60ad77d0..000000000
Binary files a/doc/krita/crocusses-brightnesscontrast.png and /dev/null differ
diff --git a/doc/krita/crocusses-bumpmap.png b/doc/krita/crocusses-bumpmap.png
deleted file mode 100644
index cd1037c15..000000000
Binary files a/doc/krita/crocusses-bumpmap.png and /dev/null differ
diff --git a/doc/krita/crocusses-coloradjustment.png b/doc/krita/crocusses-coloradjustment.png
deleted file mode 100644
index 8efbc9dbb..000000000
Binary files a/doc/krita/crocusses-coloradjustment.png and /dev/null differ
diff --git a/doc/krita/crocusses-colortoalpha.png b/doc/krita/crocusses-colortoalpha.png
deleted file mode 100644
index 232aab293..000000000
Binary files a/doc/krita/crocusses-colortoalpha.png and /dev/null differ
diff --git a/doc/krita/crocusses-colortransfer.png b/doc/krita/crocusses-colortransfer.png
deleted file mode 100644
index a6abfb6a0..000000000
Binary files a/doc/krita/crocusses-colortransfer.png and /dev/null differ
diff --git a/doc/krita/crocusses-customconvolution.png b/doc/krita/crocusses-customconvolution.png
deleted file mode 100644
index 6a1da4fcb..000000000
Binary files a/doc/krita/crocusses-customconvolution.png and /dev/null differ
diff --git a/doc/krita/crocusses-desaturate.png b/doc/krita/crocusses-desaturate.png
deleted file mode 100644
index e2add1254..000000000
Binary files a/doc/krita/crocusses-desaturate.png and /dev/null differ
diff --git a/doc/krita/crocusses-edgebottom.png b/doc/krita/crocusses-edgebottom.png
deleted file mode 100644
index 4c42077f7..000000000
Binary files a/doc/krita/crocusses-edgebottom.png and /dev/null differ
diff --git a/doc/krita/crocusses-edgeleft.png b/doc/krita/crocusses-edgeleft.png
deleted file mode 100644
index 4b3843208..000000000
Binary files a/doc/krita/crocusses-edgeleft.png and /dev/null differ
diff --git a/doc/krita/crocusses-edgeright.png b/doc/krita/crocusses-edgeright.png
deleted file mode 100644
index e2071f65e..000000000
Binary files a/doc/krita/crocusses-edgeright.png and /dev/null differ
diff --git a/doc/krita/crocusses-embossall.png b/doc/krita/crocusses-embossall.png
deleted file mode 100644
index eb9374221..000000000
Binary files a/doc/krita/crocusses-embossall.png and /dev/null differ
diff --git a/doc/krita/crocusses-embosshorvert.png b/doc/krita/crocusses-embosshorvert.png
deleted file mode 100644
index 685e34b1a..000000000
Binary files a/doc/krita/crocusses-embosshorvert.png and /dev/null differ
diff --git a/doc/krita/crocusses-embossvariable.png b/doc/krita/crocusses-embossvariable.png
deleted file mode 100644
index cfeabd1aa..000000000
Binary files a/doc/krita/crocusses-embossvariable.png and /dev/null differ
diff --git a/doc/krita/crocusses-gaussianblur.png b/doc/krita/crocusses-gaussianblur.png
deleted file mode 100644
index bf1633ebd..000000000
Binary files a/doc/krita/crocusses-gaussianblur.png and /dev/null differ
diff --git a/doc/krita/crocusses-gaussiannoise.png b/doc/krita/crocusses-gaussiannoise.png
deleted file mode 100644
index cc0605c5a..000000000
Binary files a/doc/krita/crocusses-gaussiannoise.png and /dev/null differ
diff --git a/doc/krita/crocusses-invert.png b/doc/krita/crocusses-invert.png
deleted file mode 100644
index 9f1d9eb56..000000000
Binary files a/doc/krita/crocusses-invert.png and /dev/null differ
diff --git a/doc/krita/crocusses-lenscorrection.png b/doc/krita/crocusses-lenscorrection.png
deleted file mode 100644
index 7bc8087f2..000000000
Binary files a/doc/krita/crocusses-lenscorrection.png and /dev/null differ
diff --git a/doc/krita/crocusses-maximizechannel.png b/doc/krita/crocusses-maximizechannel.png
deleted file mode 100644
index 9e6dc3f95..000000000
Binary files a/doc/krita/crocusses-maximizechannel.png and /dev/null differ
diff --git a/doc/krita/crocusses-meanremoval.png b/doc/krita/crocusses-meanremoval.png
deleted file mode 100644
index a1df0ac0c..000000000
Binary files a/doc/krita/crocusses-meanremoval.png and /dev/null differ
diff --git a/doc/krita/crocusses-minimizechannel.png b/doc/krita/crocusses-minimizechannel.png
deleted file mode 100644
index 14e9fe07c..000000000
Binary files a/doc/krita/crocusses-minimizechannel.png and /dev/null differ
diff --git a/doc/krita/crocusses-oilpaint.png b/doc/krita/crocusses-oilpaint.png
deleted file mode 100644
index d005ef3ed..000000000
Binary files a/doc/krita/crocusses-oilpaint.png and /dev/null differ
diff --git a/doc/krita/crocusses-pixelize.png b/doc/krita/crocusses-pixelize.png
deleted file mode 100644
index 3fb5ba607..000000000
Binary files a/doc/krita/crocusses-pixelize.png and /dev/null differ
diff --git a/doc/krita/crocusses-raindrops.png b/doc/krita/crocusses-raindrops.png
deleted file mode 100644
index bdee271cd..000000000
Binary files a/doc/krita/crocusses-raindrops.png and /dev/null differ
diff --git a/doc/krita/crocusses-randomnoise.png b/doc/krita/crocusses-randomnoise.png
deleted file mode 100644
index d7525a3f5..000000000
Binary files a/doc/krita/crocusses-randomnoise.png and /dev/null differ
diff --git a/doc/krita/crocusses-randompick.png b/doc/krita/crocusses-randompick.png
deleted file mode 100644
index d3fb496d1..000000000
Binary files a/doc/krita/crocusses-randompick.png and /dev/null differ
diff --git a/doc/krita/crocusses-roundcorners.png b/doc/krita/crocusses-roundcorners.png
deleted file mode 100644
index d997aca74..000000000
Binary files a/doc/krita/crocusses-roundcorners.png and /dev/null differ
diff --git a/doc/krita/crocusses-sharpen.png b/doc/krita/crocusses-sharpen.png
deleted file mode 100644
index 18998da9d..000000000
Binary files a/doc/krita/crocusses-sharpen.png and /dev/null differ
diff --git a/doc/krita/crocusses-smalltiles.png b/doc/krita/crocusses-smalltiles.png
deleted file mode 100644
index 0dcd880d0..000000000
Binary files a/doc/krita/crocusses-smalltiles.png and /dev/null differ
diff --git a/doc/krita/crocusses-sobel.png b/doc/krita/crocusses-sobel.png
deleted file mode 100644
index 90506e6af..000000000
Binary files a/doc/krita/crocusses-sobel.png and /dev/null differ
diff --git a/doc/krita/crocusses-topedge.png b/doc/krita/crocusses-topedge.png
deleted file mode 100644
index e52c08789..000000000
Binary files a/doc/krita/crocusses-topedge.png and /dev/null differ
diff --git a/doc/krita/crocusses-unsharpmask.png b/doc/krita/crocusses-unsharpmask.png
deleted file mode 100644
index 7760cb743..000000000
Binary files a/doc/krita/crocusses-unsharpmask.png and /dev/null differ
diff --git a/doc/krita/crocusses-wave.png b/doc/krita/crocusses-wave.png
deleted file mode 100644
index 053cd4e62..000000000
Binary files a/doc/krita/crocusses-wave.png and /dev/null differ
diff --git a/doc/krita/crocusses-waveletnoise.png b/doc/krita/crocusses-waveletnoise.png
deleted file mode 100644
index 4088373d3..000000000
Binary files a/doc/krita/crocusses-waveletnoise.png and /dev/null differ
diff --git a/doc/krita/crocusses.png b/doc/krita/crocusses.png
deleted file mode 100644
index 9b8913c37..000000000
Binary files a/doc/krita/crocusses.png and /dev/null differ
diff --git a/doc/krita/developers-plugins.docbook b/doc/krita/developers-plugins.docbook
deleted file mode 100644
index 58dd345e8..000000000
--- a/doc/krita/developers-plugins.docbook
+++ /dev/null
@@ -1,1553 +0,0 @@
-<sect1 id="developers-plugins">
-<title>Developing &krita; Plugins</title>
-
-<sect2 id="developers-plugins-introduction">
-<title>Introduction</title>
-
-<para>
-&krita; is infinitely extensible with plugins. Tools, filters, large
-chunks of the user interface and even colorspaces are plugins. In fact,
-&krita; recognizes these six types of plugins:
-</para>
-
-<itemizedlist>
-<listitem><para>colorspaces &mdash; these define the channels that constitute
-a single pixel</para></listitem>
-<listitem><para>tools &mdash; anything that is done with a mouse or tablet
-input device</para></listitem>
-<listitem><para>paint operations &mdash; pluggable painting effects for
-tools</para></listitem>
-<listitem><para>image filters &mdash; change all pixels, or just the selected
-pixels in a layer</para></listitem>
-<listitem><para>viewplugins &mdash; extend Krita’s user interface with new
-dialog boxes, palettes and operations</para></listitem>
-<listitem><para>import/export filters &mdash; read and write all kinds of
-image formats</para></listitem>
-</itemizedlist>
-
-<para>
-&krita; itself consists of three layered libraries and a directory with some
-common support classes: kritacolor, kritaimage and kritaui. Within
-&krita;, objects can by identified by a <classname>KisID</classname>, that is
-the combination of a unique untranslated string (used when saving, for
-instance) and a translated string for GUI purposes.
-</para><para>
-A word on compatibility: &krita; is still in development. From &krita; 1.5 to
-1.6 not many API changes are expected, but there may be some. From &krita; 1.6
-to 2.0 we will move from &Qt;3 to &Qt;4, from &kde;3 to &kde;4, from
-<command>automake</command> to <command>cmake</command>: many changes are to
-be expected. If you develop a plugin for &krita; and choose to do so in
-&krita;’s subversion repository, chances are excellent that we’ll help you
-porting. These changes may also render parts of this document out of date.
-Always check with the latest API documentation or the header files installed
-on your system.
-</para>
-
-<sect3 id="developers-plugins-introduction-kritacolor">
-<title>KritaColor</title>
-
-<para>
-The first library is kritacolor. This library loads the colorspace plugins.
-</para><para>
-A colorspace plugin should implement the <classname>KisColorSpace</classname>
-abstract class or, if the basic capabilities of the new colorspace will be
-implemented by <command>lcms</command> (<ulink url="http://www.littlecms.com/"
-/>), extend <classname>KisAbstractColorSpace</classname>. The kritacolor
-library could be used from other applications and does not depend on
-&koffice;.
-</para>
-</sect3>
-
-<sect3 id="developers-plugins-introduction-kritaimage">
-<title>KritaImage</title>
-
-<para>
-The libkritaimage library loads the filter and paintop plugins and is
-responsible for working with image data: changing pixels, compositing and
-painting. Brushes, palettes, gradients and patterns are also loaded by
-libkritaimage. It is our stated goal to make libkritaimage independent of
-&koffice;, but we currently share the gradient loading code with &koffice;.
-</para><para>
-It is not easy at the moment to add new types of resources such as brushes,
-palettes, gradients or patterns to &krita;. (Adding new brushes, palettes,
-gradients and patterns is easy, of course.) &krita; follows the guidelines of
-the Create project (<ulink url="http://create.freedesktop.org/" />) for these.
-Adding support for Photoshop's brush file format needs libkritaimage hacking;
-adding more gimp brush data files not.
-</para><para>
-<classname>KritaImage</classname> loads the following types of plugins:
-</para>
-
-<itemizedlist>
-<listitem><para>&krita; filters must extend and implement the abstract class
-<classname>KisFilter</classname>,
-<classname>KisFilterConfiguration</classname> and possibly
-<classname>KisFilterConfigurationWidget</classname>.
-An example of a filter is Unsharp Mask.</para></listitem>
-<listitem><para>Paint operations or paintops are the set of operations
-painting tools suchs as freehand or circle have access to. Examples of
-paintops are pen, airbrush or eraser. Paintops should extend the
-<classname>KisPaintop</classname> base class. Examples of new paintops could
-be a chalk brush, an oilpaint brush or a complex programmable
-brush.</para></listitem>
-</itemizedlist>
-
-</sect3>
-
-<sect3 id="developers-plugins-introduction-kritaui">
-<title>KritaUI</title>
-
-<para>
-The libkritaui library loads the tool and viewplugins. This library is a
-&koffice; Part, but also contains a number of widgets that are useful for
-graphics applications. Maybe we will have to split this library in kritapart
-and kritaui in the 2.0 release. For now, script writers are not given access
-to this library and plugin writers are only allowed to use this library when
-writing tools or viewplugins. <classname>KritaUI</classname> loads the
-following types of plugins:
-</para>
-
-<itemizedlist>
-<listitem><para>Tools are derived from <classname>KisTool</classname> or one
-of the specialized tool base classes such as
-<classname>KisToolPaint</classname>, <classname>KisToolNonPaint</classname> or
-<classname>KisToolFreehand</classname>. A new tool could be a foreground
-object selection tool. Painting tools (and that includes tools that paint on
-the selection) can use any paintop to determine the way pixels are
-changed.</para></listitem>
-<listitem><para>Viewplugins are ordinary KParts that use
-<command>kxmlgui</command> to insinuate themselves into &krita;'s user
-interface. Menu options, dialogs, toolbars &mdash; any kind of user interface
-extension can be a viewplugin. In fact, important functionality like &krita;'s
-scripting support is written as a viewplugin.</para></listitem>
-</itemizedlist>
-
-</sect3>
-
-<sect3 id="developers-plugins-introduction-importexport">
-<title>Import/Export filters</title>
-
-<para>
-Import/Export filters are &koffice; filters, subclasses of
-<classname>KoFilter</classname>. Filters read and write image data in any of
-the myriad image formats in existence. And example of a new &krita;
-import/export filter could be a PDF filter. Filters are loaded by the
-&koffice; libraries.
-</para>
-
-</sect3>
-
-</sect2>
-
-<sect2 id="developers-plugins-creating">
-<title>Creating plugins</title>
-
-<para>
-Plugins are written in C++ and can use all of &kde; and &Qt; and the &krita;
-developer API. Only viewplugins should use the &koffice; API. Don’t worry:
-&krita;’s API’s are quite clear and rather extensively documented (for free
-software) and coding your first filter is really easy.
-</para><para>
-If you do not want to use C++, you can write scripts in Python or Ruby; that
-is a different thing altogether, though, and you cannot currently write tools,
-colorspaces, paintops or import/export filters as scripts.
-</para><para>
-&krita; plugins use &kde;'s parts mechanism for loading, so the parts
-documentation at <ulink url="http://developer.kde.org" /> is relevant here, too.
-</para><para>
-Your distribution should have either installed the relevant header files with
-&krita; itself, or might have split the header files into either a &koffice;
-dev or a &krita; dev package. You can find the API documentation for &krita;'s
-public API at <ulink url="http://koffice.org/developer/apidocs/krita/html/" />.
-</para>
-
-<sect3 id="developers-plugins-creating-automake">
-<title>Automake (and CMake)</title>
-
-<para>
-&kde; 3.x and thus &koffice; 1.5 and 1.6 use <command>automake</command>;
-&kde; 4.0 and &koffice; 2.0 use <command>cmake</command>. This tutorial
-describes the <command>automake</command> way of creating plugins. 
-<!-- If I have not updated this manual when we release KOffice 2.0, please
-remind me to do so. -->
-</para><para>
-Plugins are &kde; modules and should be tagged as such in their
-<filename>Makefile.am</filename>. Filters, tools, paintops, colorspaces and
-import/export filters need <literal role="extension">.desktop</literal> files;
-viewplugins need a <application>KXMLGui</application>
-<filename>pluginname.rc</filename> file in addition. The easiest way to get
-started is to checkout the krita-plugins project from the &koffice; Subversion
-repository and use it as the basis for your own project. We intend to prepare
-a skeleton &krita; plugin pack for KDevelop, but haven’t had the time to do
-so yet.
-</para>
-
-<sect4 id="d-p-c-a-makefile">
-<title><filename>Makefile.am</filename></title>
-
-<para>
-Let's look at the skeleton for a plugin module. First, the
-<filename>Makefile.am</filename>. This is what &kde; uses to generate the
-makefile that builds your plugin:
-
-<programlisting>
-kde_services_DATA = kritaLIBRARYNAME.desktop
-
-INCLUDES = $(all_includes)
-
-kritaLIBRARYNAME_la_SOURCES = sourcefile1.cc sourcefile2.cc
-
-kde_module_LTLIBRARIES = kritaLIBRARYNAME.la
-noinst_HEADERS = header1.h header2.h
-
-kritaLIBRARYNAME_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
-kritaLIBRARY_la_LIBADD = -lkritacommon
-
-kritaextensioncolorsfilters_la_METASOURCES = AUTO
-</programlisting>
-
-This is the makefile for a filter plugin. Replace
-<replaceable>LIBRARYNAME</replaceable> with the name of your work, and you are
-set.
-</para><para>
-If your plugin is a viewplugin, you will likely also install a <literal
-role="extension">.rc</literal> file with entries for menubars and toolbars.
-Likewise, you may need to install cursors and icons. That is all done through
-the ordinary &kde; <filename>Makefile.am</filename> magic incantantions:
-
-<programlisting>
-kritarcdir = $(kde_datadir)/krita/kritaplugins
-kritarc_DATA = LIBRARYNAME.rc
-EXTRA_DIST = $(kritarc_DATA)
-
-kritapics_DATA = \
-   bla.png \
-   bla_cursor.png
-kritapicsdir = $(kde_datadir)/krita/pics
-</programlisting>
-
-</para>
-</sect4>
-
-<sect4 id="d-p-c-a-desktop">
-<title>Desktop files</title>
-
-<para>
-The <literal role="extension">.desktop</literal> file announces the type of plugin:
-
-<programlisting>
-[Desktop Entry]
-Encoding=UTF-8
-Icon=
-Name=User-visible Name
-ServiceTypes=Krita/Filter
-Type=Service
-X-KDE-Library=kritaLIBRARYNAME
-X-KDE-Version=2
-</programlisting>
-</para><para>
-Possible ServiceTypes are:
-</para>
-
-<itemizedlist>
-<listitem><para>Krita/Filter</para></listitem>
-<listitem><para>Krita/Paintop</para></listitem>
-<listitem><para>Krita/ViewPlugin</para></listitem>
-<listitem><para>Krita/Tool</para></listitem>
-<listitem><para>Krita/ColorSpace</para></listitem>
-</itemizedlist>
-
-<para>
-File import and export filters use the generic &koffice; filter framework and
-need to be discussed separately.
-</para>
-</sect4>
-
-<sect4 id="d-p-c-a-boilerplate">
-<title>Boilerplate</title>
-
-<para>
-You also need a bit of boilerplate code that is called by the &kde; part
-framework to instantiate the plugin &mdash; a header file and an implementation file.
-</para><para>
-A header file:
-<programlisting>
-#ifndef TOOL_STAR_H_
-#define TOOL_STAR_H_
-
-#include &lt;kparts/plugin.h&gt;
-
-/**
-* A module that provides a star tool.
-*/
-class ToolStar : public KParts::Plugin
-{
-   Q_OBJECT
-public:
-   ToolStar(QObject *parent, const char *name, const QStringList &amp;);
-   virtual ~ToolStar();
-
-};
-
-#endif // TOOL_STAR_H_
-</programlisting>
-</para>
-
-<para>
-And an implementation file:
-<programlisting>
-#include &lt;kinstance.h&gt;
-#include &lt;kgenericfactory.h&gt;
-
-#include &lt;kis_tool_registry.h&gt;
-
-#include "tool_star.h"
-#include "kis_tool_star.h"
-
-
-typedef KGenericFactory&lt;ToolStar&gt; ToolStarFactory;
-K_EXPORT_COMPONENT_FACTORY( kritatoolstar, ToolStarFactory( "krita" ) )
-
-
-ToolStar::ToolStar(QObject *parent, const char *name, const QStringList &amp;)
-   : KParts::Plugin(parent, name)
-{
-   setInstance(ToolStarFactory::instance());
-   if ( parent->inherits("KisToolRegistry") )
-   {
-       KisToolRegistry * r = dynamic_cast&lt;KisToolRegistry*&gt;( parent );
-       r -> add(new KisToolStarFactory());
-   }
-
-}
-
-ToolStar::~ToolStar()
-{
-}
-
-#include "tool_star.moc"
-</programlisting>
-</para>
-</sect4>
-
-<sect4 id="d-p-c-a-registries">
-<title>Registries</title>
-
-<para>
-Tools are loaded by the tool registry and register themselves with the tool
-registry. Plugins like tools, filters and paintops are loaded only once: view
-plugins are loaded for every view that is created. Note that we register
-factories, generally speaking. For instance, with tools a new instance of a
-tool is created for every pointer (mouse, stylus, eraser) for every few. And a
-new paintop is created whenever a tool gets a mouse-down event.
-</para>
-
-<para>
-Filters call the filter registry: 
-<programlisting>
-   if (parent->inherits("KisFilterRegistry")) {
-       KisFilterRegistry * manager = dynamic_cast&lt;KisFilterRegistry *&gt;(parent);
-       manager->add(new KisFilterInvert());
-   }
-</programlisting>
-</para><para>
-Paintops the paintop registry:
-<programlisting>
-   if ( parent->inherits("KisPaintOpRegistry") ) {
-           KisPaintOpRegistry * r = dynamic_cast&lt;KisPaintOpRegistry*&gt;(parent);
-           r -> add ( new KisSmearyOpFactory );
-   }
-</programlisting>
-</para><para>
-Colorspaces the colorspace registry (with some complications):
-<programlisting>
-   if ( parent->inherits("KisColorSpaceFactoryRegistry") ) {
-	KisColorSpaceFactoryRegistry * f = dynamic_cast&lt;isColorSpaceFactoryRegistry*&gt;(parent);
-
-       KisProfile *defProfile = new KisProfile(cmsCreate_sRGBProfile());
-       f->addProfile(defProfile);
-
-       KisColorSpaceFactory * csFactory = new KisRgbColorSpaceFactory();
-       f->add(csFactory);
-   
-       KisColorSpace * colorSpaceRGBA = new KisRgbColorSpace(f, 0);
-       KisHistogramProducerFactoryRegistry::instance() -> add(
-               new KisBasicHistogramProducerFactory&lt;KisBasicU8HistogramProducer&gt;
-               (KisID("RGB8HISTO", i18n("RGB8 Histogram")), colorSpaceRGBA) );
-   }
-</programlisting>
-</para><para>
-View plugins do not have to register themselves, and they get access to a
-<classname>KisView</classname> object:
-<programlisting>
-   if ( parent->inherits("KisView") )
-   {
-       setInstance(ShearImageFactory::instance());
-       setXMLFile(locate("data","kritaplugins/shearimage.rc"), true);
-
-       (void) new KAction(i18n("&amp;Shear Image..."), 0, 0, this, SLOT(slotShearImage()), actionCollection(), "shearimage");
-       (void) new KAction(i18n("&amp;Shear Layer..."), 0, 0, this, SLOT(slotShearLayer()), actionCollection(), "shearlayer");
-
-       m_view = (KisView*) parent;
-   }
-</programlisting>
-</para><para>
-Remember that this means that a view plugin will be created for every view the
-user creates: splitting a view means loading all view plugins again.
-</para>
-</sect4>
-
-<sect4 id="d-p-c-a-versioning">
-<title>Plugin versioning</title>
-
-<para>
-&krita; 1.5 loads plugins with <literal>X-KDE-Version=2</literal> set in the
-<literal role="extension">.desktop</literal> file. &krita; 1.6 plugins will
-probably be binary incompatible with 1.5 plugins and will need the version
-number 3. &krita; 2.0 plugins will need the version number 3. Yes, this is not
-entirely logical.
-</para>
-
-</sect4>
-</sect3>
-</sect2>
-
-<sect2 id="developers-plugins-colorspaces">
-<title>Colorspaces</title>
-
-<para>
-Colorspaces implement the <classname>KisColorSpace</classname> pure virtual
-class. There are two types of colorspaces: those that can use
-<command>lcms</command> for transformations between colorspaces, and those
-that are too weird for <command>lcms</command> to handle. Examples of the
-first are cmyk, rgb, yuv. An example of the latter is watercolor or wet &amp;
-sticky. Colorspaces that use <command>lcms</command> can be derived from
-<classname>KisAbstractColorSpace</classname>, or of one of the base classes
-that are specialized for a certain number of bits per channel.
-</para><para>
-Implementing a colorspace is pretty easy. The general principle is that
-colorspaces work on a simple array of bytes. The interpretation of these bytes
-is up to the colorspace. For instance, a pixel in 16-bit GrayA consists of
-four bytes: two bytes for the gray value and two bytes for the alpha value.
-You are free to use a struct to work with the memory layout of a pixel in your
-colorspace implementation, but that representation is not exported. The only
-way the rest of &krita; can know what channels and types of channels your
-colorspace pixels consist of is through the
-<classname>KisChannelInfo</classname> class.
-</para><para>
-Filters and paintops make use of the rich set of methods offered by
-<classname>KisColorSpace</classname> to do their work. In many cases, the
-default implementation in <classname>KisAbstractColorSpace</classname> will
-work, but more slowly than a custom implementation in your own colorspace
-because <classname>KisAbstractColorSpace</classname> will convert all pixels
-to 16-bit L*a*b and back.
-</para>
-
-<sect3 id="developers-plugins-colorspaces-kischannelinfo">
-<title><classname>KisChannelInfo</classname></title>
-
-<programlisting>
-(http://websvn.kde.org/trunk/koffice/krita/kritacolor/kis_channelinfo.h)
-</programlisting>
-<para>
-This class defines the channels that make up a single pixel in a particular
-colorspace. A channel has the following important characteristics:
-</para>
-<itemizedlist>
-<listitem><para>a name for display in the user interface</para></listitem>
-<listitem><para>a position: the byte where the bytes representing this channel
-start in the pixel.</para></listitem>
-<listitem><para>a type: color, alpha, substance or substrate. Color is plain
-color, alpha is see-throughishness, substance is a representation of amount of
-pigment or things like that, substrate is the representation of the canvas.
-(Note that this may be refactored at the drop of a hat.)</para></listitem>
-<listitem><para>a valuetype: byte, short, integer, float — or
-other.</para></listitem>
-<listitem><para>size: the number of bytes this channel takes</para></listitem>
-<listitem><para>color: a <classname>QColor</classname> representation of this
-channel for user interface visualization, for instance in
-histograms.</para></listitem>
-<listitem><para>an abbreviaton for use in the GUI when there’s not much
-space</para></listitem>
-</itemizedlist>
-</sect3>
-
-<sect3 id="developers-plugins-colorspaces-kiscompositeop">
-<title><classname>KisCompositeOp</classname></title>
-
-<para>
-As per original Porter-Duff, there are many ways of combining pixels to get a
-new color. The <classname>KisCompositeOp</classname> class defines most of
-them: this set is not easily extensible except by hacking the kritacolor
-library.
-</para><para>
-A colorspace plugin can support any subset of these possible composition
-operations, but the set must always include "OVER" (same as "NORMAL") and
-"COPY". The rest are more or less optional, although more is better, of
-course.
-</para>
-</sect3>
-
-<sect3 id="developers-plugins-colorspaces-kiscolorspace">
-<title><classname>KisColorSpace</classname></title>
-
-<para>
-The methods in the <classname>KisColorSpace</classname> pure virtual classs
-can be divided into a number of groups: conversion, identification and
-manipulation.
-</para><para>
-All classes must be able to convert a pixel from and to 8 bit RGB (i.e., a
-<classname>QColor</classname>), and preferably also to and from 16 bit L*a*b.
-Additionally, there is a method to convert to any colorspace from the current
-colorspace.
-</para><para>
-Colorspaces are described by the <classname>KisChannelInfo</classname> vector,
-number of channels, number of bytes in a single pixel, whether it supports
-High Dynamic Range images and more.
-</para><para>
-Manipulation is for instance the combining of two pixels in a new
-pixel: bitBlt, darkening or convolving of pixels.
-</para><para>
-Please consult the API documentation for a full description of all methods you
-need to implement in a colorspace.
-</para><para>
-<classname>KisAbstractColorSpace</classname> implements many of the virtual
-methods of <classname>KisColorSpace</classname> using functions from the
-<command>lcms</command> library. On top of
-<classname>KisAbstractColorSpace</classname> there are base colorspace classes
-for 8 and 16 bit integer and 16 and 32 bit float colorspaces that define
-common operations to move between bit depths.
-</para>
-
-</sect3>
-</sect2>
-
-<sect2 id="developers-plugins-filters">
-<title>Filters</title>
-
-<para>
-Filters are plugins that examine the pixels in a layer and them make changes
-to them. Although &krita; uses an efficient tiled memory backend to store
-pixels, filter writers do not have to bother with that. When writing a filter
-plugin for the &Java; imaging API, Photoshop or The Gimp, you need to take care
-of tile edges and <quote>cobble</quote> tiles together: &krita; hides that
-implementation detail.
-</para>
-<note><para>Note that it is theoretically easy to replace the current tile
-image data storage backend with another backend, but that backens are not true
-plugins at the moment, for performance reasons.</para></note>
-<para>
-&krita; uses iterators to read and write pixel values. Alternatively, you can
-read a block of pixels into a memory buffer, mess with it and then write it
-back as a block. But that is not necessarily more efficient, it may even be
-slower than using the iterators; it may just be more convenient. See the API
-documentation.
-</para><para>
-&krita; images are composed of layers, of which there are currently four
-kinds: paint layers, group layers, adjustment layers (that contain a filter
-that is applied dynamically to layers below the adjustment layer) and part
-layers. Filters always operate on paint layers. Paint layers contain paint
-devices, of the class <classname>KisPaintDevice</classname>. A paint device in
-its turn gives access to the actual pixels.
-</para><para>
-<classname>PaintDevice</classname>s are generally passed around wrapped in
-shared pointers. A shared pointer keeps track of in how many places the paint
-device is currently used and deletes the paint device when it is no longer
-used anywhere. You recognize the shared pointer version of a paint device
-through its <literal>SP</literal> suffix. Just remember that you never have to
-explicitly delete a <classname>KisPaintDeviceSP</classname>.
-</para><para>
-Let's examine a very simple filter, one that inverts every pixel. The code for
-this filter is in the <filename
-class="directory">koffice/krita/plugins/filters/example</filename> directory. 
-The main method is 
-<programlisting>
-KisFilterInvert::process(KisPaintDeviceSP src, KisPaintDeviceSP dst,
-                        KisFilterConfiguration* /*config*/, const QRect&amp; rect).
-</programlisting>
-The function gets passed two paint devices, a configuration object (which is
-not used in this simple filter) and a <varname>rect</varname>. The
-<varname>rect</varname> describes the area of the
-paint device which the filter should act on. This area is described by
-integers, which means no sub-pixel accuracy.
-</para><para>
-The <varname>src</varname> paint device is for reading from, the
-<varname>dst</varname> paint device for writing to. These parameters may point
-to the same actual paint device, or be two different paint devices. (Note:
-this may change to only one paint device in the future.)
-</para><para>
-Now, let's look at the code line by line:
-</para>
-<programlisting>
-void KisFilterInvert::process(KisPaintDeviceSP src, KisPaintDeviceSP dst,
-                             KisFilterConfiguration* /*config*/, const QRect&amp; rect)
-{
-   Q_ASSERT(src != 0);
-   Q_ASSERT(dst != 0);
-
-   KisRectIteratorPixel srcIt = src->createRectIterator(rect.x(), rect.y(), rect.width(), rect.height(), false); <co id="invert1" />
-   KisRectIteratorPixel dstIt = dst->createRectIterator(rect.x(), rect.y(), rect.width(), rect.height(), true ); <co id="invert2" />
-
-   int pixelsProcessed = 0;
-   setProgressTotalSteps(rect.width() * rect.height());
-
-   KisColorSpace * cs = src->colorSpace();
-   Q_INT32 psize = cs->pixelSize();
-
-   while( ! srcIt.isDone() )
-   {
-       if(srcIt.isSelected()) <co id="invert3" />
-       {
-           memcpy(dstIt.rawData(), srcIt.oldRawData(), psize); <co id="invert4" />
-
-           cs->invertColor( dstIt.rawData(), 1); <co id="invert5" />
-       }
-       setProgress(++pixelsProcessed);
-       ++srcIt;
-       ++dstIt;
-   }
-   setProgressDone(); // Must be called even if you don't really support progression
-}
-</programlisting>
-
-<calloutlist>
-<callout arearefs="invert1">
-<para>This creates an iterator to read the existing pixels. Krita has three
-types of iterators: horizontal, vertical and rectangular. The rect iterator
-takes the most efficient path through the image data, but does not guarantee
-anything about the location of the next pixel it returns. That means that you
-cannot be sure that the pixel you will retrieve next will be adjacent to the
-pixel you just got. The horizontal and vertical line iterators do guarantee
-the location of the pixels they return.
-</para></callout>
-<callout arearefs="invert2"><para>
-(2) We create the destination iterator with the <literal>write</literal>
-setting to <literal>true</literal>. This means that if the destination paint
-device is smaller than the rect we write, it will automatically be enlarged to
-fit every pixel we iterate over. Note that we have got a potential bug here:
-if <varname>dst</varname> and <varname>src</varname> are not the same device,
-then it is quite possible that the pixels returned by the iterators do not
-correspond. For every position in the iterator, <varname>src</varname> may be,
-for example, at 165,200, while <varname>dst</varname> could be at 20,8 &mdash;
-and therefore the copy we perform below may distort the image...
-</para></callout>
-<callout arearefs="invert3"><para>
-Want to know if a pixel is selected? That is easy &mdash; use the
-<methodname>isSelected</methodname> method. But selectedness is not a binary
-property of a pixel, a pixel can be half selected, barely selected or almost
-completely selected. That value you can also got from the iterator. Selections
-are actually a mask paint device with a range between 0 and 255, where 0 is
-completely unselected and 255 completely selected. The iterator has two
-methods: <methodname>isSelected()</methodname> and
-<methodname>selectedNess()</methodname>. The first returns true if a pixel is
-selected to any extent (i.e., the mask value is greater than 1), the other
-returns the maskvalue.
-</para></callout>
-<callout arearefs="invert4"><para>
-As noted above, this <literal>memcpy</literal> is a big bad bug...
-<methodname>rawData()</methodname> returns the array of bytes which is the
-current state of the pixel; <methodname>oldRawData()</methodname> returns the
-array of bytes as it was before we created the iterator. However, we may be
-copying the wrong pixel here. In actual practice, that will not happen too
-often, unless <varname>dst</varname> already exists and is not aligned with
-<varname>src</varname>.
-</para></callout>
-<callout arearefs="invert5"><para>
-But this is correct: instead of figuring out which byte represents which
-channel, we use a function supplied by all colorspaces to invert the current
-pixel. The colorspaces have a lot of pixel operations you can make use of.
-</para></callout>
-</calloutlist>
-
-<para>
-This is not all there is to creating a filter. Filters have two other
-important components: a configuration object and a configuration widget. The
-two interact closely. The configuration widget creates a configuration object,
-but can also be filled from a pre-existing configuration object. Configuration
-objects can represtent themselves as XML and can be created from XML. That is
-what makes adjustment layers possible.
-</para>
-
-<sect3 id="developers-plugins-filters-iterators">
-<title>Iterators</title>
-
-<para>
-There are three types of iterators: 
-</para>
-
-<itemizedlist>
-<listitem><para>Horizontal lines</para></listitem>
-<listitem><para>Vertical lines</para></listitem>
-<listitem><para>Rectangular iterors</para></listitem>
-</itemizedlist>
-
-<para>
-The horizontal and vertical line iterators have a method to move the iterator
-to the next row or column: <methodname>nextRow()</methodname> and
-<methodname>nextCol()</methodname>. Using these is much faster than creating a
-new iterator for every line or column.
-</para><para>
-Iterators are thread-safe in &krita;, so it is possible to divide the work
-over multiple threads. However, future versions of &krita; will use the
-<methodname>supportsThreading()</methodname> method to determine whether your
-filter can be applied to chunks of the image (&ie;, all pixels modified
-independently, instead of changed by some value determined from an examination
-of all pixels in the image) and automatically thread the execution your
-filter.
-</para>
-</sect3>
-
-<sect3 id="developers-plugins-filters-kisfilterconfiguration">
-<title><classname>KisFilterConfiguration</classname></title>
-
-<para>
-<classname>KisFilterConfiguration</classname> is a structure that is used to
-save filter settings to disk, for instance for adjustment layers. The
-scripting plugin uses the property map that’s at the back of
-<classname>KisFilterConfigaration</classname> to make it possible to script
-filters. Filters can provide a custom widget that &krita; will show in the
-filters gallery, the filter preview dialog or the tool option tab of the
-paint-with-filters tool.
-</para>
-<para>
-An example, taken from the oilpaint effect filter:
-</para>
-<programlisting>
-class KisOilPaintFilterConfiguration : public KisFilterConfiguration
-{
-
-public:
-
-   KisOilPaintFilterConfiguration(Q_UINT32 brushSize, Q_UINT32 smooth)
-       : KisFilterConfiguration( "oilpaint", 1 )
-       {
-           setProperty("brushSize", brushSize);
-           setProperty("smooth", smooth);
-       };
-public:
-
-   inline Q_UINT32 brushSize() { return getInt("brushSize"); };
-   inline Q_UINT32 smooth() {return getInt("smooth"); };
-
-};
-</programlisting>
-</sect3>
-
-<sect3 id="developers-plugins-filters-kisfilterconfigurationwidget">
-<title><classname>KisFilterConfigurationWidget</classname></title>
-
-<para>
-Most filters can be tweaked by the user. You can create a configuration widget
-that Krita will use where-ever your filter is used. An example:
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Oilpaint</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="dialogs-oilpaint.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Oilpaint</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Oilpaint</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-Note that only the left-hand side of this dialog is your responsibility:
-&krita; takes care of the rest. There are three ways of going about creating
-an option widget:
-</para>
-
-<itemizedlist>
-<listitem><para>Use &Qt; Designer to create a widget base, and subclass it for
-your filter</para></listitem>
-<listitem><para>Use one of the simple widgets that show a number of sliders
-for lists of integers, doubles or bools. These are useful if, like the above
-screenshot, your filter can be configured by a number of integers, doubles or
-bools. See the API dox for <classname>KisMultiIntegerFilterWidget</classname>,
-<classname>KisMultiDoubleFilterWidget</classname> and
-<classname>KisMultiBoolFilterWidget</classname>.</para></listitem>
-<listitem><para>Hand-code a widget. This is not recommended, and if you do so
-and want your filter to become part of &krita;’s official release, then I’ll ask
-you to replate your hand-coded widget with a &Qt; Designer
-widget.</para></listitem>
-</itemizedlist>
-
-<para>
-The oilpaint filter uses the multi integer widget:
-</para>
-
-<programlisting>
-KisFilterConfigWidget * KisOilPaintFilter::createConfigurationWidget(QWidget* parent, KisPaintDeviceSP /*dev*/)
-{
-   vKisIntegerWidgetParam param;
-   param.push_back( KisIntegerWidgetParam( 1, 5, 1, i18n("Brush size"), "brushSize" ) );
-   param.push_back( KisIntegerWidgetParam( 10, 255, 30, i18n("Smooth"), "smooth" ) );
-   return new KisMultiIntegerFilterWidget(parent, id().id().ascii(), id().id().ascii(), param );
-}
-
-KisFilterConfiguration* KisOilPaintFilter::configuration(QWidget* nwidget)
-{
-   KisMultiIntegerFilterWidget* widget = (KisMultiIntegerFilterWidget*) nwidget;
-   if( widget == 0 )
-   {
-       return new KisOilPaintFilterConfiguration( 1, 30);
-   } else {
-       return new KisOilPaintFilterConfiguration( widget->valueAt( 0 ), widget->valueAt( 1 ) );
-   }
-}
-
-std::list&lt;KisFilterConfiguration*&gt; KisOilPaintFilter::listOfExamplesConfiguration(KisPaintDeviceSP )
-{
-   std::list&lt;KisFilterConfiguration*&gt; list;
-   list.insert(list.begin(), new KisOilPaintFilterConfiguration( 1, 30));
-   return list;
-}
-</programlisting>
-
-<para>
-You can see how it works: fill a vector with your integer parameters and
-create the widget. The <methodname>configuration()</methodname> method
-inspects the widget and creates the right filter configuration object, in this
-case, of course, <classname>KisOilPaintFilterConfiguration</classname>. The
-<methodname>listOfExamplesConfiguration</methodname> method (which should be
-renamed to correct English...) returns a list with example configuration
-objects for the filters gallery dialog.
-</para>
-</sect3>
-
-<sect3 id="developers-plugins-filters-conclusion">
-<title>Filters conclusion</title>
-
-<para>
-There’s more to coding interesting filters, of course, but with this
-explanation, the API documentation and access to our source code, you should
-be able to get started. Don’t hesitate to contact the &krita; developers on
-IRC or on the mailing list.
-</para>
-</sect3>
-
-</sect2>
-
-<sect2 id="developers-plugins-tools">
-<title>Tools</title>
-
-<para>
-Tools appear in &krita;’s toolbox. This means that there is limited space for
-new tools &mdash; think carefully whether a paint operation isn’t enough for
-your purposes. Tools can use the mouse/tablet and keyboard in complex ways,
-which paint operations cannot. This is the reason that Duplicate is a tool,
-but airbrush a paint operation.
-</para><para>
-Be careful with static data in your tool: a new instance of your tool is
-created for every input device: mouse, stylus, eraser, airbrush &mdash; whatever.
-Tools come divided into logical groups:
-</para>
-<itemizedlist>
-<listitem><para>shape drawing tools (circle, rect)</para></listitem>
-<listitem><para>freehand drawing tools (brush)</para></listitem>
-<listitem><para>transform tools that mess up the geometry of a
-layer</para></listitem>
-<listitem><para>fill tools (like bucket fill or gradient)</para></listitem>
-<listitem><para>view tools (that don’t change pixels, but alter the way you
-view the canvas, such as zoom)</para></listitem>
-<listitem><para>select tools (that change the selection
-mask)</para></listitem>
-</itemizedlist>
-
-<para>
-The tool interface is described in the API documentation for
-<classname>KisTool</classname>. There are three subclasses:
-<classname>KisToolPaint</classname>, <classname>KisToolNonPaint</classname>
-and <classname>KisToolShape</classname> (which is actually a subclass of
-<classname>KisToolPaint</classname>) that specialize
-<classname>KisTool</classname> for painting tasks (i.e., changing pixels) ,
-non-painting tasks and shape painting tasks.
-</para><para>
-A tool has an option widget, just like filters. Currently, the option widgets
-are shown in a tab in a dock window. We may change that to a strip under the
-main menu (which then replaces the toolbar) for &krita; 2.0, but for now,
-design your option widget to fit in a tab. As always, it’s best to use &Qt;
-Designer for the design of the option widget.
-</para><para>
-A good example of a tool is the star tool:
-</para>
-
-<screen>
-kis_tool_star.cc       Makefile.am   tool_star_cursor.png  wdg_tool_star.ui
-kis_tool_star.h        Makefile.in   tool_star.h           
-kritatoolstar.desktop  tool_star.cc  tool_star.png         
-</screen>
-
-<para>
-As you see, you need two images: one for the cursor and one for the toolbox.
-<filename>tool_star.cc</filename> is just the plugin loader, similar to what
-we have seen above. The real meat is in the implementation:
-</para>
-
-<programlisting>
-KisToolStar::KisToolStar()
-   : KisToolShape(i18n("Star")),
-     m_dragging (false),
-     m_currentImage (0)
-{
-   setName("tool_star");
-   setCursor(KisCursor::load("tool_star_cursor.png", 6, 6));
-   m_innerOuterRatio=40;
-   m_vertices=5;
-}
-</programlisting>
-
-<para>
-The constructor sets the internal name &mdash; which is not translated
-&mdash; and the call to the superclass sets the visible name. We also load the
-cursor image and set a number of variables.
-</para>
-
-<programlisting>
-void KisToolStar::update (KisCanvasSubject *subject)
-{
-   KisToolShape::update (subject);
-   if (m_subject)
-       m_currentImage = m_subject->currentImg();
-}
-</programlisting>
-
-<para>
-The <methodname>update()</methodname> method is called when the tool is
-selected. This is not a <classname>KisTool</classname> method, but a
-<classname>KisCanvasObserver</classname> method. Canvas observers are notified
-whenever something changes in the view, which can be useful for tools.
-</para><para>
-The following methods (<methodname>buttonPress</methodname>,
-<methodname>move</methodname> and <methodname>buttonRelease</methodname>) are
-called by &krita; when the input device (mouse, stylus, eraser etc.) is
-pressed down, moved or released. Note that you also get move events if the
-mouse button isn’t pressed. The events are not the regular &Qt; events, but
-synthetic &krita; events because we make use of low-level trickery to get
-enough events to draw a smooth line. By default, toolkits like &Qt; (and GTK)
-drop events if they are too busy to handle them, and we want them all.
-</para>
-
-<programlisting>
-void KisToolStar::buttonPress(KisButtonPressEvent *event)
-{
-   if (m_currentImage &amp;&amp; event->button() == LeftButton) {
-       m_dragging = true;
-       m_dragStart = event->pos();
-       m_dragEnd = event->pos();
-       m_vertices = m_optWidget->verticesSpinBox->value();
-       m_innerOuterRatio = m_optWidget->ratioSpinBox->value();
-   }
-}
-
-void KisToolStar::move(KisMoveEvent *event)
-{
-   if (m_dragging) {
-       // erase old lines on canvas
-       draw(m_dragStart, m_dragEnd);
-       // move (alt) or resize star
-       if (event->state() &amp; Qt::AltButton) {
-           KisPoint trans = event->pos() - m_dragEnd;
-           m_dragStart += trans;
-           m_dragEnd += trans;
-       } else {
-           m_dragEnd = event->pos();
-       }
-       // draw new lines on canvas
-       draw(m_dragStart, m_dragEnd);
-   }
-}
-
-void KisToolStar::buttonRelease(KisButtonReleaseEvent *event)
-{
-   if (!m_subject || !m_currentImage)
-       return;
-
-   if (m_dragging &amp;&amp; event->button() == LeftButton) {
-       // erase old lines on canvas
-       draw(m_dragStart, m_dragEnd);
-       m_dragging = false;
-
-       if (m_dragStart == m_dragEnd)
-           return;
-
-       if (!m_currentImage)
-           return;
-
-       if (!m_currentImage->activeDevice())
-           return;
-       
-       KisPaintDeviceSP device = m_currentImage->activeDevice ();;
-       KisPainter painter (device);
-       if (m_currentImage->undo()) painter.beginTransaction (i18n("Star"));
-
-       painter.setPaintColor(m_subject->fgColor());
-       painter.setBackgroundColor(m_subject->bgColor());
-       painter.setFillStyle(fillStyle());
-       painter.setBrush(m_subject->currentBrush());
-       painter.setPattern(m_subject->currentPattern());
-       painter.setOpacity(m_opacity);
-       painter.setCompositeOp(m_compositeOp);
-       KisPaintOp * op =
-	   KisPaintOpRegistry::instance()->paintOp(m_subject->currentPaintop(), m_subject->currentPaintopSettings(), &amp;painter);
-       painter.setPaintOp(op); // Painter takes ownership
-
-       vKisPoint coord = starCoordinates(m_vertices, m_dragStart.x(), m_dragStart.y(), m_dragEnd.x(), m_dragEnd.y());
-
-       painter.paintPolygon(coord);
-       
-       device->setDirty( painter.dirtyRect() );
-       notifyModified();
-
-       if (m_currentImage->undo()) {
-           m_currentImage->undoAdapter()->addCommand(painter.endTransaction());
-       }
-   }
-}
-</programlisting>
-
-<para>
-The <methodname>draw()</methodname> method is an internal method of
-<classname>KisToolStar</classname> and draws the outline of the star. We call
-this from the <methodname>move()</methodname> method to give the user feedback
-of the size and shape of their star. Note that we use the
-<varname>Qt::NotROP</varname> raster operation, which means that calling
-<methodname>draw()</methodname> a second time with the same start and end
-point the previously drawn star will be deleted.
-</para>
-
-<programlisting>
-void KisToolStar::draw(const KisPoint&amp; start, const KisPoint&amp; end )
-{
-   if (!m_subject || !m_currentImage)
-       return;
-
-   KisCanvasController *controller = m_subject->canvasController();
-   KisCanvas *canvas = controller->kiscanvas();
-   KisCanvasPainter p (canvas);
-   QPen pen(Qt::SolidLine);
-
-   KisPoint startPos;
-   KisPoint endPos;
-   startPos = controller->windowToView(start);
-   endPos = controller->windowToView(end);
-
-   p.setRasterOp(Qt::NotROP);
-
-   vKisPoint points = starCoordinates(m_vertices, startPos.x(), startPos.y(), endPos.x(), endPos.y());
-
-   for (uint i = 0; i &lt; points.count() - 1; i++) {
-       p.drawLine(points[i].floorQPoint(), points[i + 1].floorQPoint());
-   }
-   p.drawLine(points[points.count() - 1].floorQPoint(), points[0].floorQPoint());
-
-   p.end ();
-}
-</programlisting>
-
-<para>
-The <methodname>setup()</methodname> method is essential: here we create the
-action that will be plugged into the toolbox so users can actually select the
-tool. We also assign a shortcut key. Note that there’s some hackery going on:
-remember that we create an instance of the tool for every input device. This
-also means that we call <methodname>setup()</methodname> for every input
-device and that means that an action with the same name is added several times
-to the action collection. However, everything seems to work, so why worry?
-</para>
-
-<programlisting>
-void KisToolStar::setup(KActionCollection *collection)
-{
-   m_action = static_cast&lt;KRadioAction *&gt;(collection->action(name()));
-
-   if (m_action == 0) {
-       KShortcut shortcut(Qt::Key_Plus);
-       shortcut.append(KShortcut(Qt::Key_F9));
-       m_action = new KRadioAction(i18n("&amp;Star"),
-                                   "tool_star",
-                                   shortcut,
-                                   this,
-                                   SLOT(activate()),
-                                   collection,
-                                   name());
-       Q_CHECK_PTR(m_action);
-
-       m_action->setToolTip(i18n("Draw a star"));
-       m_action->setExclusiveGroup("tools");
-       m_ownAction = true;
-   }
-}
-</programlisting>
-
-<para>
-The <methodname>starCoordinates()</methodname> method contains some funky math
-&mdash; but is not too interesting for the discussion of how to create a tool
-plugins.
-</para>
-
-<programlisting>
-KisPoint KisToolStar::starCoordinates(int N, double mx, double my, double x, double y)
-{
-   double R=0, r=0;
-   Q_INT32 n=0;
-   double angle;
-
-   vKisPoint starCoordinatesArray(2*N);
-
-   // the radius of the outer edges
-   R=sqrt((x-mx)*(x-mx)+(y-my)*(y-my));
-
-   // the radius of the inner edges
-   r=R*m_innerOuterRatio/100.0;
-
-   // the angle
-   angle=-atan2((x-mx),(y-my));
-
-   //set outer edges
-   for(n=0;n&lt;N;n++){
-       starCoordinatesArray[2*n] = KisPoint(mx+R*cos(n * 2.0 * M_PI / N + angle),my+R*sin(n *2.0 * M_PI / N+angle));
-   }
-
-   //set inner edges
-   for(n=0;n&lt;N;n++){
-       starCoordinatesArray[2*n+1] = KisPoint(mx+r*cos((n + 0.5) * 2.0 * M_PI / N + angle),my+r*sin((n +0.5) * 2.0 * M_PI / N + angle));
-   }
-
-   return starCoordinatesArray;
-}
-</programlisting>
-
-<para>
-The <methodname>createOptionWidget()</methodname> method is called to create
-the option widget that &krita; will show in the tab. Since there is a tool per
-input device per view, the state of a tool can be kept in the tool. This
-method is only called once: the option widget is stored and retrieved the next
-time the tool is activated.
-</para>
-
-<programlisting>
-QWidget* KisToolStar::createOptionWidget(QWidget* parent)
-{
-   QWidget *widget = KisToolShape::createOptionWidget(parent);
-
-   m_optWidget = new WdgToolStar(widget);
-   Q_CHECK_PTR(m_optWidget);
-
-   m_optWidget->ratioSpinBox->setValue(m_innerOuterRatio);
-
-   QGridLayout *optionLayout = new QGridLayout(widget, 1, 1);
-   super::addOptionWidgetLayout(optionLayout);
-
-   optionLayout->addWidget(m_optWidget, 0, 0);
-
-   return widget;
-}
-</programlisting>
-
-<sect3 id="developers-plugins-tools-conclusions">
-<title>Tool Conclusions</title>
-
-<para>
-Tools are relatively simple plugins to create. You need to combine the
-<classname>KisTool</classname> and <classname>KisCanvasObserver</classname>
-interfaces in order to effectively create a tool. 
-</para>
-
-</sect3>
-
-</sect2>
-
-<sect2 id="developers-plugins-paintoperations">
-<title>Paint operations</title>
-
-<para>
-PaintOps are one of the more innovative types of plugins in Krita (together
-with pluggable colorspaces). A paint operation defines how tools change the
-pixels they touch. Airbrush, aliased pencil or antialiased pixel brush: these
-are all paint operations. But you could &mdash; with a lot of work &mdash;
-create a paintop that reads Corel Painter XML brush definitions and uses those
-to determine how painting is done.
-</para><para>
-Paint operations are instantiated when a paint tool receives a
-<literal>mouseDown</literal> event and are deleted when the mouseUp event is
-received by a paint tool. In between, the paintop can keep track of previous
-positions and other data, such as pressure levels if the user uses a tablet.
-</para><para>
-The basic operation of a paint operation is to change pixels at the cursor
-position of a paint tool. That can be done only once, or the paint op can
-demand to be run at regular intervals, using a timer. The first would be
-useful for a pencil-type paint op, the second, of course,  for an
-airbrush-type paintop.
-</para><para>
-Paintops can have a small configuration widget which is placed in a toolbar.
-Thus, paintop configuration widgets need to have a horizontal layout of
-widgets that are not higher than a toolbar button. Otherwise, &krita; will
-look very funny.
-</para><para>
-Let’s look at a simple paintop plugin, one that shows a little bit of
-programmatic intelligence. First, in the header file, there’s a factory
-defined. This factory creates a paintop when the active tool needs one:
-</para>
-
-<programlisting>
-public:
-   KisSmearyOpFactory() {}
-   virtual ~KisSmearyOpFactory() {}
-
-   virtual KisPaintOp * createOp(const KisPaintOpSettings *settings, KisPainter * painter);
-   virtual KisID id() { return KisID("paintSmeary", i18n("Smeary Brush")); }
-   virtual bool userVisible(KisColorSpace * ) { return false; }
-   virtual QString pixmap() { return ""; }
-
-};
-</programlisting>
-
-<para>
-The factory also contains the <classname>KisID</classname> with the public and
-private name for the paintop &mdash; make sure your paintop’s private name
-does not clash with another paintop! &mdash; and may optionally return a
-pixmap. &krita; can then show the pixmap together with the name for visual
-identifcation of your paintop. For instance, a painter’s knife paintop would
-have the image of such an implement.
-</para><para>
-The implementation of a paintop is very straightforward:
-</para>
-
-<programlisting>
-KisSmearyOp::KisSmearyOp(KisPainter * painter)
-   : KisPaintOp(painter)
-{
-}
-
-KisSmearyOp::~KisSmearyOp()
-{
-}
-void KisSmearyOp::paintAt(const KisPoint &amp;pos, const KisPaintInformation&amp; info)
-{
-</programlisting>
-
-<para>
-The <methodname>paintAt()</methodname> method really is where it’s at, with
-paintops. This method receives two parameters: the current position (which is
-in floats, not in whole pixels) and a
-<classname>KisPaintInformation</classname> object. which contains the
-pressure, x and y tilt, and movement vector, and may in the future be extended
-with other information.
-</para>
-
-<programlisting>
-   if (!m_painter->device()) return;
-
-   KisBrush *brush = m_painter->brush();
-</programlisting>
-
-<para>
-A <classname>KisBrush</classname> is the representation of a Gimp brush file:
-that is a mask, either a single mask or a series of masks. Actually, we don’t
-use the brush here, except to determine the <quote>hotspot</quote> under the
-cursor.
-</para>
-
-<programlisting>
-   Q_ASSERT(brush);
-
-   if (!brush) return;
-
-   if (! brush->canPaintFor(info) )
-       return;
-
-   KisPaintDeviceSP device = m_painter->device();
-   KisColorSpace * colorSpace = device->colorSpace();
-   KisColor kc = m_painter->paintColor();
-   kc.convertTo(colorSpace);
-
-   KisPoint hotSpot = brush->hotSpot(info);
-   KisPoint pt = pos - hotSpot;
-
-   // Split the coordinates into integer plus fractional parts. The integer
-   // is where the dab will be positioned and the fractional part determines
-   // the sub-pixel positioning.
-   Q_INT32 x, y;
-   double xFraction, yFraction;
-
-   splitCoordinate(pt.x(), &amp;x, &amp;xFraction);
-   splitCoordinate(pt.y(), &amp;y, &amp;yFraction);
-
-   KisPaintDeviceSP dab = new KisPaintDevice(colorSpace, "smeary dab");
-   Q_CHECK_PTR(dab);
-</programlisting>
-
-<para>
-We don’t change the pixels of a paint device directly: instead we create a
-small paint device, a dab, and composite that onto the current paint device.
-</para>
-
-<programlisting>
-   m_painter->setPressure(info.pressure);
-</programlisting>
-
-<para>
-As the comments say, the next bit code does some programmatic work to create
-the actual dab. In this case, we draw a number of lines. When I am done with
-this paintop, the length, position and thickness of the lines will be
-dependent on pressure and paint load, and we’ll have create a stiff, smeary
-oilpaint brush. But I haven’t had time to finish this yet.
-</para>
-
-<programlisting>
-   // Compute the position of the tufts. The tufts are arranged in a line
-   // perpendicular to the motion of the brush, i.e, the straight line between
-   // the current position and the previous position.
-   // The tufts are spread out through the pressure
-
-   KisPoint previousPoint = info.movement.toKisPoint();
-   KisVector2D brushVector(-previousPoint.y(), previousPoint.x());
-   KisVector2D currentPointVector = KisVector2D(pos);
-   brushVector.normalize();
-
-   KisVector2D vl, vr;
-
-   for (int i = 0; i &lt; (NUMBER_OF_TUFTS / 2); ++i) {
-       // Compute the positions on the new vector.
-       vl = currentPointVector + i * brushVector;
-       KisPoint pl = vl.toKisPoint();
-       dab->setPixel(pl.roundX(), pl.roundY(), kc);
-
-       vr = currentPointVector - i * brushVector;
-       KisPoint pr = vr.toKisPoint();
-       dab->setPixel(pr.roundX(), pr.roundY(), kc);
-   }
-
-   vr = vr - vl;
-   vr.normalize();
-</programlisting>
-
-<para>
-Finally we blt the dab onto the original paint device and tell the painter
-that we’ve dirtied a small rectangle of the paint device.
-</para>
-
-<programlisting>
-   if (m_source->hasSelection()) {
-       m_painter->bltSelection(x - 32, y - 32, m_painter->compositeOp(), dab.data(),
-                               m_source->selection(), m_painter->opacity(), x - 32, y -32, 64, 64);
-   }
-   else {
-       m_painter->bitBlt(x - 32, y - 32, m_painter->compositeOp(), dab.data(), m_painter->opacity(), x - 32, y -32, 64, 64);
-   }
-
-   m_painter->addDirtyRect(QRect(x -32, y -32, 64, 64));
-}
-
-
-KisPaintOp * KisSmearyOpFactory::createOp(const KisPaintOpSettings */*settings*/, KisPainter * painter)
-{
-   KisPaintOp * op = new KisSmearyOp(painter);
-   Q_CHECK_PTR(op);
-   return op;
-}
-</programlisting>
-
-<para>
-That’s all: paintops are easy and fun!
-</para>
-
-</sect2>
-
-<sect2 id="developers-plugins-viewplugins">
-<title>View plugins</title>
-
-<para>
-View plugins are the weirdest of the bunch: a view plugin is an ordinary KPart
-that can provide a bit of user interface and some functionality. For instance,
-the histogram tab is a view plugin, as is the rotate dialog.
-</para>
-
-</sect2>
-
-<sect2 id="developers-plugins-importexport">
-<title>Import/Export filters</title>
-
-<para>
-&krita; works with the ordinary &koffice; file filter architecture. There is a
-tutorial, a bit old, but still useful, at: <ulink
-url="http://koffice.org/developer/filters/oldfaq.php" />. It is probably best
-to cooperate with the &krita; team when developing file filters and do the
-development in the &koffice; filter tree. Note that you can test your filters
-without running &krita; using the <command>koconverter</command> utility.
-</para><para>
-Filters have two sides: importing and exporting. These are usually two
-different plugins that may share some code.
-</para><para>
-The important <filename>Makefile.am</filename> entries are:
-</para>
-
-<programlisting>
-service_DATA = krita_XXX_import.desktop krita_XXX_export.desktop
-servicedir = $(kde_servicesdir)
-kdelnk_DATA = krita_XXX.desktop
-kdelnkdir = $(kde_appsdir)/Office
-libkritaXXXimport_la_SOURCES = XXXimport.cpp
-libkritaXXXexport_la_SOURCES = XXXexport.cpp
-METASOURCES = AUTO
-</programlisting>
-
-<para>
-Whether you are building an import filter or an export filter, your work always
-boils down to implementing the following function:
-</para>
-
-<programlisting>
-virtual KoFilter::ConversionStatus convert(const QCString&amp; from, const QCString&amp; to);
-</programlisting>
-
-<para>
-It is the settings in the <literal role="extension">.desktop</literal> files
-that determine which way a filter converts:
-</para><para>
-Import:
-</para>
-
-<programlisting>
-X-KDE-Export=application/x-krita
-X-KDE-Import=image/x-xcf-gimp
-X-KDE-Weight=1
-X-KDE-Library=libkritaXXXimport
-ServiceTypes=KOfficeFilter
-</programlisting>
-
-<para>
-Export:
-</para>
-
-<programlisting>
-X-KDE-Export=image/x-xcf-gimp
-X-KDE-Import=application/x-krita
-ServiceTypes=KOfficeFilter
-Type=Service
-X-KDE-Weight=1
-X-KDE-Library=libkritaXXXexport
-</programlisting>
-
-<para>
-And yes, the mimetype chosen for the example is a hint. Please, pretty please,
-implement an xcf filter?
-</para>
-
-<sect3 id="plugins-developers-importexport-import">
-<title>Import</title>
-
-<para>
-The big problem with import filters is of course your code to read the data on
-disk. The boilerplate for calling that code is fairly simple:
-</para>
-
-<note><para>Note: we really, really should find a way to enable &krita; to keep
-a file open and only read data on a as-needed basis, instead of copying the
-entire contents to the internal paint device representation. But that would
-mean datamanager backends that know about tiff files and so on, and is not
-currently implemented. It would be ideal if some file filters could implement
-a class provisionally named <classname>KisFileDataManager</classname>, create
-an object of that instance with the current file and pass that to KisDoc.  But
-&krita; handles storage per layer, not per document, so this would be a hard
-refactor to do.</para></note>
-
-<programlisting>
-KoFilter::ConversionStatus XXXImport::convert(const QCString&amp;, const QCString&amp; to)
-{
-   if (to != "application/x-krita") <co id="import1" />
-       return KoFilter::BadMimeType;
-
-   KisDoc * doc = dynamic_cast&lt;KisDoc*&gt;(m_chain -> outputDocument()); <co id="import2" />
-   KisView * view = static_cast&lt;KisView*&gt;(doc -> views().getFirst()); <co id="import3" />
-   
-   QString filename = m_chain -> inputFile(); <co id="import4" />
-   
-   if (!doc)
-       return KoFilter::CreationError;
-
-   doc -> prepareForImport(); <co id="import5" />
-
-   if (!filename.isEmpty()) {
-   
-       KURL url(filename);
-
-       if (url.isEmpty())
-           return KoFilter::FileNotFound;
-           
-       KisImageXXXConverter ib(doc, doc -> undoAdapter()); <co id="import6" />
-
-       if (view != 0)
-           view -> canvasSubject() ->  progressDisplay() -> setSubject(&amp;ib, false, true);
-
-       switch (ib.buildImage(url)) <co id="import7" /> {
-           case KisImageBuilder_RESULT_UNSUPPORTED:
-               return KoFilter::NotImplemented;
-               break;
-           case KisImageBuilder_RESULT_INVALID_ARG:
-               return KoFilter::BadMimeType;
-               break;
-           case KisImageBuilder_RESULT_NO_URI:
-           case KisImageBuilder_RESULT_NOT_LOCAL:
-               return KoFilter::FileNotFound;
-               break;
-           case KisImageBuilder_RESULT_BAD_FETCH:
-           case KisImageBuilder_RESULT_EMPTY:
-               return KoFilter::ParsingError;                
-               break;
-           case KisImageBuilder_RESULT_FAILURE:
-               return KoFilter::InternalError;
-               break;
-           case KisImageBuilder_RESULT_OK:
-               doc -> setCurrentImage( ib.image()); <co id="import8" />
-               return KoFilter::OK;
-           default:
-               break;
-       }
-
-   }
-   return KoFilter::StorageCreationError;
-}
-</programlisting>
-
-<calloutlist>
-<callout arearefs="import1"><para>This is supposed to be an importfilter, so
-if it is not called to convert to a &krita; image, then something is
-wrong.</para></callout>
-<callout arearefs="import2"><para>The filter chain already has created an
-output document for us. We need to cast it to <classname>KisDocM</classname>,
-because &krita; documents need special treatment. It would not, actually, be
-all that bad an idea to check whether the result of the cast is not 0, because
-if it is, importing will fail.</para></callout>
-<callout arearefs="import3"><para>If we call this filter from the GUI, we try
-to get the view. If there is a view, the conversion code can try to update the
-progressbar.</para></callout>
-<callout arearefs="import4"><para>The filter has the filename for our input
-file for us.</para></callout>
-<callout arearefs="import5"><para><classname>KisDoc</classname> needs to be
-prepared for import. Certain settings are initialized and undo is disabled.
-Otherwise you could undo the adding of layers performed by the import filter
-and that is weird behaviour.</para></callout>
-<callout arearefs="import6"><para>I have chosed to implement the actual
-importing code in a separate class that I instantiate here. You can also put
-all your code right in this method, but that would be a bit
-messy.</para></callout>
-<callout arearefs="import7"><para>My importer returns a statuscode that I
-can then use to set the status of the import filter. &koffice; takes care of
-showing error messages.</para></callout>
-<callout arearefs="import8"><para>If creating the
-<classname>KisImage</classname> has succeeded we set the document's current
-image to our newly created image. Then we are done: <literal>return
-KoFilter::OK;</literal>.</para></callout>
-</calloutlist>
-
-</sect3>
-
-</sect2>
-
-</sect1>
diff --git a/doc/krita/developers-scripting.docbook b/doc/krita/developers-scripting.docbook
deleted file mode 100644
index b4ee3a53c..000000000
--- a/doc/krita/developers-scripting.docbook
+++ /dev/null
@@ -1,534 +0,0 @@
-<sect1 id="developers-scripting">
-<title>Scripting</title>
-
-<para>
-In &krita;, you can write scripts in Ruby or Python (the availability of the
-interpreters might depend on what your distributions or the administrator of
-your machine did install). Here you will find a description of the scripting
-API.
-</para><para>
-Some examples are distributed with &krita;, and you might find them in
-<filename>/usr/share/apps/krita/scripts</filename> (or
-<filename>/opt/kde/share/apps/krita/scripts</filename>).
-</para>
-
-<sect2 id="developers-scripting-variables">
-<title>Variables in the <classname>Krosskritacore</classname> module</title>
-
-<itemizedlist>
-<listitem><para><varname>KritaDocument</varname> returns a
-<classname>Document</classname> object</para></listitem>
-<listitem><para><varname>KritaScript</varname> returns a
-<classname>ScriptProgress</classname> object</para></listitem>
-</itemizedlist>
-
-<para>
-You can retrieve an object using the <function>get</function> function of the
-<classname>Krosskritacore</classname> module, in Ruby you will have to write something like that:
-<programlisting>
-doc = Krosskritacore::get("KritaDocument")
-script = Krosskritacore::get("KritaScript")
-</programlisting>
-</para>
-
-</sect2>
-
-<sect2 id="developers-scripting-functions">
-<title>Functions in the <classname>Krosskritacore</classname> module</title>
-
-<itemizedlist>
-<listitem><para>Function: <function>getBrush</function></para><para>
-This function returns a <classname>Brush</classname> taken from the list of
-&krita; resources. It takes one argument: the name of the brush.
-For example (in Ruby):
-<programlisting>
-Krosskritacore::getBrush("Circle (05)")
-</programlisting></para></listitem>
-
-<listitem><para>Function: <function>getFilter</function></para><para>
-This function returns a <classname>Filter</classname> taken from the list of
-&krita; resources. It takes one argument: the name of the filter.
-For example (in Ruby):
-<programlisting>
-Krosskritacore::getFilter("invert")
-</programlisting></para></listitem>
-
-<listitem><para>Function: <function>getPattern</function></para><para>
-This function returns a <classname>Pattern</classname> taken from the list of
-&krita; resources. It takes one argument: the name of the pattern.
-For example (in Ruby):
-<programlisting>
-Krosskritacore::getPattern("Bricks")
-</programlisting></para></listitem>
-
-<listitem><para>Function: <function>loadBrush</function></para><para>
-This function loads a <classname>Brush</classname> and then returns it.
-It takes one argument: the filename of the brush.</para></listitem>
-
-<listitem><para>Function: <function>loadPattern</function></para><para>
-This function loads a <classname>Pattern</classname> and then returns it.
-It takes one argument: the filename of the pattern.</para></listitem>
-
-<listitem><para>Function: <function>newCircleBrush</function></para><para>
-This function returns a <classname>Brush</classname> with a circular shape. It
-takes at least two arguments: width and height. It can take two other
-arguments: width of the shading, and height of the shading. If the shading
-is not specified, no shading will be used.
-For example (in Ruby):
-<programlisting>
-Krosskritacore::newCircleBrush(10,20) # create a plain circle
-Krosskritacore::newCircleBrush(10,20,5,10) # create a gradient
-</programlisting></para></listitem>
-
-<listitem><para>Function: <function>newHSVColor</function></para><para>
-This function returns a new <classname>Color</classname> with the given HSV
-triplet. It takes three arguments: hue component (0 to 255), saturation
-component (0 to 255), value component (0 to 255).
-
-For example (in Ruby):
-<programlisting>
-Krosskritacore::newHSVColor(255,125,0)
-</programlisting></para></listitem>
-
-<listitem><para>Function: <function>newImage</function></para><para>
-This function returns a new <classname>Image</classname>. It takes four arguments:
-width, height, colorspace id, name of the image. And in return you get an
-<classname>Image</classname> object.
-For example (in Ruby):
-<programlisting>
-Krosskritacore::newImage(10,20, "RGBA", "kikoo")
-</programlisting></para></listitem>
-
-<listitem><para>Function: <function>newRectBrush</function></para><para>
-This function returns a <classname>Brush</classname> with a rectangular shape.
-It takes at least two arguments: width and height. It can take two other
-arguments: width of the shading and height of the shading. If the shading is
-not specified, no shading will be used.
-For example (in Ruby):
-<programlisting>
- Krosskritacore::newRectBrush(10,20) # create a plain rectangle
- Krosskritacore::newRectBrush(10,20,5,10) # create a gradient
-</programlisting></para></listitem>
-
-<listitem><para>Function: <function>newRGBColor</function></para><para>
-This function returns a new <classname>Color</classname> with the given RGB
-triplet. It takes three arguments: red component (0 to 255), blue component (0 to
-255), green component (0 to 255).
-For example (in Ruby):
-<programlisting>
-Krosskritacore::newRGBColor(255,0,0) # create a red color
-Krosskritacore::newRGBColor(255,255,255) # create a white color
-</programlisting></para></listitem>
-</itemizedlist>
-</sect2>
-
-<sect2 id="developers-scripting-objects">
-<title>Descriptions and function lists for various objects in
-<classname>Krosskritacore</classname></title>
-
-<itemizedlist>
-<listitem><para>Object: PaintLayer</para>
-
-<itemizedlist>
-<listitem><para>Function: <function>beginPainting</function></para></listitem>
-
-<listitem><para>Function: <function>convertToColorspace</function></para><para>
-Convert the image to a colorspace. This function takes one argument: the name
-of the destination colorspace.
-For example (in Ruby):
-<programlisting>
-image.convertToColorspace("CMYK")
-</programlisting></para></listitem>
-
-<listitem><para>Function: <function>createHistogram</function></para><para>
-This function creates a Histogram for this layer. It takes two arguments:
-the type of the histogram ("RGB8HISTO"), and 0 if the histogram is linear, or
-1 if it is logarithmic.</para></listitem>
-
-<listitem><para>Function: <function>createHLineIterator</function></para><para>
-Create an iterator over a layer, it will iterate on a row. This function takes three arguments:
-<varname>x</varname> (start in the row), <varname>y</varname> (vertical
-position of the row), width of the row.</para></listitem>
-
-<listitem><para>Function: <function>createPainter</function></para><para>
-This function creates a <classname>Painter</classname> which will allow you to
-paint on the layer. </para></listitem>
-
-<listitem><para>Function: <function>createRectIterator</function></para><para>
-Create an iterator over a layer, it will iterate on a rectangular area. This
-function takes four arguments: <varname>x</varname>, <varname>y</varname>,
-width of the rectangle, height of the rectangle.</para></listitem>
-
-<listitem><para>Function: <function>createVLineIterator</function></para><para>
-Create an iterator over a layer, it will iterate on a column. This function
-takes three arguments: <varname>x</varname> (horizontal position of the
-column), <varname>y</varname> (start in the column), height of the column.</para></listitem>
-
-<listitem><para>Function: <function>endPainting</function></para><para>
-This function closes the current undo entry and adds it to the history.</para></listitem>
-
-<listitem><para>Function: <function>fastWaveletTransformation</function></para><para>
-Returns the fast wavelet transformation of the layer.</para></listitem>
-
-<listitem><para>Function: <function>fastWaveletUntransformation</function></para><para>
-Untransforms a fast wavelet into this layer. It takes one argument: a wavelet
-object.
-For example (in Ruby):
-<programlisting>
-wavelet = layer.fastWaveletTransformation()
-layer.fastWaveletUntransformation(wavelet)
-</programlisting></para></listitem>
-
-<listitem><para>Function: <function>getHeight</function></para><para>
-Return the height of the layer.</para></listitem>
-
-<listitem><para>Function: <function>getWidth</function></para><para>
-Return the width of the layer.</para></listitem>
-</itemizedlist>
-</listitem>
-
-<listitem><para>Object: <classname>Filter</classname></para>
-<itemizedlist>
-
-<listitem><para>Function: <function>getFilterConfiguration</function></para><para>
-This function returns the <classname>FilterConfiguration</classname>
-associated with this filter.</para></listitem>
-
-<listitem><para>Function: <function>process</function></para><para>
-This function will apply the filter. It takes at least one argument: the
-source layer. You can also use these four aguments: <varname>x</varname>,
-<varname>y</varname>, <varname>width</varname>, <varname>height</varname>.
-(<varname>x</varname>,<varname>y</varname>,<varname>width</varname>,<varname>height</varname>)
-defines the rectangular area on which the filter
-will be computed. If the rectangle is not defined, then the filter will be
-applied on the entire source layer.
-For example (in Ruby)
-<programlisting>
-doc = Krosskritacore::get("KritaDocument")
-image = doc.getImage()
-layer = image.getActivePaintLayer()
-width = layer.getWidth()
-height = layer.getHeight()
-filter = Krosskritacore::getFilter("invert")
-filter.process(layer, layer)
-filter.process(layer, layer, 10, 10, 20, 20 )
-</programlisting></para></listitem>
-</itemizedlist></listitem>
-
-<listitem><para>Object: <classname>FilterConfiguration</classname></para>
-<itemizedlist>
-
-<listitem><para>Function: <function>getProperty</function></para><para>
-This function returns the value of a parameter of the associated
-<classname>Filter</classname>. It takes one argument: the name of the
-parameter.</para></listitem>
-
-<listitem><para>Function: <function>setProperty</function></para><para>
-This function defines a parameter of the associated
-<classname>Filter</classname>. It takes two arguments: the name of the
-parameter and the value, whose type depends on the
-<classname>Filter</classname>.</para></listitem>
-</itemizedlist>
-</listitem>
-
-<listitem><para>Object: <classname>Histogram</classname></para>
-
-<para>This class allows you to access the histogram of a
-<classname>PaintLayer</classname>.
-Example (in Ruby):
-<programlisting>
- doc = krosskritacore::get("KritaDocument")
- image = doc.getImage()
- layer = image.getActiveLayer()
- histo = layer.createHistogram("RGB8HISTO",0)
- min = layer.getMin() * 255
- max = layer.getMax() * 255
- for i in min..max
-   print layer.getValue(i)
-   print "\n"
- end
-</programlisting>
-</para>
-
-<itemizedlist>
-<listitem><para>Function: <function>getChannel</function></para><para>
-Return the selected channel.</para></listitem>
-
-<listitem><para>Function: <function>getCount</function></para><para>
-This function returns the number of pixels used by the histogram.</para></listitem>
-
-<listitem><para>Function: <function>getHighest</function></para><para>
-This function returns the highest value of the histogram.</para></listitem>
-
-<listitem><para>Function: <function>getLowest</function></para><para>
-This function returns the lowest value of the histogram.</para></listitem>
-
-<listitem><para>Function: <function>getMax</function></para><para>
-This function returns the maximum bound of the histogram (values at greater
-position than the maximum are null). The value is in the range 0.0 &ndash; 1.0.</para></listitem>
-
-<listitem><para>Function: <function>getMean</function></para><para>
-This function returns the mean of the histogram.</para></listitem>
-
-<listitem><para>Function: <function>getMin</function></para><para>
-This function returns the minimum bound of the histogram (values at smaller
-position than the minimum are null). The value is in the range 0.0 &ndash; 1.0.</para></listitem>
-
-<listitem><para>Function: <function>getNumberOfBins</function></para><para>
-Return the number of bins of this histogram. </para></listitem>
-
-<listitem><para>Function: <function>getTotal</function></para><para>
-This function returns the sum of all values of the histogram.</para></listitem>
-
-<listitem><para>Function: <function>getValue</function></para><para>
-Return the value of a bin of the histogram. This function takes one argument:
-index, in the range [0..255].</para></listitem>
-
-<listitem><para>Function: <function>setChannel</function></para><para>
-Select the channel of the layer on which to get the result of the histogram.
-This function takes one argument: the channel number.</para></listitem>
-</itemizedlist>
-</listitem>
-
-<listitem><para>Object: <classname>ScriptProgress</classname></para>
-<para><classname>ScriptProgress</classname> is used to manage the progress bar
-of the status bar in &krita;.
-For example (in Ruby):
-<programlisting>
-script = Krosskritacore::get("KritaScript")
-script.setProgressTotalSteps(1000)
-script.setProgressStage("progressive", 0)
-for i in 1..900
-  script.incProgress()
-end
-script.setProgressStage("brutal", 1000)
-</programlisting></para>
-
-<itemizedlist>
-<listitem><para>Function: <function>incProgress</function></para><para>
-This function increments the progress by one step.</para></listitem>
-
-<listitem><para>Function: <function>setProgress</function></para><para>
-This function sets the value of the progress. It takes one argument:
-the value of the progress.</para></listitem>
-
-<listitem><para>Function: <function>setProgressStage</function></para><para>
-This function sets the value of the progress and displays the text.</para></listitem>
-
-<listitem><para>Function: <function>setProgressTotalSteps</function></para><para>
-This function set the number of steps that the script will require. It takes
-one argument: the maximum value of the progress</para></listitem>
-</itemizedlist>
-</listitem>
-
-<listitem><para>Object: <classname>Wavelet</classname></para><para>
-This object holds the coefficients of a wavelet transformation of a
-<classname>PaintLayer</classname>.</para>
-<itemizedlist>
-
-<listitem><para>Function: <function>getDepth</function></para><para>
-Returns the depth of the layer.</para></listitem>
-
-<listitem><para>Function: <function>getNCoeff</function></para><para>
-Returns the value of the Nth coefficient. The function takes one argument: the
-index of the coefficient.</para></listitem>
-
-<listitem><para>Function: <function>getNumCoeffs</function></para><para>
-Returns the number of coefficients in this wavelet (= size * size * depth).</para></listitem>
-
-<listitem><para>Function: <function>getSize</function></para><para>
-Returns the size of the wavelet (size = width = height).</para></listitem>
-
-<listitem><para>Function: <function>getXYCoeff</function></para><para>
-Returns the value of a coefficient. The function takes two arguments:
-<varname>x</varname> and <varname>y</varname>.</para></listitem>
-
-<listitem><para>Function: <function>setNCoeff</function></para><para>
-Set the value of the Nth coefficient. The function takes two arguments: the
-index of the coefficient and the new value of the coefficient.</para></listitem>
-
-<listitem><para>Function: <function>setXYCoeff</function></para><para>
-Set the value of a coefficient. The function takes three arguments:
-<varname>x</varname>, <varname>y</varname>, and the new value of the
-coefficient.</para></listitem>
-</itemizedlist>
-</listitem>
-
-<listitem><para>Object: <classname>Painter</classname></para>
-<itemizedlist>
-
-<listitem><para>Function: <function>convolve</function></para><para>
-This function applies a convolution kernel to an image. It takes at least three arguments:
-a list of kernels (all lists need to have the same size),
-factor, and offset.
-</para><para>
-The value of a pixel will be given by the following function: K * P / factor + offset,
-where K is the kernel and P is the neighbourhood.
-</para><para>
-It can take the following optional arguments: <varname>borderOp</varname>
-(control how to convolve the pixels on the border of an image: 0 = use the
-default color, 1 = use the pixel on the opposite side of the image, 2 = use
-the border pixel, 3 = avoid border pixels), <varname>channel</varname> (1 for
-color, 2 for alpha, 3 for both), <varname>x</varname>, <varname>y</varname>,
-<varname>width</varname>, <varname>height</varname>.</para></listitem>
-
-<listitem><para>Function: <function>setFillThreshold</function></para><para>
-Sets the fill threshold. It takes one argument: the threshold.</para></listitem>
-
-<listitem><para>Function: <function>fillColor</function></para><para>
-Starts filling with a color. It takes two arguments: <varname>x</varname> and
-<varname>y</varname>.</para></listitem>
-
-<listitem><para>Function: <function>fillPattern</function></para><para>
-Starts filling with a pattern. It takes two arguments: <varname>x</varname>
-and <varname>y</varname>.</para></listitem>
-
-<listitem><para>Function: <function>paintPolyline</function></para><para>
-This function will paint a polyline. It takes two arguments: a list of x
-positions, and a list of y positions.</para></listitem>
-
-<listitem><para>Function: <function>paintLine</function></para><para>
-This function will paint a line. It takes five arguments:
-<varname>x1</varname>, <varname>y1</varname>, <varname>x2</varname>,
-<varname>y2</varname>, and <varname>pressure</varname>. 
-</para></listitem>
-
-<listitem><para>Function: <function>paintBezierCurve</function></para><para>
-This function will paint a Bezier curve. It takes ten arguments:
-<varname>x1</varname>, <varname>y1</varname>, <varname>p1</varname>,
-<varname>cx1</varname>, <varname>cy1</varname>, <varname>cx2</varname>,
-<varname>cx2</varname>, <varname>x2</varname>, <varname>y2</varname>,
-<varname>p2</varname>, where (<varname>x1</varname>,<varname>y1</varname>) is
-the start position, <varname>p1</varname> is the pressure at the start,
-(<varname>x2</varname>,<varname>y2</varname>) is the end position,
-<varname>p2</varname> is the pressure at the end.
-(<varname>cx1</varname>,<varname>cy1</varname>) and
-(<varname>cx2</varname>,<varname>cy2</varname>) are the positions of the
-control points.</para></listitem>
-
-<listitem><para>Function: <function>paintEllipse</function></para><para>
-This function will paint an ellipse. It takes five arguments:
-<varname>x1</varname>, <varname>y1</varname>, <varname>x2</varname>,
-<varname>y2</varname>, <varname>pressure</varname>, where
-(<varname>x1</varname>,<varname>y1</varname>) and
-(<varname>x2</varname>,<varname>y2</varname>) are the positions of the two
-centers.</para></listitem>
-
-<listitem><para>Function: <function>paintPolygon</function></para><para>
-This function will paint a polygon. It takes two arguments: a list of x
-positions and a list of y positions.</para></listitem>
-
-<listitem><para>Function: <function>paintRect</function></para><para>
-This function will paint a rectangle. It takes five arguments:
-<varname>x</varname>, <varname>y</varname>, <varname>width</varname>
-<varname>height</varname>, <varname>pressure</varname>.</para></listitem>
-
-<listitem><para>Function: <function>paintAt</function></para><para>
-This function will paint at a given position.
-It takes three arguments: <varname>x</varname>, <varname>y</varname>,
-<varname>pressure</varname>.</para></listitem>
-
-<listitem><para>Function: <function>setPaintColor</function></para><para>
-This function sets the paint color (also called foreground color). It takes
-one argument: a <classname>Color</classname>.</para></listitem>
-
-<listitem><para>Function: <function>setBackgroundColor</function></para><para>
-This function sets the background color. It takes one argument: a
-<classname>Color</classname>.</para></listitem>
-
-<listitem><para>Function: <function>setPattern</function></para><para>
-This function sets the pattern used for filling. It takes one argument: a
-<classname>Pattern</classname> object.</para></listitem>
-
-<listitem><para>Function: <function>setBrush</function></para><para>
-This function sets the brush used for painting. It takes one argument: a
-<classname>Brush</classname> object.</para></listitem>
-
-<listitem><para>Function: <function>setPaintOp</function></para><para>
-This function defines the paint operation. It takes one argument: the name of
-the paint operation.</para></listitem>
-
-<listitem><para>Function: <function>setDuplicateOffset</function></para><para>
-This function defines the duplicate offset. It takes two arguments: the
-horizontal offset and the vertical offset.</para></listitem>
-
-<listitem><para>Function: <function>setOpacity</function></para><para>
-This function set the opacity of the painting. It takes one argument: the
-opacity, in the range 0 to 255.</para></listitem>
-
-<listitem><para>Function: <function>setStrokeStyle</function></para><para>
-This function sets the style of the stroke. It takes one argument: 0 for none,
-or 1 for brush.</para></listitem>
-
-<listitem><para>Function: <function>setFillStyle</function></para><para>
-This function sets the fill style of the <classname>Painter</classname>.
-It takes one argument: 0 for none, 1 for fill with foreground color, 2 for
-fill with background color, 3 for fill with pattern.</para></listitem>
-</itemizedlist>
-</listitem>
-
-<listitem><para>Object: <classname>Iterator</classname></para><para>
-This object allows you to change pixel values one by one.
-The name of some functions depends on the colorspace, for instance, if the
-colorspace of the layer is RGB, you will have <function>setR</function>,
-<function>setG</function> and <function>setB</function>, and for
-CMYK: <function>setC</function>, <function>setM</function>,
-<function>setY</function> and <function>setK</function>. In the documentation
-below we will assume that the colorspace is called ABC, with three channels:
-A, B and C.</para>
-
-<itemizedlist>
-<listitem><para>Functions: <function>setA</function>,
-<function>setB</function>, <function>setC</function></para><para>
-Those functions take one argument: the new value of one of the channels of
-this pixel.</para></listitem>
-
-<listitem><para>Function: <function>setABC</function></para><para>
-Set the value of all channels. This function takes one argument: an array with
-the new values for all channels.</para></listitem>
-
-<listitem><para>Functions: <function>getA</function>,
-<function>getB</function>, <function>getC</function></para><para>
-Return the value of one of the channels of this pixel.</para></listitem>
-
-<listitem><para>Function: <function>getABC</function></para><para>
-Return an array with the values of all channels.</para></listitem>
-
-<listitem><para>Function: <function>darken</function></para><para>
-Darken a pixel. This function takes at least one argument:
-<varname>shade</varname> (amount used to darken all color channels). This
-function can take the following optional argument:
-<varname>compensation</varname> (to limit the darkening).</para></listitem>
-
-<listitem><para>Function: <function>invertColor</function></para><para>
-Invert the color of a pixel.</para></listitem>
-
-<listitem><para>Function: <function>next</function></para><para>
-Increment the position, go to the next pixel.</para></listitem>
-
-<listitem><para>Function: <function>isDone</function></para><para>
-Return true if the iterator is at the end (no more pixels are
-available).</para></listitem>
-</itemizedlist>
-</listitem>
-</itemizedlist>
-
-</sect2>
-
-<sect2 id="developers-scripting-resources">
-<title>Resources</title>
-
-<para>
-Here are hints or partial lists of resources for &krita;.
-</para><para>
-For <classname>Brush</classname> and <classname>Pattern</classname>: You can get
-the name and the associated brush or pattern from the selector in &krita;'s
-toolbar.
-</para><para>
-A list of ids for colorspaces in &krita;: LABA, RGBA, RGBA16, RGBAF32,
-RGBAF16HALF, LMSAF32, GRAYA, GRAYA16, CMYK, CMYKA16.
-</para>
-</sect2>
-
-</sect1>
-
diff --git a/doc/krita/developers.docbook b/doc/krita/developers.docbook
deleted file mode 100644
index 275495309..000000000
--- a/doc/krita/developers.docbook
+++ /dev/null
@@ -1,13 +0,0 @@
-<chapter id="developers">
-<title>Developer's information</title>
-
-<para>
-This chapter contains information for developers or other enthousiasts who
-want to get more out of &krita;.
-</para>
-
-&developers-scripting;
-&developers-plugins;
-
-</chapter>
-
diff --git a/doc/krita/dialogs-addpalette.png b/doc/krita/dialogs-addpalette.png
deleted file mode 100644
index 6f249d96d..000000000
Binary files a/doc/krita/dialogs-addpalette.png and /dev/null differ
diff --git a/doc/krita/dialogs-blur.png b/doc/krita/dialogs-blur.png
deleted file mode 100644
index 3318d8447..000000000
Binary files a/doc/krita/dialogs-blur.png and /dev/null differ
diff --git a/doc/krita/dialogs-brightnesscontrast.png b/doc/krita/dialogs-brightnesscontrast.png
deleted file mode 100644
index 39d8c652c..000000000
Binary files a/doc/krita/dialogs-brightnesscontrast.png and /dev/null differ
diff --git a/doc/krita/dialogs-bumpmap.png b/doc/krita/dialogs-bumpmap.png
deleted file mode 100644
index 5c20347f8..000000000
Binary files a/doc/krita/dialogs-bumpmap.png and /dev/null differ
diff --git a/doc/krita/dialogs-coloradjustment.png b/doc/krita/dialogs-coloradjustment.png
deleted file mode 100644
index b18a80239..000000000
Binary files a/doc/krita/dialogs-coloradjustment.png and /dev/null differ
diff --git a/doc/krita/dialogs-colorrange.png b/doc/krita/dialogs-colorrange.png
deleted file mode 100644
index 6f11b3744..000000000
Binary files a/doc/krita/dialogs-colorrange.png and /dev/null differ
diff --git a/doc/krita/dialogs-colortoalpha.png b/doc/krita/dialogs-colortoalpha.png
deleted file mode 100644
index bc99c3e88..000000000
Binary files a/doc/krita/dialogs-colortoalpha.png and /dev/null differ
diff --git a/doc/krita/dialogs-colortransfer.png b/doc/krita/dialogs-colortransfer.png
deleted file mode 100644
index 00d860955..000000000
Binary files a/doc/krita/dialogs-colortransfer.png and /dev/null differ
diff --git a/doc/krita/dialogs-convertimagetype.png b/doc/krita/dialogs-convertimagetype.png
deleted file mode 100644
index 3df33c652..000000000
Binary files a/doc/krita/dialogs-convertimagetype.png and /dev/null differ
diff --git a/doc/krita/dialogs-convertlayertype.png b/doc/krita/dialogs-convertlayertype.png
deleted file mode 100644
index 85f6977c6..000000000
Binary files a/doc/krita/dialogs-convertlayertype.png and /dev/null differ
diff --git a/doc/krita/dialogs-cubism.png b/doc/krita/dialogs-cubism.png
deleted file mode 100644
index b2e3b741e..000000000
Binary files a/doc/krita/dialogs-cubism.png and /dev/null differ
diff --git a/doc/krita/dialogs-customconvolution.png b/doc/krita/dialogs-customconvolution.png
deleted file mode 100644
index ee15631b8..000000000
Binary files a/doc/krita/dialogs-customconvolution.png and /dev/null differ
diff --git a/doc/krita/dialogs-documentinformation.png b/doc/krita/dialogs-documentinformation.png
deleted file mode 100644
index 2462853f9..000000000
Binary files a/doc/krita/dialogs-documentinformation.png and /dev/null differ
diff --git a/doc/krita/dialogs-dropshadow.png b/doc/krita/dialogs-dropshadow.png
deleted file mode 100644
index c2e0b15fc..000000000
Binary files a/doc/krita/dialogs-dropshadow.png and /dev/null differ
diff --git a/doc/krita/dialogs-emboss.png b/doc/krita/dialogs-emboss.png
deleted file mode 100644
index 552d4676c..000000000
Binary files a/doc/krita/dialogs-emboss.png and /dev/null differ
diff --git a/doc/krita/dialogs-filtersgallery.png b/doc/krita/dialogs-filtersgallery.png
deleted file mode 100644
index 492a506bf..000000000
Binary files a/doc/krita/dialogs-filtersgallery.png and /dev/null differ
diff --git a/doc/krita/dialogs-gaussiannoise.png b/doc/krita/dialogs-gaussiannoise.png
deleted file mode 100644
index 3de3ace92..000000000
Binary files a/doc/krita/dialogs-gaussiannoise.png and /dev/null differ
diff --git a/doc/krita/dialogs-histogram.png b/doc/krita/dialogs-histogram.png
deleted file mode 100644
index 252e3a319..000000000
Binary files a/doc/krita/dialogs-histogram.png and /dev/null differ
diff --git a/doc/krita/dialogs-imageproperties.png b/doc/krita/dialogs-imageproperties.png
deleted file mode 100644
index 893cf95d1..000000000
Binary files a/doc/krita/dialogs-imageproperties.png and /dev/null differ
diff --git a/doc/krita/dialogs-imagerestoration.png b/doc/krita/dialogs-imagerestoration.png
deleted file mode 100644
index 16b1ae2ce..000000000
Binary files a/doc/krita/dialogs-imagerestoration.png and /dev/null differ
diff --git a/doc/krita/dialogs-imagesize.png b/doc/krita/dialogs-imagesize.png
deleted file mode 100644
index 5028a38e8..000000000
Binary files a/doc/krita/dialogs-imagesize.png and /dev/null differ
diff --git a/doc/krita/dialogs-layerproperties.png b/doc/krita/dialogs-layerproperties.png
deleted file mode 100644
index 83c6738d4..000000000
Binary files a/doc/krita/dialogs-layerproperties.png and /dev/null differ
diff --git a/doc/krita/dialogs-layersize.png b/doc/krita/dialogs-layersize.png
deleted file mode 100644
index afab719f0..000000000
Binary files a/doc/krita/dialogs-layersize.png and /dev/null differ
diff --git a/doc/krita/dialogs-lenscorrection.png b/doc/krita/dialogs-lenscorrection.png
deleted file mode 100644
index c550758c5..000000000
Binary files a/doc/krita/dialogs-lenscorrection.png and /dev/null differ
diff --git a/doc/krita/dialogs-newadjustmentlayer.png b/doc/krita/dialogs-newadjustmentlayer.png
deleted file mode 100644
index 67ff729ba..000000000
Binary files a/doc/krita/dialogs-newadjustmentlayer.png and /dev/null differ
diff --git a/doc/krita/dialogs-newlayer.png b/doc/krita/dialogs-newlayer.png
deleted file mode 100644
index acb22f10c..000000000
Binary files a/doc/krita/dialogs-newlayer.png and /dev/null differ
diff --git a/doc/krita/dialogs-oilpaint.png b/doc/krita/dialogs-oilpaint.png
deleted file mode 100644
index 71d277cd4..000000000
Binary files a/doc/krita/dialogs-oilpaint.png and /dev/null differ
diff --git a/doc/krita/dialogs-pixelize.png b/doc/krita/dialogs-pixelize.png
deleted file mode 100644
index 6ae165263..000000000
Binary files a/doc/krita/dialogs-pixelize.png and /dev/null differ
diff --git a/doc/krita/dialogs-raindrops.png b/doc/krita/dialogs-raindrops.png
deleted file mode 100644
index 65e462aaf..000000000
Binary files a/doc/krita/dialogs-raindrops.png and /dev/null differ
diff --git a/doc/krita/dialogs-randomnoise.png b/doc/krita/dialogs-randomnoise.png
deleted file mode 100644
index 405d4313d..000000000
Binary files a/doc/krita/dialogs-randomnoise.png and /dev/null differ
diff --git a/doc/krita/dialogs-randompick.png b/doc/krita/dialogs-randompick.png
deleted file mode 100644
index 8eb4f47d3..000000000
Binary files a/doc/krita/dialogs-randompick.png and /dev/null differ
diff --git a/doc/krita/dialogs-rotateimage.png b/doc/krita/dialogs-rotateimage.png
deleted file mode 100644
index 2f18b18e3..000000000
Binary files a/doc/krita/dialogs-rotateimage.png and /dev/null differ
diff --git a/doc/krita/dialogs-rotatelayer.png b/doc/krita/dialogs-rotatelayer.png
deleted file mode 100644
index ebbdfc0b4..000000000
Binary files a/doc/krita/dialogs-rotatelayer.png and /dev/null differ
diff --git a/doc/krita/dialogs-roundcorners.png b/doc/krita/dialogs-roundcorners.png
deleted file mode 100644
index 141ed0398..000000000
Binary files a/doc/krita/dialogs-roundcorners.png and /dev/null differ
diff --git a/doc/krita/dialogs-separateimage.png b/doc/krita/dialogs-separateimage.png
deleted file mode 100644
index 9e807a443..000000000
Binary files a/doc/krita/dialogs-separateimage.png and /dev/null differ
diff --git a/doc/krita/dialogs-shearimage.png b/doc/krita/dialogs-shearimage.png
deleted file mode 100644
index 384486b70..000000000
Binary files a/doc/krita/dialogs-shearimage.png and /dev/null differ
diff --git a/doc/krita/dialogs-shearlayer.png b/doc/krita/dialogs-shearlayer.png
deleted file mode 100644
index bf6903c81..000000000
Binary files a/doc/krita/dialogs-shearlayer.png and /dev/null differ
diff --git a/doc/krita/dialogs-smalltiles.png b/doc/krita/dialogs-smalltiles.png
deleted file mode 100644
index 5581d6a3f..000000000
Binary files a/doc/krita/dialogs-smalltiles.png and /dev/null differ
diff --git a/doc/krita/dialogs-sobel.png b/doc/krita/dialogs-sobel.png
deleted file mode 100644
index b2a8e0e48..000000000
Binary files a/doc/krita/dialogs-sobel.png and /dev/null differ
diff --git a/doc/krita/dialogs-substrate.png b/doc/krita/dialogs-substrate.png
deleted file mode 100644
index e9fbf0fab..000000000
Binary files a/doc/krita/dialogs-substrate.png and /dev/null differ
diff --git a/doc/krita/dialogs-unsharpmask.png b/doc/krita/dialogs-unsharpmask.png
deleted file mode 100644
index 882faf393..000000000
Binary files a/doc/krita/dialogs-unsharpmask.png and /dev/null differ
diff --git a/doc/krita/dialogs-wave.png b/doc/krita/dialogs-wave.png
deleted file mode 100644
index ab1559be3..000000000
Binary files a/doc/krita/dialogs-wave.png and /dev/null differ
diff --git a/doc/krita/dialogs-waveletnoise.png b/doc/krita/dialogs-waveletnoise.png
deleted file mode 100644
index d126eff5d..000000000
Binary files a/doc/krita/dialogs-waveletnoise.png and /dev/null differ
diff --git a/doc/krita/faq.docbook b/doc/krita/faq.docbook
deleted file mode 100644
index 91ac0b1e2..000000000
--- a/doc/krita/faq.docbook
+++ /dev/null
@@ -1,51 +0,0 @@
-<chapter id="faq">
-<title>Questions and Answers</title>
-
-<para>
-Sometimes, stuff does not work as one would like. &krita; can crash — not all
-that often, these days, but still. So you might need some help. The first thing
-to do is trying to determine what was going on, exactly. Try to reproduce the
-problem and write down what you did before the problem occurred.
-</para><para>
-Then you can create a bug report: go to the <guimenu>Help</guimenu> menu and select
-<guimenuitem>Report Bug</guimenuitem>. That way, we know exactly which version of
-&krita; you are using. Please try to make reasonably sure that your problem has
-not been reported already! Also, please try to be as complete as possible in
-describing your problem.
-</para><para>
-You can also, if it is just that you cannot figure out how to do something
-that you can do using Photoshop (or any other drawing program) using &krita;,
-or if you have some other question, e-mail the &krita; developers at our
-mailing list <email>kimageshop@kde.org</email>, or e-mail the program or
-documentation maintainer directly at <email>boud@valdyas.org</email> or
-<email>sanderkoning@kde.nl</email>, respectively.
-</para>
-
-<!-- TODO Add a set of Q&As? -->
-
-&reporting.bugs;
-&updating.documentation;
-
-<!-- <qandaset id="faqlist">
-<qandaentry>
-<question>
-<para>My Mouse doesn't work. How do I quit &kmyapplication;?</para>
-</question>
-<answer>
-<para>You silly goose! Check out the <link linkend="commands">Commands
-Section</link> for the answer.</para>
-</answer>
-</qandaentry>
-<qandaentry>
-<question>
-<para>Why can't I twiddle my documents?</para>
-</question>
-<answer>
-<para>You can only twiddle your documents if you have the foobar.lib
-installed.</para>
-</answer>
-</qandaentry>
-</qandaset> -->
-
-</chapter>
-
diff --git a/doc/krita/index.docbook b/doc/krita/index.docbook
deleted file mode 100644
index b5ef3c1b5..000000000
--- a/doc/krita/index.docbook
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
-  <!ENTITY kappname "&krita;">
-  <!ENTITY package "koffice">
-  <!ENTITY % addindex "IGNORE">
-  <!ENTITY % English "INCLUDE">
-  <!ENTITY introduction SYSTEM "introduction.docbook">
-  <!ENTITY tutorial SYSTEM "tutorial.docbook">
-  <!ENTITY tutorial-starting SYSTEM "tutorial-starting.docbook">
-  <!ENTITY tutorial-select-layer SYSTEM "tutorial-select-layer.docbook">
-  <!ENTITY tutorial-quick-starts SYSTEM "tutorial-quick-starts.docbook">
-  <!ENTITY tutorial-tablet SYSTEM "tutorial-tablet.docbook">
-  <!ENTITY images SYSTEM "using-images.docbook">
-  <!ENTITY views SYSTEM "using-views.docbook">
-  <!ENTITY layers SYSTEM "using-layers.docbook">
-  <!ENTITY selections SYSTEM "using-selections.docbook">
-  <!ENTITY filters SYSTEM "using-filters.docbook">
-  <!ENTITY colorspaces SYSTEM "using-colorspaces.docbook">
-  <!ENTITY commands SYSTEM "commands.docbook">
-  <!ENTITY commands-toolbars SYSTEM "commands-toolbars.docbook">
-  <!ENTITY commands-palettes SYSTEM "commands-palettes.docbook">
-  <!ENTITY commands-menus SYSTEM "commands-menus.docbook">
-  <!ENTITY commands-dialogs SYSTEM "commands-dialogs.docbook">
-  <!ENTITY settings SYSTEM "settings.docbook">
-  <!ENTITY developers SYSTEM "developers.docbook">
-  <!ENTITY developers-scripting SYSTEM "developers-scripting.docbook">
-  <!ENTITY developers-plugins SYSTEM "developers-plugins.docbook">
-  <!ENTITY faq SYSTEM "faq.docbook">
-  <!ENTITY credits SYSTEM "credits.docbook">
-  <!ENTITY installation SYSTEM "installation.docbook">
-]>
-
-<book lang="&language;">
-
-<bookinfo>
-<title>The &krita; Handbook</title>
-
-<authorgroup>
-<author>
-<personname>
-<firstname>Boudewijn</firstname>
-<surname>Rempt</surname>
-</personname>
-<email>boud@valdyas.org</email>
-</author>
-<author>
-<personname>
-<firstname>Casper</firstname>
-<surname>Boemann</surname>
-</personname>
-<email>cbr@boemann.dk</email>
-</author>
-<author>
-<personname>
-<firstname>Cyrille</firstname>
-<surname>Berger</surname>
-</personname>
-<email>cberger@cberger.net</email>
-</author>
-<author>
-<personname>
-<firstname>Sander</firstname>
-<surname>Koning</surname>
-</personname>
-<email>sanderkoning@kde.nl</email>
-</author>
-<!-- TRANS:ROLES_OF_TRANSLATORS -->
-</authorgroup>
-
-<copyright>
-<year>2005-2006</year>
-<holder>Boudewijn Rempt</holder>
-<holder>Casper Boemann</holder>
-<holder>Cyrille Berger</holder>
-<holder>Sander Koning</holder>
-</copyright>
-
-<legalnotice>&FDLNotice;</legalnotice>
-
-<!-- Date and version information of the documentation -->
-
-<date>2006-09-13</date>
-<releaseinfo>1.6</releaseinfo>
-
-<!-- Abstract about this handbook -->
-
-<abstract>
-<para>
-&krita; is part of the &koffice; package. &krita; is a photo retouching, image
-editing application, but above all, a paint application that will allow you to
-create original art on your computer as if you were working with paint and
-brushes, pencils, pen and ink &mdash; or, at least, it will one day. We are
-continually working on extending &krita; and making it better in every respect.
-</para>
-</abstract>
-
-<keywordset>
-<keyword>KDE</keyword>
-<keyword>koffice</keyword>
-<keyword>Krita</keyword>
-<keyword>image manipulation</keyword>
-<keyword>graphics</keyword>
-<keyword>painting</keyword>
-</keywordset>
-
-</bookinfo>
-
-&introduction;
-&tutorial;
-&images;
-&views;
-&layers;
-&selections;
-&filters;
-&colorspaces;
-&commands;
-&settings;
-&developers; 
-&faq;
-&credits;
-&installation;
-
-&documentation.index;
-</book>
-
-<!--
-Local Variables:
-mode: xml
-sgml-minimize-attributes:nil
-sgml-general-insert-case:lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
-
-vim:tabstop=2:shiftwidth=2:expandtab
-kate: space-indent on; indent-width 2; tab-width 2; indent-mode none;
--->
diff --git a/doc/krita/installation.docbook b/doc/krita/installation.docbook
deleted file mode 100644
index 83158a747..000000000
--- a/doc/krita/installation.docbook
+++ /dev/null
@@ -1,73 +0,0 @@
-<appendix id="installation">
-<title>Installation</title>
-
-<sect1 id="getting-kapp">
-<title>How to obtain &krita;</title>
-
-<!-- This first entity contains boiler plate for applications that are
-part of KDE CVS.  You should remove it if you are releasing your
-application -->
-
-&install.intro.documentation;
-
-</sect1>
-
-<sect1 id="requirements">
-<title>Requirements</title>
-
-<!--
-List any special requirements for your application here. This should include:
-.Libraries or other software that is not included in kdesupport,
-kdelibs, or kdebase.
-.Hardware requirements like amount of RAM, disk space, graphics card
-capabilities, screen resolution, special expansion cards, etc.
-.Operating systems the app will run on. If your app is designed only for a
-specific OS, (you wrote a graphical LILO configurator for example) put this
-information here.
--->
-
-<para>
-&krita; depends on the following libraries, apart from what &koffice; needs
-itself:
-</para>
-<itemizedlist>
-<listitem><para><ulink url="http://www.imagemagick.org/">Image
-Magick</ulink> &mdash; X11 Image Processing and Display
-Package</para></listitem>
-<listitem><para><ulink url="http://www.littlecms.com/">Little CMS</ulink>
-&mdash; A free color management system in 100K</para></listitem>
-<listitem><para><ulink
-url="http://www.openexr.com/">OpenEXR</ulink></para></listitem>
-</itemizedlist>
-
-<!-- For a list of updates, you may refer to the application web site
-or the ChangeLog file, or ... -->
-<para>
-You can find a list of changes in the <filename>ChangeLog</filename> file or on
-<ulink url="http://koffice.org/krita/">&krita;'s website</ulink>.
-</para>
-</sect1>
-
-<sect1 id="compilation">
-<title>Compilation and Installation</title>
-
-<!-- This entity contains the boilerplate text for standard -->
-<!-- compilation instructions.  If your application requires any -->
-<!-- special handling, remove it, and replace with your own text. -->
-
-&install.compile.documentation;
-
-</sect1>
-
-<!--
-<sect1 id="configuration">
-<title>Configuration</title>
-
-<para>Don't forget to tell your system to start the <filename>dtd</filename>
-dicer-toaster daemon first, or &kmyapplication; won't work !</para>
-
-</sect1>
--->
-
-</appendix>
-
diff --git a/doc/krita/introduction.docbook b/doc/krita/introduction.docbook
deleted file mode 100644
index 7441f80df..000000000
--- a/doc/krita/introduction.docbook
+++ /dev/null
@@ -1,153 +0,0 @@
-<chapter id="introduction">
-<title>Introduction</title>
-
-<sect1 id="introduction-krita">
-<title>What is &krita;?</title>
-<para>
-&krita;, part of &koffice;, can do everything you want with images &mdash; or
-it will be able to one day. Everything from photo retouching, image editing,
-and last but not least creating original art on your computer as if you were
-working with real paint and brushes, pencils, pen and ink. Every day
-&krita; becomes a little better, a little more useful.  We are working on it,
-anyway. We, that is, Adrian, Bart, Boudewijn, Casper, Cyrille, Michael and Sven.
-It could be you, too &mdash; whether you would like to help with some artwork
-for the user interface, cool ideas for the todo, helpful bug reports, usability
-reviews or even actual code, you will not be snubbed by us.
-</para>
-<para>
-&krita; is as much yours as it is ours. It should be fun, innovative, and
-experimental &mdash; first and foremost a pleasure to use and to hack on.
-</para>
-</sect1>
-
-<sect1 id="introduction-keyfeatures">
-<title>Key features</title>
-
-<para>The most important features &krita; currently has to offer, are:</para>
-<itemizedlist>
-
-<listitem><para>Plugins: Krita is extensible through plugins. There are tools,
-colorspaces, paint operations, filters and kpart-based user interface plugins.
-</para></listitem>
-
-<listitem><para>Scriptable: &krita; is scriptable in Python and Ruby using
-Kross, the cross language scripting engine that originated in Kexi. The
-scripting is compatible with PyQt/KDE and Korundum for adding GUI
-items, such as dialog boxes.</para></listitem>
-
-<listitem><para>Color models: &krita; uses lcms for a dependable color
-workflow using icc profiles for importing, exporting, selecting paint colors,
-printing, cutting and pasting. 8, 16, and 32 bit colorspaces are available
-(RGB, CMYK, L*a*b*, ...) and colors can be selected from a color wheel, rgb or
-grayscale sliders or with a palette.</para></listitem>
-
-<listitem><para>Editing and viewing: Unlimited undo and redo are available.
-You can cut, copy and paste between lagers and images, with conversion through
-icc profiles if this is necessary.  OpenGL is supported for display. The view
-can be made fullscreen and can be split. Rulers are available, the
-image can be zoomed, and for maximizing the workspace all palette windows can
-be hidden in one go. Also a histogram palette is available.</para></listitem>
-
-<listitem><para>Images and layers: Layers and entire images can be mirrored,
-sheared, rotated and scaled, converted between colorspaces, and layers in
-different colorspaces can be merged. An image can be separated into colorspace
-channels.</para></listitem>
-
-<listitem><para>Layers: Layers can be added, removed, grouped, locked, made
-(in)visible, and re-ordered.  Adjustment layers (layers which perform a filter
-function) can be added as well. A layer can be saved as a separate image and
-its colorspace can be changed.</para></listitem>
-
-<listitem><para>Tools: Through the innovative paintOp plugin system, all
-painting tools (brush, ellipse, line, etc.) can paint aliased, anti-aliased,
-erase, airbrush and more.</para></listitem>
-
-<listitem><para>Filters: &krita; can multithread the operation of some
-filters. Filters can be previewed in the filter gallery. Available filters
-include color adjustment, sharpen or blur, emboss, raindrops, and
-more.</para></listitem>
-
-<listitem><para>Brushes: The GIMP brush shapes can be used, both colored and
-grayscale brushes and pipe brushes. Custom brushes can be created, even from
-entire layers or images. Colored brushes can also be used as
-masks.</para></listitem>
-
-</itemizedlist>
-
-<sect2 id="introduction-keyfeatures-colormanagement">
-<title>Color management</title>
-<para>
-One of the most distinguishing features in &krita; is its color management.
-If you put two screens side to side, you will notice that there is often a lot
-of difference in the way they display colors. Even white, especially white, is
-often not the same thing at all. On one screen it can be a dirty yellow, on
-another screen a sickly bluish. Very seldom is it a creamy milk-white. The same
-holds, unfortunately, for scanners, printers and digital cameras. So, if you
-want to see the right colors on screen and on paper, being the colors that you
-saw when taking your snapshot, you will have to compensate.
-</para><para>
-&krita; can do this for you: in &krita;, a color is (almost) never just a set of
-numbers, one for each color channel; it is a set of numbers with information
-attached. And that extra information is contained in a profile: your image has a
-profile, your scanner has a profile, your camera should have a profile and your
-screen has a profile. When passing information from your image to your screen,
-the profiles are checked and the correct color is computed. This may cause a
-little slowness, now and then, but the result is that you can work with colors,
-instead of almost meaningless RGB triplets.
-</para><para>
-Available colorspaces are: 8 bit/channel RGB, CMYK, grayscale and wet
-watercolors, 16 bit/channel RGB, CMYK, grayscale and L*a*b*, <quote>half</quote>
-RGB, and 32 bit float RGB (HDR) and LMS.
-</para>
-</sect2>
-
-<sect2 id="introduction-keyfeatures-imageformats">
-<title>Image formats</title>
-<para>
-&krita; currently supports the following image formats, both for importing and
-exporting, apart from its own: PNG, TIFF, JPEG, Dicom, XCF, PSD, GIF, BMP,
-XPM, Targa, RGB, and OpenEXR. Additionally, &krita; can import 
-ICO files. PSD (the Photoshop file format) is only supported up to version 6,
-from version 7 on, the Photoshop file format is closed. 
-</para><para>
-Embedded icc profiles and exif information are preserved on export to
-supporting file formats. &krita;'s native file format stores icc and exif
-information.
-</para>
-</sect2>
-
-</sect1>
-
-<sect1 id="introduction-manual">
-<title>About this manual</title>
-<para>
-We are assuming you have got a good working knowledge of &kde; and of your
-operating system. The first chapter will give you a quick tour of &krita;'s
-cool features; the other chapters will expand on that information.
-</para>
-<note><para>
-This manual is not complete. The invitation to join us and help out extends to
-the manual, too!
-</para></note>
-<para>
-Should you have any questions, comments or suggestions, please contact the
-documentation maintainer at <email>sanderkoning@kde.nl</email>.
-</para>
-</sect1>
-
-<sect1 id="introduction-maintainer">
-<title>About the application maintainer</title>
-<para>
-Hi! I'm Boudewijn Rempt &mdash; the current maintainer of &krita;. I was
-educated as a linguist, retrained as a database developer, work as a Java
-hacker, study theology and I have always liked to paint and sketch a little.
-Conspiciously absent in my life have been two important things for a developer
-of an image app: mathematics and experience with graphic design. That means that
-I am probably not the best person to explain the niceties of using an image
-editor or a paint application to you. If you catch me in an error, please don't
-hesitate to mail me: <email>boud@valdyas.org</email>.
-</para>
-</sect1>
-
-</chapter>
-
diff --git a/doc/krita/mainscreen.png b/doc/krita/mainscreen.png
deleted file mode 100644
index cce13569b..000000000
Binary files a/doc/krita/mainscreen.png and /dev/null differ
diff --git a/doc/krita/mountains-burn.png b/doc/krita/mountains-burn.png
deleted file mode 100644
index 812c89d2f..000000000
Binary files a/doc/krita/mountains-burn.png and /dev/null differ
diff --git a/doc/krita/mountains-color.png b/doc/krita/mountains-color.png
deleted file mode 100644
index aa34beced..000000000
Binary files a/doc/krita/mountains-color.png and /dev/null differ
diff --git a/doc/krita/mountains-darken.png b/doc/krita/mountains-darken.png
deleted file mode 100644
index 3b1ba616e..000000000
Binary files a/doc/krita/mountains-darken.png and /dev/null differ
diff --git a/doc/krita/mountains-divide.png b/doc/krita/mountains-divide.png
deleted file mode 100644
index b2778f65b..000000000
Binary files a/doc/krita/mountains-divide.png and /dev/null differ
diff --git a/doc/krita/mountains-dodge.png b/doc/krita/mountains-dodge.png
deleted file mode 100644
index 47f198a92..000000000
Binary files a/doc/krita/mountains-dodge.png and /dev/null differ
diff --git a/doc/krita/mountains-hue.png b/doc/krita/mountains-hue.png
deleted file mode 100644
index 09adb9133..000000000
Binary files a/doc/krita/mountains-hue.png and /dev/null differ
diff --git a/doc/krita/mountains-lighten.png b/doc/krita/mountains-lighten.png
deleted file mode 100644
index 8149ef332..000000000
Binary files a/doc/krita/mountains-lighten.png and /dev/null differ
diff --git a/doc/krita/mountains-multiply.png b/doc/krita/mountains-multiply.png
deleted file mode 100644
index a87693941..000000000
Binary files a/doc/krita/mountains-multiply.png and /dev/null differ
diff --git a/doc/krita/mountains-normal.png b/doc/krita/mountains-normal.png
deleted file mode 100644
index 675eb53b3..000000000
Binary files a/doc/krita/mountains-normal.png and /dev/null differ
diff --git a/doc/krita/mountains-original.png b/doc/krita/mountains-original.png
deleted file mode 100644
index 1927e618d..000000000
Binary files a/doc/krita/mountains-original.png and /dev/null differ
diff --git a/doc/krita/mountains-overlay.png b/doc/krita/mountains-overlay.png
deleted file mode 100644
index 4351c1b69..000000000
Binary files a/doc/krita/mountains-overlay.png and /dev/null differ
diff --git a/doc/krita/mountains-saturation.png b/doc/krita/mountains-saturation.png
deleted file mode 100644
index 2893ed9e6..000000000
Binary files a/doc/krita/mountains-saturation.png and /dev/null differ
diff --git a/doc/krita/mountains-screen.png b/doc/krita/mountains-screen.png
deleted file mode 100644
index 4d0f9223f..000000000
Binary files a/doc/krita/mountains-screen.png and /dev/null differ
diff --git a/doc/krita/mountains-value.png b/doc/krita/mountains-value.png
deleted file mode 100644
index 29714b937..000000000
Binary files a/doc/krita/mountains-value.png and /dev/null differ
diff --git a/doc/krita/mountains.png b/doc/krita/mountains.png
deleted file mode 100644
index 78c9ca867..000000000
Binary files a/doc/krita/mountains.png and /dev/null differ
diff --git a/doc/krita/newimage.png b/doc/krita/newimage.png
deleted file mode 100644
index 210f09121..000000000
Binary files a/doc/krita/newimage.png and /dev/null differ
diff --git a/doc/krita/palettes-colors-gray.png b/doc/krita/palettes-colors-gray.png
deleted file mode 100644
index 23bd973a4..000000000
Binary files a/doc/krita/palettes-colors-gray.png and /dev/null differ
diff --git a/doc/krita/palettes-colors-hsv.png b/doc/krita/palettes-colors-hsv.png
deleted file mode 100644
index 2ff423571..000000000
Binary files a/doc/krita/palettes-colors-hsv.png and /dev/null differ
diff --git a/doc/krita/palettes-colors-palettes.png b/doc/krita/palettes-colors-palettes.png
deleted file mode 100644
index 4f0b379a8..000000000
Binary files a/doc/krita/palettes-colors-palettes.png and /dev/null differ
diff --git a/doc/krita/palettes-colors-rgb.png b/doc/krita/palettes-colors-rgb.png
deleted file mode 100644
index bbf648837..000000000
Binary files a/doc/krita/palettes-colors-rgb.png and /dev/null differ
diff --git a/doc/krita/palettes-colors-watercolors.png b/doc/krita/palettes-colors-watercolors.png
deleted file mode 100644
index 63fae2106..000000000
Binary files a/doc/krita/palettes-colors-watercolors.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-bezier.png b/doc/krita/palettes-controlbox-bezier.png
deleted file mode 100644
index 4e42caee4..000000000
Binary files a/doc/krita/palettes-controlbox-bezier.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-brush.png b/doc/krita/palettes-controlbox-brush.png
deleted file mode 100644
index c3c3ed08b..000000000
Binary files a/doc/krita/palettes-controlbox-brush.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-colorpicker.png b/doc/krita/palettes-controlbox-colorpicker.png
deleted file mode 100644
index 7733c18d1..000000000
Binary files a/doc/krita/palettes-controlbox-colorpicker.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-contiguousfill.png b/doc/krita/palettes-controlbox-contiguousfill.png
deleted file mode 100644
index 57777af98..000000000
Binary files a/doc/krita/palettes-controlbox-contiguousfill.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-crop.png b/doc/krita/palettes-controlbox-crop.png
deleted file mode 100644
index 790911347..000000000
Binary files a/doc/krita/palettes-controlbox-crop.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-duplicate.png b/doc/krita/palettes-controlbox-duplicate.png
deleted file mode 100644
index 74ec92e4e..000000000
Binary files a/doc/krita/palettes-controlbox-duplicate.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-ellipse.png b/doc/krita/palettes-controlbox-ellipse.png
deleted file mode 100644
index 14ab37337..000000000
Binary files a/doc/krita/palettes-controlbox-ellipse.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-fill.png b/doc/krita/palettes-controlbox-fill.png
deleted file mode 100644
index 1120d06be..000000000
Binary files a/doc/krita/palettes-controlbox-fill.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-gradient.png b/doc/krita/palettes-controlbox-gradient.png
deleted file mode 100644
index 857824c3e..000000000
Binary files a/doc/krita/palettes-controlbox-gradient.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-histogram.png b/doc/krita/palettes-controlbox-histogram.png
deleted file mode 100644
index 1dccaecd4..000000000
Binary files a/doc/krita/palettes-controlbox-histogram.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-line.png b/doc/krita/palettes-controlbox-line.png
deleted file mode 100644
index c06712046..000000000
Binary files a/doc/krita/palettes-controlbox-line.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-overview.png b/doc/krita/palettes-controlbox-overview.png
deleted file mode 100644
index 483e3ec30..000000000
Binary files a/doc/krita/palettes-controlbox-overview.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-paintwithfilters.png b/doc/krita/palettes-controlbox-paintwithfilters.png
deleted file mode 100644
index 2a0ca8ef7..000000000
Binary files a/doc/krita/palettes-controlbox-paintwithfilters.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-polygon.png b/doc/krita/palettes-controlbox-polygon.png
deleted file mode 100644
index 47cfbbc10..000000000
Binary files a/doc/krita/palettes-controlbox-polygon.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-polyline.png b/doc/krita/palettes-controlbox-polyline.png
deleted file mode 100644
index c06712046..000000000
Binary files a/doc/krita/palettes-controlbox-polyline.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-rectangle.png b/doc/krita/palettes-controlbox-rectangle.png
deleted file mode 100644
index 14ab37337..000000000
Binary files a/doc/krita/palettes-controlbox-rectangle.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-select.png b/doc/krita/palettes-controlbox-select.png
deleted file mode 100644
index 0d5e0010c..000000000
Binary files a/doc/krita/palettes-controlbox-select.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-selectcontiguous.png b/doc/krita/palettes-controlbox-selectcontiguous.png
deleted file mode 100644
index 591c80961..000000000
Binary files a/doc/krita/palettes-controlbox-selectcontiguous.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-selectmagnetic.png b/doc/krita/palettes-controlbox-selectmagnetic.png
deleted file mode 100644
index 4fb3ac1bd..000000000
Binary files a/doc/krita/palettes-controlbox-selectmagnetic.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-selectsimilar.png b/doc/krita/palettes-controlbox-selectsimilar.png
deleted file mode 100644
index 8eb14a9ed..000000000
Binary files a/doc/krita/palettes-controlbox-selectsimilar.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-star.png b/doc/krita/palettes-controlbox-star.png
deleted file mode 100644
index a14f709e4..000000000
Binary files a/doc/krita/palettes-controlbox-star.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-text.png b/doc/krita/palettes-controlbox-text.png
deleted file mode 100644
index 986919508..000000000
Binary files a/doc/krita/palettes-controlbox-text.png and /dev/null differ
diff --git a/doc/krita/palettes-controlbox-transform.png b/doc/krita/palettes-controlbox-transform.png
deleted file mode 100644
index 19ff42bad..000000000
Binary files a/doc/krita/palettes-controlbox-transform.png and /dev/null differ
diff --git a/doc/krita/palettes-layers-layers.png b/doc/krita/palettes-layers-layers.png
deleted file mode 100644
index 06e20ff6d..000000000
Binary files a/doc/krita/palettes-layers-layers.png and /dev/null differ
diff --git a/doc/krita/palettes-layers-scriptsmanager.png b/doc/krita/palettes-layers-scriptsmanager.png
deleted file mode 100644
index 07cea20eb..000000000
Binary files a/doc/krita/palettes-layers-scriptsmanager.png and /dev/null differ
diff --git a/doc/krita/preferences-color.png b/doc/krita/preferences-color.png
deleted file mode 100644
index 77cc9b860..000000000
Binary files a/doc/krita/preferences-color.png and /dev/null differ
diff --git a/doc/krita/preferences-display.png b/doc/krita/preferences-display.png
deleted file mode 100644
index 7c4dfa369..000000000
Binary files a/doc/krita/preferences-display.png and /dev/null differ
diff --git a/doc/krita/preferences-general.png b/doc/krita/preferences-general.png
deleted file mode 100644
index 38232182e..000000000
Binary files a/doc/krita/preferences-general.png and /dev/null differ
diff --git a/doc/krita/preferences-grid.png b/doc/krita/preferences-grid.png
deleted file mode 100644
index 48a9376a0..000000000
Binary files a/doc/krita/preferences-grid.png and /dev/null differ
diff --git a/doc/krita/preferences-performance.png b/doc/krita/preferences-performance.png
deleted file mode 100644
index 045f35850..000000000
Binary files a/doc/krita/preferences-performance.png and /dev/null differ
diff --git a/doc/krita/preferences-sidebar.png b/doc/krita/preferences-sidebar.png
deleted file mode 100644
index cc72e177c..000000000
Binary files a/doc/krita/preferences-sidebar.png and /dev/null differ
diff --git a/doc/krita/preferences-tablet.png b/doc/krita/preferences-tablet.png
deleted file mode 100644
index 366a46d46..000000000
Binary files a/doc/krita/preferences-tablet.png and /dev/null differ
diff --git a/doc/krita/settings.docbook b/doc/krita/settings.docbook
deleted file mode 100644
index fd72d68da..000000000
--- a/doc/krita/settings.docbook
+++ /dev/null
@@ -1,229 +0,0 @@
-<chapter id="settings">
-
-<title>Settings</title>
-
-<para>This chapter describes the various settings that affect the way &krita;
-functions and looks.</para>
-
-<sect1 id="settings-preferences">
-<title>The <guilabel>Preferences</guilabel> dialog</title>
-
-<para>
-A number of options to configure &krita; are available via the
-<guilabel>Preferences</guilabel> dialog, which is available via
-<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
-&krita;...</guimenuitem></menuchoice>. The dialog is divided into several
-sections, which you can open via the sidebar at the left, shown below.
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The available <guilabel>Preferences</guilabel> sections</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="preferences-sidebar.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The available <guilabel>Preferences</guilabel> sections</phrase>
-</textobject>
-<caption><para>The available <guilabel>Preferences</guilabel> sections</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<sect2 id="settings-preferences-general">
-<title>The <guilabel>General</guilabel> section</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>General</guilabel> section</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="preferences-general.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>General</guilabel> section</phrase>
-</textobject>
-<caption><para>The <guilabel>General</guilabel> section</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This section offers three options. First of all, the setting in the
-<guilabel>Cursor shape:</guilabel> dropdown box determines what the drawing
-cursor looks like. You can choose between a cursor resembling the actual tool
-you are working with, a normal cursor, a crosshair, and a brush-shaped cursor.
-Then you can select the <guilabel>Palette Behavior</guilabel>. You can set
-here when palettes may be <quote>docked</quote> (set aside at a window
-border): always (<guilabel>Allow docking</guilabel>), never
-(<guilabel>Allow only floating</guilabel>), or when there is enough space
-(<guilabel>Allow docking only on large screens</guilabel>). The last option is
-<guilabel>Palette font size:</guilabel> which determines the text size used in
-the palettes. Set this to a larger value if you have trouble reading the text,
-with the side effect that the palettes will take more space.
-</para>
-
-</sect2>
-
-<sect2 id="settings-preferences-display">
-<title>The <guilabel>Display</guilabel> section</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Display</guilabel> section</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="preferences-display.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Display</guilabel> section</phrase>
-</textobject>
-<caption><para>The <guilabel>Display</guilabel> section</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This section contains just one option. If your graphics card and driver have
-OpenGL support, you can enable it here to make drawing faster (the
-processor of yor graphics card will take over part of the calculations). Be
-warned, though: there are a few cases where enabling OpenGL is known to
-introduce erratic behavior.
-</para>
-
-</sect2>
-
-<sect2 id="settings-preferences-colormanagement">
-<title>The <guilabel>Color Management</guilabel> section</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Color Management</guilabel> section</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="preferences-color.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Color Management</guilabel> section</phrase>
-</textobject>
-<caption><para>The <guilabel>Color Management</guilabel> section</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-Here you can set various options related to colorspaces in rendering, editing
-and printing of images. The topmost option can be used to set the default
-color model for creating new images (useful if you usually want to create CMYK
-images, for instance). Use the <guilabel>Display</guilabel> options to let
-&krita; know what color profile your monitor uses, and how rendering should be
-done. Under <guilabel>Printing</guilabel>, you can set the color model and
-profile for your printer. The next option determines what &krita; should do
-when you paste an image into it that was copied from another application. If
-<guilabel>Use Blackpoint compensation</guilabel> is checked, whenever a
-colorspace conversion is needed, the black points of the source and
-destination colorspaces are matched.
-</para>
-
-</sect2>
-
-<sect2 id="settings-preferences-performance">
-<title>The <guilabel>Performance</guilabel> section</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Performance</guilabel> section</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="preferences-performance.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Performance</guilabel> section</phrase>
-</textobject>
-<caption><para>The <guilabel>Performance</guilabel> section</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-Two options are available here. The <guilabel>Maximum number of tiles kept in
-memory</guilabel> setting indicates how many tiles (image subparts) &krita;
-will keep in memory. The default setting should be reasonable, if you are low
-or very high on memory, you may want to decrease or increase this option,
-respectively. The <guilabel>Swappiness:</guilabel> option determines how eager
-&krita; will be to swap to disk.
-</para>
-
-</sect2>
-
-<sect2 id="settings-preferences-tablet">
-<title>The <guilabel>Tablet</guilabel> section</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Tablet</guilabel> section</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="preferences-tablet.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Tablet</guilabel> section</phrase>
-</textobject>
-<caption><para>The <guilabel>Tablet</guilabel> section</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-If you have a tablet device attached, you can enable it and set its pressure
-sensitivity in this section.
-</para><para>
-You need to activate the tablet devices you want to use with &krita;. There
-are three supported devices: the cursor, the eraser and the stylus. You can
-activate them using the tablet sections. Only use the configuration options of
-a device if you use a non-Wacom tablet, and if the behavior of the tablet is
-unexpected, like moving when you press on the tablet for instance. In this
-situation, you can use the dialog to make sure you have a correct interaction:
-values (position, pressure, tilt...) are sent from the tablet to the computer
-in a given order, it might happen that some tablets do not use the default
-order. You can set this in the configuration options of a device.
-</para>
-
-</sect2>
-
-<sect2 id="settings-preferences-grid">
-<title>The <guilabel>Grid</guilabel> section</title>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Grid</guilabel> section</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="preferences-grid.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Grid</guilabel> section</phrase>
-</textobject>
-<caption><para>The <guilabel>Grid</guilabel> section</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-In this section, you can fine-tune &krita;'s grid. The line styles for the
-grid can be set in the <guilabel>Styles</guilabel> option set.
-<guilabel>Colors</guilabel> allows you to choose the line colors for the grid.
-The horizontal and vertical spacing between the main lines can be set under
-<guilabel>Spacing</guilabel>, as well as the amount of subdivisions (in how
-many smaller parts a grid section is subdivided). Furthermore you can set the
-<guilabel>Offset</guilabel>: usually the grid is painted starting at the top
-left corner, if you want the first main grid lines not to start there, you can
-enter an offset (displacement) here.
-</para>
-
-</sect2>
-
-</sect1>
-
-</chapter>
diff --git a/doc/krita/tool-bezier-example.png b/doc/krita/tool-bezier-example.png
deleted file mode 100644
index 111ac2fc9..000000000
Binary files a/doc/krita/tool-bezier-example.png and /dev/null differ
diff --git a/doc/krita/tool-bezier-example2.png b/doc/krita/tool-bezier-example2.png
deleted file mode 100644
index 607ef541b..000000000
Binary files a/doc/krita/tool-bezier-example2.png and /dev/null differ
diff --git a/doc/krita/tool-bezier-example3.png b/doc/krita/tool-bezier-example3.png
deleted file mode 100644
index 7bbc917eb..000000000
Binary files a/doc/krita/tool-bezier-example3.png and /dev/null differ
diff --git a/doc/krita/tool-bezier.png b/doc/krita/tool-bezier.png
deleted file mode 100644
index 357cfa80d..000000000
Binary files a/doc/krita/tool-bezier.png and /dev/null differ
diff --git a/doc/krita/tool-brush.png b/doc/krita/tool-brush.png
deleted file mode 100644
index 9b6c79c38..000000000
Binary files a/doc/krita/tool-brush.png and /dev/null differ
diff --git a/doc/krita/tool-colorpicker.png b/doc/krita/tool-colorpicker.png
deleted file mode 100644
index daf5a94e9..000000000
Binary files a/doc/krita/tool-colorpicker.png and /dev/null differ
diff --git a/doc/krita/tool-contiguousfill.png b/doc/krita/tool-contiguousfill.png
deleted file mode 100644
index ddd1b6b17..000000000
Binary files a/doc/krita/tool-contiguousfill.png and /dev/null differ
diff --git a/doc/krita/tool-crop.png b/doc/krita/tool-crop.png
deleted file mode 100644
index 829727dd5..000000000
Binary files a/doc/krita/tool-crop.png and /dev/null differ
diff --git a/doc/krita/tool-duplicate.png b/doc/krita/tool-duplicate.png
deleted file mode 100644
index 968e79611..000000000
Binary files a/doc/krita/tool-duplicate.png and /dev/null differ
diff --git a/doc/krita/tool-ellipse.png b/doc/krita/tool-ellipse.png
deleted file mode 100644
index ba945656b..000000000
Binary files a/doc/krita/tool-ellipse.png and /dev/null differ
diff --git a/doc/krita/tool-eraseselection.png b/doc/krita/tool-eraseselection.png
deleted file mode 100644
index f26b0f62a..000000000
Binary files a/doc/krita/tool-eraseselection.png and /dev/null differ
diff --git a/doc/krita/tool-gradient.png b/doc/krita/tool-gradient.png
deleted file mode 100644
index 22239a527..000000000
Binary files a/doc/krita/tool-gradient.png and /dev/null differ
diff --git a/doc/krita/tool-line.png b/doc/krita/tool-line.png
deleted file mode 100644
index 3efd3608a..000000000
Binary files a/doc/krita/tool-line.png and /dev/null differ
diff --git a/doc/krita/tool-move.png b/doc/krita/tool-move.png
deleted file mode 100644
index 7a588bbe1..000000000
Binary files a/doc/krita/tool-move.png and /dev/null differ
diff --git a/doc/krita/tool-paintselection.png b/doc/krita/tool-paintselection.png
deleted file mode 100644
index 654bfbd93..000000000
Binary files a/doc/krita/tool-paintselection.png and /dev/null differ
diff --git a/doc/krita/tool-paintwithfilters-example.png b/doc/krita/tool-paintwithfilters-example.png
deleted file mode 100644
index 7e10f5d1a..000000000
Binary files a/doc/krita/tool-paintwithfilters-example.png and /dev/null differ
diff --git a/doc/krita/tool-paintwithfilters.png b/doc/krita/tool-paintwithfilters.png
deleted file mode 100644
index 9eb5a824e..000000000
Binary files a/doc/krita/tool-paintwithfilters.png and /dev/null differ
diff --git a/doc/krita/tool-pan.png b/doc/krita/tool-pan.png
deleted file mode 100644
index 63adf1c57..000000000
Binary files a/doc/krita/tool-pan.png and /dev/null differ
diff --git a/doc/krita/tool-perspectivegrid.png b/doc/krita/tool-perspectivegrid.png
deleted file mode 100644
index 30d671fea..000000000
Binary files a/doc/krita/tool-perspectivegrid.png and /dev/null differ
diff --git a/doc/krita/tool-perspectivetransform.png b/doc/krita/tool-perspectivetransform.png
deleted file mode 100644
index 611947f6d..000000000
Binary files a/doc/krita/tool-perspectivetransform.png and /dev/null differ
diff --git a/doc/krita/tool-polygon.png b/doc/krita/tool-polygon.png
deleted file mode 100644
index b4fabae1f..000000000
Binary files a/doc/krita/tool-polygon.png and /dev/null differ
diff --git a/doc/krita/tool-polyline.png b/doc/krita/tool-polyline.png
deleted file mode 100644
index f59b09bf8..000000000
Binary files a/doc/krita/tool-polyline.png and /dev/null differ
diff --git a/doc/krita/tool-rectangle.png b/doc/krita/tool-rectangle.png
deleted file mode 100644
index 83ddd5999..000000000
Binary files a/doc/krita/tool-rectangle.png and /dev/null differ
diff --git a/doc/krita/tool-selectbezier.png b/doc/krita/tool-selectbezier.png
deleted file mode 100644
index 336905809..000000000
Binary files a/doc/krita/tool-selectbezier.png and /dev/null differ
diff --git a/doc/krita/tool-selectcontiguous.png b/doc/krita/tool-selectcontiguous.png
deleted file mode 100644
index acf04cd30..000000000
Binary files a/doc/krita/tool-selectcontiguous.png and /dev/null differ
diff --git a/doc/krita/tool-selectelliptical.png b/doc/krita/tool-selectelliptical.png
deleted file mode 100644
index e7cba67fa..000000000
Binary files a/doc/krita/tool-selectelliptical.png and /dev/null differ
diff --git a/doc/krita/tool-selectmagnetic.png b/doc/krita/tool-selectmagnetic.png
deleted file mode 100644
index 63489bcd8..000000000
Binary files a/doc/krita/tool-selectmagnetic.png and /dev/null differ
diff --git a/doc/krita/tool-selectoutline.png b/doc/krita/tool-selectoutline.png
deleted file mode 100644
index 5646f6b11..000000000
Binary files a/doc/krita/tool-selectoutline.png and /dev/null differ
diff --git a/doc/krita/tool-selectpolygonal.png b/doc/krita/tool-selectpolygonal.png
deleted file mode 100644
index dded2a46b..000000000
Binary files a/doc/krita/tool-selectpolygonal.png and /dev/null differ
diff --git a/doc/krita/tool-selectrectangular.png b/doc/krita/tool-selectrectangular.png
deleted file mode 100644
index 217f6b5d1..000000000
Binary files a/doc/krita/tool-selectrectangular.png and /dev/null differ
diff --git a/doc/krita/tool-selectsimilar.png b/doc/krita/tool-selectsimilar.png
deleted file mode 100644
index 4177294b8..000000000
Binary files a/doc/krita/tool-selectsimilar.png and /dev/null differ
diff --git a/doc/krita/tool-star.png b/doc/krita/tool-star.png
deleted file mode 100644
index 72a68a210..000000000
Binary files a/doc/krita/tool-star.png and /dev/null differ
diff --git a/doc/krita/tool-text.png b/doc/krita/tool-text.png
deleted file mode 100644
index b1ac269da..000000000
Binary files a/doc/krita/tool-text.png and /dev/null differ
diff --git a/doc/krita/tool-transform.png b/doc/krita/tool-transform.png
deleted file mode 100644
index c00eeebb9..000000000
Binary files a/doc/krita/tool-transform.png and /dev/null differ
diff --git a/doc/krita/tool-zoom.png b/doc/krita/tool-zoom.png
deleted file mode 100644
index 99eb74961..000000000
Binary files a/doc/krita/tool-zoom.png and /dev/null differ
diff --git a/doc/krita/toolbar-brushes-brushshapes-autobrush.png b/doc/krita/toolbar-brushes-brushshapes-autobrush.png
deleted file mode 100644
index c39cacad4..000000000
Binary files a/doc/krita/toolbar-brushes-brushshapes-autobrush.png and /dev/null differ
diff --git a/doc/krita/toolbar-brushes-brushshapes-custombrush.png b/doc/krita/toolbar-brushes-brushshapes-custombrush.png
deleted file mode 100644
index bd57d6e9b..000000000
Binary files a/doc/krita/toolbar-brushes-brushshapes-custombrush.png and /dev/null differ
diff --git a/doc/krita/toolbar-brushes-brushshapes-predefined.png b/doc/krita/toolbar-brushes-brushshapes-predefined.png
deleted file mode 100644
index 677d0e27d..000000000
Binary files a/doc/krita/toolbar-brushes-brushshapes-predefined.png and /dev/null differ
diff --git a/doc/krita/toolbar-brushes-gradients.png b/doc/krita/toolbar-brushes-gradients.png
deleted file mode 100644
index 89ae348e7..000000000
Binary files a/doc/krita/toolbar-brushes-gradients.png and /dev/null differ
diff --git a/doc/krita/toolbar-brushes-patterns-custompattern.png b/doc/krita/toolbar-brushes-patterns-custompattern.png
deleted file mode 100644
index 29d0fe1c2..000000000
Binary files a/doc/krita/toolbar-brushes-patterns-custompattern.png and /dev/null differ
diff --git a/doc/krita/toolbar-brushes-patterns.png b/doc/krita/toolbar-brushes-patterns.png
deleted file mode 100644
index 367fa3ef3..000000000
Binary files a/doc/krita/toolbar-brushes-patterns.png and /dev/null differ
diff --git a/doc/krita/toolbar-brushesandstuff.png b/doc/krita/toolbar-brushesandstuff.png
deleted file mode 100644
index e37d1a837..000000000
Binary files a/doc/krita/toolbar-brushesandstuff.png and /dev/null differ
diff --git a/doc/krita/toolbar-edit.png b/doc/krita/toolbar-edit.png
deleted file mode 100644
index c65c1969a..000000000
Binary files a/doc/krita/toolbar-edit.png and /dev/null differ
diff --git a/doc/krita/toolbar-file.png b/doc/krita/toolbar-file.png
deleted file mode 100644
index 5b8293bd1..000000000
Binary files a/doc/krita/toolbar-file.png and /dev/null differ
diff --git a/doc/krita/toolbar-krita.png b/doc/krita/toolbar-krita.png
deleted file mode 100644
index e39c6777f..000000000
Binary files a/doc/krita/toolbar-krita.png and /dev/null differ
diff --git a/doc/krita/toolbar-navigation.png b/doc/krita/toolbar-navigation.png
deleted file mode 100644
index 6fd40b6a3..000000000
Binary files a/doc/krita/toolbar-navigation.png and /dev/null differ
diff --git a/doc/krita/toolbar-transformationtools.png b/doc/krita/toolbar-transformationtools.png
deleted file mode 100644
index 07e412089..000000000
Binary files a/doc/krita/toolbar-transformationtools.png and /dev/null differ
diff --git a/doc/krita/toolbars-button-zoomin.png b/doc/krita/toolbars-button-zoomin.png
deleted file mode 100644
index 896f1c125..000000000
Binary files a/doc/krita/toolbars-button-zoomin.png and /dev/null differ
diff --git a/doc/krita/toolbars-button-zoomout.png b/doc/krita/toolbars-button-zoomout.png
deleted file mode 100644
index 124ab6fb6..000000000
Binary files a/doc/krita/toolbars-button-zoomout.png and /dev/null differ
diff --git a/doc/krita/tutorial-quick-starts.docbook b/doc/krita/tutorial-quick-starts.docbook
deleted file mode 100644
index 05f367295..000000000
--- a/doc/krita/tutorial-quick-starts.docbook
+++ /dev/null
@@ -1,183 +0,0 @@
-<sect1 id="tutorial-quickstarts">
-<title>Quick start guides</title>
-<sect2 id="tutorial-quickstarts-cropimage">
-<title>Crop an area and save it</title>
-
-<para>Aim: from a picture, crop an area and save that area in a new file</para>
-
-<para>Open &krita; with the original picture.</para>
-
-<screenshot>
-<screeninfo>The original picture</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-quick-starts1.png" format="PNG"/>
-</imageobject>
-<textobject><phrase>The original picture</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>Select the <guiicon>Select Rectangular</guiicon> tool in the
-&krita; toolbar.</para>
-
-<screenshot>
-<screeninfo>The Select a rectangular area tool</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-quick-starts2.png" format="PNG"/>
-</imageobject>
-<textobject><phrase>The Select a rectangular area tool</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>Select the area you want to make a new picture with. &krita; makes the
-outside area grey.</para>
-
-<screenshot>
-<screeninfo>The selected area</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-quick-starts3.png" format="PNG"/>
-</imageobject>
-<textobject><phrase>The selected area</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>Then use the
-<menuchoice><guimenu>Edit</guimenu><guimenuitem>Copy</guimenuitem></menuchoice>
-menu item or <keycombo action="simul">&Ctrl;<keycap>C</keycap></keycombo> to
-copy the selected area.</para>
-
-<para>Click again on the <guimenu>Edit</guimenu> menu.</para>
-<para>Use the <guimenuitem>Paste into new image</guimenuitem> item.</para>
-
-<screenshot>
-<screeninfo>The <guimenu>Edit</guimenu> menu</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-quick-starts4.png" format="PNG"/>
-</imageobject>
-<textobject><phrase>The <guimenu>Edit</guimenu> menu</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>&krita; opens a new window with the selected area as new image.</para>
-
-<screenshot>
-<screeninfo>The new image</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-quick-starts5.png" format="PNG"/>
-</imageobject>
-<textobject><phrase>The new image</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>Save the new image.</para>
-
-</sect2>
-<sect2 id="tutorial-quickstarts-drawrectangle">
-<title>Draw a rectangle on your picture</title>
-
-<para>Aim: draw a coloured rectangle on your picture</para>
-
-<para>Open &krita; with the original picture. My picture consists of a view of
-a toolbar in which I want to point an icon by putting a red rectangle around
-it.</para>
-
-<screenshot>
-<screeninfo>The original picture</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-quick-starts6.png" format="PNG"/>
-</imageobject>
-<textobject><phrase>The original picture</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>Enable the <guilabel>Brushes and Stuff</guilabel> toolbar using
-<menuchoice><guimenu>Settings</guimenu><guimenuitem>Toolbars</guimenuitem></menuchoice>
-menu.</para>
-<para>Also make sure the palettes are viewed. If not, use the
-<menuchoice><guimenu>View</guimenu><guimenuitem>Palettes</guimenuitem></menuchoice>
-menu.</para>
-
-<screenshot>
-<screeninfo>&krita; view</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-quick-starts7.png" format="PNG"/>
-</imageobject>
-<textobject><phrase>&krita; view</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>Click on the <guiicon>Brush Shapes</guiicon> icon in the
-<guilabel>Brushes and Stuff</guilabel> toolbar.</para>
-
-<screenshot>
-<screeninfo>The <guiicon>Brush Shapes</guiicon> icon</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-quick-starts8.png" format="PNG"/>
-</imageobject>
-<textobject><phrase>The <guiicon>Brush Shapes</guiicon> icon</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>Select which brush shape you want to use among the predefined
-brushes.</para>
-
-<screenshot>
-<screeninfo>Selecting a brush shape</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-quick-starts9.png" format="PNG"/>
-</imageobject>
-<textobject><phrase>Selecting a brush shape</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>Select the drawing shape on the &krita; toolbar. I choose a
-rectangle.</para>
-
-<screenshot>
-<screeninfo>Selecting the <guiicon>Rectangle</guiicon> icon</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-quick-starts10.png" format="PNG"/>
-</imageobject>
-<textobject><phrase>Selecting the <guiicon>Rectangle</guiicon> icon</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>In the <guilabel>Colors</guilabel> palette, select the color you want by clicking on one of the
-tabs and then choosing the color.</para>
-
-<screenshot>
-<screeninfo>Choosing the color</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-quick-starts11.png" format="PNG"/>
-</imageobject>
-<textobject><phrase>Choosing the color</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>Finally draw your shape on your picture and save the new picture!</para>
-
-<screenshot>
-<screeninfo>Drawing</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-quick-starts12.png" format="PNG"/>
-</imageobject>
-<textobject><phrase>Drawing</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>Thanks go to Anne-Marie Mahfouf for providing this tutorial.</para>
-
-</sect2>
-
-</sect1>
diff --git a/doc/krita/tutorial-quick-starts1.png b/doc/krita/tutorial-quick-starts1.png
deleted file mode 100644
index 562e1595b..000000000
Binary files a/doc/krita/tutorial-quick-starts1.png and /dev/null differ
diff --git a/doc/krita/tutorial-quick-starts10.png b/doc/krita/tutorial-quick-starts10.png
deleted file mode 100644
index fc76f1885..000000000
Binary files a/doc/krita/tutorial-quick-starts10.png and /dev/null differ
diff --git a/doc/krita/tutorial-quick-starts11.png b/doc/krita/tutorial-quick-starts11.png
deleted file mode 100644
index 7cd5f601a..000000000
Binary files a/doc/krita/tutorial-quick-starts11.png and /dev/null differ
diff --git a/doc/krita/tutorial-quick-starts12.png b/doc/krita/tutorial-quick-starts12.png
deleted file mode 100644
index a74ea54f5..000000000
Binary files a/doc/krita/tutorial-quick-starts12.png and /dev/null differ
diff --git a/doc/krita/tutorial-quick-starts2.png b/doc/krita/tutorial-quick-starts2.png
deleted file mode 100644
index fe54bf6a2..000000000
Binary files a/doc/krita/tutorial-quick-starts2.png and /dev/null differ
diff --git a/doc/krita/tutorial-quick-starts3.png b/doc/krita/tutorial-quick-starts3.png
deleted file mode 100644
index b1f4223b3..000000000
Binary files a/doc/krita/tutorial-quick-starts3.png and /dev/null differ
diff --git a/doc/krita/tutorial-quick-starts4.png b/doc/krita/tutorial-quick-starts4.png
deleted file mode 100644
index 1d6fcacb4..000000000
Binary files a/doc/krita/tutorial-quick-starts4.png and /dev/null differ
diff --git a/doc/krita/tutorial-quick-starts5.png b/doc/krita/tutorial-quick-starts5.png
deleted file mode 100644
index ceb18de9f..000000000
Binary files a/doc/krita/tutorial-quick-starts5.png and /dev/null differ
diff --git a/doc/krita/tutorial-quick-starts6.png b/doc/krita/tutorial-quick-starts6.png
deleted file mode 100644
index 691760117..000000000
Binary files a/doc/krita/tutorial-quick-starts6.png and /dev/null differ
diff --git a/doc/krita/tutorial-quick-starts7.png b/doc/krita/tutorial-quick-starts7.png
deleted file mode 100644
index 92c6ab18e..000000000
Binary files a/doc/krita/tutorial-quick-starts7.png and /dev/null differ
diff --git a/doc/krita/tutorial-quick-starts8.png b/doc/krita/tutorial-quick-starts8.png
deleted file mode 100644
index fb2bed368..000000000
Binary files a/doc/krita/tutorial-quick-starts8.png and /dev/null differ
diff --git a/doc/krita/tutorial-quick-starts9.png b/doc/krita/tutorial-quick-starts9.png
deleted file mode 100644
index db763b6c1..000000000
Binary files a/doc/krita/tutorial-quick-starts9.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-1.png b/doc/krita/tutorial-select-layer-1.png
deleted file mode 100644
index 29f8b0bf6..000000000
Binary files a/doc/krita/tutorial-select-layer-1.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-10.png b/doc/krita/tutorial-select-layer-10.png
deleted file mode 100644
index a2d92fc64..000000000
Binary files a/doc/krita/tutorial-select-layer-10.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-11.png b/doc/krita/tutorial-select-layer-11.png
deleted file mode 100644
index 75a6c10c4..000000000
Binary files a/doc/krita/tutorial-select-layer-11.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-12.png b/doc/krita/tutorial-select-layer-12.png
deleted file mode 100644
index 95487fa73..000000000
Binary files a/doc/krita/tutorial-select-layer-12.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-13.png b/doc/krita/tutorial-select-layer-13.png
deleted file mode 100644
index 449ec903b..000000000
Binary files a/doc/krita/tutorial-select-layer-13.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-2.png b/doc/krita/tutorial-select-layer-2.png
deleted file mode 100644
index 4552f0afc..000000000
Binary files a/doc/krita/tutorial-select-layer-2.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-3.png b/doc/krita/tutorial-select-layer-3.png
deleted file mode 100644
index a9a7a9bd6..000000000
Binary files a/doc/krita/tutorial-select-layer-3.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-4.png b/doc/krita/tutorial-select-layer-4.png
deleted file mode 100644
index a3506440e..000000000
Binary files a/doc/krita/tutorial-select-layer-4.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-5.png b/doc/krita/tutorial-select-layer-5.png
deleted file mode 100644
index f0e88e461..000000000
Binary files a/doc/krita/tutorial-select-layer-5.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-6.png b/doc/krita/tutorial-select-layer-6.png
deleted file mode 100644
index eac0b247f..000000000
Binary files a/doc/krita/tutorial-select-layer-6.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-7.png b/doc/krita/tutorial-select-layer-7.png
deleted file mode 100644
index 6580b54b0..000000000
Binary files a/doc/krita/tutorial-select-layer-7.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-8.png b/doc/krita/tutorial-select-layer-8.png
deleted file mode 100644
index 503c02232..000000000
Binary files a/doc/krita/tutorial-select-layer-8.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-9.png b/doc/krita/tutorial-select-layer-9.png
deleted file mode 100644
index cebfde394..000000000
Binary files a/doc/krita/tutorial-select-layer-9.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer-sample.png b/doc/krita/tutorial-select-layer-sample.png
deleted file mode 100644
index 4def7ed3f..000000000
Binary files a/doc/krita/tutorial-select-layer-sample.png and /dev/null differ
diff --git a/doc/krita/tutorial-select-layer.docbook b/doc/krita/tutorial-select-layer.docbook
deleted file mode 100644
index 3e60bc887..000000000
--- a/doc/krita/tutorial-select-layer.docbook
+++ /dev/null
@@ -1,263 +0,0 @@
-<sect1 id="tutorial-select-layer">
-<title>A Small selections and layers tutorial</title>
-
-<!-- Does someone know a better way to do this? -->
-<screenshot>
-<screeninfo>The starting image</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-sample.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The starting image</phrase>
-</textobject>
-<caption><para>The starting image</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-The image above is the image we will work with. Start krita with this 
-image (in the documentation folder
-<filename>$<envar>KDEDIR</envar>/share/doc/HTML/en/krita/tutorial-select-layer-sample.png</filename>) 
-and save it to your Home folder (by choosing <guilabel>Save Image As...</guilabel>).
-
-Then open it in &krita; &mdash; your screen will look a bit like this (we have
-zoomed in):
-</para>
-
-<screenshot>
-<screeninfo>Krita with the starting image</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-1.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The starting image</phrase>
-</textobject>
-<caption><para>The starting image</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-Now try to select the outline of the head with the <guilabel>Select Outline</guilabel> tool: 
-</para>
-
-<screenshot>
-<screeninfo>The <guilabel>Select Outline</guilabel> tool</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-2.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Select Outline</guilabel> tool</phrase>
-</textobject>
-<caption><para>The <guilabel>Select Outline</guilabel> tool</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-After you select it, it should look a bit like this picture:
-</para>
-
-<screenshot>
-<screeninfo>The picture after selecting the head</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-3.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The picture after selecting the head</phrase>
-</textobject>
-<caption><para>The picture after selecting the head</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-If you accidently select too much, you can cut that part easily off by switching the tool to <guilabel>Subtract</guilabel> mode: 
-</para>
-
-<screenshot>
-<screeninfo>The <guilabel>Subtract</guilabel> mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-4.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Subtract</guilabel> mode</phrase>
-</textobject>
-<caption><para>The <guilabel>Subtract</guilabel> mode</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-Now it's time to make the edges of the selection a bit fuzzy. This can be done by applying <guilabel>Feather</guilabel> to the selection. 
-</para>
-
-<screenshot>
-<screeninfo><guilabel>Feather</guilabel> selection</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-5.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase><guilabel>Feather</guilabel> selection</phrase>
-</textobject>
-<caption><para><guilabel>Feather</guilabel> selection</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-Now cut the selection, using
-<menuchoice><guimenu>Edit</guimenu><guimenuitem>Cut</guimenuitem></menuchoice>.
-Delete the current layer with
-<menuchoice><guimenu>Layer</guimenu><guimenuitem>Remove
-Layer</guimenuitem></menuchoice>. Paste your selection, with
-<menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice>.
-Now we give ourselves a bit more room to work in by resizing the image a bit.
-Use the <menuchoice><guimenu>Image</guimenu><guimenuitem>Change Image
-Size...</guimenuitem></menuchoice> dialog for this.
-</para>
-
-<screenshot>
-<screeninfo>The <guilabel>Image Size</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-6.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Image Size</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Image Size</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-Add a new layer, and place it below the old layer. You do this by selecting
-the new layer in the layerbox, and then pressing the little 'down' arrow at the bottom.
-Now we are going to select the area around the head with a contiguous select
-(the tool has a selection-with-bucketfill icon at the border).
-</para>
-
-<screenshot>
-<screeninfo>The <guilabel>Select Contiguous</guilabel> tool</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-7.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Select Contiguous</guilabel> tool</phrase>
-</textobject>
-<caption><para>The <guilabel>Select Contiguous</guilabel> tool</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-Make sure to select <guilabel>Sample merged</guilabel> in the tool options:
-</para>
-
-<screenshot>
-<screeninfo>The <guilabel>Sample merged</guilabel> option</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-8.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Sample merged</guilabel> option</phrase>
-</textobject>
-<caption><para>The <guilabel>Sample merged</guilabel> option</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-Feather the selection again, and invert it.
-Select the <guilabel>Contiguous Fill</guilabel> tool (this is a different tool than
-the <guilabel>Contiguous Select</guilabel> tool) and use it on the layer. 
-</para>
-
-<screenshot>
-<screeninfo>The <guilabel>Contiguous Fill</guilabel> tool</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-9.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Contiguous Fill</guilabel> tool</phrase>
-</textobject>
-<caption><para>The <guilabel>Contiguous Fill</guilabel> tool</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-Deselect with <menuchoice><guimenu>Select</guimenu><guimenuitem>Deselect</guimenuitem></menuchoice>.
-You'll notice some artefacts of the feathering at the sides. You can select them easily with a rectangular selection and then cut them.
-</para>
-
-<screenshot>
-<screeninfo>The <guilabel>Select Rectangular</guilabel> tool</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-10.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Select Rectangular</guilabel> tool</phrase>
-</textobject>
-<caption><para>The <guilabel>Select Rectangular</guilabel> tool</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-Move the shadow layer a bit down and to the right to make it look nice.
-</para>
-
-<screenshot>
-<screeninfo>Moving the shadow layer</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-11.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>Moving the shadow layer</phrase>
-</textobject>
-<caption><para>Moving the shadow layer</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-Now you can use the <guilabel>Crop</guilabel> tool to make the image better fit around the head.
-</para>
-
-<screenshot>
-<screeninfo>The <guilabel>Crop</guilabel> tool</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-12.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Crop</guilabel> tool</phrase>
-</textobject>
-<caption><para>The <guilabel>Crop</guilabel> tool</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-Save the image, and you're done :-)
-</para>
-
-<screenshot>
-<screeninfo>The resulting image</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-select-layer-13.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The resulting image</phrase>
-</textobject>
-<caption><para>The resulting image</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>
-Thanks go to Bart Coppens for providing this tutorial. The original is available at <ulink url="http://www.bartcoppens.be/krita/hackergotchi.html">http://www.bartcoppens.be/krita/hackergotchi.html</ulink>.
-</para>
-
-</sect1>
diff --git a/doc/krita/tutorial-starting.docbook b/doc/krita/tutorial-starting.docbook
deleted file mode 100644
index f720a88c0..000000000
--- a/doc/krita/tutorial-starting.docbook
+++ /dev/null
@@ -1,117 +0,0 @@
-<sect1 id="tutorial-starting">
-<title>Starting to know &krita;</title>
-
-<para>
-So, let's show you all the niceties. You can start &krita; either on its own
-or from the &koffice; shell. In your &kde; menus, &krita; should be placed
-either under Graphics or under Office &mdash; it depends a bit on who packaged
-&koffice; for you. Or do what I do: press
-<keycombo action="simul">&Alt;<keycap>F2</keycap></keycombo> (which opens the
-minicli), type <userinput><command>krita</command></userinput> and
-press <guibutton>OK</guibutton>.
-</para>
-
-<para>
-A little later, you'll be greeted by a dialog:
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>Create Document</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="createdocument.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>Create Document</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>Create Document</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-This is standard for &koffice;: you can create a new document, choose a
-document from among your files or select a document you had opened in an earlier
-session. We have got a bunch of templates here, ordered by color model. &krita;
-is a very flexible application and can handle many different types of images:
-<acronym>CMYK</acronym> images for printers, <acronym>RGB</acronym> images for
-the web, <acronym>RGB</acronym> images with high channel depths for
-photographers, watercolor images for painters &mdash; and more. For now, choose
-<guilabel>Custom Document</guilabel>. That will allow
-us to see the <guilabel>New Image</guilabel> dialog box:
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The <guilabel>New Image</guilabel> dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="newimage.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The <guilabel>New Image</guilabel> dialog</phrase>
-</textobject>
-<caption><para>The <guilabel>New Image</guilabel> dialog</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-Here you can give your document a name, determine the dimensions and the
-resolution. The combination of width/height and resolution determines how big
-your image will be on screen or on paper: if your image has a resolution of
-100x100 dpi, and your image is 1000x1000 pixels big, then, if everything is
-configured correctly, your image will be exactly 10 inches long and 10 inches
-wide if you check with a ruler, no matter the resolution of your screen or of
-your printer &mdash; if shown at 100%. However, life is seldom so well-regulated
-that this actually works out. For now, just think pixels, not inches.
-</para>
-
-<para>
-The next group of options is a lot more interesting than resolution: &krita;
-is an enormously flexible application and you can work with many kinds of
-images. For this tutorial, just select <guilabel>RGB (8
-bits/channel)</guilabel>. You can also select a profile. For now, we leave this
-at the default setting of <guilabel>sRGB built-in - (lcms internal)</guilabel>.
-</para>
-
-<para>
-In the third option group, you can select the initial canvas color and the
-amount of opacity/transparency of this color. Furthermore you can
-add a description of the contents. We leave these options at their default
-settings as well, so click <guibutton>Create</guibutton> to actually create the new
-image.
-</para>
-
-<para>
-You will now see the main &krita; screen.
-</para>
-
-<para>
-<screenshot>
-<screeninfo>&krita;'s main screen</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mainscreen.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>&krita;'s main screen</phrase>
-</textobject>
-<caption><para>&krita;'s main screen</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-On the left hand side and on the top, there are toolbars which offer you access
-to tools for painting, editing, and selecting.
-You can find a more detailed description of these toolbars <link
-linkend="commands-toolbars">here</link>. The actual painting area is in the
-middle. On the right side of your screen, there are various palettes, which you
-can read more about in <link linkend="commands-palettes">this section</link>.
-Finally, there is a menu bar at the top of the screen, as usually. Read more
-about it <link linkend="commands-menus">here</link>.
-</para>
-
-</sect1>
diff --git a/doc/krita/tutorial-tablet-1.png b/doc/krita/tutorial-tablet-1.png
deleted file mode 100644
index 5ab3d6489..000000000
Binary files a/doc/krita/tutorial-tablet-1.png and /dev/null differ
diff --git a/doc/krita/tutorial-tablet-2.png b/doc/krita/tutorial-tablet-2.png
deleted file mode 100644
index a2cf00234..000000000
Binary files a/doc/krita/tutorial-tablet-2.png and /dev/null differ
diff --git a/doc/krita/tutorial-tablet-3.png b/doc/krita/tutorial-tablet-3.png
deleted file mode 100644
index 4986cbde3..000000000
Binary files a/doc/krita/tutorial-tablet-3.png and /dev/null differ
diff --git a/doc/krita/tutorial-tablet.docbook b/doc/krita/tutorial-tablet.docbook
deleted file mode 100644
index 2e5e6184b..000000000
--- a/doc/krita/tutorial-tablet.docbook
+++ /dev/null
@@ -1,141 +0,0 @@
-<sect1 id="tutorial-tablet">
-<title>Working with tablets</title>
-
-<para>This tutorial is intended to describe you the first steps with working
-with a tablet with &krita;. The tutorial assumes you are using &Linux;.</para>
-
-<sect2 id="tutorial-tablet-configuring">
-<title>Configuring it</title>
-
-<para>
-As any hardware it nearly works out of the box. &Linux; should recognize it
-fine, but you might have to configure the X11 server by hand. The best way to
-do this is to follow the instruction on the Wacom &Linux; howto: <ulink
-url="http://linuxwacom.sourceforge.net/index.php/howto/main" />.
-</para><para>
-Then, in &krita;, you need to enable the various tools (in the
-<guilabel>Tablet</guilabel> section of the
-<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
-&krita;...</guimenuitem></menuchoice> dialog) &mdash; you can find more
-information in the <link linkend="settings-preferences-tablet">tablet settings
-section</link>.
-</para>
-
-</sect2>
-
-<sect2 id="tutorial-tablet-firstcontact">
-<title>First contact with the tablet</title>
-
-<para>
-There are three devices of your tablet that you can use with &krita;:
-</para>
-
-<itemizedlist>
-<listitem><para>the cursor, the mouse that was shipped with the Wacom
-tablet</para></listitem>
-<listitem><para>the eraser, the round part on the top of the pen</para></listitem>
-<listitem><para>the stylus, the thin point on the bottom of the pen</para></listitem>
-</itemizedlist>
-
-<para>
-By default, when you use the stylus or the cursor on the tablet, the Brush
-tool and the pixel brush painting operation will get selected. The eraser
-device is associated to the <quote>pixel eraser</quote> painting operation.
-But if you select a different tool or a different painting operation with one
-device, &krita; will remember the association when you switch between devices.
-</para>
-
-</sect2>
-
-<sect2 id="tutorial-tablet-outlines">
-<title>Outlines of a flower</title>
-
-<para>
-Even if you knew how to draw before you started with a tablet, you will need
-to adapt to the tablet. It doesn't feel the same. So I suggest to start with
-something simple, like a flower, and to use a picture as a model:
-</para>
-
-<para>
-<screenshot>
-<screeninfo>A flower</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-tablet-1.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>A flower</phrase>
-</textobject>
-<caption><para>A flower</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-First, you will need to create a new layer for the outline. I advise you to
-lock the layer with the picture, it will prevent you from making mistakes.
-</para><para>
-Drawing the outline of the flower seems pretty easy, but for your first
-experience you will have a great difficulty to precisely follow the line on
-the screen while your hand has to move on the tablet. Eventually you will get
-something like this:
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The outline of the flower</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-tablet-2.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The outline of the flower</phrase>
-</textobject>
-<caption><para>The outline of the flower</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-</sect2>
-
-<sect2 id="tutorial-tablet-colorization">
-<title>Colorization</title>
-
-<para>
-For the colorization, you will need to create a third layer. You will
-have to move it below the layer with the outlines, and do not forget to lock
-the outline layer.
-</para><para>
-It's mostly easier than the outline part, just select the color you want to
-use (either with the color selector or with the color picker), then for most
-of the work you can use the fill tool: with the mouse, click on the part you
-want to fill, as by default the fill tool will take the outline into
-consideration. On the following image, the different colors of the heart of
-the flower are not seperated by outlines, to do them I just completed the
-missing outline with a yellow or brown line to create the separation between
-the different colors.
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The colored flower</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tutorial-tablet-3.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The colored flower</phrase>
-</textobject>
-<caption><para>The colored flower</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-The resulting image looks and feels like old fashion clipart, mostly because
-it lacks shadows and illumination, which are not covered by this tutorial.
-</para>
-
-</sect2>
-
-</sect1>
diff --git a/doc/krita/tutorial.docbook b/doc/krita/tutorial.docbook
deleted file mode 100644
index 078b1886a..000000000
--- a/doc/krita/tutorial.docbook
+++ /dev/null
@@ -1,14 +0,0 @@
-<chapter id="tutorial">
-<title>Tutorial</title>
-
-<note><para>
-The toolbars and palettes shown in these tutorials may not match your
-installation of &krita;. Our apologies for this inconvenience.
-</para></note>
-
-&tutorial-starting;
-&tutorial-select-layer;
-&tutorial-quick-starts;
-&tutorial-tablet;
-
-</chapter>
diff --git a/doc/krita/using-colorspaces.docbook b/doc/krita/using-colorspaces.docbook
deleted file mode 100644
index 0222e8d3d..000000000
--- a/doc/krita/using-colorspaces.docbook
+++ /dev/null
@@ -1,149 +0,0 @@
-<chapter id="colorspaces">
-<title>Colorspaces</title>
-
-<para>
-This chapter gives information on what colorspaces are, which colorspaces
-&krita; offers, and what you should keep in mind when using them.
-</para>
-
-<sect1 id="colorspaces-intro">
-<title>Introduction to colorspaces</title>
-
-<sect2 id="colorspaces-intro-whatis">
-<title>What is a colorspace?</title>
-
-<para>
-In short, a colorspace is a way to represent colors by specifying a number of
-parameters. As parameters, one can choose for example the amounts of red,
-green and blue light needed for the color. This results in the commonly known
-RGB colorspace. One can visualize this as a three-dimensional space, with each
-of the red, green, and blue light components being an axis in the colorspace.
-A color then corresponds to a certain point in this colorspace, defined by its
-coordinates on the three axes.
-</para>
-<note><para>
-To be more precise, a colorspace is a combination of a color model (indicating
-which axes are present) and a mapping function (indicating which values
-correspond to which colors).
-</para></note>
-<para>
-Not every color can be represented in every colorspace. Some colorspaces
-define more, or different, colors than others. The set of colors that can be
-represented in a certain colorspace is called its gamut. Because gamuts
-can differ widely, it is not guaranteed that images in a certain colorspace
-can be converted to another colorspace without having to substitute certain
-colors for others, even if they are based on the same color model.
-</para>
-
-</sect2>
-
-</sect1>
-
-<sect1 id="colorspaces-list">
-<title>Available colorspaces</title>
-
-<para>
-&krita; offers colorspaces based on RGB, CMYK, Lab, LMS, YCbCr, and Gray
-color models. These are shortly discussed in this section.
-</para>
-
-<sect2 id="colorspaces-list-rgb">
-<title>The RGB color models</title>
-
-<para>
-The abbreviation RGB stands for Red, Green, Blue, and the color model with
-this name refers to the three light components that are emitted in displays
-(televisions, computer monitors, etcetera) to create a certain color. This
-color model is used by default in virtually any standard painting application.
-</para><para>
-When defining a color in the RGB model, its red, green and blue components are
-specified. If all components are absent (each component is emitted at 0
-percent intensity, so no light at all), the color is pure black.  If all
-components are fully present (100 percent intensity), the color is pure white.
-If one component is present at full intensity and the other two are absent,
-the pure respective color is obtained.
-</para><para>
-Two more examples: if both red and green are emitted at 100 percent and blue
-is not emitted, pure yellow is obtained. A color with all three components at
-the same intensity is a shade of gray.
-</para><para>
-There are various colorspaces that implement the RGB model. For example, the
-so-called RGB8 colorspace represents each color with 8 bits per component.
-Since 8 bits allow for 256 distinct values, the total number of different
-colors that can be specified in this colorspace is 256 (red) * 256 (green) *
-256 (blue), or about 16.7 million colors. In &krita;, a couple of RGB
-colorspaces are available, for example RGB32, which is able to distinguish
-between 4.2 billion values per component.
-</para>
-
-</sect2>
-
-<sect2 id="colorspaces-list-cmyk">
-<title>The CMYK color model</title>
-
-<para>
-CMYK is the abbreviation for Cyan, Magenta, Yellow, blacK (although officially
-the K stands for Key, black is much more commonly used). This color model is
-based on ink: a color is specified by the amount of ink needed for a point
-to be perceived as having that color.
-</para><para>
-Since CMYK colors are used by printers while RGB colors are used on-screen,
-one often wants to convert RGB colors to CMYK colors. As this cannot always be
-done correctly, printed images may turn out to look quite different than what
-is perceived on-screen.
-</para>
-
-</sect2>
-
-<sect2 id="colorspaces-list-lab">
-<title>The L*a*b* color model</title>
-
-<para>
-This color model uses three parameters for a color: its
-luminance or lightness (L*, which lies between 0 for black and
-100 for white), its position between absolute red and absolute green (a*,
-which is negative for colors closer to green and positive for colors closer to
-red), and its position between yellow and blue (b*, which is negative for
-colors closer to blue and positive for colors closer to yellow).
-</para>
-
-</sect2>
-
-<sect2 id="colorspaces-list-LMS">
-<title>The LMS color model</title>
-
-<para>
-This model is based on the contribution of actual light wave lengths to the
-color. The human eye is sensitive to three types of light waves, distinguished
-by their wave lengths: long (L), middle (M) and short (S) waves. The eye's
-sensitivity for a certain color on these three wavelengths can be expressed in
-L, M and S coordinates.
-</para>
-
-</sect2>
-
-<sect2 id="colorspaces-list-YCbCr">
-<title>The YCbCr color model</title>
-
-<para>
-The YCbCr model is often used for video systems. The Y parameter indicates the
-luminance or lightness of the color (which can be seen as a gray-tone), the Cb
-and Cr parameters indicate the chrominance (color tone): Cb places the color
-on a scale between blue and yellow, Cr indicates the place of the color
-between red and green.
-</para>
-
-</sect2>
-
-<sect2 id="colorspaces-list-Gray"><title>The Gray color model</title>
-
-<para>
-The Gray color model simply represents colors as shades of gray (with black
-and white being the extremes).
-</para>
-
-</sect2>
-
-</sect1>
-
-</chapter>
diff --git a/doc/krita/using-filters.docbook b/doc/krita/using-filters.docbook
deleted file mode 100644
index 3dd686c4c..000000000
--- a/doc/krita/using-filters.docbook
+++ /dev/null
@@ -1,923 +0,0 @@
-<chapter id="filters">
-<title>Filters</title>
-
-<para>
-&krita; comes with a number of filters. These can be used to enhance or
-otherwise modify the image, either in whole or in part. Some filters are
-applied directly, others are customizable, meaning that you are presented with
-a dialog in which you can tune the result to your liking before the filter is
-applied. If a selection is active, a filter is applied on the selected part of
-the image. If no selection is active, the entire image is modified.
-</para><para>
-This chapter describes the available filters in detail. To make comparing the
-filters easier, each filter has been applied to the same image and each description
-contains a comparison image, showing the result of applying the filter described.
-The original image (with thanks to the photographer, Christian Peper) is shown
-below at half the original size. The sample images demonstrating the
-results of applying the filters, with the original image at the left and the
-modified image at the right, are shown at 25% of the original size.
-</para>
-<note><para>Some filters yield reasonable results for most images. For
-other filters though, quite some tweaking needs to be done before the desired
-outcome is achieved. If a filter does not do what you want, it might need
-more or less customising. The examples in this chapter are exaggerated to
-give a good impression of the filters. You will usually want to have more
-<quote>gentle</quote> modifications.</para></note>
-<para>
-Tip: If you want to apply a filter to everything except a certain part of your
-image (for example, you want to desaturate your image except for the centre),
-select the part you do not want to apply the filter to, use the
-<menuchoice><guimenu>Select</guimenu><guimenuitem>Invert</guimenuitem></menuchoice>
-menu option, and then apply the filter.
-</para>
-<para>
-See the <link linkend="commands-dialogs-filters">Dialogs for working with
-filters</link> section for descriptions of the settings available for the
-customizable filters.
-</para>
-
-<screenshot>
-<screeninfo>The original image</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The original image</phrase>
-</textobject>
-<caption><para>The original image</para></caption>
-</mediaobject>
-</screenshot>
-
-<sect1 id="filters-autocontrast">
-<title>The Auto Contrast filter</title>
-<para>
-The Auto Contrast filter changes the contrast of your image to what should be
-the best settings. Usually this works out fine, but in some cases (for example
-photos taken under unusual lighting circumstances), the filter will not yield
-satisfying results.
-</para>
-<para>
-You can find the Auto Contrast filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Adjust</guisubmenu></menuchoice> menu. This filter is not customizable.
-</para>
-<screenshot>
-<screeninfo>The image with the Auto Contrast filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-autocontrast.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Auto Contrast filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Auto Contrast filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-blur">
-<title>The Blur filter</title>
-<para>
-You can use the Blur filter to blur your image (give it a fuzzy look).
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Blur</guisubmenu></menuchoice> menu.
-See the section on <link linkend="commands-dialogs-filters-blur">the
-<guilabel>Blur</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Blur filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-blur.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Blur filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Blur filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-brightnesscontrast">
-<title>The Brightness / Contrast filter</title>
-<para>
-With this filter, you can adjust the brightness and contrast of your image.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Adjust</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-brightnesscontrast">the
-<guilabel>Brightness / Contrast</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Brightness / Contrast filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-brightnesscontrast.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Brightness / Contrast filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Brightness / Contrast filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-bumpmap">
-<title>The Bumpmap filter</title>
-<para>
-The Bumpmap filter takes two layers and uses one of these to convert the other
-one so that it will give an illusion of depth. The object layer (the layer to be
-transformed) is the actual layer that should receive the three-dimensional
-looks. The bumpmap layer is a grayscale layer, which is read and used to
-determine the height for each point of the object layer.  Alternatively, the
-same layer can be used as both object layer and bumpmap layer.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Map</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-bumpmap">the
-<guilabel>Bumpmap</guilabel> dialog</link> for more information on its
-settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Bumpmap filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-bumpmap.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Bumpmap filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Bumpmap filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-cimg">
-<title>The CImg Image Restoration filter</title>
-<para>
-With this filter, you can perform minor enhancements to your image, for
-example removing small scratches or adding a slight blur. The difference
-between our sample original image and the result of applying this filter with
-standard settings is virtually none.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-imagerestoration">the
-<guilabel>Image Restoration</guilabel> dialog</link>
-for more information on its settings.
-</para>
-</sect1>
-
-<sect1 id="filters-coloradjustment">
-<title>The Color Adjustment filter</title>
-<para>
-This filter allows you to change the looks of your image by increasing or
-decreasing the abundance of certain colors.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Adjust</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-coloradjustment">the
-<guilabel>Color Adjustment</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Color Adjustment filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-coloradjustment.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Color Adjustment filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Color Adjustment filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-colortoalpha">
-<title>The Color to Alpha filter</title>
-<para>
-This filter changes a color or color range in your image to become
-transparent, effectively clearing regions with those colors.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Colors</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-colortoalpha">the
-<guilabel>Color to Alpha</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Color to Alpha filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-colortoalpha.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Color to Alpha filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Color to Alpha filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-colortransfer">
-<title>The Color Transfer filter</title>
-<para>
-With this filter, you can re-color an image using the colors from another
-image. Each color in your current image will be replaced by the most alike
-color used in the other image.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Colors</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-colortransfer">the
-<guilabel>Color Transfer</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Color Transfer filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-colortransfer.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Color Transfer filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Color Transfer filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-customconvolution">
-<title>The Custom Convolution filter</title>
-<para>
-This filter allows you to distort your image by setting a number of
-parameters.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-customconvolution">the
-<guilabel>Custom Convolution</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Custom Convolution filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-customconvolution.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Custom Convolution filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Custom Convolution filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-desaturate">
-<title>The Desaturate filter</title>
-<para>
-This filter converts your image to grayscale by setting the saturation of each
-pixel's color to zero.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Adjust</guisubmenu></menuchoice> menu. 
-This filter is not customizable.
-</para>
-<screenshot>
-<screeninfo>The image with the Desaturate filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-desaturate.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Desaturate filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Desaturate filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-edgedetection">
-<title>The Edge Detection filters</title>
-<para>
-These filters try to detect <quote>edges</quote> (boundaries) in the picture
-and modify the image such that only these edges retain their respective colors,
-while the rest of the image is turned gray. Through the use of lighting the
-image will then get a three-dimensional look.
-</para><para>
-There are four edge detection filters available. Each of these detects edges
-from a different side (possibly considering other parts of the image as being
-edges) and will therefore obtain a different resulting image.
-</para>
-<para>
-You can find the filters in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Edge Detection</guisubmenu></menuchoice> menu. 
-These filters are not customizable.
-</para>
-<screenshot>
-<screeninfo>The image with the Bottom Edge Detection filter applied to
-it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-edgebottom.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Bottom Edge Detection filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Bottom Edge Detection filter applied to
-it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-emboss">
-<title>The Emboss filters</title>
-<para>
-Emboss filters work somewhat like edge detection filters, with the difference
-that embossed images are entirely gray. Areas in the picture are detected and
-are given a certain <quote>height level</quote>, which is made visible by using
-grayscale borders, making the image look like it is three-dimensional.
-</para>
-<para>
-You can find the filters in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Emboss</guisubmenu></menuchoice> menu. 
-Except for the Emboss with Variable Depth filter, these filters are not
-customizable. See the section on <link
-linkend="commands-dialogs-filters-emboss">the
-<guilabel>Emboss</guilabel> dialog</link>
-for more information on the settings of the Emboss with Variable Depth filter.
-</para>
-<screenshot>
-<screeninfo>The image with the Emboss in All Directions filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-embossall.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Emboss in All Directions filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Emboss in All Directions filter applied to
-it</para></caption>
-</mediaobject>
-</screenshot>
-<screenshot>
-<screeninfo>The image with the Emboss with Variable depth filter applied to
-it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-embossvariable.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Emboss with Variable depth filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Emboss with Variable depth filter applied to
-it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-gaussianblur">
-<title>The Gaussian Blur filter</title>
-<para>
-This filter makes the image a little fuzzy by blurring it in a pseudo-random
-way. A gaussian algorithm is used for finding the extent to which each part of
-the image should be blurred.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Blur</guisubmenu></menuchoice> menu. 
-This filter is not customizable.
-</para>
-<screenshot>
-<screeninfo>The image with the Gaussian Blur filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-gaussianblur.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Gaussian Blur filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Gaussian Blur filter applied to
-it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-gaussiannoise">
-<title>The Gaussian Noise Reduction filter</title>
-<para>
-With this filter, you can remove noise from your image.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-gaussiannoise">the
-<guilabel>Gaussian Noise Reduction</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Gaussian Noise Reduction filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-gaussiannoise.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Gaussian Noise Reduction filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Gaussian Noise Reduction filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-invert">
-<title>The Invert filter</title>
-<para>
-This filter inverts all colors. The Red, Green and Blue component of each pixel
-are taken and subtracted from 255. This means that red becomes cyan, green
-becomes purple, and blue becomes yellow. The resulting values form the new
-pixel color.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Adjust</guisubmenu></menuchoice> menu. 
-This filter is not customizable.
-</para>
-<screenshot>
-<screeninfo>The image with the Invert filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-invert.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Invert filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Invert filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-lenscorrection">
-<title>The Lens Correction filter</title>
-<para>
-This filter can fix distortions in your image resulting from for example
-<quote>pincushion</quote> lens effects, and modify some lighting.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Other</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-lenscorrection">the
-<guilabel>Lens Correction</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Lens Correction filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-lenscorrection.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Lens Correction filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Lens Correction filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-maximizechannel">
-<title>The Maximize Channel filter</title>
-<para>
-This filter gives each pixel in your image a new color: only the color channel
-that contributes the most to the color of a pixel is retained (except for
-gray pixels, which are kept gray).
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Colors</guisubmenu></menuchoice> menu. 
-This filter is not customizable.
-</para>
-<screenshot>
-<screeninfo>The image with the Maximize Channel filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-maximizechannel.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Maximize Channel filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Maximize Channel filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-meanremoval">
-<title>The Mean Removal filter</title>
-<para>
-This filter sharpens the image by changing the colors of neighboring pixels
-with approximately the same color, so that small differences are evened out.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu></menuchoice> menu. 
-This filter is not customizable.
-</para>
-<screenshot>
-<screeninfo>The image with the Mean Removal filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-meanremoval.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Mean Removal filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Mean Removal filter applied to
-it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-minimizechannel">
-<title>The Minimize Channel filter</title>
-<para>
-This filter gives each pixel in your image a new color: the color channel
-that contributes the most to the color of a pixel is removed (except for
-gray pixels, which are kept gray).
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Colors</guisubmenu></menuchoice> menu. 
-This filter is not customizable.
-</para>
-<screenshot>
-<screeninfo>The image with the Minimize Channel filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-minimizechannel.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Minimize Channel filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Minimize Channel filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-oilpaint">
-<title>The Oilpaint filter</title>
-<para>
-An oilpaint effect is given to the image by creating patch-shaped areas in which
-the most important color is applied to the entire area.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Artistic</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-oilpaint">the
-<guilabel>Oilpaint</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Oilpaint filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-oilpaint.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Oilpaint filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Oilpaint filter applied to
-it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-pixelize">
-<title>The Pixelize filter</title>
-<para>
-The image is pixelated by taking a square area and giving it the mean color
-value of the pixels it contains.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Artistic</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-pixelize">the
-<guilabel>Pixelize</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Pixelize filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-pixelize.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Pixelize filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Pixelize filter applied to
-it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-raindrops">
-<title>The Raindrops filter</title>
-<para>
-This filter makes it look like raindrops have fallen on the image by distorting
-drop-shaped areas with a lens-like effect as one would see when looking
-at the image through a real raindrop. Some raindrops will have a fish-eye lens
-effect.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Artistic</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-raindrops">the
-<guilabel>Raindrops</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Raindrops filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-raindrops.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Raindrops filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Raindrops filter applied to
-it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-randomnoise">
-<title>The Random Noise filter</title>
-<para>
-With this filter, random noise can be added to your image.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Other</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-randomnoise">the
-<guilabel>Random Noise</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Random Noise filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-randomnoise.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Random Noise filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Random Noise filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-randompick">
-<title>The Random Pick filter</title>
-<para>
-This filter distorts the image by interchanging pixels.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Other</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-randompick">the
-<guilabel>Random Pick</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Random Pick filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-randompick.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Random Pick filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Random Pick filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-roundcorners">
-<title>The Round Corners filter</title>
-<para>
-This filter just rounds off the corners of the image. This is done by making
-the outside of the rounded corner transparent.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Map</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-roundcorners">the
-<guilabel>Round Corners</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Round Corners filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-roundcorners.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Round Corners filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Round Corners filter applied to
-it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-sharpen">
-<title>The Sharpen filter</title>
-<para>
-This filter sharpens the image.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu></menuchoice> menu. 
-This filter is not customizable.
-</para>
-<screenshot>
-<screeninfo>The image with the Sharpen filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-sharpen.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Sharpen filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Sharpen filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-smalltiles">
-<title>The Small Tiles filter</title>
-<para>
-The picture is reduced in size and repeated multiple times.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Map</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-smalltiles">the
-<guilabel>Small Tiles</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Small Tiles filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-smalltiles.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Small Tiles filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Small Tiles filter applied to
-it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-sobel">
-<title>The Sobel filter</title>
-<para>
-This is a more enhanced edge detection filter.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Edge Detection</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-sobel">the
-<guilabel>Sobel</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Sobel filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-sobel.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Sobel filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Sobel filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-unsharpmask">
-<title>The Unsharp Mask filter</title>
-<para>
-This filter sharpens part of your image. (The name <quote>unsharp</quote> is
-historical: parts would be masked off while the rest would be made less sharp.)
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-unsharpmask">the
-<guilabel>Unsharp Mask</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Unsharp Mask filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-unsharpmask.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Unsharp Mask filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Unsharp Mask filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-wave">
-<title>The Wave filter</title>
-<para>
-This filter transforms your image into a wave shape.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Other</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-wave">the
-<guilabel>Wave</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Wave filter applied to it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-wave.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Wave filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Wave filter applied to it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="filters-waveletnoise">
-<title>The Wavelet Noise Reduction filter</title>
-<para>
-This filter reduces noise in the image by giving loose pixels a color close to
-the surrounding area. This causes small details to be lost, but can enhance the
-general view of the image when this is hampered by too many unnecessary details.
-</para>
-<para>
-You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
-<guisubmenu>Enhance</guisubmenu></menuchoice> menu. 
-See the section on <link
-linkend="commands-dialogs-filters-waveletnoise">the
-<guilabel>Wavelet Noise Reduction</guilabel> dialog</link>
-for more information on its settings.
-</para>
-<screenshot>
-<screeninfo>The image with the Wavelet Noise Reduction filter applied to
-it</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="crocusses-waveletnoise.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The image with the Wavelet Noise Reduction filter applied to it</phrase>
-</textobject>
-<caption><para>The image with the Wavelet Noise Reduction filter applied to
-it</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-
-</chapter>
diff --git a/doc/krita/using-images.docbook b/doc/krita/using-images.docbook
deleted file mode 100644
index e3b1f239a..000000000
--- a/doc/krita/using-images.docbook
+++ /dev/null
@@ -1,66 +0,0 @@
-<chapter id="images">
-<title>Images</title>
-
-<para>
-Creating and modifying images is one of &krita;'s core functionalities. While
-most of the other chapters in this manual focus on the things you can do when
-painting or editing, this chapter shows you what you can do with respect to
-the images themselves.
-</para>
-
-<sect1 id="images-files">
-<title>Working with files</title>
-
-<para>
-Unless you are doing some quick sketching, working with &krita; will most
-likely involve files. You can open existing images &mdash; &krita; can work
-with a large number of file formats, see <link
-linkend="introduction-keyfeatures-imageformats">Image formats</link> &mdash;
-or start &krita; to create a new one. When you are done or if you want to
-continue at a later time, you can easily save your work.
-</para>
-
-<variablelist>
-
-<varlistentry><term>Opening existing files</term>
-<listitem><para>When you start &krita;, you can open an existing image with
-the <guibutton>Open Existing Document</guibutton> button at the lower left of
-the opening dialog. You can also use the
-<menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>
-menu option (<keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo>).
-This will bring up the <guilabel>Open Document</guilabel> dialog in which you
-can choose an image to open. The opening dialog and the
-<guimenu>File</guimenu> menu also contain a list of the most recently used
-files for quick access.</para></listitem>
-</varlistentry>
-
-<varlistentry><term>Saving your work in progress</term>
-<listitem><para>With the
-<menuchoice><guimenu>File</guimenu><guimenuitem>Save</guimenuitem></menuchoice>
-and <menuchoice><guimenu>File</guimenu><guimenuitem>Save As...</guimenuitem></menuchoice>
-menu options (or their respective shortcuts <keycombo
-action="simul">&Ctrl;<keycap>S</keycap></keycombo> and <keycombo
-action="simul">&Ctrl;&Shift;<keycap>S</keycap></keycombo>), you can save your
-work. The former option will save the modifications to the current image, the
-latter option will show the <guilabel>Save Document</guilabel> dialog in which
-you can give a new file name for the image. If this is the first time you save
-the image, <guimenuitem>Save</guimenuitem> will ask for a file name as well.
-</para></listitem>
-</varlistentry>
-
-<varlistentry><term>Creating a new image</term>
-<listitem><para>From the opening dialog (available via the 
-<menuchoice><guimenu>File</guimenu><guimenuitem>New</guimenuitem></menuchoice>
-menu option or the <keycombo
-action="simul">&Ctrl;<keycap>N</keycap></keycombo> keys), you can create a
-fully custom document or choose one of the image templates. These templates
-offer a quick way of creating a new image.  See the <link
-linkend="tutorial-starting">Starting to know &krita;</link> tutorial.
-</para></listitem>
-</varlistentry>
-
-</variablelist>
-
-</sect1>
-
-</chapter>
diff --git a/doc/krita/using-layers.docbook b/doc/krita/using-layers.docbook
deleted file mode 100644
index 8cb574f69..000000000
--- a/doc/krita/using-layers.docbook
+++ /dev/null
@@ -1,620 +0,0 @@
-<chapter id="layers">
-<title>Layers</title>
-
-<para>
-This chapter gives an overview of how layers work in &krita;.
-</para>
-
-<sect1 id="layers-background">
-<title>Background information on layers</title>
-
-<para>
-Extensive use of &krita; will almost require you to have some knowledge of
-layers. Using layers, you can work on one part of the image without touching
-the rest of it, and most effects are best applied on a layer, instead of on
-the whole image. Of course, if you do want to apply an effect to an entire
-image, &krita; does offer you that possibility, and there is nothing against
-it.
-</para><para>
-The idea behind layers is quite simple. As the name suggests, layers lie on
-top of each other, and together form the layer stack. The final resulting
-image is that what you see when looking through the stack from top to bottom.
-This means that usually the upper layers of your image will have more or less
-transparency, since you cannot look through a layer which has no transparency.
-(&krita; works with opaqueness instead of transparency. A layer that is 100
-percent opaque is 0 percent transparent, and vice versa.) A layer higher in
-the stack gets applied later than one lower in the stack. For example, if your
-image contains four layers, numbered from 1 (lowest) to 4 (highest), the
-effect that layer number 4 adds to the image, is applied to the result from
-applying layers 1 through 3.
-</para><para>
-Every image you edit in &krita; contains layers. When you create a new image,
-the layer box (usually shown at the bottom right of your screen, see <link
-linkend="commands-palettes-layers-layers">this section</link>) will contain
-one layer. The painting and editing you do is then applied to that layer. Once
-you add more layers, you can choose on which part of the image you want to
-work, by selecting the respective layer. All further painting is then applied
-to that layer, until you select another one.
-</para><para>
-Layers are also an excellent way to check whether adding certain effects (or
-applying certain image modifications) come out right. Add a layer which
-contains what you want to try out, and show or hide it with the eye icon in
-the layer box. You can especially profit from this method if you have multiple
-effects to check out: show and hide them in any combination, and decide which
-you like best. And since you can move the layers around, you can also
-experiment with the order in which the effects are applied.
-</para><para>
-See the <link linkend="tutorial-select-layer">Selections and layers
-tutorial</link> for a small hands-on introduction.
-</para>
-</sect1>
-
-<sect1 id="layers-layerbox">
-<title>The layer box</title>
-
-<para>The layer box is the instrument you will use most to work with layers. It
-gives an overview of the layers that are present in your image, and using it
-you can manage layers by adding, removing, reordering or modifying them.
-</para><para>
-The layer box consists of three parts. The middle part gives an overview of the
-layers in the image. At the top, you can set some properties for the current
-layer. At the bottom, a couple of layer management options can be found. The
-next sections describe these three parts in more detail.
-</para>
-
-<sect2 id="layers-layerbox-overview"> 
-<title>Layer overview</title>
-
-<para>This part shows you which layers are present in your image. In a tree-like
-structure, the layer group hierarchy is shown: layers that are contained within
-a layer group are displayed a bit to the right to indicate their belonging to
-that group. 
-</para><para>
-For each layer, a thumbnail preview and its name are shown. The layer name
-is preceded by a folder icon if it is a group layer. Furthermore, two
-indicators are present: the eye icon shows whether the layer is currently
-visible (an open eye indicates that the layer is visible, a closed eye
-indicates that it is not), and the lock icon shows whether the layer is
-locked. No changes can be made to a locked layer.
-</para><para>
-When you click on a layer's eye icon, its visibility is switched from on to
-off or vice versa. Clicking on the lock icon enables or disables editing of
-that layer. You can click on the name of the current layer to rename it.
-Note that to rename a layer, it has to be the current one. You do not need to
-activate a layer in order to make it (in)visible or (un)locked via the eye and
-lock icons, respectively: these work directly.
-</para><para>
-Doubleclick on a layer entry in the list to open the <link
-linkend="commands-dialogs-layers-layerproperties"><guilabel>Layer
-Properties</guilabel></link> dialog. This dialog shows a layer's colorspace and
-profile. You can also change its name, opacity and composite mode here.
-</para>
-</sect2>
-
-<sect2 id="layers-layerbox-options"> 
-<title>Layer options</title>
-<para>
-The top of the layer box contains two controls for setting properties of the
-currently selected layer. The list box at the left allows you to quickly set
-the layer's composite mode. The spin field and slider at the right can be used
-to change the layer's opacity.
-</para><para>
-At the bottom of the layer box, there are five buttons. From left to right,
-these are as follows. The <guibutton>New Layer</guibutton> icon brings up a
-submenu from which you can choose which type of layer you want to add. This
-menu can also be opened by clicking with the &RMB; on the layer box. The
-<guibutton>Move Layer Down</guibutton> and <guibutton>Move Layer Up</guibutton>
-buttons move the current layer one level down and up, respectively, within the
-current layer group. If the layer is already the last or first within the
-layer group, trying to move it further will move it out of the layer group.
-The <guibutton>Layer Properties</guibutton> button opens the <link
-linkend="commands-dialogs-layers-layerproperties"><guilabel>Layer
-Properties</guilabel></link> dialog, just as when you would have doubleclicked
-on the layer. The <guibutton>Delete Layer</guibutton> button deletes the
-current layer.
-</para>
-</sect2>
-
-</sect1>
-
-<sect1 id="layers-working">
-<title>Working with layers</title>
-
-<para>
-Because layers are quite important when extensively using &krita;, you can
-perform a lot of operations on them. These are all available via the <link
-linkend="commands-menus-layer"><guimenu>Layer</guimenu> menu</link>. Some of
-the possibilities:
-</para>
-
-<variablelist>
-<varlistentry><term></term><listitem><para>Add, remove, and duplicate layers;</para></listitem></varlistentry>
-<varlistentry><term></term><listitem><para>Create and edit layer masks;</para></listitem></varlistentry>
-<varlistentry><term></term><listitem><para>Flip, rotate, scale and shear layers;</para></listitem></varlistentry>
-<varlistentry><term></term><listitem><para>Convert layers between colorspaces;</para></listitem></varlistentry>
-<varlistentry><term></term><listitem><para>Save layers as images;</para></listitem></varlistentry>
-<varlistentry><term></term><listitem><para>View layer histograms.</para></listitem></varlistentry>
-</variablelist>
-
-</sect1>
-
-<sect1 id="layers-adjustment">
-<title>Adjustment Layers</title>
-
-<para>Adjustment layers are layers that consist of a filter and an optional
-selection. The filter effect is applied to the composite image of all
-layers under the adjustment layer in the current layer group. The big
-thing is, adjustment layers apply these effects non-destructively. The
-original image data is not modified.
-</para><para>
-Almost all &krita; filters are suitable for use in adjustment
-layers -- even filters that would downgrade the image quality. For instance,
-the raindrops filter converts to 8-bit RGB before working its magic. If you
-would try to use this filter directly on a 16-bit L*a*b* layer, &krita; would
-warn you about the conversion to RGB and back again this filter would cause.
-Not so with adjustment layers: the original data isn't touched, so applying
-the filter is safe.
-</para><para>
-What about the colorspace of an adjustment layer then? In order to examine
-this issue, you need to know what happens when &krita; renders an adjustment
-layer.
-</para>
-
-<sect2 id="layers-adjustment-selections">
-<title>Adjustment layers and selections</title>
-
-<para>If the currently active layer has an active selection, then that selection
-will be copied and used as a mask for the adjustment layer. If there is no
-active selection, then there will be no mask and the adjustment will apply to
-the entire extent of the layers under the adjustment layer in the current
-group. There is <emphasis>no</emphasis> way of adding a mask to an existing
-adjustment layer.
-</para><para>
-If there is a mask in the adjustment layer, you can edit the mask using the
-ordinary painting tools and painting operations.
-</para>
-
-</sect2>
-
-<sect2 id="layers-adjustment-projection">
-<title>A note on projections</title>
-
-<para>
-&krita; composites the layers bottom to top, within each layer group. The
-aggregate -- or the projection as it is also called -- is then filtered by
-the adjustment layer. If there are layers on top of the adjustment layer,
-those are composited onto the projection. &krita; converts all layer data before
-compositing, so if the bottom-most layer in an image is grayscale, all layers
-are converted to grayscale before compositing -- and that means that the
-adjustment layer projection will be grayscale, too.
-</para><para>
-With this knowledge you'll understand why &krita; can often offer better
-performance working with layers on top of an adjustment layer which is on top
-of a complex layer structure: &krita; uses the projection and doesn't even look
-anymore at the layers under the adjustment layer. Unless, of course, you
-change one of them.
-</para>
-</sect2>
-
-</sect1>
-
-<sect1 id="layers-composite">
-<title>Compositing modes</title>
-
-<para>
-Layers can be composited in various ways, each yielding a different effect.
-This section describes the available compositing modes. Each description is
-accompanied by an example: on top of an original image (see below), a rainbow
-gradient is added.
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The original image</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-original.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The original image</phrase>
-</textobject>
-<caption><para>The original image</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<sect2 id="layers-composite-normal">
-<title><guilabel>Normal</guilabel></title>
-
-<para>
-The <guilabel>Normal</guilabel> mode does nothing special. It adds the layer
-to the image, and if no other special effects like opacity are changed, the
-underlying layers will only be visible at places where the new layer is
-itself transparent.
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The gradient applied with the <guilabel>Normal</guilabel> compositing
-mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-normal.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The gradient applied with the <guilabel>Normal</guilabel> compositing
-mode</phrase>
-</textobject>
-<caption><para>The gradient applied with the <guilabel>Normal</guilabel> compositing
-mode</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-</sect2>
-
-<sect2 id="layers-composite-multiply">
-<title><guilabel>Multiply</guilabel></title>
-
-<para>
-The <guilabel>Multiply</guilabel> mode blends the two layers so that the
-bottom layer gets <quote>colorized</quote> by the new layer. The resulting
-image is generally quite dark.
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The gradient applied with the <guilabel>Multiply</guilabel> compositing
-mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-multiply.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The gradient applied with the <guilabel>Multiply</guilabel> compositing
-mode</phrase>
-</textobject>
-<caption><para>The gradient applied with the <guilabel>Multiply</guilabel> compositing
-mode</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-</sect2>
-
-<sect2 id="layers-composite-burn">
-<title><guilabel>Burn</guilabel>, <guilabel>Dodge</guilabel>,
-<guilabel>Divide</guilabel> and <guilabel>Screen</guilabel></title>
-
-<para>
-The <guilabel>Burn</guilabel>, <guilabel>Dodge</guilabel>,
-<guilabel>Divide</guilabel> and <guilabel>Screen</guilabel> modes all add an
-extra <quote>burning</quote> effect by following contours instead of using
-straight lines. In addition, <guilabel>Burn</guilabel> and
-<guilabel>Divide</guilabel> use the inverted colors instead of the actual
-colors of the composited layer.
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The gradient applied with the <guilabel>Burn</guilabel> compositing
-mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-burn.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The gradient applied with the <guilabel>Burn</guilabel> compositing
-mode</phrase>
-</textobject>
-<caption><para>The gradient applied with the <guilabel>Burn</guilabel> compositing
-mode</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The gradient applied with the <guilabel>Dodge</guilabel> compositing
-mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-dodge.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The gradient applied with the <guilabel>Dodge</guilabel> compositing
-mode</phrase>
-</textobject>
-<caption><para>The gradient applied with the <guilabel>Dodge</guilabel> compositing
-mode</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The gradient applied with the <guilabel>Divide</guilabel> compositing
-mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-divide.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The gradient applied with the <guilabel>Divide</guilabel> compositing
-mode</phrase>
-</textobject>
-<caption><para>The gradient applied with the <guilabel>Divide</guilabel> compositing
-mode</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The gradient applied with the <guilabel>Screen</guilabel> compositing
-mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-screen.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The gradient applied with the <guilabel>Screen</guilabel> compositing
-mode</phrase>
-</textobject>
-<caption><para>The gradient applied with the <guilabel>Screen</guilabel> compositing
-mode</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-</sect2>
-
-<sect2 id="layers-composite-overlay">
-<title><guilabel>Overlay</guilabel></title>
-
-<para>
-Like <guilabel>Multiply</guilabel>, the <guilabel>Overlay</guilabel> mode
-colorizes the underlying layer. The resulting image is about as light as
-the original layer.
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The gradient applied with the <guilabel>Overlay</guilabel> compositing
-mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-overlay.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The gradient applied with the <guilabel>Overlay</guilabel> compositing
-mode</phrase>
-</textobject>
-<caption><para>The gradient applied with the <guilabel>Overlay</guilabel> compositing
-mode</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-</sect2>
-
-<sect2 id="layers-composite-darken">
-<title><guilabel>Darken</guilabel></title>
-
-<para>
-The <guilabel>Darken</guilabel> mode darkens the underlying layer while
-colorizing it to match the colors in the composited layer.
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The gradient applied with the <guilabel>Darken</guilabel> compositing
-mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-darken.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The gradient applied with the <guilabel>Darken</guilabel> compositing
-mode</phrase>
-</textobject>
-<caption><para>The gradient applied with the <guilabel>Darken</guilabel> compositing
-mode</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-</sect2>
-
-<sect2 id="layers-composite-lighten">
-<title><guilabel>Lighten</guilabel></title>
-
-<para>
-The <guilabel>Lighten</guilabel> mode lightens the underlying layer while
-colorizing it to match the colors in the composited layer.
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The gradient applied with the <guilabel>Lighten</guilabel> compositing
-mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-lighten.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The gradient applied with the <guilabel>Lighten</guilabel> compositing
-mode</phrase>
-</textobject>
-<caption><para>The gradient applied with the <guilabel>Lighten</guilabel> compositing
-mode</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-</sect2>
-
-<sect2 id="layers-composite-hue">
-<title><guilabel>Hue</guilabel>, <guilabel>Saturation</guilabel> and
-<guilabel>Value</guilabel></title>
-
-<para>
-The <guilabel>Hue</guilabel>, <guilabel>Saturation</guilabel> and
-<guilabel>Value</guilabel> modes respectively apply the hue, saturation and
-value components of the composited layer to the underlying layer.
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The gradient applied with the <guilabel>Hue</guilabel> compositing
-mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-hue.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The gradient applied with the <guilabel>Hue</guilabel> compositing
-mode</phrase>
-</textobject>
-<caption><para>The gradient applied with the <guilabel>Hue</guilabel> compositing
-mode</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The gradient applied with the <guilabel>Saturation</guilabel> compositing
-mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-saturation.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The gradient applied with the <guilabel>Saturation</guilabel> compositing
-mode</phrase>
-</textobject>
-<caption><para>The gradient applied with the <guilabel>Saturation</guilabel> compositing
-mode</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The gradient applied with the <guilabel>Value</guilabel> compositing
-mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-value.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The gradient applied with the <guilabel>Value</guilabel> compositing
-mode</phrase>
-</textobject>
-<caption><para>The gradient applied with the <guilabel>Value</guilabel> compositing
-mode</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-</sect2>
-
-<sect2 id="layers-composite-color">
-<title><guilabel>Color</guilabel></title>
-
-<para>
-The <guilabel>Color</guilabel> mode colorizes the underlying layer, yielding
-very strong colors.
-</para>
-
-<para>
-<screenshot>
-<screeninfo>The gradient applied with the <guilabel>Color</guilabel> compositing
-mode</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="mountains-color.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>The gradient applied with the <guilabel>Color</guilabel> compositing
-mode</phrase>
-</textobject>
-<caption><para>The gradient applied with the <guilabel>Color</guilabel> compositing
-mode</para></caption>
-</mediaobject>
-</screenshot>
-</para>
-
-</sect2>
-
-</sect1>
-
-<sect1 id="layers-masks">
-<title>Layer Masks</title>
-
-<para>
-Basically, a layer mask is a mask that you place on your paint layer. This
-will literally mask areas of the layer, so that the content underneath shows
-through. You can paint on it with greyscale colors: the more black the color,
-the less the layer under it will shine through, the more white, the less the
-layer under it will be shown. So complete white will let nothing through,
-complete black will let everything through. Basically, it is a bit like
-selecting a piece of your image, and then cutting it, so that the selected
-bits go away. So what is the use for a mask here? The big advantage is that it
-is non-destructive: if you decide that you masked out the wrong part of your
-layer, you can easily remove the mask and start anew, something a lot harder
-(not to say near impossible, especially in between sessions) with regular
-selection-cutting.
-</para><para>
-So, how to create a mask? There are 2 ways:
-</para>
-
-<itemizedlist>
-<listitem><para>
-Start from scratch.
-<menuchoice><guimenu>Layer</guimenu><guisubmenu>Mask</guisubmenu><guimenuitem>Create
-Mask</guimenuitem></menuchoice>. The mask starts with everything being
-retained, that is, a complete white mask. Basically you will not see any
-changes as long as you do not paint on it. 
-</para></listitem>
-<listitem><para>
-Start from the current selection.
-<menuchoice><guimenu>Layer</guimenu><guisubmenu>Mask</guisubmenu><guimenuitem>Mask
-From Selection</guimenuitem></menuchoice>. The selectedness will be converted
-to whiteness. This means that fully selected area will be visible, fully
-unselected areas will be invisible, and the rest will be partially visible,
-depending on how much the area was selected. 
-</para></listitem>
-</itemizedlist>
-
-<sect2 id="layers-masks-editing">
-<title>Editing the mask</title>
-
-<para>
-First, make sure you are editing the mask, not the layer, by making sure
-<menuchoice><guimenu>Layer</guimenu><guisubmenu>Mask</guisubmenu><guimenuitem>Edit
-Mask</guimenuitem></menuchoice> is checked. (This is checked by default.) Then
-you can paint on the layer just like before, only now you are
-painting on the mask, instead of on the layer itself. To stop painting on the
-mask, you can uncheck the <guilabel>Edit Mask</guilabel> checkbox. There's
-also the option to show the mask, through checking
-<menuchoice><guimenu>Layer</guimenu><guisubmenu>Mask</guisubmenu><guimenuitem>Show
-Mask</guimenuitem></menuchoice>. (This is not checked by
-default). This option will render the entire layer as a visual representation
-of the mask in greyscale, instead of the actual layer. This can be handy to
-see where your mask is, but it might be not as handy when you want to edit it,
-since you cannot look at the actual layer.
-</para><para>
-Other actions: you can also remove the mask if you are not satisfied with it,
-and want to start over again, or just want to remove it, with
-<menuchoice><guimenu>Layer</guimenu><guisubmenu>Mask</guisubmenu><guimenuitem>Remove
-Mask</guimenuitem></menuchoice>. You can also <quote>apply</quote> the mask,
-meaning that the mask will be made permanently. This means that the mask is
-removed, but that its effect of transparency will be committed to the layer.
-</para>
-
-</sect2>
-</sect1>
-
-</chapter>
diff --git a/doc/krita/using-selections-1.png b/doc/krita/using-selections-1.png
deleted file mode 100644
index 3efc76bbe..000000000
Binary files a/doc/krita/using-selections-1.png and /dev/null differ
diff --git a/doc/krita/using-selections-2.png b/doc/krita/using-selections-2.png
deleted file mode 100644
index f2e3febce..000000000
Binary files a/doc/krita/using-selections-2.png and /dev/null differ
diff --git a/doc/krita/using-selections-3.png b/doc/krita/using-selections-3.png
deleted file mode 100644
index 059d29837..000000000
Binary files a/doc/krita/using-selections-3.png and /dev/null differ
diff --git a/doc/krita/using-selections-4.png b/doc/krita/using-selections-4.png
deleted file mode 100644
index 0cfec2cbe..000000000
Binary files a/doc/krita/using-selections-4.png and /dev/null differ
diff --git a/doc/krita/using-selections-5.png b/doc/krita/using-selections-5.png
deleted file mode 100644
index c220306db..000000000
Binary files a/doc/krita/using-selections-5.png and /dev/null differ
diff --git a/doc/krita/using-selections-6.png b/doc/krita/using-selections-6.png
deleted file mode 100644
index 7c99accd2..000000000
Binary files a/doc/krita/using-selections-6.png and /dev/null differ
diff --git a/doc/krita/using-selections.docbook b/doc/krita/using-selections.docbook
deleted file mode 100644
index 5465b8a6d..000000000
--- a/doc/krita/using-selections.docbook
+++ /dev/null
@@ -1,200 +0,0 @@
-<chapter id="selections">
-<title>Selections</title>
-
-<para>
-This chapter gives a short introduction on selections.
-</para><para>
-You can select a part of an image masking off the rest. This is handy when
-you want to cut, copy or just modify a part of the image without affecting
-the rest. For processing selected objects &krita; applies a mask. Each pixel of
-the selection is processed based on a value of its mask, or the <quote>level
-of the selection</quote>, that can range from 0 (unselected) to 255
-(selected). Yes, that is right, you can have fractionally selected pixels.
-And by working on individual pixels you can <quote>paint</quote> your selection.
-</para><para>
-The selection mask is visualized with unselected pixels having a blueish
-tint, and selected pixels looking like normal. Fractionally selected pixels
-are shown as something in between. Additionally a red border is drawn around
-the selected areas. Fractionally selected pixels are inside the border, so
-even inside the red border you can possibly see the blueish tint on some pixels.
-</para>
-
-<sect1 id="selections-making">
-<title>Making a selection</title>
-<para>
-A whole range of tools exist to make selections. From rectangles, ellipses
-and freehand to the more exotic like color range select. When you make
-several selections they add up. So a rectangle select followed by an
-ellipse select select both areas. Later on, you can subtract areas from
-the selection by using, for example, the <guilabel>Erase Selection</guilabel> tool.
-</para><para>
-To get back to normal (no active selection), choose
-<menuchoice><guimenu>Select</guimenu><guimenuitem>Deselect</guimenuitem>
-</menuchoice>. To select all pixels, choose
-<menuchoice><guimenu>Select</guimenu><guimenuitem>Select All</guimenuitem>
-</menuchoice>.
-</para><para>
-You may think that those two actions give the same result, but it
-is much more efficient to have no active selection than to have selected
-everything.
-</para><para>
-After having deselected you can bring your selection back by choosing
-<menuchoice><guimenu>Select</guimenu><guimenuitem>Reselect</guimenuitem>
-</menuchoice>.
-</para>
-</sect1>
-
-<sect1 id="selections-painting">
-<title>Painting your selection</title>
-<para>
-As said above you can essentially paint your selection, and just like
-when you paint normally you can choose to paint your selection freehand or
-guided with rectangles, ellipses, &etc;. You also have the choice of different
-paint tools like pen, brush, airbrush, &etc;. Choose the guide tool, and the
-paint tool in the toolbox, and go ahead and <quote>paint</quote> your
-selection.
-</para><para>
-The guide tools work just like you may be used to from other applications. So
-holding down shift while drawing a rectangle or an ellipse still forces them to
-be a square or a circle respectively.
-</para>
-
-<screenshot>
-<screeninfo>Painting a selection</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="using-selections-1.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>Painting a selection</phrase>
-</textobject>
-<caption><para>Painting a selection</para></caption>
-</mediaobject>
-</screenshot>
-<screenshot>
-<screeninfo>Painting a selection</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="using-selections-2.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>Painting a selection</phrase>
-</textobject>
-<caption><para>Painting a selection</para></caption>
-</mediaobject>
-</screenshot>
-
-</sect1>
-
-<sect1 id="selections-unselecting">
-<title>Unselecting</title>
-<para>
-All the selection paint tools have an option to add or subtract from the
-selection. This means that you can use all your familiar tools to both select
-and unselect. There is also a true selection eraser among the selection paint
-tools.
-</para>
-
-<screenshot>
-<screeninfo>Unselecting</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="using-selections-3.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>Unselecting</phrase>
-</textobject>
-<caption><para>Unselecting</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="selections-making-new">
-<title>Making a new selection</title>
-<para>
-When you want to make a new selection, replacing the currently active one, you
-first need to deselect the active selection. Choose
-<menuchoice><guimenu>Select</guimenu><guimenuitem>Deselect</guimenuitem>
-</menuchoice>.
-</para>
-</sect1>
-
-<sect1 id="selections-contigious">
-<title>Selecting a contiguous area (magic wand)</title>
-<para>
-To follow the analogy of painting your selection &krita; also provides an
-equivalent to filling a contiguous area. Some paint applications call this
-selection tool the magic wand tool. What it does is select the nearby
-pixels as long as they have nearly the same color as the pixel you click
-on. The selection floods out from the point you click on. In the fuzziness
-option you can set how different the colors are allowed to be before the
-flooding stops.
-</para>
-
-<screenshot>
-<screeninfo>Before the magic wand</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="using-selections-4.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>Before the magic wand</phrase>
-</textobject>
-<caption><para>Before the magic wand</para></caption>
-</mediaobject>
-</screenshot>
-
-<screenshot>
-<screeninfo>A magic wand selection</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="using-selections-5.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>A magic wand selection</phrase>
-</textobject>
-<caption><para>A magic wand selection</para></caption>
-</mediaobject>
-</screenshot>
-
-</sect1>
-
-<sect1 id="selections-similar">
-<title>Selecting similar colors</title>
-<para>
-The <guilabel>Select Similar</guilabel> tool lets you pick a pixel and then select all pixels that
-have a similar color. Picking a color in one corner of the image may select a
-pixel in another corner if they have similar color.
-With the <guilabel>Fuzziness</guilabel> option you can set how similar the colors must be to become
-selected.
-</para>
-
-<screenshot>
-<screeninfo>Selecting similar colors</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="using-selections-6.png" format="PNG" />
-</imageobject>
-<textobject>
-<phrase>Selecting similar colors</phrase>
-</textobject>
-<caption><para>Selecting similar colors</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-<sect1 id="selections-inverting">
-<title>Inverting the selection</title>
-<para>
-In some cases it is easier to specify your selection the other way around. That
-is, first you select the parts that ultimately should not be selected and then
-then you choose
-<menuchoice><guimenu>Select</guimenu><guimenuitem>Invert</guimenuitem>
-</menuchoice>.
-What invert does, is that for every pixel it flips the selection level so to
-speak, by setting it to 256 minus the current selection level. Thus what was
-selected becomes unselected and vice versa.
-</para>
-</sect1>
-
-</chapter>
diff --git a/doc/krita/using-views.docbook b/doc/krita/using-views.docbook
deleted file mode 100644
index 6760209ef..000000000
--- a/doc/krita/using-views.docbook
+++ /dev/null
@@ -1,167 +0,0 @@
-<chapter id="views">
-<title>Views</title>
-
-<para>
-One of the most important things you need to know when working with a painting
-or image editing application, is how to adapt the view of your image to your
-(changing) needs. This chapter describes the various possibilities &krita;
-offers.
-</para>
-
-<sect1 id="views-zooming">
-<title>Zooming</title>
-
-<para>
-By zooming, you can view your images at various levels of detail.  Zooming out
-will show a larger part of the image, but with less detail.  &krita; offers a
-couple of options that affect which part of the image is shown:
-</para>
-
-<variablelist>
-
-<varlistentry><term>Zooming in</term>
-<listitem><para>Zooming in allows you to see more details, but you will only
-see a smaller part of the image. You can zoom in by choosing the
-<menuchoice><guimenu>View</guimenu><guimenuitem>Zoom
-in</guimenuitem></menuchoice> menu item, by clicking the
-<inlinemediaobject><imageobject><imagedata
-fileref="toolbars-button-zoomin.png" format="PNG"/>
-</imageobject></inlinemediaobject> <guilabel>Zoom in</guilabel> button on the
-toolbar, or by pressing the <keycombo
-action="simul">&Ctrl;<keycap>+</keycap></keycombo> keys.
-You can zoom in up to 1600% (a 16:1 ratio) via a number of fixed zoom levels.
-</para></listitem>
-</varlistentry>
-
-<varlistentry><term>Zooming out</term>
-<listitem><para>Zooming out allows you to see a larger part of the image while
-losing some detail. Zooming out can be done by choosing the
-<menuchoice><guimenu>View</guimenu><guimenuitem>Zoom
-out</guimenuitem></menuchoice> menu item, by clicking the
-<inlinemediaobject><imageobject><imagedata
-fileref="toolbars-button-zoomout.png" format="PNG"/>
-</imageobject></inlinemediaobject> <guilabel>Zoom out</guilabel> button on the
-toolbar, or by pressing the <keycombo
-action="simul">&Ctrl;<keycap>-</keycap></keycombo> keys.
-You can zoom out up to 0.2% (a 1:500 ratio) via a number of fixed zoom levels.
-</para></listitem>
-</varlistentry>
-
-<varlistentry><term>Going back to 100%</term>
-<listitem><para>As viewing your image at its real size is quite handy at
-times, you can do so via the
-<menuchoice><guimenu>View</guimenu><guimenuitem>Actual
-pixels</guimenuitem></menuchoice> menu item or by pressing <keycombo
-action="simul">&Ctrl;<keycap>0</keycap></keycombo>.
-</para></listitem>
-</varlistentry>
-
-<varlistentry><term>Zooming in and out from the <guilabel>Overview</guilabel>
-tab</term>
-<listitem><para>The <guilabel>Overview</guilabel> tab of the control box
-(usually found at the right hand side of the &krita; window) also allows you
-to change the zoom level by using the slider or the spinbox. Slightly
-different zoom levels are available here, so if zooming in or out as described
-above does not produce a view you want, you can try using this option. The
-<guibutton>1:1</guibutton> button offers another way of getting back to a 100%
-zoom.</para></listitem>
-</varlistentry>
-
-<varlistentry><term>Special zooms</term>
-<listitem><para>There are two more special ways of zooming. The
-<menuchoice><guimenu>View</guimenu><guimenuitem>Fit to
-Page</guimenuitem></menuchoice> menu item zooms your image such that it is
-as large as possible while remaining entirely visible. The
-<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen
-Mode</guimenuitem></menuchoice> menu item (pressing <keycombo
-action="simul">&Ctrl;&Shift;<keycap>F</keycap></keycombo> will also activate
-this mode) enlarges the &krita; window to fill your entire screen, removing
-the title bar as well. Although this is not a <quote>real</quote> way of
-zooming, it can help you by showing just that little bit more of your
-image.</para></listitem>
-</varlistentry>
-
-</variablelist>
-
-</sect1>
-
-<sect1 id="views-views">
-<title>Working with views</title>
-
-<para>
-Apart from changing the zoom level of your view, you can also open different
-views for the same image. This way, you can for example look at two different
-parts of your image that would not fit on your screen together otherwise.
-</para>
-
-<variablelist>
-
-<varlistentry><term>New view windows</term>
-<listitem><para>You can open a new &krita; window for your image by choosing
-<menuchoice><guimenu>View</guimenu><guimenuitem>New
-View</guimenuitem></menuchoice> Both windows are independent from each other
-(so you can select different tools, view different parts of your image,
-&etc;), but changes you make to the image in one window are immediately
-visible in the other. To close a window, use the normal window closing button.
-There is also an option <menuchoice><guimenu>View</guimenu><guimenuitem>Close
-All Views</guimenuitem></menuchoice>, which closes all newly created views and
-leaves only the original window open.</para></listitem>
-</varlistentry>
-
-<varlistentry><term>Splitting views</term>
-<listitem><para>You can also split a window into two views. Like a new window,
-one view of a split window has its own settings for brushes, zoom levels and
-the like, but both views are shown in the same window. To split your window,
-choose <menuchoice><guimenu>View</guimenu><guimenuitem>Split
-View</guimenuitem></menuchoice>. The viewing area of the &krita; window will
-then be divided into two halves. You can switch between horizontal and
-vertical division with the
-<menuchoice><guimenu>View</guimenu><guisubmenu>Splitter
-Orientation</guisubmenu></menuchoice> menu, and get back to one view by
-choosing <menuchoice><guimenu>View</guimenu><guimenuitem>Remove
-View</guimenuitem></menuchoice>.</para></listitem>
-</varlistentry>
-
-</variablelist>
-
-</sect1>
-
-<sect1 id="views-miscellaneous">
-<title>Miscellaneous view options</title>
-
-<para>
-&krita; also offers two options that can help you with knowing where you are.
-</para>
-
-<variablelist>
-
-<varlistentry><term>Rulers</term>
-<listitem><para>You can have &krita; show rulers along the sides of your
-image, indicating x and y coordinates. To do so, choose
-<menuchoice><guimenu>View</guimenu><guimenuitem>Show
-Rulers</guimenuitem></menuchoice> or press <keycombo
-action="simul">&Ctrl;<keycap>R</keycap></keycombo>. The rulers will
-automatically adapt to your zoom level to show a proper amount of
-subdivisions. To remove the rulers, choose the same menu option (now called
-<guimenuitem>Hide Rulers</guimenuitem>) or press <keycombo
-action="simul">&Ctrl;<keycap>R</keycap></keycombo> again. </para></listitem>
-</varlistentry>
-
-<varlistentry><term>Grid</term>
-<listitem><para>In order to see grid lines, choose
-<menuchoice><guimenu>View</guimenu><guimenuitem>Show
-Grid</guimenuitem></menuchoice>. You can set the distance between grid lines
-with <menuchoice><guimenu>View</guimenu><guisubmenu>Grid
-Spacing</guisubmenu></menuchoice> and you can choose different colours for the
-lines in the <menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
-&krita;...</guimenuitem></menuchoice> dialog (see <link
-linkend="settings-preferences-grid">the Grid section of the Settings
-chapter</link>).
-</para></listitem>
-</varlistentry>
-
-</variablelist>
-
-</sect1>
-
-</chapter>
diff --git a/filters/krita/Makefile.am b/filters/krita/Makefile.am
deleted file mode 100644
index 0d8732eb9..000000000
--- a/filters/krita/Makefile.am
+++ /dev/null
@@ -1,34 +0,0 @@
-if have_openexr
-OPENEXR_SUBDIR=openexr
-endif
-
-if include_imagemagick_filter
-IMAGEMAGICK_SUBDIR=magick
-endif
-
-if include_graphicsmagick_filter
-GRAPHICSMAGICK_SUBDIR=gmagick
-endif
-
-if have_png
-PNG_SUBDIR=png
-endif
-
-if include_jpeg_filter
-JPEG_SUBDIR=jpeg
-endif
-
-if include_tiff_filter
-TIFF_SUBDIR=tiff
-endif
-
-if have_exif
-LIBKISEXIF=libkisexif
-endif
-
-if include_PDF
-PDF_SUBDIR=pdf
-endif
-
-SUBDIRS = $(IMAGEMAGICK_SUBDIR) $(OPENEXR_SUBDIR) $(PNG_SUBDIR) $(LIBKISEXIF) \
-		$(JPEG_SUBDIR) $(TIFF_SUBDIR) raw $(PDF_SUBDIR) $(GRAPHICSMAGICK_SUBDIR)
diff --git a/filters/krita/configure.in.in b/filters/krita/configure.in.in
deleted file mode 100644
index 6eb8d91e7..000000000
--- a/filters/krita/configure.in.in
+++ /dev/null
@@ -1,66 +0,0 @@
-# Check if the tiff lib is available
-AC_FIND_TIFF
-AM_CONDITIONAL(have_tiff, test -n "$LIBTIFF")
-
-AC_FIND_PNG
-AM_CONDITIONAL(have_png, test -n "$LIBPNG")
-
-AC_FIND_JPEG
-AM_CONDITIONAL(have_jpeg, test -n "$LIBJPEG")
-
-#---------------------------------------------------------
-# libexif detection
-# taken from libkexif's configure.in.in
-#---------------------------------------------------------
-
-LIBEXIF=no
-
-#PKG_CHECK_MODULES(LIBEXIF, libexif >= 0.5.7, ,
-#        [ AC_MSG_WARN([libexif >= 0.5.7 not found.])
-#          LIBEXIF=yes ])
-
-
-#PKG_CHECK_MODULES(LIBEXIF06, libexif >= 0.6.9,
-#        AC_DEFINE(HAVE_EXIF06,1,[check for libexif > 0.6]),
-#                AC_MSG_WARN([Using old version of libexif.]))
-
-PKG_CHECK_MODULES(LIBEXIF, libexif >= 0.6.12 , ,
-        [ AC_MSG_WARN([libexif >= 0.6.12 not found.])
-          LIBEXIF=yes ])
-
-AC_SUBST(LIBEXIF_LIBS)
-AC_SUBST(LIBEXIF_CFLAGS)
-
-#---------------------------------------------------------
-# libexif detection
-#---------------------------------------------------------
-AC_MSG_CHECKING([if C++ program with exif can be compiled])
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-ac_save_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS="$CXXFLAGS $LIBEXIF_CFLAGS"
-AC_CACHE_VAL(exif_build,
-[
-    AC_TRY_COMPILE([
-    extern "C" {
-#include <libexif/exif-loader.h>
-#include <libexif/exif-utils.h>
-}
-    ],[
-        ExifLoader *l = exif_loader_new ();
-        exif_loader_write_file (l,"kikoo");
-        return 0;
-    ], exif_build=yes,
-    exif_build=no)
-])
-AC_MSG_RESULT($exif_build)
-if test "$exif_build" = "no"; then
-    LIBEXIF=""
-fi
-CXXFLAGS="$ac_save_CXXFLAGS"
-AC_LANG_RESTORE
-
-                
-AM_CONDITIONAL(have_exif, test -n "$LIBEXIF")
-AM_CONDITIONAL(include_jpeg_filter, test -n "$LIBJPEG" -a -n "$LIBEXIF")
-AM_CONDITIONAL(include_tiff_filter, test -n "$LIBTIFF" -a -n "$LIBEXIF")
diff --git a/filters/krita/gmagick/Makefile.am b/filters/krita/gmagick/Makefile.am
deleted file mode 100644
index 70d9cc1f5..000000000
--- a/filters/krita/gmagick/Makefile.am
+++ /dev/null
@@ -1,44 +0,0 @@
-kde_module_LTLIBRARIES = libkritagmagickimport.la libkritagmagickexport.la
-
-libkritagmagickexport_la_LDFLAGS = $(KDE_PLUGIN) $(LIBGMAGICK_LDFLAGS) $(KDE_RPATH) $(LIBGMAGICK_RPATH) $(all_libraries) -module -avoid-version -no-undefined -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritagmagickexport_la_LIBADD = \
-	$(KOFFICE_LIBS) \
-	$(LIBGMAGICK_LIBS) \
-	$(top_builddir)/krita/libkritacommon.la
-
-libkritagmagickimport_la_LDFLAGS = $(KDE_PLUGIN) $(LIBGMAGICK_LDFLAGS) $(KDE_RPATH) $(LIBGMAGICK_RPATH) $(all_libraries) -module -avoid-version -no-undefined -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritagmagickimport_la_LIBADD = \
-	$(KOFFICE_LIBS) \
-	$(LIBGMAGICK_LIBS) \
-	$(top_builddir)/krita/libkritacommon.la
-
-INCLUDES= \
-	-I$(srcdir) \
-	 $(KOFFICE_INCLUDES) \
-	-I$(top_srcdir)/krita \
-	-I$(top_srcdir)/krita/core \
-	-I$(top_srcdir)/krita/sdk \
-	-I$(top_srcdir)/krita/core/tiles \
-	-I$(top_srcdir)/krita/kritacolor \
-	-I$(top_srcdir)/krita/ui \
-        $(KOFFICE_INCLUDES) -I$(interfacedir) \
-        $(KOPAINTER_INCLUDES) $(LIBGMAGICK_CPPFLAGS) \
-	$(all_includes) 
-
-service_DATA = krita_magick_import.desktop krita_magick_export.desktop
-servicedir = $(kde_servicesdir)
-
-kdelnk_DATA = krita_magick.desktop
-kdelnkdir = $(kde_appsdir)/.hidden
-
-libkritagmagickimport_la_SOURCES = magickimport.cpp kis_image_magick_converter.cc
-libkritagmagickexport_la_SOURCES = magickexport.cpp kis_image_magick_converter.cc
-
-METASOURCES = AUTO
-
-
-KDE_CXXFLAGS = $(USE_EXCEPTIONS)
diff --git a/filters/krita/gmagick/configure.in.bot b/filters/krita/gmagick/configure.in.bot
deleted file mode 100644
index d922dfd3d..000000000
--- a/filters/krita/gmagick/configure.in.bot
+++ /dev/null
@@ -1,23 +0,0 @@
-if test -z "$LIBGMAGICK_LIBS" -a -z "$LIBMAGICK_LIBS"; then
-  echo ""
-  echo "You're missing GraphicsMagick (>=1.1.7). krita's GraphicsMagick import/export"
-  echo "filter will not be compiled. You can download GraphicsMagick from"
-  echo "http://www.graphicsmagick.org/. The GraphicsMagick filter allows krita to"
-  echo "read and write XCF, PSD, GIF, BMP, and many other image formats."
-  echo ""
-  echo "If you have problems compiling GraphicsMagick, please try configuring it using"
-  echo "the --without-magick-plus-plus flag, the C++ API isn't needed for krita."
-  echo ""
-  all_tests=bad
-  AC_DEFINE([include_imagemagick_filter],"",[don't use magick filter])
-fi
-
-if test -z "$LIBGMAGICK_LIBS" -a ! -z "$LIBMAGICK_LIBS"; then
-
-  echo ""
-  echo "You're missing GraphicsMagick (>=1.1.7). krita's GraphicsMagick import/export"
-  echo "filter will not be compiled. But ImageMagick was found, which mean that krita"
-  echo "will be able to read and write XCF, PSD, GIF, BMP, and many other image formats."
-  echo "But the ImageMagick filter is deprecated and we strongly advise you to install"
-  echo "GraphicsMagick either from your distribution or from http://www.graphicsmagick.org/"
-fi
diff --git a/filters/krita/gmagick/kis_image_magick_converter.cc b/filters/krita/gmagick/kis_image_magick_converter.cc
deleted file mode 100644
index 7d61515d9..000000000
--- a/filters/krita/gmagick/kis_image_magick_converter.cc
+++ /dev/null
@@ -1,1142 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <magick/api.h>
-
-#include <tqfile.h>
-#include <tqfileinfo.h>
-#include <tqstring.h>
-
-#include <kdeversion.h>
-#include <kdebug.h>
-#include <kapplication.h>
-#include <klocale.h>
-#include <kurl.h>
-#include <kio/netaccess.h>
-
-#include <tqcolor.h>
-
-#include "kis_types.h"
-#include "kis_global.h"
-#include "kis_doc.h"
-#include "kis_image.h"
-#include "kis_layer.h"
-#include "kis_undo_adapter.h"
-#include "kis_image_magick_converter.h"
-#include "kis_meta_registry.h"
-#include "kis_colorspace_factory_registry.h"
-#include "kis_iterators_pixel.h"
-#include "kis_colorspace.h"
-#include "kis_profile.h"
-#include "kis_annotation.h"
-#include "kis_paint_layer.h"
-#include "kis_group_layer.h"
-#include "kis_paint_device.h"
-
-#include "../../../config.h"
-
-namespace {
-
-    const TQ_UINT8 PIXEL_BLUE = 0;
-    const TQ_UINT8 PIXEL_GREEN = 1;
-    const TQ_UINT8 PIXEL_RED = 2;
-    const TQ_UINT8 PIXEL_ALPHA = 3;
-
-    static const TQ_UINT8 PIXEL_CYAN = 0;
-    static const TQ_UINT8 PIXEL_MAGENTA = 1;
-    static const TQ_UINT8 PIXEL_YELLOW = 2;
-    static const TQ_UINT8 PIXEL_BLACK = 3;
-    static const TQ_UINT8 PIXEL_CMYK_ALPHA = 4;
-
-    static const TQ_UINT8 PIXEL_GRAY = 0;
-    static const TQ_UINT8 PIXEL_GRAY_ALPHA = 1;
-
-    /**
-     * Make this more flexible -- although... ImageMagick
-     * isn't that flexible either.
-     */
-    TQString getColorSpaceName(ColorspaceType type, unsigned long imageDepth = 8)
-    {
-
-        if (type == GRAYColorspace) {
-            if (imageDepth == 8)
-                return "GRAYA";
-            else if ( imageDepth == 16 )
-                return "GRAYA16" ;
-        }
-        else if (type == CMYKColorspace) {
-            if (imageDepth == 8)
-                return "CMYK";
-            else if ( imageDepth == 16 ) {
-                return "CMYK16";
-            }
-        }
-        else if (type == LABColorspace) {
-            kdDebug(41008) << "Lab!\n";
-            return "LABA";
-        }
-        else if (type == RGBColorspace || type == sRGBColorspace || type == TransparentColorspace) {
-            if (imageDepth == 8)
-                return "RGBA";
-            else if (imageDepth == 16)
-                return "RGBA16";
-        }
-        return "";
-
-    }
-
-    ColorspaceType getColorTypeforColorSpace( KisColorSpace * cs )
-    {
-        if ( cs->id() == KisID("GRAYA") || cs->id() == KisID("GRAYA16") ) return GRAYColorspace;
-        if ( cs->id() == KisID("RGBA") || cs->id() == KisID("RGBA16") ) return RGBColorspace;
-        if ( cs->id() == KisID("CMYK") || cs->id() == KisID("CMYK16") ) return CMYKColorspace;
-        if ( cs->id() == KisID("LABA") ) return LABColorspace;
-
-        kdDebug(41008) << "Cannot export images in " + cs->id().name() + " yet.\n";
-        return RGBColorspace;
-
-    }
-
-    KisProfile * getProfileForProfileInfo(const Image * image)
-    {
-        size_t length;
-        
-        const unsigned char * profiledata = GetImageProfile(image, "ICM", &length);
-        if( profiledata == NULL )
-            return 0;
-        TQByteArray rawdata;
-        rawdata.resize(length);
-        memcpy(rawdata.data(), profiledata, length);
-        
-        KisProfile* p = new KisProfile(rawdata);
-        return p;
-
-#if 0
-        return 0;
-
-        if (image->profiles == NULL)
-            return  0;
-
-        const char *name;
-        const StringInfo *profile;
-
-        KisProfile * p = 0;
-
-        ResetImageProfileIterator(image);
-        for (name = GetNextImageProfile(image); name != (char *) NULL; )
-        {
-            profile = GetImageProfile(image, name);
-            if (profile == (StringInfo *) NULL)
-                continue;
-
-            // XXX: Hardcoded for icc type -- is that correct for us?
-            if (TQString::compare(name, "icc") == 0) {
-                TQByteArray rawdata;
-                rawdata.resize(profile->length);
-                memcpy(rawdata.data(), profile->datum, profile->length);
-
-                p = new KisProfile(rawdata);
-                if (p == 0)
-                    return 0;
-            }
-            name = GetNextImageProfile(image);
-        }
-        return p;
-#endif
-    }
-
-    void setAnnotationsForImage(const Image * src, KisImageSP image)
-    {
-        size_t length;
-        
-        const unsigned char * profiledata = GetImageProfile(src, "IPTC", &length);
-        if( profiledata != NULL )
-        {
-            TQByteArray rawdata;
-            rawdata.resize(length);
-            memcpy(rawdata.data(), profiledata, length);
-            
-            KisAnnotation* annotation = new KisAnnotation(TQString("IPTC"), "", rawdata);
-            Q_CHECK_PTR(annotation);
-
-            image -> addAnnotation(annotation);
-        }
-        for(int i = 0; i < src->generic_profiles; i++)
-        {
-            TQByteArray rawdata;
-            rawdata.resize(length);
-            memcpy(rawdata.data(), src->generic_profile[i].info, src->generic_profile[i].length);
-            
-            KisAnnotation* annotation = new KisAnnotation(TQString(src->generic_profile[i].name), "", rawdata);
-            Q_CHECK_PTR(annotation);
-
-            image -> addAnnotation(annotation);
-        }
-        
-        const ImageAttribute* imgAttr = GetImageAttribute(src, NULL);
-        while(imgAttr)
-        {
-            TQByteArray rawdata;
-            int len = strlen(imgAttr -> value) + 1;
-            rawdata.resize(len);
-            memcpy(rawdata.data(), imgAttr -> value, len);
-            
-            KisAnnotation* annotation = new KisAnnotation( TQString("krita_attribute:%1").tqarg(TQString(imgAttr -> key)), "", rawdata );
-            Q_CHECK_PTR(annotation);
-
-            image -> addAnnotation(annotation);
-
-            imgAttr = imgAttr->next;
-        }
-#if 0
-        return;
-        if (src->profiles == NULL)
-            return;
-
-        const char *name = 0;
-        const StringInfo *profile;
-        KisAnnotation* annotation = 0;
-
-        // Profiles and so
-        ResetImageProfileIterator(src);
-        while((name = GetNextImageProfile(src))) {
-            profile = GetImageProfile(src, name);
-            if (profile == (StringInfo *) NULL)
-                continue;
-
-            // XXX: icc will be written seperately?
-            if (TQString::compare(name, "icc") == 0)
-                continue;
-
-            TQByteArray rawdata;
-            rawdata.resize(profile->length);
-            memcpy(rawdata.data(), profile->datum, profile->length);
-
-            annotation = new KisAnnotation(TQString(name), "", rawdata);
-            Q_CHECK_PTR(annotation);
-
-            image -> addAnnotation(annotation);
-        }
-
-        // Attributes, since we have no hint on if this is an attribute or a profile
-        // annotation, we prefix it with 'krita_attribute:'. XXX This needs to be rethought!
-        // The joys of imagemagick. From at version 6.2.1 (dfaure has 6.2.0 and confirms the
-        // old way of doing things) they changed the src -> attributes
-        // to void* and require us to use the iterator functions. So we #if around that, *sigh*
-#if MagickLibVersion >= 0x621
-        const ImageAttribute * attr;
-        ResetImageAttributeIterator(src);
-        while ( (attr = GetNextImageAttribute(src)) ) {
-#else
-            ImageAttribute * attr = src -> attributes;
-            while (attr) {
-#endif
-                TQByteArray rawdata;
-                int len = strlen(attr -> value) + 1;
-                rawdata.resize(len);
-                memcpy(rawdata.data(), attr -> value, len);
-
-                annotation = new KisAnnotation(
-                    TQString("krita_attribute:%1").tqarg(TQString(attr -> key)), "", rawdata);
-                Q_CHECK_PTR(annotation);
-
-                image -> addAnnotation(annotation);
-#if MagickLibVersion < 0x620
-                attr = attr -> next;
-#endif
-            }
-
-#endif
-        }
-    }
-
-    void exportAnnotationsForImage(Image * dst, vKisAnnotationSP_it& it, vKisAnnotationSP_it& annotationsEnd)
-    {
-        while(it != annotationsEnd) {
-            if (!(*it) || (*it) -> type() == TQString()) {
-                    kdDebug(41008) << "Warning: empty annotation" << endl;
-                    ++it;
-                    continue;
-            }
-
-            kdDebug(41008) << "Trying to store annotation of type " << (*it) -> type() << " of size " << (*it) -> annotation() . size() << endl;
-
-            if ((*it) -> type().startsWith("krita_attribute:")) { // Attribute
-                if (!SetImageAttribute(dst,
-                                        (*it) -> type().mid(strlen("krita_attribute:")).ascii(),
-                                        (*it) -> annotation() . data()) ) {
-                        kdDebug(41008) << "Storing of attribute " << (*it) -> type() << "failed!\n";
-                    }
-            } else { // Profile
-                    unsigned char * profiledata = new unsigned char[(*it) -> annotation() . size()];
-                    memcpy( profiledata, (*it) -> annotation() . data(), (*it) -> annotation() . size());
-                    if (!ProfileImage(dst, (*it) -> type().ascii(),
-                                    profiledata, (*it) -> annotation() . size(), MagickFalse)) {
-                        kdDebug(41008) << "Storing failed!" << endl;
-                    }
-            }
-            ++it;
-        }
-    }
-
-
-    void InitGlobalMagick()
-    {
-        static bool init = false;
-
-        if (!init) {
-            KApplication *app = KApplication::kApplication();
-
-            InitializeMagick(*app -> argv());
-            atexit(DestroyMagick);
-            init = true;
-        }
-    }
-
-    /*
-     * ImageMagick progress monitor callback.  Unfortunately it doesn't support passing in some user
-     * data which complicates things quite a bit.  The plan was to allow the user start multiple
-     * import/scans if he/she so wished.  However, without passing user data it's not possible to tell
-     * on which task we have made progress on.
-     *
-     * Additionally, ImageMagick is thread-safe, not re-entrant... i.e. IM does not relinquish held
-     * locks when calling user defined callbacks, this means that the same thread going back into IM
-     * would deadlock since it would try to acquire locks it already holds.
-     */
-#if 0
-    MagickBooleanType monitor(const char *text, const ExtendedSignedIntegralType, const ExtendedUnsignedIntegralType, ExceptionInfo *)
-    {
-        KApplication *app = KApplication::kApplication();
-
-        Q_ASSERT(app);
-
-        if (app -> hasPendingEvents())
-            app -> processEvents();
-
-        printf("%s\n", text);
-        return MagickTrue;
-    }
-#else
-    unsigned int monitor(const char *text, const ExtendedSignedIntegralType, const ExtendedUnsignedIntegralType, ExceptionInfo *)
-    {
-        KApplication *app = KApplication::kApplication();
-
-        Q_ASSERT(app);
-
-        if (app -> hasPendingEvents())
-            app -> processEvents();
-
-        printf("%s\n", text);
-        return true;
-    }
-#endif
-
-
-
-KisImageMagickConverter::KisImageMagickConverter(KisDoc *doc, KisUndoAdapter *adapter)
-{
-    InitGlobalMagick();
-    init(doc, adapter);
-    SetMonitorHandler(monitor);
-    m_stop = false;
-}
-
-KisImageMagickConverter::~KisImageMagickConverter()
-{
-}
-
-KisImageBuilder_Result KisImageMagickConverter::decode(const KURL& uri, bool isBlob)
-{
-    Image *image;
-    Image *images;
-    ExceptionInfo ei;
-    ImageInfo *ii;
-
-    if (m_stop) {
-        m_img = 0;
-        return KisImageBuilder_RESULT_INTR;
-    }
-
-    GetExceptionInfo(&ei);
-    ii = CloneImageInfo(0);
-
-    if (isBlob) {
-
-        // TODO : Test.  Does BlobToImage even work?
-        Q_ASSERT(uri.isEmpty());
-        images = BlobToImage(ii, &m_data[0], m_data.size(), &ei);
-    } else {
-
-        qstrncpy(ii -> filename, TQFile::encodeName(uri.path()), MaxTextExtent - 1);
-
-        if (ii -> filename[MaxTextExtent - 1]) {
-            emit notifyProgressError();
-            return KisImageBuilder_RESULT_PATH;
-        }
-
-        images = ReadImage(ii, &ei);
-
-    }
-
-    if (ei.severity != UndefinedException)
-    {
-        CatchException(&ei);
-        kdDebug(41008) << "Exceptions happen when loading" << endl;
-        return KisImageBuilder_RESULT_FAILURE;
-    }
-    
-
-    if (images == 0) {
-        DestroyImageInfo(ii);
-        DestroyExceptionInfo(&ei);
-        emit notifyProgressError();
-        return KisImageBuilder_RESULT_FAILURE;
-    }
-
-    emit notifyProgressStage(i18n("Importing..."), 0);
-
-    m_img = 0;
-
-    while ((image = RemoveFirstImageFromList(&images))) {
-        if(image->rows == 0 or image->columns == 0) return KisImageBuilder_RESULT_FAILURE;
-        ViewInfo *vi = OpenCacheView(image);
-
-        // Determine image depth -- for now, all channels of an imported image are of the same depth
-        unsigned long imageDepth = image->depth;
-        kdDebug(41008) << "Image depth: " << imageDepth << "\n";
-
-        TQString csName;
-        KisColorSpace * cs = 0;
-        ColorspaceType colorspaceType;
-
-        // Determine image type -- rgb, grayscale or cmyk
-        if (GetImageType(image, &ei) == GrayscaleType || GetImageType(image, &ei) == GrayscaleMatteType) {
-            if (imageDepth == 8)
-                csName = "GRAYA";
-            else if ( imageDepth == 16 )
-                csName = "GRAYA16" ;
-            colorspaceType = GRAYColorspace;
-        }
-        else {
-            colorspaceType = image->colorspace;
-            csName = getColorSpaceName(image -> colorspace, imageDepth);
-        }
-
-        kdDebug(41008) << "image has " << csName << " colorspace\n";
-        
-        KisProfile * profile = getProfileForProfileInfo(image);
-        if (profile)
-        {
-            kdDebug(41008) << "image has embedded profile: " << profile -> productName() << "\n";
-            cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace(csName, profile);
-        }
-        else
-            cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID(csName,""),"");
-
-        if (!cs) {
-            kdDebug(41008) << "Krita does not support colorspace " << image -> colorspace << "\n";
-            CloseCacheView(vi);
-            DestroyImage(image);
-            DestroyExceptionInfo(&ei);
-            DestroyImageList(images);
-            DestroyImageInfo(ii);
-            emit notifyProgressError();
-            return KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE;
-        }
-
-        if( ! m_img) {
-            m_img = new KisImage(m_doc->undoAdapter(), image -> columns, image -> rows, cs, "built image");
-            Q_CHECK_PTR(m_img);
-            m_img->blockSignals(true); // Don't send out signals while we're building the image
-            
-            // XXX I'm assuming seperate layers won't have other profile things like EXIF
-            setAnnotationsForImage(image, m_img);
-        }
-
-        if (image -> columns && image -> rows) {
-
-            // Opacity (set by the photoshop import filter)
-            TQ_UINT8 opacity = OPACITY_OPAQUE;
-            const ImageAttribute * attr = GetImageAttribute(image, "[layer-opacity]");
-            if (attr != 0) {
-                opacity = TQ_UINT8_MAX - Downscale(TQString(attr->value).toInt());
-            }
-
-            KisPaintLayerSP layer = 0;
-
-            attr = GetImageAttribute(image, "[layer-name]");
-            if (attr != 0) {
-                layer = new KisPaintLayer(m_img, attr->value, opacity);
-            }
-            else {
-                layer = new KisPaintLayer(m_img, m_img -> nextLayerName(), opacity);
-            }
-
-            Q_ASSERT(layer);
-
-            // Layerlocation  (set by the photoshop import filter)
-            TQ_INT32 x_offset = 0;
-            TQ_INT32 y_offset = 0;
-
-            attr = GetImageAttribute(image, "[layer-xpos]");
-            if (attr != 0) {
-                x_offset = TQString(attr->value).toInt();
-            }
-
-            attr = GetImageAttribute(image, "[layer-ypos]");
-            if (attr != 0) {
-                y_offset = TQString(attr->value).toInt();
-            }
-
-
-            for (TQ_UINT32 y = 0; y < image->rows; y ++)
-            {
-                const PixelPacket *pp = AcquireCacheView(vi, 0, y, image->columns, 1, &ei);
-
-                if(!pp)
-                {
-                    CloseCacheView(vi);
-                    DestroyImageList(images);
-                    DestroyImageInfo(ii);
-                    DestroyExceptionInfo(&ei);
-                    emit notifyProgressError();
-                    return KisImageBuilder_RESULT_FAILURE;
-                }
-
-                IndexPacket * indexes = GetCacheViewIndexes(vi);
-
-                KisHLineIteratorPixel hiter = layer->paintDevice()->createHLineIterator(0, y, image->columns, true);
-
-                if (colorspaceType== CMYKColorspace) {
-                    if (imageDepth == 8) {
-                        int x = 0;
-                        while (!hiter.isDone())
-                        {
-                            TQ_UINT8 *ptr= hiter.rawData();
-                            *(ptr++) = Downscale(pp->red); // cyan
-                            *(ptr++) = Downscale(pp->green); // magenta
-                            *(ptr++) = Downscale(pp->blue); // yellow
-                            *(ptr++) = Downscale(indexes[x]); // Black
-// XXX: Warning! This ifdef messes up the paren matching big-time!
-#ifdef HAVE_MAGICK6
-                            if (image->matte != MagickFalse) {
-#else
-                            if (image->matte == true) {
-#endif
-                                *(ptr++) = OPACITY_OPAQUE - Downscale(pp->opacity);
-                            }
-                            else {
-                                *(ptr++) = OPACITY_OPAQUE;
-                            }
-                            ++x;
-                            pp++;
-                            ++hiter;
-                        }
-                    }
-                }
-                else if (colorspaceType == LABColorspace) {
-                    while(! hiter.isDone())
-                    {
-                        TQ_UINT16 *ptr = reinterpret_cast<TQ_UINT16 *>(hiter.rawData());
-                        
-                        *(ptr++) = ScaleQuantumToShort(pp->red);
-                        *(ptr++) = ScaleQuantumToShort(pp->green);
-                        *(ptr++) = ScaleQuantumToShort(pp->blue);
-                        *(ptr++) = 65535/*OPACITY_OPAQUE*/ - ScaleQuantumToShort(pp->opacity);
-
-                        pp++;
-                        ++hiter;
-                    }
-                }
-                else if (colorspaceType == RGBColorspace ||
-                             colorspaceType == sRGBColorspace ||
-                             colorspaceType == TransparentColorspace)
-                    {
-                        if (imageDepth == 8) {
-                            while(! hiter.isDone())
-                            {
-                                TQ_UINT8 *ptr= hiter.rawData();
-                                // XXX: not colorstrategy and bitdepth independent
-                                *(ptr++) = Downscale(pp->blue);
-                                *(ptr++) = Downscale(pp->green);
-                                *(ptr++) = Downscale(pp->red);
-                                *(ptr++) = OPACITY_OPAQUE - Downscale(pp->opacity);
-
-                                pp++;
-                                ++hiter;
-                            }
-                        }
-                        else if (imageDepth == 16) {
-                            while(! hiter.isDone())
-                            {
-                                TQ_UINT16 *ptr = reinterpret_cast<TQ_UINT16 *>(hiter.rawData());
-                                // XXX: not colorstrategy independent
-                                *(ptr++) = ScaleQuantumToShort(pp->blue);
-                                *(ptr++) = ScaleQuantumToShort(pp->green);
-                                *(ptr++) = ScaleQuantumToShort(pp->red);
-                                *(ptr++) = 65535/*OPACITY_OPAQUE*/ - ScaleQuantumToShort(pp->opacity);
-
-                                pp++;
-                                ++hiter;
-                            }
-                        }
-                    }
-                    else if ( colorspaceType == GRAYColorspace) {
-                        if (imageDepth == 8) {
-                            while(! hiter.isDone())
-                            {
-                                TQ_UINT8 *ptr= hiter.rawData();
-                                // XXX: not colorstrategy and bitdepth independent
-                                *(ptr++) = Downscale(pp->blue);
-                                *(ptr++) = OPACITY_OPAQUE - Downscale(pp->opacity);
-
-                                pp++;
-                                ++hiter;
-                            }
-                        }
-                        else if (imageDepth == 16) {
-                            while(! hiter.isDone())
-                            {
-                                TQ_UINT16 *ptr = reinterpret_cast<TQ_UINT16 *>(hiter.rawData());
-                                // XXX: not colorstrategy independent
-                                *(ptr++) = ScaleQuantumToShort(pp->blue);
-                                *(ptr++) = 65535/*OPACITY_OPAQUE*/ - ScaleQuantumToShort(pp->opacity);
-
-                                pp++;
-                                ++hiter;
-                            }
-                        }
-                    }
-
-                    emit notifyProgress(y * 100 / image->rows);
-
-                    if (m_stop) {
-                        CloseCacheView(vi);
-                        DestroyImage(image);
-                        DestroyImageList(images);
-                        DestroyImageInfo(ii);
-                        DestroyExceptionInfo(&ei);
-                        m_img = 0;
-                        return KisImageBuilder_RESULT_INTR;
-                    }
-                }
-                m_img->addLayer(layer.data(), m_img->rootLayer());
-                layer->paintDevice()->move(x_offset, y_offset);
-            }
-
-            emit notifyProgressDone();
-            CloseCacheView(vi);
-            DestroyImage(image);
-        }
-
-        emit notifyProgressDone();
-        DestroyImageList(images);
-        DestroyImageInfo(ii);
-        DestroyExceptionInfo(&ei);
-        return KisImageBuilder_RESULT_OK;
-    }
-
-    KisImageBuilder_Result KisImageMagickConverter::buildImage(const KURL& uri)
-    {
-        if (uri.isEmpty())
-            return KisImageBuilder_RESULT_NO_URI;
-
-        if (!KIO::NetAccess::exists(uri, false, tqApp -> mainWidget())) {
-            return KisImageBuilder_RESULT_NOT_EXIST;
-        }
-
-        KisImageBuilder_Result result = KisImageBuilder_RESULT_FAILURE;
-        TQString tmpFile;
-
-        if (KIO::NetAccess::download(uri, tmpFile, tqApp -> mainWidget())) {
-            KURL uriTF;
-            uriTF.setPath( tmpFile );
-            result = decode(uriTF, false);
-            KIO::NetAccess::removeTempFile(tmpFile);
-        }
-
-        return result;
-    }
-
-
-    KisImageSP KisImageMagickConverter::image()
-    {
-        return m_img;
-    }
-
-    void KisImageMagickConverter::init(KisDoc *doc, KisUndoAdapter *adapter)
-    {
-        m_doc = doc;
-        m_adapter = adapter;
-        m_job = 0;
-    }
-
-    KisImageBuilder_Result KisImageMagickConverter::buildFile(const KURL& uri, KisPaintLayerSP layer, vKisAnnotationSP_it annotationsStart, vKisAnnotationSP_it annotationsEnd)
-    {
-        Image *image;
-        ExceptionInfo ei;
-        ImageInfo *ii;
-
-        if (!layer)
-            return KisImageBuilder_RESULT_INVALID_ARG;
-
-        KisImageSP img = layer->image();
-        if (!img)
-            return KisImageBuilder_RESULT_EMPTY;
-
-        if (uri.isEmpty())
-            return KisImageBuilder_RESULT_NO_URI;
-
-        if (!uri.isLocalFile())
-            return KisImageBuilder_RESULT_NOT_LOCAL;
-
-
-        TQ_UINT32 layerBytesPerChannel = layer->paintDevice()->pixelSize() / layer->paintDevice()->nChannels();
-
-        GetExceptionInfo(&ei);
-
-        ii = CloneImageInfo(0);
-
-        qstrncpy(ii -> filename, TQFile::encodeName(uri.path()), MaxTextExtent - 1);
-
-        if (ii -> filename[MaxTextExtent - 1]) {
-            emit notifyProgressError();
-            return KisImageBuilder_RESULT_PATH;
-        }
-
-        if (!img -> width() || !img -> height())
-            return KisImageBuilder_RESULT_EMPTY;
-
-        if (layerBytesPerChannel < 2) {
-            ii->depth = 8;
-        }
-        else {
-            ii->depth = 16;
-        }
-
-        ii->colorspace = getColorTypeforColorSpace(layer->paintDevice()->colorSpace());
-
-        image = AllocateImage(ii);
-//         SetImageColorspace(image, ii->colorspace);
-        image -> columns = img -> width();
-        image -> rows = img -> height();
-
-        kdDebug(41008) << "Saving with colorspace " << image->colorspace << ", (" << layer->paintDevice()->colorSpace()->id().name() << ")\n";
-        kdDebug(41008) << "IM Image thinks it has depth: " << image->depth << "\n";
-
-#ifdef HAVE_MAGICK6
-        //    if ( layer-> hasAlpha() )
-        image -> matte = MagickTrue;
-        //    else
-        //        image -> matte = MagickFalse;
-#else
-        //    image -> matte = layer -> hasAlpha();
-        image -> matte = true;
-#endif
-
-        TQ_INT32 y, height, width;
-
-        height = img -> height();
-        width = img -> width();
-
-        bool alpha = true;
-        TQString ext = TQFileInfo(TQFile::encodeName(uri.path())).extension(false).upper();
-        if (ext == "BMP") {
-            alpha = false;
-            qstrncpy(ii->magick, "BMP2", MaxTextExtent - 1);
-        }
-        else if (ext == "RGB") {
-            qstrncpy(ii->magick, "SGI", MaxTextExtent - 1);
-        }
-
-        for (y = 0; y < height; y++) {
-
-            // Allocate pixels for this scanline
-            PixelPacket * pp = SetImagePixels(image, 0, y, width, 1);
-
-            if (!pp) {
-                DestroyExceptionInfo(&ei);
-                DestroyImage(image);
-                emit notifyProgressError();
-                return KisImageBuilder_RESULT_FAILURE;
-
-            }
-
-            KisHLineIterator it = layer->paintDevice()->createHLineIterator(0, y, width, false);
-            if (alpha)
-                SetImageType(image, TrueColorMatteType);
-            else
-                SetImageType(image,  TrueColorType);
-
-            if (image->colorspace== CMYKColorspace) {
-
-                IndexPacket * indexes = GetIndexes(image);
-                int x = 0;
-                if (layerBytesPerChannel == 2) {
-                    while (!it.isDone()) {
-
-                        const TQ_UINT16 *d = reinterpret_cast<const TQ_UINT16 *>(it.rawData());
-                        pp -> red = ScaleShortToQuantum(d[PIXEL_CYAN]);
-                        pp -> green = ScaleShortToQuantum(d[PIXEL_MAGENTA]);
-                        pp -> blue = ScaleShortToQuantum(d[PIXEL_YELLOW]);
-                        if (alpha)
-                            pp -> opacity = ScaleShortToQuantum(65535/*OPACITY_OPAQUE*/ - d[PIXEL_CMYK_ALPHA]);
-                        indexes[x] = ScaleShortToQuantum(d[PIXEL_BLACK]);
-                        x++;
-                        pp++;
-                        ++it;
-                    }
-                }
-                else {
-                    while (!it.isDone()) {
-
-                        TQ_UINT8 * d = it.rawData();
-                        pp -> red = Upscale(d[PIXEL_CYAN]);
-                        pp -> green = Upscale(d[PIXEL_MAGENTA]);
-                        pp -> blue = Upscale(d[PIXEL_YELLOW]);
-                        if (alpha)
-                            pp -> opacity = Upscale(OPACITY_OPAQUE - d[PIXEL_CMYK_ALPHA]);
-
-                        indexes[x]= Upscale(d[PIXEL_BLACK]);
-
-                        x++;
-                        pp++;
-                        ++it;
-                    }
-                }
-            }
-            else if (image->colorspace== RGBColorspace ||
-                     image->colorspace == sRGBColorspace ||
-                     image->colorspace == TransparentColorspace)
-            {
-                if (layerBytesPerChannel == 2) {
-                    while (!it.isDone()) {
-
-                        const TQ_UINT16 *d = reinterpret_cast<const TQ_UINT16 *>(it.rawData());
-                        pp -> red = ScaleShortToQuantum(d[PIXEL_RED]);
-                        pp -> green = ScaleShortToQuantum(d[PIXEL_GREEN]);
-                        pp -> blue = ScaleShortToQuantum(d[PIXEL_BLUE]);
-                        if (alpha)
-                            pp -> opacity = ScaleShortToQuantum(65535/*OPACITY_OPAQUE*/ - d[PIXEL_ALPHA]);
-
-                        pp++;
-                        ++it;
-                    }
-                }
-                else {
-                    while (!it.isDone()) {
-
-                        TQ_UINT8 * d = it.rawData();
-                        pp -> red = Upscale(d[PIXEL_RED]);
-                        pp -> green = Upscale(d[PIXEL_GREEN]);
-                        pp -> blue = Upscale(d[PIXEL_BLUE]);
-                        if (alpha)
-                            pp -> opacity = Upscale(OPACITY_OPAQUE - d[PIXEL_ALPHA]);
-
-                        pp++;
-                        ++it;
-                    }
-                }
-            }
-            else if (image->colorspace == GRAYColorspace)
-            {
-                SetImageType(image, GrayscaleMatteType);
-                if (layerBytesPerChannel == 2) {
-                    while (!it.isDone()) {
-
-                        const TQ_UINT16 *d = reinterpret_cast<const TQ_UINT16 *>(it.rawData());
-                        pp -> red = ScaleShortToQuantum(d[PIXEL_GRAY]);
-                        pp -> green = ScaleShortToQuantum(d[PIXEL_GRAY]);
-                        pp -> blue = ScaleShortToQuantum(d[PIXEL_GRAY]);
-                        if (alpha)
-                            pp -> opacity = ScaleShortToQuantum(65535/*OPACITY_OPAQUE*/ - d[PIXEL_GRAY_ALPHA]);
-
-                        pp++;
-                        ++it;
-                    }
-                }
-                else {
-                    while (!it.isDone()) {
-                        TQ_UINT8 * d = it.rawData();
-                        pp -> red = Upscale(d[PIXEL_GRAY]);
-                        pp -> green = Upscale(d[PIXEL_GRAY]);
-                        pp -> blue = Upscale(d[PIXEL_GRAY]);
-                        if (alpha)
-                            pp -> opacity = Upscale(OPACITY_OPAQUE - d[PIXEL_GRAY_ALPHA]);
-
-                        pp++;
-                        ++it;
-                    }
-                }
-            }
-            else {
-                kdDebug(41008) << "Unsupported image format\n";
-                return KisImageBuilder_RESULT_INVALID_ARG;
-            }
-
-            emit notifyProgressStage(i18n("Saving..."), y * 100 / height);
-
-#ifdef HAVE_MAGICK6
-            if (SyncImagePixels(image) == MagickFalse)
-                kdDebug(41008) << "Syncing pixels failed\n";
-#else
-            if (!SyncImagePixels(image))
-                kdDebug(41008) << "Syncing pixels failed\n";
-#endif
-        }
-
-        // set the annotations
-        exportAnnotationsForImage(image, annotationsStart, annotationsEnd);
-
-        // XXX: Write to a temp file, then have Krita use KIO to copy temp
-        // image to remote location.
-
-        WriteImage(ii, image);
-        DestroyExceptionInfo(&ei);
-        DestroyImage(image);
-        emit notifyProgressDone();
-        return KisImageBuilder_RESULT_OK;
-    }
-
-    void KisImageMagickConverter::ioData(KIO::Job *job, const TQByteArray& data)
-    {
-        if (data.isNull() || data.isEmpty()) {
-            emit notifyProgressStage(i18n("Loading..."), 0);
-            return;
-        }
-
-        if (m_data.empty()) {
-            Image *image;
-            ImageInfo *ii;
-            ExceptionInfo ei;
-
-            ii = CloneImageInfo(0);
-            GetExceptionInfo(&ei);
-            image = PingBlob(ii, data.data(), data.size(), &ei);
-
-            if (image == 0 || ei.severity == BlobError) {
-                DestroyExceptionInfo(&ei);
-                DestroyImageInfo(ii);
-                job -> kill();
-                emit notifyProgressError();
-                return;
-            }
-
-            DestroyImage(image);
-            DestroyExceptionInfo(&ei);
-            DestroyImageInfo(ii);
-            emit notifyProgressStage(i18n("Loading..."), 0);
-        }
-
-        Q_ASSERT(data.size() + m_data.size() <= m_size);
-        memcpy(&m_data[m_data.size()], data.data(), data.count());
-        m_data.resize(m_data.size() + data.count());
-        emit notifyProgressStage(i18n("Loading..."), m_data.size() * 100 / m_size);
-
-        if (m_stop)
-            job -> kill();
-    }
-
-    void KisImageMagickConverter::ioResult(KIO::Job *job)
-    {
-        m_job = 0;
-
-        if (job -> error())
-            emit notifyProgressError();
-
-        decode(KURL(), true);
-    }
-
-    void KisImageMagickConverter::ioTotalSize(KIO::Job * /*job*/, KIO::filesize_t size)
-    {
-        m_size = size;
-        m_data.reserve(size);
-        emit notifyProgressStage(i18n("Loading..."), 0);
-    }
-
-    void KisImageMagickConverter::cancel()
-    {
-        m_stop = true;
-    }
-
-    /**
-     * @name readFilters
-     * @return Provide a list of file formats the application can read.
-     */
-    TQString KisImageMagickConverter::readFilters()
-    {
-        TQString s;
-        TQString all;
-        TQString name;
-        TQString description;
-        unsigned long matches;
-
-/*#ifdef HAVE_MAGICK6
-#ifdef HAVE_OLD_GETMAGICKINFOLIST
-        const MagickInfo **mi;
-        mi = GetMagickInfoList("*", &matches);
-#else // HAVE_OLD_GETMAGICKINFOLIST
-        ExceptionInfo ei;
-        GetExceptionInfo(&ei);
-        const MagickInfo **mi;
-        mi = GetMagickInfoList("*", &matches, &ei);
-        DestroyExceptionInfo(&ei);
-#endif // HAVE_OLD_GETMAGICKINFOLIST
-#else // HAVE_MAGICK6*/
-        const MagickInfo *mi;
-        ExceptionInfo ei;
-        GetExceptionInfo(&ei);
-        mi = GetMagickInfo("*", &ei);
-        DestroyExceptionInfo(&ei);
-// #endif // HAVE_MAGICK6
-
-        if (!mi)
-            return s;
-
-/*#ifdef HAVE_MAGICK6
-        for (unsigned long i = 0; i < matches; i++) {
-            const MagickInfo *info = mi[i];
-            if (info -> stealth)
-                continue;
-
-            if (info -> decoder) {
-                name = info -> name;
-                description = info -> description;
-                kdDebug(41008) << "Found import filter for: " << name << "\n";
-
-                if (!description.isEmpty() && !description.tqcontains('/')) {
-                    all += "*." + name.lower() + " *." + name + " ";
-                    s += "*." + name.lower() + " *." + name + "|";
-                    s += i18n(description.utf8());
-                    s += "\n";
-                }
-            }
-        }
-#else*/
-        for (; mi; mi = reinterpret_cast<const MagickInfo*>(mi -> next)) {
-            if (mi -> stealth)
-                continue;
-            if (mi -> decoder) {
-                name = mi -> name;
-                description = mi -> description;
-                kdDebug(41008) << "Found import filter for: " << name << "\n";
-
-                if (!description.isEmpty() && !description.tqcontains('/')) {
-                    all += "*." + name.lower() + " *." + name + " ";
-                    s += "*." + name.lower() + " *." + name + "|";
-                    s += i18n(description.utf8());
-                    s += "\n";
-                }
-            }
-        }
-// #endif
-
-        all += "|" + i18n("All Images");
-        all += "\n";
-
-        return all + s;
-    }
-
-    TQString KisImageMagickConverter::writeFilters()
-    {
-        TQString s;
-        TQString all;
-        TQString name;
-        TQString description;
-        unsigned long matches;
-
-/*#ifdef HAVE_MAGICK6
-#ifdef HAVE_OLD_GETMAGICKINFOLIST
-        const MagickInfo **mi;
-        mi = GetMagickInfoList("*", &matches);
-#else // HAVE_OLD_GETMAGICKINFOLIST
-        ExceptionInfo ei;
-        GetExceptionInfo(&ei);
-        const MagickInfo **mi;
-        mi = GetMagickInfoList("*", &matches, &ei);
-        DestroyExceptionInfo(&ei);
-#endif // HAVE_OLD_GETMAGICKINFOLIST
-#else // HAVE_MAGICK6*/
-        const MagickInfo *mi;
-        ExceptionInfo ei;
-        GetExceptionInfo(&ei);
-        mi = GetMagickInfo("*", &ei);
-        DestroyExceptionInfo(&ei);
-// #endif // HAVE_MAGICK6
-
-        if (!mi) {
-            kdDebug(41008) << "Eek, no magick info!\n";
-            return s;
-        }
-
-/*#ifdef HAVE_MAGICK6
-        for (unsigned long i = 0; i < matches; i++) {
-            const MagickInfo *info = mi[i];
-            kdDebug(41008) << "Found export filter for: " << info -> name << "\n";
-            if (info -> stealth)
-                continue;
-
-            if (info -> encoder) {
-                name = info -> name;
-
-                description = info -> description;
-
-                if (!description.isEmpty() && !description.tqcontains('/')) {
-                    all += "*." + name.lower() + " *." + name + " ";
-                    s += "*." + name.lower() + " *." + name + "|";
-                    s += i18n(description.utf8());
-                    s += "\n";
-                }
-            }
-        }
-#else*/
-        for (; mi; mi = reinterpret_cast<const MagickInfo*>(mi -> next)) {
-            kdDebug(41008) << "Found export filter for: " << mi -> name << "\n";
-            if (mi -> stealth)
-                continue;
-
-            if (mi -> encoder) {
-                name = mi -> name;
-
-                description = mi -> description;
-
-                if (!description.isEmpty() && !description.tqcontains('/')) {
-                    all += "*." + name.lower() + " *." + name + " ";
-                    s += "*." + name.lower() + " *." + name + "|";
-                    s += i18n(description.utf8());
-                    s += "\n";
-                }
-            }
-        }
-// #endif
-
-
-        all += "|" + i18n("All Images");
-        all += "\n";
-
-        return all + s;
-    }
-
-#include "kis_image_magick_converter.moc"
-
diff --git a/filters/krita/gmagick/kis_image_magick_converter.h b/filters/krita/gmagick/kis_image_magick_converter.h
deleted file mode 100644
index 28bd94ce4..000000000
--- a/filters/krita/gmagick/kis_image_magick_converter.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_IMAGE_MAGICK_CONVERTER_H_
-#define KIS_IMAGE_MAGICK_CONVERTER_H_
-
-#include <tqobject.h>
-#include <tqvaluevector.h>
-
-#include <kio/job.h>
-
-#include "kis_types.h"
-#include "kis_global.h"
-#include "kis_progress_subject.h"
-
-class TQString;
-class KURL;
-class KisDoc;
-class KisNameServer;
-class KisUndoAdapter;
-/**
- * Image import/export plugins can use these results to report about success or failure.
- */
-enum KisImageBuilder_Result {
-        KisImageBuilder_RESULT_FAILURE = -400,
-        KisImageBuilder_RESULT_NOT_EXIST = -300,
-        KisImageBuilder_RESULT_NOT_LOCAL = -200,
-        KisImageBuilder_RESULT_BAD_FETCH = -100,
-        KisImageBuilder_RESULT_INVALID_ARG = -50,
-        KisImageBuilder_RESULT_OK = 0,
-        KisImageBuilder_RESULT_PROGRESS = 1,
-        KisImageBuilder_RESULT_EMPTY = 100,
-        KisImageBuilder_RESULT_BUSY = 150,
-        KisImageBuilder_RESULT_NO_URI = 200,
-        KisImageBuilder_RESULT_UNSUPPORTED = 300,
-        KisImageBuilder_RESULT_INTR = 400,
-        KisImageBuilder_RESULT_PATH = 500,
-        KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE = 600
-};
-
-
-
-/**
- * Build a KisImage representation of an image file.
- */
-class KisImageMagickConverter : public KisProgressSubject {
-    typedef TQObject super;
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    KisImageMagickConverter(KisDoc *doc, KisUndoAdapter *adapter);
-    virtual ~KisImageMagickConverter();
-
-public slots:
-    virtual void cancel();
-
-public:
-    KisImageBuilder_Result buildImage(const KURL& uri);
-    KisImageBuilder_Result buildFile(const KURL& uri, KisPaintLayerSP layer, vKisAnnotationSP_it annotationsStart, vKisAnnotationSP_it annotationsEnd);
-    KisImageSP image();
-
-public:
-    static TQString readFilters();
-    static TQString writeFilters();
-
-private slots:
-    void ioData(KIO::Job *job, const TQByteArray& data);
-    void ioResult(KIO::Job *job);
-    void ioTotalSize(KIO::Job *job, KIO::filesize_t size);
-
-private:
-    KisImageMagickConverter(const KisImageMagickConverter&);
-    KisImageMagickConverter& operator=(const KisImageMagickConverter&);
-    void init(KisDoc *doc, KisUndoAdapter *adapter);
-    KisImageBuilder_Result decode(const KURL& uri, bool isBlob);
-
-private:
-    KisImageSP m_img;
-    KisDoc *m_doc;
-    KisUndoAdapter *m_adapter;
-    TQValueVector<TQ_UINT8> m_data;
-    KIO::TransferJob *m_job;
-    KIO::filesize_t m_size;
-    bool m_stop;
-};
-
-#endif // KIS_IMAGE_MAGICK_CONVERTER_H_
-
diff --git a/filters/krita/gmagick/krita_magick.desktop b/filters/krita/gmagick/krita_magick.desktop
deleted file mode 100644
index 486b3645d..000000000
--- a/filters/krita/gmagick/krita_magick.desktop
+++ /dev/null
@@ -1,57 +0,0 @@
-[Desktop Entry]
-Name=Krita
-Name[hi]=के-रिता
-Name[km]= Krita
-Name[lo]=ກຣິຕາ
-Name[ne]=क्रिता
-Exec=krita %u
-GenericName=Painting and Image Editing Application
-GenericName[bg]=Редактор на графични изображения
-GenericName[ca]=Programa de dibuix i manipulació d'imatges
-GenericName[cs]=Malování a úpravy obrázků
-GenericName[cy]=Cymhwysiad Peintio Golygu Delweddau
-GenericName[da]=Male- og billedredigeringsprogram
-GenericName[de]=Mal- und Bildbearbeitungsprogramm
-GenericName[el]=Εφαρμογή επεξεργασίας εικόνων
-GenericName[eo]=Aplikaĵo por Pentrado kaj Bildredaktado
-GenericName[es]=Aplicación de pintura y de edición de imágenes
-GenericName[et]=Joonistamise ja pilditöötluse rakendus
-GenericName[eu]=Irudien marrazketa eta ediziorako aplikazioa
-GenericName[fa]=کاربرد ویرایش تصویر و نقاشی
-GenericName[fi]=Maalaus- ja kuvankäsitelyohjelma
-GenericName[fr]=Application de dessin et de manipulation d'images
-GenericName[fy]=Ofbyldingsmanipulaasje
-GenericName[gl]=Aplicación de Pintura e Manipulación de Imaxes
-GenericName[he]=יישום לציור ועריכת תמונות
-GenericName[hr]=Aplikacija za obradu slika i fotografija
-GenericName[hu]=Képszerkesztő
-GenericName[is]=Málun og myndritill
-GenericName[it]=Applicazione di disegno e di modifica delle immagini
-GenericName[ja]=描画と画像編集のためのアプリケーション
-GenericName[km]=កម្មវិធី​គូរ​គំនូរ និង​កែសម្រួល​រូបភាព
-GenericName[lv]=Zīmēšanas un attēlu apstrādes programma
-GenericName[nb]=Program for tegning og bilderedigering
-GenericName[nds]=Programm för't Malen un Bildbewerken
-GenericName[ne]=पेन्टीङ्ग र छवि सम्पादन अनुप्रयोग
-GenericName[nl]=Afbeeldingsmanipulatie
-GenericName[pl]=Program do edycji zdjęć oraz rysunków
-GenericName[pt]=Aplicação de Pintura e Edição de Imagens
-GenericName[pt_BR]=Aplicação de Pintura e Edição de Imagens
-GenericName[ru]=Растровые изображения
-GenericName[se]=Málen- ja govvagieđahallanprográmma
-GenericName[sk]=Program pre tvorbu a úpravu obrázkov
-GenericName[sl]=Program za risanje in obdelavo slik
-GenericName[sr]=Програм за цртање и уређивање слика
-GenericName[sr@Latn]=Program za crtanje i uređivanje slika
-GenericName[sv]=Målnings- och bildredigeringsprogram
-GenericName[uk]=Програма для малювання і редагування зображень
-GenericName[uz]=Rasmlar bilan ishlaydigan dastur
-GenericName[uz@cyrillic]=Расмлар билан ишлайдиган дастур
-GenericName[zh_CN]=绘图和图像编辑应用程序
-GenericName[zh_TW]=繪圖與影像處理程式
-MimeType=image/x-xcf-gimp;image/gif;image/cgm;image/x-bmp;image/x-ico;image/x-pcx;image/x-portable-pixmap;image/x-targa;image/x-xbm;image/x-xcf;image/x-xpm;image/x-vnd.adobe.photoshop;image/x-rgb
-Type=Application
-Icon=krita
-Categories=
-X-KDE-StartupNotify=true
-X-DCOP-ServiceType=Multi
diff --git a/filters/krita/gmagick/krita_magick_export.desktop b/filters/krita/gmagick/krita_magick_export.desktop
deleted file mode 100644
index cd348c6ab..000000000
--- a/filters/krita/gmagick/krita_magick_export.desktop
+++ /dev/null
@@ -1,55 +0,0 @@
-[Desktop Entry]
-Name=Krita Magick Export Filter
-Name[bg]=Филтър за експортиране от Krita в Magick
-Name[br]=Sil ezporzh Magick evit Krita
-Name[ca]=Filtre d'exportació Magick per a Krita
-Name[cy]=Hidl Allforio Magick Krita
-Name[da]=Krita Magick-eksportfilter
-Name[de]=Krita Magick-Exportfilter
-Name[el]=Φίλτρο εξαγωγής Magick του Krita
-Name[eo]=Krita Magick-eksportfiltrilo
-Name[es]=Filtro de exportación a Magick de Krita
-Name[et]=Krita Magick'i ekspordifilter
-Name[eu]=Krita-ren Magick esportaziorako iragazkia
-Name[fa]=پالایۀ صادرات Krita Magick
-Name[fi]=Krita Magick -vientisuodin
-Name[fr]=Filtre d'exportation Magick de Krita
-Name[fy]=Krita Magick Eksportfilter
-Name[ga]=Scagaire Easpórtála Magick Krita
-Name[gl]=Filtro de Exportación de Magick para Krita
-Name[he]=מסנן יצוא מ־Krita ל־Magick
-Name[hr]=Krita Magick filtar izvoza
-Name[hu]=Krita Magick exportszűrő
-Name[is]=Krita Magick útflutningssía
-Name[it]=Filtro di esportazione Magick per Krita
-Name[ja]=Krita Magick エクスポートフィルタ
-Name[km]=តម្រង​នាំចេញ Magick សម្រាប់ Krita
-Name[lt]=Krita Magick eksportavimo filtras
-Name[lv]=Krita Magick eksporta filtrs
-Name[ms]=Penapis Eksport Krita Magick
-Name[nb]=Magick-eksportfilter for Krita
-Name[nds]=Magick-Exportfilter för Krita
-Name[ne]=क्रिता म्याजिक निर्यात फिल्टर
-Name[nl]=Krita Magick Exportfilter
-Name[nn]=Magick-eksportfilter for Krita
-Name[pl]=Filtr eksportu do formatu Magick z Krita
-Name[pt]=Filtro de Exportação de Magick para o Krita
-Name[pt_BR]=Filtro de exportação Magick para o Krita
-Name[ru]=Фильтр экспорта рисунков Krita в Magick
-Name[se]=Krita Magick-olggosfievrridansilli
-Name[sk]=Magick filter pre export do Krita
-Name[sl]=Izvozni filter Magick za Krito
-Name[sr]=Krita-ин филтер за извоз у Magick
-Name[sr@Latn]=Krita-in filter za izvoz u Magick
-Name[sv]=Krita Magick-exportfilter
-Name[uk]=Фільтр експорту Magick для Krita
-Name[uz]=Krita Magick eksport filteri
-Name[uz@cyrillic]=Krita Magick экспорт филтери
-Name[zh_CN]=Krita Magick 导出过滤器
-Name[zh_TW]=Krita Magick 匯出過濾程式
-X-KDE-Export=image/gif,image/cgm,image/x-pcx,image/x-portable-pixmap,image/x-targa,image/x-xbm,image/x-xpm,image/x-rgb,image/x-eps
-ServiceTypes=KOfficeFilter
-Type=Service
-X-KDE-Import=application/x-krita
-X-KDE-Weight=1
-X-KDE-Library=libkritagmagickexport
diff --git a/filters/krita/gmagick/krita_magick_import.desktop b/filters/krita/gmagick/krita_magick_import.desktop
deleted file mode 100644
index 486a094b4..000000000
--- a/filters/krita/gmagick/krita_magick_import.desktop
+++ /dev/null
@@ -1,61 +0,0 @@
-[Desktop Entry]
-Type=Service
-Name=Krita Magick Import Filter
-Name[bg]=Филтър за импортиране от Magick в Krita
-Name[br]=Sil enporzh Magick evit Krita
-Name[ca]=Filtre d'importació Magick per a Krita
-Name[cs]=Importní filtr formátu Magick pro Kritu
-Name[cy]=Hidl Mewnforio Krita Magick
-Name[da]=Krita Magick-importfilter
-Name[de]=Krita Magick-Importfilter
-Name[el]=Φίλτρο εισαγωγής Magick του Krita
-Name[eo]=Krita Magick-importfiltrilo
-Name[es]=Filtro de importación a Magick de Krita
-Name[et]=Krita Magick'i impordifilter
-Name[eu]=Krita-ren Magick inportaziorako iragazkia
-Name[fa]=پالایۀ واردات Krita Magick
-Name[fi]=Krita Magick-tuontisuodin
-Name[fr]=Filtre d'importation Magick de Krita
-Name[fy]=Krita Magick Ymportfilter
-Name[ga]=Scagaire Iompórtála Magick Krita
-Name[gl]=Filtro de Importación de Magick para Krita
-Name[he]=מסנן יבוא מ־Magick ל־Krita
-Name[hi]=के-रीता मैजिक आयात फ़िल्टर
-Name[hr]=Krita Magick filtar uvoza
-Name[hu]=Krita Magick importszűrő
-Name[is]=Krita Magick innflutningssía
-Name[it]=Filtro di importazione Magick per Krita
-Name[ja]=Krita Magick インポートフィルタ
-Name[km]=តម្រង​នាំចូល Magick សម្រាប់ Krita
-Name[lo]= ຕົວຕອງການນຳເຂົ້າ WML ຂອງເອກະສານຂໍ້ຄວາມ K
-Name[lt]=Krita Magick importavimo filtras
-Name[lv]=Krita Magick importa filtrs
-Name[ms]=Penapis Import Krita Magick
-Name[nb]=Magick-importfilter for Krita
-Name[nds]=Magick-Importfilter för Krita
-Name[ne]=क्रिता म्याजिक आयात फिल्टर
-Name[nl]=Krita Magick Importfilter
-Name[nn]=Magick-importfilter for Krita
-Name[pl]=Filtr importu formatu Magick do Krita
-Name[pt]=Filtro de Importação de Magick para o Krita
-Name[pt_BR]=Filtro de importação Magick para o Krita
-Name[ru]=Фильтр импорта рисунков Magick в Krita
-Name[se]=Krita Magick-sisafievrridansilli
-Name[sk]=Magick filter pre import do Krita
-Name[sl]=Uvozni filter Magick za Krito
-Name[sr]=Krita-ин филтер за увоз из Magick-а
-Name[sr@Latn]=Krita-in filter za uvoz iz Magick-a
-Name[sv]=Krita Magick-importfilter
-Name[ta]=Krita மாயk இறக்குமதி வடிகட்டி
-Name[tg]=Филтри Воридоти Krita Magick
-Name[tr]=Krita Magick Alma Filtresi
-Name[uk]=Фільтр імпорту Magick для Krita
-Name[uz]=Krita Magick import filteri
-Name[uz@cyrillic]=Krita Magick импорт филтери
-Name[zh_CN]=Krita Magick 导入过滤器
-Name[zh_TW]=Krita Magick 匯入過濾程式
-X-KDE-Export=application/x-krita
-X-KDE-Import=image/x-xcf-gimp,image/gif,image/cgm,image/x-bmp,image/x-ico,image/x-pcx,image/x-portable-pixmap,image/x-targa,image/x-xbm,image/x-xcf,image/x-xpm,image/x-vnd.adobe.photoshop,image/x-rgb,image/x-eps
-X-KDE-Weight=1
-X-KDE-Library=libkritagmagickimport
-ServiceTypes=KOfficeFilter
diff --git a/filters/krita/gmagick/magickexport.cpp b/filters/krita/gmagick/magickexport.cpp
deleted file mode 100644
index 83965d658..000000000
--- a/filters/krita/gmagick/magickexport.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#include <magickexport.h>
-#include <kgenericfactory.h>
-#include <KoDocument.h>
-#include <KoFilterChain.h>
-
-#include <kis_doc.h>
-#include <kis_paint_layer.h>
-#include <kis_image.h>
-#include <kis_annotation.h>
-#include <kis_types.h>
-#include <kis_image_magick_converter.h>
-
-typedef KGenericFactory<MagickExport, KoFilter> MagickExportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkritagmagickexport, MagickExportFactory("kofficefilters"))
-
-MagickExport::MagickExport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-MagickExport::~MagickExport()
-{
-}
-
-KoFilter::ConversiontqStatus MagickExport::convert(const TQCString& from, const TQCString& to)
-{
-    kdDebug(41008) << "magick export! From: " << from << ", To: " << to << "\n";
-    
-    if (from != "application/x-krita")
-        return KoFilter::NotImplemented;
-
-    // XXX: Add dialog about flattening layers here
-
-    KisDoc *output = dynamic_cast<KisDoc*>(m_chain->inputDocument());
-    TQString filename = m_chain->outputFile();
-    
-    if (!output)
-        return KoFilter::CreationError;
-    
-    if (filename.isEmpty()) return KoFilter::FileNotFound;
-
-    KURL url;
-    url.setPath(filename);
-
-    KisImageSP img = output->currentImage();
-
-    KisImageMagickConverter ib(output, output->undoAdapter());
-
-    KisPaintDeviceSP pd = new KisPaintDevice(*img->projection());
-    KisPaintLayerSP l = new KisPaintLayer(img, "projection", OPACITY_OPAQUE, pd);
-    
-    vKisAnnotationSP_it beginIt = img->beginAnnotations();
-    vKisAnnotationSP_it endIt = img->endAnnotations();
-    if (ib.buildFile(url, l, beginIt, endIt) == KisImageBuilder_RESULT_OK) {
-        return KoFilter::OK;
-    }
-    return KoFilter::InternalError;
-}
-
-#include <magickexport.moc>
-
diff --git a/filters/krita/gmagick/magickexport.h b/filters/krita/gmagick/magickexport.h
deleted file mode 100644
index 6ea7e2384..000000000
--- a/filters/krita/gmagick/magickexport.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef MAGICKEXPORT_H_
-#define MAGICKEXPORT_H_
-
-#include <KoFilter.h>
-
-class MagickExport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    MagickExport(KoFilter *tqparent, const char *name, const TQStringList&);
-    virtual ~MagickExport();
-
-public:
-    virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif // MAGICKEXPORT_H_
-
diff --git a/filters/krita/gmagick/magickimport.cpp b/filters/krita/gmagick/magickimport.cpp
deleted file mode 100644
index c1f922db3..000000000
--- a/filters/krita/gmagick/magickimport.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#include <tqstring.h>
- 
-#include <magickimport.h>
-#include <kgenericfactory.h>
-#include <KoDocument.h>
-#include <KoFilterChain.h>
-
-#include <kis_doc.h>
-#include <kis_view.h>
-#include <kis_image_magick_converter.h>
-#include <kis_progress_display_interface.h>
-#include <kis_image.h>
-#include <kis_layer.h>
-
-typedef KGenericFactory<MagickImport, KoFilter> MagickImportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkritagmagickimport, MagickImportFactory("kofficefilters"))
-
-MagickImport::MagickImport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-MagickImport::~MagickImport()
-{
-}
-
-KoFilter::ConversiontqStatus MagickImport::convert(const TQCString&, const TQCString& to)
-{
-    kdDebug(41008) << "Importing using MagickImport!\n";
-
-    if (to != "application/x-krita")
-        return KoFilter::BadMimeType;
-
-    KisDoc * doc = dynamic_cast<KisDoc*>(m_chain -> outputDocument());
-    KisView * view = static_cast<KisView*>(doc -> views().getFirst());
-    
-    TQString filename = m_chain -> inputFile();
-    
-    if (!doc)
-        return KoFilter::CreationError;
-
-    doc -> prepareForImport();
-        
-
-    if (!filename.isEmpty()) {
-    
-        KURL url;
-        url.setPath(filename);
-
-        if (url.isEmpty())
-            return KoFilter::FileNotFound;
-            
-        KisImageMagickConverter ib(doc, doc -> undoAdapter());
-
-        if (view != 0)
-            view -> canvasSubject() ->  progressDisplay() -> setSubject(&ib, false, true);
-
-        switch (ib.buildImage(url)) {
-            case KisImageBuilder_RESULT_UNSUPPORTED:
-                return KoFilter::NotImplemented;
-                break;
-            case KisImageBuilder_RESULT_INVALID_ARG:
-                return KoFilter::BadMimeType;
-                break;
-            case KisImageBuilder_RESULT_NO_URI:
-            case KisImageBuilder_RESULT_NOT_LOCAL:
-                return KoFilter::FileNotFound;
-                break;
-            case KisImageBuilder_RESULT_BAD_FETCH:
-            case KisImageBuilder_RESULT_EMPTY:
-                return KoFilter::ParsingError;                
-                break;
-            case KisImageBuilder_RESULT_FAILURE:
-                return KoFilter::InternalError;
-                break;
-            case KisImageBuilder_RESULT_OK:
-                doc -> setCurrentImage( ib.image());
-                return KoFilter::OK;
-            default:
-                break;
-        }
-
-    }
-    return KoFilter::StorageCreationError;
-}
-
-#include <magickimport.moc>
-
diff --git a/filters/krita/gmagick/magickimport.h b/filters/krita/gmagick/magickimport.h
deleted file mode 100644
index 3373f1297..000000000
--- a/filters/krita/gmagick/magickimport.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef MAGICKIMPORT_H_
-#define MAGICKIMPORT_H_
-
-#include <KoFilter.h>
-
-class MagickImport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    MagickImport(KoFilter *tqparent, const char *name, const TQStringList&);
-    virtual ~MagickImport();
-
-public:
-    virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif // MAGICKIMPORT_H_
-
diff --git a/filters/krita/jpeg/Makefile.am b/filters/krita/jpeg/Makefile.am
deleted file mode 100644
index 6f14dd866..000000000
--- a/filters/krita/jpeg/Makefile.am
+++ /dev/null
@@ -1,51 +0,0 @@
-noinst_LTLIBRARIES = libkritaconverter.la
-kde_module_LTLIBRARIES = libkritajpegimport.la libkritajpegexport.la
-
-libkritaconverter_la_LDFLAGS = $(all_libraries) -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritaconverter_la_SOURCES = kis_jpeg_converter.cc iccjpeg.c
-libkritaconverter_la_LIBADD = $(top_builddir)/filters/krita/libkisexif/libkisexif.la
-
-libkritajpegexport_la_LDFLAGS = -avoid-version -module -no-undefined \
-	$(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritajpegexport_la_LIBADD = $(top_builddir)/krita/libkritacommon.la \
-	libkritaconverter.la $(KOFFICE_LIBS) -ljpeg -lexif
-
-libkritajpegimport_la_LDFLAGS = -avoid-version -module -no-undefined \
-	$(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritajpegimport_la_LIBADD = $(top_builddir)/krita/libkritacommon.la \
-	libkritaconverter.la $(KOFFICE_LIBS) -ljpeg -lexif
-
-INCLUDES= \
-	-I$(srcdir) \
-	 $(KOFFICE_INCLUDES) \
-	-I$(top_srcdir)/krita \
-	-I$(top_srcdir)/krita/core \
-	-I$(top_srcdir)/krita/sdk \
-	-I$(top_srcdir)/krita/core/tiles \
-	-I$(top_srcdir)/krita/kritacolor \
-	-I$(top_srcdir)/krita/ui \
-	-I$(top_srcdir)/filters/krita/libkisexif \
-        $(KOFFICE_INCLUDES) -I$(interfacedir) \
-        $(KOPAINTER_INCLUDES) \
-	$(all_includes) 
-
-service_DATA = krita_jpeg_import.desktop krita_jpeg_export.desktop
-servicedir = $(kde_servicesdir)
-
-kdelnk_DATA = krita_jpeg.desktop
-kdelnkdir = $(kde_appsdir)/.hidden
-
-libkritajpegimport_la_SOURCES = kis_jpeg_import.cc
-libkritajpegexport_la_SOURCES = kis_wdg_options_jpeg.ui kis_jpeg_export.cc
-
-METASOURCES = AUTO
-
-
-KDE_CXXFLAGS = $(USE_EXCEPTIONS)
-
diff --git a/filters/krita/jpeg/configure.in.bot b/filters/krita/jpeg/configure.in.bot
deleted file mode 100644
index 8ebad273c..000000000
--- a/filters/krita/jpeg/configure.in.bot
+++ /dev/null
@@ -1,7 +0,0 @@
-if test -z "$LIBJPEG" -o -z "$LIBEXIF"; then
-  echo ""
-  echo "You're missing libjpeg or libexif 0.6.12 or later (binaries and/or headers)."
-  echo "krita won't be able to import/export jpeg"
-  echo ""
-  all_tests=bad
-fi
diff --git a/filters/krita/jpeg/iccjpeg.c b/filters/krita/jpeg/iccjpeg.c
deleted file mode 100644
index 7abe1ff40..000000000
--- a/filters/krita/jpeg/iccjpeg.c
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Little cms
- * Copyright (C) 1998-2004 Marti Maria
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
- * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * iccprofile.c
- *
- * This file provides code to read and write International Color Consortium
- * (ICC) device profiles embedded in JFIF JPEG image files.  The ICC has
- * defined a standard format for including such data in JPEG "APP2" markers.
- * The code given here does not know anything about the internal structure
- * of the ICC profile data; it just knows how to put the profile data into
- * a JPEG file being written, or get it back out when reading.
- *
- * This code depends on new features added to the IJG JPEG library as of
- * IJG release 6b; it will not compile or work with older IJG versions.
- *
- * NOTE: this code would need surgery to work on 16-bit-int machines
- * with ICC profiles exceeding 64K bytes in size.  If you need to do that,
- * change all the "unsigned int" variables to "INT32".  You'll also need
- * to find a malloc() replacement that can allocate more than 64K.
- */
-
-#include "iccjpeg.h"
-#include <stdlib.h>			/* define malloc() */
-
-
-/*
- * Since an ICC profile can be larger than the maximum size of a JPEG marker
- * (64K), we need provisions to split it into multiple markers.  The format
- * defined by the ICC specifies one or more APP2 markers containing the
- * following data:
- *	Identifying string	ASCII "ICC_PROFILE\0"  (12 bytes)
- *	Marker sequence number	1 for first APP2, 2 for next, etc (1 byte)
- *	Number of markers	Total number of APP2's used (1 byte)
- *      Profile data		(remainder of APP2 data)
- * Decoders should use the marker sequence numbers to reassemble the profile,
- * rather than assuming that the APP2 markers appear in the correct sequence.
- */
-
-#define ICC_MARKER  (JPEG_APP0 + 2)	/* JPEG marker code for ICC */
-#define ICC_OVERHEAD_LEN  14		/* size of non-profile data in APP2 */
-#define MAX_BYTES_IN_MARKER  65533	/* maximum data len of a JPEG marker */
-#define MAX_DATA_BYTES_IN_MARKER  (MAX_BYTES_IN_MARKER - ICC_OVERHEAD_LEN)
-
-
-/*
- * This routine writes the given ICC profile data into a JPEG file.
- * It *must* be called AFTER calling jpeg_start_compress() and BEFORE
- * the first call to jpeg_write_scanlines().
- * (This ordering ensures that the APP2 marker(s) will appear after the
- * SOI and JFIF or Adobe markers, but before all else.)
- */
-
-void
-write_icc_profile (j_compress_ptr cinfo,
-		   const JOCTET *icc_data_ptr,
-		   unsigned int icc_data_len)
-{
-  unsigned int num_markers;	/* total number of markers we'll write */
-  int cur_marker = 1;		/* per spec, counting starts at 1 */
-  unsigned int length;		/* number of bytes to write in this marker */
-
-  /* Calculate the number of markers we'll need, rounding up of course */
-  num_markers = icc_data_len / MAX_DATA_BYTES_IN_MARKER;
-  if (num_markers * MAX_DATA_BYTES_IN_MARKER != icc_data_len)
-    num_markers++;
-
-  while (icc_data_len > 0) {
-    /* length of profile to put in this marker */
-    length = icc_data_len;
-    if (length > MAX_DATA_BYTES_IN_MARKER)
-      length = MAX_DATA_BYTES_IN_MARKER;
-    icc_data_len -= length;
-
-    /* Write the JPEG marker header (APP2 code and marker length) */
-    jpeg_write_m_header(cinfo, ICC_MARKER,
-			(unsigned int) (length + ICC_OVERHEAD_LEN));
-
-    /* Write the marker identifying string "ICC_PROFILE" (null-terminated).
-     * We code it in this less-than-transparent way so that the code works
-     * even if the local character set is not ASCII.
-     */
-    jpeg_write_m_byte(cinfo, 0x49);
-    jpeg_write_m_byte(cinfo, 0x43);
-    jpeg_write_m_byte(cinfo, 0x43);
-    jpeg_write_m_byte(cinfo, 0x5F);
-    jpeg_write_m_byte(cinfo, 0x50);
-    jpeg_write_m_byte(cinfo, 0x52);
-    jpeg_write_m_byte(cinfo, 0x4F);
-    jpeg_write_m_byte(cinfo, 0x46);
-    jpeg_write_m_byte(cinfo, 0x49);
-    jpeg_write_m_byte(cinfo, 0x4C);
-    jpeg_write_m_byte(cinfo, 0x45);
-    jpeg_write_m_byte(cinfo, 0x0);
-
-    /* Add the sequencing info */
-    jpeg_write_m_byte(cinfo, cur_marker);
-    jpeg_write_m_byte(cinfo, (int) num_markers);
-
-    /* Add the profile data */
-    while (length--) {
-      jpeg_write_m_byte(cinfo, *icc_data_ptr);
-      icc_data_ptr++;
-    }
-    cur_marker++;
-  }
-}
-
-
-/*
- * Prepare for reading an ICC profile
- */
-
-void
-setup_read_icc_profile (j_decompress_ptr cinfo)
-{
-  /* Tell the library to keep any APP2 data it may tqfind */
-  jpeg_save_markers(cinfo, ICC_MARKER, 0xFFFF);
-}
-
-
-/*
- * Handy subroutine to test whether a saved marker is an ICC profile marker.
- */
-
-static boolean
-marker_is_icc (jpeg_saved_marker_ptr marker)
-{
-  return
-    marker->marker == ICC_MARKER &&
-    marker->data_length >= ICC_OVERHEAD_LEN &&
-    /* verify the identifying string */
-    GETJOCTET(marker->data[0]) == 0x49 &&
-    GETJOCTET(marker->data[1]) == 0x43 &&
-    GETJOCTET(marker->data[2]) == 0x43 &&
-    GETJOCTET(marker->data[3]) == 0x5F &&
-    GETJOCTET(marker->data[4]) == 0x50 &&
-    GETJOCTET(marker->data[5]) == 0x52 &&
-    GETJOCTET(marker->data[6]) == 0x4F &&
-    GETJOCTET(marker->data[7]) == 0x46 &&
-    GETJOCTET(marker->data[8]) == 0x49 &&
-    GETJOCTET(marker->data[9]) == 0x4C &&
-    GETJOCTET(marker->data[10]) == 0x45 &&
-    GETJOCTET(marker->data[11]) == 0x0;
-}
-
-
-/*
- * See if there was an ICC profile in the JPEG file being read;
- * if so, reassemble and return the profile data.
- *
- * TRUE is returned if an ICC profile was found, FALSE if not.
- * If TRUE is returned, *icc_data_ptr is set to point to the
- * returned data, and *icc_data_len is set to its length.
- *
- * IMPORTANT: the data at **icc_data_ptr has been allocated with malloc()
- * and must be freed by the caller with free() when the caller no longer
- * needs it.  (Alternatively, we could write this routine to use the
- * IJG library's memory allocator, so that the data would be freed implicitly
- * at jpeg_finish_decompress() time.  But it seems likely that many apps
- * will prefer to have the data stick around after decompression finishes.)
- *
- * NOTE: if the file contains invalid ICC APP2 markers, we just silently
- * return FALSE.  You might want to issue an error message instead.
- */
-
-boolean
-read_icc_profile (j_decompress_ptr cinfo,
-		  JOCTET **icc_data_ptr,
-		  unsigned int *icc_data_len)
-{
-  jpeg_saved_marker_ptr marker;
-  int num_markers = 0;
-  int seq_no;
-  JOCTET *icc_data;
-  unsigned int total_length;
-#define MAX_SEQ_NO  255		/* sufficient since marker numbers are bytes */
-  char marker_present[MAX_SEQ_NO+1];	  /* 1 if marker found */
-  unsigned int data_length[MAX_SEQ_NO+1]; /* size of profile data in marker */
-  unsigned int data_offset[MAX_SEQ_NO+1]; /* offset for data in marker */
-
-  *icc_data_ptr = NULL;		/* avoid confusion if FALSE return */
-  *icc_data_len = 0;
-
-  /* This first pass over the saved markers discovers whether there are
-   * any ICC markers and verifies the consistency of the marker numbering.
-   */
-
-  for (seq_no = 1; seq_no <= MAX_SEQ_NO; seq_no++)
-    marker_present[seq_no] = 0;
-
-  for (marker = cinfo->marker_list; marker != NULL; marker = marker->next) {
-    if (marker_is_icc(marker)) {
-      if (num_markers == 0)
-	num_markers = GETJOCTET(marker->data[13]);
-      else if (num_markers != GETJOCTET(marker->data[13]))
-	return FALSE;		/* inconsistent num_markers fields */
-      seq_no = GETJOCTET(marker->data[12]);
-      if (seq_no <= 0 || seq_no > num_markers)
-	return FALSE;		/* bogus sequence number */
-      if (marker_present[seq_no])
-	return FALSE;		/* duplicate sequence numbers */
-      marker_present[seq_no] = 1;
-      data_length[seq_no] = marker->data_length - ICC_OVERHEAD_LEN;
-    }
-  }
-
-  if (num_markers == 0)
-    return FALSE;
-
-  /* Check for missing markers, count total space needed,
-   * compute offset of each marker's part of the data.
-   */
-
-  total_length = 0;
-  for (seq_no = 1; seq_no <= num_markers; seq_no++) {
-    if (marker_present[seq_no] == 0)
-      return FALSE;		/* missing sequence number */
-    data_offset[seq_no] = total_length;
-    total_length += data_length[seq_no];
-  }
-
-  if (total_length <= 0)
-    return FALSE;		/* found only empty markers? */
-
-  /* Allocate space for assembled data */
-  icc_data = (JOCTET *) malloc(total_length * sizeof(JOCTET));
-  if (icc_data == NULL)
-    return FALSE;		/* oops, out of memory */
-
-  /* and fill it in */
-  for (marker = cinfo->marker_list; marker != NULL; marker = marker->next) {
-    if (marker_is_icc(marker)) {
-      JOCTET FAR *src_ptr;
-      JOCTET *dst_ptr;
-      unsigned int length;
-      seq_no = GETJOCTET(marker->data[12]);
-      dst_ptr = icc_data + data_offset[seq_no];
-      src_ptr = marker->data + ICC_OVERHEAD_LEN;
-      length = data_length[seq_no];
-      while (length--) {
-	*dst_ptr++ = *src_ptr++;
-      }
-    }
-  }
-
-  *icc_data_ptr = icc_data;
-  *icc_data_len = total_length;
-
-  return TRUE;
-}
diff --git a/filters/krita/jpeg/iccjpeg.h b/filters/krita/jpeg/iccjpeg.h
deleted file mode 100644
index 8828dc991..000000000
--- a/filters/krita/jpeg/iccjpeg.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Little cms
- * Copyright (C) 1998-2004 Marti Maria
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
- * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * iccprofile.h
- *
- * This file provides code to read and write International Color Consortium
- * (ICC) device profiles embedded in JFIF JPEG image files.  The ICC has
- * defined a standard format for including such data in JPEG "APP2" markers.
- * The code given here does not know anything about the internal structure
- * of the ICC profile data; it just knows how to put the profile data into
- * a JPEG file being written, or get it back out when reading.
- *
- * This code depends on new features added to the IJG JPEG library as of
- * IJG release 6b; it will not compile or work with older IJG versions.
- *
- * NOTE: this code would need surgery to work on 16-bit-int machines
- * with ICC profiles exceeding 64K bytes in size.  See iccprofile.c
- * for details.
- */
-#ifndef ICCJPEG
-#define ICCJPEG
-
-#include <stdio.h>		/* needed to define "FILE", "NULL" */
-#include "jpeglib.h"
-
-
-/*
- * This routine writes the given ICC profile data into a JPEG file.
- * It *must* be called AFTER calling jpeg_start_compress() and BEFORE
- * the first call to jpeg_write_scanlines().
- * (This ordering ensures that the APP2 marker(s) will appear after the
- * SOI and JFIF or Adobe markers, but before all else.)
- */
-
-extern void write_icc_profile JPP((j_compress_ptr cinfo,
-				   const JOCTET *icc_data_ptr,
-				   unsigned int icc_data_len));
-
-
-/*
- * Reading a JPEG file that may contain an ICC profile requires two steps:
- *
- * 1. After jpeg_create_decompress() but before jpeg_read_header(),
- *    call setup_read_icc_profile().  This routine tells the IJG library
- *    to save in memory any APP2 markers it may find in the file.
- *
- * 2. After jpeg_read_header(), call read_icc_profile() to find out
- *    whether there was a profile and obtain it if so.
- */
-
-
-/*
- * Prepare for reading an ICC profile
- */
-
-extern void setup_read_icc_profile JPP((j_decompress_ptr cinfo));
-
-
-/*
- * See if there was an ICC profile in the JPEG file being read;
- * if so, reassemble and return the profile data.
- *
- * TRUE is returned if an ICC profile was found, FALSE if not.
- * If TRUE is returned, *icc_data_ptr is set to point to the
- * returned data, and *icc_data_len is set to its length.
- *
- * IMPORTANT: the data at **icc_data_ptr has been allocated with malloc()
- * and must be freed by the caller with free() when the caller no longer
- * needs it.  (Alternatively, we could write this routine to use the
- * IJG library's memory allocator, so that the data would be freed implicitly
- * at jpeg_finish_decompress() time.  But it seems likely that many apps
- * will prefer to have the data stick around after decompression finishes.)
- */
-
-extern boolean read_icc_profile JPP((j_decompress_ptr cinfo,
-				     JOCTET **icc_data_ptr,
-				     unsigned int *icc_data_len));
-
-#endif
diff --git a/filters/krita/jpeg/kis_jpeg_converter.cc b/filters/krita/jpeg/kis_jpeg_converter.cc
deleted file mode 100644
index c60d90f05..000000000
--- a/filters/krita/jpeg/kis_jpeg_converter.cc
+++ /dev/null
@@ -1,542 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
- 
-#include "kis_jpeg_converter.h"
-
-#include <stdio.h>
-
-extern "C" {
-#include <iccjpeg.h>
-}
-
-#include <tqfile.h>
-
-#include <kapplication.h>
-#include <kmessagebox.h>
-#include <klocale.h>
-
-#include <KoDocumentInfo.h>
-
-#include <kio/netaccess.h>
-
-#include <kis_abstract_colorspace.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_doc.h>
-#include <kis_image.h>
-#include <kis_iterators_pixel.h>
-#include <kis_paint_layer.h>
-#include <kis_group_layer.h>
-#include <kis_meta_registry.h>
-#include <kis_profile.h>
-
-#include <kis_exif_io.h>
-
-extern "C" {
-#include <libexif/exif-loader.h>
-#include <libexif/exif-utils.h>
-}
-
-#define ICC_MARKER  (JPEG_APP0 + 2) /* JPEG marker code for ICC */
-#define ICC_OVERHEAD_LEN  14    /* size of non-profile data in APP2 */
-#define MAX_BYTES_IN_MARKER  65533  /* maximum data len of a JPEG marker */
-#define MAX_DATA_BYTES_IN_MARKER  (MAX_BYTES_IN_MARKER - ICC_OVERHEAD_LEN)
-
-namespace {
-    
-    J_COLOR_SPACE getColorTypeforColorSpace( KisColorSpace * cs)
-    {
-        if ( cs->id() == KisID("GRAYA") || cs->id() == KisID("GRAYA16") )
-        {
-            return JCS_GRAYSCALE;
-        }
-        if ( cs->id() == KisID("RGBA") || cs->id() == KisID("RGBA16") )
-        {
-            return JCS_RGB;
-        }
-        if ( cs->id() == KisID("CMYK") || cs->id() == KisID("CMYK16") )
-        {
-            return JCS_CMYK;
-        }
-        KMessageBox::error(0, i18n("Cannot export images in %1.\n").tqarg(cs->id().name()) ) ;
-        return JCS_UNKNOWN;
-    }
-
-    TQString getColorSpaceForColorType(J_COLOR_SPACE color_type) {
-        kdDebug(41008) << "color_type = " << color_type << endl;
-        if(color_type == JCS_GRAYSCALE)
-        {
-            return "GRAYA";
-        } else if(color_type == JCS_RGB) {
-            return "RGBA";
-        } else if(color_type == JCS_CMYK) {
-            return "CMYK";
-        }
-        return "";
-    }
-
-}
-
-KisJPEGConverter::KisJPEGConverter(KisDoc *doc, KisUndoAdapter *adapter)
-{
-    m_doc = doc;
-    m_adapter = adapter;
-    m_job = 0;
-    m_stop = false;
-}
-
-KisJPEGConverter::~KisJPEGConverter()
-{
-}
-
-KisImageBuilder_Result KisJPEGConverter::decode(const KURL& uri)
-{
-    struct jpeg_decompress_struct cinfo;
-    struct jpeg_error_mgr jerr;
-    
-    cinfo.err = jpeg_std_error(&jerr);
-    jpeg_create_decompress(&cinfo);
-    
-    // open the file
-    FILE *fp = fopen(TQFile::encodeName(uri.path()), "rb");
-    if (!fp)
-    {
-        return (KisImageBuilder_RESULT_NOT_EXIST);
-    }
-    jpeg_stdio_src(&cinfo, fp);
-    
-    jpeg_save_markers (&cinfo, JPEG_COM, 0xFFFF);
-    /* Save APP0..APP15 markers */
-    for (int m = 0; m < 16; m++)
-        jpeg_save_markers (&cinfo, JPEG_APP0 + m, 0xFFFF);
-
-    
-//     setup_read_icc_profile(&cinfo);
-    // read header
-    jpeg_read_header(&cinfo, true);
-    
-    // start reading
-    jpeg_start_decompress(&cinfo);
-    
-    // Get the colorspace
-    TQString csName = getColorSpaceForColorType(cinfo.out_color_space);
-    if(csName.isEmpty()) {
-        kdDebug(41008) << "unsupported colorspace : " << cinfo.out_color_space << endl;
-        jpeg_destroy_decompress(&cinfo);
-        fclose(fp);
-        return KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE;
-    }
-    uchar* profile_data;
-    uint profile_len;
-    KisProfile* profile = 0;
-    TQByteArray profile_rawdata;
-    if( read_icc_profile (&cinfo, &profile_data, &profile_len))
-    {
-        profile_rawdata.resize(profile_len);
-        memcpy(profile_rawdata.data(), profile_data, profile_len);
-        cmsHPROFILE hProfile = cmsOpenProfileFromMem(profile_data, (DWORD)profile_len);
-
-        if (hProfile != (cmsHPROFILE) NULL) {
-            profile = new KisProfile( profile_rawdata);
-            Q_CHECK_PTR(profile);
-            kdDebug(41008) << "profile name: " << profile->productName() << " profile description: " << profile->productDescription() << " information sur le produit: " << profile->productInfo() << endl;
-            if(!profile->isSuitableForOutput())
-            {
-                kdDebug(41008) << "the profile is not suitable for output and therefore cannot be used in krita, we need to convert the image to a standard profile" << endl; // TODO: in ko2 popup a selection menu to inform the user
-            }
-        }
-    }
-    
-    // Retrieve a pointer to the colorspace
-    KisColorSpace* cs;
-    if (profile && profile->isSuitableForOutput())
-    {
-        kdDebug(41008) << "image has embedded profile: " << profile -> productName() << "\n";
-        cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace(csName, profile);
-    }
-    else
-        cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID(csName,""),"");
-
-    if(cs == 0)
-    {
-        kdDebug(41008) << "unknown colorspace" << endl;
-        jpeg_destroy_decompress(&cinfo);
-        fclose(fp);
-        return KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE;
-    }
-    
-    // Create the cmsTransform if needed 
-    
-    cmsHTRANSFORM transform = 0;
-    if(profile && !profile->isSuitableForOutput())
-    {
-        transform = cmsCreateTransform(profile->profile(), cs->colorSpaceType(),
-                                       cs->getProfile()->profile() , cs->colorSpaceType(),
-                                       INTENT_PERCEPTUAL, 0);
-    }
-    
-    // Creating the KisImageSP
-    if( ! m_img) {
-        m_img = new KisImage(m_doc->undoAdapter(),  cinfo.image_width,  cinfo.image_height, cs, "built image");
-        Q_CHECK_PTR(m_img);
-        if(profile && !profile->isSuitableForOutput())
-        {
-            m_img -> addAnnotation( new KisAnnotation( profile->productName(), "", profile_rawdata) );
-        }
-    }
-
-    KisPaintLayerSP layer = new KisPaintLayer(m_img, m_img -> nextLayerName(), TQ_UINT8_MAX);
-    
-    // Read exif information if any
-    
-    // Read data
-    JSAMPROW row_pointer = new JSAMPLE[cinfo.image_width *cinfo.num_components];
-    
-    for (; cinfo.output_scanline < cinfo.image_height;) {
-        KisHLineIterator it = layer->paintDevice()->createHLineIterator(0, cinfo.output_scanline, cinfo.image_width, true);
-        jpeg_read_scanlines(&cinfo, &row_pointer, 1);
-        TQ_UINT8 *src = row_pointer;
-        switch(cinfo.out_color_space)
-        {
-            case JCS_GRAYSCALE:
-                while (!it.isDone()) {
-                    TQ_UINT8 *d = it.rawData();
-                    d[0] = *(src++);
-                    if(transform) cmsDoTransform(transform, d, d, 1);
-                    d[1] = TQ_UINT8_MAX;
-                    ++it;
-                }
-                break;
-            case JCS_RGB:
-                while (!it.isDone()) {
-                    TQ_UINT8 *d = it.rawData();
-                    d[2] = *(src++);
-                    d[1] = *(src++);
-                    d[0] = *(src++);
-                    if(transform) cmsDoTransform(transform, d, d, 1);
-                    d[3] = TQ_UINT8_MAX;
-                    ++it;
-                }
-                break;
-            case JCS_CMYK:
-                while (!it.isDone()) {
-                    TQ_UINT8 *d = it.rawData();
-                    d[0] = TQ_UINT8_MAX - *(src++);
-                    d[1] = TQ_UINT8_MAX - *(src++);
-                    d[2] = TQ_UINT8_MAX - *(src++);
-                    d[3] = TQ_UINT8_MAX - *(src++);
-                    if(transform) cmsDoTransform(transform, d, d, 1);
-                    d[4] = TQ_UINT8_MAX;
-                    ++it;
-                }
-                break;
-            default:
-                return KisImageBuilder_RESULT_UNSUPPORTED;
-        }
-    }
-    
-    m_img->addLayer(layer.data(), m_img->rootLayer(), 0);
-    
-    // Read exif informations
-
-    kdDebug(41008) << "Looking for exif information" << endl;
-    
-    for (jpeg_saved_marker_ptr marker = cinfo.marker_list; marker != NULL; marker = marker->next) {
-        kdDebug(41008) << "Marker is " << marker->marker << endl;
-        if (marker->marker != (JOCTET) (JPEG_APP0 + 1) ||
-            marker->data_length < 14)
-            continue; /* Exif data is in an APP1 marker of at least 14 octets */
-
-        if (GETJOCTET (marker->data[0]) != (JOCTET) 0x45 ||
-            GETJOCTET (marker->data[1]) != (JOCTET) 0x78 ||
-            GETJOCTET (marker->data[2]) != (JOCTET) 0x69 ||
-            GETJOCTET (marker->data[3]) != (JOCTET) 0x66 ||
-            GETJOCTET (marker->data[4]) != (JOCTET) 0x00 ||
-            GETJOCTET (marker->data[5]) != (JOCTET) 0x00)
-            continue; /* no Exif header */
-        kdDebug(41008) << "Found exif information of length : "<< marker->data_length << endl;
-        KisExifIO exifIO(layer->paintDevice()->exifInfo());
-        exifIO.readExifFromMem( marker->data , marker->data_length );
-        // Interpret orientation tag
-        ExifValue v;
-        if( layer->paintDevice()->exifInfo()->getValue("Qt::Orientation", v) && v.type() == ExifValue::EXIF_TYPE_SHORT)
-        {
-            switch(v.asShort(0)) //
-            {
-                case 2:
-                    layer->paintDevice()->mirrorY();
-                    break;
-                case 3:
-                    image()->rotate(M_PI, 0);
-                    break;
-                case 4:
-                    layer->paintDevice()->mirrorX();
-                    break;
-                case 5:
-                    image()->rotate(M_PI/2, 0);
-                    layer->paintDevice()->mirrorY();
-                    break;
-                case 6:
-                    image()->rotate(M_PI/2, 0);
-                    break;
-                case 7:
-                    image()->rotate(M_PI/2, 0);
-                    layer->paintDevice()->mirrorX();
-                    break;
-                case 8:
-                    image()->rotate(-M_PI/2 + 2*M_PI, 0);
-                    break;
-                default:
-                    break;
-            }
-            v.setValue(0, (TQ_UINT16)1);
-            layer->paintDevice()->exifInfo()->setValue("Qt::Orientation", v);
-        }
-        break;
-    }
-
-    // Finish decompression
-    jpeg_finish_decompress(&cinfo);
-    jpeg_destroy_decompress(&cinfo);
-    fclose(fp);
-    delete []row_pointer;
-    return KisImageBuilder_RESULT_OK;
-}
-
-
-
-KisImageBuilder_Result KisJPEGConverter::buildImage(const KURL& uri)
-{
-    if (uri.isEmpty())
-        return KisImageBuilder_RESULT_NO_URI;
-
-    if (!KIO::NetAccess::exists(uri, false, tqApp -> mainWidget())) {
-        return KisImageBuilder_RESULT_NOT_EXIST;
-    }
-
-    // We're not set up to handle asynchronous loading at the moment.
-    KisImageBuilder_Result result = KisImageBuilder_RESULT_FAILURE;
-    TQString tmpFile;
-
-    if (KIO::NetAccess::download(uri, tmpFile, tqApp -> mainWidget())) {
-        KURL uriTF;
-        uriTF.setPath( tmpFile );
-        result = decode(uriTF);
-        KIO::NetAccess::removeTempFile(tmpFile);
-    }
-
-    return result;
-}
-
-
-KisImageSP KisJPEGConverter::image()
-{
-    return m_img;
-}
-
-
-KisImageBuilder_Result KisJPEGConverter::buildFile(const KURL& uri, KisPaintLayerSP layer, vKisAnnotationSP_it annotationsStart, vKisAnnotationSP_it annotationsEnd, KisJPEGOptions options, KisExifInfo* exifInfo)
-{
-    if (!layer)
-        return KisImageBuilder_RESULT_INVALID_ARG;
-
-    KisImageSP img = layer -> image();
-    if (!img)
-        return KisImageBuilder_RESULT_EMPTY;
-
-    if (uri.isEmpty())
-        return KisImageBuilder_RESULT_NO_URI;
-
-    if (!uri.isLocalFile())
-        return KisImageBuilder_RESULT_NOT_LOCAL;
-    // Open file for writing
-    FILE *fp = fopen(TQFile::encodeName(uri.path()), "wb");
-    if (!fp)
-    {
-        return (KisImageBuilder_RESULT_FAILURE);
-    }
-    uint height = img->height();
-    uint width = img->width();
-    // Initialize structure
-    struct jpeg_compress_struct cinfo;
-    jpeg_create_compress(&cinfo);
-    // Initialize error output
-    struct jpeg_error_mgr jerr;
-    cinfo.err = jpeg_std_error(&jerr);
-    // Initialize output stream
-    jpeg_stdio_dest(&cinfo, fp);
-    
-    cinfo.image_width = width;  // image width and height, in pixels
-    cinfo.image_height = height;
-    cinfo.input_components = img->colorSpace()->nColorChannels(); // number of color channels per pixel */
-    J_COLOR_SPACE color_type = getColorTypeforColorSpace(img->colorSpace());
-    if(color_type == JCS_UNKNOWN)
-    {
-        KIO::del(uri);
-        return KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE;
-    }
-    cinfo.in_color_space = color_type;   // colorspace of input image
-
-    
-    // Set default compression parameters
-    jpeg_set_defaults(&cinfo);
-    // Customize them
-    jpeg_set_quality(&cinfo, options.quality, true);
-    
-    if(options.progressive)
-    {
-        jpeg_simple_progression (&cinfo);
-    }
-    
-    // Start compression
-    jpeg_start_compress(&cinfo, true);
-    // Save exif information if any available
-    if(exifInfo)
-    {
-        kdDebug(41008) << "Trying to save exif information" << endl;
-        KisExifIO exifIO(exifInfo);
-        unsigned char* exif_data;
-        unsigned int exif_size;
-        exifIO.saveExifToMem( &exif_data, &exif_size);
-        kdDebug(41008) << "Exif informations size is " << exif_size << endl;
-        if (exif_size < MAX_DATA_BYTES_IN_MARKER)
-        {
-            jpeg_write_marker(&cinfo, JPEG_APP0 + 1, exif_data, exif_size);
-        } else {
-            kdDebug(41008) << "exif informations couldn't be saved." << endl;
-        }
-    }
-    
-
-    // Save annotation
-    vKisAnnotationSP_it it = annotationsStart;
-    while(it != annotationsEnd) {
-        if (!(*it) || (*it) -> type() == TQString()) {
-            kdDebug(41008) << "Warning: empty annotation" << endl;
-            ++it;
-            continue;
-        }
-
-        kdDebug(41008) << "Trying to store annotation of type " << (*it) -> type() << " of size " << (*it) -> annotation() . size() << endl;
-
-        if ((*it) -> type().startsWith("krita_attribute:")) { // Attribute
-            // FIXME
-            kdDebug(41008) << "can't save this annotation : " << (*it) -> type() << endl;
-        } else { // Profile
-            //char* name = new char[(*it)->type().length()+1];
-            write_icc_profile(& cinfo, (uchar*)(*it)->annotation().data(), (*it)->annotation().size());
-        }
-        ++it;
-    }
-
-    
-    // Write data information
-    
-    JSAMPROW row_pointer = new JSAMPLE[width*cinfo.input_components];
-    int color_nb_bits = 8 * layer->paintDevice()->pixelSize() / layer->paintDevice()->nChannels();
-    
-    for (; cinfo.next_scanline < height;) {
-        KisHLineIterator it = layer->paintDevice()->createHLineIterator(0, cinfo.next_scanline, width, false);
-        TQ_UINT8 *dst = row_pointer;
-        switch(color_type)
-        {
-            case JCS_GRAYSCALE:
-                if(color_nb_bits == 16)
-                {
-                    while (!it.isDone()) {
-                        const TQ_UINT16 *d = reinterpret_cast<const TQ_UINT16 *>(it.rawData());
-                        *(dst++) = d[0] / TQ_UINT8_MAX;
-                        ++it;
-                    }
-                } else {
-                    while (!it.isDone()) {
-                        const TQ_UINT8 *d = it.rawData();
-                        *(dst++) = d[0];
-                        ++it;
-                    }
-                }
-                break;
-            case JCS_RGB:
-                if(color_nb_bits == 16)
-                {
-                    while (!it.isDone()) {
-                        const TQ_UINT16 *d = reinterpret_cast<const TQ_UINT16 *>(it.rawData());
-                        *(dst++) = d[2] / TQ_UINT8_MAX;
-                        *(dst++) = d[1] / TQ_UINT8_MAX;
-                        *(dst++) = d[0] / TQ_UINT8_MAX;
-                        ++it;
-                    }
-                } else {
-                    while (!it.isDone()) {
-                        const TQ_UINT8 *d = it.rawData();
-                        *(dst++) = d[2];
-                        *(dst++) = d[1];
-                        *(dst++) = d[0];
-                        ++it;
-                    }
-                }
-                break;
-            case JCS_CMYK:
-                if(color_nb_bits == 16)
-                {
-                    while (!it.isDone()) {
-                        const TQ_UINT16 *d = reinterpret_cast<const TQ_UINT16 *>(it.rawData());
-                        *(dst++) = TQ_UINT8_MAX - d[0] / TQ_UINT8_MAX;
-                        *(dst++) = TQ_UINT8_MAX - d[1] / TQ_UINT8_MAX;
-                        *(dst++) = TQ_UINT8_MAX - d[2] / TQ_UINT8_MAX;
-                        *(dst++) = TQ_UINT8_MAX - d[3] / TQ_UINT8_MAX;
-                        ++it;
-                    }
-                } else {
-                    while (!it.isDone()) {
-                        const TQ_UINT8 *d = it.rawData();
-                        *(dst++) = TQ_UINT8_MAX - d[0];
-                        *(dst++) = TQ_UINT8_MAX - d[1];
-                        *(dst++) = TQ_UINT8_MAX - d[2];
-                        *(dst++) = TQ_UINT8_MAX - d[3];
-                        ++it;
-                    }
-                }
-                break;
-            default:
-                KIO::del(uri);
-                return KisImageBuilder_RESULT_UNSUPPORTED;
-        }
-        jpeg_write_scanlines(&cinfo, &row_pointer, 1);
-    }
-    
-
-    // Writting is over
-    jpeg_finish_compress(&cinfo);
-    fclose(fp);
-    
-    delete [] row_pointer;
-    // Free memory
-    jpeg_destroy_compress(&cinfo);
-    
-    return KisImageBuilder_RESULT_OK;
-}
-
-
-void KisJPEGConverter::cancel()
-{
-    m_stop = true;
-}
-
-#include "kis_jpeg_converter.moc"
-
diff --git a/filters/krita/jpeg/kis_jpeg_converter.h b/filters/krita/jpeg/kis_jpeg_converter.h
deleted file mode 100644
index 8500d1462..000000000
--- a/filters/krita/jpeg/kis_jpeg_converter.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef _KIS_JPEG_CONVERTER_H_
-#define _KIS_JPEG_CONVERTER_H_
-
-#include <stdio.h>
-
-extern "C" {
-#include <jpeglib.h>
-}
-
-#include <tqvaluevector.h>
-
-#include <kio/job.h>
-
-#include <kis_progress_subject.h>
-
-#include "kis_types.h"
-#include "kis_global.h"
-#include "kis_annotation.h"
-class KisDoc;
-class KisUndoAdapter;
-class KisExifInfo;
-
-/**
- * Image import/export plugins can use these results to report about success or failure.
- */
-enum KisImageBuilder_Result {
-        KisImageBuilder_RESULT_FAILURE = -400,
-        KisImageBuilder_RESULT_NOT_EXIST = -300,
-        KisImageBuilder_RESULT_NOT_LOCAL = -200,
-        KisImageBuilder_RESULT_BAD_FETCH = -100,
-        KisImageBuilder_RESULT_INVALID_ARG = -50,
-        KisImageBuilder_RESULT_OK = 0,
-        KisImageBuilder_RESULT_PROGRESS = 1,
-        KisImageBuilder_RESULT_EMPTY = 100,
-        KisImageBuilder_RESULT_BUSY = 150,
-        KisImageBuilder_RESULT_NO_URI = 200,
-        KisImageBuilder_RESULT_UNSUPPORTED = 300,
-        KisImageBuilder_RESULT_INTR = 400,
-        KisImageBuilder_RESULT_PATH = 500,
-        KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE = 600
-};
-
-struct KisJPEGOptions {
-    int quality;
-    bool progressive;
-};
-
-class KisJPEGConverter : public KisProgressSubject {
-        Q_OBJECT
-  TQ_OBJECT
-    public:
-        KisJPEGConverter(KisDoc *doc, KisUndoAdapter *adapter);
-        virtual ~KisJPEGConverter();
-    public:
-        KisImageBuilder_Result buildImage(const KURL& uri);
-        KisImageBuilder_Result buildFile(const KURL& uri, KisPaintLayerSP layer, vKisAnnotationSP_it annotationsStart, vKisAnnotationSP_it annotationsEnd, KisJPEGOptions options, KisExifInfo* exifInfo);
-        /** Retrieve the constructed image
-        */
-        KisImageSP image();
-    public slots:
-        virtual void cancel();
-    private:
-        KisImageBuilder_Result decode(const KURL& uri);
-    private:
-        KisImageSP m_img;
-        KisDoc *m_doc;
-        KisUndoAdapter *m_adapter;
-        bool m_stop;
-        KIO::TransferJob *m_job;
-};
-
-#endif
diff --git a/filters/krita/jpeg/kis_jpeg_export.cc b/filters/krita/jpeg/kis_jpeg_export.cc
deleted file mode 100644
index 58d906bc2..000000000
--- a/filters/krita/jpeg/kis_jpeg_export.cc
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_jpeg_export.h"
-
-#include <tqcheckbox.h>
-#include <tqslider.h>
-
-#include <kapplication.h>
-#include <kdialogbase.h>
-#include <kgenericfactory.h>
-
-#include <KoFilterChain.h>
-
-#include <kis_doc.h>
-#include <kis_image.h>
-#include <kis_group_layer.h>
-#include <kis_paint_layer.h>
-#include <kis_progress_display_interface.h>
-#include <kis_layer_visitor.h>
-
-#include "kis_jpeg_converter.h"
-#include "kis_wdg_options_jpeg.h"
-
-    
-class KisExifInfoVisitor : public KisLayerVisitor
-{
-    public:
-        KisExifInfoVisitor() :
-            m_exifInfo(0),
-            m_countPaintLayer(0)
-        { };
-    public:
-        virtual bool visit(KisPaintLayer* layer) {
-            m_countPaintLayer++;
-            if( layer->paintDevice()->hasExifInfo())
-                m_exifInfo = layer->paintDevice()->exifInfo();
-            return true;
-        };
-        virtual bool visit(KisGroupLayer* layer)
-        {
-            kdDebug(41008) << "Visiting on grouplayer " << layer->name() << "\n";
-            KisLayerSP child = layer->firstChild();
-            while (child) {
-                child->accept(*this);
-                child = child->nextSibling();
-            }
-            return true;
-        }
-        virtual bool visit(KisPartLayer *) { return true; };
-        virtual bool visit(KisAdjustmentLayer* ) {  return true; };
-    public:
-        inline uint countPaintLayer() { return m_countPaintLayer; }
-        inline KisExifInfo* exifInfo() {return m_exifInfo; }
-    private:
-        KisExifInfo* m_exifInfo;
-        uint m_countPaintLayer;
-};
-
-
-typedef KGenericFactory<KisJPEGExport, KoFilter> KisJPEGExportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkritajpegexport, KisJPEGExportFactory("kofficefilters"))
-
-KisJPEGExport::KisJPEGExport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-KisJPEGExport::~KisJPEGExport()
-{
-}
-
-KoFilter::ConversiontqStatus KisJPEGExport::convert(const TQCString& from, const TQCString& to)
-{
-    kdDebug(41008) << "JPEG export! From: " << from << ", To: " << to << "\n";
-    
-    if (from != "application/x-krita")
-        return KoFilter::NotImplemented;
-
-    
-    KDialogBase* kdb = new KDialogBase(0, "", false, i18n("JPEG Export Options"), KDialogBase::Ok | KDialogBase::Cancel);
- 
-    KisWdgOptionsJPEG* wdg = new KisWdgOptionsJPEG(kdb);
-    kdb->setMainWidget(wdg);
-    kapp->restoreOverrideCursor();
-    if(kdb->exec() == TQDialog::Rejected)
-    {
-        return KoFilter::OK; // FIXME Cancel doesn't exist :(
-    }
-    KisJPEGOptions options;
-    options.progressive = wdg->progressive->isChecked();
-    options.quality = wdg->qualityLevel->value();
-    
-    delete kdb;
-    // XXX: Add dialog about flattening layers here
-
-    KisDoc *output = dynamic_cast<KisDoc*>(m_chain->inputDocument());
-    TQString filename = m_chain->outputFile();
-    
-    if (!output)
-        return KoFilter::CreationError;
-    
-    
-    if (filename.isEmpty()) return KoFilter::FileNotFound;
-
-    KURL url;
-    url.setPath(filename);
-
-    KisImageSP img = output->currentImage();
-    Q_CHECK_PTR(img);
-
-    KisJPEGConverter kpc(output, output->undoAdapter());
-
-    KisPaintDeviceSP pd = new KisPaintDevice(*img->projection());
-    KisPaintLayerSP l = new KisPaintLayer(img, "projection", OPACITY_OPAQUE, pd);
-
-    vKisAnnotationSP_it beginIt = img->beginAnnotations();
-    vKisAnnotationSP_it endIt = img->endAnnotations();
-    KisImageBuilder_Result res;
-    
-    KisExifInfoVisitor eIV;
-    eIV.visit( img->rootLayer() );
-    
-    KisExifInfo* eI = 0;
-    if(eIV.countPaintLayer() == 1)
-        eI = eIV.exifInfo();
-    
-    if ( (res = kpc.buildFile(url, l, beginIt, endIt, options, eI)) == KisImageBuilder_RESULT_OK) {
-        kdDebug(41008) << "success !" << endl;
-        return KoFilter::OK;
-    }
-    kdDebug(41008) << " Result = " << res << endl;
-    return KoFilter::InternalError;
-}
-
-#include <kis_jpeg_export.moc>
-
diff --git a/filters/krita/jpeg/kis_jpeg_export.h b/filters/krita/jpeg/kis_jpeg_export.h
deleted file mode 100644
index a0f473510..000000000
--- a/filters/krita/jpeg/kis_jpeg_export.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef _KIS_JPEG_EXPORT_H_
-#define _KIS_JPEG_EXPORT_H_
-
-#include <KoFilter.h>
-
-class KisJPEGExport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-    public:
-        KisJPEGExport(KoFilter *tqparent, const char *name, const TQStringList&);
-        virtual ~KisJPEGExport();
-    public:
-        virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif
diff --git a/filters/krita/jpeg/kis_jpeg_import.cc b/filters/krita/jpeg/kis_jpeg_import.cc
deleted file mode 100644
index 537be19ad..000000000
--- a/filters/krita/jpeg/kis_jpeg_import.cc
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_jpeg_import.h"
-
-#include <kgenericfactory.h>
-
-#include <KoFilterChain.h>
-
-#include <kis_doc.h>
-#include <kis_image.h>
-#include <kis_progress_display_interface.h>
-#include <kis_view.h>
-
-#include "kis_jpeg_converter.h"
-
-typedef KGenericFactory<KisJPEGImport, KoFilter> JPEGImportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkritajpegimport, JPEGImportFactory("kofficefilters"))
-
-KisJPEGImport::KisJPEGImport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-KisJPEGImport::~KisJPEGImport()
-{
-}
-
-KoFilter::ConversiontqStatus KisJPEGImport::convert(const TQCString&, const TQCString& to)
-{
-    kdDebug(41008) << "Importing using JPEGImport!\n";
-
-    if (to != "application/x-krita")
-        return KoFilter::BadMimeType;
-
-    KisDoc * doc = dynamic_cast<KisDoc*>(m_chain -> outputDocument());
-    KisView * view = static_cast<KisView*>(doc -> views().getFirst());
-    
-    TQString filename = m_chain -> inputFile();
-    
-    if (!doc)
-        return KoFilter::CreationError;
-
-    doc->prepareForImport();
-        
-
-    if (!filename.isEmpty()) {
-    
-        KURL url;
-        url.setPath(filename);
-
-        if (url.isEmpty())
-            return KoFilter::FileNotFound;
-            
-        KisJPEGConverter ib(doc, doc -> undoAdapter());
-
-        if (view != 0)
-            view -> canvasSubject() ->  progressDisplay() -> setSubject(&ib, false, true);
-
-        switch (ib.buildImage(url)) {
-            case KisImageBuilder_RESULT_UNSUPPORTED:
-                return KoFilter::NotImplemented;
-                break;
-            case KisImageBuilder_RESULT_INVALID_ARG:
-                return KoFilter::BadMimeType;
-                break;
-            case KisImageBuilder_RESULT_NO_URI:
-            case KisImageBuilder_RESULT_NOT_LOCAL:
-                return KoFilter::FileNotFound;
-                break;
-            case KisImageBuilder_RESULT_BAD_FETCH:
-            case KisImageBuilder_RESULT_EMPTY:
-                return KoFilter::ParsingError;
-                break;
-            case KisImageBuilder_RESULT_FAILURE:
-                return KoFilter::InternalError;
-                break;
-            case KisImageBuilder_RESULT_OK:
-                doc -> setCurrentImage( ib.image());
-                return KoFilter::OK;
-            default:
-                break;
-        }
-
-    }
-    return KoFilter::StorageCreationError;
-}
-
-#include <kis_jpeg_import.moc>
-
diff --git a/filters/krita/jpeg/kis_jpeg_import.h b/filters/krita/jpeg/kis_jpeg_import.h
deleted file mode 100644
index 4cfb62c27..000000000
--- a/filters/krita/jpeg/kis_jpeg_import.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef _KIS_JPEG_IMPORT_H_
-#define _KIS_JPEG_IMPORT_H_
-
-#include <KoFilter.h>
-
-class KisJPEGImport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-    public:
-        KisJPEGImport(KoFilter *tqparent, const char *name, const TQStringList&);
-        virtual ~KisJPEGImport();
-    public:
-        virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif
diff --git a/filters/krita/jpeg/kis_wdg_options_jpeg.ui b/filters/krita/jpeg/kis_wdg_options_jpeg.ui
deleted file mode 100644
index 06c39edc3..000000000
--- a/filters/krita/jpeg/kis_wdg_options_jpeg.ui
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>KisWdgOptionsJPEG</class>
-<widget class="TQWidget">
-    <property name="name">
-        <cstring>KisWdgOptionsJPEG</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>167</width>
-            <height>87</height>
-        </rect>
-    </property>
-    <vbox>
-        <property name="name">
-            <cstring>unnamed</cstring>
-        </property>
-        <property name="margin">
-            <number>0</number>
-        </property>
-        <widget class="TQLayoutWidget">
-            <property name="name">
-                <cstring>tqlayout4</cstring>
-            </property>
-            <hbox>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="TQLabel">
-                    <property name="name">
-                        <cstring>textLabel1</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Quality:</string>
-                    </property>
-                    <property name="tqalignment">
-                        <set>AlignTop</set>
-                    </property>
-                </widget>
-                <widget class="TQLayoutWidget">
-                    <property name="name">
-                        <cstring>tqlayout5</cstring>
-                    </property>
-                    <vbox>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <widget class="TQSlider">
-                            <property name="name">
-                                <cstring>qualityLevel</cstring>
-                            </property>
-                            <property name="minValue">
-                                <number>0</number>
-                            </property>
-                            <property name="maxValue">
-                                <number>100</number>
-                            </property>
-                            <property name="lineStep">
-                                <number>1</number>
-                            </property>
-                            <property name="pageStep">
-                                <number>1</number>
-                            </property>
-                            <property name="value">
-                                <number>80</number>
-                            </property>
-                            <property name="orientation">
-                                <enum>Horizontal</enum>
-                            </property>
-                            <property name="tickmarks">
-                                <enum>Below</enum>
-                            </property>
-                            <property name="tickInterval">
-                                <number>10</number>
-                            </property>
-                            <property name="toolTip" stdset="0">
-                                <string>These settings determine how much information is lost during compression</string>
-                            </property>
-                        </widget>
-                        <widget class="TQLayoutWidget">
-                            <property name="name">
-                                <cstring>tqlayout4</cstring>
-                            </property>
-                            <hbox>
-                                <property name="name">
-                                    <cstring>unnamed</cstring>
-                                </property>
-                                <widget class="TQLabel">
-                                    <property name="name">
-                                        <cstring>textLabel3</cstring>
-                                    </property>
-                                    <property name="text">
-                                        <string>Smallest</string>
-                                    </property>
-                                </widget>
-                                <widget class="TQLabel">
-                                    <property name="name">
-                                        <cstring>textLabel4</cstring>
-                                    </property>
-                                    <property name="text">
-                                        <string>Best</string>
-                                    </property>
-                                    <property name="tqalignment">
-                                        <set>AlignVCenter|AlignRight</set>
-                                    </property>
-                                </widget>
-                            </hbox>
-                        </widget>
-                    </vbox>
-                </widget>
-            </hbox>
-        </widget>
-        <widget class="TQCheckBox">
-            <property name="name">
-                <cstring>progressive</cstring>
-            </property>
-            <property name="text">
-                <string>Pr&amp;ogressive</string>
-            </property>
-            <property name="toolTip" stdset="0">
-                <string>Use progressive when publishing on the Internet</string>
-            </property>
-            <property name="whatsThis" stdset="0">
-                <string>&lt;p&gt;Progressive is useful if you intend to publish your image on the Internet.&lt;br&gt;
-Enabling progressive will cause the image to be displayed by the browser even while downloading.&lt;/p&gt;</string>
-            </property>
-        </widget>
-        <spacer>
-            <property name="name">
-                <cstring>spacer1</cstring>
-            </property>
-            <property name="orientation">
-                <enum>Vertical</enum>
-            </property>
-            <property name="sizeType">
-                <enum>Expanding</enum>
-            </property>
-            <property name="tqsizeHint">
-                <size>
-                    <width>20</width>
-                    <height>61</height>
-                </size>
-            </property>
-        </spacer>
-    </vbox>
-</widget>
-<tqlayoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/filters/krita/jpeg/krita_jpeg.desktop b/filters/krita/jpeg/krita_jpeg.desktop
deleted file mode 100644
index 48d669cad..000000000
--- a/filters/krita/jpeg/krita_jpeg.desktop
+++ /dev/null
@@ -1,58 +0,0 @@
-[Desktop Entry]
-Categories=
-Exec=krita %u
-GenericName=Application for Drawing and Handling of Images
-GenericName[bg]=Приложение за рисуване и обработка на изображения
-GenericName[ca]=Aplicació per a dibuix i modificació d'imatges
-GenericName[da]=Tegne- og billedbehandlingsprogram
-GenericName[de]=Programm zum Zeichnen und Bearbeiten von Bildern
-GenericName[el]=Εφαρμογή για επεξεργασία και χειρισμό εικόνων
-GenericName[eo]=Aplikaĵo por Desegnado kaj Mastrumado de Bildoj
-GenericName[es]=Aplicación para dibujo y manipulación de imágenes
-GenericName[et]=Joonistamise ja pilditöötluse rakendus
-GenericName[fa]=کاربرد برای ترسیم و به کار بردن تصاویر
-GenericName[fi]=Ohjelma kuvien piirtämiseen ja käsittelyyn
-GenericName[fr]=Application pour dessiner et manipuler des images
-GenericName[fy]=Aplikaasje om ôfbyldings mei te tekenjen en te bewurkjen
-GenericName[gl]=Aplicación de Debuxo e Manipulación de Imaxes
-GenericName[he]=יישום לצביעה וניהול תמונות
-GenericName[hu]=Rajzoló és képkezelő
-GenericName[is]=Teikni og myndvinnsluforrit
-GenericName[it]=Applicazione di disegno e gestione di immagini
-GenericName[ja]=描画と画像操作のためのアプリケーション
-GenericName[km]=កម្មវិធី​សម្រាប់​គូរ និង​ដោះស្រាយ​នៃ​រូបភាព
-GenericName[lv]=Programma zīmēšanai un attēlu apstrādei
-GenericName[nb]=Program for tegning og bildehåndtering
-GenericName[nds]=Programm för't Teken un Bildhanteren
-GenericName[ne]=रेखाचित्र र छविहरूको ह्यान्डल गर्न अनुप्रयोग
-GenericName[nl]=Toepassing om afbeeldingen te tekenen en te bewerken
-GenericName[pl]=Program do rysowania i obróbki obrazków
-GenericName[pt]=Aplicação de Desenho e Manipulação de Imagens
-GenericName[pt_BR]=Aplicação de Desenho e Manipulação de Imagens
-GenericName[ru]=Растровые изображения
-GenericName[se]=Prográmma sárgumii ja govvegieđaheapmái
-GenericName[sk]=Aplikácia na kresnenie a manilupáciu s obrázkami
-GenericName[sl]=Program za risanje in rokovanje s slikami
-GenericName[sr]=Програм за цртање и обраду слика
-GenericName[sr@Latn]=Program za crtanje i obradu slika
-GenericName[sv]=Program för att rita och hantera bilder
-GenericName[uk]=Програма для малювання і обробки зображень
-GenericName[uz]=Rasm chizish dasturi
-GenericName[uz@cyrillic]=Расм чизиш дастури
-GenericName[zh_CN]=绘制和操纵图像的应用程序
-GenericName[zh_TW]=影像繪製與處理應用程式
-Icon=krita
-MimeType=image/jpeg
-Name=Krita
-Name[hi]=के-रिता
-Name[km]= Krita
-Name[lo]=ກຣິຕາ
-Name[ne]=क्रिता
-Path=
-StartupNotify=true
-Terminal=false
-Type=Application
-X-DCOP-ServiceType=multi
-X-KDE-StartupNotify=true
-X-KDE-SubstituteUID=false
-X-KDE-Username=
diff --git a/filters/krita/jpeg/krita_jpeg_export.desktop b/filters/krita/jpeg/krita_jpeg_export.desktop
deleted file mode 100644
index 25929d8e2..000000000
--- a/filters/krita/jpeg/krita_jpeg_export.desktop
+++ /dev/null
@@ -1,52 +0,0 @@
-[Desktop Entry]
-Icon=
-Name=Krita PNG Export Filter
-Name[bg]=Филтър за експортиране от Krita в PNG
-Name[br]=Sil ezporzh PNG evit Krita
-Name[ca]=Filtre d'exportació PNG per a Krita
-Name[da]=Krita PNG-eksportfilter
-Name[de]=Krita PNG-Exportfilter
-Name[el]=Φίλτρο εξαγωγής PNG του Krita
-Name[eo]=Krita PNG-eksportfiltrilo
-Name[es]=Filtro de exportación a PNG de Krita
-Name[et]=Krita PNG ekspordifilter
-Name[fa]=پالایۀ صادرات Krita PNG
-Name[fi]=Krita PNG -viestisuodin
-Name[fr]=Filtre d'exportation PNG de Krita
-Name[fy]=Krita PNG Eksportfilter
-Name[ga]=Scagaire Easpórtála PNG Krita
-Name[gl]=Filtro de Exportación de PNG para Krita
-Name[he]=Krita PNG מסנן יצוא
-Name[hr]=Krita PNG filtar izvoza
-Name[hu]=Krita PNG exportszűrő
-Name[is]=Krita PNG útflutningssía
-Name[it]=Filtro di esportazione PNG per Krita
-Name[ja]=Krita PNG エクスポートフィルタ
-Name[km]=តម្រង​នាំចេញ PNG សម្រាប់ Krita
-Name[lt]=Krita PNG eksportavimo filtras
-Name[lv]=Krita PNG eksporta filtrs
-Name[nb]=PNG-eksportfilter for Krita
-Name[nds]=PNG-Exportfilter för Krita
-Name[ne]=क्रिता पीएनजी निर्यात फिल्टर
-Name[nl]=Krita PNG Exportfilter
-Name[pl]=Filtr eksportu do formatu PNG dla Krita
-Name[pt]=Filtro de Exportação de PNG para o Krita
-Name[pt_BR]=Filtro de Exportação de PNG para o Krita
-Name[ru]=Фильтр экспорта рисунков Krita в PNG
-Name[se]=Krita PNG-olggosfievrridansilli
-Name[sk]=Exportný filter Krita PNG
-Name[sl]=Izvozni filter PNG za Krito
-Name[sr]=Krita-ин филтер за извоз у PNG
-Name[sr@Latn]=Krita-in filter za izvoz u PNG
-Name[sv]=Krita PNG-exportfilter
-Name[uk]=Фільтр експорту PNG для Krita
-Name[uz]=Krita PNG eksport filteri
-Name[uz@cyrillic]=Krita PNG экспорт филтери
-Name[zh_CN]=Krita PNG 导出过滤器
-Name[zh_TW]=Krita PNG 匯出過濾程式
-ServiceTypes=KOfficeFilter
-Type=Service
-X-KDE-Export=image/jpeg
-X-KDE-Import=application/x-krita
-X-KDE-Library=libkritajpegexport
-X-KDE-Weight=1
diff --git a/filters/krita/jpeg/krita_jpeg_import.desktop b/filters/krita/jpeg/krita_jpeg_import.desktop
deleted file mode 100644
index 4b3772f77..000000000
--- a/filters/krita/jpeg/krita_jpeg_import.desktop
+++ /dev/null
@@ -1,52 +0,0 @@
-[Desktop Entry]
-Icon=
-Name=Krita PNG Import Filter
-Name[bg]=Филтър за импортиране от PNG в Krita
-Name[br]=Sil enporzh PNG evit Krita
-Name[ca]=Filtre d'importació PNG per a Krita
-Name[da]=Krita PNG-importfilter
-Name[de]=Krita PNG-Importfilter
-Name[el]=Φίλτρο εισαγωγής PNG του Krita
-Name[eo]=Krita PNG-importfiltrilo
-Name[es]=Filtro de importación a PNG de Krita
-Name[et]=Krita PNG impordifilter
-Name[fa]=پالایۀ واردات Krita PNG
-Name[fi]=Krita PNG -tuontisuodin
-Name[fr]=Filtre d'importation PNG de Krita
-Name[fy]=Krita PNG Ymportfilter
-Name[ga]=Scagaire Iompórtála PNG Krita
-Name[gl]=Filtro de Importación de PNG para Krita
-Name[he]=Krita PNG מסנן יבוא
-Name[hr]=Krita PNG filtar uvoza
-Name[hu]=Krita PNG importszűrő
-Name[is]=Krita PNG innflutningssía
-Name[it]=Filtro di importazione PNG per Krita
-Name[ja]=Krita PNG インポートフィルタ
-Name[km]=តម្រង​នាំចូល PNG សម្រាប់ Krita
-Name[lt]=Krita PNG importavimo filtras
-Name[lv]=Krita PNG importa filtrs
-Name[nb]=PNG-importfilter for Krita
-Name[nds]=PNG-Importfilter för Krita
-Name[ne]=क्रिता पीएनजी आयात फिल्टर
-Name[nl]=Krita PNG Importfilter
-Name[pl]=Filtr importu z formatu PNG dla Krita
-Name[pt]=Filtro de Importação de PNG para o Krita
-Name[pt_BR]=Filtro de Importação de PNG para o Krita
-Name[ru]=Фильтр импорта рисунков PNG в Krita
-Name[se]=Krita PNG-olggosfievrridansilli
-Name[sk]=PNG filter pre import do Krita
-Name[sl]=Uvozni filter PNG za Krito
-Name[sr]=Krita-ин филтер за увоз из PNG-а
-Name[sr@Latn]=Krita-in filter za uvoz iz PNG-a
-Name[sv]=Krita PNG-importfilter
-Name[uk]=Фільтр імпорту PNG для Krita
-Name[uz]=Krita PNG import filteri
-Name[uz@cyrillic]=Krita PNG импорт филтери
-Name[zh_CN]=Krita PNG 导入过滤器
-Name[zh_TW]=Krita PNG 匯入過濾程式
-ServiceTypes=KOfficeFilter
-Type=Service
-X-KDE-Export=application/x-krita
-X-KDE-Import=image/jpeg
-X-KDE-Library=libkritajpegimport
-X-KDE-Weight=1
diff --git a/filters/krita/libkisexif/Makefile.am b/filters/krita/libkisexif/Makefile.am
deleted file mode 100644
index e8d41f267..000000000
--- a/filters/krita/libkisexif/Makefile.am
+++ /dev/null
@@ -1,20 +0,0 @@
-INCLUDES = \
-        -I$(srcdir) \
-         $(KOFFICE_INCLUDES) \
-        -I$(top_srcdir)/krita \
-        -I$(top_srcdir)/krita/core \
-        -I$(top_srcdir)/krita/sdk \
-        -I$(top_srcdir)/krita/core/tiles \
-        -I$(top_srcdir)/krita/kritacolor \
-        -I$(top_srcdir)/krita/ui \
-        $(KOFFICE_INCLUDES) -I$(interfacedir) \
-        $(KOPAINTER_INCLUDES) \
-        $(all_includes) 
-METASOURCES = AUTO
-libkisexif_la_LDFLAGS = $(all_libraries) -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-noinst_LTLIBRARIES = libkisexif.la
-
-
-libkisexif_la_SOURCES = kis_exif_io.cpp
diff --git a/filters/krita/libkisexif/kis_exif_io.cpp b/filters/krita/libkisexif/kis_exif_io.cpp
deleted file mode 100644
index f02b49b7a..000000000
--- a/filters/krita/libkisexif/kis_exif_io.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_exif_io.h"
-
-#include <kdebug.h>
-
-extern "C" {
-#include <libexif/exif-tag.h>
-#include <libexif/exif-log.h>
-}
-
-KisExifIO::KisExifIO(KisExifInfo* ei) : m_exifInfo(ei)
-{
-}
-
-void KisExifIO::readExifFromFile( const char* fileName)
-{
-    readExifData( exif_data_new_from_file(fileName) );
-}
-
-void KisExifIO::readExifFromMem( const unsigned char* data , unsigned int size)
-{
-    readExifData( exif_data_new_from_data(data, size) );
-}
-
-void KisExifIO::saveExifToMem( unsigned char** data, unsigned int *size)
-{
-    ExifData* exifData = exif_data_new();
-    writeExifData( exifData );
-    exif_data_save_data( exifData, data, size);
-}
-
-ExifValue::ExifType KisExifIO::format2type(ExifFormat format)
-{
-    switch(format)
-    {
-        case EXIF_FORMAT_BYTE:
-            return ExifValue::EXIF_TYPE_BYTE;
-        case EXIF_FORMAT_ASCII:
-            return ExifValue::EXIF_TYPE_ASCII;
-        case EXIF_FORMAT_SHORT:
-            return ExifValue::EXIF_TYPE_SHORT;
-        case EXIF_FORMAT_LONG:
-            return ExifValue::EXIF_TYPE_LONG;
-        case EXIF_FORMAT_RATIONAL:
-            return ExifValue::EXIF_TYPE_RATIONAL;
-        case EXIF_FORMAT_SBYTE:
-            return ExifValue::EXIF_TYPE_SBYTE;
-        case EXIF_FORMAT_SSHORT:
-            return ExifValue::EXIF_TYPE_SSHORT;
-        case EXIF_FORMAT_SLONG:
-            return ExifValue::EXIF_TYPE_SLONG;
-        case EXIF_FORMAT_SRATIONAL:
-            return ExifValue::EXIF_TYPE_SRATIONAL;
-        case EXIF_FORMAT_FLOAT:
-            return ExifValue::EXIF_TYPE_FLOAT;
-        case EXIF_FORMAT_DOUBLE:
-            return ExifValue::EXIF_TYPE_DOUBLE;
-        default:
-        case EXIF_FORMAT_UNDEFINED:
-            return ExifValue::EXIF_TYPE_UNDEFINED;
-    }
-}
-
-void KisExifIO::readExifData( ExifData* exifData)
-{
-    ExifValue::ByteOrder bO;
-    if(exif_data_get_byte_order( exifData) == EXIF_BYTE_ORDER_MOTOROLA)
-    {
-        bO = ExifValue::BYTE_ORDER_MOTOROLA;
-    } else {
-        bO = ExifValue::BYTE_ORDER_INTEL;
-    }
-    static ExifIfd ifds[5] = {
-        EXIF_IFD_0,
-        EXIF_IFD_1,
-        EXIF_IFD_EXIF,
-        EXIF_IFD_INTEROPERABILITY,
-        EXIF_IFD_GPS
-    };
-    for(int ifd = 0; ifd < 5; ifd ++)
-    {
-        ExifContent* content = exifData->ifd[ifds[ifd]];
-        kdDebug() << "There are " << content->count << " values in ifd=" << ifd << endl;
-        for (uint i = 0; i < content->count; i++)
-        {
-            ExifEntry* entry = content->entries[i];
-            TQString tagname = exif_tag_get_name ( entry->tag );
-//             kdDebug() << "found tag : " << tagname << endl;
-            //         TQString tagname = exif_tag_get_name_in_ifd ( entry->tag, EXIF_IFD_0 ); TODO: would be better to rely on 0.6.13 when it becomes more common, as it supports better other IFD (GPS and interoperrabilibity)
-            ExifValue value( format2type(entry->format), entry->data, entry->size, ifds[ifd], entry->components, bO );
-//             exif_entry_dump( entry, 4);
-//             kdDebug() << "value = " << value.toString() << endl;
-            m_exifInfo->setValue( tagname, value);
-        }
-    }
-    
-}
-
-ExifFormat KisExifIO::type2format( ExifValue::ExifType type)
-{
-    switch(type)
-    {
-        case ExifValue::EXIF_TYPE_BYTE:
-            return EXIF_FORMAT_BYTE;
-        case ExifValue::EXIF_TYPE_ASCII:
-            return EXIF_FORMAT_ASCII;
-        case ExifValue::EXIF_TYPE_SHORT:
-            return EXIF_FORMAT_SHORT;
-        case ExifValue::EXIF_TYPE_LONG:
-            return EXIF_FORMAT_LONG;
-        case ExifValue::EXIF_TYPE_RATIONAL:
-            return EXIF_FORMAT_RATIONAL;
-        case ExifValue::EXIF_TYPE_SBYTE:
-            return EXIF_FORMAT_SBYTE;
-        case ExifValue::EXIF_TYPE_SSHORT:
-            return EXIF_FORMAT_SSHORT;
-        case ExifValue::EXIF_TYPE_SLONG:
-            return EXIF_FORMAT_SLONG;
-        case ExifValue::EXIF_TYPE_SRATIONAL:
-            return EXIF_FORMAT_SRATIONAL;
-        case ExifValue::EXIF_TYPE_FLOAT:
-            return EXIF_FORMAT_FLOAT;
-        case ExifValue::EXIF_TYPE_DOUBLE:
-            return EXIF_FORMAT_DOUBLE;
-        default:
-        case ExifValue::EXIF_TYPE_UNDEFINED:
-            return EXIF_FORMAT_UNDEFINED;
-    }
-}
-
-
-void KisExifIO::writeExifData( ExifData* exifData)
-{
-    ExifValue::ByteOrder bO;
-    if(exif_data_get_byte_order( exifData) == EXIF_BYTE_ORDER_MOTOROLA)
-    {
-        bO = ExifValue::BYTE_ORDER_MOTOROLA;
-    } else {
-        bO = ExifValue::BYTE_ORDER_INTEL;
-    }
-        
-    for( KisExifInfo::evMap::const_iterator it = m_exifInfo->begin(); it != m_exifInfo->end(); ++it)
-    {
-        ExifValue ev = it.data();
-        if(ev.ifd() != -1)
-        {
-            ExifEntry * entry = exif_entry_new();
-            ExifContent* content = exifData->ifd[ev.ifd()];
-            exif_content_add_entry(content, entry);
-            kdDebug() << "Saving tag:" << it.key() << " " << ev.toString() << endl;
-            ExifTag tag = exif_tag_from_name( it.key().ascii());
-            entry->components = ev.components();
-            entry->format = type2format( ev.type());
-            entry->tag = tag;
-//         exif_entry_dump(entry, 2);
-            ev.convertToData(&entry->data, &entry->size, bO);
-        }
-    }
-}
diff --git a/filters/krita/libkisexif/kis_exif_io.h b/filters/krita/libkisexif/kis_exif_io.h
deleted file mode 100644
index 589288117..000000000
--- a/filters/krita/libkisexif/kis_exif_io.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_EXIF_IO_H
-#define KIS_EXIF_IO_H
-
-extern "C" {
-#include <libexif/exif-data.h>
-}
-
-#include <kis_exif_info.h>
-
-class KisExifIO {
-    public:
-        KisExifIO( KisExifInfo* ei);
-    public:
-        void readExifFromFile( const char* fileName );
-        void readExifFromMem( const unsigned char* data , unsigned int size);
-        void saveExifToMem( unsigned char** data , unsigned int *size);
-    private:
-        void readExifData( ExifData* exifData );
-        void writeExifData( ExifData* exifData );
-        ExifFormat type2format( ExifValue::ExifType type);
-        ExifValue::ExifType format2type(ExifFormat format);
-    private:
-        KisExifInfo* m_exifInfo;
-};
-
-#endif
diff --git a/filters/krita/magick/Makefile.am b/filters/krita/magick/Makefile.am
deleted file mode 100644
index d0245127b..000000000
--- a/filters/krita/magick/Makefile.am
+++ /dev/null
@@ -1,44 +0,0 @@
-kde_module_LTLIBRARIES = libkritamagickimport.la libkritamagickexport.la
-
-libkritamagickexport_la_LDFLAGS = $(KDE_PLUGIN) $(LIBMAGICK_LDFLAGS) $(KDE_RPATH) $(LIBMAGICK_RPATH) $(all_libraries) -module -avoid-version -no-undefined -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritamagickexport_la_LIBADD = \
-	$(KOFFICE_LIBS) \
-	$(LIBMAGICK_LIBS) \
-	$(top_builddir)/krita/libkritacommon.la
-
-libkritamagickimport_la_LDFLAGS = $(KDE_PLUGIN) $(LIBMAGICK_LDFLAGS) $(KDE_RPATH) $(LIBMAGICK_RPATH) $(all_libraries) -module -avoid-version -no-undefined -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritamagickimport_la_LIBADD = \
-	$(KOFFICE_LIBS) \
-	$(LIBMAGICK_LIBS) \
-	$(top_builddir)/krita/libkritacommon.la
-
-INCLUDES= \
-	-I$(srcdir) \
-	 $(KOFFICE_INCLUDES) \
-	-I$(top_srcdir)/krita \
-	-I$(top_srcdir)/krita/core \
-	-I$(top_srcdir)/krita/sdk \
-	-I$(top_srcdir)/krita/core/tiles \
-	-I$(top_srcdir)/krita/kritacolor \
-	-I$(top_srcdir)/krita/ui \
-        $(KOFFICE_INCLUDES) -I$(interfacedir) \
-        $(KOPAINTER_INCLUDES) $(LIBMAGICK_CPPFLAGS) \
-	$(all_includes) 
-
-service_DATA = krita_magick_import.desktop krita_magick_export.desktop
-servicedir = $(kde_servicesdir)
-
-kdelnk_DATA = krita_magick.desktop
-kdelnkdir = $(kde_appsdir)/Office
-
-libkritamagickimport_la_SOURCES = magickimport.cpp kis_image_magick_converter.cc
-libkritamagickexport_la_SOURCES = magickexport.cpp kis_image_magick_converter.cc
-
-METASOURCES = AUTO
-
-
-KDE_CXXFLAGS = $(USE_EXCEPTIONS)
diff --git a/filters/krita/magick/configure.in.bot b/filters/krita/magick/configure.in.bot
deleted file mode 100644
index a5767def5..000000000
--- a/filters/krita/magick/configure.in.bot
+++ /dev/null
@@ -1,15 +0,0 @@
-# ImageMagick is deprecated, we don't care anymore if it's not here
-#
-#if test -z "$LIBMAGICK_LIBS"; then
-#  echo ""
-#  echo "You're missing ImageMagick (>=6.1.0). krita's ImageMagick import/export"
-#  echo "filter will not be compiled. You can download ImageMagick from"
-#  echo "http://www.imagemagick.org/. The ImageMagick filter allows krita to"
-#  echo "read and write XCF, PSD, GIF, BMP, and many other image formats."
-#  echo ""
-#  echo "If you have problems compiling ImageMagick, please try configuring it using"
-#  echo "the --without-magick-plus-plus flag, the C++ API isn't needed for krita."
-#  echo ""
-#  all_tests=bad
-#fi
-
diff --git a/filters/krita/magick/kis_image_magick_converter.cc b/filters/krita/magick/kis_image_magick_converter.cc
deleted file mode 100644
index e632b1a79..000000000
--- a/filters/krita/magick/kis_image_magick_converter.cc
+++ /dev/null
@@ -1,1087 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <magick/api.h>
-
-#include <tqfile.h>
-#include <tqfileinfo.h>
-#include <tqstring.h>
-
-#include <kdeversion.h>
-#include <kdebug.h>
-#include <kapplication.h>
-#include <klocale.h>
-#include <kurl.h>
-#include <kio/netaccess.h>
-
-#include <tqcolor.h>
-
-#include "kis_types.h"
-#include "kis_global.h"
-#include "kis_doc.h"
-#include "kis_image.h"
-#include "kis_layer.h"
-#include "kis_undo_adapter.h"
-#include "kis_image_magick_converter.h"
-#include "kis_meta_registry.h"
-#include "kis_colorspace_factory_registry.h"
-#include "kis_iterators_pixel.h"
-#include "kis_colorspace.h"
-#include "kis_profile.h"
-#include "kis_annotation.h"
-#include "kis_paint_layer.h"
-#include "kis_group_layer.h"
-#include "kis_paint_device.h"
-
-#include "../../../config.h"
-
-namespace {
-
-    const TQ_UINT8 PIXEL_BLUE = 0;
-    const TQ_UINT8 PIXEL_GREEN = 1;
-    const TQ_UINT8 PIXEL_RED = 2;
-    const TQ_UINT8 PIXEL_ALPHA = 3;
-
-    static const TQ_UINT8 PIXEL_CYAN = 0;
-    static const TQ_UINT8 PIXEL_MAGENTA = 1;
-    static const TQ_UINT8 PIXEL_YELLOW = 2;
-    static const TQ_UINT8 PIXEL_BLACK = 3;
-    static const TQ_UINT8 PIXEL_CMYK_ALPHA = 4;
-
-    static const TQ_UINT8 PIXEL_GRAY = 0;
-    static const TQ_UINT8 PIXEL_GRAY_ALPHA = 1;
-
-    /**
-     * Make this more flexible -- although... ImageMagick
-     * isn't that flexible either.
-     */
-    TQString getColorSpaceName(ColorspaceType type, unsigned long imageDepth = 8)
-    {
-
-        if (type == GRAYColorspace) {
-            if (imageDepth == 8)
-                return "GRAYA";
-            else if ( imageDepth == 16 )
-                return "GRAYA16" ;
-        }
-        else if (type == CMYKColorspace) {
-            if (imageDepth == 8)
-                return "CMYK";
-            else if ( imageDepth == 16 ) {
-                return "CMYK16";
-            }
-        }
-        else if (type == LABColorspace) {
-            kdDebug(41008) << "Lab!\n";
-            return "LABA";
-        }
-        else if (type == RGBColorspace || type == sRGBColorspace || type == TransparentColorspace) {
-            if (imageDepth == 8)
-                return "RGBA";
-            else if (imageDepth == 16)
-                return "RGBA16";
-        }
-        return "";
-
-    }
-
-    ColorspaceType getColorTypeforColorSpace( KisColorSpace * cs )
-    {
-        if ( cs->id() == KisID("GRAYA") || cs->id() == KisID("GRAYA16") ) return GRAYColorspace;
-        if ( cs->id() == KisID("RGBA") || cs->id() == KisID("RGBA16") ) return RGBColorspace;
-        if ( cs->id() == KisID("CMYK") || cs->id() == KisID("CMYK16") ) return CMYKColorspace;
-        if ( cs->id() == KisID("LABA") ) return LABColorspace;
-
-        kdDebug(41008) << "Cannot export images in " + cs->id().name() + " yet.\n";
-        return RGBColorspace;
-
-    }
-
-    KisProfile * getProfileForProfileInfo(const Image * image)
-    {
-#ifndef HAVE_MAGICK6
-        return 0;
-#else
-
-        if (image->profiles == NULL)
-            return  0;
-
-        const char *name;
-        const StringInfo *profile;
-
-        KisProfile * p = 0;
-
-        ResetImageProfileIterator(image);
-        for (name = GetNextImageProfile(image); name != (char *) NULL; )
-        {
-            profile = GetImageProfile(image, name);
-            if (profile == (StringInfo *) NULL)
-                continue;
-
-            // XXX: Hardcoded for icc type -- is that correct for us?
-            if (TQString::compare(name, "icc") == 0) {
-                TQByteArray rawdata;
-                rawdata.resize(profile->length);
-                memcpy(rawdata.data(), profile->datum, profile->length);
-
-                p = new KisProfile(rawdata);
-                if (p == 0)
-                    return 0;
-            }
-            name = GetNextImageProfile(image);
-        }
-        return p;
-#endif
-    }
-
-    void setAnnotationsForImage(const Image * src, KisImageSP image)
-    {
-#ifndef HAVE_MAGICK6
-        return;
-#else
-        if (src->profiles == NULL)
-            return;
-
-        const char *name = 0;
-        const StringInfo *profile;
-        KisAnnotation* annotation = 0;
-
-        // Profiles and so
-        ResetImageProfileIterator(src);
-        while((name = GetNextImageProfile(src))) {
-            profile = GetImageProfile(src, name);
-            if (profile == (StringInfo *) NULL)
-                continue;
-
-            // XXX: icc will be written seperately?
-            if (TQString::compare(name, "icc") == 0)
-                continue;
-
-            TQByteArray rawdata;
-            rawdata.resize(profile->length);
-            memcpy(rawdata.data(), profile->datum, profile->length);
-
-            annotation = new KisAnnotation(TQString(name), "", rawdata);
-            Q_CHECK_PTR(annotation);
-
-            image -> addAnnotation(annotation);
-        }
-
-        // Attributes, since we have no hint on if this is an attribute or a profile
-        // annotation, we prefix it with 'krita_attribute:'. XXX This needs to be rethought!
-        // The joys of imagemagick. From at version 6.2.1 (dfaure has 6.2.0 and confirms the
-        // old way of doing things) they changed the src -> attributes
-        // to void* and require us to use the iterator functions. So we #if around that, *sigh*
-#if MagickLibVersion >= 0x621
-        const ImageAttribute * attr;
-        ResetImageAttributeIterator(src);
-        while ( (attr = GetNextImageAttribute(src)) ) {
-#else
-            ImageAttribute * attr = src -> attributes;
-            while (attr) {
-#endif
-                TQByteArray rawdata;
-                int len = strlen(attr -> value) + 1;
-                rawdata.resize(len);
-                memcpy(rawdata.data(), attr -> value, len);
-
-                annotation = new KisAnnotation(
-                    TQString("krita_attribute:%1").tqarg(TQString(attr -> key)), "", rawdata);
-                Q_CHECK_PTR(annotation);
-
-                image -> addAnnotation(annotation);
-#if MagickLibVersion < 0x620
-                attr = attr -> next;
-#endif
-            }
-
-#endif
-        }
-    }
-
-    void exportAnnotationsForImage(Image * dst, vKisAnnotationSP_it& it, vKisAnnotationSP_it& annotationsEnd)
-    {
-#ifndef HAVE_MAGICK6
-        return;
-#else
-        while(it != annotationsEnd) {
-            if (!(*it) || (*it) -> type() == TQString()) {
-                    kdDebug(41008) << "Warning: empty annotation" << endl;
-                    ++it;
-                    continue;
-            }
-
-            kdDebug(41008) << "Trying to store annotation of type " << (*it) -> type() << " of size " << (*it) -> annotation() . size() << endl;
-
-            if ((*it) -> type().startsWith("krita_attribute:")) { // Attribute
-                if (!SetImageAttribute(dst,
-                                        (*it) -> type().mid(strlen("krita_attribute:")).ascii(),
-                                        (*it) -> annotation() . data()) ) {
-                        kdDebug(41008) << "Storing of attribute " << (*it) -> type() << "failed!\n";
-                    }
-            } else { // Profile
-                    if (!ProfileImage(dst, (*it) -> type().ascii(),
-                                    (unsigned char*)(*it) -> annotation() . data(),
-                                    (*it) -> annotation() . size(), MagickFalse)) {
-                        kdDebug(41008) << "Storing failed!" << endl;
-                    }
-            }
-            ++it;
-        }
-#endif
-    }
-
-
-    void InitGlobalMagick()
-    {
-        static bool init = false;
-
-        if (!init) {
-            KApplication *app = KApplication::kApplication();
-
-            InitializeMagick(*app -> argv());
-            atexit(DestroyMagick);
-            init = true;
-        }
-    }
-
-    /*
-     * ImageMagick progress monitor callback.  Unfortunately it doesn't support passing in some user
-     * data which complicates things quite a bit.  The plan was to allow the user start multiple
-     * import/scans if he/she so wished.  However, without passing user data it's not possible to tell
-     * on which task we have made progress on.
-     *
-     * Additionally, ImageMagick is thread-safe, not re-entrant... i.e. IM does not relinquish held
-     * locks when calling user defined callbacks, this means that the same thread going back into IM
-     * would deadlock since it would try to acquire locks it already holds.
-     */
-#ifdef HAVE_MAGICK6
-    MagickBooleanType monitor(const char *text, const ExtendedSignedIntegralType, const ExtendedUnsignedIntegralType, ExceptionInfo *)
-    {
-        KApplication *app = KApplication::kApplication();
-
-        Q_ASSERT(app);
-
-        if (app -> hasPendingEvents())
-            app -> processEvents();
-
-        printf("%s\n", text);
-        return MagickTrue;
-    }
-#else
-    unsigned int monitor(const char *text, const ExtendedSignedIntegralType, const ExtendedUnsignedIntegralType, ExceptionInfo *)
-    {
-        KApplication *app = KApplication::kApplication();
-
-        Q_ASSERT(app);
-
-        if (app -> hasPendingEvents())
-            app -> processEvents();
-
-        printf("%s\n", text);
-        return true;
-    }
-#endif
-
-
-
-KisImageMagickConverter::KisImageMagickConverter(KisDoc *doc, KisUndoAdapter *adapter)
-{
-    InitGlobalMagick();
-    init(doc, adapter);
-    SetMonitorHandler(monitor);
-    m_stop = false;
-}
-
-KisImageMagickConverter::~KisImageMagickConverter()
-{
-}
-
-KisImageBuilder_Result KisImageMagickConverter::decode(const KURL& uri, bool isBlob)
-{
-    Image *image;
-    Image *images;
-    ExceptionInfo ei;
-    ImageInfo *ii;
-
-    if (m_stop) {
-        m_img = 0;
-        return KisImageBuilder_RESULT_INTR;
-    }
-
-    GetExceptionInfo(&ei);
-    ii = CloneImageInfo(0);
-
-    if (isBlob) {
-
-        // TODO : Test.  Does BlobToImage even work?
-        Q_ASSERT(uri.isEmpty());
-        images = BlobToImage(ii, &m_data[0], m_data.size(), &ei);
-    } else {
-
-        qstrncpy(ii -> filename, TQFile::encodeName(uri.path()), MaxTextExtent - 1);
-
-        if (ii -> filename[MaxTextExtent - 1]) {
-            emit notifyProgressError();
-            return KisImageBuilder_RESULT_PATH;
-        }
-
-        images = ReadImage(ii, &ei);
-
-    }
-
-    if (ei.severity != UndefinedException)
-        CatchException(&ei);
-
-    if (images == 0) {
-        DestroyImageInfo(ii);
-        DestroyExceptionInfo(&ei);
-        emit notifyProgressError();
-        return KisImageBuilder_RESULT_FAILURE;
-    }
-
-    emit notifyProgressStage(i18n("Importing..."), 0);
-
-    m_img = 0;
-
-    while ((image = RemoveFirstImageFromList(&images))) {
-        ViewInfo *vi = OpenCacheView(image);
-
-        // Determine image depth -- for now, all channels of an imported image are of the same depth
-        unsigned long imageDepth = image->depth;
-        kdDebug(41008) << "Image depth: " << imageDepth << "\n";
-
-        TQString csName;
-        KisColorSpace * cs = 0;
-        ColorspaceType colorspaceType;
-
-        // Determine image type -- rgb, grayscale or cmyk
-        if (GetImageType(image, &ei) == GrayscaleType || GetImageType(image, &ei) == GrayscaleMatteType) {
-            if (imageDepth == 8)
-                csName = "GRAYA";
-            else if ( imageDepth == 16 )
-                csName = "GRAYA16" ;
-            colorspaceType = GRAYColorspace;
-        }
-        else {
-            colorspaceType = image->colorspace;
-            csName = getColorSpaceName(image -> colorspace, imageDepth);
-        }
-
-        kdDebug(41008) << "image has " << csName << " colorspace\n";
-        
-        KisProfile * profile = getProfileForProfileInfo(image);
-        if (profile)
-        {
-            kdDebug(41008) << "image has embedded profile: " << profile -> productName() << "\n";
-            cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace(csName, profile);
-        }
-        else
-            cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID(csName,""),"");
-
-        if (!cs) {
-            kdDebug(41008) << "Krita does not support colorspace " << image -> colorspace << "\n";
-            CloseCacheView(vi);
-            DestroyImage(image);
-            DestroyExceptionInfo(&ei);
-            DestroyImageList(images);
-            DestroyImageInfo(ii);
-            emit notifyProgressError();
-            return KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE;
-        }
-
-        if( ! m_img) {
-            m_img = new KisImage(m_doc->undoAdapter(), image -> columns, image -> rows, cs, "built image");
-            Q_CHECK_PTR(m_img);
-            m_img->blockSignals(true); // Don't send out signals while we're building the image
-            
-            // XXX I'm assuming seperate layers won't have other profile things like EXIF
-            setAnnotationsForImage(image, m_img);
-        }
-
-        if (image -> columns && image -> rows) {
-
-            // Opacity (set by the photoshop import filter)
-            TQ_UINT8 opacity = OPACITY_OPAQUE;
-            const ImageAttribute * attr = GetImageAttribute(image, "[layer-opacity]");
-            if (attr != 0) {
-                opacity = TQ_UINT8_MAX - Downscale(TQString(attr->value).toInt());
-            }
-
-            KisPaintLayerSP layer = 0;
-
-            attr = GetImageAttribute(image, "[layer-name]");
-            if (attr != 0) {
-                layer = new KisPaintLayer(m_img, attr->value, opacity);
-            }
-            else {
-                layer = new KisPaintLayer(m_img, m_img -> nextLayerName(), opacity);
-            }
-
-            Q_ASSERT(layer);
-
-            // Layerlocation  (set by the photoshop import filter)
-            TQ_INT32 x_offset = 0;
-            TQ_INT32 y_offset = 0;
-
-            attr = GetImageAttribute(image, "[layer-xpos]");
-            if (attr != 0) {
-                x_offset = TQString(attr->value).toInt();
-            }
-
-            attr = GetImageAttribute(image, "[layer-ypos]");
-            if (attr != 0) {
-                y_offset = TQString(attr->value).toInt();
-            }
-
-
-            for (TQ_UINT32 y = 0; y < image->rows; y ++)
-            {
-                const PixelPacket *pp = AcquireCacheView(vi, 0, y, image->columns, 1, &ei);
-
-                if(!pp)
-                {
-                    CloseCacheView(vi);
-                    DestroyImageList(images);
-                    DestroyImageInfo(ii);
-                    DestroyExceptionInfo(&ei);
-                    emit notifyProgressError();
-                    return KisImageBuilder_RESULT_FAILURE;
-                }
-
-                IndexPacket * indexes = GetCacheViewIndexes(vi);
-
-                KisHLineIteratorPixel hiter = layer->paintDevice()->createHLineIterator(0, y, image->columns, true);
-
-                if (colorspaceType== CMYKColorspace) {
-                    if (imageDepth == 8) {
-                        int x = 0;
-                        while (!hiter.isDone())
-                        {
-                            TQ_UINT8 *ptr= hiter.rawData();
-                            *(ptr++) = Downscale(pp->red); // cyan
-                            *(ptr++) = Downscale(pp->green); // magenta
-                            *(ptr++) = Downscale(pp->blue); // yellow
-                            *(ptr++) = Downscale(indexes[x]); // Black
-// XXX: Warning! This ifdef messes up the paren matching big-time!
-#ifdef HAVE_MAGICK6
-                            if (image->matte != MagickFalse) {
-#else
-                            if (image->matte == true) {
-#endif
-                                *(ptr++) = OPACITY_OPAQUE - Downscale(pp->opacity);
-                            }
-                            else {
-                                *(ptr++) = OPACITY_OPAQUE;
-                            }
-                            ++x;
-                            pp++;
-                            ++hiter;
-                        }
-                    }
-                }
-                else if (colorspaceType == LABColorspace) {
-                    while(! hiter.isDone())
-                    {
-                        TQ_UINT16 *ptr = reinterpret_cast<TQ_UINT16 *>(hiter.rawData());
-                        
-                        *(ptr++) = ScaleQuantumToShort(pp->red);
-                        *(ptr++) = ScaleQuantumToShort(pp->green);
-                        *(ptr++) = ScaleQuantumToShort(pp->blue);
-                        *(ptr++) = 65535/*OPACITY_OPAQUE*/ - ScaleQuantumToShort(pp->opacity);
-
-                        pp++;
-                        ++hiter;
-                    }
-                }
-                else if (colorspaceType == RGBColorspace ||
-                             colorspaceType == sRGBColorspace ||
-                             colorspaceType == TransparentColorspace)
-                    {
-                        if (imageDepth == 8) {
-                            while(! hiter.isDone())
-                            {
-                                TQ_UINT8 *ptr= hiter.rawData();
-                                // XXX: not colorstrategy and bitdepth independent
-                                *(ptr++) = Downscale(pp->blue);
-                                *(ptr++) = Downscale(pp->green);
-                                *(ptr++) = Downscale(pp->red);
-                                *(ptr++) = OPACITY_OPAQUE - Downscale(pp->opacity);
-
-                                pp++;
-                                ++hiter;
-                            }
-                        }
-                        else if (imageDepth == 16) {
-                            while(! hiter.isDone())
-                            {
-                                TQ_UINT16 *ptr = reinterpret_cast<TQ_UINT16 *>(hiter.rawData());
-                                // XXX: not colorstrategy independent
-                                *(ptr++) = ScaleQuantumToShort(pp->blue);
-                                *(ptr++) = ScaleQuantumToShort(pp->green);
-                                *(ptr++) = ScaleQuantumToShort(pp->red);
-                                *(ptr++) = 65535/*OPACITY_OPAQUE*/ - ScaleQuantumToShort(pp->opacity);
-
-                                pp++;
-                                ++hiter;
-                            }
-                        }
-                    }
-                    else if ( colorspaceType == GRAYColorspace) {
-                        if (imageDepth == 8) {
-                            while(! hiter.isDone())
-                            {
-                                TQ_UINT8 *ptr= hiter.rawData();
-                                // XXX: not colorstrategy and bitdepth independent
-                                *(ptr++) = Downscale(pp->blue);
-                                *(ptr++) = OPACITY_OPAQUE - Downscale(pp->opacity);
-
-                                pp++;
-                                ++hiter;
-                            }
-                        }
-                        else if (imageDepth == 16) {
-                            while(! hiter.isDone())
-                            {
-                                TQ_UINT16 *ptr = reinterpret_cast<TQ_UINT16 *>(hiter.rawData());
-                                // XXX: not colorstrategy independent
-                                *(ptr++) = ScaleQuantumToShort(pp->blue);
-                                *(ptr++) = 65535/*OPACITY_OPAQUE*/ - ScaleQuantumToShort(pp->opacity);
-
-                                pp++;
-                                ++hiter;
-                            }
-                        }
-                    }
-
-                    emit notifyProgress(y * 100 / image->rows);
-
-                    if (m_stop) {
-                        CloseCacheView(vi);
-                        DestroyImage(image);
-                        DestroyImageList(images);
-                        DestroyImageInfo(ii);
-                        DestroyExceptionInfo(&ei);
-                        m_img = 0;
-                        return KisImageBuilder_RESULT_INTR;
-                    }
-                }
-                m_img->addLayer(layer.data(), m_img->rootLayer());
-                layer->paintDevice()->move(x_offset, y_offset);
-            }
-
-            emit notifyProgressDone();
-            CloseCacheView(vi);
-            DestroyImage(image);
-        }
-
-        emit notifyProgressDone();
-        DestroyImageList(images);
-        DestroyImageInfo(ii);
-        DestroyExceptionInfo(&ei);
-        return KisImageBuilder_RESULT_OK;
-    }
-
-    KisImageBuilder_Result KisImageMagickConverter::buildImage(const KURL& uri)
-    {
-        if (uri.isEmpty())
-            return KisImageBuilder_RESULT_NO_URI;
-
-        if (!KIO::NetAccess::exists(uri, false, tqApp -> mainWidget())) {
-            return KisImageBuilder_RESULT_NOT_EXIST;
-        }
-
-        KisImageBuilder_Result result = KisImageBuilder_RESULT_FAILURE;
-        TQString tmpFile;
-
-        if (KIO::NetAccess::download(uri, tmpFile, tqApp -> mainWidget())) {
-            KURL uriTF;
-            uriTF.setPath( tmpFile );
-            result = decode(uriTF, false);
-            KIO::NetAccess::removeTempFile(tmpFile);
-        }
-
-        return result;
-    }
-
-
-    KisImageSP KisImageMagickConverter::image()
-    {
-        return m_img;
-    }
-
-    void KisImageMagickConverter::init(KisDoc *doc, KisUndoAdapter *adapter)
-    {
-        m_doc = doc;
-        m_adapter = adapter;
-        m_job = 0;
-    }
-
-    KisImageBuilder_Result KisImageMagickConverter::buildFile(const KURL& uri, KisPaintLayerSP layer, vKisAnnotationSP_it annotationsStart, vKisAnnotationSP_it annotationsEnd)
-    {
-        Image *image;
-        ExceptionInfo ei;
-        ImageInfo *ii;
-
-        if (!layer)
-            return KisImageBuilder_RESULT_INVALID_ARG;
-
-        KisImageSP img = layer->image();
-        if (!img)
-            return KisImageBuilder_RESULT_EMPTY;
-
-        if (uri.isEmpty())
-            return KisImageBuilder_RESULT_NO_URI;
-
-        if (!uri.isLocalFile())
-            return KisImageBuilder_RESULT_NOT_LOCAL;
-
-
-        TQ_UINT32 layerBytesPerChannel = layer->paintDevice()->pixelSize() / layer->paintDevice()->nChannels();
-
-        GetExceptionInfo(&ei);
-
-        ii = CloneImageInfo(0);
-
-        qstrncpy(ii -> filename, TQFile::encodeName(uri.path()), MaxTextExtent - 1);
-
-        if (ii -> filename[MaxTextExtent - 1]) {
-            emit notifyProgressError();
-            return KisImageBuilder_RESULT_PATH;
-        }
-
-        if (!img -> width() || !img -> height())
-            return KisImageBuilder_RESULT_EMPTY;
-
-        if (layerBytesPerChannel < 2) {
-            ii->depth = 8;
-        }
-        else {
-            ii->depth = 16;
-        }
-
-        ii->colorspace = getColorTypeforColorSpace(layer->paintDevice()->colorSpace());
-
-        image = AllocateImage(ii);
-        SetImageColorspace(image, ii->colorspace);
-        image -> columns = img -> width();
-        image -> rows = img -> height();
-
-        kdDebug(41008) << "Saving with colorspace " << image->colorspace << ", (" << layer->paintDevice()->colorSpace()->id().name() << ")\n";
-        kdDebug(41008) << "IM Image thinks it has depth: " << image->depth << "\n";
-
-#ifdef HAVE_MAGICK6
-        //    if ( layer-> hasAlpha() )
-        image -> matte = MagickTrue;
-        //    else
-        //        image -> matte = MagickFalse;
-#else
-        //    image -> matte = layer -> hasAlpha();
-        image -> matte = true;
-#endif
-
-        TQ_INT32 y, height, width;
-
-        height = img -> height();
-        width = img -> width();
-
-        bool alpha = true;
-        TQString ext = TQFileInfo(TQFile::encodeName(uri.path())).extension(false).upper();
-        if (ext == "BMP") {
-            alpha = false;
-            qstrncpy(ii->magick, "BMP2", MaxTextExtent - 1);
-        }
-        else if (ext == "RGB") {
-            qstrncpy(ii->magick, "SGI", MaxTextExtent - 1);
-        }
-
-        for (y = 0; y < height; y++) {
-
-            // Allocate pixels for this scanline
-            PixelPacket * pp = SetImagePixels(image, 0, y, width, 1);
-
-            if (!pp) {
-                DestroyExceptionInfo(&ei);
-                DestroyImage(image);
-                emit notifyProgressError();
-                return KisImageBuilder_RESULT_FAILURE;
-
-            }
-
-            KisHLineIterator it = layer->paintDevice()->createHLineIterator(0, y, width, false);
-            if (alpha)
-                SetImageType(image, TrueColorMatteType);
-            else
-                SetImageType(image,  TrueColorType);
-
-            if (image->colorspace== CMYKColorspace) {
-
-                IndexPacket * indexes = GetIndexes(image);
-                int x = 0;
-                if (layerBytesPerChannel == 2) {
-                    while (!it.isDone()) {
-
-                        const TQ_UINT16 *d = reinterpret_cast<const TQ_UINT16 *>(it.rawData());
-                        pp -> red = ScaleShortToQuantum(d[PIXEL_CYAN]);
-                        pp -> green = ScaleShortToQuantum(d[PIXEL_MAGENTA]);
-                        pp -> blue = ScaleShortToQuantum(d[PIXEL_YELLOW]);
-                        if (alpha)
-                            pp -> opacity = ScaleShortToQuantum(65535/*OPACITY_OPAQUE*/ - d[PIXEL_CMYK_ALPHA]);
-                        indexes[x] = ScaleShortToQuantum(d[PIXEL_BLACK]);
-                        x++;
-                        pp++;
-                        ++it;
-                    }
-                }
-                else {
-                    while (!it.isDone()) {
-
-                        TQ_UINT8 * d = it.rawData();
-                        pp -> red = Upscale(d[PIXEL_CYAN]);
-                        pp -> green = Upscale(d[PIXEL_MAGENTA]);
-                        pp -> blue = Upscale(d[PIXEL_YELLOW]);
-                        if (alpha)
-                            pp -> opacity = Upscale(OPACITY_OPAQUE - d[PIXEL_CMYK_ALPHA]);
-
-                        indexes[x]= Upscale(d[PIXEL_BLACK]);
-
-                        x++;
-                        pp++;
-                        ++it;
-                    }
-                }
-            }
-            else if (image->colorspace== RGBColorspace ||
-                     image->colorspace == sRGBColorspace ||
-                     image->colorspace == TransparentColorspace)
-            {
-                if (layerBytesPerChannel == 2) {
-                    while (!it.isDone()) {
-
-                        const TQ_UINT16 *d = reinterpret_cast<const TQ_UINT16 *>(it.rawData());
-                        pp -> red = ScaleShortToQuantum(d[PIXEL_RED]);
-                        pp -> green = ScaleShortToQuantum(d[PIXEL_GREEN]);
-                        pp -> blue = ScaleShortToQuantum(d[PIXEL_BLUE]);
-                        if (alpha)
-                            pp -> opacity = ScaleShortToQuantum(65535/*OPACITY_OPAQUE*/ - d[PIXEL_ALPHA]);
-
-                        pp++;
-                        ++it;
-                    }
-                }
-                else {
-                    while (!it.isDone()) {
-
-                        TQ_UINT8 * d = it.rawData();
-                        pp -> red = Upscale(d[PIXEL_RED]);
-                        pp -> green = Upscale(d[PIXEL_GREEN]);
-                        pp -> blue = Upscale(d[PIXEL_BLUE]);
-                        if (alpha)
-                            pp -> opacity = Upscale(OPACITY_OPAQUE - d[PIXEL_ALPHA]);
-
-                        pp++;
-                        ++it;
-                    }
-                }
-            }
-            else if (image->colorspace == GRAYColorspace)
-            {
-                SetImageType(image, GrayscaleMatteType);
-                if (layerBytesPerChannel == 2) {
-                    while (!it.isDone()) {
-
-                        const TQ_UINT16 *d = reinterpret_cast<const TQ_UINT16 *>(it.rawData());
-                        pp -> red = ScaleShortToQuantum(d[PIXEL_GRAY]);
-                        pp -> green = ScaleShortToQuantum(d[PIXEL_GRAY]);
-                        pp -> blue = ScaleShortToQuantum(d[PIXEL_GRAY]);
-                        if (alpha)
-                            pp -> opacity = ScaleShortToQuantum(65535/*OPACITY_OPAQUE*/ - d[PIXEL_GRAY_ALPHA]);
-
-                        pp++;
-                        ++it;
-                    }
-                }
-                else {
-                    while (!it.isDone()) {
-                        TQ_UINT8 * d = it.rawData();
-                        pp -> red = Upscale(d[PIXEL_GRAY]);
-                        pp -> green = Upscale(d[PIXEL_GRAY]);
-                        pp -> blue = Upscale(d[PIXEL_GRAY]);
-                        if (alpha)
-                            pp -> opacity = Upscale(OPACITY_OPAQUE - d[PIXEL_GRAY_ALPHA]);
-
-                        pp++;
-                        ++it;
-                    }
-                }
-            }
-            else {
-                kdDebug(41008) << "Unsupported image format\n";
-                return KisImageBuilder_RESULT_INVALID_ARG;
-            }
-
-            emit notifyProgressStage(i18n("Saving..."), y * 100 / height);
-
-#ifdef HAVE_MAGICK6
-            if (SyncImagePixels(image) == MagickFalse)
-                kdDebug(41008) << "Syncing pixels failed\n";
-#else
-            if (!SyncImagePixels(image))
-                kdDebug(41008) << "Syncing pixels failed\n";
-#endif
-        }
-
-        // set the annotations
-        exportAnnotationsForImage(image, annotationsStart, annotationsEnd);
-
-        // XXX: Write to a temp file, then have Krita use KIO to copy temp
-        // image to remote location.
-
-        WriteImage(ii, image);
-        DestroyExceptionInfo(&ei);
-        DestroyImage(image);
-        emit notifyProgressDone();
-        return KisImageBuilder_RESULT_OK;
-    }
-
-    void KisImageMagickConverter::ioData(KIO::Job *job, const TQByteArray& data)
-    {
-        if (data.isNull() || data.isEmpty()) {
-            emit notifyProgressStage(i18n("Loading..."), 0);
-            return;
-        }
-
-        if (m_data.empty()) {
-            Image *image;
-            ImageInfo *ii;
-            ExceptionInfo ei;
-
-            ii = CloneImageInfo(0);
-            GetExceptionInfo(&ei);
-            image = PingBlob(ii, data.data(), data.size(), &ei);
-
-            if (image == 0 || ei.severity == BlobError) {
-                DestroyExceptionInfo(&ei);
-                DestroyImageInfo(ii);
-                job -> kill();
-                emit notifyProgressError();
-                return;
-            }
-
-            DestroyImage(image);
-            DestroyExceptionInfo(&ei);
-            DestroyImageInfo(ii);
-            emit notifyProgressStage(i18n("Loading..."), 0);
-        }
-
-        Q_ASSERT(data.size() + m_data.size() <= m_size);
-        memcpy(&m_data[m_data.size()], data.data(), data.count());
-        m_data.resize(m_data.size() + data.count());
-        emit notifyProgressStage(i18n("Loading..."), m_data.size() * 100 / m_size);
-
-        if (m_stop)
-            job -> kill();
-    }
-
-    void KisImageMagickConverter::ioResult(KIO::Job *job)
-    {
-        m_job = 0;
-
-        if (job -> error())
-            emit notifyProgressError();
-
-        decode(KURL(), true);
-    }
-
-    void KisImageMagickConverter::ioTotalSize(KIO::Job * /*job*/, KIO::filesize_t size)
-    {
-        m_size = size;
-        m_data.reserve(size);
-        emit notifyProgressStage(i18n("Loading..."), 0);
-    }
-
-    void KisImageMagickConverter::cancel()
-    {
-        m_stop = true;
-    }
-
-    /**
-     * @name readFilters
-     * @return Provide a list of file formats the application can read.
-     */
-    TQString KisImageMagickConverter::readFilters()
-    {
-        TQString s;
-        TQString all;
-        TQString name;
-        TQString description;
-        unsigned long matches;
-
-#ifdef HAVE_MAGICK6
-#ifdef HAVE_OLD_GETMAGICKINFOLIST
-        const MagickInfo **mi;
-        mi = GetMagickInfoList("*", &matches);
-#else // HAVE_OLD_GETMAGICKINFOLIST
-        ExceptionInfo ei;
-        GetExceptionInfo(&ei);
-        const MagickInfo **mi;
-        mi = GetMagickInfoList("*", &matches, &ei);
-        DestroyExceptionInfo(&ei);
-#endif // HAVE_OLD_GETMAGICKINFOLIST
-#else // HAVE_MAGICK6
-        const MagickInfo *mi;
-        ExceptionInfo ei;
-        GetExceptionInfo(&ei);
-        mi = GetMagickInfo("*", &ei);
-        DestroyExceptionInfo(&ei);
-#endif // HAVE_MAGICK6
-
-        if (!mi)
-            return s;
-
-#ifdef HAVE_MAGICK6
-        for (unsigned long i = 0; i < matches; i++) {
-            const MagickInfo *info = mi[i];
-            if (info -> stealth)
-                continue;
-
-            if (info -> decoder) {
-                name = info -> name;
-                description = info -> description;
-                kdDebug(41008) << "Found import filter for: " << name << "\n";
-
-                if (!description.isEmpty() && !description.tqcontains('/')) {
-                    all += "*." + name.lower() + " *." + name + " ";
-                    s += "*." + name.lower() + " *." + name + "|";
-                    s += i18n(description.utf8());
-                    s += "\n";
-                }
-            }
-        }
-#else
-        for (; mi; mi = reinterpret_cast<const MagickInfo*>(mi -> next)) {
-            if (mi -> stealth)
-                continue;
-            if (mi -> decoder) {
-                name = mi -> name;
-                description = mi -> description;
-                kdDebug(41008) << "Found import filter for: " << name << "\n";
-
-                if (!description.isEmpty() && !description.tqcontains('/')) {
-                    all += "*." + name.lower() + " *." + name + " ";
-                    s += "*." + name.lower() + " *." + name + "|";
-                    s += i18n(description.utf8());
-                    s += "\n";
-                }
-            }
-        }
-#endif
-
-        all += "|" + i18n("All Images");
-        all += "\n";
-
-        return all + s;
-    }
-
-    TQString KisImageMagickConverter::writeFilters()
-    {
-        TQString s;
-        TQString all;
-        TQString name;
-        TQString description;
-        unsigned long matches;
-
-#ifdef HAVE_MAGICK6
-#ifdef HAVE_OLD_GETMAGICKINFOLIST
-        const MagickInfo **mi;
-        mi = GetMagickInfoList("*", &matches);
-#else // HAVE_OLD_GETMAGICKINFOLIST
-        ExceptionInfo ei;
-        GetExceptionInfo(&ei);
-        const MagickInfo **mi;
-        mi = GetMagickInfoList("*", &matches, &ei);
-        DestroyExceptionInfo(&ei);
-#endif // HAVE_OLD_GETMAGICKINFOLIST
-#else // HAVE_MAGICK6
-        const MagickInfo *mi;
-        ExceptionInfo ei;
-        GetExceptionInfo(&ei);
-        mi = GetMagickInfo("*", &ei);
-        DestroyExceptionInfo(&ei);
-#endif // HAVE_MAGICK6
-
-        if (!mi) {
-            kdDebug(41008) << "Eek, no magick info!\n";
-            return s;
-        }
-
-#ifdef HAVE_MAGICK6
-        for (unsigned long i = 0; i < matches; i++) {
-            const MagickInfo *info = mi[i];
-            kdDebug(41008) << "Found export filter for: " << info -> name << "\n";
-            if (info -> stealth)
-                continue;
-
-            if (info -> encoder) {
-                name = info -> name;
-
-                description = info -> description;
-
-                if (!description.isEmpty() && !description.tqcontains('/')) {
-                    all += "*." + name.lower() + " *." + name + " ";
-                    s += "*." + name.lower() + " *." + name + "|";
-                    s += i18n(description.utf8());
-                    s += "\n";
-                }
-            }
-        }
-#else
-        for (; mi; mi = reinterpret_cast<const MagickInfo*>(mi -> next)) {
-            kdDebug(41008) << "Found export filter for: " << mi -> name << "\n";
-            if (mi -> stealth)
-                continue;
-
-            if (mi -> encoder) {
-                name = mi -> name;
-
-                description = mi -> description;
-
-                if (!description.isEmpty() && !description.tqcontains('/')) {
-                    all += "*." + name.lower() + " *." + name + " ";
-                    s += "*." + name.lower() + " *." + name + "|";
-                    s += i18n(description.utf8());
-                    s += "\n";
-                }
-            }
-        }
-#endif
-
-
-        all += "|" + i18n("All Images");
-        all += "\n";
-
-        return all + s;
-    }
-
-#include "kis_image_magick_converter.moc"
-
diff --git a/filters/krita/magick/kis_image_magick_converter.h b/filters/krita/magick/kis_image_magick_converter.h
deleted file mode 100644
index 28bd94ce4..000000000
--- a/filters/krita/magick/kis_image_magick_converter.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_IMAGE_MAGICK_CONVERTER_H_
-#define KIS_IMAGE_MAGICK_CONVERTER_H_
-
-#include <tqobject.h>
-#include <tqvaluevector.h>
-
-#include <kio/job.h>
-
-#include "kis_types.h"
-#include "kis_global.h"
-#include "kis_progress_subject.h"
-
-class TQString;
-class KURL;
-class KisDoc;
-class KisNameServer;
-class KisUndoAdapter;
-/**
- * Image import/export plugins can use these results to report about success or failure.
- */
-enum KisImageBuilder_Result {
-        KisImageBuilder_RESULT_FAILURE = -400,
-        KisImageBuilder_RESULT_NOT_EXIST = -300,
-        KisImageBuilder_RESULT_NOT_LOCAL = -200,
-        KisImageBuilder_RESULT_BAD_FETCH = -100,
-        KisImageBuilder_RESULT_INVALID_ARG = -50,
-        KisImageBuilder_RESULT_OK = 0,
-        KisImageBuilder_RESULT_PROGRESS = 1,
-        KisImageBuilder_RESULT_EMPTY = 100,
-        KisImageBuilder_RESULT_BUSY = 150,
-        KisImageBuilder_RESULT_NO_URI = 200,
-        KisImageBuilder_RESULT_UNSUPPORTED = 300,
-        KisImageBuilder_RESULT_INTR = 400,
-        KisImageBuilder_RESULT_PATH = 500,
-        KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE = 600
-};
-
-
-
-/**
- * Build a KisImage representation of an image file.
- */
-class KisImageMagickConverter : public KisProgressSubject {
-    typedef TQObject super;
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    KisImageMagickConverter(KisDoc *doc, KisUndoAdapter *adapter);
-    virtual ~KisImageMagickConverter();
-
-public slots:
-    virtual void cancel();
-
-public:
-    KisImageBuilder_Result buildImage(const KURL& uri);
-    KisImageBuilder_Result buildFile(const KURL& uri, KisPaintLayerSP layer, vKisAnnotationSP_it annotationsStart, vKisAnnotationSP_it annotationsEnd);
-    KisImageSP image();
-
-public:
-    static TQString readFilters();
-    static TQString writeFilters();
-
-private slots:
-    void ioData(KIO::Job *job, const TQByteArray& data);
-    void ioResult(KIO::Job *job);
-    void ioTotalSize(KIO::Job *job, KIO::filesize_t size);
-
-private:
-    KisImageMagickConverter(const KisImageMagickConverter&);
-    KisImageMagickConverter& operator=(const KisImageMagickConverter&);
-    void init(KisDoc *doc, KisUndoAdapter *adapter);
-    KisImageBuilder_Result decode(const KURL& uri, bool isBlob);
-
-private:
-    KisImageSP m_img;
-    KisDoc *m_doc;
-    KisUndoAdapter *m_adapter;
-    TQValueVector<TQ_UINT8> m_data;
-    KIO::TransferJob *m_job;
-    KIO::filesize_t m_size;
-    bool m_stop;
-};
-
-#endif // KIS_IMAGE_MAGICK_CONVERTER_H_
-
diff --git a/filters/krita/magick/krita_magick.desktop b/filters/krita/magick/krita_magick.desktop
deleted file mode 100644
index eed0aa2d1..000000000
--- a/filters/krita/magick/krita_magick.desktop
+++ /dev/null
@@ -1,58 +0,0 @@
-[Desktop Entry]
-Name=Krita
-Name[hi]=के-रिता
-Name[km]= Krita
-Name[lo]=ກຣິຕາ
-Name[ne]=क्रिता
-Exec=krita %u
-GenericName=Painting and Image Editing Application
-GenericName[bg]=Редактор на графични изображения
-GenericName[ca]=Programa de dibuix i manipulació d'imatges
-GenericName[cs]=Malování a úpravy obrázků
-GenericName[cy]=Cymhwysiad Peintio Golygu Delweddau
-GenericName[da]=Male- og billedredigeringsprogram
-GenericName[de]=Mal- und Bildbearbeitungsprogramm
-GenericName[el]=Εφαρμογή επεξεργασίας εικόνων
-GenericName[eo]=Aplikaĵo por Pentrado kaj Bildredaktado
-GenericName[es]=Aplicación de pintura y de edición de imágenes
-GenericName[et]=Joonistamise ja pilditöötluse rakendus
-GenericName[eu]=Irudien marrazketa eta ediziorako aplikazioa
-GenericName[fa]=کاربرد ویرایش تصویر و نقاشی
-GenericName[fi]=Maalaus- ja kuvankäsitelyohjelma
-GenericName[fr]=Application de dessin et de manipulation d'images
-GenericName[fy]=Ofbyldingsmanipulaasje
-GenericName[gl]=Aplicación de Pintura e Manipulación de Imaxes
-GenericName[he]=יישום לציור ועריכת תמונות
-GenericName[hr]=Aplikacija za obradu slika i fotografija
-GenericName[hu]=Képszerkesztő
-GenericName[is]=Málun og myndritill
-GenericName[it]=Applicazione di disegno e di modifica delle immagini
-GenericName[ja]=描画と画像編集のためのアプリケーション
-GenericName[km]=កម្មវិធី​គូរ​គំនូរ និង​កែសម្រួល​រូបភាព
-GenericName[lv]=Zīmēšanas un attēlu apstrādes programma
-GenericName[nb]=Program for tegning og bilderedigering
-GenericName[nds]=Programm för't Malen un Bildbewerken
-GenericName[ne]=पेन्टीङ्ग र छवि सम्पादन अनुप्रयोग
-GenericName[nl]=Afbeeldingsmanipulatie
-GenericName[pl]=Program do edycji zdjęć oraz rysunków
-GenericName[pt]=Aplicação de Pintura e Edição de Imagens
-GenericName[pt_BR]=Aplicação de Pintura e Edição de Imagens
-GenericName[ru]=Растровые изображения
-GenericName[se]=Málen- ja govvagieđahallanprográmma
-GenericName[sk]=Program pre tvorbu a úpravu obrázkov
-GenericName[sl]=Program za risanje in obdelavo slik
-GenericName[sr]=Програм за цртање и уређивање слика
-GenericName[sr@Latn]=Program za crtanje i uređivanje slika
-GenericName[sv]=Målnings- och bildredigeringsprogram
-GenericName[uk]=Програма для малювання і редагування зображень
-GenericName[uz]=Rasmlar bilan ishlaydigan dastur
-GenericName[uz@cyrillic]=Расмлар билан ишлайдиган дастур
-GenericName[zh_CN]=绘图和图像编辑应用程序
-GenericName[zh_TW]=繪圖與影像處理程式
-MimeType=image/x-xcf-gimp;image/gif;image/cgm;image/x-bmp;image/x-ico;image/x-pcx;image/x-portable-pixmap;image/x-targa;image/x-xbm;image/x-xcf;image/x-xpm;image/x-vnd.adobe.photoshop;image/x-rgb
-Type=Application
-Icon=krita
-Categories=Qt;KDE;Office;Graphics;
-X-KDE-StartupNotify=true
-X-DCOP-ServiceType=Multi
-NoDisplay=true
diff --git a/filters/krita/magick/krita_magick_export.desktop b/filters/krita/magick/krita_magick_export.desktop
deleted file mode 100644
index 7df00026c..000000000
--- a/filters/krita/magick/krita_magick_export.desktop
+++ /dev/null
@@ -1,55 +0,0 @@
-[Desktop Entry]
-Name=Krita Magick Export Filter
-Name[bg]=Филтър за експортиране от Krita в Magick
-Name[br]=Sil ezporzh Magick evit Krita
-Name[ca]=Filtre d'exportació Magick per a Krita
-Name[cy]=Hidl Allforio Magick Krita
-Name[da]=Krita Magick-eksportfilter
-Name[de]=Krita Magick-Exportfilter
-Name[el]=Φίλτρο εξαγωγής Magick του Krita
-Name[eo]=Krita Magick-eksportfiltrilo
-Name[es]=Filtro de exportación a Magick de Krita
-Name[et]=Krita Magick'i ekspordifilter
-Name[eu]=Krita-ren Magick esportaziorako iragazkia
-Name[fa]=پالایۀ صادرات Krita Magick
-Name[fi]=Krita Magick -vientisuodin
-Name[fr]=Filtre d'exportation Magick de Krita
-Name[fy]=Krita Magick Eksportfilter
-Name[ga]=Scagaire Easpórtála Magick Krita
-Name[gl]=Filtro de Exportación de Magick para Krita
-Name[he]=מסנן יצוא מ־Krita ל־Magick
-Name[hr]=Krita Magick filtar izvoza
-Name[hu]=Krita Magick exportszűrő
-Name[is]=Krita Magick útflutningssía
-Name[it]=Filtro di esportazione Magick per Krita
-Name[ja]=Krita Magick エクスポートフィルタ
-Name[km]=តម្រង​នាំចេញ Magick សម្រាប់ Krita
-Name[lt]=Krita Magick eksportavimo filtras
-Name[lv]=Krita Magick eksporta filtrs
-Name[ms]=Penapis Eksport Krita Magick
-Name[nb]=Magick-eksportfilter for Krita
-Name[nds]=Magick-Exportfilter för Krita
-Name[ne]=क्रिता म्याजिक निर्यात फिल्टर
-Name[nl]=Krita Magick Exportfilter
-Name[nn]=Magick-eksportfilter for Krita
-Name[pl]=Filtr eksportu do formatu Magick z Krita
-Name[pt]=Filtro de Exportação de Magick para o Krita
-Name[pt_BR]=Filtro de exportação Magick para o Krita
-Name[ru]=Фильтр экспорта рисунков Krita в Magick
-Name[se]=Krita Magick-olggosfievrridansilli
-Name[sk]=Magick filter pre export do Krita
-Name[sl]=Izvozni filter Magick za Krito
-Name[sr]=Krita-ин филтер за извоз у Magick
-Name[sr@Latn]=Krita-in filter za izvoz u Magick
-Name[sv]=Krita Magick-exportfilter
-Name[uk]=Фільтр експорту Magick для Krita
-Name[uz]=Krita Magick eksport filteri
-Name[uz@cyrillic]=Krita Magick экспорт филтери
-Name[zh_CN]=Krita Magick 导出过滤器
-Name[zh_TW]=Krita Magick 匯出過濾程式
-X-KDE-Export=image/gif,image/cgm,image/x-ico,image/x-pcx,image/x-portable-pixmap,image/x-targa,image/x-xbm,image/x-xpm,image/x-rgb,image/x-eps
-ServiceTypes=KOfficeFilter
-Type=Service
-X-KDE-Import=application/x-krita
-X-KDE-Weight=1
-X-KDE-Library=libkritamagickexport
diff --git a/filters/krita/magick/krita_magick_import.desktop b/filters/krita/magick/krita_magick_import.desktop
deleted file mode 100644
index 702d67f7f..000000000
--- a/filters/krita/magick/krita_magick_import.desktop
+++ /dev/null
@@ -1,61 +0,0 @@
-[Desktop Entry]
-Type=Service
-Name=Krita Magick Import Filter
-Name[bg]=Филтър за импортиране от Magick в Krita
-Name[br]=Sil enporzh Magick evit Krita
-Name[ca]=Filtre d'importació Magick per a Krita
-Name[cs]=Importní filtr formátu Magick pro Kritu
-Name[cy]=Hidl Mewnforio Krita Magick
-Name[da]=Krita Magick-importfilter
-Name[de]=Krita Magick-Importfilter
-Name[el]=Φίλτρο εισαγωγής Magick του Krita
-Name[eo]=Krita Magick-importfiltrilo
-Name[es]=Filtro de importación a Magick de Krita
-Name[et]=Krita Magick'i impordifilter
-Name[eu]=Krita-ren Magick inportaziorako iragazkia
-Name[fa]=پالایۀ واردات Krita Magick
-Name[fi]=Krita Magick-tuontisuodin
-Name[fr]=Filtre d'importation Magick de Krita
-Name[fy]=Krita Magick Ymportfilter
-Name[ga]=Scagaire Iompórtála Magick Krita
-Name[gl]=Filtro de Importación de Magick para Krita
-Name[he]=מסנן יבוא מ־Magick ל־Krita
-Name[hi]=के-रीता मैजिक आयात फ़िल्टर
-Name[hr]=Krita Magick filtar uvoza
-Name[hu]=Krita Magick importszűrő
-Name[is]=Krita Magick innflutningssía
-Name[it]=Filtro di importazione Magick per Krita
-Name[ja]=Krita Magick インポートフィルタ
-Name[km]=តម្រង​នាំចូល Magick សម្រាប់ Krita
-Name[lo]= ຕົວຕອງການນຳເຂົ້າ WML ຂອງເອກະສານຂໍ້ຄວາມ K
-Name[lt]=Krita Magick importavimo filtras
-Name[lv]=Krita Magick importa filtrs
-Name[ms]=Penapis Import Krita Magick
-Name[nb]=Magick-importfilter for Krita
-Name[nds]=Magick-Importfilter för Krita
-Name[ne]=क्रिता म्याजिक आयात फिल्टर
-Name[nl]=Krita Magick Importfilter
-Name[nn]=Magick-importfilter for Krita
-Name[pl]=Filtr importu formatu Magick do Krita
-Name[pt]=Filtro de Importação de Magick para o Krita
-Name[pt_BR]=Filtro de importação Magick para o Krita
-Name[ru]=Фильтр импорта рисунков Magick в Krita
-Name[se]=Krita Magick-sisafievrridansilli
-Name[sk]=Magick filter pre import do Krita
-Name[sl]=Uvozni filter Magick za Krito
-Name[sr]=Krita-ин филтер за увоз из Magick-а
-Name[sr@Latn]=Krita-in filter za uvoz iz Magick-a
-Name[sv]=Krita Magick-importfilter
-Name[ta]=Krita மாயk இறக்குமதி வடிகட்டி
-Name[tg]=Филтри Воридоти Krita Magick
-Name[tr]=Krita Magick Alma Filtresi
-Name[uk]=Фільтр імпорту Magick для Krita
-Name[uz]=Krita Magick import filteri
-Name[uz@cyrillic]=Krita Magick импорт филтери
-Name[zh_CN]=Krita Magick 导入过滤器
-Name[zh_TW]=Krita Magick 匯入過濾程式
-X-KDE-Export=application/x-krita
-X-KDE-Import=image/x-xcf-gimp,image/gif,image/cgm,image/x-bmp,image/x-ico,image/x-pcx,image/x-portable-pixmap,image/x-targa,image/x-xbm,image/x-xcf,image/x-xpm,image/x-vnd.adobe.photoshop,image/x-rgb,image/x-eps
-X-KDE-Weight=1
-X-KDE-Library=libkritamagickimport
-ServiceTypes=KOfficeFilter
diff --git a/filters/krita/magick/magickexport.cpp b/filters/krita/magick/magickexport.cpp
deleted file mode 100644
index b052ab104..000000000
--- a/filters/krita/magick/magickexport.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#include <magickexport.h>
-#include <kgenericfactory.h>
-#include <KoDocument.h>
-#include <KoFilterChain.h>
-
-#include <kis_doc.h>
-#include <kis_paint_layer.h>
-#include <kis_image.h>
-#include <kis_annotation.h>
-#include <kis_types.h>
-#include <kis_image_magick_converter.h>
-
-typedef KGenericFactory<MagickExport, KoFilter> MagickExportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkritamagickexport, MagickExportFactory("kofficefilters"))
-
-MagickExport::MagickExport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-MagickExport::~MagickExport()
-{
-}
-
-KoFilter::ConversiontqStatus MagickExport::convert(const TQCString& from, const TQCString& to)
-{
-    kdDebug(41008) << "magick export! From: " << from << ", To: " << to << "\n";
-    
-    if (from != "application/x-krita")
-        return KoFilter::NotImplemented;
-
-    // XXX: Add dialog about flattening layers here
-
-    KisDoc *output = dynamic_cast<KisDoc*>(m_chain->inputDocument());
-    TQString filename = m_chain->outputFile();
-    
-    if (!output)
-        return KoFilter::CreationError;
-    
-    if (filename.isEmpty()) return KoFilter::FileNotFound;
-
-    KURL url;
-    url.setPath(filename);
-
-    KisImageSP img = output->currentImage();
-
-    KisImageMagickConverter ib(output, output->undoAdapter());
-
-    KisPaintDeviceSP pd = new KisPaintDevice(*img->projection());
-    KisPaintLayerSP l = new KisPaintLayer(img, "projection", OPACITY_OPAQUE, pd);
-    
-    vKisAnnotationSP_it beginIt = img->beginAnnotations();
-    vKisAnnotationSP_it endIt = img->endAnnotations();
-    if (ib.buildFile(url, l, beginIt, endIt) == KisImageBuilder_RESULT_OK) {
-        return KoFilter::OK;
-    }
-    return KoFilter::InternalError;
-}
-
-#include <magickexport.moc>
-
diff --git a/filters/krita/magick/magickexport.h b/filters/krita/magick/magickexport.h
deleted file mode 100644
index 6ea7e2384..000000000
--- a/filters/krita/magick/magickexport.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef MAGICKEXPORT_H_
-#define MAGICKEXPORT_H_
-
-#include <KoFilter.h>
-
-class MagickExport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    MagickExport(KoFilter *tqparent, const char *name, const TQStringList&);
-    virtual ~MagickExport();
-
-public:
-    virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif // MAGICKEXPORT_H_
-
diff --git a/filters/krita/magick/magickimport.cpp b/filters/krita/magick/magickimport.cpp
deleted file mode 100644
index 0502e51a1..000000000
--- a/filters/krita/magick/magickimport.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#include <tqstring.h>
- 
-#include <magickimport.h>
-#include <kgenericfactory.h>
-#include <KoDocument.h>
-#include <KoFilterChain.h>
-
-#include <kis_doc.h>
-#include <kis_view.h>
-#include <kis_image_magick_converter.h>
-#include <kis_progress_display_interface.h>
-#include <kis_image.h>
-#include <kis_layer.h>
-
-typedef KGenericFactory<MagickImport, KoFilter> MagickImportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkritamagickimport, MagickImportFactory("kofficefilters"))
-
-MagickImport::MagickImport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-MagickImport::~MagickImport()
-{
-}
-
-KoFilter::ConversiontqStatus MagickImport::convert(const TQCString&, const TQCString& to)
-{
-    kdDebug(41008) << "Importing using MagickImport!\n";
-
-    if (to != "application/x-krita")
-        return KoFilter::BadMimeType;
-
-    KisDoc * doc = dynamic_cast<KisDoc*>(m_chain -> outputDocument());
-    KisView * view = static_cast<KisView*>(doc -> views().getFirst());
-    
-    TQString filename = m_chain -> inputFile();
-    
-    if (!doc)
-        return KoFilter::CreationError;
-
-    doc -> prepareForImport();
-        
-
-    if (!filename.isEmpty()) {
-    
-        KURL url;
-        url.setPath(filename);
-
-        if (url.isEmpty())
-            return KoFilter::FileNotFound;
-            
-        KisImageMagickConverter ib(doc, doc -> undoAdapter());
-
-        if (view != 0)
-            view -> canvasSubject() ->  progressDisplay() -> setSubject(&ib, false, true);
-
-        switch (ib.buildImage(url)) {
-            case KisImageBuilder_RESULT_UNSUPPORTED:
-                return KoFilter::NotImplemented;
-                break;
-            case KisImageBuilder_RESULT_INVALID_ARG:
-                return KoFilter::BadMimeType;
-                break;
-            case KisImageBuilder_RESULT_NO_URI:
-            case KisImageBuilder_RESULT_NOT_LOCAL:
-                return KoFilter::FileNotFound;
-                break;
-            case KisImageBuilder_RESULT_BAD_FETCH:
-            case KisImageBuilder_RESULT_EMPTY:
-                return KoFilter::ParsingError;                
-                break;
-            case KisImageBuilder_RESULT_FAILURE:
-                return KoFilter::InternalError;
-                break;
-            case KisImageBuilder_RESULT_OK:
-                doc -> setCurrentImage( ib.image());
-                return KoFilter::OK;
-            default:
-                break;
-        }
-
-    }
-    return KoFilter::StorageCreationError;
-}
-
-#include <magickimport.moc>
-
diff --git a/filters/krita/magick/magickimport.h b/filters/krita/magick/magickimport.h
deleted file mode 100644
index 3373f1297..000000000
--- a/filters/krita/magick/magickimport.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef MAGICKIMPORT_H_
-#define MAGICKIMPORT_H_
-
-#include <KoFilter.h>
-
-class MagickImport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    MagickImport(KoFilter *tqparent, const char *name, const TQStringList&);
-    virtual ~MagickImport();
-
-public:
-    virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif // MAGICKIMPORT_H_
-
diff --git a/filters/krita/openexr/Makefile.am b/filters/krita/openexr/Makefile.am
deleted file mode 100644
index 75210f4f3..000000000
--- a/filters/krita/openexr/Makefile.am
+++ /dev/null
@@ -1,51 +0,0 @@
-AM_CPPFLAGS= \
-	-I$(srcdir) \
-	-I$(top_srcdir)/krita \
-	-I$(top_srcdir)/krita/core \
-	-I$(top_srcdir)/krita/sdk \
-	-I$(top_srcdir)/krita/core/tiles \
-	-I$(top_srcdir)/krita/kritacolor \
-	-I$(top_srcdir)/krita/ui \
-	-I$(top_srcdir)/krita/colorspaces/rgb_f32 \
-	-I$(top_srcdir)/krita/colorspaces/rgb_f16half \
-        $(KOFFICE_INCLUDES) \
-	-I$(interfacedir) \
-        $(OPENEXR_CFLAGS) \
-	$(all_includes) 
-
-kde_module_LTLIBRARIES = libkrita_openexr_import.la libkrita_openexr_export.la
-
-libkrita_openexr_export_la_LDFLAGS = $(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) -module -avoid-version -no-undefined $(all_libraries) -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-	-L../../../lib/kofficecore/.libs/ -lkofficecore \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkrita_openexr_export_la_LIBADD = \
-	$(KOFFICE_LIBS) \
-	$(OPENEXR_LIBS) \
-	$(top_builddir)/krita/libkritacommon.la \
-	$(top_builddir)/krita/colorspaces/rgb_f32/libkrita_rgb_f32.la \
-	$(top_builddir)/krita/colorspaces/rgb_f16half/libkrita_rgb_f16half.la
-
-
-libkrita_openexr_import_la_LDFLAGS = $(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) -module -avoid-version -no-undefined $(all_libraries) -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts -L../../../lib/kofficecore/.libs/ -lkofficecore \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkrita_openexr_import_la_LIBADD = \
-	$(KOFFICE_LIBS) \
-	$(OPENEXR_LIBS) \
-	$(top_builddir)/krita/libkritacommon.la \
-	$(top_builddir)/krita/colorspaces/rgb_f32/libkrita_rgb_f32.la \
-	$(top_builddir)/krita/colorspaces/rgb_f16half/libkrita_rgb_f16half.la
-
-
-service_DATA = krita_openexr_import.desktop krita_openexr_export.desktop
-servicedir = $(kde_servicesdir)
-
-kdelnk_DATA = krita_openexr.desktop
-kdelnkdir = $(kde_appsdir)/.hidden
-
-libkrita_openexr_import_la_SOURCES = kis_openexr_import.cpp
-libkrita_openexr_export_la_SOURCES = kis_openexr_export.cpp
-
-METASOURCES = AUTO
-
-KDE_CXXFLAGS = $(USE_EXCEPTIONS)
-
diff --git a/filters/krita/openexr/configure.in.bot b/filters/krita/openexr/configure.in.bot
deleted file mode 100644
index cc420abb3..000000000
--- a/filters/krita/openexr/configure.in.bot
+++ /dev/null
@@ -1,9 +0,0 @@
-if test -z "$OPENEXR_LIBS"; then
-  echo ""
-  echo "You're missing the OpenEXR library. Krita's OpenEXR import/export filter will "
-  echo "not be compiled. You can download OpenEXR from http://www.openexr.com or "
-  echo "install it from an appropriate binary package."
-  echo ""
-  all_tests=bad
-fi
-
diff --git a/filters/krita/openexr/kis_openexr_export.cpp b/filters/krita/openexr/kis_openexr_export.cpp
deleted file mode 100644
index c753bf488..000000000
--- a/filters/krita/openexr/kis_openexr_export.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include <tqfile.h>
-
-#include <kmessagebox.h>
-
-#include <half.h>
-#include <ImfRgbaFile.h>
-
-#include <kgenericfactory.h>
-#include <KoDocument.h>
-#include <KoFilterChain.h>
-
-#include "kis_doc.h"
-#include "kis_image.h"
-#include "kis_layer.h"
-#include "kis_paint_layer.h"
-#include "kis_annotation.h"
-#include "kis_types.h"
-#include "kis_iterators_pixel.h"
-#include "kis_abstract_colorspace.h"
-#include "kis_paint_device.h"
-#include "kis_rgb_f32_colorspace.h"
-#include "kis_rgb_f16half_colorspace.h"
-
-#include "kis_openexr_export.h"
-
-using namespace std;
-using namespace Imf;
-using namespace Imath;
-
-typedef KGenericFactory<KisOpenEXRExport, KoFilter> KisOpenEXRExportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkrita_openexr_export, KisOpenEXRExportFactory("kofficefilters"))
-
-KisOpenEXRExport::KisOpenEXRExport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-KisOpenEXRExport::~KisOpenEXRExport()
-{
-}
-
-KoFilter::ConversiontqStatus KisOpenEXRExport::convert(const TQCString& from, const TQCString& to)
-{
-    if (to != "image/x-exr" || from != "application/x-krita") {
-        return KoFilter::NotImplemented;
-    }
-
-    kdDebug(41008) << "Krita exporting to OpenEXR\n";
-
-    // XXX: Add dialog about flattening layers here
-
-    KisDoc *doc = dynamic_cast<KisDoc*>(m_chain -> inputDocument());
-    TQString filename = m_chain -> outputFile();
-    
-    if (!doc) {
-        return KoFilter::CreationError;
-    }
-    
-    if (filename.isEmpty()) {
-        return KoFilter::FileNotFound;
-    }
-
-    KisImageSP img = new KisImage(*doc -> currentImage());
-    Q_CHECK_PTR(img);
-
-    // Don't store this information in the document's undo adapter
-    bool undo = doc -> undoAdapter() -> undo();
-    doc -> undoAdapter() -> setUndo(false);
-
-    img -> flatten();
-
-    KisPaintLayerSP layer = dynamic_cast<KisPaintLayer*>(img->activeLayer().data());
-    Q_ASSERT(layer);
-    
-    doc -> undoAdapter() -> setUndo(undo);
-
-    //KisF32RgbColorSpace * cs = static_cast<KisF32RgbColorSpace *>((KisColorSpaceRegistry::instance() -> get(KisID("RGBAF32", ""))));
-    KisRgbF16HalfColorSpace *cs = dynamic_cast<KisRgbF16HalfColorSpace *>(layer->paintDevice()->colorSpace());
-
-    if (cs == 0) {
-        // We could convert automatically, but the conversion wants to be done with
-        // selectable profiles and rendering intent.
-        KMessageBox::information(0, i18n("The image is using an unsupported color space. "
-                                         "Please convert to 16-bit floating point RGB/Alpha "
-                                         "before saving in the OpenEXR format."));
-
-        // Don't show the couldn't save error dialog.
-        doc -> setErrorMessage("USER_CANCELED");
-
-        return KoFilter::WrongFormat;
-    }
-
-    Box2i displayWindow(V2i(0, 0), V2i(img -> width() - 1, img -> height() - 1));
-
-    TQRect dataExtent = layer -> exactBounds();
-    int dataWidth = dataExtent.width();
-    int dataHeight = dataExtent.height();
-
-    Box2i dataWindow(V2i(dataExtent.left(), dataExtent.top()), V2i(dataExtent.right(), dataExtent.bottom()));
-
-    RgbaOutputFile file(TQFile::encodeName(filename), displayWindow, dataWindow, WRITE_RGBA);
-
-    TQMemArray<Rgba> pixels(dataWidth);
-
-    for (int y = 0; y < dataHeight; ++y) {
-
-        file.setFrameBuffer(pixels.data() - dataWindow.min.x - (dataWindow.min.y + y) * dataWidth, 1, dataWidth);
-
-        KisHLineIterator it = layer->paintDevice()->createHLineIterator(dataWindow.min.x, dataWindow.min.y + y, dataWidth, false);
-        Rgba *rgba = pixels.data();
-
-        while (!it.isDone()) {
-
-            // XXX: Currently we use unmultiplied data so premult it.
-            half unmultipliedRed;
-            half unmultipliedGreen;
-            half unmultipliedBlue;
-            half alpha;
-
-            cs -> getPixel(it.rawData(), &unmultipliedRed, &unmultipliedGreen, &unmultipliedBlue, &alpha);
-            rgba -> r = unmultipliedRed * alpha;
-            rgba -> g = unmultipliedGreen * alpha;
-            rgba -> b = unmultipliedBlue * alpha;
-            rgba -> a = alpha;
-            ++it;
-            ++rgba;
-        }
-        file.writePixels();
-    }
-
-    //vKisAnnotationSP_it beginIt = img -> beginAnnotations();
-    //vKisAnnotationSP_it endIt = img -> endAnnotations();
-    return KoFilter::OK;
-}
-
-#include "kis_openexr_export.moc"
-
diff --git a/filters/krita/openexr/kis_openexr_export.h b/filters/krita/openexr/kis_openexr_export.h
deleted file mode 100644
index 56568e575..000000000
--- a/filters/krita/openexr/kis_openexr_export.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_OPENEXR_EXPORT_H_
-#define KIS_OPENEXR_EXPORT_H_
-
-#include <KoFilter.h>
-
-class KisOpenEXRExport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    KisOpenEXRExport(KoFilter *tqparent, const char *name, const TQStringList&);
-    virtual ~KisOpenEXRExport();
-
-public:
-    virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif // KIS_OPENEXR_EXPORT_H_
-
diff --git a/filters/krita/openexr/kis_openexr_import.cpp b/filters/krita/openexr/kis_openexr_import.cpp
deleted file mode 100644
index 069a00594..000000000
--- a/filters/krita/openexr/kis_openexr_import.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include <tqstring.h>
-#include <tqfile.h>
-
-#include <kgenericfactory.h>
-#include <KoDocument.h>
-#include <KoFilterChain.h>
-
-#include <half.h>
-#include <ImfRgbaFile.h>
-//#include <ImfStringAttribute.h>
-//#include <ImfMatrixAttribute.h>
-//#include <ImfArray.h>
-//#include <drawImage.h>
-
-#include <iostream>
-
-#include "kis_types.h"
-#include "kis_openexr_import.h"
-#include "kis_doc.h"
-#include "kis_image.h"
-#include "kis_meta_registry.h"
-#include "kis_layer.h"
-#include "kis_paint_layer.h"
-#include "kis_annotation.h"
-#include "kis_colorspace_factory_registry.h"
-#include "kis_iterators_pixel.h"
-#include "kis_abstract_colorspace.h"
-#include "kis_rgb_f32_colorspace.h"
-#include "kis_rgb_f16half_colorspace.h"
-
-using namespace std;
-using namespace Imf;
-using namespace Imath;
-
-typedef KGenericFactory<KisOpenEXRImport, KoFilter> KisOpenEXRImportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkrita_openexr_import, KisOpenEXRImportFactory("kofficefilters"))
-
-KisOpenEXRImport::KisOpenEXRImport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-KisOpenEXRImport::~KisOpenEXRImport()
-{
-}
-
-KoFilter::ConversiontqStatus KisOpenEXRImport::convert(const TQCString& from, const TQCString& to)
-{
-    if (from != "image/x-exr" || to != "application/x-krita") {
-        return KoFilter::NotImplemented;
-    }
-
-    kdDebug(41008) << "\n\n\nKrita importing from OpenEXR\n";
-
-    KisDoc * doc = dynamic_cast<KisDoc*>(m_chain -> outputDocument());
-    if (!doc) {
-        return KoFilter::CreationError;
-    }
-
-    doc -> prepareForImport();
-
-    TQString filename = m_chain -> inputFile();
-
-    if (filename.isEmpty()) {
-        return KoFilter::FileNotFound;
-    }
-
-    RgbaInputFile file(TQFile::encodeName(filename));
-    Box2i dataWindow = file.dataWindow();
-    Box2i displayWindow = file.displayWindow();
-
-    kdDebug(41008) << "Data window: " << TQRect(dataWindow.min.x, dataWindow.min.y, dataWindow.max.x - dataWindow.min.x + 1, dataWindow.max.y - dataWindow.min.y + 1) << endl;
-    kdDebug(41008) << "Display window: " << TQRect(displayWindow.min.x, displayWindow.min.y, displayWindow.max.x - displayWindow.min.x + 1, displayWindow.max.y - displayWindow.min.y + 1) << endl;
-
-    int imageWidth = displayWindow.max.x - displayWindow.min.x + 1;
-    int imageHeight = displayWindow.max.y - displayWindow.min.y + 1;
-
-    TQString imageName = "Imported from OpenEXR";
-
-    int dataWidth  = dataWindow.max.x - dataWindow.min.x + 1;
-    int dataHeight = dataWindow.max.y - dataWindow.min.y + 1;
-
-    KisRgbF16HalfColorSpace *cs = static_cast<KisRgbF16HalfColorSpace *>((KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID("RGBAF16HALF", ""),"")));
-
-    if (cs == 0) {
-        return KoFilter::InternalError;
-    }
-
-    doc -> undoAdapter() -> setUndo(false);
-
-    KisImageSP image = new KisImage(doc->undoAdapter(), imageWidth, imageHeight, cs, imageName);
-
-    if (image == 0) {
-        return KoFilter::CreationError;
-    }
-
-    KisPaintLayerSP layer = dynamic_cast<KisPaintLayer*>(image->newLayer(image -> nextLayerName(), OPACITY_OPAQUE).data());
-
-    if (layer == 0) {
-        return KoFilter::CreationError;
-    }
-
-    TQMemArray<Rgba> pixels(dataWidth);
-
-    for (int y = 0; y < dataHeight; ++y) {
-
-        file.setFrameBuffer(pixels.data() - dataWindow.min.x - (dataWindow.min.y + y) * dataWidth, 1, dataWidth);
-        file.readPixels(dataWindow.min.y + y);
-
-        KisHLineIterator it = layer->paintDevice()->createHLineIterator(dataWindow.min.x, dataWindow.min.y + y, dataWidth, true);
-        Rgba *rgba = pixels.data();
-
-        while (!it.isDone()) {
-
-            // XXX: For now unmultiply the alpha, though compositing will be faster if we
-            // keep it premultiplied.
-            half unmultipliedRed = rgba -> r;
-            half unmultipliedGreen = rgba -> g;
-            half unmultipliedBlue = rgba -> b;
-
-            if (rgba -> a >= HALF_EPSILON) {
-                unmultipliedRed /= rgba -> a;
-                unmultipliedGreen /= rgba -> a;
-                unmultipliedBlue /= rgba -> a;
-            }
-
-            cs -> setPixel(it.rawData(), unmultipliedRed, unmultipliedGreen, unmultipliedBlue, rgba -> a);
-            ++it;
-            ++rgba;
-        }
-    }
-
-    layer->setDirty();
-    doc -> setCurrentImage(image);
-    doc -> undoAdapter() -> setUndo(true);
-    doc -> setModified(false);
-
-    return KoFilter::OK;
-}
-
-#include "kis_openexr_import.moc"
-
diff --git a/filters/krita/openexr/kis_openexr_import.h b/filters/krita/openexr/kis_openexr_import.h
deleted file mode 100644
index f8cd51447..000000000
--- a/filters/krita/openexr/kis_openexr_import.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_OPENEXR_IMPORT_H_
-#define KIS_OPENEXR_IMPORT_H_
-
-#include <KoFilter.h>
-
-class KisOpenEXRImport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    KisOpenEXRImport(KoFilter *tqparent, const char *name, const TQStringList&);
-    virtual ~KisOpenEXRImport();
-
-public:
-    virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif // KIS_OPENEXR_IMPORT_H_
-
diff --git a/filters/krita/openexr/krita_openexr.desktop b/filters/krita/openexr/krita_openexr.desktop
deleted file mode 100644
index ef026a84d..000000000
--- a/filters/krita/openexr/krita_openexr.desktop
+++ /dev/null
@@ -1,57 +0,0 @@
-[Desktop Entry]
-Name=Krita
-Name[hi]=के-रिता
-Name[km]= Krita
-Name[lo]=ກຣິຕາ
-Name[ne]=क्रिता
-Exec=krita %u
-GenericName=Painting and Image Editing Application
-GenericName[bg]=Редактор на графични изображения
-GenericName[ca]=Programa de dibuix i manipulació d'imatges
-GenericName[cs]=Malování a úpravy obrázků
-GenericName[cy]=Cymhwysiad Peintio Golygu Delweddau
-GenericName[da]=Male- og billedredigeringsprogram
-GenericName[de]=Mal- und Bildbearbeitungsprogramm
-GenericName[el]=Εφαρμογή επεξεργασίας εικόνων
-GenericName[eo]=Aplikaĵo por Pentrado kaj Bildredaktado
-GenericName[es]=Aplicación de pintura y de edición de imágenes
-GenericName[et]=Joonistamise ja pilditöötluse rakendus
-GenericName[eu]=Irudien marrazketa eta ediziorako aplikazioa
-GenericName[fa]=کاربرد ویرایش تصویر و نقاشی
-GenericName[fi]=Maalaus- ja kuvankäsitelyohjelma
-GenericName[fr]=Application de dessin et de manipulation d'images
-GenericName[fy]=Ofbyldingsmanipulaasje
-GenericName[gl]=Aplicación de Pintura e Manipulación de Imaxes
-GenericName[he]=יישום לציור ועריכת תמונות
-GenericName[hr]=Aplikacija za obradu slika i fotografija
-GenericName[hu]=Képszerkesztő
-GenericName[is]=Málun og myndritill
-GenericName[it]=Applicazione di disegno e di modifica delle immagini
-GenericName[ja]=描画と画像編集のためのアプリケーション
-GenericName[km]=កម្មវិធី​គូរ​គំនូរ និង​កែសម្រួល​រូបភាព
-GenericName[lv]=Zīmēšanas un attēlu apstrādes programma
-GenericName[nb]=Program for tegning og bilderedigering
-GenericName[nds]=Programm för't Malen un Bildbewerken
-GenericName[ne]=पेन्टीङ्ग र छवि सम्पादन अनुप्रयोग
-GenericName[nl]=Afbeeldingsmanipulatie
-GenericName[pl]=Program do edycji zdjęć oraz rysunków
-GenericName[pt]=Aplicação de Pintura e Edição de Imagens
-GenericName[pt_BR]=Aplicação de Pintura e Edição de Imagens
-GenericName[ru]=Растровые изображения
-GenericName[se]=Málen- ja govvagieđahallanprográmma
-GenericName[sk]=Program pre tvorbu a úpravu obrázkov
-GenericName[sl]=Program za risanje in obdelavo slik
-GenericName[sr]=Програм за цртање и уређивање слика
-GenericName[sr@Latn]=Program za crtanje i uređivanje slika
-GenericName[sv]=Målnings- och bildredigeringsprogram
-GenericName[uk]=Програма для малювання і редагування зображень
-GenericName[uz]=Rasmlar bilan ishlaydigan dastur
-GenericName[uz@cyrillic]=Расмлар билан ишлайдиган дастур
-GenericName[zh_CN]=绘图和图像编辑应用程序
-GenericName[zh_TW]=繪圖與影像處理程式
-MimeType=image/x-exr
-Type=Application
-Icon=krita
-Categories=
-X-KDE-StartupNotify=true
-X-DCOP-ServiceType=Multi
diff --git a/filters/krita/openexr/krita_openexr_export.desktop b/filters/krita/openexr/krita_openexr_export.desktop
deleted file mode 100644
index 3e2a8d7f1..000000000
--- a/filters/krita/openexr/krita_openexr_export.desktop
+++ /dev/null
@@ -1,52 +0,0 @@
-[Desktop Entry]
-Name=Krita OpenEXR Export Filter
-Name[bg]=Филтър за експортиране от Krita в OpenEXR
-Name[br]=Sil ezporzh OpenEXR evit Krita
-Name[ca]=Filtre d'exportació OpenEXR per a Krita
-Name[cy]=Hidl Allforio OpenEXR Krita
-Name[da]=Krita OpenEXR-eksportfilter
-Name[de]=Krita OpenEXR-Exportfilter
-Name[el]=Φίλτρο εξαγωγής OpenEXR του Krita
-Name[eo]=Krita OpenEXR-eksportfiltrilo
-Name[es]=Filtro de exportación a OpenEXR de Krita
-Name[et]=Krita OpenEXR'i ekspordifilter
-Name[fa]=پالایۀ صادرات Krita OpenEXR
-Name[fi]=Krita OpenEXR -vientisuodin
-Name[fr]=Filtre d'exportation OpenEXR de Krita
-Name[fy]=Krita OpenEXR Eksportfilter
-Name[ga]=Scagaire Easpórtála OpenEXR Krita
-Name[gl]=Filtro de Exportación de OpenEXR de Krita
-Name[he]=Krita OpenEXR מסנן יצוא
-Name[hr]=Krita OpenEXR filtar izvoza
-Name[hu]=Krita OpenEXR exportszűrő
-Name[is]=Krita OpenEXR útflutningssía
-Name[it]=Filtro di esportazione OpenEXR per Krita
-Name[ja]=Krita OpenEXR エクスポートフィルタ
-Name[km]=តម្រង​នាំចេញ OpenEXR សម្រាប់ Krita
-Name[lt]=Krita OpenEXR eksportavimo filtras
-Name[lv]=Krita OpenEXR eksporta filtrs
-Name[nb]=OpenEXR-eksportfilter for Krita
-Name[nds]=OpenEXR-Exportfilter för Krita
-Name[ne]=क्रिता खुलाEXR निर्यात फिल्टर
-Name[nl]=Krita OpenEXR Exportfilter
-Name[pl]=Filtr eksportu do formatu OpenEXR z Krita
-Name[pt]=Filtro de Exportação de OpenEXR do Krita
-Name[pt_BR]=Filtro de Exportação de OpenEXR do Krita
-Name[ru]=Фильтр экспорта рисунков Krita в OpenEXR
-Name[se]=Krita OpenEXR-olggosfievrridansilli
-Name[sk]=Exportný filter Krita OpenEXR
-Name[sl]=Izvozni filter OpenEXR za Krito
-Name[sr]=Krita-ин филтер за извоз у OpenEXR
-Name[sr@Latn]=Krita-in filter za izvoz u OpenEXR
-Name[sv]=Krita OpenEXR-exportfilter
-Name[uk]=Фільтр експорту OpenEXR для Krita
-Name[uz]=Krita OpenEXR eksport filteri
-Name[uz@cyrillic]=Krita OpenEXR экспорт филтери
-Name[zh_CN]=Krita OpenEXR 导出过滤器
-Name[zh_TW]=Krita OpenEXR 匯出過濾程式
-X-KDE-Export=image/x-exr
-ServiceTypes=KOfficeFilter
-Type=Service
-X-KDE-Import=application/x-krita
-X-KDE-Weight=1
-X-KDE-Library=libkrita_openexr_export
diff --git a/filters/krita/openexr/krita_openexr_import.desktop b/filters/krita/openexr/krita_openexr_import.desktop
deleted file mode 100644
index 521320deb..000000000
--- a/filters/krita/openexr/krita_openexr_import.desktop
+++ /dev/null
@@ -1,52 +0,0 @@
-[Desktop Entry]
-Type=Service
-Name=Krita OpenEXR Import Filter
-Name[bg]=Филтър за импортиране от OpenEXR в Krita
-Name[br]=Sil enporzh OpenEXR evit Krita
-Name[ca]=Filtre d'importació OpenEXR per a Krita
-Name[cy]=Hidl Mewnforio OpenEXR Krita
-Name[da]=Krita OpenEXR-importfilter
-Name[de]=Krita OpenEXR-Importfilter
-Name[el]=Φίλτρο εισαγωγής OpenEXR του Krita
-Name[eo]=Krita OpenEXR-importfiltrilo
-Name[es]=Filtro de importación a OpenEXR de Krita
-Name[et]=Krita OpenEXR'i impordifilter
-Name[fa]=پالایۀ واردات Krita OpenEXR
-Name[fi]=Krita OpenEXR -tuontisuodin
-Name[fr]=Filtre d'importation OpenEXT de Krita
-Name[fy]=Krita OpenEXR Ymportfilter
-Name[ga]=Scagaire Iompórtála OpenEXR Krita
-Name[gl]=Filtro de Importación de OpenEXR para Krita
-Name[he]=Krita OpenEXR מסנן יבוא
-Name[hr]=Krita OpenEXR filtar uvoza
-Name[hu]=Krita OpenEXR importszűrő
-Name[is]=Krita OpenEXR innflutningssía
-Name[it]=Filtro di importazione OpenEXR per Krita
-Name[ja]=Krita OpenEXR インポートフィルタ
-Name[km]=តម្រង​នាំចូល OpenEXR សម្រាប់ Krita
-Name[lt]=Krita OpenEXR importavimo filtras
-Name[lv]=Krita OpenEXR importa filtrs
-Name[nb]=OpenEXR-importfilter for Krita
-Name[nds]=OpenEXR-Importfilter för Krita
-Name[ne]=क्रिता खुलाEXR आयात फिल्टर
-Name[nl]=Krita OpenEXR Importfilter
-Name[pl]=Filtr importu formatu OpenEXR do Krita
-Name[pt]=Filtro de Importação de OpenEXR para o Krita
-Name[pt_BR]=Filtro de Importação de OpenEXR para o Krita
-Name[ru]=Фильтр импорта рисунков OpenEXR в Krita
-Name[se]=Krita OpenEXR-sisafievrridansilli
-Name[sk]=OpenEXR filter pre import do Krita
-Name[sl]=Uvozni filter OpenEXR za Krito
-Name[sr]=Krita-ин филтер за увоз из OpenEXR-а
-Name[sr@Latn]=Krita-in filter za uvoz iz OpenEXR-a
-Name[sv]=Krita OpenEXR-importfilter
-Name[uk]=Фільтр імпорту OpenEXR для Krita
-Name[uz]=Krita OpenEXR import filteri
-Name[uz@cyrillic]=Krita OpenEXR импорт филтери
-Name[zh_CN]=Krita OpenEXR 导入过滤器
-Name[zh_TW]=Krita OpenEXR 匯入過濾程式
-X-KDE-Export=application/x-krita
-X-KDE-Import=image/x-exr
-X-KDE-Weight=1
-X-KDE-Library=libkrita_openexr_import
-ServiceTypes=KOfficeFilter
diff --git a/filters/krita/pdf/Makefile.am b/filters/krita/pdf/Makefile.am
deleted file mode 100644
index f6975ef34..000000000
--- a/filters/krita/pdf/Makefile.am
+++ /dev/null
@@ -1,30 +0,0 @@
-INCLUDES = \
-        -I$(srcdir) \
-         $(KOFFICE_INCLUDES) \
-        -I$(top_srcdir)/krita \
-        -I$(top_srcdir)/krita/core \
-        -I$(top_srcdir)/krita/sdk \
-        -I$(top_srcdir)/krita/core/tiles \
-        -I$(top_srcdir)/krita/kritacolor \
-        -I$(top_srcdir)/krita/ui \
-        $(KOFFICE_INCLUDES) -I$(interfacedir) \
-        $(KOPAINTER_INCLUDES) \
-        $(all_includes)  $(POPPLER_CFLAGS)
-
-servicedir = $(kde_servicesdir)
-
-kdelnkdir = $(kde_appsdir)/.hidden
-
-METASOURCES = AUTO
-kde_module_LTLIBRARIES = libkritapdfimport.la
-libkritapdfimport_la_LDFLAGS = -avoid-version -module -no-undefined  $(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritapdfimport_la_LIBADD = $(top_builddir)/krita/libkritacommon.la \
-	-lpoppler-qt $(KOFFICE_LIBS) $(POPPLER_LIBS)
-
-noinst_HEADERS = kis_pdf_import.h kis_pdf_import_widget.h
-libkritapdfimport_la_SOURCES = kis_pdf_import.cpp pdfimportwidgetbase.ui \
-	kis_pdf_import_widget.cpp
-kde_services_DATA = krita_pdf_import.desktop
-kdelnk_DATA = krita_pdf.desktop
diff --git a/filters/krita/pdf/configure.in.bot b/filters/krita/pdf/configure.in.bot
deleted file mode 100644
index 9802779d7..000000000
--- a/filters/krita/pdf/configure.in.bot
+++ /dev/null
@@ -1,7 +0,0 @@
-if test -z "$POPPLER_LIBS"; then
-  echo ""
-  echo "You're missing libpoppler 0.5.1 or later (binaries and/or headers)."
-  echo "krita won't be able to import pdf"
-  echo "note that the qt-binding of libpoppler is required"
-  echo ""
-fi
diff --git a/filters/krita/pdf/configure.in.in b/filters/krita/pdf/configure.in.in
deleted file mode 100644
index e43432778..000000000
--- a/filters/krita/pdf/configure.in.in
+++ /dev/null
@@ -1,4 +0,0 @@
-# Compile the pdf import filter only if Poppler is available
-PKG_CHECK_MODULES(POPPLER, poppler-qt >= 0.5.1, have_poppler=yes, have_poppler=no)
-
-AM_CONDITIONAL(include_PDF, test "x$have_poppler" = xyes) 
diff --git a/filters/krita/pdf/kis_pdf_import.cpp b/filters/krita/pdf/kis_pdf_import.cpp
deleted file mode 100644
index 5249afb41..000000000
--- a/filters/krita/pdf/kis_pdf_import.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_pdf_import.h"
-
-// poppler's headers
-#include <poppler-qt.h>
-
-// TQt's headers
-#include <tqfile.h>
-#include <tqimage.h> // TODO that too
-#include <tqradiobutton.h>
-
-// KDE's headers
-#include <kapplication.h>
-#include <kdebug.h>
-#include <kdialogbase.h>
-#include <kgenericfactory.h>
-#include <knuminput.h>
-#include <kpassdlg.h>
-
-#include <kio/netaccess.h>
-
-// koffice's headers
-#include <KoFilterChain.h>
-
-// krita's headers
-#include <kis_doc.h>
-#include <kis_colorspace.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_group_layer.h>
-#include <kis_image.h>
-#include <kis_meta_registry.h>
-#include <kis_paint_layer.h>
-
-// plugins's headers
-#include "kis_pdf_import_widget.h"
-
-typedef KGenericFactory<KisPDFImport, KoFilter> PDFImportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkritapdfimport, PDFImportFactory("kofficefilters"))
-
-KisPDFImport::KisPDFImport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-KisPDFImport::~KisPDFImport()
-{
-}
-
-KisPDFImport::ConversiontqStatus KisPDFImport::convert(const TQCString& , const TQCString& )
-{
-    TQString filename = m_chain -> inputFile();
-    kdDebug(41008) << "Importing using PDFImport!" << filename << endl;
-    
-    if (filename.isEmpty())
-        return KoFilter::FileNotFound;
-    
-    
-    KURL url;
-    url.setPath(filename);
-
-    if (!KIO::NetAccess::exists(url, false, tqApp -> mainWidget())) {
-        return KoFilter::FileNotFound;
-    }
-
-    // We're not set up to handle asynchronous loading at the moment.
-    TQString tmpFile;
-    if (KIO::NetAccess::download(url, tmpFile, tqApp -> mainWidget())) {
-        url.setPath( tmpFile );
-    }
-    
-    Poppler::Document* pdoc = Poppler::Document::load( TQFile::encodeName(url.path() ) );
-    
-
-    if ( !pdoc)
-    {
-        kdDebug(41008) << "Error when reading the PDF" << endl;
-        return KoFilter::StorageCreationError;
-    }
-
-
-    while( pdoc->isLocked() )
-    {
-        TQCString password;
-        int result = KPasswordDialog::getPassword(password, i18n("A password is required to read that pdf"));
-        if (result == KPasswordDialog::Accepted)
-        {
-            pdoc->unlock(password);
-        } else {
-            kdDebug(41008) << "Password canceled" << endl;
-            return KoFilter::StorageCreationError;
-        }
-    }
-
-    KDialogBase* kdb = new KDialogBase(0, "", false, i18n("PDF Import Options"), KDialogBase::Ok | KDialogBase::Cancel);
-    
-    KisPDFImportWidget* wdg = new KisPDFImportWidget(pdoc, kdb);
-    kdb->setMainWidget(wdg);
-    kapp->restoreOverrideCursor();
-    if(kdb->exec() == TQDialog::Rejected)
-    {
-        delete pdoc;
-        delete kdb;
-        return KoFilter::StorageCreationError; // FIXME Cancel doesn't exist :(
-    }
-    
-    // Init kis's doc
-    KisDoc * doc = dynamic_cast<KisDoc*>(m_chain -> outputDocument());
-    if (!doc)
-    {
-        delete pdoc;
-        delete kdb;
-        return KoFilter::CreationError;
-    }
-
-    doc -> prepareForImport();
-    // Create the krita image
-    KisColorSpace* cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID("RGBA"), "");
-    int width = wdg->intWidth->value();
-    int height = wdg->intHeight->value();
-    KisImageSP img = new KisImage(doc->undoAdapter(), width, height, cs, "built image");
-    img->blockSignals(true); // Don't send out signals while we're building the image
-    
-    // create a layer
-    TQValueList<int> pages = wdg->pages();
-    for(TQValueList<int>::const_iterator it = pages.begin(); it != pages.end(); ++it)
-    {
-        KisPaintLayer* layer = new KisPaintLayer(img, TQString(i18n("Page %1")).tqarg( TQString::number(*it) + 1), TQ_UINT8_MAX);
-        layer->paintDevice()->convertFromTQImage( pdoc->getPage( *it )->renderToImage(wdg->intHorizontal->value(), wdg->intVertical->value() ), "");
-        img->addLayer(layer, img->rootLayer(), 0);
-    }
-    
-    img->blockSignals(false);
-    doc -> setCurrentImage( img);
-    
-    KIO::NetAccess::removeTempFile(tmpFile);
-    
-    delete pdoc;
-    delete kdb;
-    return KoFilter::OK;
-}
-
diff --git a/filters/krita/pdf/kis_pdf_import.h b/filters/krita/pdf/kis_pdf_import.h
deleted file mode 100644
index ab4535b9d..000000000
--- a/filters/krita/pdf/kis_pdf_import.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_PDF_IMPORT_H
-#define KIS_PDF_IMPORT_H
-
-#include <KoFilter.h>
-
-class KisPDFImport : public KoFilter{
-    Q_OBJECT
-  TQ_OBJECT
-    public:
-        KisPDFImport(KoFilter *tqparent, const char *name, const TQStringList&);
-        virtual ~KisPDFImport();
-    public:
-        virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif
diff --git a/filters/krita/pdf/kis_pdf_import_widget.cpp b/filters/krita/pdf/kis_pdf_import_widget.cpp
deleted file mode 100644
index 6919876f8..000000000
--- a/filters/krita/pdf/kis_pdf_import_widget.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_pdf_import_widget.h"
-
-// poppler's headers
-#include <poppler-qt.h>
-
-// TQt's headers
-#include <tqradiobutton.h>
-
-// KDE's headers
-#include <kdebug.h>
-#include <klistbox.h>
-#include <knuminput.h>
-
-KisPDFImportWidget::KisPDFImportWidget(Poppler::Document* pdfDoc, TQWidget * tqparent, const char * name)
-    : PDFImportWidgetBase(tqparent, name), m_pdfDoc(pdfDoc)
-{
-    m_pages.push_back(0); // The first page is selected
-    updateMaxCanvasSize();
-    
-    for(int i = 1; i <= m_pdfDoc->getNumPages(); i++)
-    {
-        listPages->insertItem(TQString::number( i ) );
-    }
-    
-    connect(intWidth, TQT_SIGNAL(  valueChanged ( int ) ), this, TQT_SLOT( updateHRes() ) );
-    connect(intHeight, TQT_SIGNAL(  valueChanged ( int ) ), this, TQT_SLOT( updateHVer() ) );
-    connect(intHorizontal, TQT_SIGNAL(  valueChanged ( int ) ), this, TQT_SLOT( updateWidth() ) );
-    connect(intVertical, TQT_SIGNAL(  valueChanged ( int ) ), this, TQT_SLOT( updateHeight() ) );
-    connect(boolAllPages, TQT_SIGNAL(  toggled ( bool ) ), this, TQT_SLOT( selectAllPages( bool ) ) );
-    connect(boolFirstPage, TQT_SIGNAL(  toggled ( bool ) ), this, TQT_SLOT( selectFirstPage( bool ) ) );
-    connect(boolSelectionPage, TQT_SIGNAL(  toggled ( bool ) ), this, TQT_SLOT( selectSelectionOfPages( bool ) ) );
-    connect(listPages, TQT_SIGNAL(selectionChanged () ), this, TQT_SLOT(updateSelectionOfPages()));
-}
-
-
-KisPDFImportWidget::~KisPDFImportWidget()
-{
-}
-
-void KisPDFImportWidget::selectAllPages(bool v)
-{
-    if(v)
-    {
-        m_pages.clear();
-        for(int i = 0; i < m_pdfDoc->getNumPages(); i++)
-        {
-            m_pages.push_back(i);
-        }
-        updateMaxCanvasSize();
-    }
-}
-void KisPDFImportWidget::selectFirstPage(bool v)
-{
-    if(v)
-    {
-        m_pages.clear();
-        m_pages.push_back(0); // The first page is selected
-    }
-}
-void KisPDFImportWidget::selectSelectionOfPages(bool v)
-{
-    if(v)
-    {
-        updateSelectionOfPages();
-        updateMaxCanvasSize();
-    }
-
-}
-
-void KisPDFImportWidget::updateSelectionOfPages()
-{
-    if(! boolSelectionPage->isChecked ()) boolSelectionPage->toggle();
-    m_pages.clear();
-    for(int i = 0; i < m_pdfDoc->getNumPages(); i++)
-    {
-        if(listPages->isSelected(i)) m_pages.push_back(i);
-    }
-}
-
-
-void KisPDFImportWidget::updateMaxCanvasSize() {
-    m_maxWidthInch = 0., m_maxHeightInch =0.;
-    for(TQValueList<int>::const_iterator it = m_pages.begin(); it != m_pages.end(); ++it)
-    {
-        Poppler::Page *p = m_pdfDoc->getPage(*it );
-        TQSize size = p->pageSize();
-        if(size.width() > m_maxWidthInch)
-        {
-            m_maxWidthInch = size.width();
-        }
-        if(size.height() > m_maxHeightInch)
-        {
-            m_maxHeightInch = size.height();
-        }
-    }
-    m_maxWidthInch /= 72.;
-    m_maxHeightInch /= 72.;
-    kdDebug() << m_maxWidthInch << " " << m_maxHeightInch << endl;
-    updateWidth();
-    updateHeight();
-}
-
-void KisPDFImportWidget::updateWidth()
-{
-    intWidth->blockSignals(true);
-    intWidth->setValue( (int) m_maxWidthInch * intHorizontal->value() + 1 );
-    intWidth->blockSignals(false);
-}
-void KisPDFImportWidget::updateHeight()
-{
-    intHeight->blockSignals(true);
-    intHeight->setValue( (int) m_maxHeightInch * intVertical->value() + 1  );
-    intHeight->blockSignals(false);
-}
-void KisPDFImportWidget::updateHRes()
-{
-    intHorizontal->blockSignals(true);
-    intHorizontal->setValue( (int) (intWidth->value() / m_maxWidthInch ) );
-    intHorizontal->blockSignals(false);
-}
-void KisPDFImportWidget::updateHVer()
-{
-    intVertical->blockSignals(true);
-    intVertical->setValue( (int) (intHeight->value() / m_maxHeightInch ) );
-    intVertical->blockSignals(false);
-}
-
-#include "kis_pdf_import_widget.moc"
diff --git a/filters/krita/pdf/kis_pdf_import_widget.h b/filters/krita/pdf/kis_pdf_import_widget.h
deleted file mode 100644
index 8fe806a88..000000000
--- a/filters/krita/pdf/kis_pdf_import_widget.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_PDF_IMPORT_WIDGET_H
-#define KIS_PDF_IMPORT_WIDGET_H
-
-#include <pdfimportwidgetbase.h>
-
-namespace Poppler {
-class Document;
-}
-
-class KisPDFImportWidget : public PDFImportWidgetBase
-{
-    Q_OBJECT
-  TQ_OBJECT
-    public:
-        KisPDFImportWidget(Poppler::Document* pdfDoc, TQWidget * tqparent, const char * name = "");
-
-        ~KisPDFImportWidget();
-    public:
-        inline TQValueList<int>  pages() { return m_pages; }
-    private slots:
-        void selectAllPages(bool v);
-        void selectFirstPage(bool v);
-        void selectSelectionOfPages(bool v);
-        void updateSelectionOfPages();
-        void updateWidth();
-        void updateHeight();
-        void updateHRes();
-        void updateHVer();
-        void updateMaxCanvasSize();
-    private:
-        Poppler::Document* m_pdfDoc;
-        TQValueList<int> m_pages;
-        double m_maxWidthInch, m_maxHeightInch;
-};
-
-#endif
diff --git a/filters/krita/pdf/krita_pdf.desktop b/filters/krita/pdf/krita_pdf.desktop
deleted file mode 100644
index 0f8828661..000000000
--- a/filters/krita/pdf/krita_pdf.desktop
+++ /dev/null
@@ -1,63 +0,0 @@
-[Desktop Entry]
-Categories=
-Exec=krita %u
-GenericName=Painting and Image Editing Application
-GenericName[bg]=Редактор на графични изображения
-GenericName[ca]=Programa de dibuix i manipulació d'imatges
-GenericName[cs]=Malování a úpravy obrázků
-GenericName[cy]=Cymhwysiad Peintio Golygu Delweddau
-GenericName[da]=Male- og billedredigeringsprogram
-GenericName[de]=Mal- und Bildbearbeitungsprogramm
-GenericName[el]=Εφαρμογή επεξεργασίας εικόνων
-GenericName[eo]=Aplikaĵo por Pentrado kaj Bildredaktado
-GenericName[es]=Aplicación de pintura y de edición de imágenes
-GenericName[et]=Joonistamise ja pilditöötluse rakendus
-GenericName[eu]=Irudien marrazketa eta ediziorako aplikazioa
-GenericName[fa]=کاربرد ویرایش تصویر و نقاشی
-GenericName[fi]=Maalaus- ja kuvankäsitelyohjelma
-GenericName[fr]=Application de dessin et de manipulation d'images
-GenericName[fy]=Ofbyldingsmanipulaasje
-GenericName[gl]=Aplicación de Pintura e Manipulación de Imaxes
-GenericName[he]=יישום לציור ועריכת תמונות
-GenericName[hr]=Aplikacija za obradu slika i fotografija
-GenericName[hu]=Képszerkesztő
-GenericName[is]=Málun og myndritill
-GenericName[it]=Applicazione di disegno e di modifica delle immagini
-GenericName[ja]=描画と画像編集のためのアプリケーション
-GenericName[km]=កម្មវិធី​គូរ​គំនូរ និង​កែសម្រួល​រូបភាព
-GenericName[lv]=Zīmēšanas un attēlu apstrādes programma
-GenericName[nb]=Program for tegning og bilderedigering
-GenericName[nds]=Programm för't Malen un Bildbewerken
-GenericName[ne]=पेन्टीङ्ग र छवि सम्पादन अनुप्रयोग
-GenericName[nl]=Afbeeldingsmanipulatie
-GenericName[pl]=Program do edycji zdjęć oraz rysunków
-GenericName[pt]=Aplicação de Pintura e Edição de Imagens
-GenericName[pt_BR]=Aplicação de Pintura e Edição de Imagens
-GenericName[ru]=Растровые изображения
-GenericName[se]=Málen- ja govvagieđahallanprográmma
-GenericName[sk]=Program pre tvorbu a úpravu obrázkov
-GenericName[sl]=Program za risanje in obdelavo slik
-GenericName[sr]=Програм за цртање и уређивање слика
-GenericName[sr@Latn]=Program za crtanje i uređivanje slika
-GenericName[sv]=Målnings- och bildredigeringsprogram
-GenericName[uk]=Програма для малювання і редагування зображень
-GenericName[uz]=Rasmlar bilan ishlaydigan dastur
-GenericName[uz@cyrillic]=Расмлар билан ишлайдиган дастур
-GenericName[zh_CN]=绘图和图像编辑应用程序
-GenericName[zh_TW]=繪圖與影像處理程式
-Icon=krita
-MimeType=application/pdf
-Name=Krita
-Name[hi]=के-रिता
-Name[km]= Krita
-Name[lo]=ກຣິຕາ
-Name[ne]=क्रिता
-Path=
-StartupNotify=true
-Terminal=false
-TerminalOptions=
-Type=Application
-X-DCOP-ServiceType=multi
-X-KDE-StartupNotify=true
-X-KDE-SubstituteUID=false
-X-KDE-Username=
diff --git a/filters/krita/pdf/krita_pdf_import.desktop b/filters/krita/pdf/krita_pdf_import.desktop
deleted file mode 100644
index fe49fb734..000000000
--- a/filters/krita/pdf/krita_pdf_import.desktop
+++ /dev/null
@@ -1,51 +0,0 @@
-[Desktop Entry]
-Type=Service
-Name=Krita PDF Import Filter
-Name[bg]=Филтър за импортиране от PDF в Krita
-Name[br]=Sil enporzh PDF evit Krita
-Name[ca]=Filtre d'importació PDF per a Krita
-Name[da]=Krita PDF-importfilter
-Name[de]=Krita PDF-Importfilter
-Name[el]=Φίλτρο εισαγωγής PDF του Krita
-Name[eo]=Krita PD-importfiltrilo
-Name[es]=Filtro de importación a PDF de Krita
-Name[et]=Krita PDF impordifilter
-Name[fa]=پالایۀ واردات Krita PDF
-Name[fr]=Filtre d'importation PDF de Krita
-Name[fy]=Krita PDF Ymportfilter
-Name[ga]=Scagaire Iompórtála PDF Krita
-Name[gl]=Filtro de Importación de PDF para Krita
-Name[hr]=Krita PDF filtar uvoza
-Name[hu]=Krita PDF importszűrő
-Name[it]=Filtro di importazione PDF per Krita
-Name[ja]=Krita PDF インポートフィルタ
-Name[km]=តម្រង​នាំចូល PNG របស់​រាប់ Krita
-Name[lt]=Krita PDF importavimo filtras
-Name[lv]=Krita PDF importa filtrs
-Name[nb]=PDF-importfilter for Krita
-Name[nds]=PDF-Importfilter för Krita
-Name[ne]=क्रिता PDF आयात फिल्टर
-Name[nl]=Krita PDF Importfilter
-Name[pl]=Filtr importu formatu PDF do Krita
-Name[pt]=Filtro de Importação de PDF para o Krita
-Name[pt_BR]=Filtro de Importação de PDF para o Krita
-Name[ru]=Фильтр импорта документов PDF в Krita
-Name[se]=Krita PDF-sisafievrridansilli
-Name[sk]=PDF filter pre import do Krita
-Name[sl]=Uvozni filter PDF za Krito
-Name[sr]=Krita-ин филтер за увоз из PDF-а
-Name[sr@Latn]=Krita-in filter za uvoz iz PDF-a
-Name[sv]=Krita PDF-importfilter
-Name[uk]=Фільтр імпорту PDF для Krita
-Name[uz]=Krita uchun PDF import filteri
-Name[uz@cyrillic]=Krita учун PDF импорт филтери
-Name[zh_TW]=Krita PDF 匯入過濾程式
-Comment=
-Comment[uz]=PDF-fayllarni Krita bilan oʻqish vositasi
-Comment[uz@cyrillic]=PDF-файлларни Krita билан ўқиш воситаси
-ServiceTypes=KOfficeFilter
-X-KDE-Available=
-X-KDE-Export=application/x-krita
-X-KDE-Import=application/pdf
-X-KDE-Weight=1
-X-KDE-Library=libkritapdfimport
diff --git a/filters/krita/pdf/pdfimportwidgetbase.ui b/filters/krita/pdf/pdfimportwidgetbase.ui
deleted file mode 100644
index 19da5d155..000000000
--- a/filters/krita/pdf/pdfimportwidgetbase.ui
+++ /dev/null
@@ -1,321 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>PDFImportWidgetBase</class>
-<widget class="TQWidget">
-    <property name="name">
-        <cstring>PDFImportWidgetBase</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>462</width>
-            <height>210</height>
-        </rect>
-    </property>
-    <property name="caption">
-        <string>PDFImportWidget</string>
-    </property>
-    <grid>
-        <property name="name">
-            <cstring>unnamed</cstring>
-        </property>
-        <widget class="TQGroupBox" row="0" column="1">
-            <property name="name">
-                <cstring>groupBox1</cstring>
-            </property>
-            <property name="title">
-                <string>Dimensions</string>
-            </property>
-            <vbox>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="TQLabel">
-                    <property name="name">
-                        <cstring>textLabel1</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Resolution:</string>
-                    </property>
-                </widget>
-                <widget class="TQLayoutWidget">
-                    <property name="name">
-                        <cstring>tqlayout6</cstring>
-                    </property>
-                    <hbox>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <spacer>
-                            <property name="name">
-                                <cstring>spacer2_2</cstring>
-                            </property>
-                            <property name="orientation">
-                                <enum>Horizontal</enum>
-                            </property>
-                            <property name="sizeType">
-                                <enum>Fixed</enum>
-                            </property>
-                            <property name="tqsizeHint">
-                                <size>
-                                    <width>20</width>
-                                    <height>20</height>
-                                </size>
-                            </property>
-                        </spacer>
-                        <widget class="TQLayoutWidget">
-                            <property name="name">
-                                <cstring>tqlayout2</cstring>
-                            </property>
-                            <grid>
-                                <property name="name">
-                                    <cstring>unnamed</cstring>
-                                </property>
-                                <widget class="TQLabel" row="1" column="0">
-                                    <property name="name">
-                                        <cstring>intVerticalqsdf</cstring>
-                                    </property>
-                                    <property name="text">
-                                        <string>Vertical:</string>
-                                    </property>
-                                </widget>
-                                <widget class="KComboBox" row="0" column="2">
-                                    <item>
-                                        <property name="text">
-                                            <string>Dots/inch</string>
-                                        </property>
-                                    </item>
-                                    <property name="name">
-                                        <cstring>kComboBox1</cstring>
-                                    </property>
-                                </widget>
-                                <widget class="KIntSpinBox" row="0" column="1">
-                                    <property name="name">
-                                        <cstring>intHorizontal</cstring>
-                                    </property>
-                                    <property name="maxValue">
-                                        <number>999</number>
-                                    </property>
-                                    <property name="value">
-                                        <number>72</number>
-                                    </property>
-                                </widget>
-                                <widget class="KIntSpinBox" row="1" column="1">
-                                    <property name="name">
-                                        <cstring>intVertical</cstring>
-                                    </property>
-                                    <property name="maxValue">
-                                        <number>999</number>
-                                    </property>
-                                    <property name="value">
-                                        <number>72</number>
-                                    </property>
-                                </widget>
-                                <widget class="TQLabel" row="0" column="0">
-                                    <property name="name">
-                                        <cstring>textLabel5</cstring>
-                                    </property>
-                                    <property name="text">
-                                        <string>Horizontal:</string>
-                                    </property>
-                                </widget>
-                                <widget class="KComboBox" row="1" column="2">
-                                    <item>
-                                        <property name="text">
-                                            <string>Dots/inch</string>
-                                        </property>
-                                    </item>
-                                    <property name="name">
-                                        <cstring>kComboBox2</cstring>
-                                    </property>
-                                </widget>
-                            </grid>
-                        </widget>
-                        <spacer>
-                            <property name="name">
-                                <cstring>spacer4</cstring>
-                            </property>
-                            <property name="orientation">
-                                <enum>Horizontal</enum>
-                            </property>
-                            <property name="sizeType">
-                                <enum>Expanding</enum>
-                            </property>
-                            <property name="tqsizeHint">
-                                <size>
-                                    <width>31</width>
-                                    <height>20</height>
-                                </size>
-                            </property>
-                        </spacer>
-                    </hbox>
-                </widget>
-                <widget class="TQLabel">
-                    <property name="name">
-                        <cstring>textLabel2</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Size:</string>
-                    </property>
-                </widget>
-                <widget class="TQLayoutWidget">
-                    <property name="name">
-                        <cstring>tqlayout4</cstring>
-                    </property>
-                    <hbox>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <spacer>
-                            <property name="name">
-                                <cstring>spacer2</cstring>
-                            </property>
-                            <property name="orientation">
-                                <enum>Horizontal</enum>
-                            </property>
-                            <property name="sizeType">
-                                <enum>Fixed</enum>
-                            </property>
-                            <property name="tqsizeHint">
-                                <size>
-                                    <width>20</width>
-                                    <height>20</height>
-                                </size>
-                            </property>
-                        </spacer>
-                        <widget class="TQLayoutWidget">
-                            <property name="name">
-                                <cstring>tqlayout3</cstring>
-                            </property>
-                            <grid>
-                                <property name="name">
-                                    <cstring>unnamed</cstring>
-                                </property>
-                                <widget class="KIntSpinBox" row="1" column="1">
-                                    <property name="name">
-                                        <cstring>intHeight</cstring>
-                                    </property>
-                                    <property name="maxValue">
-                                        <number>99999</number>
-                                    </property>
-                                </widget>
-                                <widget class="TQLabel" row="0" column="0">
-                                    <property name="name">
-                                        <cstring>intWidthzqffs</cstring>
-                                    </property>
-                                    <property name="text">
-                                        <string>Width:</string>
-                                    </property>
-                                </widget>
-                                <widget class="KIntSpinBox" row="0" column="1">
-                                    <property name="name">
-                                        <cstring>intWidth</cstring>
-                                    </property>
-                                    <property name="maxValue">
-                                        <number>99999</number>
-                                    </property>
-                                </widget>
-                                <widget class="TQLabel" row="1" column="0">
-                                    <property name="name">
-                                        <cstring>intHeightqsdfq</cstring>
-                                    </property>
-                                    <property name="text">
-                                        <string>Height:</string>
-                                    </property>
-                                </widget>
-                            </grid>
-                        </widget>
-                        <spacer>
-                            <property name="name">
-                                <cstring>spacer1</cstring>
-                            </property>
-                            <property name="orientation">
-                                <enum>Horizontal</enum>
-                            </property>
-                            <property name="sizeType">
-                                <enum>Expanding</enum>
-                            </property>
-                            <property name="tqsizeHint">
-                                <size>
-                                    <width>51</width>
-                                    <height>20</height>
-                                </size>
-                            </property>
-                        </spacer>
-                    </hbox>
-                </widget>
-            </vbox>
-        </widget>
-        <widget class="TQButtonGroup" row="0" column="0">
-            <property name="name">
-                <cstring>buttonGroup1</cstring>
-            </property>
-            <property name="title">
-                <string>Pages</string>
-            </property>
-            <vbox>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="TQRadioButton">
-                    <property name="name">
-                        <cstring>boolAllPages</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;All pages</string>
-                    </property>
-                </widget>
-                <widget class="TQRadioButton">
-                    <property name="name">
-                        <cstring>boolFirstPage</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;First page</string>
-                    </property>
-                    <property name="checked">
-                        <bool>true</bool>
-                    </property>
-                </widget>
-                <widget class="TQRadioButton">
-                    <property name="name">
-                        <cstring>boolSelectionPage</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Selection of page</string>
-                    </property>
-                </widget>
-                <widget class="KListBox">
-                    <property name="name">
-                        <cstring>listPages</cstring>
-                    </property>
-                    <property name="selectionMode">
-                        <enum>Multi</enum>
-                    </property>
-                </widget>
-            </vbox>
-        </widget>
-    </grid>
-</widget>
-<customwidgets>
-</customwidgets>
-<tabstops>
-    <tabstop>boolFirstPage</tabstop>
-    <tabstop>listPages</tabstop>
-    <tabstop>intHorizontal</tabstop>
-    <tabstop>kComboBox1</tabstop>
-    <tabstop>intVertical</tabstop>
-    <tabstop>kComboBox2</tabstop>
-    <tabstop>intWidth</tabstop>
-    <tabstop>intHeight</tabstop>
-</tabstops>
-<tqlayoutdefaults spacing="6" margin="11"/>
-<includehints>
-    <includehint>kcombobox.h</includehint>
-    <includehint>knuminput.h</includehint>
-    <includehint>knuminput.h</includehint>
-    <includehint>kcombobox.h</includehint>
-    <includehint>knuminput.h</includehint>
-    <includehint>knuminput.h</includehint>
-    <includehint>klistbox.h</includehint>
-</includehints>
-</UI>
diff --git a/filters/krita/png/Makefile.am b/filters/krita/png/Makefile.am
deleted file mode 100644
index 75a2b5114..000000000
--- a/filters/krita/png/Makefile.am
+++ /dev/null
@@ -1,44 +0,0 @@
-kde_module_LTLIBRARIES = libkritapngimport.la libkritapngexport.la
-
-libkritapngexport_la_LDFLAGS = $(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) -module -avoid-version -no-undefined -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritapngexport_la_LIBADD = \
-	$(KOFFICE_LIBS) \
-	$(top_builddir)/krita/libkritacommon.la \
-	-lpng
-
-libkritapngimport_la_LDFLAGS = $(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) -module -avoid-version -no-undefined -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritapngimport_la_LIBADD = \
-	$(KOFFICE_LIBS) \
-	$(top_builddir)/krita/libkritacommon.la \
-	-lpng
-
-INCLUDES= \
-	-I$(srcdir) \
-	 $(KOFFICE_INCLUDES) \
-	-I$(top_srcdir)/krita \
-	-I$(top_srcdir)/krita/core \
-	-I$(top_srcdir)/krita/sdk \
-	-I$(top_srcdir)/krita/core/tiles \
-	-I$(top_srcdir)/krita/kritacolor \
-	-I$(top_srcdir)/krita/ui \
-        $(KOFFICE_INCLUDES) -I$(interfacedir) \
-        $(KOPAINTER_INCLUDES) \
-	$(all_includes) 
-
-service_DATA = krita_png_import.desktop krita_png_export.desktop
-servicedir = $(kde_servicesdir)
-
-kdelnk_DATA = krita_png.desktop
-kdelnkdir = $(kde_appsdir)/.hidden
-
-libkritapngimport_la_SOURCES = kis_png_import.cc kis_png_converter.cc
-libkritapngexport_la_SOURCES = kis_wdg_options_png.ui kis_png_export.cc kis_png_converter.cc
-
-METASOURCES = AUTO
-
-
-KDE_CXXFLAGS = $(USE_EXCEPTIONS)
diff --git a/filters/krita/png/configure.in.bot b/filters/krita/png/configure.in.bot
deleted file mode 100644
index 0df5c7cab..000000000
--- a/filters/krita/png/configure.in.bot
+++ /dev/null
@@ -1,8 +0,0 @@
-if test -z "$LIBPNG";  then
-  echo ""
-  echo "You're missing libpng (binaries and/or headers), krita won't be able"
-  echo "to import/export png"
-  echo ""
-  all_tests=bad
-fi
-
diff --git a/filters/krita/png/kis_png_converter.cc b/filters/krita/png/kis_png_converter.cc
deleted file mode 100644
index 12da20984..000000000
--- a/filters/krita/png/kis_png_converter.cc
+++ /dev/null
@@ -1,794 +0,0 @@
-/*
- *  Copyright (c) 2005-2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
- 
- // A big thank to Glenn Randers-Pehrson for it's wonderfull documentation of libpng available at http://www.libpng.org/pub/png/libpng-1.2.5-manual.html
-#include "kis_png_converter.h"
-
-#include <stdio.h>
-
-#include <tqfile.h>
-
-#include <kapplication.h>
-#include <kmessagebox.h>
-#include <klocale.h>
-
-#include <KoDocumentInfo.h>
-
-#include <kio/netaccess.h>
-
-#include <kis_abstract_colorspace.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_doc.h>
-#include <kis_image.h>
-#include <kis_iterators_pixel.h>
-#include <kis_layer.h>
-#include <kis_meta_registry.h>
-#include <kis_profile.h>
-#include <kis_paint_layer.h>
-#include <kis_group_layer.h>
-
-namespace {
-
-    const TQ_UINT8 PIXEL_BLUE = 0;
-    const TQ_UINT8 PIXEL_GREEN = 1;
-    const TQ_UINT8 PIXEL_RED = 2;
-    const TQ_UINT8 PIXEL_ALPHA = 3;
-
-    
-    int getColorTypeforColorSpace( KisColorSpace * cs , bool alpha)
-    {
-        if ( cs->id() == KisID("GRAYA") || cs->id() == KisID("GRAYA16") )
-        {
-            return alpha ? PNG_COLOR_TYPE_GRAY_ALPHA : PNG_COLOR_TYPE_GRAY;
-        }
-        if ( cs->id() == KisID("RGBA") || cs->id() == KisID("RGBA16") )
-        {
-            return alpha ? PNG_COLOR_TYPE_RGB_ALPHA : PNG_COLOR_TYPE_RGB;
-        }
-
-        KMessageBox::error(0, i18n("Cannot export images in %1.\n").tqarg(cs->id().name()) ) ;
-        return -1;
-
-    }
-
-    
-    TQString getColorSpaceForColorType(int color_type,int color_nb_bits) {
-        if(color_type == PNG_COLOR_TYPE_GRAY || color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
-        {
-            switch(color_nb_bits)
-            {
-                case 8:
-                    return "GRAYA";
-                case 16:
-                    return "GRAYA16";
-            }
-        } else if(color_type == PNG_COLOR_TYPE_RGB_ALPHA || color_type == PNG_COLOR_TYPE_RGB) {
-            switch(color_nb_bits)
-            {
-                case 8:
-                    return "RGBA";
-                case 16:
-                    return "RGBA16";
-            }
-        } else if(color_type ==  PNG_COLOR_TYPE_PALETTE) {
-            return "RGBA"; // <-- we will convert the index image to RGBA
-        }
-        return "";
-    }
-
-
-    void fillText(png_text* p_text, char* key, TQString& text)
-    {
-        p_text->compression = PNG_TEXT_COMPRESSION_zTXt;
-        p_text->key = key;
-        char* textc = new char[text.length()+1];
-        strcpy(textc, text.ascii());
-        p_text->text = textc;
-        p_text->text_length = text.length()+1;
-    }
-
-}
-
-KisPNGConverter::KisPNGConverter(KisDoc *doc, KisUndoAdapter *adapter)
-{
-    Q_ASSERT(doc);
-    Q_ASSERT(adapter);
-    
-    m_doc = doc;
-    m_adapter = adapter;
-    m_stop = false;
-    m_max_row = 0;
-    m_img = 0;
-}
-
-KisPNGConverter::~KisPNGConverter()
-{
-}
-
-class KisPNGStream {
-    public:
-        KisPNGStream(TQ_UINT8* buf,  TQ_UINT32 depth ) : m_posinc(8),m_depth(depth), m_buf(buf) { *m_buf = 0;};
-        int nextValue()
-        {
-            if( m_posinc == 0)
-            {
-                m_posinc = 8;
-                m_buf++;
-            }
-            m_posinc -= m_depth;
-            return (( (*m_buf) >> (m_posinc) ) & ( ( 1 << m_depth ) - 1 ) );
-        }
-        void setNextValue(int v)
-        {
-            if( m_posinc == 0)
-            {
-                m_posinc = 8;
-                m_buf++;
-                *m_buf = 0;
-            }
-            m_posinc -= m_depth;
-            *m_buf = (v << m_posinc) | *m_buf;
-        }
-    private:
-        TQ_UINT32 m_posinc, m_depth;
-        TQ_UINT8* m_buf;
-};
-
-KisImageBuilder_Result KisPNGConverter::decode(const KURL& uri)
-{
-    kdDebug(41008) << "Start decoding PNG File" << endl;
-    // open the file
-    kdDebug(41008) << TQFile::encodeName(uri.path()) << " " << uri.path() << " " << uri << endl;
-    FILE *fp = fopen(TQFile::encodeName(uri.path()), "rb");
-    if (!fp)
-    {
-        return (KisImageBuilder_RESULT_NOT_EXIST);
-    }
-    png_byte signature[8];
-    fread(signature, 1, 8, fp);
-    if (!png_check_sig(signature, 8))
-    {
-        return (KisImageBuilder_RESULT_BAD_FETCH);
-    }
-
-    // Initialize the internal structures
-    png_structp png_ptr =  png_create_read_struct(PNG_LIBPNG_VER_STRING, (png_voidp)NULL, (png_error_ptr)NULL, (png_error_ptr)NULL);
-    if (!KisImageBuilder_RESULT_FAILURE)
-        return (KisImageBuilder_RESULT_FAILURE);
-
-    png_infop info_ptr = png_create_info_struct(png_ptr);
-    if (!info_ptr)
-    {
-        png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL);
-        return (KisImageBuilder_RESULT_FAILURE);
-    }
-
-    png_infop end_info = png_create_info_struct(png_ptr);
-    if (!end_info)
-    {
-        png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
-        return (KisImageBuilder_RESULT_FAILURE);
-    }
-
-    // Catch errors
-    if (setjmp(png_jmpbuf(png_ptr)))
-    {
-        png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
-        fclose(fp);
-        return (KisImageBuilder_RESULT_FAILURE);
-    }
-    
-    png_init_io(png_ptr, fp);
-    png_set_sig_bytes(png_ptr, 8);
-    
-    // read all PNG info up to image data
-    png_read_info(png_ptr, info_ptr);
-
-    // Read information about the png
-    png_uint_32 width, height;
-    int color_nb_bits, color_type, interlace_type;
-    png_get_IHDR(png_ptr, info_ptr, &width, &height, &color_nb_bits, &color_type, &interlace_type, NULL, NULL);
-    kdDebug(41008) << "it's an " << color_nb_bits << " depth image" << endl;
-
-    // swap byteorder on little endian machines.
-    #ifndef WORDS_BIGENDIAN
-    if (color_nb_bits > 8 )
-        png_set_swap(png_ptr);
-    #endif
-
-    // Determine the colorspace
-    TQString csName = getColorSpaceForColorType(color_type, color_nb_bits);
-    if(csName.isEmpty()) {
-        png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
-        return KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE;
-    }
-    bool hasalpha = (color_type == PNG_COLOR_TYPE_RGB_ALPHA || color_type == PNG_COLOR_TYPE_GRAY_ALPHA);
-    
-    // Read image profile
-    png_charp profile_name, profile_data;
-    int compression_type;
-    png_uint_32 proflen;
-    int number_of_passes = 1;
-
-    if (interlace_type == PNG_INTERLACE_ADAM7)
-        number_of_passes = png_set_interlace_handling(png_ptr);
-
-    KisProfile* profile = 0;
-    if(png_get_iCCP(png_ptr, info_ptr, &profile_name, &compression_type, &profile_data, &proflen))
-    {
-        TQByteArray profile_rawdata;
-        // XXX: Hardcoded for icc type -- is that correct for us?
-        if (TQString::compare(profile_name, "icc") == 0) {
-            profile_rawdata.resize(proflen);
-            memcpy(profile_rawdata.data(), profile_data, proflen);
-            profile = new KisProfile(profile_rawdata);
-            Q_CHECK_PTR(profile);
-            if (profile) {
-                kdDebug(41008) << "profile name: " << profile->productName() << " profile description: " << profile->productDescription() << " information sur le produit: " << profile->productInfo() << endl;
-                if(!profile->isSuitableForOutput())
-                {
-                    kdDebug(41008) << "the profile is not suitable for output and therefore cannot be used in krita, we need to convert the image to a standard profile" << endl; // TODO: in ko2 popup a selection menu to inform the user
-                }
-            }
-        }
-    }
-
-    // Retrieve a pointer to the colorspace
-    KisColorSpace* cs;
-    if (profile && profile->isSuitableForOutput())
-    {
-        kdDebug(41008) << "image has embedded profile: " << profile -> productName() << "\n";
-        cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace(csName, profile);
-    }
-    else
-        cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID(csName,""),"");
-
-    if(cs == 0)
-    {
-        png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
-        return KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE;
-    }
-    
-    // Create the cmsTransform if needed 
-    cmsHTRANSFORM transform = 0;
-    if(profile && !profile->isSuitableForOutput())
-    {
-        transform = cmsCreateTransform(profile->profile(), cs->colorSpaceType(),
-                                       cs->getProfile()->profile() , cs->colorSpaceType(),
-                                       INTENT_PERCEPTUAL, 0);
-    }
-
-    // Read comments/texts...
-    png_text* text_ptr;
-    int num_comments;
-    png_get_text(png_ptr, info_ptr, &text_ptr, &num_comments);
-    KoDocumentInfo * info = m_doc->documentInfo();
-    KoDocumentInfoAbout * aboutPage = static_cast<KoDocumentInfoAbout *>(info->page( "about" ));
-    KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author"));
-    kdDebug(41008) << "There are " << num_comments << " comments in the text" << endl;
-    for(int i = 0; i < num_comments; i++)
-    {
-        kdDebug(41008) << "key is " << text_ptr[i].key << " containing " << text_ptr[i].text << endl;
-        if(TQString::compare(text_ptr[i].key, "title") == 0)
-        {
-                aboutPage->setTitle(text_ptr[i].text);
-        } else if(TQString::compare(text_ptr[i].key, "abstract")  == 0)
-        {
-                aboutPage->setAbstract(text_ptr[i].text);
-        } else if(TQString::compare(text_ptr[i].key, "author") == 0)
-        {
-                authorPage->setFullName(text_ptr[i].text);
-        }
-    }
-    
-    // Read image data
-    png_bytep row_pointer = 0;
-    try
-    {
-        png_uint_32 rowbytes = png_get_rowbytes(png_ptr, info_ptr);
-        row_pointer = new png_byte[rowbytes];
-    }
-    catch(std::bad_alloc& e)
-    {
-        // new png_byte[] may raise such an exception if the image
-        // is invalid / to large.
-        kdDebug(41008) << "bad alloc: " << e.what() << endl;
-        // Free only the already allocated png_byte instances.
-        png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
-        return (KisImageBuilder_RESULT_FAILURE);
-    }
-    
-    // Read the palette if the file is indexed
-    png_colorp palette ;
-    int num_palette;
-    if(color_type == PNG_COLOR_TYPE_PALETTE) {
-        png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette);
-    }
-//     png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, NULL );
-//     png_bytepp row_pointers = png_get_rows(png_ptr, info_ptr); // By using this function libpng will take care of freeing memory
-//    png_read_image(png_ptr, row_pointers);
-    
-    // Finish reading the file
-//    png_read_end(png_ptr, end_info);
-//    fclose(fp);
-    
-    // Creating the KisImageSP
-    if( ! m_img) {
-        m_img = new KisImage(m_doc->undoAdapter(), width, height, cs, "built image");
-        m_img->blockSignals(true); // Don't send out signals while we're building the image
-        Q_CHECK_PTR(m_img);
-        if(profile && !profile->isSuitableForOutput())
-        {
-            m_img -> addAnnotation( profile->annotation() );
-        }
-    }
-
-    KisPaintLayer* layer = new KisPaintLayer(m_img, m_img -> nextLayerName(), TQ_UINT8_MAX);
-    for (int i = 0; i < number_of_passes; i++)
-    {
-        for (png_uint_32 y = 0; y < height; y++) {
-            KisHLineIterator it = layer -> paintDevice() -> createHLineIterator(0, y, width, true);
-            png_read_rows(png_ptr, &row_pointer, NULL, 1);
-
-            switch(color_type)
-            {
-                case PNG_COLOR_TYPE_GRAY:
-                case PNG_COLOR_TYPE_GRAY_ALPHA:
-                    if(color_nb_bits == 16)
-                    {
-                        TQ_UINT16 *src = reinterpret_cast<TQ_UINT16 *>(row_pointer);
-                        while (!it.isDone()) {
-                            TQ_UINT16 *d = reinterpret_cast<TQ_UINT16 *>(it.rawData());
-                            d[0] = *(src++);
-                            if(transform) cmsDoTransform(transform, d, d, 1);
-                            if(hasalpha) d[1] = *(src++);
-                            else d[1] = TQ_UINT16_MAX;
-                            ++it;
-                        }
-                    } else {
-                        TQ_UINT8 *src = row_pointer;
-                        while (!it.isDone()) {
-                            TQ_UINT8 *d = it.rawData();
-                            d[0] = *(src++);
-                            if(transform) cmsDoTransform(transform, d, d, 1);
-                            if(hasalpha) d[1] = *(src++);
-                            else d[1] = TQ_UINT8_MAX;
-                            ++it;
-                        }
-                    }
-                //FIXME:should be able to read 1 and 4 bits depth and scale them to 8 bits
-                    break;
-                case PNG_COLOR_TYPE_RGB:
-                case PNG_COLOR_TYPE_RGB_ALPHA:
-                    if(color_nb_bits == 16)
-                    {
-                        TQ_UINT16 *src = reinterpret_cast<TQ_UINT16 *>(row_pointer);
-                        while (!it.isDone()) {
-                            TQ_UINT16 *d = reinterpret_cast<TQ_UINT16 *>(it.rawData());
-                            d[2] = *(src++);
-                            d[1] = *(src++);
-                            d[0] = *(src++);
-                            if(transform) cmsDoTransform(transform, d, d, 1);
-                            if(hasalpha) d[3] = *(src++);
-                            else d[3] = TQ_UINT16_MAX;
-                            ++it;
-                        }
-                    } else {
-                        TQ_UINT8 *src = row_pointer;
-                        while (!it.isDone()) {
-                            TQ_UINT8 *d = it.rawData();
-                            d[2] = *(src++);
-                            d[1] = *(src++);
-                            d[0] = *(src++);
-                            if(transform) cmsDoTransform(transform, d, d, 1);
-                            if(hasalpha) d[3] = *(src++);
-                            else d[3] = TQ_UINT8_MAX;
-                            ++it;
-                        }
-                    }
-                    break;
-                case PNG_COLOR_TYPE_PALETTE:
-                    {
-                        KisPNGStream stream(row_pointer, color_nb_bits);
-                        while (!it.isDone()) {
-                            TQ_UINT8 *d = it.rawData();
-                            png_color c = palette[ stream.nextValue() ];
-                            d[2] = c.red;
-                            d[1] = c.green;
-                            d[0] = c.blue;
-                            d[3] = TQ_UINT8_MAX;
-                            ++it;
-                        }
-                    }
-                    break;
-                default:
-                    return KisImageBuilder_RESULT_UNSUPPORTED;
-            }
-        }
-    }
-    m_img->addLayer(layer, m_img->rootLayer(), 0);
-
-    png_read_end(png_ptr, end_info);
-    fclose(fp);
-
-    // Freeing memory
-    png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
-
-    delete [] row_pointer;
-
-    return KisImageBuilder_RESULT_OK;
-
-}
-
-KisImageBuilder_Result KisPNGConverter::buildImage(const KURL& uri)
-{
-    kdDebug(41008) << TQFile::encodeName(uri.path()) << " " << uri.path() << " " << uri << endl;
-    if (uri.isEmpty())
-        return KisImageBuilder_RESULT_NO_URI;
-
-    if (!KIO::NetAccess::exists(uri, false, tqApp -> mainWidget())) {
-        return KisImageBuilder_RESULT_NOT_EXIST;
-    }
-
-    // We're not set up to handle asynchronous loading at the moment.
-    KisImageBuilder_Result result = KisImageBuilder_RESULT_FAILURE;
-    TQString tmpFile;
-
-    if (KIO::NetAccess::download(uri, tmpFile, tqApp -> mainWidget())) {
-        KURL uriTF;
-        uriTF.setPath( tmpFile );
-        result = decode(uriTF);
-        KIO::NetAccess::removeTempFile(tmpFile);
-    }
-
-    return result;
-}
-
-
-KisImageSP KisPNGConverter::image()
-{
-    return m_img;
-}
-
-KisImageBuilder_Result KisPNGConverter::buildFile(const KURL& uri, KisPaintLayerSP layer, vKisAnnotationSP_it annotationsStart, vKisAnnotationSP_it annotationsEnd, int compression, bool interlace, bool alpha)
-{
-    kdDebug(41008) << "Start writing PNG File" << endl;
-    if (!layer)
-        return KisImageBuilder_RESULT_INVALID_ARG;
-
-    KisImageSP img = layer -> image();
-    if (!img)
-        return KisImageBuilder_RESULT_EMPTY;
-
-    if (uri.isEmpty())
-        return KisImageBuilder_RESULT_NO_URI;
-
-    if (!uri.isLocalFile())
-        return KisImageBuilder_RESULT_NOT_LOCAL;
-    // Open file for writing
-    FILE *fp = fopen(TQFile::encodeName(uri.path()), "wb");
-    if (!fp)
-    {
-        return (KisImageBuilder_RESULT_FAILURE);
-    }
-    int height = img->height();
-    int width = img->width();
-    // Initialize structures
-    png_structp png_ptr =  png_create_write_struct(PNG_LIBPNG_VER_STRING, (png_voidp)NULL, (png_error_ptr)NULL, (png_error_ptr)NULL);
-    if (!png_ptr)
-    {
-        KIO::del(uri);
-        return (KisImageBuilder_RESULT_FAILURE);
-    }
-
-    png_infop info_ptr = png_create_info_struct(png_ptr);
-    if (!info_ptr)
-    {
-        KIO::del(uri);
-        png_destroy_write_struct(&png_ptr, (png_infopp)NULL);
-        return (KisImageBuilder_RESULT_FAILURE);
-    }
-
-    // If an error occurs during writing, libpng will jump here
-    if (setjmp(png_jmpbuf(png_ptr)))
-    {
-        KIO::del(uri);
-        png_destroy_write_struct(&png_ptr, &info_ptr);
-        fclose(fp);
-        return (KisImageBuilder_RESULT_FAILURE);
-    }
-    // Initialize the writing
-    png_init_io(png_ptr, fp);
-    // Setup the progress function
-// FIXME    png_set_write_status_fn(png_ptr, progress);
-//     setProgressTotalSteps(100/*height*/);
-    
-
-    /* set the zlib compression level */
-    png_set_compression_level(png_ptr, compression);
-
-    /* set other zlib parameters */
-    png_set_compression_mem_level(png_ptr, 8);
-    png_set_compression_strategy(png_ptr, Z_DEFAULT_STRATEGY);
-    png_set_compression_window_bits(png_ptr, 15);
-    png_set_compression_method(png_ptr, 8);
-    png_set_compression_buffer_size(png_ptr, 8192);
-    
-    int color_nb_bits = 8 * layer->paintDevice()->pixelSize() / layer->paintDevice()->nChannels();
-    int color_type = getColorTypeforColorSpace(layer->paintDevice()->colorSpace(), alpha);
-    
-    if(color_type == -1)
-    {
-        return KisImageBuilder_RESULT_UNSUPPORTED;
-    }
-    
-    // Try to compute a table of color if the colorspace is RGB8f
-    png_colorp palette ;
-    int num_palette = 0;
-    if(!alpha && layer->paintDevice()->colorSpace()->id() == KisID("RGBA") )
-    { // png doesn't handle indexed images and alpha, and only have indexed for RGB8
-        palette = new png_color[255];
-        KisRectIteratorPixel it = layer->paintDevice()->createRectIterator(0,0, img->width(), img->height(), false);
-        bool toomuchcolor = false;
-        while( !it.isDone() )
-        {
-            const TQ_UINT8* c = it.rawData();
-            bool findit = false;
-            for(int i = 0; i < num_palette; i++)
-            {
-                if(palette[i].red == c[2] &&
-                   palette[i].green == c[1] &&
-                   palette[i].blue == c[0] )
-                {
-                    findit = true;
-                    break;
-                }
-            }
-            if(!findit)
-            {
-                if( num_palette == 255)
-                {
-                    toomuchcolor = true;
-                    break;
-                }
-                palette[num_palette].red = c[2];
-                palette[num_palette].green = c[1];
-                palette[num_palette].blue = c[0];
-                num_palette++;
-            }
-            ++it;
-        }
-        if(!toomuchcolor)
-        {
-            kdDebug(41008) << "Found a palette of " << num_palette << " colors" << endl;
-            color_type = PNG_COLOR_TYPE_PALETTE;
-            if( num_palette <= 2)
-            {
-                color_nb_bits = 1;
-            } else if( num_palette <= 4)
-            {
-                color_nb_bits = 2;
-            } else if( num_palette <= 16)
-            {
-                color_nb_bits = 4;
-            } else {
-                color_nb_bits = 8;
-            }
-        } else {
-            delete palette;
-        }
-    }
-    
-    int interlacetype = interlace ? PNG_INTERLACE_ADAM7 : PNG_INTERLACE_NONE;
-    
-    png_set_IHDR(png_ptr, info_ptr,
-                 width,
-                 height,
-                 color_nb_bits,
-                 color_type, interlacetype,
-                 PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
-    
-    png_set_sRGB(png_ptr, info_ptr, PNG_sRGB_INTENT_ABSOLUTE);
-    // set the palette
-    if( color_type == PNG_COLOR_TYPE_PALETTE)
-    {
-        png_set_PLTE(png_ptr, info_ptr, palette, num_palette);
-    }
-    // Save annotation
-    vKisAnnotationSP_it it = annotationsStart;
-    while(it != annotationsEnd) {
-        if (!(*it) || (*it) -> type() == TQString()) {
-            kdDebug(41008) << "Warning: empty annotation" << endl;
-            ++it;
-            continue;
-        }
-
-        kdDebug(41008) << "Trying to store annotation of type " << (*it) -> type() << " of size " << (*it) -> annotation() . size() << endl;
-
-        if ((*it) -> type().startsWith("krita_attribute:")) { // Attribute
-            // FIXME: it should be possible to save krita_attributes in the "CHUNKs"
-            kdDebug(41008) << "can't save this annotation : " << (*it) -> type() << endl;
-        } else { // Profile
-            char* name = new char[(*it)->type().length()+1];
-            strcpy(name, (*it)->type().ascii());
-            png_set_iCCP(png_ptr, info_ptr, name, PNG_COMPRESSION_TYPE_BASE, (char*)(*it)->annotation().data(), (*it) -> annotation() . size());
-        }
-        ++it;
-    }
-
-    // read comments from the document information
-    png_text texts[3];
-    int nbtexts = 0;
-    KoDocumentInfo * info = m_doc->documentInfo();
-    KoDocumentInfoAbout * aboutPage = static_cast<KoDocumentInfoAbout *>(info->page( "about" ));
-    TQString title = aboutPage->title();
-    if(!title.isEmpty())
-    {
-        fillText(texts+nbtexts, "title", title);
-        nbtexts++;
-    }
-    TQString abstract = aboutPage->abstract();
-    if(!abstract.isEmpty())
-    {
-        fillText(texts+nbtexts, "abstract", abstract);
-        nbtexts++;
-    }
-    KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" ));
-    TQString author = authorPage->fullName();
-    if(!author.isEmpty())
-    {
-        fillText(texts+nbtexts, "author", author);
-        nbtexts++;
-    }
-    
-    png_set_text(png_ptr, info_ptr, texts, nbtexts);
-    
-    // Save the information to the file
-    png_write_info(png_ptr, info_ptr);
-    png_write_flush(png_ptr);
-
-    // swap byteorder on little endian machines.
-    #ifndef WORDS_BIGENDIAN
-    if (color_nb_bits > 8 )
-        png_set_swap(png_ptr);
-    #endif
-
-    // Write the PNG
-//     png_write_png(png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, NULL);
-    
-    // Fill the data structure
-    png_byte** row_pointers= new png_byte*[height];
-    
-    for (int y = 0; y < height; y++) {
-        KisHLineIterator it = layer->paintDevice()->createHLineIterator(0, y, width, false);
-        row_pointers[y] = new png_byte[width*layer->paintDevice()->pixelSize()];
-        switch(color_type)
-        {
-            case PNG_COLOR_TYPE_GRAY:
-            case PNG_COLOR_TYPE_GRAY_ALPHA:
-                if(color_nb_bits == 16)
-                {
-                    TQ_UINT16 *dst = reinterpret_cast<TQ_UINT16 *>(row_pointers[y]);
-                    while (!it.isDone()) {
-                        const TQ_UINT16 *d = reinterpret_cast<const TQ_UINT16 *>(it.rawData());
-                        *(dst++) = d[0];
-                        if(alpha) *(dst++) = d[1];
-                        ++it;
-                    }
-                } else {
-                    TQ_UINT8 *dst = row_pointers[y];
-                    while (!it.isDone()) {
-                        const TQ_UINT8 *d = it.rawData();
-                        *(dst++) = d[0];
-                        if(alpha) *(dst++) = d[1];
-                        ++it;
-                    }
-                }
-                break;
-            case PNG_COLOR_TYPE_RGB:
-            case PNG_COLOR_TYPE_RGB_ALPHA:
-                if(color_nb_bits == 16)
-                {
-                    TQ_UINT16 *dst = reinterpret_cast<TQ_UINT16 *>(row_pointers[y]);
-                    while (!it.isDone()) {
-                        const TQ_UINT16 *d = reinterpret_cast<const TQ_UINT16 *>(it.rawData());
-                        *(dst++) = d[2];
-                        *(dst++) = d[1];
-                        *(dst++) = d[0];
-                        if(alpha) *(dst++) = d[3];
-                        ++it;
-                    }
-                } else {
-                    TQ_UINT8 *dst = row_pointers[y];
-                    while (!it.isDone()) {
-                        const TQ_UINT8 *d = it.rawData();
-                        *(dst++) = d[2];
-                        *(dst++) = d[1];
-                        *(dst++) = d[0];
-                        if(alpha) *(dst++) = d[3];
-                        ++it;
-                    }
-                }
-                break;
-            case PNG_COLOR_TYPE_PALETTE:
-            {
-                TQ_UINT8 *dst = row_pointers[y];
-                KisPNGStream writestream(dst, color_nb_bits);
-                while (!it.isDone()) {
-                    const TQ_UINT8 *d = it.rawData();
-                    int i;
-                    for(i = 0; i < num_palette; i++)
-                    {
-                        if(palette[i].red == d[2] &&
-                           palette[i].green == d[1] &&
-                           palette[i].blue == d[0] )
-                        {
-                            break;
-                        }
-                    }
-                    writestream.setNextValue(i);
-                    ++it;
-                }
-            }
-            break;
-            default:
-                kdDebug(41008) << "Unsupported color type for writting : " << color_type << endl;
-                KIO::del(uri);
-                return KisImageBuilder_RESULT_UNSUPPORTED;
-        }
-    }
-    
-    png_write_image(png_ptr, row_pointers);
-
-
-    // Writting is over
-    png_write_end(png_ptr, info_ptr);
-    
-    // Free memory
-    png_destroy_write_struct(&png_ptr, &info_ptr);
-    for (int y = 0; y < height; y++) {
-        delete[] row_pointers[y];
-    }
-    delete[] row_pointers;
-
-    if( color_type == PNG_COLOR_TYPE_PALETTE)
-    {
-        delete palette;
-    }
-
-    fclose(fp);
-    
-    return KisImageBuilder_RESULT_OK;
-}
-
-
-void KisPNGConverter::cancel()
-{
-    m_stop = true;
-}
-
-void KisPNGConverter::progress(png_structp png_ptr, png_uint_32 row_number, int pass)
-{
-    if(png_ptr == NULL || row_number > PNG_MAX_UINT || pass > 7) return;
-//     setProgress(row_number);
-}
-
-
-#include "kis_png_converter.moc"
-
diff --git a/filters/krita/png/kis_png_converter.h b/filters/krita/png/kis_png_converter.h
deleted file mode 100644
index a4f1140bf..000000000
--- a/filters/krita/png/kis_png_converter.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef _KIS_PNG_CONVERTER_H_
-#define _KIS_PNG_CONVERTER_H_
-
-#include <png.h>
-
-#include <tqvaluevector.h>
-
-#include <kio/job.h>
-
-#include <kis_progress_subject.h>
-
-#include "kis_types.h"
-#include "kis_global.h"
-#include "kis_annotation.h"
-class KisDoc;
-class KisUndoAdapter;
-
-/**
- * Image import/export plugins can use these results to report about success or failure.
- */
-enum KisImageBuilder_Result {
-        KisImageBuilder_RESULT_FAILURE = -400,
-        KisImageBuilder_RESULT_NOT_EXIST = -300,
-        KisImageBuilder_RESULT_NOT_LOCAL = -200,
-        KisImageBuilder_RESULT_BAD_FETCH = -100,
-        KisImageBuilder_RESULT_INVALID_ARG = -50,
-        KisImageBuilder_RESULT_OK = 0,
-        KisImageBuilder_RESULT_PROGRESS = 1,
-        KisImageBuilder_RESULT_EMPTY = 100,
-        KisImageBuilder_RESULT_BUSY = 150,
-        KisImageBuilder_RESULT_NO_URI = 200,
-        KisImageBuilder_RESULT_UNSUPPORTED = 300,
-        KisImageBuilder_RESULT_INTR = 400,
-        KisImageBuilder_RESULT_PATH = 500,
-        KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE = 600
-};
-
-class KisPNGConverter : public KisProgressSubject {
-        Q_OBJECT
-  TQ_OBJECT
-    public:
-        KisPNGConverter(KisDoc *doc, KisUndoAdapter *adapter);
-        virtual ~KisPNGConverter();
-    public:
-        KisImageBuilder_Result buildImage(const KURL& uri);
-        KisImageBuilder_Result buildFile(const KURL& uri, KisPaintLayerSP layer, vKisAnnotationSP_it annotationsStart, vKisAnnotationSP_it annotationsEnd, int compression, bool interlace, bool alpha);
-        /** Retrieve the constructed image
-        */
-        KisImageSP image();
-    public slots:
-        virtual void cancel();
-    private:
-        KisImageBuilder_Result decode(const KURL& uri);
-        void progress(png_structp png_ptr, png_uint_32 row_number, int pass);
-    private:
-        png_uint_32 m_max_row;
-        KisImageSP m_img;
-        KisDoc *m_doc;
-        KisUndoAdapter *m_adapter;
-        bool m_stop;
-};
-
-#endif
diff --git a/filters/krita/png/kis_png_export.cc b/filters/krita/png/kis_png_export.cc
deleted file mode 100644
index 46524b460..000000000
--- a/filters/krita/png/kis_png_export.cc
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- *  Copyright (c) 2005-2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_png_export.h"
-
-#include <tqcheckbox.h>
-#include <tqslider.h>
-
-#include <kapplication.h>
-#include <kdialogbase.h>
-#include <kgenericfactory.h>
-
-#include <KoFilterChain.h>
-
-#include <kis_colorspace.h>
-#include <kis_doc.h>
-#include <kis_image.h>
-#include <kis_iterators_pixel.h>
-#include <kis_paint_layer.h>
-#include <kis_progress_display_interface.h>
-
-#include "kis_png_converter.h"
-#include "kis_wdg_options_png.h"
-
-typedef KGenericFactory<KisPNGExport, KoFilter> KisPNGExportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkritapngexport, KisPNGExportFactory("kofficefilters"))
-
-KisPNGExport::KisPNGExport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-KisPNGExport::~KisPNGExport()
-{
-}
-
-KoFilter::ConversiontqStatus KisPNGExport::convert(const TQCString& from, const TQCString& to)
-{
-    kdDebug(41008) << "Png export! From: " << from << ", To: " << to << "\n";
-    
-    KisDoc *output = dynamic_cast<KisDoc*>(m_chain->inputDocument());
-    TQString filename = m_chain->outputFile();
-    
-    if (!output)
-        return KoFilter::CreationError;
-    
-    
-    if (filename.isEmpty()) return KoFilter::FileNotFound;
-
-    if (from != "application/x-krita")
-        return KoFilter::NotImplemented;
-
-    
-    KDialogBase* kdb = new KDialogBase(0, "", false, i18n("PNG Export Options"), KDialogBase::Ok | KDialogBase::Cancel);
-    
-    KisImageSP img = output->currentImage();
-    KisPaintDeviceSP pd = new KisPaintDevice(*img->projection());
-    KisPaintLayerSP l = new KisPaintLayer(img, "projection", OPACITY_OPAQUE, pd);
- 
-    KisRectIteratorPixel it = l->paintDevice()->createRectIterator(0,0, img->width(), img->height(), false);
-    KisColorSpace* cs = l->paintDevice()->colorSpace();
-    bool isThereAlpha = false;
-    while( !it.isDone() )
-    {
-        if(cs->getAlpha( it.rawData() ) != 255)
-        {
-            isThereAlpha = true;
-            break;
-        }
-        ++it;
-    }
-    
-    KisWdgOptionsPNG* wdg = new KisWdgOptionsPNG(kdb);
-    wdg->alpha->setChecked(isThereAlpha);
-    wdg->alpha->setEnabled(isThereAlpha);
-    kdb->setMainWidget(wdg);
-    kapp->restoreOverrideCursor();
-    if(kdb->exec() == TQDialog::Rejected)
-    {
-        return KoFilter::OK; // FIXME Cancel doesn't exist :(
-    }
-
-    bool alpha = wdg->alpha->isChecked();
-    bool interlace = wdg->interlacing->isChecked();
-    int compression = wdg->compressionLevel->value();
-    
-    delete kdb;
-
-
-    KURL url;
-    url.setPath(filename);
-
-    KisPNGConverter kpc(output, output->undoAdapter());
-
-    vKisAnnotationSP_it beginIt = img->beginAnnotations();
-    vKisAnnotationSP_it endIt = img->endAnnotations();
-    KisImageBuilder_Result res;
-
-    
-    if ( (res = kpc.buildFile(url, l, beginIt, endIt, compression, interlace, alpha)) == KisImageBuilder_RESULT_OK) {
-        kdDebug(41008) << "success !" << endl;
-        return KoFilter::OK;
-    }
-    kdDebug(41008) << " Result = " << res << endl;
-    return KoFilter::InternalError;
-}
-
-#include <kis_png_export.moc>
-
diff --git a/filters/krita/png/kis_png_export.h b/filters/krita/png/kis_png_export.h
deleted file mode 100644
index d962523d6..000000000
--- a/filters/krita/png/kis_png_export.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef _KIS_PNG_EXPORT_H_
-#define _KIS_PNG_EXPORT_H_
-
-#include <KoFilter.h>
-
-class KisPNGExport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-    public:
-        KisPNGExport(KoFilter *tqparent, const char *name, const TQStringList&);
-        virtual ~KisPNGExport();
-    public:
-        virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif
diff --git a/filters/krita/png/kis_png_import.cc b/filters/krita/png/kis_png_import.cc
deleted file mode 100644
index de0b76764..000000000
--- a/filters/krita/png/kis_png_import.cc
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_png_import.h"
-
-#include <kgenericfactory.h>
-
-#include <KoFilterChain.h>
-
-#include <kis_doc.h>
-#include <kis_image.h>
-#include <kis_progress_display_interface.h>
-#include <kis_view.h>
-
-#include "kis_png_converter.h"
-
-typedef KGenericFactory<KisPNGImport, KoFilter> PNGImportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkritapngimport, PNGImportFactory("kofficefilters"))
-
-KisPNGImport::KisPNGImport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-KisPNGImport::~KisPNGImport()
-{
-}
-
-KoFilter::ConversiontqStatus KisPNGImport::convert(const TQCString&, const TQCString& to)
-{
-    kdDebug(41008) << "Importing using PNGImport!\n";
-
-    if (to != "application/x-krita")
-        return KoFilter::BadMimeType;
-
-    KisDoc * doc = dynamic_cast<KisDoc*>(m_chain -> outputDocument());
-    KisView * view = static_cast<KisView*>(doc -> views().getFirst());
-    
-    TQString filename = m_chain -> inputFile();
-    
-    if (!doc)
-        return KoFilter::CreationError;
-
-    doc -> prepareForImport();
-        
-
-    if (!filename.isEmpty()) {
-    
-        KURL url;
-        url.setPath(filename);
-
-        if (url.isEmpty())
-            return KoFilter::FileNotFound;
-            
-        KisPNGConverter ib(doc, doc -> undoAdapter());
-
-        if (view != 0)
-            view -> canvasSubject() ->  progressDisplay() -> setSubject(&ib, false, true);
-
-        switch (ib.buildImage(url)) {
-            case KisImageBuilder_RESULT_UNSUPPORTED:
-                return KoFilter::NotImplemented;
-                break;
-            case KisImageBuilder_RESULT_INVALID_ARG:
-                return KoFilter::BadMimeType;
-                break;
-            case KisImageBuilder_RESULT_NO_URI:
-            case KisImageBuilder_RESULT_NOT_LOCAL:
-                return KoFilter::FileNotFound;
-                break;
-            case KisImageBuilder_RESULT_BAD_FETCH:
-            case KisImageBuilder_RESULT_EMPTY:
-                return KoFilter::ParsingError;                
-                break;
-            case KisImageBuilder_RESULT_FAILURE:
-                return KoFilter::InternalError;
-                break;
-            case KisImageBuilder_RESULT_OK:
-                doc -> setCurrentImage( ib.image());
-                return KoFilter::OK;
-            default:
-                break;
-        }
-
-    }
-    return KoFilter::StorageCreationError;
-}
-
-#include <kis_png_import.moc>
-
diff --git a/filters/krita/png/kis_png_import.h b/filters/krita/png/kis_png_import.h
deleted file mode 100644
index d0b8502ac..000000000
--- a/filters/krita/png/kis_png_import.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef _KIS_PNG_IMPORT_H_
-#define _KIS_PNG_IMPORT_H_
-
-#include <KoFilter.h>
-
-class KisPNGImport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-    public:
-        KisPNGImport(KoFilter *tqparent, const char *name, const TQStringList&);
-        virtual ~KisPNGImport();
-    public:
-        virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif
diff --git a/filters/krita/png/kis_wdg_options_png.ui b/filters/krita/png/kis_wdg_options_png.ui
deleted file mode 100644
index 405db2fe7..000000000
--- a/filters/krita/png/kis_wdg_options_png.ui
+++ /dev/null
@@ -1,183 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>KisWdgOptionsPNG</class>
-<widget class="TQWidget">
-    <property name="name">
-        <cstring>KisWdgOptionsPNG</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>286</width>
-            <height>106</height>
-        </rect>
-    </property>
-    <property name="caption">
-        <string>Options of Your PNG</string>
-    </property>
-    <grid>
-        <property name="name">
-            <cstring>unnamed</cstring>
-        </property>
-        <property name="margin">
-            <number>0</number>
-        </property>
-        <widget class="TQLayoutWidget" row="0" column="0">
-            <property name="name">
-                <cstring>tqlayout6</cstring>
-            </property>
-            <hbox>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="TQLabel">
-                    <property name="name">
-                        <cstring>textLabel1</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Compress:</string>
-                    </property>
-                    <property name="tqalignment">
-                        <set>AlignTop</set>
-                    </property>
-                    <property name="toolTip" stdset="0">
-                        <string>Note: the compression level does not change the quality of the result</string>
-                    </property>
-                    <property name="whatsThis" stdset="0">
-                        <string>&lt;p&gt;Adjust the compression time. Better compression takes longer.
-&lt;br&gt;Note: the compression level does not change the quality of the result.&lt;/p&gt;</string>
-                    </property>
-                </widget>
-                <widget class="TQLayoutWidget">
-                    <property name="name">
-                        <cstring>tqlayout5</cstring>
-                    </property>
-                    <vbox>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <widget class="TQSlider">
-                            <property name="name">
-                                <cstring>compressionLevel</cstring>
-                            </property>
-                            <property name="minValue">
-                                <number>1</number>
-                            </property>
-                            <property name="maxValue">
-                                <number>9</number>
-                            </property>
-                            <property name="pageStep">
-                                <number>1</number>
-                            </property>
-                            <property name="value">
-                                <number>9</number>
-                            </property>
-                            <property name="orientation">
-                                <enum>Horizontal</enum>
-                            </property>
-                            <property name="tickmarks">
-                                <enum>Below</enum>
-                            </property>
-                            <property name="toolTip" stdset="0">
-                                <string>Note: the compression level doesn't change the quality of the result</string>
-                            </property>
-                            <property name="whatsThis" stdset="0">
-                                <string>&lt;p&gt;Adjust the compression time. Better compression takes longer.
-&lt;br&gt;Note: the compression level doesn't change the quality of the result.&lt;/p&gt;</string>
-                            </property>
-                        </widget>
-                        <widget class="TQLayoutWidget">
-                            <property name="name">
-                                <cstring>tqlayout4</cstring>
-                            </property>
-                            <hbox>
-                                <property name="name">
-                                    <cstring>unnamed</cstring>
-                                </property>
-                                <widget class="TQLabel">
-                                    <property name="name">
-                                        <cstring>textLabel3</cstring>
-                                    </property>
-                                    <property name="text">
-                                        <string>Fast</string>
-                                    </property>
-                                    <property name="whatsThis" stdset="0">
-                                        <string>&lt;p&gt;Adjust the compression time. Better compression takes longer.
-&lt;br&gt;Note: the compression level doesn't change the quality of the result.&lt;/p&gt;</string>
-                                    </property>
-                                </widget>
-                                <widget class="TQLabel">
-                                    <property name="name">
-                                        <cstring>textLabel4</cstring>
-                                    </property>
-                                    <property name="text">
-                                        <string>Small</string>
-                                    </property>
-                                    <property name="tqalignment">
-                                        <set>AlignVCenter|AlignRight</set>
-                                    </property>
-                                    <property name="whatsThis" stdset="0">
-                                        <string>&lt;p&gt;Adjust the compression time. Better compression takes longer.
-&lt;br&gt;Note: the compression level doesn't change the quality of the result.&lt;/p&gt;</string>
-                                    </property>
-                                </widget>
-                            </hbox>
-                        </widget>
-                    </vbox>
-                </widget>
-            </hbox>
-        </widget>
-        <spacer row="3" column="0">
-            <property name="name">
-                <cstring>spacer1</cstring>
-            </property>
-            <property name="orientation">
-                <enum>Vertical</enum>
-            </property>
-            <property name="sizeType">
-                <enum>Expanding</enum>
-            </property>
-            <property name="tqsizeHint">
-                <size>
-                    <width>20</width>
-                    <height>5</height>
-                </size>
-            </property>
-        </spacer>
-        <widget class="TQCheckBox" row="1" column="0">
-            <property name="name">
-                <cstring>interlacing</cstring>
-            </property>
-            <property name="text">
-                <string>Interlacing</string>
-            </property>
-            <property name="toolTip" stdset="0">
-                <string>Use interlacing when publishing on the Internet</string>
-            </property>
-            <property name="whatsThis" stdset="0">
-                <string>&lt;p&gt;Interlacing is useful if you intend to publish your image on the Internet.&lt;br&gt;
-Enabling interlacing will cause the image to be displayed by the browser even while downloading.&lt;/p&gt;</string>
-            </property>
-        </widget>
-        <widget class="TQCheckBox" row="2" column="0">
-            <property name="name">
-                <cstring>alpha</cstring>
-            </property>
-            <property name="text">
-                <string>Store alpha channel (transparency)</string>
-            </property>
-            <property name="checked">
-                <bool>true</bool>
-            </property>
-            <property name="toolTip" stdset="0">
-                <string>Disable to get smaller files if your image has no transparency</string>
-            </property>
-            <property name="whatsThis" stdset="0">
-                <string>&lt;p&gt;The Portable Network Graphics (PNG) file format allows transparency in your image to be stored by saving an alpha channel.
-You can uncheck the box if you are not using transparency and you want to make the resulting file smaller .&lt;br&gt;Always saving the alpha channel is recommended.&lt;/p&gt;</string>
-            </property>
-        </widget>
-    </grid>
-</widget>
-<tqlayoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/filters/krita/png/krita_png.desktop b/filters/krita/png/krita_png.desktop
deleted file mode 100644
index 367dfcc01..000000000
--- a/filters/krita/png/krita_png.desktop
+++ /dev/null
@@ -1,57 +0,0 @@
-[Desktop Entry]
-Name=Krita
-Name[hi]=के-रिता
-Name[km]= Krita
-Name[lo]=ກຣິຕາ
-Name[ne]=क्रिता
-Exec=krita %u
-GenericName=Painting and Image Editing Application
-GenericName[bg]=Редактор на графични изображения
-GenericName[ca]=Programa de dibuix i manipulació d'imatges
-GenericName[cs]=Malování a úpravy obrázků
-GenericName[cy]=Cymhwysiad Peintio Golygu Delweddau
-GenericName[da]=Male- og billedredigeringsprogram
-GenericName[de]=Mal- und Bildbearbeitungsprogramm
-GenericName[el]=Εφαρμογή επεξεργασίας εικόνων
-GenericName[eo]=Aplikaĵo por Pentrado kaj Bildredaktado
-GenericName[es]=Aplicación de pintura y de edición de imágenes
-GenericName[et]=Joonistamise ja pilditöötluse rakendus
-GenericName[eu]=Irudien marrazketa eta ediziorako aplikazioa
-GenericName[fa]=کاربرد ویرایش تصویر و نقاشی
-GenericName[fi]=Maalaus- ja kuvankäsitelyohjelma
-GenericName[fr]=Application de dessin et de manipulation d'images
-GenericName[fy]=Ofbyldingsmanipulaasje
-GenericName[gl]=Aplicación de Pintura e Manipulación de Imaxes
-GenericName[he]=יישום לציור ועריכת תמונות
-GenericName[hr]=Aplikacija za obradu slika i fotografija
-GenericName[hu]=Képszerkesztő
-GenericName[is]=Málun og myndritill
-GenericName[it]=Applicazione di disegno e di modifica delle immagini
-GenericName[ja]=描画と画像編集のためのアプリケーション
-GenericName[km]=កម្មវិធី​គូរ​គំនូរ និង​កែសម្រួល​រូបភាព
-GenericName[lv]=Zīmēšanas un attēlu apstrādes programma
-GenericName[nb]=Program for tegning og bilderedigering
-GenericName[nds]=Programm för't Malen un Bildbewerken
-GenericName[ne]=पेन्टीङ्ग र छवि सम्पादन अनुप्रयोग
-GenericName[nl]=Afbeeldingsmanipulatie
-GenericName[pl]=Program do edycji zdjęć oraz rysunków
-GenericName[pt]=Aplicação de Pintura e Edição de Imagens
-GenericName[pt_BR]=Aplicação de Pintura e Edição de Imagens
-GenericName[ru]=Растровые изображения
-GenericName[se]=Málen- ja govvagieđahallanprográmma
-GenericName[sk]=Program pre tvorbu a úpravu obrázkov
-GenericName[sl]=Program za risanje in obdelavo slik
-GenericName[sr]=Програм за цртање и уређивање слика
-GenericName[sr@Latn]=Program za crtanje i uređivanje slika
-GenericName[sv]=Målnings- och bildredigeringsprogram
-GenericName[uk]=Програма для малювання і редагування зображень
-GenericName[uz]=Rasmlar bilan ishlaydigan dastur
-GenericName[uz@cyrillic]=Расмлар билан ишлайдиган дастур
-GenericName[zh_CN]=绘图和图像编辑应用程序
-GenericName[zh_TW]=繪圖與影像處理程式
-MimeType=image/png
-Type=Application
-Icon=krita
-Categories=
-X-KDE-StartupNotify=true
-X-DCOP-ServiceType=Multi
diff --git a/filters/krita/png/krita_png_export.desktop b/filters/krita/png/krita_png_export.desktop
deleted file mode 100644
index 7109175ce..000000000
--- a/filters/krita/png/krita_png_export.desktop
+++ /dev/null
@@ -1,51 +0,0 @@
-[Desktop Entry]
-Name=Krita PNG Export Filter
-Name[bg]=Филтър за експортиране от Krita в PNG
-Name[br]=Sil ezporzh PNG evit Krita
-Name[ca]=Filtre d'exportació PNG per a Krita
-Name[da]=Krita PNG-eksportfilter
-Name[de]=Krita PNG-Exportfilter
-Name[el]=Φίλτρο εξαγωγής PNG του Krita
-Name[eo]=Krita PNG-eksportfiltrilo
-Name[es]=Filtro de exportación a PNG de Krita
-Name[et]=Krita PNG ekspordifilter
-Name[fa]=پالایۀ صادرات Krita PNG
-Name[fi]=Krita PNG -viestisuodin
-Name[fr]=Filtre d'exportation PNG de Krita
-Name[fy]=Krita PNG Eksportfilter
-Name[ga]=Scagaire Easpórtála PNG Krita
-Name[gl]=Filtro de Exportación de PNG para Krita
-Name[he]=Krita PNG מסנן יצוא
-Name[hr]=Krita PNG filtar izvoza
-Name[hu]=Krita PNG exportszűrő
-Name[is]=Krita PNG útflutningssía
-Name[it]=Filtro di esportazione PNG per Krita
-Name[ja]=Krita PNG エクスポートフィルタ
-Name[km]=តម្រង​នាំចេញ PNG សម្រាប់ Krita
-Name[lt]=Krita PNG eksportavimo filtras
-Name[lv]=Krita PNG eksporta filtrs
-Name[nb]=PNG-eksportfilter for Krita
-Name[nds]=PNG-Exportfilter för Krita
-Name[ne]=क्रिता पीएनजी निर्यात फिल्टर
-Name[nl]=Krita PNG Exportfilter
-Name[pl]=Filtr eksportu do formatu PNG dla Krita
-Name[pt]=Filtro de Exportação de PNG para o Krita
-Name[pt_BR]=Filtro de Exportação de PNG para o Krita
-Name[ru]=Фильтр экспорта рисунков Krita в PNG
-Name[se]=Krita PNG-olggosfievrridansilli
-Name[sk]=Exportný filter Krita PNG
-Name[sl]=Izvozni filter PNG za Krito
-Name[sr]=Krita-ин филтер за извоз у PNG
-Name[sr@Latn]=Krita-in filter za izvoz u PNG
-Name[sv]=Krita PNG-exportfilter
-Name[uk]=Фільтр експорту PNG для Krita
-Name[uz]=Krita PNG eksport filteri
-Name[uz@cyrillic]=Krita PNG экспорт филтери
-Name[zh_CN]=Krita PNG 导出过滤器
-Name[zh_TW]=Krita PNG 匯出過濾程式
-X-KDE-Export=image/png
-ServiceTypes=KOfficeFilter
-Type=Service
-X-KDE-Import=application/x-krita
-X-KDE-Weight=1
-X-KDE-Library=libkritapngexport
diff --git a/filters/krita/png/krita_png_import.desktop b/filters/krita/png/krita_png_import.desktop
deleted file mode 100644
index 99944a77b..000000000
--- a/filters/krita/png/krita_png_import.desktop
+++ /dev/null
@@ -1,51 +0,0 @@
-[Desktop Entry]
-Type=Service
-Name=Krita PNG Import Filter
-Name[bg]=Филтър за импортиране от PNG в Krita
-Name[br]=Sil enporzh PNG evit Krita
-Name[ca]=Filtre d'importació PNG per a Krita
-Name[da]=Krita PNG-importfilter
-Name[de]=Krita PNG-Importfilter
-Name[el]=Φίλτρο εισαγωγής PNG του Krita
-Name[eo]=Krita PNG-importfiltrilo
-Name[es]=Filtro de importación a PNG de Krita
-Name[et]=Krita PNG impordifilter
-Name[fa]=پالایۀ واردات Krita PNG
-Name[fi]=Krita PNG -tuontisuodin
-Name[fr]=Filtre d'importation PNG de Krita
-Name[fy]=Krita PNG Ymportfilter
-Name[ga]=Scagaire Iompórtála PNG Krita
-Name[gl]=Filtro de Importación de PNG para Krita
-Name[he]=Krita PNG מסנן יבוא
-Name[hr]=Krita PNG filtar uvoza
-Name[hu]=Krita PNG importszűrő
-Name[is]=Krita PNG innflutningssía
-Name[it]=Filtro di importazione PNG per Krita
-Name[ja]=Krita PNG インポートフィルタ
-Name[km]=តម្រង​នាំចូល PNG សម្រាប់ Krita
-Name[lt]=Krita PNG importavimo filtras
-Name[lv]=Krita PNG importa filtrs
-Name[nb]=PNG-importfilter for Krita
-Name[nds]=PNG-Importfilter för Krita
-Name[ne]=क्रिता पीएनजी आयात फिल्टर
-Name[nl]=Krita PNG Importfilter
-Name[pl]=Filtr importu z formatu PNG dla Krita
-Name[pt]=Filtro de Importação de PNG para o Krita
-Name[pt_BR]=Filtro de Importação de PNG para o Krita
-Name[ru]=Фильтр импорта рисунков PNG в Krita
-Name[se]=Krita PNG-olggosfievrridansilli
-Name[sk]=PNG filter pre import do Krita
-Name[sl]=Uvozni filter PNG za Krito
-Name[sr]=Krita-ин филтер за увоз из PNG-а
-Name[sr@Latn]=Krita-in filter za uvoz iz PNG-a
-Name[sv]=Krita PNG-importfilter
-Name[uk]=Фільтр імпорту PNG для Krita
-Name[uz]=Krita PNG import filteri
-Name[uz@cyrillic]=Krita PNG импорт филтери
-Name[zh_CN]=Krita PNG 导入过滤器
-Name[zh_TW]=Krita PNG 匯入過濾程式
-X-KDE-Export=application/x-krita
-X-KDE-Import=image/png
-X-KDE-Weight=1
-X-KDE-Library=libkritapngimport
-ServiceTypes=KOfficeFilter
diff --git a/filters/krita/raw/Makefile.am b/filters/krita/raw/Makefile.am
deleted file mode 100644
index 5b53b3e72..000000000
--- a/filters/krita/raw/Makefile.am
+++ /dev/null
@@ -1,35 +0,0 @@
-AM_CPPFLAGS= \
-	-I$(srcdir) \
-	-I$(top_srcdir)/krita \
-	-I$(top_srcdir)/krita/core \
-	-I$(top_srcdir)/krita/sdk \
-	-I$(top_srcdir)/krita/kritacolor \
-	-I$(top_srcdir)/krita/ui \
-	-I$(top_srcdir)/filters/krita/magick \
-	$(KOFFICE_INCLUDES) \
-	$(all_includes) 
-
-kde_module_LTLIBRARIES = libkrita_raw_import.la 
-
-libkrita_raw_import_la_LDFLAGS = $(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) -module -avoid-version -no-undefined -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkrita_raw_import_la_LIBADD = \
-	$(KOFFICE_LIBS) \
-	$(raw_LIBS) \
-	$(top_builddir)/krita/libkritacommon.la 
-
-
-service_DATA = krita_raw_import.desktop
-servicedir = $(kde_servicesdir)
-
-kdelnk_DATA = krita_raw.desktop
-kdelnkdir = $(kde_appsdir)/.hidden
-
-libkrita_raw_import_la_SOURCES = kis_raw_import.cpp wdgrawimport.ui
-
-METASOURCES = AUTO
-
-KDE_CXXFLAGS = $(USE_EXCEPTIONS)
-
-
diff --git a/filters/krita/raw/dcraw.1 b/filters/krita/raw/dcraw.1
deleted file mode 100644
index 10a690b86..000000000
--- a/filters/krita/raw/dcraw.1
+++ /dev/null
@@ -1,182 +0,0 @@
-.\"
-.\" Man page for dcraw (Raw Photo Decoder)
-.\"
-.\" Copyright (c) 2005 by David Coffin
-.\"
-.\" You may distribute without restriction.
-.\"
-.\" David Coffin
-.\" dcoffin a cybercom o net
-.\" http://www.cybercom.net/~dcoffin
-.\"
-.TH dcraw 1 "September 29, 2005"
-.LO 1
-.SH NAME
-dcraw - convert raw digital photos to PPM format
-.SH SYNOPSIS
-.B dcraw 
-[\fIOPTION\fR]... [\fIFILE\fR]...
-.SH DESCRIPTION
-.B dcraw
-converts raw digital photos to
-.BR ppm (5)
-format.
-.SH OPTIONS
-.TP
-.B -v
-Print verbose messages.  The default is to print only warnings
-and errors.
-.TP
-.B -z
-Change the access and modification times of a JPEG or raw file to
-when the photo was taken, assuming that the camera clock was set
-to Universal Time.
-.TP
-.B -i
-Identify files but don't decode them.
-Exit status is 0 if
-.B dcraw
-can decode the last file, 1 if it can't.
-.TP
-.B ""
-.B dcraw
-cannot decode JPEG files!!
-.TP
-.B -c
-Write binary image data to standard output.
-By default,
-.B dcraw
-creates files with a ".ppm" extension.
-.TP
-.B -d
-Show the raw data as a grayscale image with no interpolation.
-Good for photographing black-and-white documents.
-.TP
-.B -q [0-3]
-Set the interpolation quality (default is 3):
-
-.B \t0
-\ \ Bilinear (very fast, low quality)
-.br
-.B \t1
-\ \ Reserved
-.br
-.B \t2
-\ \ Variable Number of Gradients (VNG)
-.br
-.B \t3
-\ \ Adaptive Homogeneity-Directed (AHD)
-.TP
-.B -h
-Output a half-size image.  Twice as fast as
-.BR -q\ 0 .
-.TP
-.B -f
-Interpolate RGB as four colors.  This blurs the image a little,
-but it eliminates false 2x2 mesh patterns.
-.TP
-.B -B sigma_domain sigma_range
-Use a bilateral filter to smooth noise while preserving edges.
-.B sigma_domain
-is in units of pixels, while
-.B sigma_range
-is in units of CIELab colorspace.
-Try
-.B -B\ 2\ 4
-to start.
-.TP
-.B -a
-Automatic color balance.  The default is to use a fixed
-color balance based on a white card photographed in sunlight.
-.TP
-.B -w
-Use the color balance specified by the camera.
-If this can't be found,
-.B dcraw
-prints a warning and reverts to the default.
-.TP
-.B -r red_mul -l blue_mul
-Further adjust the color balance by multiplying the red and
-blue output channels by these values.  Both default to 1.0.
-.TP
-.B -b brightness
-Change the output brightness.  Default is 1.0.
-.TP
-.B -k black
-Set the black point.  Default depends on the camera.
-.TP
-.B -n
-By default,
-.B dcraw
-clips all colors to prevent pink hues in the highlights.
-Combine this option with
-.B -b 0.25
-to leave the image data completely unclipped.
-.TP
-.B -m
-Write raw camera colors to the output file.  By default,
-.B dcraw
-converts to sRGB colorspace.
-.TP
-.B -j
-For Fuji\ Super\ CCD cameras, show the image tilted 45 degrees
-so that each output pixel corresponds to one raw pixel.
-.TP
-.B -s
-For Fuji\ Super\ CCD\ SR cameras, use the secondary sensors, in
-effect underexposing the image by four stops to reveal detail
-in the highlights.
-.TP
-.B ""
-For all other cameras,
-.B -j
-and
-.B -s
-are silently ignored.
-.TP
-.B -t [0-7]
-Flip the output image.  The most common flips are 5
-(90 degrees CCW) and 6 (90 degrees clockwise).  By default,
-dcraw tries to use the flip specified by the camera.
-.RB \^" -t\ 0 \^"
-forces
-.B dcraw
-not to flip images.
-.TP
-.B -2
-Write eight bits per color value with a 99th-percentile white
-point and the standard 0.45 gamma curve.  Double the height if
-necessary to correct the aspect ratio.  This is the default.
-.TP
-.B -4
-Write sixteen bits per color value.  Output is linear with
-input -- no white point, no gamma, same aspect ratio.
-.TP
-.B -3
-Same image as
-.BR -4 ,
-written in Adobe PhotoShop format.  File extension is ".psd".
-.SH "SEE ALSO"
-.BR ppm (5),
-.BR ppm2tiff (1),
-.BR pnmtotiff (1),
-.BR pnmtopng (1),
-.BR gphoto2 (1),
-.BR djpeg (1)
-.SH BUGS
-The
-.B -w
-option does not work with many cameras.
-.P
-No attempt is made to save camera settings or thumbnail images.
-.P
-The author stubbornly refuses to add more output formats.
-.P
-Don't expect
-.B dcraw
-to produce the same images as software provided by the camera
-vendor.  Sometimes
-.B dcraw
-gives better results!
-.SH AUTHOR
-Written by David Coffin, dcoffin a cybercom o net
diff --git a/filters/krita/raw/dcraw.c b/filters/krita/raw/dcraw.c
deleted file mode 100644
index e92c1d3c8..000000000
--- a/filters/krita/raw/dcraw.c
+++ /dev/null
@@ -1,5999 +0,0 @@
-/*
-   dcraw.c -- Dave Coffin's raw photo decoder
-   Copyright 1997-2005 by Dave Coffin, dcoffin a cybercom o net
-
-   This is a command-line ANSI C program to convert raw photos from
-   any digital camera on any computer running any operating system.
-
-   Attention!  Some parts of this program are restricted under the
-   terms of the GNU General Public License.  Such code is enclosed
-   in "BEGIN GPL BLOCK" and "END GPL BLOCK" declarations.
-   Any code not declared GPL is free for all uses.
-
-   Starting in Revision 1.237, the code to support Foveon cameras
-   is under GPL.
-
-   To lawfully redistribute dcraw.c, you must either (a) include
-   full source code for all executable files containing restricted
-   functions, (b) remove these functions, re-implement them, or
-   copy them from an earlier, non-GPL Revision of dcraw.c, or (c)
-   purchase a license from the author.
-
-   $Revision: 1.296 $
-   $Date: 2005/11/04 07:11:14 $
- */
-
-#define _GNU_SOURCE
-#define _USE_MATH_DEFINES
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <float.h>
-#include <limits.h>
-#include <math.h>
-#include <setjmp.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-/*
-   By defining NO_JPEG, you lose only the ability to
-   decode compressed .KDC files from the Kodak DC120.
- */
-#ifndef NO_JPEG
-#include <jpeglib.h>
-#endif
-
-#ifdef __CYGWIN__
-#include <io.h>
-#endif
-#ifdef WIN32
-#include <sys/utime.h>
-#include <winsock2.h>
-#pragma comment(lib, "ws2_32.lib")
-#define strcasecmp stricmp
-typedef __int64 INT64;
-typedef unsigned __int64 UINT64;
-#else
-#include <unistd.h>
-#include <utime.h>
-#include <netinet/in.h>
-typedef long long INT64;
-typedef unsigned long long UINT64;
-#endif
-
-#ifdef LJPEG_DECODE
-#error Please compile dcraw.c by itself.
-#error Do not link it with ljpeg_decode.
-#endif
-
-#ifndef LONG_BIT
-#define LONG_BIT (8 * sizeof (long))
-#endif
-
-#define ushort UshORt
-typedef unsigned char uchar;
-typedef unsigned short ushort;
-
-/*
-   All global variables are defined here, and all functions that
-   access them are prefixed with "CLASS".  Note that a thread-safe
-   C++ class cannot have non-const static local variables.
- */
-FILE *ifp;
-short order;
-char *ifname, make[64], model[70], model2[64], *meta_data;
-float flash_used, canon_5814;
-time_t timestamp;
-unsigned shot_order, kodak_cbpp;
-int data_offset, meta_offset, meta_length, nikon_curve_offset;
-int tiff_bps, tiff_data_compression, kodak_data_compression;
-int raw_height, raw_width, top_margin, left_margin;
-int height, width, fuji_width, colors, tiff_samples;
-int black, maximum, clip_max, clip_color=1;
-int iheight, iwidth, shrink;
-int dng_version, is_foveon, raw_color, use_gamma;
-int flip, xmag, ymag;
-int zero_after_ff;
-unsigned filters;
-ushort (*image)[4], white[8][8], curve[0x1000];
-void (*load_raw)();
-float bright=1, red_scale=1, blue_scale=1, sigma_d=0, sigma_r=0;
-int four_color_rgb=0, document_mode=0;
-int verbose=0, use_auto_wb=0, use_camera_wb=0, use_camera_rgb=0;
-int fuji_layout, fuji_secondary, use_secondary=0;
-float cam_mul[4], pre_mul[4], rgb_cam[3][4];	/* RGB from camera color */
-const double xyz_rgb[3][3] = {			/* XYZ from RGB */
-  { 0.412453, 0.357580, 0.180423 },
-  { 0.212671, 0.715160, 0.072169 },
-  { 0.019334, 0.119193, 0.950227 } };
-#define camera_red  cam_mul[0]
-#define camera_blue cam_mul[2]
-int histogram[3][0x2000];
-void write_ppm(FILE *);
-void (*write_fun)(FILE *) = write_ppm;
-jmp_buf failure;
-
-#define USE_LCMS
-#ifdef USE_LCMS
-#include <lcms.h>
-int profile_offset, profile_length;
-#endif
-
-struct decode {
-  struct decode *branch[2];
-  int leaf;
-} first_decode[2048], *second_decode, *free_decode;
-
-#define CLASS
-
-#define FORC3 for (c=0; c < 3; c++)
-#define FORC4 for (c=0; c < 4; c++)
-#define FORCC for (c=0; c < colors; c++)
-
-#define SQR(x) ((x)*(x))
-#define ABS(x) (((int)(x) ^ ((int)(x) >> 31)) - ((int)(x) >> 31))
-#define MIN(a,b) ((a) < (b) ? (a) : (b))
-#define MAX(a,b) ((a) > (b) ? (a) : (b))
-#define LIM(x,min,max) MAX(min,MIN(x,max))
-#define ULIM(x,y,z) ((y) < (z) ? LIM(x,y,z) : LIM(x,z,y))
-#define CLIP(x) LIM(x,0,clip_max)
-
-/*
-   In order to inline this calculation, I make the risky
-   assumption that all filter patterns can be described
-   by a repeating pattern of eight rows and two columns
-
-   Return values are either 0/1/2/3 = G/M/C/Y or 0/1/2/3 = R/G1/B/G2
- */
-#define FC(row,col) \
-	(filters >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)
-
-#define BAYER(row,col) \
-	image[((row) >> shrink)*iwidth + ((col) >> shrink)][FC(row,col)]
-
-/*
-	PowerShot 600	PowerShot A50	PowerShot Pro70	Pro90 & G1
-	0xe1e4e1e4:	0x1b4e4b1e:	0x1e4b4e1b:	0xb4b4b4b4:
-
-	  0 1 2 3 4 5	  0 1 2 3 4 5	  0 1 2 3 4 5	  0 1 2 3 4 5
-	0 G M G M G M	0 C Y C Y C Y	0 Y C Y C Y C	0 G M G M G M
-	1 C Y C Y C Y	1 M G M G M G	1 M G M G M G	1 Y C Y C Y C
-	2 M G M G M G	2 Y C Y C Y C	2 C Y C Y C Y
-	3 C Y C Y C Y	3 G M G M G M	3 G M G M G M
-			4 C Y C Y C Y	4 Y C Y C Y C
-	PowerShot A5	5 G M G M G M	5 G M G M G M
-	0x1e4e1e4e:	6 Y C Y C Y C	6 C Y C Y C Y
-			7 M G M G M G	7 M G M G M G
-	  0 1 2 3 4 5
-	0 C Y C Y C Y
-	1 G M G M G M
-	2 C Y C Y C Y
-	3 M G M G M G
-
-   All RGB cameras use one of these Bayer grids:
-
-	0x16161616:	0x61616161:	0x49494949:	0x94949494:
-
-	  0 1 2 3 4 5	  0 1 2 3 4 5	  0 1 2 3 4 5	  0 1 2 3 4 5
-	0 B G B G B G	0 G R G R G R	0 G B G B G B	0 R G R G R G
-	1 G R G R G R	1 B G B G B G	1 R G R G R G	1 G B G B G B
-	2 B G B G B G	2 G R G R G R	2 G B G B G B	2 R G R G R G
-	3 G R G R G R	3 B G B G B G	3 R G R G R G	3 G B G B G B
- */
-
-#ifndef __GLIBC__
-char *memmem (char *haystack, size_t haystacklen,
-	      char *needle, size_t needlelen)
-{
-  char *c;
-  for (c = haystack; c <= haystack + haystacklen - needlelen; c++)
-    if (!memcmp (c, needle, needlelen))
-      return c;
-  return NULL;
-}
-#endif
-
-void CLASS merror (void *ptr, char *where)
-{
-  if (ptr) return;
-  fprintf (stderr, "%s: Out of memory in %s\n", ifname, where);
-  longjmp (failure, 1);
-}
-
-ushort CLASS sget2 (uchar *s)
-{
-  if (order == 0x4949)		/* "II" means little-endian */
-    return s[0] | s[1] << 8;
-  else				/* "MM" means big-endian */
-    return s[0] << 8 | s[1];
-}
-
-ushort CLASS get2()
-{
-  uchar str[2] = { 0xff,0xff };
-  fread (str, 1, 2, ifp);
-  return sget2(str);
-}
-
-int CLASS sget4 (uchar *s)
-{
-  if (order == 0x4949)
-    return s[0] | s[1] << 8 | s[2] << 16 | s[3] << 24;
-  else
-    return s[0] << 24 | s[1] << 16 | s[2] << 8 | s[3];
-}
-#define sget4(s) sget4((uchar *)s)
-
-int CLASS get4()
-{
-  uchar str[4] = { 0xff,0xff,0xff,0xff };
-  fread (str, 1, 4, ifp);
-  return sget4(str);
-}
-
-double CLASS getrat()
-{
-  double num = get4();
-  return num / get4();
-}
-
-float CLASS int_to_float (int i)
-{
-  union { int i; float f; } u;
-  u.i = i;
-  return u.f;
-}
-
-void CLASS read_shorts (ushort *pixel, int count)
-{
-  fread (pixel, 2, count, ifp);
-  if ((order == 0x4949) == (ntohs(0x1234) == 0x1234))
-    swab (pixel, pixel, count*2);
-}
-
-void CLASS canon_600_fixed_wb (int temp)
-{
-  static const short mul[4][5] = {
-    {  667, 358,397,565,452 },
-    {  731, 390,367,499,517 },
-    { 1119, 396,348,448,537 },
-    { 1399, 485,431,508,688 } };
-  int lo, hi, i;
-  float frac=0;
-
-  for (lo=4; --lo; )
-    if (*mul[lo] <= temp) break;
-  for (hi=0; hi < 3; hi++)
-    if (*mul[hi] >= temp) break;
-  if (lo != hi)
-    frac = (float) (temp - *mul[lo]) / (*mul[hi] - *mul[lo]);
-  for (i=1; i < 5; i++)
-    pre_mul[i-1] = 1 / (frac * mul[hi][i] + (1-frac) * mul[lo][i]);
-}
-
-/* Return values:  0 = white  1 = near white  2 = not white */
-int CLASS canon_600_color (int ratio[2], int mar)
-{
-  int clipped=0, target, miss;
-
-  if (flash_used) {
-    if (ratio[1] < -104)
-      { ratio[1] = -104; clipped = 1; }
-    if (ratio[1] >   12)
-      { ratio[1] =   12; clipped = 1; }
-  } else {
-    if (ratio[1] < -264 || ratio[1] > 461) return 2;
-    if (ratio[1] < -50)
-      { ratio[1] = -50; clipped = 1; }
-    if (ratio[1] > 307)
-      { ratio[1] = 307; clipped = 1; }
-  }
-  target = flash_used || ratio[1] < 197
-	? -38 - (398 * ratio[1] >> 10)
-	: -123 + (48 * ratio[1] >> 10);
-  if (target - mar <= ratio[0] &&
-      target + 20  >= ratio[0] && !clipped) return 0;
-  miss = target - ratio[0];
-  if (abs(miss) >= mar*4) return 2;
-  if (miss < -20) miss = -20;
-  if (miss > mar) miss = mar;
-  ratio[0] = target - miss;
-  return 1;
-}
-
-void CLASS canon_600_auto_wb ()
-{
-  int mar, row, col, i, j, st, count[] = { 0,0 };
-  int test[8], total[2][8], ratio[2][2], stat[2];
-
-  memset (&total, 0, sizeof total);
-  i = canon_5814 + 0.5;
-  if      (i < 10) mar = 150;
-  else if (i > 12) mar = 20;
-  else mar = 280 - 20 * i;
-  if (flash_used) mar = 80;
-  for (row=14; row < height-14; row+=4)
-    for (col=10; col < width; col+=2) {
-      for (i=0; i < 8; i++)
-	test[(i & 4) + FC(row+(i >> 1),col+(i & 1))] =
-		    BAYER(row+(i >> 1),col+(i & 1));
-      for (i=0; i < 8; i++)
-	if (test[i] < 150 || test[i] > 1500) goto next;
-      for (i=0; i < 4; i++)
-	if (abs(test[i] - test[i+4]) > 50) goto next;
-      for (i=0; i < 2; i++) {
-	for (j=0; j < 4; j+=2)
-	  ratio[i][j >> 1] = ((test[i*4+j+1]-test[i*4+j]) << 10) / test[i*4+j];
-	stat[i] = canon_600_color (ratio[i], mar);
-      }
-      if ((st = stat[0] | stat[1]) > 1) goto next;
-      for (i=0; i < 2; i++)
-	if (stat[i])
-	  for (j=0; j < 2; j++)
-	    test[i*4+j*2+1] = test[i*4+j*2] * (0x400 + ratio[i][j]) >> 10;
-      for (i=0; i < 8; i++)
-	total[st][i] += test[i];
-      count[st]++;
-next: continue;
-    }
-  if (count[0] | count[1]) {
-    st = count[0]*200 < count[1];
-    for (i=0; i < 4; i++)
-      pre_mul[i] = 1.0 / (total[st][i] + total[st][i+4]);
-  }
-}
-
-void CLASS canon_600_coeff ()
-{
-  static const short table[6][12] = {
-    { -190,702,-1878,2390,   1861,-1349,905,-393, -432,944,2617,-2105  },
-    { -1203,1715,-1136,1648, 1388,-876,267,245,  -1641,2153,3921,-3409 },
-    { -615,1127,-1563,2075,  1437,-925,509,3,     -756,1268,2519,-2007 },
-    { -190,702,-1886,2398,   2153,-1641,763,-251, -452,964,3040,-2528  },
-    { -190,702,-1878,2390,   1861,-1349,905,-393, -432,944,2617,-2105  },
-    { -807,1319,-1785,2297,  1388,-876,769,-257,  -230,742,2067,-1555  } };
-  int t=0, i, c;
-  float mc, yc;
-
-  mc = pre_mul[1] / pre_mul[2];
-  yc = pre_mul[3] / pre_mul[2];
-  if (mc > 1 && mc <= 1.28 && yc < 0.8789) t=1;
-  if (mc > 1.28 && mc <= 2) {
-    if  (yc < 0.8789) t=3;
-    else if (yc <= 2) t=4;
-  }
-  if (flash_used) t=5;
-  for (raw_color = i=0; i < 3; i++)
-    FORCC rgb_cam[i][c] = table[t][i*4 + c] / 1024.0;
-}
-
-void CLASS canon_600_load_raw()
-{
-  uchar  data[1120], *dp;
-  ushort pixel[896], *pix;
-  int irow, row, col, val;
-  static const short mul[4][2] =
-  { { 1141,1145 }, { 1128,1109 }, { 1178,1149 }, { 1128,1109 } };
-
-  for (irow=row=0; irow < height; irow++)
-  {
-    fread (data, 1120, 1, ifp);
-    for (dp=data, pix=pixel; dp < data+1120; dp+=10, pix+=8)
-    {
-      pix[0] = (dp[0] << 2) + (dp[1] >> 6    );
-      pix[1] = (dp[2] << 2) + (dp[1] >> 4 & 3);
-      pix[2] = (dp[3] << 2) + (dp[1] >> 2 & 3);
-      pix[3] = (dp[4] << 2) + (dp[1]      & 3);
-      pix[4] = (dp[5] << 2) + (dp[9]      & 3);
-      pix[5] = (dp[6] << 2) + (dp[9] >> 2 & 3);
-      pix[6] = (dp[7] << 2) + (dp[9] >> 4 & 3);
-      pix[7] = (dp[8] << 2) + (dp[9] >> 6    );
-    }
-    for (col=0; col < width; col++)
-      BAYER(row,col) = pixel[col];
-    for (col=width; col < 896; col++)
-      black += pixel[col];
-    if ((row+=2) > height) row = 1;
-  }
-  black = black / ((896 - width) * height) - 4;
-  for (row=0; row < height; row++)
-    for (col=0; col < width; col++) {
-      val = (BAYER(row,col) - black) * mul[row & 3][col & 1] >> 9;
-      if (val < 0) val = 0;
-      BAYER(row,col) = val;
-    }
-  canon_600_fixed_wb(1311);
-  canon_600_auto_wb();
-  canon_600_coeff();
-  maximum = (0x3ff - black) * 1109 >> 9;
-  black = 0;
-}
-
-void CLASS canon_a5_load_raw()
-{
-  uchar  data[1940], *dp;
-  ushort pixel[1552], *pix;
-  int row, col;
-
-  for (row=0; row < height; row++) {
-    fread (data, raw_width * 10 / 8, 1, ifp);
-    for (dp=data, pix=pixel; pix < pixel+raw_width; dp+=10, pix+=8)
-    {
-      pix[0] = (dp[1] << 2) + (dp[0] >> 6);
-      pix[1] = (dp[0] << 4) + (dp[3] >> 4);
-      pix[2] = (dp[3] << 6) + (dp[2] >> 2);
-      pix[3] = (dp[2] << 8) + (dp[5]     );
-      pix[4] = (dp[4] << 2) + (dp[7] >> 6);
-      pix[5] = (dp[7] << 4) + (dp[6] >> 4);
-      pix[6] = (dp[6] << 6) + (dp[9] >> 2);
-      pix[7] = (dp[9] << 8) + (dp[8]     );
-    }
-    for (col=0; col < width; col++)
-      BAYER(row,col) = (pixel[col] & 0x3ff);
-    for (col=width; col < raw_width; col++)
-      black += pixel[col] & 0x3ff;
-  }
-  if (raw_width > width)
-    black /= (raw_width - width) * height;
-  maximum = 0x3ff;
-}
-
-/*
-   getbits(-1) initializes the buffer
-   getbits(n) where 0 <= n <= 25 returns an n-bit integer
- */
-unsigned CLASS getbits (int nbits)
-{
-  static unsigned bitbuf=0;
-  static int vbits=0, reset=0;
-  unsigned c;
-
-  if (nbits == -1)
-    return bitbuf = vbits = reset = 0;
-  if (nbits == 0 || reset) return 0;
-  while (vbits < nbits) {
-    c = fgetc(ifp);
-    if ((reset = zero_after_ff && c == 0xff && fgetc(ifp))) return 0;
-    bitbuf = (bitbuf << 8) + c;
-    vbits += 8;
-  }
-  vbits -= nbits;
-  return bitbuf << (32-nbits-vbits) >> (32-nbits);
-}
-
-void CLASS init_decoder ()
-{
-  memset (first_decode, 0, sizeof first_decode);
-  free_decode = first_decode;
-}
-
-/*
-   Construct a decode tree according the specification in *source.
-   The first 16 bytes specify how many codes should be 1-bit, 2-bit
-   3-bit, etc.  Bytes after that are the leaf values.
-
-   For example, if the source is
-
-    { 0,1,4,2,3,1,2,0,0,0,0,0,0,0,0,0,
-      0x04,0x03,0x05,0x06,0x02,0x07,0x01,0x08,0x09,0x00,0x0a,0x0b,0xff  },
-
-   then the code is
-
-	00		0x04
-	010		0x03
-	011		0x05
-	100		0x06
-	101		0x02
-	1100		0x07
-	1101		0x01
-	11100		0x08
-	11101		0x09
-	11110		0x00
-	111110		0x0a
-	1111110		0x0b
-	1111111		0xff
- */
-uchar * CLASS make_decoder (const uchar *source, int level)
-{
-  struct decode *cur;
-  static int leaf;
-  int i, next;
-
-  if (level==0) leaf=0;
-  cur = free_decode++;
-  if (free_decode > first_decode+2048) {
-    fprintf (stderr, "%s: decoder table overflow\n", ifname);
-    longjmp (failure, 2);
-  }
-  for (i=next=0; i <= leaf && next < 16; )
-    i += source[next++];
-  if (i > leaf) {
-    if (level < next) {
-      cur->branch[0] = free_decode;
-      make_decoder (source, level+1);
-      cur->branch[1] = free_decode;
-      make_decoder (source, level+1);
-    } else
-      cur->leaf = source[16 + leaf++];
-  }
-  return (uchar *) source + 16 + leaf;
-}
-
-void CLASS crw_init_tables (unsigned table)
-{
-  static const uchar first_tree[3][29] = {
-    { 0,1,4,2,3,1,2,0,0,0,0,0,0,0,0,0,
-      0x04,0x03,0x05,0x06,0x02,0x07,0x01,0x08,0x09,0x00,0x0a,0x0b,0xff  },
-    { 0,2,2,3,1,1,1,1,2,0,0,0,0,0,0,0,
-      0x03,0x02,0x04,0x01,0x05,0x00,0x06,0x07,0x09,0x08,0x0a,0x0b,0xff  },
-    { 0,0,6,3,1,1,2,0,0,0,0,0,0,0,0,0,
-      0x06,0x05,0x07,0x04,0x08,0x03,0x09,0x02,0x00,0x0a,0x01,0x0b,0xff  },
-  };
-  static const uchar second_tree[3][180] = {
-    { 0,2,2,2,1,4,2,1,2,5,1,1,0,0,0,139,
-      0x03,0x04,0x02,0x05,0x01,0x06,0x07,0x08,
-      0x12,0x13,0x11,0x14,0x09,0x15,0x22,0x00,0x21,0x16,0x0a,0xf0,
-      0x23,0x17,0x24,0x31,0x32,0x18,0x19,0x33,0x25,0x41,0x34,0x42,
-      0x35,0x51,0x36,0x37,0x38,0x29,0x79,0x26,0x1a,0x39,0x56,0x57,
-      0x28,0x27,0x52,0x55,0x58,0x43,0x76,0x59,0x77,0x54,0x61,0xf9,
-      0x71,0x78,0x75,0x96,0x97,0x49,0xb7,0x53,0xd7,0x74,0xb6,0x98,
-      0x47,0x48,0x95,0x69,0x99,0x91,0xfa,0xb8,0x68,0xb5,0xb9,0xd6,
-      0xf7,0xd8,0x67,0x46,0x45,0x94,0x89,0xf8,0x81,0xd5,0xf6,0xb4,
-      0x88,0xb1,0x2a,0x44,0x72,0xd9,0x87,0x66,0xd4,0xf5,0x3a,0xa7,
-      0x73,0xa9,0xa8,0x86,0x62,0xc7,0x65,0xc8,0xc9,0xa1,0xf4,0xd1,
-      0xe9,0x5a,0x92,0x85,0xa6,0xe7,0x93,0xe8,0xc1,0xc6,0x7a,0x64,
-      0xe1,0x4a,0x6a,0xe6,0xb3,0xf1,0xd3,0xa5,0x8a,0xb2,0x9a,0xba,
-      0x84,0xa4,0x63,0xe5,0xc5,0xf3,0xd2,0xc4,0x82,0xaa,0xda,0xe4,
-      0xf2,0xca,0x83,0xa3,0xa2,0xc3,0xea,0xc2,0xe2,0xe3,0xff,0xff  },
-    { 0,2,2,1,4,1,4,1,3,3,1,0,0,0,0,140,
-      0x02,0x03,0x01,0x04,0x05,0x12,0x11,0x06,
-      0x13,0x07,0x08,0x14,0x22,0x09,0x21,0x00,0x23,0x15,0x31,0x32,
-      0x0a,0x16,0xf0,0x24,0x33,0x41,0x42,0x19,0x17,0x25,0x18,0x51,
-      0x34,0x43,0x52,0x29,0x35,0x61,0x39,0x71,0x62,0x36,0x53,0x26,
-      0x38,0x1a,0x37,0x81,0x27,0x91,0x79,0x55,0x45,0x28,0x72,0x59,
-      0xa1,0xb1,0x44,0x69,0x54,0x58,0xd1,0xfa,0x57,0xe1,0xf1,0xb9,
-      0x49,0x47,0x63,0x6a,0xf9,0x56,0x46,0xa8,0x2a,0x4a,0x78,0x99,
-      0x3a,0x75,0x74,0x86,0x65,0xc1,0x76,0xb6,0x96,0xd6,0x89,0x85,
-      0xc9,0xf5,0x95,0xb4,0xc7,0xf7,0x8a,0x97,0xb8,0x73,0xb7,0xd8,
-      0xd9,0x87,0xa7,0x7a,0x48,0x82,0x84,0xea,0xf4,0xa6,0xc5,0x5a,
-      0x94,0xa4,0xc6,0x92,0xc3,0x68,0xb5,0xc8,0xe4,0xe5,0xe6,0xe9,
-      0xa2,0xa3,0xe3,0xc2,0x66,0x67,0x93,0xaa,0xd4,0xd5,0xe7,0xf8,
-      0x88,0x9a,0xd7,0x77,0xc4,0x64,0xe2,0x98,0xa5,0xca,0xda,0xe8,
-      0xf3,0xf6,0xa9,0xb2,0xb3,0xf2,0xd2,0x83,0xba,0xd3,0xff,0xff  },
-    { 0,0,6,2,1,3,3,2,5,1,2,2,8,10,0,117,
-      0x04,0x05,0x03,0x06,0x02,0x07,0x01,0x08,
-      0x09,0x12,0x13,0x14,0x11,0x15,0x0a,0x16,0x17,0xf0,0x00,0x22,
-      0x21,0x18,0x23,0x19,0x24,0x32,0x31,0x25,0x33,0x38,0x37,0x34,
-      0x35,0x36,0x39,0x79,0x57,0x58,0x59,0x28,0x56,0x78,0x27,0x41,
-      0x29,0x77,0x26,0x42,0x76,0x99,0x1a,0x55,0x98,0x97,0xf9,0x48,
-      0x54,0x96,0x89,0x47,0xb7,0x49,0xfa,0x75,0x68,0xb6,0x67,0x69,
-      0xb9,0xb8,0xd8,0x52,0xd7,0x88,0xb5,0x74,0x51,0x46,0xd9,0xf8,
-      0x3a,0xd6,0x87,0x45,0x7a,0x95,0xd5,0xf6,0x86,0xb4,0xa9,0x94,
-      0x53,0x2a,0xa8,0x43,0xf5,0xf7,0xd4,0x66,0xa7,0x5a,0x44,0x8a,
-      0xc9,0xe8,0xc8,0xe7,0x9a,0x6a,0x73,0x4a,0x61,0xc7,0xf4,0xc6,
-      0x65,0xe9,0x72,0xe6,0x71,0x91,0x93,0xa6,0xda,0x92,0x85,0x62,
-      0xf3,0xc5,0xb2,0xa4,0x84,0xba,0x64,0xa5,0xb3,0xd2,0x81,0xe5,
-      0xd3,0xaa,0xc4,0xca,0xf2,0xb1,0xe4,0xd1,0x83,0x63,0xea,0xc3,
-      0xe2,0x82,0xf1,0xa3,0xc2,0xa1,0xc1,0xe3,0xa2,0xe1,0xff,0xff  }
-  };
-  if (table > 2) table = 2;
-  init_decoder();
-  make_decoder ( first_tree[table], 0);
-  second_decode = free_decode;
-  make_decoder (second_tree[table], 0);
-}
-
-/*
-   Return 0 if the image starts with compressed data,
-   1 if it starts with uncompressed low-order bits.
-
-   In Canon compressed data, 0xff is always followed by 0x00.
- */
-int CLASS canon_has_lowbits()
-{
-  uchar test[0x4000];
-  int ret=1, i;
-
-  fseek (ifp, 0, SEEK_SET);
-  fread (test, 1, sizeof test, ifp);
-  for (i=540; i < sizeof test - 1; i++)
-    if (test[i] == 0xff) {
-      if (test[i+1]) return 1;
-      ret=0;
-    }
-  return ret;
-}
-
-void CLASS canon_compressed_load_raw()
-{
-  ushort *pixel, *prow;
-  int lowbits, i, row, r, col, save, val;
-  unsigned irow, icol;
-  struct decode *decode, *dindex;
-  int block, diffbuf[64], leaf, len, diff, carry=0, pnum=0, base[2];
-  uchar c;
-
-  pixel = calloc (raw_width*8, sizeof *pixel);
-  merror (pixel, "canon_compressed_load_raw()");
-  lowbits = canon_has_lowbits();
-  if (!lowbits) maximum = 0x3ff;
-  fseek (ifp, 540 + lowbits*raw_height*raw_width/4, SEEK_SET);
-  zero_after_ff = 1;
-  getbits(-1);
-  for (row = 0; row < raw_height; row += 8) {
-    for (block=0; block < raw_width >> 3; block++) {
-      memset (diffbuf, 0, sizeof diffbuf);
-      decode = first_decode;
-      for (i=0; i < 64; i++ ) {
-	for (dindex=decode; dindex->branch[0]; )
-	  dindex = dindex->branch[getbits(1)];
-	leaf = dindex->leaf;
-	decode = second_decode;
-	if (leaf == 0 && i) break;
-	if (leaf == 0xff) continue;
-	i  += leaf >> 4;
-	len = leaf & 15;
-	if (len == 0) continue;
-	diff = getbits(len);
-	if ((diff & (1 << (len-1))) == 0)
-	  diff -= (1 << len) - 1;
-	if (i < 64) diffbuf[i] = diff;
-      }
-      diffbuf[0] += carry;
-      carry = diffbuf[0];
-      for (i=0; i < 64; i++ ) {
-	if (pnum++ % raw_width == 0)
-	  base[0] = base[1] = 512;
-	pixel[(block << 6) + i] = ( base[i & 1] += diffbuf[i] );
-      }
-    }
-    if (lowbits) {
-      save = ftell(ifp);
-      fseek (ifp, 26 + row*raw_width/4, SEEK_SET);
-      for (prow=pixel, i=0; i < raw_width*2; i++) {
-	c = fgetc(ifp);
-	for (r=0; r < 8; r+=2, prow++) {
-	  val = (*prow << 2) + ((c >> r) & 3);
-	  if (raw_width == 2672 && val < 512) val += 2;
-	  *prow = val;
-	}
-      }
-      fseek (ifp, save, SEEK_SET);
-    }
-    for (r=0; r < 8; r++) {
-      irow = row - top_margin + r;
-      if (irow >= height) continue;
-      for (col = 0; col < raw_width; col++) {
-	icol = col - left_margin;
-	if (icol < width)
-	  BAYER(irow,icol) = pixel[r*raw_width+col];
-	else
-	  black += pixel[r*raw_width+col];
-      }
-    }
-  }
-  free (pixel);
-  if (raw_width > width)
-    black /= (raw_width - width) * height;
-}
-
-/*
-   Not a full implementation of Lossless JPEG, just
-   enough to decode Canon, Kodak and Adobe DNG images.
- */
-struct jhead {
-  int bits, high, wide, clrs, restart, vpred[4];
-  struct decode *huff[4];
-  ushort *row;
-};
-
-int CLASS ljpeg_start (struct jhead *jh)
-{
-  int i, tag, len;
-  uchar data[256], *dp;
-
-  init_decoder();
-  for (i=0; i < 4; i++)
-    jh->huff[i] = free_decode;
-  jh->restart = INT_MAX;
-  fread (data, 2, 1, ifp);
-  if (data[0] != 0xff || data[1] != 0xd8) return 0;
-  do {
-    fread (data, 2, 2, ifp);
-    tag =  data[0] << 8 | data[1];
-    len = (data[2] << 8 | data[3]) - 2;
-    if (tag <= 0xff00 || len > 255) return 0;
-    fread (data, 1, len, ifp);
-    switch (tag) {
-      case 0xffc3:
-	jh->bits = data[0];
-	jh->high = data[1] << 8 | data[2];
-	jh->wide = data[3] << 8 | data[4];
-	jh->clrs = data[5];
-	break;
-      case 0xffc4:
-	for (dp = data; dp < data+len && *dp < 4; ) {
-	  jh->huff[*dp] = free_decode;
-	  dp = make_decoder (++dp, 0);
-	}
-	break;
-      case 0xffdd:
-	jh->restart = data[0] << 8 | data[1];
-    }
-  } while (tag != 0xffda);
-  jh->row = calloc (jh->wide*jh->clrs, 2);
-  merror (jh->row, " jpeg_start()");
-  zero_after_ff = 1;
-  return 1;
-}
-
-int CLASS ljpeg_diff (struct decode *dindex)
-{
-  int len, diff;
-
-  while (dindex->branch[0])
-    dindex = dindex->branch[getbits(1)];
-  len = dindex->leaf;
-  if (len == 16 && (!dng_version || dng_version >= 0x1010000))
-    return -32768;
-  diff = getbits(len);
-  if ((diff & (1 << (len-1))) == 0)
-    diff -= (1 << len) - 1;
-  return diff;
-}
-
-void CLASS ljpeg_row (int jrow, struct jhead *jh)
-{
-  int col, c, diff;
-  ushort *outp=jh->row;
-
-  if (jrow * jh->wide % jh->restart == 0) {
-    FORC4 jh->vpred[c] = 1 << (jh->bits-1);
-    if (jrow) get2();			/* Eat the FF Dx marker */
-    getbits(-1);
-  }
-  for (col=0; col < jh->wide; col++)
-    for (c=0; c < jh->clrs; c++) {
-      diff = ljpeg_diff (jh->huff[c]);
-      *outp = col ? outp[-jh->clrs]+diff : (jh->vpred[c] += diff);
-      outp++;
-    }
-}
-
-void CLASS lossless_jpeg_load_raw()
-{
-  int jwide, jrow, jcol, val, jidx, i, row, col;
-  struct jhead jh;
-  int min=INT_MAX;
-
-  if (!ljpeg_start (&jh)) return;
-  jwide = jh.wide * jh.clrs;
-
-  for (jrow=0; jrow < jh.high; jrow++) {
-    ljpeg_row (jrow, &jh);
-    for (jcol=0; jcol < jwide; jcol++) {
-      val = jh.row[jcol];
-      if (jh.bits <= 12)
-	val = curve[val];
-      jidx = jrow*jwide + jcol;
-      if (raw_width == 5108) {
-	i = jidx / (1680*jh.high);
-	if (i < 2) {
-	  row = jidx / 1680 % jh.high;
-	  col = jidx % 1680 + i*1680;
-	} else {
-	  jidx -= 2*1680*jh.high;
-	  row = jidx / 1748;
-	  col = jidx % 1748 + 2*1680;
-	}
-      } else if (raw_width == 4476 || raw_width == 3516) {
-	row = jidx / (raw_width/2);
-	col = jidx % (raw_width/2);
-	if (row >= raw_height) {
-	  row -= raw_height;
-	  col += raw_width/2;
-	}
-      } else {
-	row = jidx / raw_width;
-	col = jidx % raw_width;
-      }
-      if ((unsigned) (row-top_margin) >= height) continue;
-      if ((unsigned) (col-left_margin) < width) {
-	BAYER(row-top_margin,col-left_margin) = val;
-	if (min > val) min = val;
-      } else
-	black += val;
-    }
-  }
-  free (jh.row);
-  if (raw_width > width)
-    black /= (raw_width - width) * height;
-  if (!strcasecmp(make,"KODAK"))
-    black = min;
-}
-
-void CLASS adobe_copy_pixel (int row, int col, ushort **rp)
-{
-  unsigned r, c;
-
-  r = row -= top_margin;
-  c = col -= left_margin;
-  if (fuji_secondary && use_secondary) (*rp)++;
-  if (filters) {
-    if (fuji_width) {
-      r = row + fuji_width - 1 - (col >> 1);
-      c = row + ((col+1) >> 1);
-    }
-    if (r < height && c < width)
-      BAYER(r,c) = **rp < 0x1000 ? curve[**rp] : **rp;
-    *rp += 1 + fuji_secondary;
-  } else {
-    if (r < height && c < width)
-      for (c=0; c < tiff_samples; c++)
-	image[row*width+col][c] = (*rp)[c] < 0x1000 ? curve[(*rp)[c]]:(*rp)[c];
-    *rp += tiff_samples;
-  }
-  if (fuji_secondary && use_secondary) (*rp)--;
-}
-
-void CLASS adobe_dng_load_raw_lj()
-{
-  int save, twide, trow=0, tcol=0, jrow, jcol;
-  struct jhead jh;
-  ushort *rp;
-
-  while (1) {
-    save = ftell(ifp);
-    fseek (ifp, get4(), SEEK_SET);
-    if (!ljpeg_start (&jh)) break;
-    if (trow >= raw_height) break;
-    if (jh.high > raw_height-trow)
-	jh.high = raw_height-trow;
-    twide = jh.wide;
-    if (filters) twide *= jh.clrs;
-    else         colors = jh.clrs;
-    if (fuji_secondary) twide /= 2;
-    if (twide > raw_width-tcol)
-	twide = raw_width-tcol;
-
-    for (jrow=0; jrow < jh.high; jrow++) {
-      ljpeg_row (jrow, &jh);
-      for (rp=jh.row, jcol=0; jcol < twide; jcol++)
-	adobe_copy_pixel (trow+jrow, tcol+jcol, &rp);
-    }
-    fseek (ifp, save+4, SEEK_SET);
-    if ((tcol += twide) >= raw_width) {
-      tcol = 0;
-      trow += jh.high;
-    }
-    free (jh.row);
-  }
-}
-
-void CLASS adobe_dng_load_raw_nc()
-{
-  ushort *pixel, *rp;
-  int row, col;
-
-  pixel = calloc (raw_width * tiff_samples, sizeof *pixel);
-  merror (pixel, "adobe_dng_load_raw_nc()");
-  for (row=0; row < raw_height; row++) {
-    if (tiff_bps == 16)
-      read_shorts (pixel, raw_width * tiff_samples);
-    else {
-      getbits(-1);
-      for (col=0; col < raw_width * tiff_samples; col++)
-	pixel[col] = getbits(tiff_bps);
-    }
-    for (rp=pixel, col=0; col < raw_width; col++)
-      adobe_copy_pixel (row, col, &rp);
-  }
-  free (pixel);
-}
-
-void CLASS nikon_compressed_load_raw()
-{
-  static const uchar nikon_tree[] = {
-    0,1,5,1,1,1,1,1,1,2,0,0,0,0,0,0,
-    5,4,3,6,2,7,1,0,8,9,11,10,12
-  };
-  int csize, row, col, i, diff;
-  ushort vpred[4], hpred[2], *curve;
-
-  init_decoder();
-  make_decoder (nikon_tree, 0);
-
-  fseek (ifp, nikon_curve_offset, SEEK_SET);
-  read_shorts (vpred, 4);
-  csize = get2();
-  curve = calloc (csize, sizeof *curve);
-  merror (curve, "nikon_compressed_load_raw()");
-  read_shorts (curve, csize);
-
-  fseek (ifp, data_offset, SEEK_SET);
-  getbits(-1);
-
-  for (row=0; row < height; row++)
-    for (col=0; col < raw_width; col++)
-    {
-      diff = ljpeg_diff (first_decode);
-      if (col < 2) {
-	i = 2*(row & 1) + (col & 1);
-	vpred[i] += diff;
-	hpred[col] = vpred[i];
-      } else
-	hpred[col & 1] += diff;
-      if ((unsigned) (col-left_margin) >= width) continue;
-      diff = hpred[col & 1];
-      if (diff >= csize) diff = csize-1;
-      BAYER(row,col-left_margin) = curve[diff];
-    }
-  free (curve);
-}
-
-void CLASS nikon_load_raw()
-{
-  int irow, row, col, i;
-
-  getbits(-1);
-  for (irow=0; irow < height; irow++) {
-    row = irow;
-    if (model[0] == 'E') {
-      row = irow * 2 % height + irow / (height/2);
-      if (row == 1 && data_offset == 0) {
-	fseek (ifp, 0, SEEK_END);
-	fseek (ifp, ftell(ifp)/2, SEEK_SET);
-	getbits(-1);
-      }
-    }
-    for (col=0; col < raw_width; col++) {
-      i = getbits(12);
-      if ((unsigned) (col-left_margin) < width)
-	BAYER(row,col-left_margin) = i;
-      if (tiff_data_compression == 34713 && (col % 10) == 9)
-	getbits(8);
-    }
-  }
-}
-
-/*
-   Figure out if a NEF file is compressed.  These fancy heuristics
-   are only needed for the D100, thanks to a bug in some cameras
-   that tags all images as "compressed".
- */
-int CLASS nikon_is_compressed()
-{
-  uchar test[256];
-  int i;
-
-  if (tiff_data_compression != 34713)
-    return 0;
-  if (strcmp(model,"D100"))
-    return 1;
-  fseek (ifp, data_offset, SEEK_SET);
-  fread (test, 1, 256, ifp);
-  for (i=15; i < 256; i+=16)
-    if (test[i]) return 1;
-  return 0;
-}
-
-/*
-   Returns 1 for a Coolpix 990, 0 for a Coolpix 995.
- */
-int CLASS nikon_e990()
-{
-  int i, histo[256];
-  const uchar often[] = { 0x00, 0x55, 0xaa, 0xff };
-
-  memset (histo, 0, sizeof histo);
-  fseek (ifp, 2064*1540*3/4, SEEK_SET);
-  for (i=0; i < 2000; i++)
-    histo[fgetc(ifp)]++;
-  for (i=0; i < 4; i++)
-    if (histo[often[i]] > 400)
-      return 1;
-  return 0;
-}
-
-/*
-   Returns 1 for a Coolpix 2100, 0 for anything else.
- */
-int CLASS nikon_e2100()
-{
-  uchar t[12];
-  int i;
-
-  fseek (ifp, 0, SEEK_SET);
-  for (i=0; i < 1024; i++) {
-    fread (t, 1, 12, ifp);
-    if (((t[2] & t[4] & t[7] & t[9]) >> 4
-	& t[1] & t[6] & t[8] & t[11] & 3) != 3)
-      return 0;
-  }
-  return 1;
-}
-
-/*
-   Returns 0 for a Pentax Optio 33WR,
-	   1 for a Nikon E3700,
-	   2 for an Olympus C740UZ.
- */
-int CLASS nikon_3700()
-{
-  int i, sum[] = { 0, 0 };
-  uchar tail[952];
-
-  fseek (ifp, -sizeof tail, SEEK_END);
-  fread (tail, 1, sizeof tail, ifp);
-  for (i=0; i < sizeof tail; i++)
-    sum[(i>>2) & 1] += tail[i];
-  if (sum[1] > 4*sum[0]) return 2;
-  return sum[0] > 4*sum[1];
-}
-
-/*
-   Separates a Minolta DiMAGE Z2 from a Nikon E4300.
- */
-int CLASS minolta_z2()
-{
-  int i;
-  char tail[424];
-
-  fseek (ifp, -sizeof tail, SEEK_END);
-  fread (tail, 1, sizeof tail, ifp);
-  for (i=0; i < sizeof tail; i++)
-    if (tail[i]) return 1;
-  return 0;
-}
-
-/* Here raw_width is in bytes, not pixels. */
-void CLASS nikon_e900_load_raw()
-{
-  int offset=0, irow, row, col;
-
-  for (irow=0; irow < height; irow++) {
-    row = irow * 2 % height;
-    if (row == 1)
-      offset = - (-offset & -4096);
-    fseek (ifp, offset, SEEK_SET);
-    offset += raw_width;
-    getbits(-1);
-    for (col=0; col < width; col++)
-      BAYER(row,col) = getbits(10);
-  }
-}
-
-void CLASS nikon_e2100_load_raw()
-{
-  uchar   data[3456], *dp;
-  ushort pixel[2304], *pix;
-  int row, col;
-
-  for (row=0; row <= height; row+=2) {
-    if (row == height) {
-      fseek (ifp, ((width==1616) << 13) - (-ftell(ifp) & -2048), SEEK_SET);
-      row = 1;
-    }
-    fread (data, 1, width*3/2, ifp);
-    for (dp=data, pix=pixel; pix < pixel+width; dp+=12, pix+=8) {
-      pix[0] = (dp[2] >> 4) + (dp[ 3] << 4);
-      pix[1] = (dp[2] << 8) +  dp[ 1];
-      pix[2] = (dp[7] >> 4) + (dp[ 0] << 4);
-      pix[3] = (dp[7] << 8) +  dp[ 6];
-      pix[4] = (dp[4] >> 4) + (dp[ 5] << 4);
-      pix[5] = (dp[4] << 8) +  dp[11];
-      pix[6] = (dp[9] >> 4) + (dp[10] << 4);
-      pix[7] = (dp[9] << 8) +  dp[ 8];
-    }
-    for (col=0; col < width; col++)
-      BAYER(row,col) = (pixel[col] & 0xfff);
-  }
-}
-
-/*
-   The Fuji Super CCD is just a Bayer grid rotated 45 degrees.
- */
-void CLASS fuji_load_raw()
-{
-  ushort *pixel;
-  int row, col, r, c;
-
-  pixel = calloc (raw_width, sizeof *pixel);
-  merror (pixel, "fuji_load_raw()");
-  for (row=0; row < raw_height; row++) {
-    read_shorts (pixel, raw_width);
-    for (col=0; col < fuji_width << !fuji_layout; col++) {
-      if (fuji_layout) {
-	r = fuji_width - 1 - col + (row >> 1);
-	c = col + ((row+1) >> 1);
-      } else {
-	r = fuji_width - 1 + row - (col >> 1);
-	c = row + ((col+1) >> 1);
-      }
-      BAYER(r,c) = pixel[col];
-    }
-  }
-  free (pixel);
-}
-
-void CLASS rollei_load_raw()
-{
-  uchar pixel[10];
-  unsigned iten=0, isix, i, buffer=0, row, col, todo[16];
-
-  isix = raw_width * raw_height * 5 / 8;
-  while (fread (pixel, 1, 10, ifp) == 10) {
-    for (i=0; i < 10; i+=2) {
-      todo[i]   = iten++;
-      todo[i+1] = pixel[i] << 8 | pixel[i+1];
-      buffer    = pixel[i] >> 2 | buffer << 6;
-    }
-    for (   ; i < 16; i+=2) {
-      todo[i]   = isix++;
-      todo[i+1] = buffer >> (14-i)*5;
-    }
-    for (i=0; i < 16; i+=2) {
-      row = todo[i] / raw_width - top_margin;
-      col = todo[i] % raw_width - left_margin;
-      if (row < height && col < width)
-	BAYER(row,col) = (todo[i+1] & 0x3ff);
-    }
-  }
-  maximum = 0x3ff;
-}
-
-void CLASS phase_one_load_raw()
-{
-  int row, col, a, b;
-  ushort *pixel, akey, bkey, tqmask;
-
-  fseek (ifp, nikon_curve_offset, SEEK_SET);
-  akey = get2();
-  bkey = get2();
-  tqmask = tiff_data_compression == 1 ? 0x5555:0x1354;
-  fseek (ifp, data_offset + top_margin*raw_width*2, SEEK_SET);
-  pixel = calloc (raw_width, sizeof *pixel);
-  merror (pixel, "phase_one_load_raw()");
-  for (row=0; row < height; row++) {
-    read_shorts (pixel, raw_width);
-    for (col=0; col < raw_width; col+=2) {
-      a = pixel[col+0] ^ akey;
-      b = pixel[col+1] ^ bkey;
-      pixel[col+0] = (a & tqmask) | (b & ~tqmask);
-      pixel[col+1] = (b & tqmask) | (a & ~tqmask);
-    }
-    for (col=0; col < width; col++)
-      BAYER(row,col) = pixel[col+left_margin];
-  }
-  free (pixel);
-  maximum = 0xffff;
-}
-
-unsigned CLASS ph1_bits (int nbits)
-{
-  static UINT64 bitbuf=0;
-  static int vbits=0;
-
-  if (nbits == 0)
-    return bitbuf = vbits = 0;
-  if (vbits < nbits) {
-    bitbuf = bitbuf << 32 | (unsigned) get4();
-    vbits += 32;
-  }
-  vbits -= nbits;
-  return bitbuf << (64 - nbits - vbits) >> (64 - nbits);
-}
-
-void CLASS phase_one_load_raw_c()
-{
-  static const int length[] = { 8,7,6,9,11,10,5,12,14,13 };
-  int len[2], pred[2], row, col, ncols, i, j;
-  ushort *pixel;
-
-  ncols = (raw_width + 7) & -8;
-  pixel = calloc (ncols, sizeof *pixel);
-  merror (pixel, "phase_one_load_raw_c()");
-  for (row=0; row < raw_height; row++) {
-    ph1_bits(0);
-    pred[0] = pred[1] = 0;
-    for (col=0; col < ncols; col++) {
-      if (col >= (raw_width & -8))
-	len[0] = len[1] = 14;
-      else if ((col & 7) == 0)
-	for (i=0; i < 2; i++) {
-	  for (j=0; j < 5 && !ph1_bits(1); j++);
-	  if (j--) len[i] = length[j*2 + ph1_bits(1)];
-	}
-      if ((i = len[col & 1]) == 14)
-	pixel[col] = pred[col & 1] = ph1_bits(16);
-      else
-	pixel[col] = pred[col & 1] += ph1_bits(i) + 1 - (1 << (i - 1));
-    }
-    if ((unsigned) (row-top_margin) < height)
-      for (col=0; col < width; col++)
-	BAYER(row-top_margin,col) = pixel[col+left_margin];
-  }
-  free (pixel);
-  maximum = 0x3fff;
-}
-
-void CLASS leaf_load_raw()
-{
-  ushort *pixel;
-  int r, c, row, col;
-
-  pixel = calloc (raw_width, sizeof *pixel);
-  merror (pixel, "leaf_load_raw()");
-  for (r=0; r < height-32; r+=32)
-    FORC3 for (row=r; row < r+32; row++) {
-      read_shorts (pixel, raw_width);
-      for (col=0; col < width; col++)
-	image[row*width+col][c] = pixel[col];
-    }
-  free (pixel);
-}
-
-/* Here raw_width is in bytes, not pixels. */
-void CLASS packed_12_load_raw()
-{
-  int row, col;
-
-  getbits(-1);
-  for (row=0; row < height; row++) {
-    for (col=0; col < width; col++)
-      BAYER(row,col) = getbits(12);
-    for (col = width*3/2; col < raw_width; col++)
-      getbits(8);
-  }
-}
-
-void CLASS unpacked_load_raw()
-{
-  ushort *pixel;
-  int row, col;
-
-  pixel = calloc (raw_width, sizeof *pixel);
-  merror (pixel, "unpacked_load_raw()");
-  for (row=0; row < height; row++) {
-    read_shorts (pixel, raw_width);
-    for (col=0; col < width; col++)
-      BAYER(row,col) = pixel[col];
-  }
-  free (pixel);
-}
-
-void CLASS olympus_e300_load_raw()
-{
-  uchar  *data,  *dp;
-  ushort *pixel, *pix;
-  int dwide, row, col;
-
-  dwide = raw_width * 16 / 10;
-  data = malloc (dwide + raw_width*2);
-  merror (data, "olympus_e300_load_raw()");
-  pixel = (ushort *) (data + dwide);
-  for (row=0; row < height; row++) {
-    fread (data, 1, dwide, ifp);
-    for (dp=data, pix=pixel; pix < pixel+raw_width; dp+=3, pix+=2) {
-      if (((dp-data) & 15) == 15) dp++;
-      pix[0] = dp[1] << 8 | dp[0];
-      pix[1] = dp[2] << 4 | dp[1] >> 4;
-    }
-    for (col=0; col < width; col++)
-      BAYER(row,col) = (pixel[col] & 0xfff);
-    for (col=width+4; col < raw_width; col++)
-      black += pixel[col] & 0xfff;
-  }
-  black /= (raw_width - width - 4) * height;
-  free (data);
-}
-
-void CLASS olympus_cseries_load_raw()
-{
-  int irow, row, col;
-
-  for (irow=0; irow < height; irow++) {
-    row = irow * 2 % height + irow / (height/2);
-    if (row < 2) {
-      fseek (ifp, data_offset - row*(-width*height*3/4 & -2048), SEEK_SET);
-      getbits(-1);
-    }
-    for (col=0; col < width; col++)
-      BAYER(row,col) = getbits(12);
-  }
-}
-
-void CLASS minolta_rd175_load_raw()
-{
-  uchar pixel[768];
-  unsigned irow, box, row, col;
-
-  for (irow=0; irow < 1481; irow++) {
-    fread (pixel, 1, 768, ifp);
-    box = irow / 82;
-    row = irow % 82 * 12 + ((box < 12) ? box | 1 : (box-12)*2);
-    switch (irow) {
-      case 1477: case 1479: continue;
-      case 1476: row = 984; break;
-      case 1480: row = 985; break;
-      case 1478: row = 985; box = 1;
-    }
-    if ((box < 12) && (box & 1)) {
-      for (col=0; col < 1533; col++, row ^= 1)
-	if (col != 1) BAYER(row,col) = (col+1) & 2 ?
-		   pixel[col/2-1] + pixel[col/2+1] : pixel[col/2] << 1;
-      BAYER(row,1)    = pixel[1]   << 1;
-      BAYER(row,1533) = pixel[765] << 1;
-    } else
-      for (col=row & 1; col < 1534; col+=2)
-	BAYER(row,col) = pixel[col/2] << 1;
-  }
-  maximum = 0xff << 1;
-}
-
-void CLASS eight_bit_load_raw()
-{
-  uchar *pixel;
-  int row, col;
-
-  pixel = calloc (raw_width, sizeof *pixel);
-  merror (pixel, "eight_bit_load_raw()");
-  for (row=0; row < height; row++) {
-    fread (pixel, 1, raw_width, ifp);
-    for (col=0; col < width; col++)
-      BAYER(row,col) = pixel[col];
-  }
-  free (pixel);
-  maximum = 0xff;
-}
-
-void CLASS casio_qv5700_load_raw()
-{
-  uchar  data[3232],  *dp;
-  ushort pixel[2576], *pix;
-  int row, col;
-
-  for (row=0; row < height; row++) {
-    fread (data, 1, 3232, ifp);
-    for (dp=data, pix=pixel; dp < data+3220; dp+=5, pix+=4) {
-      pix[0] = (dp[0] << 2) + (dp[1] >> 6);
-      pix[1] = (dp[1] << 4) + (dp[2] >> 4);
-      pix[2] = (dp[2] << 6) + (dp[3] >> 2);
-      pix[3] = (dp[3] << 8) + (dp[4]     );
-    }
-    for (col=0; col < width; col++)
-      BAYER(row,col) = (pixel[col] & 0x3ff);
-  }
-  maximum = 0x3fc;
-}
-
-void CLASS nucore_load_raw()
-{
-  ushort *pixel;
-  int irow, row, col;
-
-  pixel = calloc (width, 2);
-  merror (pixel, "nucore_load_raw()");
-  for (irow=0; irow < height; irow++) {
-    read_shorts (pixel, width);
-    row = irow/2 + height/2 * (irow & 1);
-    for (col=0; col < width; col++)
-      BAYER(row,col) = pixel[col];
-  }
-  free (pixel);
-}
-
-const int * CLASS make_decoder_int (const int *source, int level)
-{
-  struct decode *cur;
-
-  cur = free_decode++;
-  if (level < source[0]) {
-    cur->branch[0] = free_decode;
-    source = make_decoder_int (source, level+1);
-    cur->branch[1] = free_decode;
-    source = make_decoder_int (source, level+1);
-  } else {
-    cur->leaf = source[1];
-    source += 2;
-  }
-  return source;
-}
-
-int CLASS radc_token (int tree)
-{
-  int t;
-  static struct decode *dstart[18], *dindex;
-  static const int *s, source[] = {
-    1,1, 2,3, 3,4, 4,2, 5,7, 6,5, 7,6, 7,8,
-    1,0, 2,1, 3,3, 4,4, 5,2, 6,7, 7,6, 8,5, 8,8,
-    2,1, 2,3, 3,0, 3,2, 3,4, 4,6, 5,5, 6,7, 6,8,
-    2,0, 2,1, 2,3, 3,2, 4,4, 5,6, 6,7, 7,5, 7,8,
-    2,1, 2,4, 3,0, 3,2, 3,3, 4,7, 5,5, 6,6, 6,8,
-    2,3, 3,1, 3,2, 3,4, 3,5, 3,6, 4,7, 5,0, 5,8,
-    2,3, 2,6, 3,0, 3,1, 4,4, 4,5, 4,7, 5,2, 5,8,
-    2,4, 2,7, 3,3, 3,6, 4,1, 4,2, 4,5, 5,0, 5,8,
-    2,6, 3,1, 3,3, 3,5, 3,7, 3,8, 4,0, 5,2, 5,4,
-    2,0, 2,1, 3,2, 3,3, 4,4, 4,5, 5,6, 5,7, 4,8,
-    1,0, 2,2, 2,-2,
-    1,-3, 1,3,
-    2,-17, 2,-5, 2,5, 2,17,
-    2,-7, 2,2, 2,9, 2,18,
-    2,-18, 2,-9, 2,-2, 2,7,
-    2,-28, 2,28, 3,-49, 3,-9, 3,9, 4,49, 5,-79, 5,79,
-    2,-1, 2,13, 2,26, 3,39, 4,-16, 5,55, 6,-37, 6,76,
-    2,-26, 2,-13, 2,1, 3,-39, 4,16, 5,-55, 6,-76, 6,37
-  };
-
-  if (free_decode == first_decode)
-    for (s=source, t=0; t < 18; t++) {
-      dstart[t] = free_decode;
-      s = make_decoder_int (s, 0);
-    }
-  if (tree == 18) {
-    if (kodak_cbpp == 243)
-      return (getbits(6) << 2) + 2;	/* most DC50 photos */
-    else
-      return (getbits(5) << 3) + 4;	/* DC40, Fotoman Pixtura */
-  }
-  for (dindex = dstart[tree]; dindex->branch[0]; )
-    dindex = dindex->branch[getbits(1)];
-  return dindex->leaf;
-}
-
-#define FORYX for (y=1; y < 3; y++) for (x=col+1; x >= col; x--)
-
-#define PREDICTOR (c ? (buf[c][y-1][x] + buf[c][y][x+1]) / 2 \
-: (buf[c][y-1][x+1] + 2*buf[c][y-1][x] + buf[c][y][x+1]) / 4)
-
-void CLASS kodak_radc_load_raw()
-{
-  int row, col, tree, nreps, rep, step, i, c, s, r, x, y, val;
-  short last[3] = { 16,16,16 }, mul[3], buf[3][3][386];
-
-  init_decoder();
-  getbits(-1);
-  for (i=0; i < sizeof(buf)/sizeof(short); i++)
-    buf[0][0][i] = 2048;
-  for (row=0; row < height; row+=4) {
-    FORC3 mul[c] = getbits(6);
-    FORC3 {
-      val = ((0x1000000/last[c] + 0x7ff) >> 12) * mul[c];
-      s = val > 65564 ? 10:12;
-      x = ~(-1 << (s-1));
-      val <<= 12-s;
-      for (i=0; i < sizeof(buf[0])/sizeof(short); i++)
-	buf[c][0][i] = (buf[c][0][i] * val + x) >> s;
-      last[c] = mul[c];
-      for (r=0; r <= !c; r++) {
-	buf[c][1][width/2] = buf[c][2][width/2] = mul[c] << 7;
-	for (tree=1, col=width/2; col > 0; ) {
-	  if ((tree = radc_token(tree))) {
-	    col -= 2;
-	    if (tree == 8)
-	      FORYX buf[c][y][x] = radc_token(tree+10) * mul[c];
-	    else
-	      FORYX buf[c][y][x] = radc_token(tree+10) * 16 + PREDICTOR;
-	  } else
-	    do {
-	      nreps = (col > 2) ? radc_token(9) + 1 : 1;
-	      for (rep=0; rep < 8 && rep < nreps && col > 0; rep++) {
-		col -= 2;
-		FORYX buf[c][y][x] = PREDICTOR;
-		if (rep & 1) {
-		  step = radc_token(10) << 4;
-		  FORYX buf[c][y][x] += step;
-		}
-	      }
-	    } while (nreps == 9);
-	}
-	for (y=0; y < 2; y++)
-	  for (x=0; x < width/2; x++) {
-	    val = (buf[c][y+1][x] << 4) / mul[c];
-	    if (val < 0) val = 0;
-	    if (c)
-	      BAYER(row+y*2+c-1,x*2+2-c) = val;
-	    else
-	      BAYER(row+r*2+y,x*2+y) = val;
-	  }
-	memcpy (buf[c][0]+!c, buf[c][2], sizeof buf[c][0]-2*!c);
-      }
-    }
-    for (y=row; y < row+4; y++)
-      for (x=0; x < width; x++)
-	if ((x+y) & 1) {
-	  val = (BAYER(y,x)-2048)*2 + (BAYER(y,x-1)+BAYER(y,x+1))/2;
-	  if (val < 0) val = 0;
-	  BAYER(y,x) = val;
-	}
-  }
-  maximum = 10000;
-}
-
-#undef FORYX
-#undef PREDICTOR
-
-#ifdef NO_JPEG
-void CLASS kodak_jpeg_load_raw() {}
-#else
-
-METHODDEF(boolean)
-fill_input_buffer (j_decompress_ptr cinfo)
-{
-  static uchar jpeg_buffer[4096];
-  size_t nbytes;
-
-  nbytes = fread (jpeg_buffer, 1, 4096, ifp);
-  swab (jpeg_buffer, jpeg_buffer, nbytes);
-  cinfo->src->next_input_byte = jpeg_buffer;
-  cinfo->src->bytes_in_buffer = nbytes;
-  return TRUE;
-}
-
-void CLASS kodak_jpeg_load_raw()
-{
-  struct jpeg_decompress_struct cinfo;
-  struct jpeg_error_mgr jerr;
-  JSAMPARRAY buf;
-  JSAMPLE (*pixel)[3];
-  int row, col;
-
-  cinfo.err = jpeg_std_error (&jerr);
-  jpeg_create_decompress (&cinfo);
-  jpeg_stdio_src (&cinfo, ifp);
-  cinfo.src->fill_input_buffer = fill_input_buffer;
-  jpeg_read_header (&cinfo, TRUE);
-  jpeg_start_decompress (&cinfo);
-  if ((cinfo.output_width      != width  ) ||
-      (cinfo.output_height*2   != height ) ||
-      (cinfo.output_components != 3      )) {
-    fprintf (stderr, "%s: incorrect JPEG dimensions\n", ifname);
-    jpeg_destroy_decompress (&cinfo);
-    longjmp (failure, 3);
-  }
-  buf = (*cinfo.mem->alloc_sarray)
-		((j_common_ptr) &cinfo, JPOOL_IMAGE, width*3, 1);
-
-  while (cinfo.output_scanline < cinfo.output_height) {
-    row = cinfo.output_scanline * 2;
-    jpeg_read_scanlines (&cinfo, buf, 1);
-    pixel = (void *) buf[0];
-    for (col=0; col < width; col+=2) {
-      BAYER(row+0,col+0) = pixel[col+0][1] << 1;
-      BAYER(row+1,col+1) = pixel[col+1][1] << 1;
-      BAYER(row+0,col+1) = pixel[col][0] + pixel[col+1][0];
-      BAYER(row+1,col+0) = pixel[col][2] + pixel[col+1][2];
-    }
-  }
-  jpeg_finish_decompress (&cinfo);
-  jpeg_destroy_decompress (&cinfo);
-  maximum = 0xff << 1;
-}
-
-#endif
-
-void CLASS kodak_dc120_load_raw()
-{
-  static const int mul[4] = { 162, 192, 187,  92 };
-  static const int add[4] = {   0, 636, 424, 212 };
-  uchar pixel[848];
-  int row, shift, col;
-
-  for (row=0; row < height; row++) {
-    fread (pixel, 848, 1, ifp);
-    shift = row * mul[row & 3] + add[row & 3];
-    for (col=0; col < width; col++)
-      BAYER(row,col) = (ushort) pixel[(col + shift) % 848];
-  }
-  maximum = 0xff;
-}
-
-void CLASS kodak_easy_load_raw()
-{
-  uchar *pixel;
-  unsigned row, col, icol;
-
-  if (raw_width > width)
-    black = 0;
-  pixel = calloc (raw_width, sizeof *pixel);
-  merror (pixel, "kodak_easy_load_raw()");
-  for (row=0; row < height; row++) {
-    fread (pixel, 1, raw_width, ifp);
-    for (col=0; col < raw_width; col++) {
-      icol = col - left_margin;
-      if (icol < width)
-	BAYER(row,icol) = (ushort) curve[pixel[col]];
-      else
-	black += curve[pixel[col]];
-    }
-  }
-  free (pixel);
-  if (raw_width > width)
-    black /= (raw_width - width) * height;
-  if (!strncmp(model,"DC2",3))
-    black = 0;
-  maximum = curve[0xff];
-}
-
-void CLASS kodak_compressed_load_raw()
-{
-  uchar c, blen[256];
-  ushort raw[6];
-  unsigned row, col, len, save, i, israw=0, bits=0, pred[2];
-  INT64 bitbuf=0;
-  int diff;
-
-  for (row=0; row < height; row++)
-    for (col=0; col < width; col++)
-    {
-      if ((col & 255) == 0) {		/* Get the bit-lengths of the */
-	len = width - col;		/* next 256 pixel values      */
-	if (len > 256) len = 256;
-	save = ftell(ifp);
-	for (israw=i=0; i < len; i+=2) {
-	  c = fgetc(ifp);
-	  if ((blen[i+0] = c & 15) > 12 ||
-	      (blen[i+1] = c >> 4) > 12 )
-	    israw = 1;
-	}
-	bitbuf = bits = pred[0] = pred[1] = 0;
-	if (len % 8 == 4) {
-	  bitbuf  = fgetc(ifp) << 8;
-	  bitbuf += fgetc(ifp);
-	  bits = 16;
-	}
-	if (israw)
-	  fseek (ifp, save, SEEK_SET);
-      }
-      if (israw) {			/* If the data is not compressed */
-	switch (col & 7) {
-	  case 0:
-	    read_shorts (raw, 6);
-	    diff = raw[0] >> 12 << 8 | raw[2] >> 12 << 4 | raw[4] >> 12;
-	    break;
-	  case 1:
-	    diff = raw[1] >> 12 << 8 | raw[3] >> 12 << 4 | raw[5] >> 12;
-	    break;
-	  default:
-	    diff = raw[(col & 7) - 2] & 0xfff;
-	}
-      } else {				/* If the data is compressed */
-	len = blen[col & 255];		/* Number of bits for this pixel */
-	if (bits < len) {		/* Got enough bits in the buffer? */
-	  for (i=0; i < 32; i+=8)
-	    bitbuf += (INT64) fgetc(ifp) << (bits+(i^8));
-	  bits += 32;
-	}
-	diff = bitbuf & (0xffff >> (16-len));  /* Pull bits from buffer */
-	bitbuf >>= len;
-	bits -= len;
-	if ((diff & (1 << (len-1))) == 0)
-	  diff -= (1 << len) - 1;
-	pred[col & 1] += diff;
-	diff = pred[col & 1];
-      }
-      BAYER(row,col) = curve[diff];
-    }
-}
-
-void CLASS kodak_yuv_load_raw()
-{
-  uchar c, blen[384];
-  unsigned row, col, len, bits=0;
-  INT64 bitbuf=0;
-  int i, li=0, si, diff, six[6], y[4], cb=0, cr=0, rgb[3];
-  ushort *ip;
-
-  for (row=0; row < height; row+=2)
-    for (col=0; col < width; col+=2) {
-      if ((col & 127) == 0) {
-	len = (width - col + 1) * 3 & -4;
-	if (len > 384) len = 384;
-	for (i=0; i < len; ) {
-	  c = fgetc(ifp);
-	  blen[i++] = c & 15;
-	  blen[i++] = c >> 4;
-	}
-	li = bitbuf = bits = y[1] = y[3] = cb = cr = 0;
-	if (len % 8 == 4) {
-	  bitbuf  = fgetc(ifp) << 8;
-	  bitbuf += fgetc(ifp);
-	  bits = 16;
-	}
-      }
-      for (si=0; si < 6; si++) {
-	len = blen[li++];
-	if (bits < len) {
-	  for (i=0; i < 32; i+=8)
-	    bitbuf += (INT64) fgetc(ifp) << (bits+(i^8));
-	  bits += 32;
-	}
-	diff = bitbuf & (0xffff >> (16-len));
-	bitbuf >>= len;
-	bits -= len;
-	if ((diff & (1 << (len-1))) == 0)
-	  diff -= (1 << len) - 1;
-	six[si] = diff;
-      }
-      y[0] = six[0] + y[1];
-      y[1] = six[1] + y[0];
-      y[2] = six[2] + y[3];
-      y[3] = six[3] + y[2];
-      cb  += six[4];
-      cr  += six[5];
-      for (i=0; i < 4; i++) {
-	ip = image[(row+(i >> 1))*width + col+(i & 1)];
-	rgb[0] = y[i] + cr;
-	rgb[1] = y[i];
-	rgb[2] = y[i] + cb;
-	FORC3 if (rgb[c] > 0) ip[c] = curve[rgb[c]];
-      }
-    }
-}
-
-void CLASS sony_decrypt (unsigned *data, int len, int start, int key)
-{
-  static unsigned pad[128], p;
-
-  if (start) {
-    for (p=0; p < 4; p++)
-      pad[p] = key = key * 48828125 + 1;
-    pad[3] = pad[3] << 1 | (pad[0]^pad[2]) >> 31;
-    for (p=4; p < 127; p++)
-      pad[p] = (pad[p-4]^pad[p-2]) << 1 | (pad[p-3]^pad[p-1]) >> 31;
-    for (p=0; p < 127; p++)
-      pad[p] = htonl(pad[p]);
-  }
-  while (len--)
-    *data++ ^= pad[p++ & 127] = pad[(p+1) & 127] ^ pad[(p+65) & 127];
-}
-
-void CLASS sony_load_raw()
-{
-  uchar head[40];
-  ushort *pixel;
-  unsigned i, key, row, col;
-
-  fseek (ifp, 200896, SEEK_SET);
-  fseek (ifp, (unsigned) fgetc(ifp)*4 - 1, SEEK_CUR);
-  order = 0x4d4d;
-  key = get4();
-  fseek (ifp, 164600, SEEK_SET);
-  fread (head, 1, 40, ifp);
-  sony_decrypt ((void *) head, 10, 1, key);
-  for (i=26; i-- > 22; )
-    key = key << 8 | head[i];
-  fseek (ifp, data_offset, SEEK_SET);
-  pixel = calloc (raw_width, sizeof *pixel);
-  merror (pixel, "sony_load_raw()");
-  for (row=0; row < height; row++) {
-    fread (pixel, 2, raw_width, ifp);
-    sony_decrypt ((void *) pixel, raw_width/2, !row, key);
-    for (col=9; col < left_margin; col++)
-      black += ntohs(pixel[col]);
-    for (col=0; col < width; col++)
-      BAYER(row,col) = ntohs(pixel[col+left_margin]);
-  }
-  free (pixel);
-  if (left_margin > 9)
-    black /= (left_margin-9) * height;
-  maximum = 0x3ff0;
-}
-
-#define HOLE(row) ((holes >> (((row) - raw_height) & 7)) & 1)
-
-/* Kudos to Rich Taylor for figuring out SMaL's compression algorithm. */
-void CLASS smal_decode_segment (unsigned seg[2][2], int holes)
-{
-  uchar hist[3][13] = {
-    { 7, 7, 0, 0, 63, 55, 47, 39, 31, 23, 15, 7, 0 },
-    { 7, 7, 0, 0, 63, 55, 47, 39, 31, 23, 15, 7, 0 },
-    { 3, 3, 0, 0, 63,     47,     31,     15,    0 } };
-  int low, high=0xff, carry=0, nbits=8;
-  int s, count, bin, next, i, sym[3];
-  uchar diff, pred[]={0,0};
-  ushort data=0, range=0;
-  unsigned pix, row, col;
-
-  fseek (ifp, seg[0][1]+1, SEEK_SET);
-  getbits(-1);
-  for (pix=seg[0][0]; pix < seg[1][0]; pix++) {
-    for (s=0; s < 3; s++) {
-      data = data << nbits | getbits(nbits);
-      if (carry < 0)
-	carry = (nbits += carry+1) < 1 ? nbits-1 : 0;
-      while (--nbits >= 0)
-	if ((data >> nbits & 0xff) == 0xff) break;
-      if (nbits > 0)
-	  data = ((data & ((1 << (nbits-1)) - 1)) << 1) |
-	((data + (((data & (1 << (nbits-1)))) << 1)) & (-1 << nbits));
-      if (nbits >= 0) {
-	data += getbits(1);
-	carry = nbits - 8;
-      }
-      count = ((((data-range+1) & 0xffff) << 2) - 1) / (high >> 4);
-      for (bin=0; hist[s][bin+5] > count; bin++);
-		low = hist[s][bin+5] * (high >> 4) >> 2;
-      if (bin) high = hist[s][bin+4] * (high >> 4) >> 2;
-      high -= low;
-      for (nbits=0; high << nbits < 128; nbits++);
-      range = (range+low) << nbits;
-      high <<= nbits;
-      next = hist[s][1];
-      if (++hist[s][2] > hist[s][3]) {
-	next = (next+1) & hist[s][0];
-	hist[s][3] = (hist[s][next+4] - hist[s][next+5]) >> 2;
-	hist[s][2] = 1;
-      }
-      if (hist[s][hist[s][1]+4] - hist[s][hist[s][1]+5] > 1) {
-	if (bin < hist[s][1])
-	  for (i=bin; i < hist[s][1]; i++) hist[s][i+5]--;
-	else if (next <= bin)
-	  for (i=hist[s][1]; i < bin; i++) hist[s][i+5]++;
-      }
-      hist[s][1] = next;
-      sym[s] = bin;
-    }
-    diff = sym[2] << 5 | sym[1] << 2 | (sym[0] & 3);
-    if (sym[0] & 4)
-      diff = diff ? -diff : 0x80;
-    if (ftell(ifp) + 12 >= seg[1][1])
-      diff = 0;
-    pred[pix & 1] += diff;
-    row = pix / raw_width - top_margin;
-    col = pix % raw_width - left_margin;
-    if (row < height && col < width)
-      BAYER(row,col) = pred[pix & 1];
-    if (!(pix & 1) && HOLE(row)) pix += 2;
-  }
-  maximum = 0xff;
-}
-
-void CLASS smal_v6_load_raw()
-{
-  unsigned seg[2][2];
-
-  fseek (ifp, 16, SEEK_SET);  
-  seg[0][0] = 0;
-  seg[0][1] = get2();
-  seg[1][0] = raw_width * raw_height;
-  seg[1][1] = INT_MAX;
-  smal_decode_segment (seg, 0);
-  use_gamma = 0;
-}
-
-int CLASS median4 (int *p)
-{
-  int min, max, sum, i;
-
-  min = max = sum = p[0];
-  for (i=1; i < 4; i++) {
-    sum += p[i];
-    if (min > p[i]) min = p[i];
-    if (max < p[i]) max = p[i];
-  }
-  return (sum - min - max) >> 1;
-}
-
-void CLASS fill_holes (int holes)
-{
-  int row, col, val[4];
-
-  for (row=2; row < height-2; row++) {
-    if (!HOLE(row)) continue;
-    for (col=1; col < width-1; col+=4) {
-      val[0] = BAYER(row-1,col-1);
-      val[1] = BAYER(row-1,col+1);
-      val[2] = BAYER(row+1,col-1);
-      val[3] = BAYER(row+1,col+1);
-      BAYER(row,col) = median4(val);
-    }
-    for (col=2; col < width-2; col+=4)
-      if (HOLE(row-2) || HOLE(row+2))
-	BAYER(row,col) = (BAYER(row,col-2) + BAYER(row,col+2)) >> 1;
-      else {
-	val[0] = BAYER(row,col-2);
-	val[1] = BAYER(row,col+2);
-	val[2] = BAYER(row-2,col);
-	val[3] = BAYER(row+2,col);
-	BAYER(row,col) = median4(val);
-      }
-  }
-}
-
-void CLASS smal_v9_load_raw()
-{
-  unsigned seg[256][2], offset, nseg, holes, i;
-
-  fseek (ifp, 67, SEEK_SET);
-  offset = get4();
-  nseg = fgetc(ifp);
-  fseek (ifp, offset, SEEK_SET);
-  for (i=0; i < nseg*2; i++)
-    seg[0][i] = get4() + data_offset*(i & 1);
-  fseek (ifp, 78, SEEK_SET);
-  holes = fgetc(ifp);
-  fseek (ifp, 88, SEEK_SET);
-  seg[nseg][0] = raw_height * raw_width;
-  seg[nseg][1] = get4() + data_offset;
-  for (i=0; i < nseg; i++)
-    smal_decode_segment (seg+i, holes);
-  if (holes) fill_holes (holes);
-}
-
-/* BEGIN GPL BLOCK */
-
-void CLASS foveon_decoder (unsigned huff[1024], unsigned code)
-{
-  struct decode *cur;
-  int i, len;
-
-  cur = free_decode++;
-  if (free_decode > first_decode+2048) {
-    fprintf (stderr, "%s: decoder table overflow\n", ifname);
-    longjmp (failure, 2);
-  }
-  if (code)
-    for (i=0; i < 1024; i++)
-      if (huff[i] == code) {
-	cur->leaf = i;
-	return;
-      }
-  if ((len = code >> 27) > 26) return;
-  code = (len+1) << 27 | (code & 0x3ffffff) << 1;
-
-  cur->branch[0] = free_decode;
-  foveon_decoder (huff, code);
-  cur->branch[1] = free_decode;
-  foveon_decoder (huff, code+1);
-}
-
-void CLASS foveon_load_camf()
-{
-  unsigned key, i, val;
-
-  fseek (ifp, meta_offset, SEEK_SET);
-  key = get4();
-  fread (meta_data, 1, meta_length, ifp);
-  for (i=0; i < meta_length; i++) {
-    key = (key * 1597 + 51749) % 244944;
-    val = key * (INT64) 301593171 >> 24;
-    meta_data[i] ^= ((((key << 8) - val) >> 1) + val) >> 17;
-  }
-}
-
-void CLASS foveon_load_raw()
-{
-  struct decode *dindex;
-  short diff[1024], pred[3];
-  unsigned huff[1024], bitbuf=0;
-  int fixed, row, col, bit=-1, c, i;
-
-  fixed = get4();
-  read_shorts ((ushort *) diff, 1024);
-  if (!fixed) {
-    for (i=0; i < 1024; i++)
-      huff[i] = get4();
-    init_decoder();
-    foveon_decoder (huff, 0);
-  }
-  for (row=0; row < height; row++) {
-    memset (pred, 0, sizeof pred);
-    if (!bit && !fixed) get4();
-    for (col=bit=0; col < width; col++) {
-      if (fixed) {
-	bitbuf = get4();
-	FORC3 pred[2-c] += diff[bitbuf >> c*10 & 0x3ff];
-      }
-      else FORC3 {
-	for (dindex=first_decode; dindex->branch[0]; ) {
-	  if ((bit = (bit-1) & 31) == 31)
-	    for (i=0; i < 4; i++)
-	      bitbuf = (bitbuf << 8) + fgetc(ifp);
-	  dindex = dindex->branch[bitbuf >> bit & 1];
-	}
-	pred[c] += diff[dindex->leaf];
-      }
-      FORC3 image[row*width+col][c] = pred[c];
-    }
-  }
-  foveon_load_camf();
-  maximum = clip_max = 0xffff;
-}
-
-char * CLASS foveon_camf_param (char *block, char *param)
-{
-  unsigned idx, num;
-  char *pos, *cp, *dp;
-
-  for (idx=0; idx < meta_length; idx += sget4(pos+8)) {
-    pos = meta_data + idx;
-    if (strncmp (pos, "CMb", 3)) break;
-    if (pos[3] != 'P') continue;
-    if (strcmp (block, pos+sget4(pos+12))) continue;
-    cp = pos + sget4(pos+16);
-    num = sget4(cp);
-    dp = pos + sget4(cp+4);
-    while (num--) {
-      cp += 8;
-      if (!strcmp (param, dp+sget4(cp)))
-	return dp+sget4(cp+4);
-    }
-  }
-  return NULL;
-}
-
-void * CLASS foveon_camf_matrix (int dim[3], char *name)
-{
-  unsigned i, idx, type, ndim, size, *mat;
-  char *pos, *cp, *dp;
-
-  for (idx=0; idx < meta_length; idx += sget4(pos+8)) {
-    pos = meta_data + idx;
-    if (strncmp (pos, "CMb", 3)) break;
-    if (pos[3] != 'M') continue;
-    if (strcmp (name, pos+sget4(pos+12))) continue;
-    dim[0] = dim[1] = dim[2] = 1;
-    cp = pos + sget4(pos+16);
-    type = sget4(cp);
-    if ((ndim = sget4(cp+4)) > 3) break;
-    dp = pos + sget4(cp+8);
-    for (i=ndim; i--; ) {
-      cp += 12;
-      dim[i] = sget4(cp);
-    }
-    if ((size = dim[0]*dim[1]*dim[2]) > meta_length/4) break;
-    mat = malloc (size * 4);
-    merror (mat, "foveon_camf_matrix()");
-    for (i=0; i < size; i++)
-      if (type && type != 6)
-	mat[i] = sget4(dp + i*4);
-      else
-	mat[i] = sget4(dp + i*2) & 0xffff;
-    return mat;
-  }
-  fprintf (stderr, "%s: \"%s\" matrix not found!\n", ifname, name);
-  return NULL;
-}
-
-int CLASS foveon_fixed (void *ptr, int size, char *name)
-{
-  void *dp;
-  int dim[3];
-
-  dp = foveon_camf_matrix (dim, name);
-  if (!dp) return 0;
-  memcpy (ptr, dp, size*4);
-  free (dp);
-  return 1;
-}
-
-float CLASS foveon_avg (short *pix, int range[2], float cfilt)
-{
-  int i;
-  float val, min=FLT_MAX, max=-FLT_MAX, sum=0;
-
-  for (i=range[0]; i <= range[1]; i++) {
-    sum += val = pix[i*4] + (pix[i*4]-pix[(i-1)*4]) * cfilt;
-    if (min > val) min = val;
-    if (max < val) max = val;
-  }
-  return (sum - min - max) / (range[1] - range[0] - 1);
-}
-
-short * CLASS foveon_make_curve (double max, double mul, double filt)
-{
-  short *curve;
-  int i, size;
-  double x;
-
-  if (!filt) filt = 0.8;
-  size = 4*M_PI*max / filt;
-  curve = calloc (size+1, sizeof *curve);
-  merror (curve, "foveon_make_curve()");
-  curve[0] = size;
-  for (i=0; i < size; i++) {
-    x = i*filt/max/4;
-    curve[i+1] = (cos(x)+1)/2 * tanh(i*filt/mul) * mul + 0.5;
-  }
-  return curve;
-}
-
-void CLASS foveon_make_curves
-	(short **curvep, float dq[3], float div[3], float filt)
-{
-  double mul[3], max=0;
-  int c;
-
-  FORC3 mul[c] = dq[c]/div[c];
-  FORC3 if (max < mul[c]) max = mul[c];
-  FORC3 curvep[c] = foveon_make_curve (max, mul[c], filt);
-}
-
-int CLASS foveon_apply_curve (short *curve, int i)
-{
-  if (abs(i) >= curve[0]) return 0;
-  return i < 0 ? -curve[1-i] : curve[1+i];
-}
-
-#define image ((short (*)[4]) image)
-
-void CLASS foveon_interpolate()
-{
-  static const short hood[] = { -1,-1, -1,0, -1,1, 0,-1, 0,1, 1,-1, 1,0, 1,1 };
-  short *pix, prev[3], *curve[8], (*shrink)[3];
-  float cfilt=0, ddft[3][3][2], ppm[3][3][3];
-  float cam_xyz[3][3], correct[3][3], last[3][3], trans[3][3];
-  float chroma_dq[3], color_dq[3], diag[3][3], div[3];
-  float (*black)[3], (*sgain)[3], (*sgrow)[3];
-  float fsum[3], val, frow, num;
-  int row, col, c, i, j, diff, sgx, irow, sum, min, max, limit;
-  int dim[3], dscr[2][2], dstb[4], (*smrow[7])[3], total[4], ipix[3];
-  int work[3][3], smlast, smred, smred_p=0, dev[3];
-  int satlev[3], keep[4], active[4];
-  unsigned *badpix;
-  double dsum=0, trsum[3];
-  char str[128], *cp;
-
-  if (verbose)
-    fprintf (stderr, "Foveon interpolation...\n");
-
-  foveon_fixed (dscr, 4, "DarkShieldColRange");
-  foveon_fixed (ppm[0][0], 27, "PostPolyMatrix");
-  foveon_fixed (satlev, 3, "SaturationLevel");
-  foveon_fixed (keep, 4, "KeepImageArea");
-  foveon_fixed (active, 4, "ActiveImageArea");
-  foveon_fixed (chroma_dq, 3, "ChromaDQ");
-  foveon_fixed (color_dq, 3,
-	foveon_camf_param ("IncludeBlocks", "ColorDQ") ?
-		"ColorDQ" : "ColorDTQCamRGB");
-  if (foveon_camf_param ("IncludeBlocks", "ColumnFilter"))
-  		 foveon_fixed (&cfilt, 1, "ColumnFilter");
-
-  memset (ddft, 0, sizeof ddft);
-  if (!foveon_camf_param ("IncludeBlocks", "DarkDrift")
-	 || !foveon_fixed (ddft[1][0], 12, "DarkDrift"))
-    for (i=0; i < 2; i++) {
-      foveon_fixed (dstb, 4, i ? "DarkShieldBottom":"DarkShieldTop");
-      for (row = dstb[1]; row <= dstb[3]; row++)
-	for (col = dstb[0]; col <= dstb[2]; col++)
-	  FORC3 ddft[i+1][c][1] += (short) image[row*width+col][c];
-      FORC3 ddft[i+1][c][1] /= (dstb[3]-dstb[1]+1) * (dstb[2]-dstb[0]+1);
-    }
-
-  if (!(cp = foveon_camf_param ("WhiteBalanceIlluminants", model2)))
-  { fprintf (stderr, "%s: Invalid white balance \"%s\"\n", ifname, model2);
-    return; }
-  foveon_fixed (cam_xyz, 9, cp);
-  foveon_fixed (correct, 9,
-	foveon_camf_param ("WhiteBalanceCorrections", model2));
-  memset (last, 0, sizeof last);
-  for (i=0; i < 3; i++)
-    for (j=0; j < 3; j++)
-      FORC3 last[i][j] += correct[i][c] * cam_xyz[c][j];
-
-  sprintf (str, "%sRGBNeutral", model2);
-  if (foveon_camf_param ("IncludeBlocks", str))
-    foveon_fixed (div, 3, str);
-  else {
-    #define LAST(x,y) last[(i+x)%3][(c+y)%3]
-    for (i=0; i < 3; i++)
-      FORC3 diag[c][i] = LAST(1,1)*LAST(2,2) - LAST(1,2)*LAST(2,1);
-    #undef LAST
-    FORC3 div[c] = diag[c][0]*0.3127 + diag[c][1]*0.329 + diag[c][2]*0.3583;
-  }
-  num = 0;
-  FORC3 if (num < div[c]) num = div[c];
-  FORC3 div[c] /= num;
-
-  memset (trans, 0, sizeof trans);
-  for (i=0; i < 3; i++)
-    for (j=0; j < 3; j++)
-      FORC3 trans[i][j] += rgb_cam[i][c] * last[c][j] * div[j];
-  FORC3 trsum[c] = trans[c][0] + trans[c][1] + trans[c][2];
-  dsum = (6*trsum[0] + 11*trsum[1] + 3*trsum[2]) / 20;
-  for (i=0; i < 3; i++)
-    FORC3 last[i][c] = trans[i][c] * dsum / trsum[i];
-  memset (trans, 0, sizeof trans);
-  for (i=0; i < 3; i++)
-    for (j=0; j < 3; j++)
-      FORC3 trans[i][j] += (i==c ? 32 : -1) * last[c][j] / 30;
-
-  foveon_make_curves (curve, color_dq, div, cfilt);
-  FORC3 chroma_dq[c] /= 3;
-  foveon_make_curves (curve+3, chroma_dq, div, cfilt);
-  FORC3 dsum += chroma_dq[c] / div[c];
-  curve[6] = foveon_make_curve (dsum, dsum, cfilt);
-  curve[7] = foveon_make_curve (dsum*2, dsum*2, cfilt);
-
-  sgain = foveon_camf_matrix (dim, "SpatialGain");
-  if (!sgain) return;
-  sgrow = calloc (dim[1], sizeof *sgrow);
-  sgx = (width + dim[1]-2) / (dim[1]-1);
-
-  black = calloc (height, sizeof *black);
-  for (row=0; row < height; row++) {
-    for (i=0; i < 6; i++)
-      ddft[0][0][i] = ddft[1][0][i] +
-	row / (height-1.0) * (ddft[2][0][i] - ddft[1][0][i]);
-    FORC3 black[row][c] =
- 	( foveon_avg (image[row*width]+c, dscr[0], cfilt) +
-	  foveon_avg (image[row*width]+c, dscr[1], cfilt) * 3
-	  - ddft[0][c][0] ) / 4 - ddft[0][c][1];
-  }
-  memcpy (black, black+8, sizeof *black*8);
-  memcpy (black+height-11, black+height-22, 11*sizeof *black);
-  memcpy (last, black, sizeof last);
-
-  for (row=1; row < height-1; row++) {
-    FORC3 if (last[1][c] > last[0][c]) {
-	if (last[1][c] > last[2][c])
-	  black[row][c] = (last[0][c] > last[2][c]) ? last[0][c]:last[2][c];
-      } else
-	if (last[1][c] < last[2][c])
-	  black[row][c] = (last[0][c] < last[2][c]) ? last[0][c]:last[2][c];
-    memmove (last, last+1, 2*sizeof last[0]);
-    memcpy (last[2], black[row+1], sizeof last[2]);
-  }
-  FORC3 black[row][c] = (last[0][c] + last[1][c])/2;
-  FORC3 black[0][c] = (black[1][c] + black[3][c])/2;
-
-  val = 1 - exp(-1/24.0);
-  memcpy (fsum, black, sizeof fsum);
-  for (row=1; row < height; row++)
-    FORC3 fsum[c] += black[row][c] =
-	(black[row][c] - black[row-1][c])*val + black[row-1][c];
-  memcpy (last[0], black[height-1], sizeof last[0]);
-  FORC3 fsum[c] /= height;
-  for (row = height; row--; )
-    FORC3 last[0][c] = black[row][c] =
-	(black[row][c] - fsum[c] - last[0][c])*val + last[0][c];
-
-  memset (total, 0, sizeof total);
-  for (row=2; row < height; row+=4)
-    for (col=2; col < width; col+=4) {
-      FORC3 total[c] += (short) image[row*width+col][c];
-      total[3]++;
-    }
-  for (row=0; row < height; row++)
-    FORC3 black[row][c] += fsum[c]/2 + total[c]/(total[3]*100.0);
-
-  for (row=0; row < height; row++) {
-    for (i=0; i < 6; i++)
-      ddft[0][0][i] = ddft[1][0][i] +
-	row / (height-1.0) * (ddft[2][0][i] - ddft[1][0][i]);
-    pix = image[row*width];
-    memcpy (prev, pix, sizeof prev);
-    frow = row / (height-1.0) * (dim[2]-1);
-    if ((irow = frow) == dim[2]-1) irow--;
-    frow -= irow;
-    for (i=0; i < dim[1]; i++)
-      FORC3 sgrow[i][c] = sgain[ irow   *dim[1]+i][c] * (1-frow) +
-			  sgain[(irow+1)*dim[1]+i][c] *    frow;
-    for (col=0; col < width; col++) {
-      FORC3 {
-	diff = pix[c] - prev[c];
-	prev[c] = pix[c];
-	ipix[c] = pix[c] + floor ((diff + (diff*diff >> 14)) * cfilt
-		- ddft[0][c][1] - ddft[0][c][0] * ((float) col/width - 0.5)
-		- black[row][c] );
-      }
-      FORC3 {
-	work[0][c] = ipix[c] * ipix[c] >> 14;
-	work[2][c] = ipix[c] * work[0][c] >> 14;
-	work[1][2-c] = ipix[(c+1) % 3] * ipix[(c+2) % 3] >> 14;
-      }
-      FORC3 {
-	for (val=i=0; i < 3; i++)
-	  for (  j=0; j < 3; j++)
-	    val += ppm[c][i][j] * work[i][j];
-	ipix[c] = floor ((ipix[c] + floor(val)) *
-		( sgrow[col/sgx  ][c] * (sgx - col%sgx) +
-		  sgrow[col/sgx+1][c] * (col%sgx) ) / sgx / div[c]);
-	if (ipix[c] > 32000) ipix[c] = 32000;
-	pix[c] = ipix[c];
-      }
-      pix += 4;
-    }
-  }
-  free (black);
-  free (sgrow);
-  free (sgain);
-
-  if ((badpix = foveon_camf_matrix (dim, "BadPixels"))) {
-    for (i=0; i < dim[0]; i++) {
-      col = (badpix[i] >> 8 & 0xfff) - keep[0];
-      row = (badpix[i] >> 20       ) - keep[1];
-      if ((unsigned)(row-1) > height-3 || (unsigned)(col-1) > width-3)
-	continue;
-      memset (fsum, 0, sizeof fsum);
-      for (sum=j=0; j < 8; j++)
-	if (badpix[i] & (1 << j)) {
-	  FORC3 fsum[c] += (short)
-		image[(row+hood[j*2])*width+col+hood[j*2+1]][c];
-	  sum++;
-	}
-      if (sum) FORC3 image[row*width+col][c] = fsum[c]/sum;
-    }
-    free (badpix);
-  }
-
-  /* Array for 5x5 Gaussian averaging of red values */
-  smrow[6] = calloc (width*5, sizeof **smrow);
-  merror (smrow[6], "foveon_interpolate()");
-  for (i=0; i < 5; i++)
-    smrow[i] = smrow[6] + i*width;
-
-  /* Sharpen the reds against these Gaussian averages */
-  for (smlast=-1, row=2; row < height-2; row++) {
-    while (smlast < row+2) {
-      for (i=0; i < 6; i++)
-	smrow[(i+5) % 6] = smrow[i];
-      pix = image[++smlast*width+2];
-      for (col=2; col < width-2; col++) {
-	smrow[4][col][0] =
-	  (pix[0]*6 + (pix[-4]+pix[4])*4 + pix[-8]+pix[8] + 8) >> 4;
-	pix += 4;
-      }
-    }
-    pix = image[row*width+2];
-    for (col=2; col < width-2; col++) {
-      smred = ( 6 *  smrow[2][col][0]
-	      + 4 * (smrow[1][col][0] + smrow[3][col][0])
-	      +      smrow[0][col][0] + smrow[4][col][0] + 8 ) >> 4;
-      if (col == 2)
-	smred_p = smred;
-      i = pix[0] + ((pix[0] - ((smred*7 + smred_p) >> 3)) >> 3);
-      if (i > 32000) i = 32000;
-      pix[0] = i;
-      smred_p = smred;
-      pix += 4;
-    }
-  }
-
-  /* Adjust the brighter pixels for better linearity */
-  min = 0xffff;
-  FORC3 {
-    i = satlev[c] / div[c];
-    if (min > i) min = i;
-  }
-  limit = min * 9 >> 4;
-  for (pix=image[0]; pix < image[height*width]; pix+=4) {
-    if (pix[0] <= limit || pix[1] <= limit || pix[2] <= limit)
-      continue;
-    min = max = pix[0];
-    for (c=1; c < 3; c++) {
-      if (min > pix[c]) min = pix[c];
-      if (max < pix[c]) max = pix[c];
-    }
-    if (min >= limit*2) {
-      pix[0] = pix[1] = pix[2] = max;
-    } else {
-      i = 0x4000 - ((min - limit) << 14) / limit;
-      i = 0x4000 - (i*i >> 14);
-      i = i*i >> 14;
-      FORC3 pix[c] += (max - pix[c]) * i >> 14;
-    }
-  }
-/*
-   Because photons that miss one detector often hit another,
-   the sum R+G+B is much less noisy than the individual colors.
-   So smooth the hues without smoothing the total.
- */
-  for (smlast=-1, row=2; row < height-2; row++) {
-    while (smlast < row+2) {
-      for (i=0; i < 6; i++)
-	smrow[(i+5) % 6] = smrow[i];
-      pix = image[++smlast*width+2];
-      for (col=2; col < width-2; col++) {
-	FORC3 smrow[4][col][c] = (pix[c-4]+2*pix[c]+pix[c+4]+2) >> 2;
-	pix += 4;
-      }
-    }
-    pix = image[row*width+2];
-    for (col=2; col < width-2; col++) {
-      FORC3 dev[c] = -foveon_apply_curve (curve[7], pix[c] -
-	((smrow[1][col][c] + 2*smrow[2][col][c] + smrow[3][col][c]) >> 2));
-      sum = (dev[0] + dev[1] + dev[2]) >> 3;
-      FORC3 pix[c] += dev[c] - sum;
-      pix += 4;
-    }
-  }
-  for (smlast=-1, row=2; row < height-2; row++) {
-    while (smlast < row+2) {
-      for (i=0; i < 6; i++)
-	smrow[(i+5) % 6] = smrow[i];
-      pix = image[++smlast*width+2];
-      for (col=2; col < width-2; col++) {
-	FORC3 smrow[4][col][c] =
-		(pix[c-8]+pix[c-4]+pix[c]+pix[c+4]+pix[c+8]+2) >> 2;
-	pix += 4;
-      }
-    }
-    pix = image[row*width+2];
-    for (col=2; col < width-2; col++) {
-      for (total[3]=375, sum=60, c=0; c < 3; c++) {
-	for (total[c]=i=0; i < 5; i++)
-	  total[c] += smrow[i][col][c];
-	total[3] += total[c];
-	sum += pix[c];
-      }
-      if (sum < 0) sum = 0;
-      j = total[3] > 375 ? (sum << 16) / total[3] : sum * 174;
-      FORC3 pix[c] += foveon_apply_curve (curve[6],
-		((j*total[c] + 0x8000) >> 16) - pix[c]);
-      pix += 4;
-    }
-  }
-
-  /* Transform the image to a different colorspace */
-  for (pix=image[0]; pix < image[height*width]; pix+=4) {
-    FORC3 pix[c] -= foveon_apply_curve (curve[c], pix[c]);
-    sum = (pix[0]+pix[1]+pix[1]+pix[2]) >> 2;
-    FORC3 pix[c] -= foveon_apply_curve (curve[c], pix[c]-sum);
-    FORC3 {
-      for (dsum=i=0; i < 3; i++)
-	dsum += trans[c][i] * pix[i];
-      if (dsum < 0)  dsum = 0;
-      if (dsum > 24000) dsum = 24000;
-      ipix[c] = dsum + 0.5;
-    }
-    FORC3 pix[c] = ipix[c];
-  }
-
-  /* Smooth the image bottom-to-top and save at 1/4 scale */
-  shrink = calloc ((width/4) * (height/4), sizeof *shrink);
-  merror (shrink, "foveon_interpolate()");
-  for (row = height/4; row--; )
-    for (col=0; col < width/4; col++) {
-      ipix[0] = ipix[1] = ipix[2] = 0;
-      for (i=0; i < 4; i++)
-	for (j=0; j < 4; j++)
-	  FORC3 ipix[c] += image[(row*4+i)*width+col*4+j][c];
-      FORC3
-	if (row+2 > height/4)
-	  shrink[row*(width/4)+col][c] = ipix[c] >> 4;
-	else
-	  shrink[row*(width/4)+col][c] =
-	    (shrink[(row+1)*(width/4)+col][c]*1840 + ipix[c]*141 + 2048) >> 12;
-    }
-  /* From the 1/4-scale image, smooth right-to-left */
-  for (row=0; row < (height & ~3); row++) {
-    ipix[0] = ipix[1] = ipix[2] = 0;
-    if ((row & 3) == 0)
-      for (col = width & ~3 ; col--; )
-	FORC3 smrow[0][col][c] = ipix[c] =
-	  (shrink[(row/4)*(width/4)+col/4][c]*1485 + ipix[c]*6707 + 4096) >> 13;
-
-  /* Then smooth left-to-right */
-    ipix[0] = ipix[1] = ipix[2] = 0;
-    for (col=0; col < (width & ~3); col++)
-      FORC3 smrow[1][col][c] = ipix[c] =
-	(smrow[0][col][c]*1485 + ipix[c]*6707 + 4096) >> 13;
-
-  /* Smooth top-to-bottom */
-    if (row == 0)
-      memcpy (smrow[2], smrow[1], sizeof **smrow * width);
-    else
-      for (col=0; col < (width & ~3); col++)
-	FORC3 smrow[2][col][c] =
-	  (smrow[2][col][c]*6707 + smrow[1][col][c]*1485 + 4096) >> 13;
-
-  /* Adjust the chroma toward the smooth values */
-    for (col=0; col < (width & ~3); col++) {
-      for (i=j=30, c=0; c < 3; c++) {
-	i += smrow[2][col][c];
-	j += image[row*width+col][c];
-      }
-      j = (j << 16) / i;
-      for (sum=c=0; c < 3; c++) {
-	ipix[c] = foveon_apply_curve (curve[c+3],
-	  ((smrow[2][col][c] * j + 0x8000) >> 16) - image[row*width+col][c]);
-	sum += ipix[c];
-      }
-      sum >>= 3;
-      FORC3 {
-	i = image[row*width+col][c] + ipix[c] - sum;
-	if (i < 0) i = 0;
-	image[row*width+col][c] = i;
-      }
-    }
-  }
-  free (shrink);
-  free (smrow[6]);
-  for (i=0; i < 8; i++)
-    free (curve[i]);
-
-  /* Trim off the black border */
-  active[1] -= keep[1];
-  active[3] -= 2;
-  i = active[2] - active[0];
-  for (row = 0; row < active[3]-active[1]; row++)
-    memcpy (image[row*i], image[(row+active[1])*width+active[0]],
-	 i * sizeof *image);
-  width = i;
-  height = row;
-}
-#undef image
-
-/* END GPL BLOCK */
-
-/*
-   Seach from the current directory up to the root looking for
-   a ".badpixels" file, and fix those pixels now.
- */
-void CLASS bad_pixels()
-{
-  FILE *fp=NULL;
-  char *fname, *cp, line[128];
-  int len, time, row, col, r, c, rad, tot, n, fixed=0;
-
-  if (!filters) return;
-  for (len=16 ; ; len *= 2) {
-    fname = malloc (len);
-    if (!fname) return;
-    if (getcwd (fname, len-12)) break;
-    free (fname);
-    if (errno != ERANGE) return;
-  }
-#ifdef WIN32
-  if (fname[1] == ':')
-    memmove (fname, fname+2, len-2);
-  for (cp=fname; *cp; cp++)
-    if (*cp == '\\') *cp = '/';
-#endif
-  cp = fname + strlen(fname);
-  if (cp[-1] == '/') cp--;
-  while (*fname == '/') {
-    strcpy (cp, "/.badpixels");
-    if ((fp = fopen (fname, "r"))) break;
-    if (cp == fname) break;
-    while (*--cp != '/');
-  }
-  free (fname);
-  if (!fp) return;
-  while (fgets (line, 128, fp)) {
-    cp = strchr (line, '#');
-    if (cp) *cp = 0;
-    if (sscanf (line, "%d %d %d", &col, &row, &time) != 3) continue;
-    if ((unsigned) col >= width || (unsigned) row >= height) continue;
-    if (time > timestamp) continue;
-    for (tot=n=0, rad=1; rad < 3 && n==0; rad++)
-      for (r = row-rad; r <= row+rad; r++)
-	for (c = col-rad; c <= col+rad; c++)
-	  if ((unsigned) r < height && (unsigned) c < width &&
-		(r != row || c != col) && FC(r,c) == FC(row,col)) {
-	    tot += BAYER(r,c);
-	    n++;
-	  }
-    BAYER(row,col) = tot/n;
-    if (verbose) {
-      if (!fixed++)
-	fprintf (stderr, "Fixed bad pixels at:");
-      fprintf (stderr, " %d,%d", col, row);
-    }
-  }
-  if (fixed) fputc ('\n', stderr);
-  fclose (fp);
-}
-
-void CLASS pseudoinverse (const double (*in)[3], double (*out)[3], int size)
-{
-  double work[3][6], num;
-  int i, j, k;
-
-  for (i=0; i < 3; i++) {
-    for (j=0; j < 6; j++)
-      work[i][j] = j == i+3;
-    for (j=0; j < 3; j++)
-      for (k=0; k < size; k++)
-	work[i][j] += in[k][i] * in[k][j];
-  }
-  for (i=0; i < 3; i++) {
-    num = work[i][i];
-    for (j=0; j < 6; j++)
-      work[i][j] /= num;
-    for (k=0; k < 3; k++) {
-      if (k==i) continue;
-      num = work[k][i];
-      for (j=0; j < 6; j++)
-	work[k][j] -= work[i][j] * num;
-    }
-  }
-  for (i=0; i < size; i++)
-    for (j=0; j < 3; j++)
-      for (out[i][j]=k=0; k < 3; k++)
-	out[i][j] += work[j][k+3] * in[i][k];
-}
-
-void CLASS cam_xyz_coeff (double cam_xyz[4][3])
-{
-  double cam_rgb[4][3], inverse[4][3], num;
-  int i, j, k;
-
-  for (i=0; i < colors; i++)		/* Multiply out XYZ colorspace */
-    for (j=0; j < 3; j++)
-      for (cam_rgb[i][j] = k=0; k < 3; k++)
-	cam_rgb[i][j] += cam_xyz[i][k] * xyz_rgb[k][j];
-
-  for (i=0; i < colors; i++) {		/* Normalize cam_rgb so that */
-    for (num=j=0; j < 3; j++)		/* cam_rgb * (1,1,1) is (1,1,1,1) */
-      num += cam_rgb[i][j];
-    for (j=0; j < 3; j++)
-      cam_rgb[i][j] /= num;
-    pre_mul[i] = 1 / num;
-  }
-  pseudoinverse ((const double (*)[3]) cam_rgb, inverse, colors);
-  for (raw_color = i=0; i < 3; i++)
-    for (j=0; j < colors; j++)
-      rgb_cam[i][j] = inverse[j][i];
-}
-
-#ifdef COLORCHECK
-void CLASS colorcheck()
-{
-#define NSQ 24
-// Coordinates of the GretagMacbeth ColorChecker squares
-// width, height, 1st_column, 1st_row
-  static const int cut[NSQ][4] = {
-    { 241, 231, 234, 274 },
-    { 251, 235, 534, 274 },
-    { 255, 239, 838, 272 },
-    { 255, 240, 1146, 274 },
-    { 251, 237, 1452, 278 },
-    { 243, 238, 1758, 288 },
-    { 253, 253, 218, 558 },
-    { 255, 249, 524, 562 },
-    { 261, 253, 830, 562 },
-    { 260, 255, 1144, 564 },
-    { 261, 255, 1450, 566 },
-    { 247, 247, 1764, 576 },
-    { 255, 251, 212, 862 },
-    { 259, 259, 518, 862 },
-    { 263, 261, 826, 864 },
-    { 265, 263, 1138, 866 },
-    { 265, 257, 1450, 872 },
-    { 257, 255, 1762, 874 },
-    { 257, 253, 212, 1164 },
-    { 262, 251, 516, 1172 },
-    { 263, 257, 826, 1172 },
-    { 263, 255, 1136, 1176 },
-    { 255, 252, 1452, 1182 },
-    { 257, 253, 1760, 1180 } };
-// ColorChecker Chart under 6500-kelvin illumination
-  static const double gmb_xyz[NSQ][3] = {
-    { 11.078,  9.870,  6.738 },		// Dark Skin
-    { 37.471, 35.004, 26.057 },		// Light Skin
-    { 18.187, 19.306, 35.425 },		// Blue Sky
-    { 10.825, 13.827,  7.600 },		// Foliage
-    { 24.769, 23.304, 43.943 },		// Blue Flower
-    { 31.174, 42.684, 45.277 },		// Bluish Green
-    { 36.238, 29.188,  6.222 },		// Orange
-    { 13.661, 11.845, 38.929 },		// Purplish Blue
-    { 27.999, 19.272, 14.265 },		// Moderate Red
-    {  8.398,  6.309, 14.211 },		// Purple
-    { 33.692, 44.346, 11.288 },		// Yellow Green
-    { 45.000, 42.144,  8.429 },		// Orange Yellow
-    {  8.721,  6.130, 31.181 },		// Blue
-    { 14.743, 24.049,  9.778 },		// Green
-    { 19.777, 11.530,  5.101 },		// Red
-    { 55.978, 59.599, 10.047 },		// Yellow
-    { 29.421, 19.271, 31.167 },		// Magenta
-    { 13.972, 18.952, 37.646 },		// Cyan
-    { 82.819, 87.727, 94.479 },		// White
-    { 55.950, 58.959, 64.375 },		// Neutral 8
-    { 32.877, 34.536, 38.097 },		// Neutral 6.5
-    { 18.556, 19.701, 21.487 },		// Neutral 5
-    {  8.353,  8.849,  9.812 },		// Neutral 3.5
-    {  2.841,  2.980,  3.332 } };	// Black
-  double inverse[NSQ][3], gmb_cam[NSQ][4], cam_xyz[4][3];
-  double num, error, minerr=DBL_MAX, best[4][3];
-  int b, c, i, j, k, sq, row, col, count[4];
-
-  memset (gmb_cam, 0, sizeof gmb_cam);
-  for (sq=0; sq < NSQ; sq++) {
-    FORCC count[c] = 0;
-    for   (row=cut[sq][3]; row < cut[sq][3]+cut[sq][1]; row++)
-      for (col=cut[sq][2]; col < cut[sq][2]+cut[sq][0]; col++) {
-	c = FC(row,col);
-	if (c >= colors) c -= 2;
-	gmb_cam[sq][c] += BAYER(row,col);
-	count[c]++;
-      }
-    FORCC gmb_cam[sq][c] /= count[c];
-  }
-  for (b=0; b < 2000; b++) {
-    pseudoinverse (gmb_xyz, inverse, NSQ);
-    for (i=0; i < colors; i++)
-      for (j=0; j < 3; j++)
-	for (cam_xyz[i][j] = k=0; k < NSQ; k++)
-	  cam_xyz[i][j] += gmb_cam[k][i] * inverse[k][j];
-
-    for (error=sq=0; sq < NSQ; sq++)
-      FORCC {
-	for (num=j=0; j < 3; j++)
-	  num += cam_xyz[c][j] * gmb_xyz[sq][j];
-	if (num < 0) num=0;
-	error += pow (num - gmb_cam[sq][c], 2);
-	gmb_cam[sq][c]--;		// for the next black value
-      }
-    if (error < minerr) {
-      black = b;
-      minerr = error;
-      memcpy (best, cam_xyz, sizeof best);
-    }
-  }
-  cam_xyz_coeff (best);
-  if (verbose) {
-    fprintf (stderr, "    { \"%s %s\",\n\t{ ", make, model);
-    num = 10000 / (best[1][0] + best[1][1] + best[1][2]);
-    FORCC for (j=0; j < 3; j++)
-      fprintf (stderr, "%d,", (int) (best[c][j] * num + 0.5));
-    fprintf (stderr, "\b } },\n");
-  }
-#undef NSQ
-}
-#endif
-
-void CLASS scale_colors()
-{
-  int row, col, c, val, shift=0;
-  int min[4], max[4], count[4];
-  double sum[4], dmin;
-
-  maximum -= black;
-  if (use_auto_wb || (use_camera_wb && camera_red == -1)) {
-    FORC4 min[c] = INT_MAX;
-    FORC4 max[c] = count[c] = sum[c] = 0;
-    for (row=0; row < height; row++)
-      for (col=0; col < width; col++)
-	FORC4 {
-	  val = image[row*width+col][c];
-	  if (!val) continue;
-	  if (min[c] > val) min[c] = val;
-	  if (max[c] < val) max[c] = val;
-	  val -= black;
-	  if (val > maximum-25) continue;
-	  if (val < 0) val = 0;
-	  sum[c] += val;
-	  count[c]++;
-	}
-    FORC4 if (sum[c]) pre_mul[c] = count[c] / sum[c];
-  }
-  if (use_camera_wb && camera_red != -1) {
-    FORC4 count[c] = sum[c] = 0;
-    for (row=0; row < 8; row++)
-      for (col=0; col < 8; col++) {
-	c = FC(row,col);
-	if ((val = white[row][col] - black) > 0)
-	  sum[c] += val;
-	count[c]++;
-      }
-    if (sum[0] && sum[1] && sum[2] && sum[3])
-      FORC4 pre_mul[c] = count[c] / sum[c];
-    else if (camera_red && camera_blue)
-      memcpy (pre_mul, cam_mul, sizeof pre_mul);
-    else
-      fprintf (stderr, "%s: Cannot use camera white balance.\n", ifname);
-  }
-  if (raw_color) {
-    pre_mul[0] *= red_scale;
-    pre_mul[2] *= blue_scale;
-  }
-  if (pre_mul[3] == 0) pre_mul[3] = colors < 4 ? pre_mul[1] : 1;
-  dmin = DBL_MAX;
-  FORC4 if (dmin > pre_mul[c])
-	    dmin = pre_mul[c];
-  FORC4 pre_mul[c] /= dmin;
-
-  while (maximum << shift < 0x8000) shift++;
-  FORC4 pre_mul[c] *= 1 << shift;
-  maximum <<= shift;
-
-  if (write_fun != write_ppm || bright < 1) {
-    maximum *= bright;
-    if (maximum > 0xffff)
-	maximum = 0xffff;
-    FORC4 pre_mul[c] *= bright;
-  }
-  if (verbose) {
-    fprintf (stderr, "Scaling with black=%d, pre_mul[] =", black);
-    FORC4 fprintf (stderr, " %f", pre_mul[c]);
-    fputc ('\n', stderr);
-  }
-  clip_max = clip_color ? maximum : 0xffff;
-  for (row=0; row < height; row++)
-    for (col=0; col < width; col++)
-      FORC4 {
-	val = image[row*width+col][c];
-	if (!val) continue;
-	val -= black;
-	val *= pre_mul[c];
-	image[row*width+col][c] = CLIP(val);
-      }
-  if (filters && colors == 3) {
-    if (four_color_rgb) {
-      colors++;
-      FORC3 rgb_cam[c][3] = rgb_cam[c][1] /= 2;
-    } else {
-      for (row = FC(1,0) >> 1; row < height; row+=2)
-	for (col = FC(row,1) & 1; col < width; col+=2)
-	  image[row*width+col][1] = image[row*width+col][3];
-      filters &= ~((filters & 0x55555555) << 1);
-    }
-  }
-}
-
-void CLASS border_interpolate (int border)
-{
-  unsigned row, col, y, x, c, sum[8];
-
-  for (row=0; row < height; row++)
-    for (col=0; col < width; col++) {
-      if (col==border && row >= border && row < height-border)
-	col = width-border;
-      memset (sum, 0, sizeof sum);
-      for (y=row-1; y != row+2; y++)
-	for (x=col-1; x != col+2; x++)
-	  if (y < height && x < width) {
-	    sum[FC(y,x)] += BAYER(y,x);
-	    sum[FC(y,x)+4]++;
-	  }
-      FORCC if (c != FC(row,col))
-	image[row*width+col][c] = sum[c] / sum[c+4];
-    }
-}
-
-void CLASS lin_interpolate()
-{
-  int code[8][2][32], *ip, sum[4];
-  int c, i, x, y, row, col, shift, color;
-  ushort *pix;
-
-  if (verbose) fprintf (stderr, "Bilinear interpolation...\n");
-
-  border_interpolate(1);
-  for (row=0; row < 8; row++)
-    for (col=0; col < 2; col++) {
-      ip = code[row][col];
-      memset (sum, 0, sizeof sum);
-      for (y=-1; y <= 1; y++)
-	for (x=-1; x <= 1; x++) {
-	  shift = (y==0) + (x==0);
-	  if (shift == 2) continue;
-	  color = FC(row+y,col+x);
-	  *ip++ = (width*y + x)*4 + color;
-	  *ip++ = shift;
-	  *ip++ = color;
-	  sum[color] += 1 << shift;
-	}
-      FORCC
-	if (c != FC(row,col)) {
-	  *ip++ = c;
-	  *ip++ = sum[c];
-	}
-    }
-  for (row=1; row < height-1; row++)
-    for (col=1; col < width-1; col++) {
-      pix = image[row*width+col];
-      ip = code[row & 7][col & 1];
-      memset (sum, 0, sizeof sum);
-      for (i=8; i--; ip+=3)
-	sum[ip[2]] += pix[ip[0]] << ip[1];
-      for (i=colors; --i; ip+=2)
-	pix[ip[0]] = sum[ip[0]] / ip[1];
-    }
-}
-
-/*
-   This algorithm is officially called:
-
-   "Interpolation using a Threshold-based variable number of gradients"
-
-   described in http://www-ise.stanford.edu/~tingchen/algodep/vargra.html
-
-   I've extended the basic idea to work with non-Bayer filter arrays.
-   Gradients are numbered clockwise from NW=0 to W=7.
- */
-void CLASS vng_interpolate()
-{
-  static const signed char *cp, terms[] = {
-    -2,-2,+0,-1,0,0x01, -2,-2,+0,+0,1,0x01, -2,-1,-1,+0,0,0x01,
-    -2,-1,+0,-1,0,0x02, -2,-1,+0,+0,0,0x03, -2,-1,+0,+1,1,0x01,
-    -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,
-    -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,
-    -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,
-    -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,
-    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,
-    -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,
-    -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,
-    -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,
-    -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,
-    -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,
-    -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,
-    +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,
-    +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,
-    +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,
-    +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,
-    +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,
-    +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,
-    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,
-    +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,
-    +1,+0,+2,+1,0,0x10
-  }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };
-  ushort (*brow[5])[4], *pix;
-  int code[8][2][320], *ip, gval[8], gmin, gmax, sum[4];
-  int row, col, x, y, x1, x2, y1, y2, t, weight, grads, color, diag;
-  int g, diff, thold, num, c;
-
-  lin_interpolate();
-  if (verbose) fprintf (stderr, "VNG interpolation...\n");
-
-  for (row=0; row < 8; row++) {		/* Precalculate for VNG */
-    for (col=0; col < 2; col++) {
-      ip = code[row][col];
-      for (cp=terms, t=0; t < 64; t++) {
-	y1 = *cp++;  x1 = *cp++;
-	y2 = *cp++;  x2 = *cp++;
-	weight = *cp++;
-	grads = *cp++;
-	color = FC(row+y1,col+x1);
-	if (FC(row+y2,col+x2) != color) continue;
-	diag = (FC(row,col+1) == color && FC(row+1,col) == color) ? 2:1;
-	if (abs(y1-y2) == diag && abs(x1-x2) == diag) continue;
-	*ip++ = (y1*width + x1)*4 + color;
-	*ip++ = (y2*width + x2)*4 + color;
-	*ip++ = weight;
-	for (g=0; g < 8; g++)
-	  if (grads & 1<<g) *ip++ = g;
-	*ip++ = -1;
-      }
-      *ip++ = INT_MAX;
-      for (cp=chood, g=0; g < 8; g++) {
-	y = *cp++;  x = *cp++;
-	*ip++ = (y*width + x) * 4;
-	color = FC(row,col);
-	if (FC(row+y,col+x) != color && FC(row+y*2,col+x*2) == color)
-	  *ip++ = (y*width + x) * 8 + color;
-	else
-	  *ip++ = 0;
-      }
-    }
-  }
-  brow[4] = calloc (width*3, sizeof **brow);
-  merror (brow[4], "vng_interpolate()");
-  for (row=0; row < 3; row++)
-    brow[row] = brow[4] + row*width;
-  for (row=2; row < height-2; row++) {		/* Do VNG interpolation */
-    for (col=2; col < width-2; col++) {
-      pix = image[row*width+col];
-      ip = code[row & 7][col & 1];
-      memset (gval, 0, sizeof gval);
-      while ((g = ip[0]) != INT_MAX) {		/* Calculate gradients */
-	diff = ABS(pix[g] - pix[ip[1]]) << ip[2];
-	gval[ip[3]] += diff;
-	ip += 5;
-	if ((g = ip[-1]) == -1) continue;
-	gval[g] += diff;
-	while ((g = *ip++) != -1)
-	  gval[g] += diff;
-      }
-      ip++;
-      gmin = gmax = gval[0];			/* Choose a threshold */
-      for (g=1; g < 8; g++) {
-	if (gmin > gval[g]) gmin = gval[g];
-	if (gmax < gval[g]) gmax = gval[g];
-      }
-      if (gmax == 0) {
-	memcpy (brow[2][col], pix, sizeof *image);
-	continue;
-      }
-      thold = gmin + (gmax >> 1);
-      memset (sum, 0, sizeof sum);
-      color = FC(row,col);
-      for (num=g=0; g < 8; g++,ip+=2) {		/* Average the neighbors */
-	if (gval[g] <= thold) {
-	  FORCC
-	    if (c == color && ip[1])
-	      sum[c] += (pix[c] + pix[ip[1]]) >> 1;
-	    else
-	      sum[c] += pix[ip[0] + c];
-	  num++;
-	}
-      }
-      FORCC {					/* Save to buffer */
-	t = pix[color];
-	if (c != color)
-	  t += (sum[c] - sum[color]) / num;
-	brow[2][col][c] = CLIP(t);
-      }
-    }
-    if (row > 3)				/* Write buffer to image */
-      memcpy (image[(row-2)*width+2], brow[0]+2, (width-4)*sizeof *image);
-    for (g=0; g < 4; g++)
-      brow[(g-1) & 3] = brow[g];
-  }
-  memcpy (image[(row-2)*width+2], brow[0]+2, (width-4)*sizeof *image);
-  memcpy (image[(row-1)*width+2], brow[1]+2, (width-4)*sizeof *image);
-  free (brow[4]);
-}
-
-void CLASS cam_to_cielab (ushort cam[4], float lab[3])
-{
-  int c, i, j, k;
-  float r, xyz[3];
-  static const float d65[3] = { 0.950456, 1, 1.088754 };
-  static float cbrt[0x10000], xyz_cam[3][4];
-
-  if (cam == NULL) {
-    for (i=0; i < 0x10000; i++) {
-      r = (float) i / maximum;
-      cbrt[i] = r > 0.008856 ? pow(r,1/3.0) : 7.787*r + 16/116.0;
-    }
-    for (i=0; i < 3; i++)
-      for (j=0; j < colors; j++)
-        for (xyz_cam[i][j] = k=0; k < 3; k++)
-	  xyz_cam[i][j] += xyz_rgb[i][k] * rgb_cam[k][j] / d65[i];
-  } else {
-    for (i=0; i < 3; i++) {
-      for (xyz[i]=0.5, c=0; c < colors; c++)
-	xyz[i] += xyz_cam[i][c] * cam[c];
-      xyz[i] = cbrt[CLIP((int) xyz[i])];
-    }
-    lab[0] = 116 * xyz[1] - 16;
-    lab[1] = 500 * (xyz[0] - xyz[1]);
-    lab[2] = 200 * (xyz[1] - xyz[2]);
-  }
-}
-
-/*
-   Adaptive Homogeneity-Directed interpolation is based on
-   the work of Keigo Hirakawa, Thomas Parks, and Paul Lee.
- */
-#define TS 256		/* Tile Size */
-
-void CLASS ahd_interpolate()
-{
-  int i, j, top, left, row, col, tr, tc, fc, c, d, val, hm[2];
-  ushort (*pix)[4], (*rix)[3];
-  static const int dir[4] = { -1, 1, -TS, TS };
-  unsigned ldiff[2][4], abdiff[2][4], leps, abeps;
-  float flab[3];
-  ushort (*rgb)[TS][TS][3];
-   short (*lab)[TS][TS][3];
-   char (*homo)[TS][TS], *buffer;
-
-  if (verbose) fprintf (stderr, "AHD interpolation...\n");
-
-  border_interpolate(3);
-  buffer = malloc (26*TS*TS);			/* 1664 kB */
-  merror (buffer, "ahd_interpolate()");
-  rgb  = (void *) buffer;
-  lab  = (void *) (buffer + 12*TS*TS);
-  homo = (void *) (buffer + 24*TS*TS);
-
-  for (top=0; top < height; top += TS-6)
-    for (left=0; left < width; left += TS-6) {
-      memset (rgb, 0, 12*TS*TS);
-
-/*  Interpolate green horizontally and vertically:		*/
-      for (row = top < 2 ? 2:top; row < top+TS && row < height-2; row++) {
-	col = left + (FC(row,left) == 1);
-	if (col < 2) col += 2;
-	for (fc = FC(row,col); col < left+TS && col < width-2; col+=2) {
-	  pix = image + row*width+col;
-	  val = ((pix[-1][1] + pix[0][fc] + pix[1][1]) * 2
-		- pix[-2][fc] - pix[2][fc]) >> 2;
-	  rgb[0][row-top][col-left][1] = ULIM(val,pix[-1][1],pix[1][1]);
-	  val = ((pix[-width][1] + pix[0][fc] + pix[width][1]) * 2
-		- pix[-2*width][fc] - pix[2*width][fc]) >> 2;
-	  rgb[1][row-top][col-left][1] = ULIM(val,pix[-width][1],pix[width][1]);
-	}
-      }
-/*  Interpolate red and blue, and convert to CIELab:		*/
-      for (d=0; d < 2; d++)
-	for (row=top+1; row < top+TS-1 && row < height-1; row++)
-	  for (col=left+1; col < left+TS-1 && col < width-1; col++) {
-	    pix = image + row*width+col;
-	    rix = &rgb[d][row-top][col-left];
-	    if ((c = 2 - FC(row,col)) == 1) {
-	      c = FC(row+1,col);
-	      val = pix[0][1] + (( pix[-1][2-c] + pix[1][2-c]
-				 - rix[-1][1] - rix[1][1] ) >> 1);
-	      rix[0][2-c] = CLIP(val);
-	      val = pix[0][1] + (( pix[-width][c] + pix[width][c]
-				 - rix[-TS][1] - rix[TS][1] ) >> 1);
-	    } else
-	      val = rix[0][1] + (( pix[-width-1][c] + pix[-width+1][c]
-				 + pix[+width-1][c] + pix[+width+1][c]
-				 - rix[-TS-1][1] - rix[-TS+1][1]
-				 - rix[+TS-1][1] - rix[+TS+1][1] + 1) >> 2);
-	    rix[0][c] = CLIP(val);
-	    c = FC(row,col);
-	    rix[0][c] = pix[0][c];
-	    cam_to_cielab (rix[0], flab);
-	    FORC3 lab[d][row-top][col-left][c] = 64*flab[c];
-	  }
-/*  Build homogeneity maps from the CIELab images:		*/
-      memset (homo, 0, 2*TS*TS);
-      for (row=top+2; row < top+TS-2 && row < height; row++) {
-	tr = row-top;
-	for (col=left+2; col < left+TS-2 && col < width; col++) {
-	  tc = col-left;
-	  for (d=0; d < 2; d++)
-	    for (i=0; i < 4; i++)
-	      ldiff[d][i] = ABS(lab[d][tr][tc][0]-lab[d][tr][tc+dir[i]][0]);
-	  leps = MIN(MAX(ldiff[0][0],ldiff[0][1]),
-		     MAX(ldiff[1][2],ldiff[1][3]));
-	  for (d=0; d < 2; d++)
-	    for (i=0; i < 4; i++)
-	      if (i >> 1 == d || ldiff[d][i] <= leps)
-		abdiff[d][i] = SQR(lab[d][tr][tc][1]-lab[d][tr][tc+dir[i]][1])
-			     + SQR(lab[d][tr][tc][2]-lab[d][tr][tc+dir[i]][2]);
-	  abeps = MIN(MAX(abdiff[0][0],abdiff[0][1]),
-		      MAX(abdiff[1][2],abdiff[1][3]));
-	  for (d=0; d < 2; d++)
-	    for (i=0; i < 4; i++)
-	      if (ldiff[d][i] <= leps && abdiff[d][i] <= abeps)
-		homo[d][tr][tc]++;
-	}
-      }
-/*  Combine the most homogenous pixels for the final result:	*/
-      for (row=top+3; row < top+TS-3 && row < height-3; row++) {
-	tr = row-top;
-	for (col=left+3; col < left+TS-3 && col < width-3; col++) {
-	  tc = col-left;
-	  for (d=0; d < 2; d++)
-	    for (hm[d]=0, i=tr-1; i <= tr+1; i++)
-	      for (j=tc-1; j <= tc+1; j++)
-		hm[d] += homo[d][i][j];
-	  if (hm[0] != hm[1])
-	    FORC3 image[row*width+col][c] = rgb[hm[1] > hm[0]][tr][tc][c];
-	  else
-	    FORC3 image[row*width+col][c] =
-		(rgb[0][tr][tc][c] + rgb[1][tr][tc][c]) >> 1;
-	}
-      }
-    }
-  free (buffer);
-}
-#undef TS
-
-/*
-   Bilateral Filtering was developed by C. Tomasi and R. Manduchi.
- */
-void CLASS bilateral_filter()
-{
-  float (**window)[7], *kernel, scale_r, elut[1024], sum[5];
-  int c, i, wr, ws, wlast, row, col, y, x;
-  unsigned sep;
-
-  if (verbose) fprintf (stderr, "Bilateral filtering...\n");
-
-  wr = ceil(sigma_d*2);		/* window radius */
-  ws = 2*wr + 1;		/* window size */
-  window = calloc ((ws+1)*sizeof  *window +
-		 ws*width*sizeof **window + ws*sizeof *kernel, 1);
-  merror (window, "bilateral_filter()");
-  for (i=0; i <= ws; i++)
-    window[i] = (float(*)[7]) (window+ws+1) + i*width;
-  kernel = (float *) window[ws] + wr;
-  for (i=-wr; i <= wr; i++)
-    kernel[i] = 256 / (2*SQR(sigma_d)) * i*i + 0.25;
-  scale_r     = 256 / (2*SQR(sigma_r));
-  for (i=0; i < 1024; i++)
-    elut[i] = exp (-i/256.0);
-
-  for (wlast=-1, row=0; row < height; row++) {
-    while (wlast < row+wr) {
-      wlast++;
-      for (i=0; i <= ws; i++)	/* rotate window rows */
-	window[(ws+i) % (ws+1)] = window[i];
-      if (wlast < height)
-	for (col=0; col < width; col++) {
-	  FORCC window[ws-1][col][c] = image[wlast*width+col][c];
-	  cam_to_cielab (image[wlast*width+col], window[ws-1][col]+4);
-	}
-    }
-    for (col=0; col < width; col++) {
-      memset (sum, 0, sizeof sum);
-      for (y=-wr; y <= wr; y++)
-	if ((unsigned)(row+y) < height)
-	  for (x=-wr; x <= wr; x++)
-	    if ((unsigned)(col+x) < width) {
-	      sep = ( SQR(window[wr+y][col+x][4] - window[wr][col][4])
-		    + SQR(window[wr+y][col+x][5] - window[wr][col][5])
-		    + SQR(window[wr+y][col+x][6] - window[wr][col][6]) )
-			* scale_r + kernel[y] + kernel[x];
-	      if (sep < 1024) {
-		FORCC sum[c] += elut[sep] * window[wr+y][col+x][c];
-		sum[4] += elut[sep];
-	      }
-	    }
-      FORCC image[row*width+col][c] = sum[c]/sum[4];
-    }
-  }
-  free (window);
-}
-
-void CLASS parse_makernote()
-{
-  static const uchar xlat[2][256] = {
-  { 0xc1,0xbf,0x6d,0x0d,0x59,0xc5,0x13,0x9d,0x83,0x61,0x6b,0x4f,0xc7,0x7f,0x3d,0x3d,
-    0x53,0x59,0xe3,0xc7,0xe9,0x2f,0x95,0xa7,0x95,0x1f,0xdf,0x7f,0x2b,0x29,0xc7,0x0d,
-    0xdf,0x07,0xef,0x71,0x89,0x3d,0x13,0x3d,0x3b,0x13,0xfb,0x0d,0x89,0xc1,0x65,0x1f,
-    0xb3,0x0d,0x6b,0x29,0xe3,0xfb,0xef,0xa3,0x6b,0x47,0x7f,0x95,0x35,0xa7,0x47,0x4f,
-    0xc7,0xf1,0x59,0x95,0x35,0x11,0x29,0x61,0xf1,0x3d,0xb3,0x2b,0x0d,0x43,0x89,0xc1,
-    0x9d,0x9d,0x89,0x65,0xf1,0xe9,0xdf,0xbf,0x3d,0x7f,0x53,0x97,0xe5,0xe9,0x95,0x17,
-    0x1d,0x3d,0x8b,0xfb,0xc7,0xe3,0x67,0xa7,0x07,0xf1,0x71,0xa7,0x53,0xb5,0x29,0x89,
-    0xe5,0x2b,0xa7,0x17,0x29,0xe9,0x4f,0xc5,0x65,0x6d,0x6b,0xef,0x0d,0x89,0x49,0x2f,
-    0xb3,0x43,0x53,0x65,0x1d,0x49,0xa3,0x13,0x89,0x59,0xef,0x6b,0xef,0x65,0x1d,0x0b,
-    0x59,0x13,0xe3,0x4f,0x9d,0xb3,0x29,0x43,0x2b,0x07,0x1d,0x95,0x59,0x59,0x47,0xfb,
-    0xe5,0xe9,0x61,0x47,0x2f,0x35,0x7f,0x17,0x7f,0xef,0x7f,0x95,0x95,0x71,0xd3,0xa3,
-    0x0b,0x71,0xa3,0xad,0x0b,0x3b,0xb5,0xfb,0xa3,0xbf,0x4f,0x83,0x1d,0xad,0xe9,0x2f,
-    0x71,0x65,0xa3,0xe5,0x07,0x35,0x3d,0x0d,0xb5,0xe9,0xe5,0x47,0x3b,0x9d,0xef,0x35,
-    0xa3,0xbf,0xb3,0xdf,0x53,0xd3,0x97,0x53,0x49,0x71,0x07,0x35,0x61,0x71,0x2f,0x43,
-    0x2f,0x11,0xdf,0x17,0x97,0xfb,0x95,0x3b,0x7f,0x6b,0xd3,0x25,0xbf,0xad,0xc7,0xc5,
-    0xc5,0xb5,0x8b,0xef,0x2f,0xd3,0x07,0x6b,0x25,0x49,0x95,0x25,0x49,0x6d,0x71,0xc7 },
-  { 0xa7,0xbc,0xc9,0xad,0x91,0xdf,0x85,0xe5,0xd4,0x78,0xd5,0x17,0x46,0x7c,0x29,0x4c,
-    0x4d,0x03,0xe9,0x25,0x68,0x11,0x86,0xb3,0xbd,0xf7,0x6f,0x61,0x22,0xa2,0x26,0x34,
-    0x2a,0xbe,0x1e,0x46,0x14,0x68,0x9d,0x44,0x18,0xc2,0x40,0xf4,0x7e,0x5f,0x1b,0xad,
-    0x0b,0x94,0xb6,0x67,0xb4,0x0b,0xe1,0xea,0x95,0x9c,0x66,0xdc,0xe7,0x5d,0x6c,0x05,
-    0xda,0xd5,0xdf,0x7a,0xef,0xf6,0xdb,0x1f,0x82,0x4c,0xc0,0x68,0x47,0xa1,0xbd,0xee,
-    0x39,0x50,0x56,0x4a,0xdd,0xdf,0xa5,0xf8,0xc6,0xda,0xca,0x90,0xca,0x01,0x42,0x9d,
-    0x8b,0x0c,0x73,0x43,0x75,0x05,0x94,0xde,0x24,0xb3,0x80,0x34,0xe5,0x2c,0xdc,0x9b,
-    0x3f,0xca,0x33,0x45,0xd0,0xdb,0x5f,0xf5,0x52,0xc3,0x21,0xda,0xe2,0x22,0x72,0x6b,
-    0x3e,0xd0,0x5b,0xa8,0x87,0x8c,0x06,0x5d,0x0f,0xdd,0x09,0x19,0x93,0xd0,0xb9,0xfc,
-    0x8b,0x0f,0x84,0x60,0x33,0x1c,0x9b,0x45,0xf1,0xf0,0xa3,0x94,0x3a,0x12,0x77,0x33,
-    0x4d,0x44,0x78,0x28,0x3c,0x9e,0xfd,0x65,0x57,0x16,0x94,0x6b,0xfb,0x59,0xd0,0xc8,
-    0x22,0x36,0xdb,0xd2,0x63,0x98,0x43,0xa1,0x04,0x87,0x86,0xf7,0xa6,0x26,0xbb,0xd6,
-    0x59,0x4d,0xbf,0x6a,0x2e,0xaa,0x2b,0xef,0xe6,0x78,0xb6,0x4e,0xe0,0x2f,0xdc,0x7c,
-    0xbe,0x57,0x19,0x32,0x7e,0x2a,0xd0,0xb8,0xba,0x29,0x00,0x3c,0x52,0x7d,0xa8,0x49,
-    0x3b,0x2d,0xeb,0x25,0x49,0xfa,0xa3,0xaa,0x39,0xa7,0xc5,0xa7,0x50,0x11,0x36,0xfb,
-    0xc6,0x67,0x4a,0xf5,0xa5,0x12,0x65,0x7e,0xb0,0xdf,0xaf,0x4e,0xb3,0x61,0x7f,0x2f } };
-  unsigned base=0, offset=0, entries, tag, type, len, save, c;
-  unsigned ver97=0, serial=0, i;
-  uchar buf97[324], ci, cj, ck;
-  static const int size[] = { 1,1,1,2,4,8,1,1,2,4,8,4,8 };
-  short sorder;
-  char buf[10];
-/*
-   The MakerNote might have its own TIFF header (possibly with
-   its own byte-order!), or it might just be a table.
- */
-  sorder = order;
-  fread (buf, 1, 10, ifp);
-  if (!strncmp (buf,"KC" ,2) ||		/* these aren't TIFF format */
-      !strncmp (buf,"MLY",3)) return;
-  if (!strcmp (buf,"Nikon")) {
-    base = ftell(ifp);
-    order = get2();
-    if (get2() != 42) goto quit;
-    offset = get4();
-    fseek (ifp, offset-8, SEEK_CUR);
-  } else if (!strncmp (buf,"FUJIFILM",8) ||
-	     !strcmp  (buf,"Panasonic")) {
-    order = 0x4949;
-    fseek (ifp,  2, SEEK_CUR);
-  } else if (!strcmp (buf,"OLYMP") ||
-	     !strcmp (buf,"LEICA") ||
-	     !strcmp (buf,"EPSON"))
-    fseek (ifp, -2, SEEK_CUR);
-  else if (!strcmp (buf,"AOC") ||
-	   !strcmp (buf,"TQVC"))
-    fseek (ifp, -4, SEEK_CUR);
-  else fseek (ifp, -10, SEEK_CUR);
-
-  entries = get2();
-  while (entries--) {
-    tag  = get2();
-    type = get2();
-    len  = get4();
-    save = ftell(ifp);
-    if (len * size[type < 13 ? type:0] > 4)
-      fseek (ifp, get4()+base, SEEK_SET);
-
-    if (tag == 8 && type == 4)
-      shot_order = get4();
-    if (tag == 0xc && len == 4) {
-      camera_red  = getrat();
-      camera_blue = getrat();
-    }
-    if (tag == 0x14 && len == 2560 && type == 7) {
-      fseek (ifp, 1248, SEEK_CUR);
-      goto get2_256;
-    }
-    if (strstr(make,"PENTAX")) {
-      if (tag == 0x1b) tag = 0x1018;
-      if (tag == 0x1c) tag = 0x1017;
-    }
-    if (tag == 0x1d)
-      while ((c = fgetc(ifp)))
-	serial = serial*10 + (isdigit(c) ? c - '0' : c % 10);
-    if (tag == 0x8c)
-      nikon_curve_offset = ftell(ifp) + 2112;
-    if (tag == 0x96)
-      nikon_curve_offset = ftell(ifp) + 2;
-    if (tag == 0x97) {
-      for (i=0; i < 4; i++)
-	ver97 = (ver97 << 4) + fgetc(ifp)-'0';
-      switch (ver97) {
-	case 0x100:
-	  fseek (ifp, 68, SEEK_CUR);
-	  FORC4 cam_mul[(c >> 1) | ((c & 1) << 1)] = get2();
-	  break;
-	case 0x102:
-	  fseek (ifp, 6, SEEK_CUR);
-	  goto get2_rggb;
-	case 0x103:
-	  fseek (ifp, 16, SEEK_CUR);
-	  FORC4 cam_mul[c] = get2();
-      }
-      if (ver97 >> 8 == 2) {
-	if (ver97 != 0x205) fseek (ifp, 280, SEEK_CUR);
-	fread (buf97, 324, 1, ifp);
-      }
-    }
-    if (tag == 0xa7 && ver97 >> 8 == 2) {
-      ci = xlat[0][serial & 0xff];
-      cj = xlat[1][fgetc(ifp)^fgetc(ifp)^fgetc(ifp)^fgetc(ifp)];
-      ck = 0x60;
-      for (i=0; i < 324; i++)
-	buf97[i] ^= (cj += ci * ck++);
-      FORC4 cam_mul[c ^ (c >> 1)] =
-	sget2 (buf97 + (ver97 == 0x205 ? 14:6) + c*2);
-    }
-    if (tag == 0xe0 && len == 17) {
-      get2();
-      raw_width  = get2();
-      raw_height = get2();
-    }
-    if (tag == 0x200 && len == 4)
-      black = (get2()+get2()+get2()+get2())/4;
-    if (tag == 0x201 && len == 4)
-      goto get2_rggb;
-    if (tag == 0x401 && len == 4) {
-      black = (get4()+get4()+get4()+get4())/4;
-    }
-    if (tag == 0xe01) {		/* Nikon Capture Note */
-      type = order;
-      order = 0x4949;
-      fseek (ifp, 22, SEEK_CUR);
-      for (offset=22; offset+22 < len; offset += 22+i) {
-	tag = get4();
-	fseek (ifp, 14, SEEK_CUR);
-	i = get4()-4;
-	if (tag == 0x76a43207) flip = get2();
-	else fseek (ifp, i, SEEK_CUR);
-      }
-      order = type;
-    }
-    if (tag == 0xe80 && len == 256 && type == 7) {
-      fseek (ifp, 48, SEEK_CUR);
-      camera_red  = get2() * 508 * 1.078 / 0x10000;
-      camera_blue = get2() * 382 * 1.173 / 0x10000;
-    }
-    if (tag == 0xf00 && len == 614 && type == 7) {
-      fseek (ifp, 188, SEEK_CUR);
-      goto get2_256;
-    }
-    if (tag == 0x1017)
-      camera_red  = get2() / 256.0;
-    if (tag == 0x1018)
-      camera_blue = get2() / 256.0;
-    if (tag == 0x2011 && len == 2) {
-get2_256:
-      order = 0x4d4d;
-      camera_red  = get2() / 256.0;
-      camera_blue = get2() / 256.0;
-    }
-    if (tag == 0x4001) {
-      fseek (ifp, strstr(model,"EOS-1D") ?  68 :
-		  strstr(model,"EOS 5D") ? 126 : 50, SEEK_CUR);
-get2_rggb:
-      FORC4 cam_mul[c ^ (c >> 1)] = get2();
-    }
-    fseek (ifp, save+4, SEEK_SET);
-  }
-quit:
-  order = sorder;
-}
-
-/*
-   Since the TIFF DateTime string has no timezone information,
-   assume that the camera's clock was set to Universal Time.
- */
-void CLASS get_timestamp (int reversed)
-{
-  struct tm t;
-  char str[20];
-  int i;
-
-  if (timestamp) return;
-  str[19] = 0;
-  if (reversed)
-    for (i=19; i--; ) str[i] = fgetc(ifp);
-  else
-    fread (str, 19, 1, ifp);
-  if (sscanf (str, "%d:%d:%d %d:%d:%d", &t.tm_year, &t.tm_mon,
-	&t.tm_mday, &t.tm_hour, &t.tm_min, &t.tm_sec) != 6)
-    return;
-  t.tm_year -= 1900;
-  t.tm_mon -= 1;
-  if (mktime(&t) > 0)
-    timestamp = mktime(&t);
-}
-
-void CLASS parse_exif (int base)
-{
-  int entries, tag, type, len, val, save;
-
-  entries = get2();
-  while (entries--) {
-    tag  = get2();
-    type = get2();
-    len  = get4();
-    val  = get4();
-    save = ftell(ifp);
-    fseek (ifp, base+val, SEEK_SET);
-    if (tag == 0x9003 || tag == 0x9004)
-      get_timestamp(0);
-    if (tag == 0x927c)
-      parse_makernote();
-    fseek (ifp, save, SEEK_SET);
-  }
-}
-
-void CLASS parse_mos (int offset);
-void CLASS sony_decrypt (unsigned *data, int len, int start, int key);
-
-int CLASS parse_tiff_ifd (int base, int level)
-{
-  unsigned entries, tag, type, len, plen=16, save;
-  int done=0, use_cm=0, cfa, i, j, c;
-  static const int size[] = { 1,1,1,2,4,8,1,1,2,4,8,4,8 };
-  char software[64], *cbuf, *cp;
-  static const int flip_map[] = { 0,1,3,2,4,6,7,5 };
-  uchar cfa_pat[16], cfa_pc[] = { 0,1,2,3 }, tab[256];
-  double dblack, cc[4][4], cm[4][3], cam_xyz[4][3];
-  double ab[]={ 1,1,1,1 }, asn[] = { 0,0,0,0 }, xyz[] = { 1,1,1 };
-  unsigned *buf, sony_offset=0, sony_length=0, sony_key=0;
-  FILE *sfp;
-
-  for (j=0; j < 4; j++)
-    for (i=0; i < 4; i++)
-      cc[j][i] = i == j;
-  entries = get2();
-  if (entries > 512) return 1;
-  while (entries--) {
-    tag  = get2();
-    type = get2();
-    len  = get4();
-    save = ftell(ifp);
-    if (tag > 50700 && tag < 50800) done = 1;
-    if (len * size[type < 13 ? type:0] > 4)
-      fseek (ifp, get4()+base, SEEK_SET);
-    switch (tag) {
-      case 0x11:
-      case 0x12:
-	if (type == 3 && len == 1)
-	  cam_mul[(tag-0x11)*2] = get2() / 256.0;
-	break;
-      case 0x27:
-	if (len < 50) break;
-	fseek (ifp, 12, SEEK_CUR);
-	FORC3 cam_mul[c] = get2();
-	break;
-      case 0x2:
-      case 0x100:			/* ImageWidth */
-	if ((strcmp(make,"Canon") || level) && len == 1)
-	  raw_width = type==3 ? get2() : get4();
-	break;
-      case 0x3:
-      case 0x101:			/* ImageHeight */
-	if ((strcmp(make,"Canon") || level) && len == 1)
-	  raw_height = type==3 ? get2() : get4();
-	break;
-      case 0x102:			/* Bits per sample */
-	fuji_secondary = len == 2;
-	maximum = (1 << (tiff_bps = get2())) - 1;
-	break;
-      case 0x103:			/* Compression */
-	tiff_data_compression = get2();
-	break;
-      case 0x106:			/* Kodak color format */
-	kodak_data_compression = get2();
-	break;
-      case 0x10f:			/* Make */
-	fgets (make, 64, ifp);
-	break;
-      case 0x110:			/* Model */
-	fgets (model, 64, ifp);
-	break;
-      case 0x111:			/* StripOffset */
-	data_offset = get4();
-	break;
-      case 0x112:			/* Qt::Orientation */
-	flip = flip_map[(get2()-1) & 7];
-	break;
-      case 0x115:			/* SamplesPerPixel */
-	tiff_samples = get2();
-	break;
-      case 0x131:			/* Software tag */
-	fgets (software, 64, ifp);
-	if (!strncmp(software,"Adobe",5) ||
-	    !strncmp(software,"Bibble",6) ||
-	    !strcmp (software,"Digital Photo Professional"))
-	  make[0] = 0;
-	break;
-      case 0x132:			/* DateTime tag */
-	get_timestamp(0);
-	break;
-      case 0x144:			/* TileOffsets */
-	if (level) {
-	  data_offset = ftell(ifp);
-	} else {
-	  data_offset = get4();
-	  done = 1;
-	}
-	break;
-      case 0x14a:			/* SubIFD tag */
-	if (len > 2 && !dng_version && !strcmp(make,"Kodak"))
-	    len = 2;
-	while (len--) {
-	  i = ftell(ifp);
-	  fseek (ifp, get4()+base, SEEK_SET);
-	  if (parse_tiff_ifd (base, level+1)) break;
-	  fseek (ifp, i+4, SEEK_SET);
-	}
-	break;
-      case 29184: sony_offset = get4();  break;
-      case 29185: sony_length = get4();  break;
-      case 29217: sony_key    = get4();  break;
-      case 29443:
-	FORC4 cam_mul[c ^ (c < 2)] = get2();
-	break;
-      case 33405:			/* Model2 */
-	fgets (model2, 64, ifp);
-	break;
-      case 33422:			/* CFAPattern */
-	if ((plen=len) > 16) plen = 16;
-	fread (cfa_pat, 1, plen, ifp);
-	for (colors=cfa=i=0; i < plen; i++) {
-	  colors += !(cfa & (1 << cfa_pat[i]));
-	  cfa |= 1 << cfa_pat[i];
-	}
-	if (cfa == 070) memcpy (cfa_pc,"\003\004\005",3);	/* CMY */
-	if (cfa == 072) memcpy (cfa_pc,"\005\003\004\001",4);	/* GMCY */
-	goto guess_cfa_pc;
-      case 34310:
-	parse_mos (ftell(ifp));
-	break;
-      case 34665:			/* EXIF tag */
-	fseek (ifp, get4()+base, SEEK_SET);
-	parse_exif (base);
-	break;
-      case 37122:			/* CompressedBitsPerPixel */
-	kodak_cbpp = get4();
-	break;
-      case 37400:
-	for (raw_color = i=0; i < 3; i++) {
-	  getrat();
-	  FORC3 rgb_cam[i][c] = getrat();
-	}
-	break;
-      case 46275:
-	strcpy (make, "Imacon");
-	data_offset = ftell(ifp);
-	raw_width = 4090;
-	raw_height = len / raw_width / 2;
-	done = 1;
-	break;
-      case 50454:			/* Sinar tag */
-      case 50455:
-	if (!(cbuf = malloc(len))) break;
-	fread (cbuf, 1, len, ifp);
-	for (cp = cbuf-1; cp && cp < cbuf+len; cp = strchr(cp,'\n'))
-	  if (!strncmp (++cp,"Neutral ",8))
-	    sscanf (cp+8, "%f %f %f", cam_mul, cam_mul+1, cam_mul+2);
-	free (cbuf);
-	break;
-      case 50706:			/* DNGVersion */
-	FORC4 dng_version = (dng_version << 8) + fgetc(ifp);
-	break;
-      case 50710:			/* CFAPlaneColor */
-	if (len > 4) len = 4;
-	colors = len;
-	fread (cfa_pc, 1, colors, ifp);
-guess_cfa_pc:
-	FORCC tab[cfa_pc[c]] = c;
-	for (i=16; i--; )
-	  filters = filters << 2 | tab[cfa_pat[i % plen]];
-	break;
-      case 50711:			/* CFALayout */
-	if (get2() == 2) {
-	  fuji_width = (raw_width+1)/2;
-	  filters = 0x49494949;
-	}
-	break;
-      case 0x123:
-      case 0x90d:
-      case 50712:			/* LinearizationTable */
-	if (len > 0x1000)
-	    len = 0x1000;
-	read_shorts (curve, len);
-	for (i=len; i < 0x1000; i++)
-	  maximum = curve[i] = curve[i-1];
-	break;
-      case 50714:			/* BlackLevel */
-      case 50715:			/* BlackLevelDeltaH */
-      case 50716:			/* BlackLevelDeltaV */
-	for (dblack=i=0; i < len; i++)
-	  dblack += getrat();
-	black += dblack/len + 0.5;
-	break;
-      case 50717:			/* WhiteLevel */
-	maximum = get2();
-	break;
-      case 50718:			/* DefaultScale */
-	i  = get4();
-	j  = get4() * get4();
-	i *= get4();
-	if (i > j) xmag = i / j;
-	else	   ymag = j / i;
-	break;
-      case 50721:			/* ColorMatrix1 */
-      case 50722:			/* ColorMatrix2 */
-	FORCC for (j=0; j < 3; j++)
-	  cm[c][j] = getrat();
-	use_cm = 1;
-	break;
-      case 50723:			/* CameraCalibration1 */
-      case 50724:			/* CameraCalibration2 */
-	for (i=0; i < colors; i++)
-	  FORCC cc[i][c] = getrat();
-      case 50727:			/* AnalogBalance */
-	FORCC ab[c] = getrat();
-	break;
-      case 50728:			/* AsShotNeutral */
-	FORCC asn[c] = getrat();
-	break;
-      case 50729:			/* AsShotWhiteXY */
-	xyz[0] = getrat();
-	xyz[1] = getrat();
-	xyz[2] = 1 - xyz[0] - xyz[1];
-	break;
-      case 50740:			/* DNGPrivateData */
-	if (dng_version) break;
-	fseek (ifp, get4()+base, SEEK_SET);
-	parse_tiff_ifd (base, level+1);
-	break;
-      case 50829:			/* ActiveArea */
-	top_margin = get4();
-	left_margin = get4();
-	height = get4() - top_margin;
-	width = get4() - left_margin;
-    }
-    fseek (ifp, save+4, SEEK_SET);
-  }
-  if (sony_length && (buf = malloc(sony_length))) {
-    fseek (ifp, sony_offset, SEEK_SET);
-    fread (buf, sony_length, 1, ifp);
-    sony_decrypt (buf, sony_length/4, 1, sony_key);
-    sfp = ifp;
-    if ((ifp = tmpfile())) {
-      fwrite (buf, sony_length, 1, ifp);
-      fseek (ifp, 0, SEEK_SET);
-      parse_tiff_ifd (-sony_offset, level);
-      fclose (ifp);
-    }
-    ifp = sfp;
-    free (buf);
-  }
-  if (!(base | level | dng_version) &&
-    (strstr(make,"Minolta") || strstr(make,"MINOLTA"))) make[0] = 0;
-  for (i=0; i < colors; i++)
-    FORCC cc[i][c] *= ab[i];
-  if (use_cm) {
-    FORCC for (i=0; i < 3; i++)
-      for (cam_xyz[c][i]=j=0; j < colors; j++)
-	cam_xyz[c][i] += cc[c][j] * cm[j][i] * xyz[i];
-    cam_xyz_coeff (cam_xyz);
-  }
-  if (asn[0])
-    FORCC pre_mul[c] = 1 / asn[c];
-  if (!use_cm)
-    FORCC pre_mul[c] /= cc[c][c];
-  return done;
-}
-
-void CLASS parse_tiff (int base)
-{
-  int doff, maxifd=1000;
-
-  fseek (ifp, base, SEEK_SET);
-  order = get2();
-  if (order != 0x4949 && order != 0x4d4d) return;
-  get2();
-  while ((doff = get4()) && maxifd--) {
-    fseek (ifp, doff+base, SEEK_SET);
-    if (parse_tiff_ifd (base, 0)) break;
-    if (!dng_version && data_offset == 8) make[0] = 0;
-  }
-  if (!dng_version && !strncmp(make,"Kodak",5)) {
-    fseek (ifp, 12+base, SEEK_SET);
-    parse_tiff_ifd (base, 2);
-  }
-}
-
-void CLASS parse_minolta()
-{
-  int save, tag, len, offset, high=0, wide=0, i, c;
-
-  fseek (ifp, 4, SEEK_SET);
-  offset = get4() + 8;
-  while ((save=ftell(ifp)) < offset) {
-    tag = get4();
-    len = get4();
-    switch (tag) {
-      case 0x505244:				/* PRD */
-	fseek (ifp, 8, SEEK_CUR);
-	high = get2();
-	wide = get2();
-	break;
-      case 0x574247:				/* WBG */
-	get4();
-	i = strstr(model,"A200") ? 3:0;
-	FORC4 cam_mul[c ^ (c >> 1) ^ i] = get2();
-	break;
-      case 0x545457:				/* TTW */
-	parse_tiff (ftell(ifp));
-    }
-    fseek (ifp, save+len+8, SEEK_SET);
-  }
-  raw_height = high;
-  raw_width  = wide;
-  data_offset = offset;
-}
-
-/*
-   Many cameras have a "debug mode" that writes JPEG and raw
-   at the same time.  The raw file has no header, so try to
-   to open the matching JPEG file and read its metadata.
- */
-void CLASS parse_external_jpeg()
-{
-  char *file, *ext, *jname, *jfile, *jext;
-  FILE *save=ifp;
-
-  ext  = strrchr (ifname, '.');
-  file = strrchr (ifname, '/');
-  if (!file) file = strrchr (ifname, '\\');
-  if (!file) file = ifname-1;
-  file++;
-  if (strlen(ext) != 4 || ext-file != 8) return;
-  jname = malloc (strlen(ifname) + 1);
-  merror (jname, "parse_external()");
-  strcpy (jname, ifname);
-  jfile = file - ifname + jname;
-  jext  = ext  - ifname + jname;
-  if (strcasecmp (ext, ".jpg")) {
-    strcpy (jext, isupper(ext[1]) ? ".JPG":".jpg");
-    memcpy (jfile, file+4, 4);
-    memcpy (jfile+4, file, 4);
-  } else
-    while (isdigit(*--jext)) {
-      if (*jext != '9') {
-        (*jext)++;
-	break;
-      }
-      *jext = '0';
-    }
-  if (strcmp (jname, ifname)) {
-    if ((ifp = fopen (jname, "rb"))) {
-      if (verbose)
-	fprintf (stderr, "Reading metadata from %s...\n", jname);
-      parse_tiff (12);
-      fclose (ifp);
-    }
-  }
-  if (!timestamp)
-    fprintf (stderr, "Failed to read metadata from %s\n", jname);
-  free (jname);
-  ifp = save;
-}
-
-/*
-   CIFF block 0x1030 contains an 8x8 white sample.
-   Load this into white[][] for use in scale_colors().
- */
-void CLASS ciff_block_1030()
-{
-  static const ushort key[] = { 0x410, 0x45f3 };
-  int i, bpp, row, col, vbits=0;
-  unsigned long bitbuf=0;
-
-  get2();
-  if (get4() != 0x80008) return;
-  if (get4() == 0) return;
-  bpp = get2();
-  if (bpp != 10 && bpp != 12) return;
-  for (i=row=0; row < 8; row++)
-    for (col=0; col < 8; col++) {
-      if (vbits < bpp) {
-	bitbuf = bitbuf << 16 | (get2() ^ key[i++ & 1]);
-	vbits += 16;
-      }
-      white[row][col] =
-	bitbuf << (LONG_BIT - vbits) >> (LONG_BIT - bpp);
-      vbits -= bpp;
-    }
-}
-
-/*
-   Parse a CIFF file, better known as Canon CRW format.
- */
-void CLASS parse_ciff (int offset, int length)
-{
-  int tboff, nrecs, i, c, type, len, roff, aoff, save, wbi=-1;
-  static const int remap[] = { 1,2,3,4,5,1 };
-  static const int remap_10d[] = { 0,1,3,4,5,6,0,0,2,8 };
-  static const int remap_s70[] = { 0,1,2,9,4,3,6,7,8,9,10,0,0,0,7,0,0,8 };
-  ushort key[] = { 0x410, 0x45f3 };
-
-  if (strcmp(model,"Canon PowerShot G6") &&
-      strcmp(model,"Canon PowerShot S60") &&
-      strcmp(model,"Canon PowerShot S70") &&
-      strcmp(model,"Canon PowerShot Pro1"))
-    key[0] = key[1] = 0;
-  fseek (ifp, offset+length-4, SEEK_SET);
-  tboff = get4() + offset;
-  fseek (ifp, tboff, SEEK_SET);
-  nrecs = get2();
-  if (nrecs > 100) return;
-  for (i = 0; i < nrecs; i++) {
-    type = get2();
-    len  = get4();
-    roff = get4();
-    aoff = offset + roff;
-    save = ftell(ifp);
-    if (type == 0x080a) {		/* Get the camera make and model */
-      fseek (ifp, aoff, SEEK_SET);
-      fread (make, 64, 1, ifp);
-      fseek (ifp, aoff+strlen(make)+1, SEEK_SET);
-      fread (model, 64, 1, ifp);
-    }
-    if (type == 0x102a) {		/* Find the White Balance index */
-      fseek (ifp, aoff+14, SEEK_SET);	/* 0=auto, 1=daylight, 2=cloudy ... */
-      wbi = get2();
-      if (((!strcmp(model,"Canon EOS DIGITAL REBEL") ||
-	    !strcmp(model,"Canon EOS 300D DIGITAL"))) && wbi == 6)
-	wbi++;
-    }
-    if (type == 0x102c) {		/* Get white balance (G2) */
-      if (!strcmp(model,"Canon PowerShot G1") ||
-	  !strcmp(model,"Canon PowerShot Pro90 IS")) {
-	fseek (ifp, aoff+120, SEEK_SET);
-	FORC4 cam_mul[c ^ 2] = get2();
-      } else {
-	fseek (ifp, aoff+100, SEEK_SET);
-	goto common;
-      }
-    }
-    if (type == 0x0032) {		/* Get white balance (D30 & G3) */
-      if (!strcmp(model,"Canon EOS D30")) {
-	fseek (ifp, aoff+72, SEEK_SET);
-common:
-	camera_red   = get2() ^ key[0];
-	camera_red   =(get2() ^ key[1]) / camera_red;
-	camera_blue  = get2() ^ key[0];
-	camera_blue /= get2() ^ key[1];
-	if (!wbi) camera_red = -1;	/* Use my auto WB for this photo */
-      } else if (!strcmp(model,"Canon PowerShot G6") ||
-		 !strcmp(model,"Canon PowerShot S60") ||
-		 !strcmp(model,"Canon PowerShot S70")) {
-	fseek (ifp, aoff+96 + remap_s70[wbi]*8, SEEK_SET);
-	goto common;
-      } else if (!strcmp(model,"Canon PowerShot Pro1")) {
-	fseek (ifp, aoff+96 + wbi*8, SEEK_SET);
-	goto common;
-      } else {
-	fseek (ifp, aoff+80 + (wbi < 6 ? remap[wbi]*8 : 0), SEEK_SET);
-	if (!camera_red)
-	  goto common;
-      }
-    }
-    if (type == 0x10a9) {		/* Get white balance (D60) */
-      if (!strcmp(model,"Canon EOS 10D"))
-	wbi = remap_10d[wbi];
-      fseek (ifp, aoff+2 + wbi*8, SEEK_SET);
-      camera_red  = get2();
-      camera_red /= get2();
-      camera_blue = get2();
-      camera_blue = get2() / camera_blue;
-    }
-    if (type == 0x1030 && (wbi == 6 || wbi == 15)) {
-      fseek (ifp, aoff, SEEK_SET);	/* Get white sample */
-      ciff_block_1030();
-    }
-    if (type == 0x1031) {		/* Get the raw width and height */
-      fseek (ifp, aoff+2, SEEK_SET);
-      raw_width  = get2();
-      raw_height = get2();
-    }
-    if (type == 0x180e) {		/* Get the timestamp */
-      fseek (ifp, aoff, SEEK_SET);
-      timestamp = get4();
-    }
-    if (type == 0x5817)
-      shot_order = len;
-    if (type == 0x580e)
-      timestamp = len;
-#ifdef LOCALTIME
-    if ((type | 0x4000) == 0x580e)
-      timestamp = mktime (gmtime (&timestamp));
-#endif
-    if (type == 0x5813)
-      flash_used = int_to_float(len);
-    if (type == 0x5814)
-      canon_5814 = int_to_float(len);
-    if (type == 0x1810) {		/* Get the rotation */
-      fseek (ifp, aoff+12, SEEK_SET);
-      flip = get4();
-    }
-    if (type == 0x1835) {		/* Get the decoder table */
-      fseek (ifp, aoff, SEEK_SET);
-      crw_init_tables (get4());
-    }
-    if (type >> 8 == 0x28 || type >> 8 == 0x30)	/* Get sub-tables */
-      parse_ciff(aoff, len);
-    fseek (ifp, save, SEEK_SET);
-  }
-}
-
-void CLASS parse_rollei()
-{
-  char line[128], *val;
-  int tx=0, ty=0;
-  struct tm t;
-
-  fseek (ifp, 0, SEEK_SET);
-  do {
-    fgets (line, 128, ifp);
-    if ((val = strchr(line,'=')))
-      *val++ = 0;
-    else
-      val = line + strlen(line);
-    if (!strcmp(line,"DAT"))
-      sscanf (val, "%d.%d.%d", &t.tm_mday, &t.tm_mon, &t.tm_year);
-    if (!strcmp(line,"TIM"))
-      sscanf (val, "%d:%d:%d", &t.tm_hour, &t.tm_min, &t.tm_sec);
-    if (!strcmp(line,"HDR"))
-      data_offset = atoi(val);
-    if (!strcmp(line,"X  "))
-      raw_width = atoi(val);
-    if (!strcmp(line,"Y  "))
-      raw_height = atoi(val);
-    if (!strcmp(line,"TX "))
-      tx = atoi(val);
-    if (!strcmp(line,"TY "))
-      ty = atoi(val);
-  } while (strncmp(line,"EOHD",4));
-  t.tm_year -= 1900;
-  t.tm_mon -= 1;
-  if (mktime(&t) > 0)
-    timestamp = mktime(&t);
-  data_offset += tx * ty * 2;
-  strcpy (make, "Rollei");
-  strcpy (model,"d530flex");
-}
-
-void CLASS parse_mos (int offset)
-{
-  char data[40];
-  int skip, from, i, c, neut[4];
-  static const unsigned bayer[] =
-	{ 0x94949494, 0x61616161, 0x16161616, 0x49494949 };
-
-  fseek (ifp, offset, SEEK_SET);
-  while (1) {
-    fread (data, 1, 8, ifp);
-    if (strcmp(data,"PKTS")) break;
-    if (!make[0]) strcpy(make,"Leaf");
-    fread (data, 1, 40, ifp);
-    skip = get4();
-    from = ftell(ifp);
-#ifdef USE_LCMS
-    if (!strcmp(data,"icc_camera_profile")) {
-      profile_length = skip;
-      profile_offset = from;
-    }
-#endif
-    if (!strcmp(data,"CaptProf_number_of_planes")) {
-      fscanf (ifp, "%d", &i);
-      if (i > 1) filters = 0;
-    }
-    if (!strcmp(data,"CaptProf_raw_data_rotation") && filters) {
-      fscanf (ifp, "%d", &i);
-      filters = bayer[i/90];
-    }
-    if (!strcmp(data,"NeutObj_neutrals")) {
-      for (i=0; i < 4; i++)
-	fscanf (ifp, "%d", neut+i);
-      FORC3 cam_mul[c] = 1.0 / neut[c+1];
-    }
-    parse_mos (from);
-    fseek (ifp, skip+from, SEEK_SET);
-  }
-}
-
-void CLASS parse_phase_one (int base)
-{
-  unsigned entries, tag, type, len, data, save, i, c;
-  char *cp;
-
-  fseek (ifp, base, SEEK_SET);
-  order = get4() & 0xffff;
-  if (get4() >> 8 != 0x526177) return;		/* "Raw" */
-  fseek (ifp, base+get4(), SEEK_SET);
-  entries = get4();
-  get4();
-  while (entries--) {
-    tag  = get4();
-    type = get4();
-    len  = get4();
-    data = get4();
-    save = ftell(ifp);
-    fseek (ifp, base+data, SEEK_SET);
-    switch (tag) {
-      case 0x106:
-	for (raw_color = i=0; i < 3; i++)
-	  FORC3 rgb_cam[i][c] = int_to_float(get4());
-	break;
-      case 0x107:
-	FORC3 cam_mul[c] = pre_mul[c] = int_to_float(get4());
-	break;
-      case 0x108:  raw_width   = data;  break;
-      case 0x109:  raw_height  = data;  break;
-      case 0x10a:  left_margin = data;  break;
-      case 0x10b:  top_margin  = data;  break;
-      case 0x10c:  width       = data;  break;
-      case 0x10d:  height      = data;  break;
-      case 0x10e:  tiff_data_compression = data;  break;
-      case 0x10f:  data_offset = data+base;  break;
-      case 0x112:
-	nikon_curve_offset = save - 4;  break;
-      case 0x301:
-	fread (model, 64, 1, ifp);
-	cp = strstr(model," camera");
-	if (cp && cp < model+64) *cp = 0;
-    }
-    fseek (ifp, save, SEEK_SET);
-  }
-  load_raw = tiff_data_compression < 3 ?
-	phase_one_load_raw:phase_one_load_raw_c;
-  strcpy (make, "Phase One");
-  if (model[0]) return;
-  sprintf (model, "%dx%d", width, height);
-  switch (raw_height) {
-    case 2060: strcpy (model,"LightPhase");	break;
-    case 2682: strcpy (model,"H 10");		break;
-    case 4128: strcpy (model,"H 20");		break;
-    case 5488: strcpy (model,"H 25");		break;
-  }
-}
-
-void CLASS parse_fuji (int offset)
-{
-  int entries, tag, len, save, c;
-
-  fseek (ifp, offset, SEEK_SET);
-  entries = get4();
-  if (entries > 255) return;
-  while (entries--) {
-    tag = get2();
-    len = get2();
-    save = ftell(ifp);
-    if (tag == 0x100) {
-      raw_height = get2();
-      raw_width  = get2();
-    } else if (tag == 0x121) {
-      height = get2();
-      if ((width = get2()) == 4284) width += 3;
-    } else if (tag == 0x130)
-      fuji_layout = fgetc(ifp) >> 7;
-    if (tag == 0x2ff0)
-      FORC4 cam_mul[c ^ 1] = get2();
-    fseek (ifp, save+len, SEEK_SET);
-  }
-  if (fuji_layout) {
-    height *= 2;
-    width  /= 2;
-  }
-}
-
-int CLASS parse_jpeg (int offset)
-{
-  int len, save, hlen;
-
-  fseek (ifp, offset, SEEK_SET);
-  if (fgetc(ifp) != 0xff || fgetc(ifp) != 0xd8) return 0;
-
-  while (fgetc(ifp) == 0xff && fgetc(ifp) >> 4 != 0xd) {
-    order = 0x4d4d;
-    len   = get2() - 2;
-    save  = ftell(ifp);
-    order = get2();
-    hlen  = get4();
-    if (get4() == 0x48454150)		/* "HEAP" */
-      parse_ciff (save+hlen, len-hlen);
-    parse_tiff (save+6);
-    fseek (ifp, save+len, SEEK_SET);
-  }
-  return 1;
-}
-
-void CLASS parse_riff()
-{
-  unsigned i, size, end;
-  char tag[4], date[64], month[64];
-  static const char mon[12][4] =
-  { "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec" };
-  struct tm t;
-
-  order = 0x4949;
-  fread (tag, 4, 1, ifp);
-  size = get4();
-  if (!memcmp(tag,"RIFF",4) || !memcmp(tag,"LIST",4)) {
-    end = ftell(ifp) + size;
-    get4();
-    while (ftell(ifp) < end)
-      parse_riff();
-  } else if (!memcmp(tag,"IDIT",4) && size < 64) {
-    fread (date, 64, 1, ifp);
-    date[size] = 0;
-    if (sscanf (date, "%*s %s %d %d:%d:%d %d", month, &t.tm_mday,
-	&t.tm_hour, &t.tm_min, &t.tm_sec, &t.tm_year) == 6) {
-      for (i=0; i < 12 && strcmp(mon[i],month); i++);
-      t.tm_mon = i;
-      t.tm_year -= 1900;
-      if (mktime(&t) > 0)
-	timestamp = mktime(&t);
-    }
-  } else
-    fseek (ifp, size, SEEK_CUR);
-}
-
-void CLASS parse_smal (int offset, int fsize)
-{
-  int ver;
-
-  fseek (ifp, offset+2, SEEK_SET);
-  order = 0x4949;
-  ver = fgetc(ifp);
-  if (ver == 6)
-    fseek (ifp, 5, SEEK_CUR);
-  if (get4() != fsize) return;
-  if (ver > 6) data_offset = get4();
-  raw_height = height = get2();
-  raw_width  = width  = get2();
-  strcpy (make, "SMaL");
-  sprintf (model, "v%d %dx%d", ver, width, height);
-  if (ver == 6) load_raw = smal_v6_load_raw;
-  if (ver == 9) load_raw = smal_v9_load_raw;
-}
-
-char * CLASS foveon_gets (int offset, char *str, int len)
-{
-  int i;
-  fseek (ifp, offset, SEEK_SET);
-  for (i=0; i < len-1; i++)
-    if ((str[i] = get2()) == 0) break;
-  str[i] = 0;
-  return str;
-}
-
-void CLASS parse_foveon()
-{
-  int entries, off, len, tag, save, i, wide, high, pent, poff[256][2];
-  char name[64];
-
-  order = 0x4949;			/* Little-endian */
-  fseek (ifp, 36, SEEK_SET);
-  flip = get4();
-  fseek (ifp, -4, SEEK_END);
-  fseek (ifp, get4(), SEEK_SET);
-  if (get4() != 0x64434553) return;	/* SECd */
-  get4();
-  entries = get4();
-  while (entries--) {
-    off = get4();
-    len = get4();
-    tag = get4();
-    save = ftell(ifp);
-    fseek (ifp, off, SEEK_SET);
-    if (get4() != (0x20434553 | (tag << 24))) return;
-    switch (tag) {
-      case 0x47414d49:			/* IMAG */
-      case 0x32414d49:			/* IMA2 */
-	fseek (ifp, 12, SEEK_CUR);
-	wide = get4();
-	high = get4();
-	if (wide > raw_width && high > raw_height) {
-	  raw_width  = wide;
-	  raw_height = high;
-	  data_offset = off + 24;
-	}
-	break;
-      case 0x464d4143:			/* CAMF */
-	meta_offset = off + 24;
-	meta_length = len - 28;
-	if (meta_length > 0x20000)
-	    meta_length = 0x20000;
-	break;
-      case 0x504f5250:			/* PROP */
-	get4();
-	pent = get4();
-	fseek (ifp, 12, SEEK_CUR);
-	off += pent*8 + 24;
-	if (pent > 256) pent=256;
-	for (i=0; i < pent*2; i++)
-	  poff[0][i] = off + get4()*2;
-	for (i=0; i < pent; i++) {
-	  foveon_gets (poff[i][0], name, 64);
-	  if (!strcmp (name, "CAMMANUF"))
-	    foveon_gets (poff[i][1], make, 64);
-	  if (!strcmp (name, "CAMMODEL"))
-	    foveon_gets (poff[i][1], model, 64);
-	  if (!strcmp (name, "WB_DESC"))
-	    foveon_gets (poff[i][1], model2, 64);
-	  if (!strcmp (name, "TIME"))
-	    timestamp = atoi (foveon_gets (poff[i][1], name, 64));
-	}
-#ifdef LOCALTIME
-	timestamp = mktime (gmtime (&timestamp));
-#endif
-    }
-    fseek (ifp, save, SEEK_SET);
-  }
-  is_foveon = 1;
-}
-
-/*
-   Thanks to Adobe for providing these excellent CAM -> XYZ matrices!
- */
-void CLASS adobe_coeff()
-{
-  static const struct {
-    const char *prefix;
-    short trans[12];
-  } table[] = {
-    { "Canon EOS D2000",
-	{ 24542,-10860,-3401,-1490,11370,-297,2858,-605,3225 } },
-    { "Canon EOS D6000",
-	{ 20482,-7172,-3125,-1033,10410,-285,2542,226,3136 } },
-    { "Canon EOS D30",
-	{ 9805,-2689,-1312,-5803,13064,3068,-2438,3075,8775 } },
-    { "Canon EOS D60",
-	{ 6188,-1341,-890,-7168,14489,2937,-2640,3228,8483 } },
-    { "Canon EOS 5D",
-	{ 6228,-404,-967,-8314,16108,2312,-1923,2179,7499 } },
-    { "Canon EOS 20D",
-	{ 6599,-537,-891,-8071,15783,2424,-1983,2234,7462 } },
-    { "Canon EOS 350D",
-	{ 6018,-617,-965,-8645,15881,2975,-1530,1719,7642 } },
-    { "Canon EOS DIGITAL REBEL XT",
-	{ 6018,-617,-965,-8645,15881,2975,-1530,1719,7642 } },
-    { "Canon EOS-1Ds Mark II",
-	{ 6517,-602,-867,-8180,15926,2378,-1618,1771,7633 } },
-    { "Canon EOS-1D Mark II",
-	{ 6264,-582,-724,-8312,15948,2504,-1744,1919,8664 } },
-    { "Canon EOS-1DS",
-	{ 4374,3631,-1743,-7520,15212,2472,-2892,3632,8161 } },
-    { "Canon EOS-1D",
-	{ 6806,-179,-1020,-8097,16415,1687,-3267,4236,7690 } },
-    { "Canon EOS",
-	{ 8197,-2000,-1118,-6714,14335,2592,-2536,3178,8266 } },
-    { "Canon PowerShot A50",
-	{ -5300,9846,1776,3436,684,3939,-5540,9879,6200,-1404,11175,217 } },
-    { "Canon PowerShot A5",
-	{ -4801,9475,1952,2926,1611,4094,-5259,10164,5947,-1554,10883,547 } },
-    { "Canon PowerShot G1",
-	{ -4778,9467,2172,4743,-1141,4344,-5146,9908,6077,-1566,11051,557 } },
-    { "Canon PowerShot G2",
-	{ 9087,-2693,-1049,-6715,14382,2537,-2291,2819,7790 } },
-    { "Canon PowerShot G3",
-	{ 9212,-2781,-1073,-6573,14189,2605,-2300,2844,7664 } },
-    { "Canon PowerShot G5",
-	{ 9757,-2872,-933,-5972,13861,2301,-1622,2328,7212 } },
-    { "Canon PowerShot G6",
-	{ 9877,-3775,-871,-7613,14807,3072,-1448,1305,7485 } },
-    { "Canon PowerShot Pro1",
-	{ 10062,-3522,-999,-7643,15117,2730,-765,817,7323 } },
-    { "Canon PowerShot Pro70",
-	{ -4155,9818,1529,3939,-25,4522,-5521,9870,6610,-2238,10873,1342 } },
-    { "Canon PowerShot Pro90",
-	{ -4963,9896,2235,4642,-987,4294,-5162,10011,5859,-1770,11230,577 } },
-    { "Canon PowerShot S30",
-	{ 10566,-3652,-1129,-6552,14662,2006,-2197,2581,7670 } },
-    { "Canon PowerShot S40",
-	{ 8510,-2487,-940,-6869,14231,2900,-2318,2829,9013 } },
-    { "Canon PowerShot S45",
-	{ 8163,-2333,-955,-6682,14174,2751,-2077,2597,8041 } },
-    { "Canon PowerShot S50",
-	{ 8882,-2571,-863,-6348,14234,2288,-1516,2172,6569 } },
-    { "Canon PowerShot S60",
-	{ 8795,-2482,-797,-7804,15403,2573,-1422,1996,7082 } },
-    { "Canon PowerShot S70",
-	{ 9976,-3810,-832,-7115,14463,2906,-901,989,7889 } },
-    { "Contax N Digital",
-	{ 7777,1285,-1053,-9280,16543,2916,-3677,5679,7060 } },
-    { "EPSON R-D1",
-	{ 6827,-1878,-732,-8429,16012,2564,-704,592,7145 } },
-    { "FUJIFILM FinePix E550",
-	{ 11044,-3888,-1120,-7248,15168,2208,-1531,2277,8069 } },
-    { "FUJIFILM FinePix F8",
-	{ 11044,-3888,-1120,-7248,15168,2208,-1531,2277,8069 } },
-    { "FUJIFILM FinePix F7",
-	{ 10004,-3219,-1201,-7036,15047,2107,-1863,2565,7736 } },
-    { "FUJIFILM FinePix S20Pro",
-	{ 10004,-3219,-1201,-7036,15047,2107,-1863,2565,7736 } },
-    { "FUJIFILM FinePix S2Pro",
-	{ 12492,-4690,-1402,-7033,15423,1647,-1507,2111,7697 } },
-    { "FUJIFILM FinePix S3Pro",
-	{ 11807,-4612,-1294,-8927,16968,1988,-2120,2741,8006 } },
-    { "FUJIFILM FinePix S5000",
-	{ 8754,-2732,-1019,-7204,15069,2276,-1702,2334,6982 } },
-    { "FUJIFILM FinePix S5100",
-	{ 11940,-4431,-1255,-6766,14428,2542,-993,1165,7421 } },
-    { "FUJIFILM FinePix S7000",
-	{ 10190,-3506,-1312,-7153,15051,2238,-2003,2399,7505 } },
-    { "FUJIFILM FinePix S9",	/* copied from S7000 */
-	{ 10190,-3506,-1312,-7153,15051,2238,-2003,2399,7505 } },
-    { "KODAK NC2000F",		/* DJC */
-	{ 16475,-6903,-1218,-851,10375,477,2505,-7,1020 } },
-    { "Kodak DCS315C",
-	{ 17523,-4827,-2510,756,8546,-137,6113,1649,2250 } },
-    { "Kodak DCS330C",
-	{ 20620,-7572,-2801,-103,10073,-396,3551,-233,2220 } },
-    { "KODAK DCS420",
-	{ 10868,-1852,-644,-1537,11083,484,2343,628,2216 } },
-    { "KODAK DCS460",
-	{ 10592,-2206,-967,-1944,11685,230,2206,670,1273 } },
-    { "KODAK EOSDCS1",
-	{ 10592,-2206,-967,-1944,11685,230,2206,670,1273 } },
-    { "KODAK EOSDCS3B",
-	{ 9898,-2700,-940,-2478,12219,206,1985,634,1031 } },
-    { "Kodak DCS520C",
-	{ 24542,-10860,-3401,-1490,11370,-297,2858,-605,3225 } },
-    { "Kodak DCS560C",
-	{ 20482,-7172,-3125,-1033,10410,-285,2542,226,3136 } },
-    { "Kodak DCS620C",
-	{ 23617,-10175,-3149,-2054,11749,-272,2586,-489,3453 } },
-    { "Kodak DCS620X",
-	{ 13095,-6231,154,12221,-21,-2137,895,4602,2258 } },
-    { "Kodak DCS660C",
-	{ 18244,-6351,-2739,-791,11193,-521,3711,-129,2802 } },
-    { "Kodak DCS720X",
-	{ 11775,-5884,950,9556,1846,-1286,-1019,6221,2728 } },
-    { "Kodak DCS760C",
-	{ 16623,-6309,-1411,-4344,13923,323,2285,274,2926 } },
-    { "Kodak DCS Pro SLR",
-	{ 5494,2393,-232,-6427,13850,2846,-1876,3997,5445 } },
-    { "Kodak DCS Pro 14nx",
-	{ 5494,2393,-232,-6427,13850,2846,-1876,3997,5445 } },
-    { "Kodak DCS Pro 14",
-	{ 7791,3128,-776,-8588,16458,2039,-2455,4006,6198 } },
-    { "Kodak ProBack645",
-	{ 16414,-6060,-1470,-3555,13037,473,2545,122,4948 } },
-    { "Kodak ProBack",
-	{ 21179,-8316,-2918,-915,11019,-165,3477,-180,4210 } },
-    { "LEICA DIGILUX 2",
-	{ 11340,-4069,-1275,-7555,15266,2448,-2960,3426,7685 } },
-    { "Leaf Valeo",
-	{ 8236,1746,-1314,-8251,15953,2428,-3673,5786,5771 } },
-    { "Minolta DiMAGE 5",
-	{ 8983,-2942,-963,-6556,14476,2237,-2426,2887,8014 } },
-    { "Minolta DiMAGE 7Hi",
-	{ 11368,-3894,-1242,-6521,14358,2339,-2475,3056,7285 } },
-    { "Minolta DiMAGE 7",
-	{ 9144,-2777,-998,-6676,14556,2281,-2470,3019,7744 } },
-    { "Minolta DiMAGE A1",
-	{ 9274,-2547,-1167,-8220,16323,1943,-2273,2720,8340 } },
-    { "MINOLTA DiMAGE A200",
-	{ 8560,-2487,-986,-8112,15535,2771,-1209,1324,7743 } },
-    { "Minolta DiMAGE A2",
-	{ 9097,-2726,-1053,-8073,15506,2762,-966,981,7763 } },
-    { "Minolta DiMAGE Z2",
-	{ 11428,-3512,-1706,-5895,13815,2266,-2382,2719,5651 } },
-    { "MINOLTA DYNAX 5",
-	{ 10284,-3283,-1086,-7957,15762,2316,-829,882,6644 } },
-    { "MINOLTA DYNAX 7",
-	{ 10239,-3104,-1099,-8037,15727,2451,-927,925,6871 } },
-    { "NIKON D100",
-	{ 5902,-933,-782,-8983,16719,2354,-1402,1455,6464 } },
-    { "NIKON D1H",
-	{ 7577,-2166,-926,-7454,15592,1934,-2377,2808,8606 } },
-    { "NIKON D1X",
-	{ 7702,-2245,-975,-9114,17242,1875,-2679,3055,8521 } },
-    { "NIKON D1",
-	{ 7559,-2130,-965,-7611,15713,1972,-2478,3042,8290 } },
-    { "NIKON D2H",
-	{ 5710,-901,-615,-8594,16617,2024,-2975,4120,6830 } },
-    { "NIKON D2X",
-	{ 10231,-2769,-1255,-8301,15900,2552,-797,680,7148 } },
-    { "NIKON D50",
-	{ 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } },
-    { "NIKON D70",
-	{ 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } },
-    { "NIKON E995",	/* copied from E5000 */
-	{ -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } },
-    { "NIKON E2500",
-	{ -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } },
-    { "NIKON E4500",
-	{ -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } },
-    { "NIKON E5000",
-	{ -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } },
-    { "NIKON E5400",
-	{ 9349,-2987,-1001,-7919,15766,2266,-2098,2680,6839 } },
-    { "NIKON E5700",
-	{ -5368,11478,2368,5537,-113,3148,-4969,10021,5782,778,9028,211 } },
-    { "NIKON E8400",
-	{ 7842,-2320,-992,-8154,15718,2599,-1098,1342,7560 } },
-    { "NIKON E8700",
-	{ 8489,-2583,-1036,-8051,15583,2643,-1307,1407,7354 } },
-    { "NIKON E8800",
-	{ 7971,-2314,-913,-8451,15762,2894,-1442,1520,7610 } },
-    { "OLYMPUS C5050",
-	{ 10508,-3124,-1273,-6079,14294,1901,-1653,2306,6237 } },
-    { "OLYMPUS C5060",
-	{ 10445,-3362,-1307,-7662,15690,2058,-1135,1176,7602 } },
-    { "OLYMPUS C70",
-	{ 10793,-3791,-1146,-7498,15177,2488,-1390,1577,7321 } },
-    { "OLYMPUS C80",
-	{ 8606,-2509,-1014,-8238,15714,2703,-942,979,7760 } },
-    { "OLYMPUS E-10",
-	{ 12745,-4500,-1416,-6062,14542,1580,-1934,2256,6603 } },
-    { "OLYMPUS E-1",
-	{ 11846,-4767,-945,-7027,15878,1089,-2699,4122,8311 } },
-    { "OLYMPUS E-20",
-	{ 13173,-4732,-1499,-5807,14036,1895,-2045,2452,7142 } },
-    { "OLYMPUS E-300",
-	{ 7828,-1761,-348,-5788,14071,1830,-2853,4518,6557 } },
-    { "OLYMPUS E-500",	/* copied from E-300 */
-	{ 7828,-1761,-348,-5788,14071,1830,-2853,4518,6557 } },
-    { "PENTAX *ist DS",
-	{ 10371,-2333,-1206,-8688,16231,2602,-1230,1116,11282 } },
-    { "PENTAX *ist D",
-	{ 9651,-2059,-1189,-8881,16512,2487,-1460,1345,10687 } },
-    { "Panasonic DMC-FZ30",
-	{ 10976,-4029,-1141,-7918,15491,2600,-1670,2071,8246 } },
-    { "Panasonic DMC-LC1",
-	{ 11340,-4069,-1275,-7555,15266,2448,-2960,3426,7685 } },
-    { "Panasonic DMC-LX1",
-	{ 10704,-4187,-1230,-8314,15952,2501,-920,945,8927 } },
-    { "SONY DSC-F828",
-	{ 7924,-1910,-777,-8226,15459,2998,-1517,2199,6818,-7242,11401,3481 } },
-    { "SONY DSC-R1",		/* DJC */
-	{ 10528,-3695,-517,-2822,10699,2124,406,1240,5342 } },
-    { "SONY DSC-V3",
-	{ 7511,-2571,-692,-7894,15088,3060,-948,1111,8128 } }
-  };
-  double cam_xyz[4][3];
-  char name[130];
-  int i, j;
-
-  sprintf (name, "%s %s", make, model);
-  for (i=0; i < sizeof table / sizeof *table; i++)
-    if (!strncmp (name, table[i].prefix, strlen(table[i].prefix))) {
-      for (j=0; j < 12; j++)
-	cam_xyz[0][j] = table[i].trans[j];
-      cam_xyz_coeff (cam_xyz);
-      break;
-    }
-}
-
-void CLASS simple_coeff (int index)
-{
-  static const float table[][12] = {
-  /* index 0 -- all Foveon cameras */
-  { 1.4032,-0.2231,-0.1016,-0.5263,1.4816,0.017,-0.0112,0.0183,0.9113 },
-  /* index 1 -- Kodak DC20 and DC25 */
-  { 2.25,0.75,-1.75,-0.25,-0.25,0.75,0.75,-0.25,-0.25,-1.75,0.75,2.25 },
-  /* index 2 -- Logitech Fotoman Pixtura */
-  { 1.893,-0.418,-0.476,-0.495,1.773,-0.278,-1.017,-0.655,2.672 },
-  /* index 3 -- Nikon E700, E800, and E950 */
-  { -1.936280,  1.800443, -1.448486,  2.584324,
-     1.405365, -0.524955, -0.289090,  0.408680,
-    -1.204965,  1.082304,  2.941367, -1.818705 }
-  };
-  int i, c;
-
-  for (raw_color = i=0; i < 3; i++)
-    FORCC rgb_cam[i][c] = table[index][i*colors+c];
-}
-
-short CLASS guess_byte_order (int words)
-{
-  uchar test[4][2];
-  int t=2, msb;
-  double diff, sum[2] = {0,0};
-
-  fread (test[0], 2, 2, ifp);
-  for (words-=2; words--; ) {
-    fread (test[t], 2, 1, ifp);
-    for (msb=0; msb < 2; msb++) {
-      diff = (test[t^2][msb] << 8 | test[t^2][!msb])
-	   - (test[t  ][msb] << 8 | test[t  ][!msb]);
-      sum[msb] += diff*diff;
-    }
-    t = (t+1) & 3;
-  }
-  return sum[0] < sum[1] ? 0x4d4d : 0x4949;
-}
-
-/*
-   Identify which camera created this file, and set global variables
-   accordingly.  Return nonzero if the file cannot be decoded.
- */
-int CLASS identify (int no_decode)
-{
-  char head[32], *cp;
-  unsigned hlen, fsize, i, c, is_jpeg=0, is_canon;
-  static const struct {
-    int fsize;
-    char make[12], model[15], withjpeg;
-  } table[] = {
-    {    62464, "Kodak",    "DC20"       ,0 },
-    {   124928, "Kodak",    "DC20"       ,0 },
-    {   311696, "ST Micro", "STV680 VGA" ,0 },  /* SPYz */
-    {   787456, "Creative", "PC-CAM 600" ,0 },
-    {  1138688, "Minolta",  "RD175"      ,0 },
-    {  3840000, "Foculus",  "531C"       ,0 },
-    {  1920000, "AVT",      "F-201C"     ,0 },
-    {  5067304, "AVT",      "F-510C"     ,0 },
-    { 10134608, "AVT",      "F-510C"     ,0 },
-    { 16157136, "AVT",      "F-810C"     ,0 },
-    {  6624000, "Pixelink", "A782"       ,0 },
-    { 13248000, "Pixelink", "A782"       ,0 },
-    {  6291456, "RoverShot","3320AF"     ,0 },
-    {  5939200, "OLYMPUS",  "C770UZ"     ,0 },
-    {  1581060, "NIKON",    "E900"       ,1 },  /* or E900s,E910 */
-    {  2465792, "NIKON",    "E950"       ,1 },  /* or E800,E700 */
-    {  2940928, "NIKON",    "E2100"      ,1 },  /* or E2500 */
-    {  4771840, "NIKON",    "E990"       ,1 },  /* or E995 */
-    {  4775936, "NIKON",    "E3700"      ,1 },  /* or Optio 33WR */
-    {  5869568, "NIKON",    "E4300"      ,1 },  /* or DiMAGE Z2 */
-    {  5865472, "NIKON",    "E4500"      ,1 },
-    {  7438336, "NIKON",    "E5000"      ,1 },  /* or E5700 */
-    {  1976352, "CASIO",    "QV-2000UX"  ,1 },
-    {  3217760, "CASIO",    "QV-3*00EX"  ,1 },
-    {  6218368, "CASIO",    "QV-5700"    ,1 },
-    {  7530816, "CASIO",    "QV-R51"     ,1 },
-    {  7684000, "CASIO",    "QV-4000"    ,1 },
-    {  4948608, "CASIO",    "EX-S100"    ,1 },
-    {  7542528, "CASIO",    "EX-Z50"     ,1 },
-    {  7753344, "CASIO",    "EX-Z55"     ,1 },
-    {  7426656, "CASIO",    "EX-P505"    ,1 },
-    {  9313536, "CASIO",    "EX-P600"    ,1 },
-    { 10979200, "CASIO",    "EX-P700"    ,1 },
-    {  3178560, "PENTAX",   "Optio S"    ,1 },  /*  8-bit */
-    {  4841984, "PENTAX",   "Optio S"    ,1 },  /* 12-bit */
-    {  6114240, "PENTAX",   "Optio S4"   ,1 },  /* or S4i */
-    { 12582980, "Sinar",    ""           ,0 } };
-  static const char *corp[] =
-    { "Canon", "NIKON", "EPSON", "KODAK", "Kodak", "OLYMPUS", "PENTAX",
-      "MINOLTA", "Minolta", "Konica", "CASIO", "Sinar" };
-
-/*  What format is this file?  Set make[] if we recognize it. */
-
-  load_raw = NULL;
-  raw_height = raw_width = fuji_width = flip = 0;
-  height = width = top_margin = left_margin = 0;
-  make[0] = model[0] = model2[0] = 0;
-  memset (white, 0, sizeof white);
-  data_offset = meta_length = tiff_bps = tiff_data_compression = 0;
-  kodak_cbpp = zero_after_ff = dng_version = fuji_secondary = 0;
-  timestamp = shot_order = tiff_samples = black = is_foveon = 0;
-  raw_color = use_gamma = xmag = ymag = 1;
-  filters = UINT_MAX;	/* 0 = no filters, UINT_MAX = unknown */
-  for (i=0; i < 4; i++) {
-    cam_mul[i] = i == 1;
-    pre_mul[i] = i < 3;
-    FORC3 rgb_cam[c][i] = c == i;
-  }
-  colors = 3;
-  for (i=0; i < 0x1000; i++) curve[i] = i;
-  maximum = 0xfff;
-#ifdef USE_LCMS
-  profile_length = 0;
-#endif
-
-  order = get2();
-  hlen = get4();
-  fseek (ifp, 0, SEEK_SET);
-  fread (head, 1, 32, ifp);
-  fseek (ifp, 0, SEEK_END);
-  fsize = ftell(ifp);
-  if ((cp = memmem (head, 32, "MMMM", 4)) ||
-      (cp = memmem (head, 32, "IIII", 4)))
-    parse_phase_one (cp-head);
-  else if (order == 0x4949 || order == 0x4d4d) {
-    if (!memcmp (head+6,"HEAPCCDR",8)) {
-      data_offset = hlen;
-      parse_ciff (hlen, fsize - hlen);
-    } else {
-      parse_tiff(0);
-      if (!dng_version && !strncmp(make,"NIKON",5) && filters == UINT_MAX)
-	make[0] = 0;
-    }
-  } else if (!memcmp (head,"\xff\xd8\xff\xe1",4) &&
-	     !memcmp (head+6,"Exif",4)) {
-    fseek (ifp, 4, SEEK_SET);
-    fseek (ifp, 4 + get2(), SEEK_SET);
-    if (fgetc(ifp) != 0xff)
-      parse_tiff(12);
-  } else if (!memcmp (head,"BM",2) &&
-	head[26] == 1 && head[28] == 16 && head[30] == 0) {
-    data_offset = 0x1000;
-    order = 0x4949;
-    fseek (ifp, 38, SEEK_SET);
-    if (get4() == 2834 && get4() == 2834 && get4() == 0 && get4() == 4096) {
-      strcpy (model, "BMQ");
-      flip = 3;
-      goto nucore;
-    }
-  } else if (!memcmp (head,"BR",2)) {
-    strcpy (model, "RAW");
-nucore:
-    strcpy (make, "Nucore");
-    order = 0x4949;
-    fseek (ifp, 10, SEEK_SET);
-    data_offset += get4();
-    get4();
-    raw_width  = get4();
-    raw_height = get4();
-    if (model[0] == 'B' && raw_width == 2597) {
-      raw_width++;
-      data_offset -= 0x1000;
-    }
-  } else if (!memcmp (head+25,"ARECOYK",7)) {
-    strcpy (make, "Contax");
-    strcpy (model,"N Digital");
-    fseek (ifp, 33, SEEK_SET);
-    get_timestamp(1);
-    fseek (ifp, 60, SEEK_SET);
-    FORC4 cam_mul[c ^ (c >> 1)] = get4();
-  } else if (!strcmp (head, "PXN")) {
-    strcpy (make, "Logitech");
-    strcpy (model,"Fotoman Pixtura");
-  } else if (!memcmp (head,"FUJIFILM",8)) {
-    fseek (ifp, 92, SEEK_SET);
-    parse_fuji (get4());
-    fseek (ifp, 84, SEEK_SET);
-    if ((hlen = get4()) > 120) {
-      fseek (ifp, 120, SEEK_SET);
-      fuji_secondary = (i = get4()) && 1;
-      if (fuji_secondary && use_secondary)
-	parse_fuji (i);
-    }
-    fseek (ifp, 100, SEEK_SET);
-    i = get4();
-    parse_tiff (hlen+12);
-    data_offset = i;
-  } else if (!memcmp (head,"RIFF",4)) {
-    fseek (ifp, 0, SEEK_SET);
-    parse_riff();
-  } else if (!memcmp (head,"DSC-Image",9))
-    parse_rollei();
-  else if (!memcmp (head,"\0MRM",4))
-    parse_minolta();
-  else if (!memcmp (head,"FOVb",4))
-    parse_foveon();
-  else
-    for (i=0; i < sizeof table / sizeof *table; i++)
-      if (fsize == table[i].fsize) {
-	strcpy (make,  table[i].make );
-	strcpy (model, table[i].model);
-	if (table[i].withjpeg)
-	  parse_external_jpeg();
-      }
-  parse_mos(8);
-  parse_mos(3472);
-  if (make[0] == 0) parse_smal (0, fsize);
-  if (make[0] == 0) is_jpeg = parse_jpeg(0);
-  if (no_decode) return !timestamp;
-
-  for (i=0; i < sizeof corp / sizeof *corp; i++)
-    if (strstr (make, corp[i]))		/* Simplify company names */
-	strcpy (make, corp[i]);
-  if (!strncmp (make,"KODAK",5))
-    make[16] = model[16] = 0;
-  cp = make + strlen(make);		/* Remove trailing spaces */
-  while (*--cp == ' ') *cp = 0;
-  cp = model + strlen(model);
-  while (*--cp == ' ') *cp = 0;
-  i = strlen(make);			/* Remove make from model */
-  if (!strncmp (model, make, i) && model[i++] == ' ')
-    memmove (model, model+i, 64-i);
-  make[63] = model[63] = model2[63] = 0;
-
-  if (make[0] == 0) {
-    fprintf (stderr, "%s: unsupported file format.\n", ifname);
-    return 1;
-  }
-  if ((raw_height | raw_width) < 0)
-       raw_height = raw_width  = 0;
-  if (!height) height = raw_height;
-  if (!width)  width  = raw_width;
-  if (fuji_width) {
-    width = height + fuji_width;
-    height = width - 1;
-    xmag = ymag = 1;
-  }
-  if (dng_version) {
-    strcat (model," DNG");
-    if (filters == UINT_MAX) filters = 0;
-    if (!filters)
-      colors = tiff_samples;
-    if (tiff_data_compression == 1)
-      load_raw = adobe_dng_load_raw_nc;
-    if (tiff_data_compression == 7)
-      load_raw = adobe_dng_load_raw_lj;
-    FORC4 cam_mul[c] = pre_mul[c];
-    goto dng_skip;
-  }
-
-/*  We'll try to decode anything from Canon or Nikon. */
-
-  if (filters == UINT_MAX) filters = 0x94949494;
-  if ((is_canon = !strcmp(make,"Canon"))) {
-    load_raw = memcmp (head+6,"HEAPCCDR",8) ?
-	lossless_jpeg_load_raw : canon_compressed_load_raw;
-    maximum = 0xfff;
-  }
-  if (!strcmp(make,"NIKON"))
-    load_raw = nikon_is_compressed() ?
-	nikon_compressed_load_raw : nikon_load_raw;
-  if (!strncmp (make,"OLYMPUS",7))
-    height += height & 1;
-
-/* Set parameters based on camera name (for non-DNG files). */
-
-  if (is_foveon) {
-    if (height*2 < width) ymag = 2;
-    if (height   > width) xmag = 2;
-    filters = 0;
-    load_raw = foveon_load_raw;
-    simple_coeff(0);
-  } else if (!strcmp(model,"PowerShot 600")) {
-    height = 613;
-    width  = 854;
-    colors = 4;
-    filters = 0xe1e4e1e4;
-    load_raw = canon_600_load_raw;
-  } else if (!strcmp(model,"PowerShot A5") ||
-	     !strcmp(model,"PowerShot A5 Zoom")) {
-    height = 773;
-    width  = 960;
-    raw_width = 992;
-    colors = 4;
-    filters = 0x1e4e1e4e;
-    load_raw = canon_a5_load_raw;
-  } else if (!strcmp(model,"PowerShot A50")) {
-    height =  968;
-    width  = 1290;
-    raw_width = 1320;
-    colors = 4;
-    filters = 0x1b4e4b1e;
-    load_raw = canon_a5_load_raw;
-  } else if (!strcmp(model,"PowerShot Pro70")) {
-    height = 1024;
-    width  = 1552;
-    colors = 4;
-    filters = 0x1e4b4e1b;
-    load_raw = canon_a5_load_raw;
-    black = 34;
-  } else if (!strcmp(model,"PowerShot Pro90 IS")) {
-    width  = 1896;
-    colors = 4;
-    filters = 0xb4b4b4b4;
-  } else if (is_canon && raw_width == 2144) {
-    height = 1550;
-    width  = 2088;
-    top_margin  = 8;
-    left_margin = 4;
-    if (!strcmp(model,"PowerShot G1")) {
-      colors = 4;
-      filters = 0xb4b4b4b4;
-    }
-  } else if (is_canon && raw_width == 2224) {
-    height = 1448;
-    width  = 2176;
-    top_margin  = 6;
-    left_margin = 48;
-  } else if (is_canon && raw_width == 2376) {
-    height = 1720;
-    width  = 2312;
-    top_margin  = 6;
-    left_margin = 12;
-  } else if (is_canon && raw_width == 2672) {
-    height = 1960;
-    width  = 2616;
-    top_margin  = 6;
-    left_margin = 12;
-  } else if (is_canon && raw_width == 3152) {
-    height = 2056;
-    width  = 3088;
-    top_margin  = 12;
-    left_margin = 64;
-    maximum = 0xfa0;
-  } else if (is_canon && raw_width == 3160) {
-    height = 2328;
-    width  = 3112;
-    top_margin  = 12;
-    left_margin = 44;
-  } else if (is_canon && raw_width == 3344) {
-    height = 2472;
-    width  = 3288;
-    top_margin  = 6;
-    left_margin = 4;
-  } else if (!strcmp(model,"EOS D2000C")) {
-    filters = 0x61616161;
-    black = curve[200];
-  } else if (!strcmp(model,"EOS-1D")) {
-    raw_height = height = 1662;
-    raw_width  = width  = 2496;
-    data_offset = 288912;
-    filters = 0x61616161;
-  } else if (!strcmp(model,"EOS-1DS")) {
-    raw_height = height = 2718;
-    raw_width  = width  = 4082;
-    data_offset = 289168;
-    filters = 0x61616161;
-  } else if (is_canon && raw_width == 3516) {
-    top_margin  = 14;
-    left_margin = 42;
-    goto canon_cr2;
-  } else if (is_canon && raw_width == 3596) {
-    top_margin  = 12;
-    left_margin = 74;
-    goto canon_cr2;
-  } else if (is_canon && raw_width == 4476) {
-    top_margin  = 34;
-    left_margin = 90;
-    goto canon_cr2;
-  } else if (is_canon && raw_width == 5108) {
-    top_margin  = 13;
-    left_margin = 98;
-    maximum = 0xe80;
-canon_cr2:
-    height = raw_height - top_margin;
-    width  = raw_width - left_margin;
-  } else if (!strcmp(model,"D1")) {
-    camera_red  *= 256/527.0;
-    camera_blue *= 256/317.0;
-  } else if (!strcmp(model,"D1X")) {
-    width  = 4024;
-    ymag = 2;
-  } else if (!strcmp(model,"D70")) {
-    maximum = 0xf53;
-  } else if (!strcmp(model,"D100")) {
-    if (tiff_data_compression == 34713 && load_raw == nikon_load_raw)
-      raw_width = (width += 3) + 3;
-    maximum = 0xf44;
-  } else if (!strcmp(model,"D2H")) {
-    width  = 2482;
-    left_margin = 6;
-  } else if (!strcmp(model,"D2X")) {
-    width  = 4312;
-  } else if (fsize == 1581060) {
-    height = 963;
-    width = 1287;
-    raw_width = 1632;
-    load_raw = nikon_e900_load_raw;
-    maximum = 0x3f4;
-    colors = 4;
-    filters = 0x1e1e1e1e;
-    simple_coeff(3);
-    pre_mul[0] = 1.2085;
-    pre_mul[1] = 1.0943;
-    pre_mul[3] = 1.1103;
-  } else if (fsize == 2465792) {
-    height = 1203;
-    width  = 1616;
-    raw_width = 2048;
-    load_raw = nikon_e900_load_raw;
-    maximum = 0x3dd;
-    colors = 4;
-    filters = 0x4b4b4b4b;
-    simple_coeff(3);
-    pre_mul[0] = 1.18193;
-    pre_mul[2] = 1.16452;
-    pre_mul[3] = 1.17250;
-  } else if (!strcmp(model,"E880") ||
-	     !strcmp(model,"E990")) {
-    if (!timestamp && !nikon_e990()) goto cp_e995;
-    height = 1540;
-    width  = 2064;
-    colors = 4;
-    filters = 0xb4b4b4b4;
-    simple_coeff(3);
-    pre_mul[0] = 1.196;
-    pre_mul[1] = 1.246;
-    pre_mul[2] = 1.018;
-  } else if (!strcmp(model,"E995")) {
-cp_e995:
-    strcpy (model, "E995");
-    height = 1540;
-    width  = 2064;
-    colors = 4;
-    filters = 0xe1e1e1e1;
-  } else if (!strcmp(model,"E2100")) {
-    if (!timestamp && !nikon_e2100()) goto cp_e2500;
-    height = 1206;
-    width  = 1616;
-    load_raw = nikon_e2100_load_raw;
-    pre_mul[0] = 1.945;
-    pre_mul[2] = 1.040;
-  } else if (!strcmp(model,"E2500")) {
-cp_e2500:
-    strcpy (model, "E2500");
-    height = 1204;
-    width  = 1616;
-    colors = 4;
-    filters = 0x4b4b4b4b;
-  } else if (fsize == 4775936) {
-    height = 1542;
-    width  = 2064;
-    load_raw = nikon_e2100_load_raw;
-    pre_mul[0] = 1.818;
-    pre_mul[2] = 1.618;
-    if ((i = nikon_3700()) == 2) {
-      strcpy (make, "OLYMPUS");
-      strcpy (model, "C740UZ");
-    } else if (i == 0) {
-      strcpy (make, "PENTAX");
-      strcpy (model,"Optio 33WR");
-      flip = 1;
-      filters = 0x16161616;
-      pre_mul[0] = 1.331;
-      pre_mul[2] = 1.820;
-    }
-  } else if (!strcmp(model,"E4300")) {
-    if (!timestamp && minolta_z2()) goto dimage_z2;
-    height = 1710;
-    width  = 2288;
-    filters = 0x16161616;
-    pre_mul[0] = 508;
-    pre_mul[1] = 256;
-    pre_mul[2] = 322;
-  } else if (!strcmp(model,"DiMAGE Z2")) {
-dimage_z2:
-    strcpy (make, "MINOLTA");
-    strcpy (model,"DiMAGE Z2");
-    height = 1710;
-    width  = 2288;
-    filters = 0x16161616;
-    load_raw = nikon_e2100_load_raw;
-    black = 68;
-  } else if (!strcmp(model,"E4500")) {
-    height = 1708;
-    width  = 2288;
-    colors = 4;
-    filters = 0xb4b4b4b4;
-  } else if (fsize == 7438336) {
-    height = 1924;
-    width  = 2576;
-    colors = 4;
-    filters = 0xb4b4b4b4;
-  } else if (!strcmp(model,"R-D1")) {
-    tiff_data_compression = 34713;
-    load_raw = nikon_load_raw;
-  } else if (!strcmp(model,"FinePix S5100") ||
-	     !strcmp(model,"FinePix S5500")) {
-    load_raw = unpacked_load_raw;
-    maximum = 0xffff;
-  } else if (!strncmp(model,"FinePix",7)) {
-    if (!strcmp(model+7,"S2Pro")) {
-      strcpy (model+7," S2Pro");
-      height = 2144;
-      width  = 2880;
-      black = 128;
-      flip = 6;
-    } else
-      maximum = 0x3e00;
-    top_margin = (raw_height - height)/2;
-    left_margin = (raw_width - width )/2;
-    data_offset += (top_margin*raw_width + left_margin) * 2;
-    if (fuji_secondary)
-      data_offset += use_secondary * ( strcmp(model+7," S3Pro")
-		? (raw_width *= 2) : raw_height*raw_width*2 );
-    fuji_width = width >> !fuji_layout;
-    width = (height >> fuji_layout) + fuji_width;
-    raw_height = height;
-    height = width - 1;
-    load_raw = fuji_load_raw;
-    if (!(fuji_width & 1)) filters = 0x49494949;
-  } else if (!strcmp(model,"RD175")) {
-    height = 986;
-    width = 1534;
-    data_offset = 513;
-    filters = 0x61616161;
-    load_raw = minolta_rd175_load_raw;
-  } else if (!strcmp(model,"Digital Camera KD-400Z")) {
-    height = 1712;
-    width  = 2312;
-    raw_width = 2336;
-    data_offset = 4034;
-    fseek (ifp, 2032, SEEK_SET);
-    goto konica_400z;
-  } else if (!strcmp(model,"Digital Camera KD-510Z")) {
-    data_offset = 4032;
-    pre_mul[0] = 1.297;
-    pre_mul[2] = 1.438;
-    fseek (ifp, 2032, SEEK_SET);
-    goto konica_510z;
-  } else if (!strcasecmp(make,"MINOLTA")) {
-    load_raw = unpacked_load_raw;
-    maximum = 0xf7d;
-    if (!strncmp(model,"DiMAGE A",8)) {
-      if (!strcmp(model,"DiMAGE A200"))
-	filters = 0x49494949;
-      load_raw = packed_12_load_raw;
-      maximum = model[8] == '1' ? 0xf8b : 0xfff;
-    } else if (!strncmp(model,"ALPHA",5) ||
-	       !strncmp(model,"DYNAX",5) ||
-	       !strncmp(model,"MAXXUM",6)) {
-      sprintf (model, "DYNAX %s", model+6 + (model[0]=='M'));
-      load_raw = packed_12_load_raw;
-      maximum = 0xffb;
-    } else if (!strncmp(model,"DiMAGE G",8)) {
-      if (model[8] == '4') {
-	data_offset = 5056;
-	pre_mul[0] = 1.602;
-	pre_mul[2] = 1.441;
-	fseek (ifp, 2078, SEEK_SET);
-	height = 1716;
-	width  = 2304;
-      } else if (model[8] == '5') {
-	data_offset = 4016;
-	fseek (ifp, 1936, SEEK_SET);
-konica_510z:
-	height = 1956;
-	width  = 2607;
-	raw_width = 2624;
-      } else if (model[8] == '6') {
-	data_offset = 4032;
-	fseek (ifp, 2030, SEEK_SET);
-	height = 2136;
-	width  = 2848;
-      }
-      filters = 0x61616161;
-konica_400z:
-      load_raw = unpacked_load_raw;
-      maximum = 0x3df;
-      order = 0x4d4d;
-      FORC4 cam_mul[(c >> 1) | ((c & 1) << 1)] = get2();
-    }
-    if (pre_mul[0] == 1 && pre_mul[2] == 1) {
-      pre_mul[0] = 1.42;
-      pre_mul[2] = 1.25;
-    }
-  } else if (!strncmp(model,"*ist D",6)) {
-    load_raw = model[6] ? packed_12_load_raw : unpacked_load_raw;
-    if (model[6] == 'S') height -= 2;
-  } else if (!strcmp(model,"Optio S")) {
-    if (fsize == 3178560) {
-      height = 1540;
-      width  = 2064;
-      load_raw = eight_bit_load_raw;
-      camera_red  *= 4;
-      camera_blue *= 4;
-      pre_mul[0] = 1.391;
-      pre_mul[2] = 1.188;
-    } else {
-      height = 1544;
-      width  = 2068;
-      raw_width = 3136;
-      load_raw = packed_12_load_raw;
-      maximum = 0xf7c;
-      pre_mul[0] = 1.137;
-      pre_mul[2] = 1.453;
-    }
-  } else if (!strncmp(model,"Optio S4",8)) {
-    height = 1737;
-    width  = 2324;
-    raw_width = 3520;
-    load_raw = packed_12_load_raw;
-    maximum = 0xf7a;
-    pre_mul[0] = 1.980;
-    pre_mul[2] = 1.570;
-  } else if (!strcmp(model,"STV680 VGA")) {
-    height = 484;
-    width  = 644;
-    load_raw = eight_bit_load_raw;
-    flip = 2;
-    filters = 0x16161616;
-    black = 16;
-    pre_mul[0] = 1.097;
-    pre_mul[2] = 1.128;
-  } else if (!strcmp(model,"531C")) {
-    height = 1200;
-    width  = 1600;
-    load_raw = unpacked_load_raw;
-    filters = 0x49494949;
-    pre_mul[1] = 1.218;
-  } else if (!strcmp(model,"F-201C")) {
-    height = 1200;
-    width  = 1600;
-    load_raw = eight_bit_load_raw;
-  } else if (!strcmp(model,"F-510C")) {
-    height = 1958;
-    width  = 2588;
-    load_raw = (fsize < 7500000) ? eight_bit_load_raw : unpacked_load_raw;
-    maximum = 0xfff0;
-  } else if (!strcmp(model,"F-810C")) {
-    height = 2469;
-    width  = 3272;
-    load_raw = unpacked_load_raw;
-    maximum = 0xfff0;
-  } else if (!strcmp(model,"A782")) {
-    height = 3000;
-    width  = 2208;
-    filters = 0x61616161;
-    load_raw = (fsize < 10000000) ? eight_bit_load_raw : unpacked_load_raw;
-    maximum = 0xffc0;
-  } else if (!strcmp(model,"3320AF")) {
-    height = 1536;
-    raw_width = width = 2048;
-    filters = 0x61616161;
-    load_raw = unpacked_load_raw;
-    maximum = 0x3ff;
-    pre_mul[0] = 1.717;
-    pre_mul[2] = 1.138;
-    fseek (ifp, 0x300000, SEEK_SET);
-    if ((order = guess_byte_order(0x10000)) == 0x4d4d) {
-      data_offset = (2048 * 16 + 28) * 2;
-      height -= 16;
-      width  -= 28;
-      maximum = 0xf5c0;
-      strcpy (make, "ISG");
-      sprintf (model, "%dx%d", width, height);
-    }
-  } else if (!strcmp(make,"Imacon")) {
-    height = raw_height - 6;
-    width  = raw_width - 10;
-    data_offset += 6 + raw_width*12;
-    flip = height > width+10 ? 5:3;
-    sprintf (model, "Ixpress %d-Mp", height*width/1000000);
-    filters = 0x61616161;
-    load_raw = unpacked_load_raw;
-    maximum = 0xffff;
-    pre_mul[0] = 1.963;
-    pre_mul[2] = 1.430;
-  } else if (!strcmp(make,"Sinar")) {
-    if (!memcmp(head,"8BPS",4)) {
-      fseek (ifp, 14, SEEK_SET);
-      height = get4();
-      width  = get4();
-      filters = 0x61616161;
-      data_offset = 68;
-    }
-    load_raw = unpacked_load_raw;
-    maximum = 0x3fff;
-  } else if (!strcmp(make,"Leaf")) {
-    load_raw = unpacked_load_raw;
-    if (tiff_data_compression == 99)
-      load_raw = lossless_jpeg_load_raw;
-    maximum = 0x3fff;
-    strcpy (model, "Valeo");
-    if (filters == 0) {
-      load_raw = leaf_load_raw;
-      maximum = 0xffff;
-      strcpy (model, "Volare");
-    }
-  } else if (!strcmp(make,"LEICA") || !strcmp(make,"Panasonic")) {
-    if (width == 3880) {
-      data_offset += 12;
-      maximum = 0xf7f0;
-      width -= 22;
-    } else if (width == 3304) {
-      maximum = 0xf94c;
-      width -= 16;
-    } else maximum = 0xfff0;
-    load_raw = unpacked_load_raw;
-  } else if (!strcmp(model,"E-1")) {
-    filters = 0x61616161;
-    load_raw = unpacked_load_raw;
-    maximum = 0xfff0;
-    black = 1024;
-  } else if (!strcmp(model,"E-10")) {
-    load_raw = unpacked_load_raw;
-    maximum = 0xfff0;
-    black = 2048;
-  } else if (!strncmp(model,"E-20",4)) {
-    load_raw = unpacked_load_raw;
-    maximum = 0xffc0;
-    black = 2560;
-  } else if (!strcmp(model,"E-300") ||
-	     !strcmp(model,"E-500")) {
-    width -= 20;
-    load_raw = olympus_e300_load_raw;
-    maximum = 0xfff;
-    if (fsize > 15728640) {
-      load_raw = unpacked_load_raw;
-      maximum = 0xfc30;
-    }
-  } else if (!strcmp(model,"C770UZ")) {
-    height = 1718;
-    width  = 2304;
-    filters = 0x16161616;
-    load_raw = nikon_e2100_load_raw;
-  } else if (!strcmp(make,"OLYMPUS")) {
-    load_raw = olympus_cseries_load_raw;
-    if (!strcmp(model,"C5050Z") ||
-	!strcmp(model,"C8080WZ"))
-      filters = 0x16161616;
-  } else if (!strcmp(model,"N Digital")) {
-    height = 2047;
-    width  = 3072;
-    filters = 0x61616161;
-    data_offset = 0x1a00;
-    load_raw = packed_12_load_raw;
-    maximum = 0xf1e;
-  } else if (!strcmp(model,"DSC-F828")) {
-    width = 3288;
-    left_margin = 5;
-    data_offset = 862144;
-    load_raw = sony_load_raw;
-    filters = 0x9c9c9c9c;
-    colors = 4;
-    black = 491;
-  } else if (!strcmp(model,"DSC-V3")) {
-    width = 3109;
-    left_margin = 59;
-    data_offset = 787392;
-    load_raw = sony_load_raw;
-  } else if (!strcmp(model,"DSC-R1")) {
-    width = 3925;
-    order = 0x4d4d;
-    load_raw = unpacked_load_raw;
-    black = 512;
-  } else if (!strncmp(model,"P850",4)) {
-    height = 1950;
-    width  = 2608;
-    data_offset = 76456;
-    filters = 0x16161616;
-    load_raw = packed_12_load_raw;
-  } else if (!strcasecmp(make,"KODAK")) {
-    filters = 0x61616161;
-    if (!strcmp(model,"NC2000F")) {
-      width -= 4;
-      left_margin = 2;
-    } else if (!strcmp(model,"EOSDCS3B")) {
-      width -= 4;
-      left_margin = 2;
-    } else if (!strcmp(model,"EOSDCS1")) {
-      width -= 4;
-      left_margin = 2;
-    } else if (!strcmp(model,"DCS315C")) {
-      black = 8;
-    } else if (!strcmp(model,"DCS330C")) {
-      black = 8;
-    } else if (!strcmp(model,"DCS420")) {
-      width -= 4;
-      left_margin = 2;
-    } else if (!strcmp(model,"DCS460")) {
-      width -= 4;
-      left_margin = 2;
-    } else if (!strcmp(model,"DCS460A")) {
-      width -= 4;
-      left_margin = 2;
-      colors = 1;
-      filters = 0;
-    } else if (!strcmp(model,"DCS520C")) {
-      black = 180;
-    } else if (!strcmp(model,"DCS560C")) {
-      black = 188;
-    } else if (!strcmp(model,"DCS620C")) {
-      black = 180;
-    } else if (!strcmp(model,"DCS620X")) {
-      black = 185;
-    } else if (!strcmp(model,"DCS660C")) {
-      black = 214;
-    } else if (!strcmp(model,"DCS660M")) {
-      black = 214;
-      colors = 1;
-      filters = 0;
-    } else if (!strcmp(model,"DCS760M")) {
-      colors = 1;
-      filters = 0;
-    }
-    switch (tiff_data_compression) {
-      case 0:				/* No compression */
-      case 1:
-	load_raw = kodak_easy_load_raw;
-	break;
-      case 7:				/* Lossless JPEG */
-	load_raw = lossless_jpeg_load_raw;
-      case 32867:
-	break;
-      case 65000:			/* Kodak DCR compression */
-	if (kodak_data_compression == 32803)
-	  load_raw = kodak_compressed_load_raw;
-	else {
-	  load_raw = kodak_yuv_load_raw;
-	  height = (height+1) & -2;
-	  width  = (width +1) & -2;
-	  filters = 0;
-	}
-	break;
-      default:
-	fprintf (stderr, "%s: %s %s uses unsupported compression method %d.\n",
-		ifname, make, model, tiff_data_compression);
-	return 1;
-    }
-    if (strstr(model,"DC25")) {
-      strcpy (model, "DC25");
-      data_offset = 15424;
-    }
-    if (!strncmp(model,"DC2",3)) {
-      height = 242;
-      if (fsize < 100000) {
-	raw_width = 256; width = 249;
-      } else {
-	raw_width = 512; width = 501;
-      }
-      data_offset += raw_width + 1;
-      colors = 4;
-      filters = 0x8d8d8d8d;
-      simple_coeff(1);
-      pre_mul[1] = 1.179;
-      pre_mul[2] = 1.209;
-      pre_mul[3] = 1.036;
-      load_raw = kodak_easy_load_raw;
-    } else if (!strcmp(model,"Digital Camera 40")) {
-      strcpy (model, "DC40");
-      height = 512;
-      width  = 768;
-      data_offset = 1152;
-      load_raw = kodak_radc_load_raw;
-    } else if (strstr(model,"DC50")) {
-      strcpy (model, "DC50");
-      height = 512;
-      width  = 768;
-      data_offset = 19712;
-      load_raw = kodak_radc_load_raw;
-    } else if (strstr(model,"DC120")) {
-      strcpy (model, "DC120");
-      height = 976;
-      width  = 848;
-      if (tiff_data_compression == 7)
-	load_raw = kodak_jpeg_load_raw;
-      else
-	load_raw = kodak_dc120_load_raw;
-    }
-  } else if (!strcmp(model,"Fotoman Pixtura")) {
-    height = 512;
-    width  = 768;
-    data_offset = 3632;
-    load_raw = kodak_radc_load_raw;
-    filters = 0x61616161;
-    simple_coeff(2);
-  } else if (!strcmp(make,"Rollei")) {
-    switch (raw_width) {
-      case 1316:
-	height = 1030;
-	width  = 1300;
-	top_margin  = 1;
-	left_margin = 6;
-	break;
-      case 2568:
-	height = 1960;
-	width  = 2560;
-	top_margin  = 2;
-	left_margin = 8;
-    }
-    filters = 0x16161616;
-    load_raw = rollei_load_raw;
-    pre_mul[0] = 1.8;
-    pre_mul[2] = 1.3;
-  } else if (!strcmp(model,"PC-CAM 600")) {
-    height = 768;
-    data_offset = width = 1024;
-    filters = 0x49494949;
-    load_raw = eight_bit_load_raw;
-    pre_mul[0] = 1.14;
-    pre_mul[2] = 2.73;
-  } else if (!strcmp(model,"QV-2000UX")) {
-    height = 1208;
-    width  = 1632;
-    data_offset = width * 2;
-    load_raw = eight_bit_load_raw;
-  } else if (fsize == 3217760) {
-    height = 1546;
-    width  = 2070;
-    raw_width = 2080;
-    load_raw = eight_bit_load_raw;
-  } else if (!strcmp(model,"QV-4000")) {
-    height = 1700;
-    width  = 2260;
-    load_raw = unpacked_load_raw;
-    maximum = 0xffff;
-  } else if (!strcmp(model,"QV-5700")) {
-    height = 1924;
-    width  = 2576;
-    load_raw = casio_qv5700_load_raw;
-  } else if (!strcmp(model,"QV-R51")) {
-    height = 1926;
-    width  = 2576;
-    raw_width = 3904;
-    load_raw = packed_12_load_raw;
-    pre_mul[0] = 1.340;
-    pre_mul[2] = 1.672;
-  } else if (!strcmp(model,"EX-S100")) {
-    height = 1544;
-    width  = 2058;
-    raw_width = 3136;
-    load_raw = packed_12_load_raw;
-    pre_mul[0] = 1.631;
-    pre_mul[2] = 1.106;
-  } else if (!strcmp(model,"EX-Z50")) {
-    height = 1931;
-    width  = 2570;
-    raw_width = 3904;
-    load_raw = packed_12_load_raw;
-    pre_mul[0] = 2.529;
-    pre_mul[2] = 1.185;
-  } else if (!strcmp(model,"EX-Z55")) {
-    height = 1960;
-    width  = 2570;
-    raw_width = 3904;
-    load_raw = packed_12_load_raw;
-    pre_mul[0] = 1.520;
-    pre_mul[2] = 1.316;
-  } else if (!strcmp(model,"EX-P505")) {
-    height = 1928;
-    width  = 2568;
-    raw_width = 3852;
-    load_raw = packed_12_load_raw;
-    pre_mul[0] = 2.07;
-    pre_mul[2] = 1.88;
-  } else if (!strcmp(model,"EX-P600")) {
-    height = 2142;
-    width  = 2844;
-    raw_width = 4288;
-    load_raw = packed_12_load_raw;
-    pre_mul[0] = 1.797;
-    pre_mul[2] = 1.219;
-  } else if (!strcmp(model,"EX-P700")) {
-    height = 2318;
-    width  = 3082;
-    raw_width = 4672;
-    load_raw = packed_12_load_raw;
-    pre_mul[0] = 1.758;
-    pre_mul[2] = 1.504;
-  } else if (!strcmp(make,"Nucore")) {
-    filters = 0x61616161;
-    load_raw = unpacked_load_raw;
-    if (width == 2598) {
-      filters = 0x16161616;
-      load_raw = nucore_load_raw;
-      flip = 2;
-    }
-  }
-  if (raw_color) adobe_coeff();
-dng_skip:
-  if (!load_raw || !height || is_jpeg) {
-    fprintf (stderr, "%s: Cannot decode %s %s%s images.\n",
-      ifname, make, model, is_jpeg ? " JPEG":"");
-    return 1;
-  }
-#ifdef NO_JPEG
-  if (load_raw == kodak_jpeg_load_raw) {
-    fprintf (stderr, "%s: decoder was not linked with libjpeg.\n", ifname);
-    return 1;
-  }
-#endif
-  if (!raw_height) raw_height = height;
-  if (!raw_width ) raw_width  = width;
-  raw_color |= use_camera_rgb && colors == 3;
-  FORCC {			/* Apply user-selected color balance */
-    rgb_cam[0][c] *= red_scale;
-    rgb_cam[2][c] *= blue_scale;
-  }
-  if (filters && colors == 3)
-    for (i=0; i < 32; i+=4) {
-      if ((filters >> i & 15) == 9)
-	filters |= 2 << i;
-      if ((filters >> i & 15) == 6)
-	filters |= 8 << i;
-    }
-  fseek (ifp, data_offset, SEEK_SET);
-  return 0;
-}
-
-#ifdef USE_LCMS
-void CLASS apply_profile (char *pfname)
-{
-  char *prof;
-  cmsHPROFILE hInProfile=NULL, hOutProfile;
-  cmsHTRANSFORM hTransform;
-
-  if (pfname)
-    hInProfile = cmsOpenProfileFromFile (pfname, "r");
-  else if (profile_length) {
-    prof = malloc (profile_length);
-    merror (prof, "apply_profile()");
-    fseek (ifp, profile_offset, SEEK_SET);
-    fread (prof, 1, profile_length, ifp);
-    hInProfile = cmsOpenProfileFromMem (prof, profile_length);
-    free (prof);
-  }
-  if (!hInProfile) return;
-  if (verbose)
-    fprintf (stderr, "Applying color profile...\n");
-  maximum = 0xffff;
-  use_gamma = 0;
-  raw_color = 1;		/* Don't use rgb_cam with a profile */
-
-  hOutProfile = cmsCreate_sRGBProfile();
-  hTransform = cmsCreateTransform (hInProfile, TYPE_RGBA_16,
-	hOutProfile, TYPE_RGBA_16, INTENT_PERCEPTUAL, 0);
-  cmsDoTransform (hTransform, image, image, width*height);
-
-  cmsDeleteTransform (hTransform);
-  cmsCloseProfile (hInProfile);
-  cmsCloseProfile (hOutProfile);
-}
-#endif
-
-/*
-   Convert the entire image to RGB colorspace and build a histogram.
- */
-void CLASS convert_to_rgb()
-{
-  int row, col, c, i, fc=0;
-  ushort *img;
-  float rgb[3];
-
-  if (verbose)
-    fprintf (stderr, raw_color ?
-	"Building histograms...\n" : "Converting to sRGB colorspace...\n");
-
-  if (document_mode)
-    colors = 1;
-  memset (histogram, 0, sizeof histogram);
-  for (row = 0; row < height; row++)
-    for (col = 0; col < width; col++) {
-      img = image[row*width+col];
-      if (document_mode)
-	fc = FC(row,col);
-      if (colors == 4 && raw_color)	/* Recombine the greens */
-	img[1] = (img[1] + img[3]) >> 1;
-      if (colors == 1)			/* RGB from grayscale */
-	FORC3 rgb[c] = img[fc];
-      else if (raw_color)		/* RGB from RGB (easy) */
-	goto norgb;
-      else FORC3			/* RGB via rgb_cam */
-	for (rgb[c]=i=0; i < colors; i++)
-	  rgb[c] += img[i] * rgb_cam[c][i];
-      FORC3 img[c] = CLIP((int) rgb[c]);
-norgb:
-      FORC3 histogram[c][img[c] >> 3]++;
-    }
-}
-
-void CLASS fuji_rotate()
-{
-  int i, wide, high, row, col;
-  double step;
-  float r, c, fr, fc;
-  unsigned ur, uc;
-  ushort (*img)[4], (*pix)[4];
-
-  if (!fuji_width) return;
-  if (verbose)
-    fprintf (stderr, "Rotating image 45 degrees...\n");
-  fuji_width = (fuji_width - 1 + shrink) >> shrink;
-  step = sqrt(0.5);
-  wide = fuji_width / step;
-  high = (height - fuji_width) / step;
-  img = calloc (wide*high, sizeof *img);
-  merror (img, "fuji_rotate()");
-
-  for (row=0; row < high; row++)
-    for (col=0; col < wide; col++) {
-      ur = r = fuji_width + (row-col)*step;
-      uc = c = (row+col)*step;
-      if (ur > height-2 || uc > width-2) continue;
-      fr = r - ur;
-      fc = c - uc;
-      pix = image + ur*width + uc;
-      for (i=0; i < colors; i++)
-	img[row*wide+col][i] =
-	  (pix[    0][i]*(1-fc) + pix[      1][i]*fc) * (1-fr) +
-	  (pix[width][i]*(1-fc) + pix[width+1][i]*fc) * fr;
-    }
-  free (image);
-  width  = wide;
-  height = high;
-  image  = img;
-  fuji_width = 0;
-}
-
-void CLASS flip_image()
-{
-  unsigned *flag;
-  int size, base, dest, next, row, col, temp;
-  INT64 *img, hold;
-
-  if (verbose)
-    fprintf (stderr, "Flipping image %c:%c:%c...\n",
-	flip & 1 ? 'H':'0', flip & 2 ? 'V':'0', flip & 4 ? 'T':'0');
-
-  img = (INT64 *) image;
-  size = height * width;
-  flag = calloc ((size+31) >> 5, sizeof *flag);
-  merror (flag, "flip_image()");
-  for (base = 0; base < size; base++) {
-    if (flag[base >> 5] & (1 << (base & 31)))
-      continue;
-    dest = base;
-    hold = img[base];
-    while (1) {
-      if (flip & 4) {
-	row = dest % height;
-	col = dest / height;
-      } else {
-	row = dest / width;
-	col = dest % width;
-      }
-      if (flip & 2)
-	row = height - 1 - row;
-      if (flip & 1)
-	col = width - 1 - col;
-      next = row * width + col;
-      if (next == base) break;
-      flag[next >> 5] |= 1 << (next & 31);
-      img[dest] = img[next];
-      dest = next;
-    }
-    img[dest] = hold;
-  }
-  free (flag);
-  if (flip & 4) {
-    temp = height;
-    height = width;
-    width = temp;
-    temp = ymag;
-    ymag = xmag;
-    xmag = temp;
-  }
-}
-
-/*
-   Write the image to an 8-bit PPM file.
- */
-void CLASS write_ppm (FILE *ofp)
-{
-  uchar (*ppm)[3], lut[0x10000];
-  int perc, c, val, total, i, row, col;
-  float white=0, r;
-
-  fprintf (ofp, "P6\n%d %d\n255\n", xmag*width, ymag*height);
-  ppm = calloc (width, 3*xmag);
-  merror (ppm, "write_ppm()");
-
-  perc = width * height * 0.01;		/* 99th percentile white point */
-  if (fuji_width) perc /= 2;
-  FORC3 {
-    for (val=0x2000, total=0; --val > 32; )
-      if ((total += histogram[c][val]) > perc) break;
-    if (white < val) white = val;
-  }
-  white *= 8 / bright;
-  for (i=0; i < 0x10000; i++) {
-    r = i / white;
-    val = 256 * ( !use_gamma ? r :
-#ifdef SRGB_GAMMA
-	r <= 0.00304 ? r*12.92 : pow(r,2.5/6)*1.055-0.055 );
-#else
-	r <= 0.018 ? r*4.5 : pow(r,0.45)*1.099-0.099 );
-#endif
-    if (val > 255) val = 255;
-    lut[i] = val;
-  }
-  for (row=0; row < height; row++) {
-    for (col=0; col < width; col++)
-      FORC3 for (i=0; i < xmag; i++)
-	ppm[xmag*col+i][c] = lut[image[row*width+col][c]];
-    for (i=0; i < ymag; i++)
-      fwrite (ppm, width, 3*xmag, ofp);
-  }
-  free (ppm);
-}
-
-/*
-   Write the image to a 16-bit Photoshop file.
- */
-void CLASS write_psd (FILE *ofp)
-{
-  char head[] = {
-    '8','B','P','S',		/* signature */
-    0,1,0,0,0,0,0,0,		/* version and reserved */
-    0,3,			/* number of channels */
-    0,0,0,0,			/* height, big-endian */
-    0,0,0,0,			/* width, big-endian */
-    0,16,			/* 16-bit color */
-    0,3,			/* mode (1=grey, 3=rgb) */
-    0,0,0,0,			/* color mode data */
-    0,0,0,0,			/* image resources */
-    0,0,0,0,			/* layer/tqmask info */
-    0,0				/* no compression */
-  };
-  int hw[2], psize, row, col, c;
-  ushort *buffer, *pred;
-
-  hw[0] = htonl(height);	/* write the header */
-  hw[1] = htonl(width);
-  memcpy (head+14, hw, sizeof hw);
-  fwrite (head, 40, 1, ofp);
-
-  psize = height*width;
-  buffer = calloc (6, psize);
-  merror (buffer, "write_psd()");
-  pred = buffer;
-
-  for (row = 0; row < height; row++)
-    for (col = 0; col < width; col++) {
-      FORC3 pred[c*psize] = htons(image[row*width+col][c]);
-      pred++;
-    }
-  fwrite(buffer, psize, 6, ofp);
-  free (buffer);
-}
-
-/*
-   Write the image to a 16-bit PPM file.
- */
-void CLASS write_ppm16 (FILE *ofp)
-{
-  int row, col, c;
-  ushort (*ppm)[3];
-
-  if (maximum < 256) maximum = 256;
-  fprintf (ofp, "P6\n%d %d\n%d\n", width, height, maximum);
-
-  ppm = calloc (width, 6);
-  merror (ppm, "write_ppm16()");
-
-  for (row = 0; row < height; row++) {
-    for (col = 0; col < width; col++)
-      FORC3 ppm[col][c] = htons(image[row*width+col][c]);
-    fwrite (ppm, width, 6, ofp);
-  }
-  free (ppm);
-}
-
-int CLASS main (int argc, char **argv)
-{
-  int arg, status=0, user_flip=-1, user_black=-1, user_qual=-1;
-  int timestamp_only=0, identify_only=0, write_to_stdout=0;
-  int half_size=0, use_fuji_rotate=1, quality;
-  char opt, *ofname, *cp;
-  struct utimbuf ut;
-  const char *write_ext = ".ppm";
-  FILE *ofp = stdout;
-#ifdef USE_LCMS
-  char *profile = NULL;
-#endif
-
-#ifndef LOCALTIME
-  putenv ("TZ=UTC");
-#endif
-  if (argc == 1)
-  {
-    fprintf (stderr,
-    "\nRaw Photo Decoder \"dcraw\" v7.82"
-    "\nby Dave Coffin, dcoffin a cybercom o net"
-    "\n\nUsage:  %s [options] file1 file2 ...\n"
-    "\nValid options:"
-    "\n-v        Print verbose messages"
-    "\n-z        Change file dates to camera timestamp"
-    "\n-i        Identify files without decoding them"
-    "\n-c        Write to standard output"
-    "\n-a        Use automatic white balance"
-    "\n-w        Use camera white balance, if possible"
-    "\n-r <num>  Set red  multiplier (default = 1.0)"
-    "\n-l <num>  Set blue multiplier (default = 1.0)"
-    "\n-b <num>  Set brightness      (default = 1.0)"
-    "\n-k <num>  Set black point"
-    "\n-n        Don't clip colors"
-    "\n-m        Don't convert camera RGB to sRGB"
-#ifdef USE_LCMS
-    "\n-p <file> Apply color profile from file"
-#endif
-    "\n-d        Document Mode (no color, no interpolation)"
-    "\n-q [0-3]  Set the interpolation quality"
-    "\n-h        Half-size color image (twice as fast as \"-q 0\")"
-    "\n-f        Interpolate RGGB as four colors"
-    "\n-B <domain> <range>  Apply bilateral filter to reduce noise"
-    "\n-j        Show Fuji Super CCD images tilted 45 degrees"
-    "\n-s        Use secondary pixels (Fuji Super CCD SR only)"
-    "\n-t [0-7]  Flip image (0 = none, 3 = 180, 5 = 90CCW, 6 = 90CW)"
-    "\n-2        Write  8-bit PPM with 0.45 gamma (default)"
-    "\n-3        Write 16-bit linear PSD (Adobe Photoshop)"
-    "\n-4        Write 16-bit linear PPM"
-    "\n\n", argv[0]);
-    return 1;
-  }
-
-  argv[argc] = "";
-  for (arg=1; argv[arg][0] == '-'; ) {
-    opt = argv[arg++][1];
-    if ((strchr("Bbrlktq", opt) && !isdigit(argv[arg][0])) ||
-		   (opt == 'B' && !isdigit(argv[arg+1][0]))) {
-      fprintf (stderr, "Non-numeric argument to \"-%c\"\n", opt);
-      return 1;
-    }
-    switch (opt)
-    {
-      case 'B':  sigma_d     = atof(argv[arg++]);
-		 sigma_r     = atof(argv[arg++]);  break;
-      case 'b':  bright      = atof(argv[arg++]);  break;
-      case 'r':  red_scale   = atof(argv[arg++]);  break;
-      case 'l':  blue_scale  = atof(argv[arg++]);  break;
-      case 'k':  user_black  = atoi(argv[arg++]);  break;
-      case 't':  user_flip   = atoi(argv[arg++]);  break;
-      case 'q':  user_qual   = atoi(argv[arg++]);  break;
-#ifdef USE_LCMS
-      case 'p':  profile     =      argv[arg++] ;  break;
-#endif
-      case 'z':  timestamp_only    = 1;  break;
-      case 'i':  identify_only     = 1;  break;
-      case 'c':  write_to_stdout   = 1;  break;
-      case 'v':  verbose           = 1;  break;
-      case 'h':  half_size         = 1;		/* "-h" implies "-f" */
-      case 'f':  four_color_rgb    = 1;  break;
-      case 'd':  document_mode     = 1;  break;
-      case 'a':  use_auto_wb       = 1;  break;
-      case 'w':  use_camera_wb     = 1;  break;
-      case 'j':  use_fuji_rotate   = 0;  break;
-      case 's':  use_secondary     = 1;  break;
-      case 'n':  clip_color        = 0;  break;
-      case 'm':  use_camera_rgb    = 1;  break;
-
-      case '2':  write_fun = write_ppm;   write_ext = ".ppm";  break;
-      case '3':  write_fun = write_psd;   write_ext = ".psd";  break;
-      case '4':  write_fun = write_ppm16; write_ext = ".ppm";  break;
-
-      default:
-	fprintf (stderr, "Unknown option \"-%c\".\n", opt);
-	return 1;
-    }
-  }
-  if (arg == argc) {
-    fprintf (stderr, "No files to process.\n");
-    return 1;
-  }
-  if (write_to_stdout) {
-    if (isatty(1)) {
-      fprintf (stderr, "Will not write an image to the terminal!\n");
-      return 1;
-    }
-#if defined(WIN32) || defined(DJGPP) || defined(__CYGWIN__)
-    if (setmode(1,O_BINARY) < 0) {
-      perror("setmode()");
-      return 1;
-    }
-#endif
-  }
-  for ( ; arg < argc; arg++) {
-    status = 1;
-    image = NULL;
-    if (setjmp (failure)) {
-      if (fileno(ifp) > 2) fclose(ifp);
-      if (fileno(ofp) > 2) fclose(ofp);
-      if (image) free (image);
-      status = 1;
-      continue;
-    }
-    ifname = argv[arg];
-    if (!(ifp = fopen (ifname, "rb"))) {
-      perror (ifname);
-      continue;
-    }
-    if (timestamp_only) {
-      if ((status = identify(1)))
-	fprintf (stderr, "%s has no timestamp.\n", ifname);
-      else if (identify_only)
-	printf ("%10ld%10d %s\n", timestamp, shot_order, ifname);
-      else {
-	if (verbose)
-	  fprintf (stderr, "%s time set to %d.\n", ifname, (int) timestamp);
-	ut.actime = ut.modtime = timestamp;
-	utime (ifname, &ut);
-      }
-      goto next;
-    }
-    if ((status = identify(0))) goto next;
-    if (user_flip >= 0)
-      flip = user_flip;
-    switch ((flip+3600) % 360) {
-      case 270:  flip = 5;  break;
-      case 180:  flip = 3;  break;
-      case  90:  flip = 6;
-    }
-    if (identify_only) {
-      fprintf (stderr, "%s is a %s %s image.\n", ifname, make, model);
-next:
-      fclose(ifp);
-      continue;
-    }
-    shrink = half_size && filters;
-    iheight = (height + shrink) >> shrink;
-    iwidth  = (width  + shrink) >> shrink;
-    image = calloc (iheight*iwidth*sizeof *image + meta_length, 1);
-    merror (image, "main()");
-    meta_data = (char *) (image + iheight*iwidth);
-    if (verbose)
-      fprintf (stderr,
-	"Loading %s %s image from %s...\n", make, model, ifname);
-    (*load_raw)();
-    bad_pixels();
-    height = iheight;
-    width  = iwidth;
-#ifdef COLORCHECK
-    colorcheck();
-#endif
-    quality = 2 + !fuji_width;
-    if (user_qual >= 0) quality = user_qual;
-    if (user_black >= 0) black = user_black;
-    if (is_foveon) foveon_interpolate();
-    else scale_colors();
-    if (shrink) filters = 0;
-    cam_to_cielab (NULL,NULL);
-    if (filters && !document_mode) {
-      if (quality == 0)
-	lin_interpolate();
-      else if (quality < 3 || colors > 3)
-	   vng_interpolate();
-      else ahd_interpolate();
-    }
-    if (sigma_d > 0 && sigma_r > 0) bilateral_filter();
-    if (use_fuji_rotate) fuji_rotate();
-#ifdef USE_LCMS
-    apply_profile (profile);
-#endif
-    convert_to_rgb();
-    if (flip) flip_image();
-    fclose(ifp);
-    ofname = malloc (strlen(ifname) + 16);
-    merror (ofname, "main()");
-    if (write_to_stdout)
-      strcpy (ofname, "standard output");
-    else {
-      strcpy (ofname, ifname);
-      if ((cp = strrchr (ofname, '.'))) *cp = 0;
-      strcat (ofname, write_ext);
-      ofp = fopen (ofname, "wb");
-      if (!ofp) {
-	status = 1;
-	perror(ofname);
-	goto cleanup;
-      }
-    }
-    if (verbose)
-      fprintf (stderr, "Writing data to %s...\n", ofname);
-    (*write_fun)(ofp);
-    if (ofp != stdout)
-      fclose(ofp);
-cleanup:
-    free (ofname);
-    free (image);
-  }
-  return status;
-}
diff --git a/filters/krita/raw/kis_raw_import.cpp b/filters/krita/raw/kis_raw_import.cpp
deleted file mode 100644
index 62cd3e829..000000000
--- a/filters/krita/raw/kis_raw_import.cpp
+++ /dev/null
@@ -1,630 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#include "config.h" 
- 
-#ifdef HAVE_SYS_TYPES_H 
-   #include <sys/types.h> 
-#endif 
-
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#include <tqstring.h>
-#include <tqfile.h>
-#include <tqimage.h>
-#include <tqradiobutton.h>
-#include <tqgroupbox.h>
-#include <tqbuttongroup.h>
-#include <tqpushbutton.h>
-#include <tqlabel.h>
-#include <tqcheckbox.h>
-#include <tqapplication.h>
-#include <tqcursor.h>
-#include <tqeventloop.h>
-#include <tqprogressdialog.h>
-#include <tqtimer.h>
-
-#include <kglobal.h>
-#include <kconfig.h>
-#include <knuminput.h>
-#include <kgenericfactory.h>
-#include <kdialogbase.h>
-#include <kdialog.h>
-#include <kmessagebox.h>
-#include <klocale.h>
-#include <kprocess.h>
-
-#include <KoDocument.h>
-#include <KoFilterChain.h>
-
-#include "imageviewer.h"
-#include "kis_config.h"
-#include "kis_cmb_idlist.h"
-#include "kis_types.h"
-#include "kis_raw_import.h"
-#include "kis_doc.h"
-#include "kis_image.h"
-#include "kis_meta_registry.h"
-#include "kis_layer.h"
-#include "kis_annotation.h"
-#include "kis_profile.h"
-#include "kis_colorspace_factory_registry.h"
-#include "kis_iterators_pixel.h"
-#include "kis_abstract_colorspace.h"
-#include "kis_paint_device.h"
-#include "kis_paint_layer.h"
-#include "wdgrawimport.h"
-
-typedef KGenericFactory<KisRawImport, KoFilter> KisRawImportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkrita_raw_import, KisRawImportFactory("kofficefilters"))
-
-KisRawImport::KisRawImport(KoFilter *, const char *, const TQStringList&)
-    : KoFilter()
-    , m_data(0)
-    , m_process(0)
-    , m_progress(0)
-    , m_err(false)
-{
-    m_dialog = new KDialogBase();
-    m_dialog->enableButtonApply(false);
-    m_page = new WdgRawImport(m_dialog);
-    m_dialog -> setMainWidget(m_page);
-
-    connect(m_page->bnPreview, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotUpdatePreview()));
-    connect(m_page->grpColorSpace, TQT_SIGNAL(clicked( int )), this, TQT_SLOT(slotFillCmbProfiles()));
-    connect(m_page->grpChannelDepth, TQT_SIGNAL(clicked( int )), this, TQT_SLOT(slotFillCmbProfiles()));
-
-    KisConfig cfg;
-    TQString monitorProfileName = cfg.monitorProfile();
-    m_monitorProfile = KisMetaRegistry::instance()->csRegistry()->getProfileByName(monitorProfileName);
-
-    slotFillCmbProfiles();
-}
-
-KisRawImport::~KisRawImport()
-{
-    delete m_dialog;
-    delete m_process;
-}
-
-KoFilter::ConversiontqStatus KisRawImport::convert(const TQCString& from, const TQCString& to)
-{
-    if (from != "image/x-raw" || to != "application/x-krita") {
-        return KoFilter::NotImplemented;
-    }
-
-    if (m_err) {
-        return KoFilter::CreationError;
-    }
-
-    kdDebug(41008) << "Krita importing from Raw\n";
-
-    KisDoc * doc = dynamic_cast<KisDoc*>(m_chain -> outputDocument());
-    if (!doc) {
-        return KoFilter::CreationError;
-    }
-
-    doc -> prepareForImport();
-
-    TQString filename = m_chain -> inputFile();
-
-    if (filename.isEmpty()) {
-        return KoFilter::FileNotFound;
-    }
-
-    slotUpdatePreview();
-
-    // Show dialog
-    m_dialog->setCursor(TQt::ArrowCursor);
-    TQApplication::setOverrideCursor(TQt::ArrowCursor);
-
-    KConfig * cfg = KGlobal::config();
-    cfg->setGroup("rawimport");
-    
-    m_page->radioGray->setChecked(cfg->readBoolEntry("gray", false));
-    m_page->radioRGB->setChecked(cfg->readBoolEntry("rgb", true));
-    m_page->radio8->setChecked(cfg->readBoolEntry("8bit", false));
-    m_page->radio16->setChecked(cfg->readBoolEntry("16bit", true));
-    m_page->chkFourColorRGB->setChecked( cfg->readBoolEntry("four_color_rgb", false));
-    m_page->chkCameraColors->setChecked( cfg->readBoolEntry("camera_colors", false));
-    m_page->chkBrightness->setChecked( cfg->readBoolEntry("do_brightness", false));
-    m_page->chkBlackpoint->setChecked( cfg->readBoolEntry("do_blackpoint", false));
-    m_page->chkRed->setChecked( cfg->readBoolEntry("do_red", false));
-    m_page->chkBlue->setChecked( cfg->readBoolEntry("do_blue", false));
-    m_page->radioFixed->setChecked( cfg->readBoolEntry("fixed_wb", true));
-    m_page->radioAutomatic->setChecked( cfg->readBoolEntry("automatic_wb", false));
-    m_page->radioCamera->setChecked( cfg->readBoolEntry("camera_wb", false));
-    m_page->chkClip->setChecked( cfg->readBoolEntry("clip", true));
-    m_page->chkProfile->setChecked(cfg->readBoolEntry("useprofile", false));
-    m_page->dblBrightness->setValue(cfg->readDoubleNumEntry("brightness", 1.0));
-    m_page->dblBlackpoint->setValue(cfg->readDoubleNumEntry("blackpoint", 0));
-    m_page->dblRed->setValue(cfg->readDoubleNumEntry("red", 1.0));
-    m_page->dblBlue->setValue(cfg->readDoubleNumEntry("blue", 1.0));
-    
-    if (m_dialog->exec() == TQDialog::Accepted) {
-
-        cfg->writeEntry("gray", m_page->radioGray->isChecked());
-        cfg->writeEntry("rgb", m_page->radioRGB->isChecked());
-        cfg->writeEntry("8bit", m_page->radio8->isChecked());
-        cfg->writeEntry("16bit", m_page->radio16->isChecked());
-        cfg->writeEntry("four_color_rgb", m_page->chkFourColorRGB -> isChecked());
-        cfg->writeEntry("camera_colors", m_page->chkCameraColors -> isChecked());
-        cfg->writeEntry("do_brightness", m_page->chkBrightness -> isChecked());
-        cfg->writeEntry("do_blackpoint", m_page->chkBlackpoint -> isChecked());
-        cfg->writeEntry("do_red", m_page->chkRed -> isChecked());
-        cfg->writeEntry("do_blue", m_page->chkBlue -> isChecked());
-        cfg->writeEntry("fixed_wb", m_page->radioFixed -> isChecked());
-        cfg->writeEntry("automatic_wb", m_page->radioAutomatic -> isChecked());
-        cfg->writeEntry("camera_wb", m_page->radioCamera -> isChecked());
-        cfg->writeEntry("clip", m_page->chkClip->isChecked());
-        cfg->writeEntry("useprofile", m_page->chkProfile->isChecked());
-        cfg->writeEntry("brightness", m_page->dblBrightness->value());
-        cfg->writeEntry("blackpoint", m_page->dblBlackpoint->value());
-        cfg->writeEntry("red", m_page->dblRed->value());
-        cfg->writeEntry("blue", m_page->dblBlue->value());
-
-        TQApplication::setOverrideCursor(TQt::waitCursor);
-        // Create a busy indicator to show that we didn't die or so
-        m_progress = new TQProgressDialog();
-        m_progress -> setTotalSteps(0);
-        m_progress -> setCancelButton(0);
-        TQTimer timer;
-        connect(&timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(incrementProgress()));
-        timer.start(200);
-
-        doc -> undoAdapter() -> setUndo(false);
-
-        getImageData(createArgumentList(false));
-
-        KisImageSP image = 0;
-        KisPaintLayerSP layer = 0;
-        KisPaintDeviceSP device = 0;
-
-        TQApplication::restoreOverrideCursor();
-
-        delete m_progress;
-        m_progress = 0;
-
-        if (m_page->radio8->isChecked()) {
-        // 8 bits
-
-            TQImage img;
-            img.loadFromData(*m_data);
-
-            KisColorSpace * cs = 0;
-            if (m_page->radioGray->isChecked()) {
-                cs  = KisMetaRegistry::instance()->csRegistry()->getColorSpace( KisID("GRAYA"), profile() );
-            }
-            else {
-               cs  = KisMetaRegistry::instance()->csRegistry()->getColorSpace( KisID("RGBA"), profile() );
-            }
-            if (cs == 0) { kdDebug() << "No CS\n"; return KoFilter::InternalError; }
-
-            image = new KisImage(doc->undoAdapter(), img.width(), img.height(), cs, filename);
-            if (image == 0) return KoFilter::CreationError;
-            image->blockSignals(true); // Don't send out signals while we're building the image
-            
-            layer = dynamic_cast<KisPaintLayer*>( image->newLayer(image -> nextLayerName(), OPACITY_OPAQUE).data() );
-            if (layer == 0) return KoFilter::CreationError;
-
-            device = layer->paintDevice();
-            if (device == 0) return KoFilter::CreationError;
-
-            device->convertFromTQImage(img, "");
-
-        } else {
-        // 16 bits
-
-            TQ_UINT32 startOfImagedata = 0;
-            TQSize sz = determineSize(startOfImagedata);
-
-            kdDebug(41008) << "Total bytes: " << m_data->size()
-                    << "\n start of image data: " << startOfImagedata
-                    << "\n bytes for pixels left: " << m_data->size() - startOfImagedata
-                    << "\n total pixels: " << sz.width() * sz.height()
-                    << "\n total pixel bytes: " << sz.width() * sz.height() * 6
-                    << "\n total necessary bytes: " << (sz.width() * sz.height() * 6) + startOfImagedata
-                    << "\n";
-
-
-            char * data = m_data->data() + startOfImagedata;
-
-            KisColorSpace * cs = 0;
-            if (m_page->radioGray->isChecked()) {
-                cs  = KisMetaRegistry::instance()->csRegistry()->getColorSpace( KisID("GRAYA16"), profile() );
-            }
-            else {
-                cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace( KisID("RGBA16"), profile() );
-            }
-            if (cs == 0) return KoFilter::InternalError;
-
-            image = new KisImage( doc->undoAdapter(), sz.width(), sz.height(), cs, filename);
-            if (image == 0)return KoFilter::CreationError;
-
-            layer = dynamic_cast<KisPaintLayer*> (image->newLayer(image -> nextLayerName(), OPACITY_OPAQUE).data());
-            if (layer == 0) return KoFilter::CreationError;
-
-            device = layer->paintDevice();
-            if (device == 0) return KoFilter::CreationError;
-
-            // Copy the colordata to the pixels
-            int pos = 0;
-
-            for (int line = 0; line < sz.height(); ++line) {
-                KisHLineIterator it = device->createHLineIterator(0, line, sz.width(), true);
-
-                while (!it.isDone()) {
-                    if (m_page->radioGray->isChecked()) {
-                        TQ_UINT16 d = (TQ_INT16)*(data + pos);
-                        d = ntohs(d);
-                        memcpy(it.rawData(), &d, 2);
-                        pos += 2;
-                    }
-                    else {
-                        // Red
-                        TQ_UINT16 d = (TQ_INT16)*(data + pos);
-                        d = ntohs(d);
-                        memcpy(it.rawData() + 4, &d, 2);
-                        
-                        // Green
-                        pos += 2;
-                        d = (TQ_INT16)*(data + pos );
-                        d = ntohs(d);
-                        memcpy(it.rawData() + 2, &d, 2);
-
-                        // Blue
-                        pos += 2;
-                        d = (TQ_INT16)*(data + pos );
-                        d = ntohs(d);
-                        memcpy(it.rawData(), &d, 2);
-
-                        pos += 2;
-                    }
-                    cs->setAlpha(it.rawData(), OPACITY_OPAQUE, 1);
-                    ++it;
-                }
-            }
-        }
-        layer->setDirty();
-        kdDebug() << "going to set image\n";
-        doc -> setCurrentImage(image);
-        doc -> undoAdapter() -> setUndo(true);
-        doc -> setModified(false);
-        kdDebug() << "everything ok\n";
-
-        TQApplication::restoreOverrideCursor();
-        return KoFilter::OK;
-    }
-
-    TQApplication::restoreOverrideCursor();
-    return KoFilter::UserCancelled;
-}
-
-void KisRawImport::incrementProgress()
-{
-    m_progress -> setProgress(m_progress -> progress() + 10);
-}
-
-
-void KisRawImport::slotUpdatePreview()
-{
-    TQApplication::setOverrideCursor(TQt::waitCursor);
-    getImageData(createArgumentList(true));
-
-    kdDebug(41008) << "Retrieved " << m_data->size() << " bytes of image data\n";
-
-    if (m_data->isNull()) return;
-
-    TQImage img;
-
-    if (m_page->radio8->isChecked()) {
-        // 8 bits
-        img.loadFromData(*m_data);
-
-    } else {
-        // 16 bits
-
-        TQ_UINT32 startOfImagedata = 0;
-        TQSize sz = determineSize(startOfImagedata);
-
-        kdDebug(41008) << "Total bytes: " << m_data->size()
-                  << "\n start of image data: " << startOfImagedata
-                  << "\n bytes for pixels left: " << m_data->size() - startOfImagedata
-                  << "\n total pixels: " << sz.width() * sz.height()
-                  << "\n total pixel bytes: " << sz.width() * sz.height() * 6
-                  << "\n total necessary bytes: " << (sz.width() * sz.height() * 6) + startOfImagedata
-                  << "\n";
-
-        char * data = m_data->data() + startOfImagedata;
-
-        KisColorSpace * cs = 0;
-        if (m_page->radioGray->isChecked()) {
-            cs  = KisMetaRegistry::instance()->csRegistry()->getColorSpace( KisID("GRAYA16"), profile() );
-        }
-        else {
-            cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace( KisID("RGBA16"), profile() );
-        }
-        KisPaintDevice * dev = new KisPaintDevice(cs, "preview");
-            // Copy the colordata to the pixels
-        int pos = 0;
-
-        for (int line = 0; line < sz.height(); ++line) {
-            KisHLineIterator it = dev->createHLineIterator(0, line, sz.width(), true);
-
-            while (!it.isDone()) {
-                if (m_page->radioGray->isChecked()) {
-                    TQ_UINT16 d = (TQ_INT16)*(data + pos);
-                    d = ntohs(d);
-                    memcpy(it.rawData(), &d, 2);
-                    pos += 2;
-                }
-                else {
-                            // Red
-                        TQ_UINT16 d = (TQ_INT16)*(data + pos);
-                        d = ntohs(d);
-                        memcpy(it.rawData() + 4, &d, 2);
-                            
-                            // Green
-                        pos += 2;
-                        d = (TQ_INT16)*(data + pos );
-                        d = ntohs(d);
-                        memcpy(it.rawData() + 2, &d, 2);
-    
-                            // Blue
-                        pos += 2;
-                        d = (TQ_INT16)*(data + pos );
-                        d = ntohs(d);
-                        memcpy(it.rawData(), &d, 2);
-
-                        pos += 2;
-                }
-                cs->setAlpha(it.rawData(), OPACITY_OPAQUE, 1);
-                ++it;
-            }
-        }
-
-        img = dev->convertToTQImage(m_monitorProfile);
-    }
-
-    m_page->lblPreview->setImage(img);
-    TQApplication::restoreOverrideCursor();
-}
-
-
-void KisRawImport::getImageData( TQStringList arguments )
-{
-    //    delete m_process;
-    delete m_data;
-
-    kdDebug(41008) << "getImageData " << arguments.join(" ") << "\n";
-    KProcess process (this);
-    m_data = new TQByteArray(0);
-
-    for (TQStringList::iterator it = arguments.begin(); it != arguments.end(); ++it) {
-        process << *it;
-    }
-
-    process.setUseShell(true);
-    connect(&process, TQT_SIGNAL(receivedStdout(KProcess *, char *, int)), this, TQT_SLOT(slotReceivedStdout(KProcess *, char *, int)));
-    connect(&process, TQT_SIGNAL(receivedStderr(KProcess *, char *, int)), this, TQT_SLOT(slotReceivedStderr(KProcess *, char *, int)));
-    connect(&process, TQT_SIGNAL(processExited(KProcess *)), this, TQT_SLOT(slotProcessDone()));
-
-
-    kdDebug(41008) << "Starting process\n";
-
-    if (!process.start(KProcess::NotifyOnExit, KProcess::AllOutput)) {
-        KMessageBox::error( 0, i18n("Cannot convert RAW files because the dcraw executable could not be started."));
-    }
-    while (process.isRunning()) {
-        //kdDebug(41008) << "Waiting...\n";
-        tqApp->eventLoop()->processEvents(TQEventLoop::ExcludeUserInput);
-        //process.wait(2);
-    }
-
-    if (process.normalExit()) {
-        kdDebug(41008) << "Return value of process: " << process.exitStatus() << "\n";
-    }
-    else {
-        kdDebug(41008) << "Process did not exit normally. Exit signal: " << process.exitSignal() << "\n";
-        m_err = true;
-    }
-
-}
-
-
-void KisRawImport::slotProcessDone()
-{
-    kdDebug(41008) << "process done!\n";
-}
-
-void KisRawImport::slotReceivedStdout(KProcess *, char *buffer, int buflen)
-{
-    //kdDebug(41008) << "stdout received " << buflen << " bytes on stdout.\n";
-    //kdDebug(41008) << TQString::fromAscii(buffer, buflen) << "\n";
-    int oldSize = m_data->size();
-    m_data->resize(oldSize + buflen, TQGArray::SpeedOptim);
-    memcpy(m_data->data() + oldSize, buffer, buflen);
-}
-
-void KisRawImport::slotReceivedStderr(KProcess *, char *buffer, int buflen)
-{
-    TQByteArray b(buflen);
-    memcpy(b.data(), buffer, buflen);
-    kdDebug(41008) << TQString(b) << "\n";
-    KMessageBox::error(0, i18n("Error: Dcraw cannot load this image. Message: ") + TQString(b));
-    m_err = true;
-}
-
-
-TQStringList KisRawImport::createArgumentList(bool forPreview)
-{
-    TQStringList args;
-
-    args.append("dcraw"); // XXX: Create a kritadcraw so we can count on it being available
-
-    //args.append("-v"); // Verbose
-
-    args.append("-c"); // Write to stdout
-
-    if (forPreview) {
-        args.append("-h"); // Fast, half size image
-    }
-
-    if (m_page->radio8->isChecked()) {
-        args.append("-2"); // 8 bits
-    }
-    else {
-        args.append("-4"); // 16 bits
-    }
-
-    if (m_page->radioGray->isChecked()) {
-        args.append("-d"); // Create grayscale image
-    }
-
-    if (m_page->chkCameraColors->isChecked()) {
-        args.append("-m"); // Use camera raw colors instead of sRGB
-    }
-
-    if (m_page->radioAutomatic->isChecked()) {
-        args.append("-a"); // Automatic white balancing
-    }
-
-    if (m_page->radioCamera->isChecked()) {
-        args.append("-w"); // Use camera white balance, if present
-    }
-
-    if (m_page->chkFourColorRGB->isChecked()) {
-        args.append("-f"); // Interpolate RGB as four colors
-    }
-
-    if (!m_page->chkClip->isChecked()) {
-        args.append("-n"); // Do not clip colors
-    }
-
-    if (m_page->chkBrightness->isChecked()) {
-        args.append("-b " + TQString::number(m_page->dblBrightness->value()));
-    }
-    
-    if (m_page->chkBlackpoint->isChecked()) {
-        args.append("-k " + TQString::number(m_page->dblBlackpoint->value()));
-    }
-
-    if (m_page->chkRed->isChecked()) {
-        args.append("-r " + TQString::number(m_page->dblRed->value()));
-    }
-    
-    if (m_page->chkBlue->isChecked()) {
-        args.append("-l " + TQString::number(m_page->dblBlue->value()));
-    }
-
-    
-    KisProfile * pf  = profile();
-    if (m_page->chkProfile->isChecked()) {
-        if (!pf->filename().isNull()) {
-            // Use the user-set profile, if it's not an lcms internal
-            // profile. This does not add the profile to the image, we
-            // need to do that later.
-            args.append("-p \"" + pf->filename() + "\"");
-        }
-    }
-
-    // Don't forget the filename
-    args.append("\"" + m_chain -> inputFile() + "\"");
-
-    return args;
-}
-
-TQSize KisRawImport::determineSize(TQ_UINT32& startOfImageData)
-{
-    if (m_data->isNull() || m_data->size() < 2048) {
-        startOfImageData = 0;
-        return TQSize(0,0);
-    }
-
-    TQString magick = TQString::fromAscii(m_data->data(), 2);
-    if (magick != "P6") {
-        kdDebug(41008) << " Bad magick! " << magick << "\n";
-        startOfImageData = 0;
-        return TQSize(0,0);
-    }
-
-    // Find the third newline that marks the header end in a dcraw generated ppm.
-    TQ_UINT32 i = 0;
-    TQ_UINT32 counter = 0;
-
-    while (true) {
-        if (counter == 3) break;
-        if (m_data->data()[i] == '\n') {
-            counter++;
-        }
-        ++i;
-    }
-
-    TQString size = TQStringList::split("\n", TQString::fromAscii(m_data->data(), i))[1];
-    kdDebug(41008) << "Header: " << TQString::fromAscii(m_data->data(), i) << "\n";
-    TQStringList sizelist = TQStringList::split(" ", size);
-    TQ_INT32 w = sizelist[0].toInt();
-    TQ_INT32 h = sizelist[1].toInt();
-
-    startOfImageData = i;
-    return TQSize(w, h);
-
-}
-
-KisProfile * KisRawImport::profile()
-{
-    if (m_page->chkProfile->isChecked()) {
-        return KisMetaRegistry::instance()->csRegistry()->getProfileByName(m_page->cmbProfile->currentText());
-    }
-    else
-        return 0;
-}
-
-void KisRawImport::slotFillCmbProfiles()
-{
-    KisID s = getColorSpace();
-
-    KisColorSpaceFactory * csf = KisMetaRegistry::instance()->csRegistry() -> get(s);
-    m_page -> cmbProfile -> clear();
-    TQValueVector<KisProfile *>  profileList = KisMetaRegistry::instance()->csRegistry()->profilesFor( csf );
-        TQValueVector<KisProfile *> ::iterator it;
-        for ( it = profileList.begin(); it != profileList.end(); ++it ) {
-        m_page -> cmbProfile -> insertItem((*it) -> productName());
-    }
-}
-
-KisID KisRawImport::getColorSpace()
-{
-    if (m_page->radioRGB->isChecked()) {
-        if (m_page->radio16->isChecked()) {
-            return KisID( "RGBA16" );
-        }
-    }
-    else {
-        if (m_page->radio16->isChecked()) {
-            return KisID( "GRAYA16" );
-        }
-        else {
-            return KisID( "GRAYA" );
-        }
-    }
-    return KisID("RGBA");
-}
-
-#include "kis_raw_import.moc"
diff --git a/filters/krita/raw/kis_raw_import.h b/filters/krita/raw/kis_raw_import.h
deleted file mode 100644
index 35adb6e19..000000000
--- a/filters/krita/raw/kis_raw_import.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_RAW_IMPORT_H_
-#define KIS_RAW_IMPORT_H_
-
-#include <KoFilter.h>
-
-class KProcess;
-class KDialogBase;
-class WdgRawImport;
-class KisProfile;
-class TQProgressDialog;
-
-class KisRawImport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    KisRawImport(KoFilter *tqparent, const char *name, const TQStringList&);
-    virtual ~KisRawImport();
-
-public:
-    virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-
-
-private slots:
-
-    void slotUpdatePreview();
-    void slotFillCmbProfiles();
-    void slotProcessDone();
-    void slotReceivedStdout(KProcess *proc, char *buffer, int buflen);
-    void slotReceivedStderr(KProcess *proc, char *buffer, int buflen);
-    void incrementProgress();
-
-private:
-
-    TQStringList createArgumentList(bool forPreview = false);
-    TQSize determineSize(TQ_UINT32& startOfImageData);
-    void getImageData(TQStringList arguments);
-    KisProfile * profile();
-    KisID getColorSpace();
-    
-private:
-    TQByteArray * m_data;
-    KDialogBase * m_dialog;
-    WdgRawImport * m_page;
-    KisProfile * m_monitorProfile;
-    KProcess * m_process;
-    TQProgressDialog* m_progress;
-    bool m_err; // Set to true when slotReceivedStderr is called
-};
-
-#endif // KIS_RAW_IMPORT_H_
-
diff --git a/filters/krita/raw/krita_raw.desktop b/filters/krita/raw/krita_raw.desktop
deleted file mode 100644
index 4b4fd1fc8..000000000
--- a/filters/krita/raw/krita_raw.desktop
+++ /dev/null
@@ -1,57 +0,0 @@
-[Desktop Entry]
-Name=Krita
-Name[hi]=के-रिता
-Name[km]= Krita
-Name[lo]=ກຣິຕາ
-Name[ne]=क्रिता
-Exec=krita %u
-GenericName=Painting and Image Editing Application
-GenericName[bg]=Редактор на графични изображения
-GenericName[ca]=Programa de dibuix i manipulació d'imatges
-GenericName[cs]=Malování a úpravy obrázků
-GenericName[cy]=Cymhwysiad Peintio Golygu Delweddau
-GenericName[da]=Male- og billedredigeringsprogram
-GenericName[de]=Mal- und Bildbearbeitungsprogramm
-GenericName[el]=Εφαρμογή επεξεργασίας εικόνων
-GenericName[eo]=Aplikaĵo por Pentrado kaj Bildredaktado
-GenericName[es]=Aplicación de pintura y de edición de imágenes
-GenericName[et]=Joonistamise ja pilditöötluse rakendus
-GenericName[eu]=Irudien marrazketa eta ediziorako aplikazioa
-GenericName[fa]=کاربرد ویرایش تصویر و نقاشی
-GenericName[fi]=Maalaus- ja kuvankäsitelyohjelma
-GenericName[fr]=Application de dessin et de manipulation d'images
-GenericName[fy]=Ofbyldingsmanipulaasje
-GenericName[gl]=Aplicación de Pintura e Manipulación de Imaxes
-GenericName[he]=יישום לציור ועריכת תמונות
-GenericName[hr]=Aplikacija za obradu slika i fotografija
-GenericName[hu]=Képszerkesztő
-GenericName[is]=Málun og myndritill
-GenericName[it]=Applicazione di disegno e di modifica delle immagini
-GenericName[ja]=描画と画像編集のためのアプリケーション
-GenericName[km]=កម្មវិធី​គូរ​គំនូរ និង​កែសម្រួល​រូបភាព
-GenericName[lv]=Zīmēšanas un attēlu apstrādes programma
-GenericName[nb]=Program for tegning og bilderedigering
-GenericName[nds]=Programm för't Malen un Bildbewerken
-GenericName[ne]=पेन्टीङ्ग र छवि सम्पादन अनुप्रयोग
-GenericName[nl]=Afbeeldingsmanipulatie
-GenericName[pl]=Program do edycji zdjęć oraz rysunków
-GenericName[pt]=Aplicação de Pintura e Edição de Imagens
-GenericName[pt_BR]=Aplicação de Pintura e Edição de Imagens
-GenericName[ru]=Растровые изображения
-GenericName[se]=Málen- ja govvagieđahallanprográmma
-GenericName[sk]=Program pre tvorbu a úpravu obrázkov
-GenericName[sl]=Program za risanje in obdelavo slik
-GenericName[sr]=Програм за цртање и уређивање слика
-GenericName[sr@Latn]=Program za crtanje i uređivanje slika
-GenericName[sv]=Målnings- och bildredigeringsprogram
-GenericName[uk]=Програма для малювання і редагування зображень
-GenericName[uz]=Rasmlar bilan ishlaydigan dastur
-GenericName[uz@cyrillic]=Расмлар билан ишлайдиган дастур
-GenericName[zh_CN]=绘图和图像编辑应用程序
-GenericName[zh_TW]=繪圖與影像處理程式
-MimeType=image/x-raw
-Type=Application
-Icon=krita
-Categories=
-X-KDE-StartupNotify=true
-X-DCOP-ServiceType=Multi
diff --git a/filters/krita/raw/krita_raw_import.desktop b/filters/krita/raw/krita_raw_import.desktop
deleted file mode 100644
index 61cb4da17..000000000
--- a/filters/krita/raw/krita_raw_import.desktop
+++ /dev/null
@@ -1,51 +0,0 @@
-[Desktop Entry]
-Type=Service
-Name=Krita RAW Import Filter
-Name[bg]=Филтър за импортиране на RAW в Krita
-Name[br]=Sil enporzh RAW evit Krita
-Name[ca]=Filtre d'importació RAW per a Krita
-Name[da]=Krita RAW-importfilter
-Name[de]=Krita RAW-Importfilter
-Name[el]=Φίλτρο εισαγωγής RAW του Krita
-Name[eo]=Krita RAW-importfiltrilo
-Name[es]=Filtro de importación a RAW de Krita
-Name[et]=Krita toorpiltide impordifilter
-Name[fa]=پالایۀ واردات Krita RAW
-Name[fi]=Krita RAW -tuontisuodin
-Name[fr]=Filtre d'importation RAW de Krita
-Name[fy]=Krita RAW Ymportfilter
-Name[ga]=Scagaire Iompórtála RAW Krita
-Name[gl]=Filtro de Importación RAW para Krita
-Name[he]=Krita RAW מסנן יבוא
-Name[hr]=Krita RAW filtar uvoza
-Name[hu]=Krita RAW importszűrő
-Name[is]=Krita RAW innflutningssía
-Name[it]=Filtro di importazione di formati grezzi per Krita
-Name[ja]=Krita RAW インポートフィルタ
-Name[km]=តម្រង​នាំចូល RAW សម្រាប់ Krita
-Name[lt]=Krita RAW importavimo filtras
-Name[lv]=Krita RAW importa filtrs
-Name[nb]=RAW importfilter for Krita
-Name[nds]=RAW-Importfilter för Krita
-Name[ne]=क्रिता RAW आयात फिल्टर
-Name[nl]=Krita RAW Importfilter
-Name[pl]=Filtr importu formatu RAW dla Krita
-Name[pt]=Filtro de Importação RAW para o Krita
-Name[pt_BR]=Filtro de Importação RAW para o Krita
-Name[ru]=Фильтр импорта рисунков RAW в Krita
-Name[se]=Krita RAW-sisafievrridansilli
-Name[sk]=RAW filter pre import do Krita
-Name[sl]=Uvozni filter RAW za Krito
-Name[sr]=Krita-ин филтер за увоз из RAW-а
-Name[sr@Latn]=Krita-in filter za uvoz iz RAW-a
-Name[sv]=Krita RAW-importfilter
-Name[uk]=Фільтр імпорту RAW для Krita
-Name[uz]=Krita RAW import filteri
-Name[uz@cyrillic]=Krita RAW импорт филтери
-Name[zh_CN]=Krita RAW 导入过滤器
-Name[zh_TW]=Krita RAW 匯入過濾程式
-X-KDE-Export=application/x-krita
-X-KDE-Import=image/x-raw
-X-KDE-Weight=1
-X-KDE-Library=libkrita_raw_import
-ServiceTypes=KOfficeFilter
diff --git a/filters/krita/raw/wdgrawimport.ui b/filters/krita/raw/wdgrawimport.ui
deleted file mode 100644
index d6080a012..000000000
--- a/filters/krita/raw/wdgrawimport.ui
+++ /dev/null
@@ -1,496 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>WdgRawImport</class>
-<widget class="TQWidget">
-    <property name="name">
-        <cstring>WdgRawImport</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>835</width>
-            <height>596</height>
-        </rect>
-    </property>
-    <grid>
-        <property name="name">
-            <cstring>unnamed</cstring>
-        </property>
-        <widget class="TQPushButton" row="2" column="2">
-            <property name="name">
-                <cstring>bnPreview</cstring>
-            </property>
-            <property name="text">
-                <string>&amp;Update Preview</string>
-            </property>
-        </widget>
-        <widget class="ImageViewer" row="0" column="1" rowspan="2" colspan="2">
-            <property name="name">
-                <cstring>lblPreview</cstring>
-            </property>
-            <property name="sizePolicy">
-                <sizepolicy>
-                    <hsizetype>7</hsizetype>
-                    <vsizetype>7</vsizetype>
-                    <horstretch>0</horstretch>
-                    <verstretch>0</verstretch>
-                </sizepolicy>
-            </property>
-            <property name="tqminimumSize">
-                <size>
-                    <width>200</width>
-                    <height>150</height>
-                </size>
-            </property>
-        </widget>
-        <widget class="TQLayoutWidget" row="0" column="0">
-            <property name="name">
-                <cstring>tqlayout2</cstring>
-            </property>
-            <vbox>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="TQGroupBox">
-                    <property name="name">
-                        <cstring>grpColorSettings</cstring>
-                    </property>
-                    <property name="title">
-                        <string>Color Settings</string>
-                    </property>
-                    <grid>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <widget class="TQCheckBox" row="1" column="0">
-                            <property name="name">
-                                <cstring>chkBlackpoint</cstring>
-                            </property>
-                            <property name="text">
-                                <string>Blackpoint:</string>
-                            </property>
-                        </widget>
-                        <widget class="TQCheckBox" row="2" column="0">
-                            <property name="name">
-                                <cstring>chkRed</cstring>
-                            </property>
-                            <property name="text">
-                                <string>Red multiplier:</string>
-                            </property>
-                        </widget>
-                        <widget class="KDoubleSpinBox" row="2" column="1">
-                            <property name="name">
-                                <cstring>dblRed</cstring>
-                            </property>
-                            <property name="minValue">
-                                <number>0.1</number>
-                            </property>
-                            <property name="value">
-                                <number>1</number>
-                            </property>
-                        </widget>
-                        <widget class="TQCheckBox" row="3" column="0">
-                            <property name="name">
-                                <cstring>chkBlue</cstring>
-                            </property>
-                            <property name="text">
-                                <string>Blue multiplier:</string>
-                            </property>
-                        </widget>
-                        <widget class="KDoubleSpinBox" row="3" column="1">
-                            <property name="name">
-                                <cstring>dblBlue</cstring>
-                            </property>
-                            <property name="minValue">
-                                <number>0.1</number>
-                            </property>
-                            <property name="value">
-                                <number>1</number>
-                            </property>
-                        </widget>
-                        <widget class="KDoubleSpinBox" row="1" column="1">
-                            <property name="name">
-                                <cstring>dblBlackpoint</cstring>
-                            </property>
-                        </widget>
-                        <widget class="KDoubleSpinBox" row="0" column="1">
-                            <property name="name">
-                                <cstring>dblBrightness</cstring>
-                            </property>
-                            <property name="minValue">
-                                <number>0.1</number>
-                            </property>
-                            <property name="value">
-                                <number>2</number>
-                            </property>
-                            <property name="toolTip" stdset="0">
-                                <string>Brightness. 1.0 is default</string>
-                            </property>
-                        </widget>
-                        <widget class="TQButtonGroup" row="4" column="0" rowspan="1" colspan="2">
-                            <property name="name">
-                                <cstring>grpWhiteBalance</cstring>
-                            </property>
-                            <property name="title">
-                                <string>&amp;White Balance</string>
-                            </property>
-                            <property name="exclusive">
-                                <bool>true</bool>
-                            </property>
-                            <vbox>
-                                <property name="name">
-                                    <cstring>unnamed</cstring>
-                                </property>
-                                <widget class="TQRadioButton">
-                                    <property name="name">
-                                        <cstring>radioFixed</cstring>
-                                    </property>
-                                    <property name="text">
-                                        <string>White card in sunlight</string>
-                                    </property>
-                                    <property name="checked">
-                                        <bool>true</bool>
-                                    </property>
-                                </widget>
-                                <widget class="TQRadioButton">
-                                    <property name="name">
-                                        <cstring>radioAutomatic</cstring>
-                                    </property>
-                                    <property name="text">
-                                        <string>Automatic</string>
-                                    </property>
-                                    <property name="accel">
-                                        <string></string>
-                                    </property>
-                                    <property name="checked">
-                                        <bool>false</bool>
-                                    </property>
-                                    <property name="toolTip" stdset="0">
-                                        <string>Automatic color balance. The default is to use a fixed color balance based on a white card photographed in sunlight.</string>
-                                    </property>
-                                </widget>
-                                <widget class="TQRadioButton">
-                                    <property name="name">
-                                        <cstring>radioCamera</cstring>
-                                    </property>
-                                    <property name="text">
-                                        <string>From camera</string>
-                                    </property>
-                                    <property name="accel">
-                                        <string></string>
-                                    </property>
-                                    <property name="toolTip" stdset="0">
-                                        <string>
- Use the color balance specified by the camera. If this cannot be found, dcraw prints a warning and reverts to the default. </string>
-                                    </property>
-                                </widget>
-                            </vbox>
-                        </widget>
-                        <widget class="TQCheckBox" row="0" column="0">
-                            <property name="name">
-                                <cstring>chkBrightness</cstring>
-                            </property>
-                            <property name="text">
-                                <string>Brightness:</string>
-                            </property>
-                        </widget>
-                    </grid>
-                </widget>
-                <widget class="TQButtonGroup">
-                    <property name="name">
-                        <cstring>grpColorSpace</cstring>
-                    </property>
-                    <property name="title">
-                        <string>Colorspace</string>
-                    </property>
-                    <property name="exclusive">
-                        <bool>true</bool>
-                    </property>
-                    <grid>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <widget class="TQRadioButton" row="0" column="0">
-                            <property name="name">
-                                <cstring>radioGray</cstring>
-                            </property>
-                            <property name="text">
-                                <string>&amp;Document mode</string>
-                            </property>
-                        </widget>
-                        <widget class="TQRadioButton" row="1" column="0">
-                            <property name="name">
-                                <cstring>radioRGB</cstring>
-                            </property>
-                            <property name="text">
-                                <string>&amp;RGB</string>
-                            </property>
-                            <property name="checked">
-                                <bool>true</bool>
-                            </property>
-                        </widget>
-                    </grid>
-                </widget>
-                <widget class="TQButtonGroup">
-                    <property name="name">
-                        <cstring>grpChannelDepth</cstring>
-                    </property>
-                    <property name="title">
-                        <string>Channel Depth</string>
-                    </property>
-                    <property name="checkable">
-                        <bool>false</bool>
-                    </property>
-                    <property name="exclusive">
-                        <bool>true</bool>
-                    </property>
-                    <property name="selectedId" stdset="0">
-                        <number>0</number>
-                    </property>
-                    <grid>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <widget class="TQRadioButton" row="1" column="0">
-                            <property name="name">
-                                <cstring>radio16</cstring>
-                            </property>
-                            <property name="text">
-                                <string>&amp;16 bits per channel</string>
-                            </property>
-                            <property name="accel">
-                                <string>Alt+1</string>
-                            </property>
-                            <property name="checked">
-                                <bool>true</bool>
-                            </property>
-                        </widget>
-                        <widget class="TQRadioButton" row="0" column="0">
-                            <property name="name">
-                                <cstring>radio8</cstring>
-                            </property>
-                            <property name="text">
-                                <string>&amp;8 bits per channel</string>
-                            </property>
-                            <property name="accel">
-                                <string>Alt+8</string>
-                            </property>
-                            <property name="checked">
-                                <bool>false</bool>
-                            </property>
-                        </widget>
-                    </grid>
-                </widget>
-                <widget class="TQCheckBox">
-                    <property name="name">
-                        <cstring>chkFourColorRGB</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Interpolate RGB as four colors</string>
-                    </property>
-                    <property name="toolTip" stdset="0">
-                        <string>Interpolate RGB as four colors. This blurs the image a little, but it eliminates false 2x2 mesh patterns. </string>
-                    </property>
-                </widget>
-            </vbox>
-        </widget>
-        <spacer row="2" column="1">
-            <property name="name">
-                <cstring>spacer3</cstring>
-            </property>
-            <property name="orientation">
-                <enum>Horizontal</enum>
-            </property>
-            <property name="sizeType">
-                <enum>Expanding</enum>
-            </property>
-            <property name="tqsizeHint">
-                <size>
-                    <width>500</width>
-                    <height>20</height>
-                </size>
-            </property>
-        </spacer>
-        <spacer row="1" column="0" rowspan="2" colspan="1">
-            <property name="name">
-                <cstring>spacer3_2</cstring>
-            </property>
-            <property name="orientation">
-                <enum>Vertical</enum>
-            </property>
-            <property name="sizeType">
-                <enum>Expanding</enum>
-            </property>
-            <property name="tqsizeHint">
-                <size>
-                    <width>20</width>
-                    <height>120</height>
-                </size>
-            </property>
-        </spacer>
-        <widget class="TQLayoutWidget" row="3" column="0" rowspan="1" colspan="3">
-            <property name="name">
-                <cstring>tqlayout4</cstring>
-            </property>
-            <hbox>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="TQCheckBox">
-                    <property name="name">
-                        <cstring>chkClip</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Clip colors to prevent pink highlights</string>
-                    </property>
-                    <property name="accel">
-                        <string></string>
-                    </property>
-                    <property name="checked">
-                        <bool>true</bool>
-                    </property>
-                    <property name="toolTip" stdset="0">
-                        <string>By default, dcraw clips all colors to prevent pink hues in the highlights. Combine this option with -b 0.25 to leave the image data completely unclipped.</string>
-                    </property>
-                </widget>
-                <widget class="TQLayoutWidget">
-                    <property name="name">
-                        <cstring>tqlayout10</cstring>
-                    </property>
-                    <hbox>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <widget class="TQCheckBox">
-                            <property name="name">
-                                <cstring>chkProfile</cstring>
-                            </property>
-                            <property name="text">
-                                <string></string>
-                            </property>
-                            <property name="accel">
-                                <string></string>
-                            </property>
-                        </widget>
-                        <widget class="KisCmbIDList">
-                            <property name="name">
-                                <cstring>cmbProfile</cstring>
-                            </property>
-                            <property name="enabled">
-                                <bool>true</bool>
-                            </property>
-                            <property name="sizePolicy">
-                                <sizepolicy>
-                                    <hsizetype>3</hsizetype>
-                                    <vsizetype>0</vsizetype>
-                                    <horstretch>0</horstretch>
-                                    <verstretch>0</verstretch>
-                                </sizepolicy>
-                            </property>
-                        </widget>
-                    </hbox>
-                </widget>
-                <widget class="TQCheckBox">
-                    <property name="name">
-                        <cstring>chkCameraColors</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Use camera raw colors, not sRGB</string>
-                    </property>
-                </widget>
-                <spacer>
-                    <property name="name">
-                        <cstring>spacer4</cstring>
-                    </property>
-                    <property name="orientation">
-                        <enum>Horizontal</enum>
-                    </property>
-                    <property name="sizeType">
-                        <enum>Expanding</enum>
-                    </property>
-                    <property name="tqsizeHint">
-                        <size>
-                            <width>41</width>
-                            <height>20</height>
-                        </size>
-                    </property>
-                </spacer>
-            </hbox>
-        </widget>
-    </grid>
-</widget>
-<customwidgets>
-    <customwidget>
-        <class>KisCmbIDList</class>
-        <header location="local">kis_cmb_idlist.h</header>
-        <sizehint>
-            <width>1</width>
-            <height>24</height>
-        </sizehint>
-        <container>0</container>
-        <sizepolicy>
-            <hordata>5</hordata>
-            <verdata>5</verdata>
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-        </sizepolicy>
-        <pixmap>image0</pixmap>
-    </customwidget>
-    <customwidget>
-        <class>ImageViewer</class>
-        <header location="local">imageviewer.h</header>
-        <sizehint>
-            <width>-1</width>
-            <height>-1</height>
-        </sizehint>
-        <container>0</container>
-        <sizepolicy>
-            <hordata>5</hordata>
-            <verdata>5</verdata>
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-        </sizepolicy>
-        <pixmap>image1</pixmap>
-        <signal>moved(QPoint)</signal>
-        <signal>moving(QPoint)</signal>
-        <signal>startMoving(QPoint)</signal>
-        <slot access="public" specifier="">zoomIn()</slot>
-        <slot access="public" specifier="">slot()</slot>
-        <slot access="public" specifier="">zoomOut()</slot>
-        <slot access="public" specifier="">slot()</slot>
-        <slot access="public" specifier="">slot()</slot>
-        <slot access="public" specifier="">slotMoving(QPoint)</slot>
-        <slot access="public" specifier="">slotMoved(QPoint)</slot>
-        <slot access="public" specifier="">slot()</slot>
-        <slot access="public" specifier="">slotStartMoving(QPoint)</slot>
-    </customwidget>
-</customwidgets>
-<images>
-    <image name="image0">
-        <data format="PNG" length="1002">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003b149444154388dad945f4c5b551cc73fe7dc4b7b4bcba0762d45c43114323599ee6192609c51d883892ce083f1718b3ebb185f8dc91e972cf39d2d2a2f1af664b6f1e0fe3863a0718969700eb0c52142da0242a1bd6d696f7bcff101585203ceb8fd9ece39f99dcff9fe7edf939f88c562ec465f5f9fe609442c161362173c3e3eae7b7a7ac8e7f36432196cdbfe4f907c3e4f2291201e8fe338cec3737357e9e8e828aded1e229d650e1f2d51754b082110124c13a4dc5ea341eb9dc284c0558a853f3ce8cb0677ef500fde7d39d2596679e326597b8e9abb85d7a770ab16ab6983ec5a05b487a70e36f0f4e10afe408d6a558310980108478dba4a1e8233990c5d474b64ed39aa3a8fe5f3317fbf81dbd70bccfeb205947632fd74f6589c1c6ea2f70d03a58ba0c1f2c9bdc1b66de3b8256a6e11cbe7e3ee1d181b590124fe2693aeee08d223c82c3a2c24b7b874bec8f26288774f7bd054504aef0dde6e99c0eb83f9fb266323cb80a27fb0958141836044605a2ee5523393371cc646fee2da37195aa35d0c0c5b4859ac03d7e91712dcaac5adab3650a3ff9d08ef7dd8404bb48869e5d958b5b87dadc4c9a1464e9f0d0326df7ebd86bd2e310cb1bf62d384d59441f2d70a070e1c60e09489929b988681bdd9cc97170bcc4c65595f71f8e0e3301337fc24a7732467831875a47f289652b0be5e4151e6d07316c1b0c0340d8ab92023e76d66a6b2840e36d2fb7a13fee632475e6edc367ea98a90fb98b7dd6310ca0328a44761582e1bab41befabcc0ec940d28bc5e93b68e064cab84e1d9beaeb48934eac1f53b01c1b000fca496aa54b61a99fcde61662a4b4b4b23d1680be9d426173e4df3602a48ea411989a4fd590f52a8fd156b05ed9d350e3defe3cfdf4b4c7ce770ea7d3fb9f520afbe1620daeee5c26735d20b9b9cfb6811a754a439e4e5c5639a4caa1e5caf586bfc0197b78702005cb9b4cae4cd3267ce8638fe964bd72b393e39d74928d242617303a756a37f284447770dcdbffc6384a05a85de1306e9a52057c7527c7131c3c42d3f475eb2303c82d4fc3276d6811db37efeb148723082d9b08f79f97c1e5729109a9a28307cc622d2d6cdf52b2b24efe548dedb00142009862cfa879ee1a71f6cec928353511472fbf4389148b0b0e0c108081412458dfe21c9f11351e67e7358595468246d1d1e5e38a6e9e851bc39d84ab502a669331dafec0d8ec7e3e8cb06e1a881d727d1ae40180a434a8c9db129a54126ad48a7358c2b4c5352c8c374bcccdab2bb37d8719cba79fab8211f9df218e0582c261e95f8bfc04f1a1e8bc5c4dfe0a190172af6a9690000000049454e44ae426082</data>
-    </image>
-    <image name="image1">
-        <data format="XBM.GZ" length="79">789c534e494dcbcc4b554829cdcdad8c2fcf4c29c95030e0524611cd48cd4ccf28010a1797249664262b2467241641a592324b8aa363156c15aab914146aadb90067111b1f</data>
-    </image>
-</images>
-<tabstops>
-    <tabstop>radioRGB</tabstop>
-    <tabstop>radio16</tabstop>
-    <tabstop>chkBrightness</tabstop>
-    <tabstop>dblBrightness</tabstop>
-    <tabstop>chkBlackpoint</tabstop>
-    <tabstop>dblBlackpoint</tabstop>
-    <tabstop>chkRed</tabstop>
-    <tabstop>dblRed</tabstop>
-    <tabstop>chkBlue</tabstop>
-    <tabstop>dblBlue</tabstop>
-    <tabstop>radioFixed</tabstop>
-    <tabstop>chkFourColorRGB</tabstop>
-    <tabstop>chkClip</tabstop>
-    <tabstop>chkProfile</tabstop>
-    <tabstop>chkCameraColors</tabstop>
-    <tabstop>bnPreview</tabstop>
-    <tabstop>radioAutomatic</tabstop>
-</tabstops>
-<tqlayoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/filters/krita/tiff/Makefile.am b/filters/krita/tiff/Makefile.am
deleted file mode 100644
index 520547587..000000000
--- a/filters/krita/tiff/Makefile.am
+++ /dev/null
@@ -1,55 +0,0 @@
-kde_module_LTLIBRARIES = libkritatiffimport.la libkritatiffexport.la
-
-libkritatiffexport_la_LDFLAGS = -avoid-version -module -no-undefined \
-	$(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritatiffexport_la_LIBADD = $(top_builddir)/krita/libkritacommon.la \
-	libkritatiffconverter.la $(KOFFICE_LIBS) -ltiff
-
-libkritatiffimport_la_LDFLAGS = -avoid-version -module -no-undefined \
-	$(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritatiffimport_la_LIBADD = $(top_builddir)/krita/libkritacommon.la \
-	libkritatiffconverter.la $(KOFFICE_LIBS) -ltiff
-
-INCLUDES= \
-	-I$(srcdir) \
-	 $(KOFFICE_INCLUDES) \
-	-I$(top_srcdir)/krita \
-	-I$(top_srcdir)/krita/core \
-	-I$(top_srcdir)/krita/sdk \
-	-I$(top_srcdir)/krita/core/tiles \
-	-I$(top_srcdir)/krita/kritacolor \
-	-I$(top_srcdir)/krita/ui \
-        $(KOFFICE_INCLUDES) -I$(interfacedir) \
-        $(KOPAINTER_INCLUDES) \
-	$(all_includes) 
-
-
-servicedir = $(kde_servicesdir)
-
-
-kdelnkdir = $(kde_appsdir)/.hidden
-
-
-
-
-METASOURCES = AUTO
-
-
-KDE_CXXFLAGS = $(USE_EXCEPTIONS)
-libkritatiffimport_la_SOURCES = kis_tiff_import.cc
-libkritatiffexport_la_SOURCES = kis_tiff_export.cc kis_wdg_options_tiff.ui \
-	kis_dlg_options_tiff.cpp
-service_DATA = krita_tiff_export.desktop krita_tiff_import.desktop
-kdelnk_DATA = krita_tiff.desktop
-noinst_HEADERS = kis_dlg_options_tiff.h kis_tiff_writer_visitor.h \
-	kis_tiff_ycbcr_reader.h
-libkritatiffconverter_la_LDFLAGS = -no-undefined $(all_libraries) -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-noinst_LTLIBRARIES = libkritatiffconverter.la
-libkritatiffconverter_la_SOURCES = kis_tiff_converter.cc kis_tiff_stream.cc \
-	kis_tiff_writer_visitor.cpp kis_tiff_reader.cc kis_tiff_ycbcr_reader.cc
diff --git a/filters/krita/tiff/configure.in.bot b/filters/krita/tiff/configure.in.bot
deleted file mode 100644
index aea71e8ce..000000000
--- a/filters/krita/tiff/configure.in.bot
+++ /dev/null
@@ -1,7 +0,0 @@
-if test -z "$LIBTIFF"; then
-  echo ""
-  echo "You're missing libtiff (binaries and/or headers), krita won't be able"
-  echo "to import/export tiff"
-  echo ""
-  all_tests=bad
-fi
diff --git a/filters/krita/tiff/kis_dlg_options_tiff.cpp b/filters/krita/tiff/kis_dlg_options_tiff.cpp
deleted file mode 100644
index 345f7e7e7..000000000
--- a/filters/krita/tiff/kis_dlg_options_tiff.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_dlg_options_tiff.h"
-
-#include <tqcheckbox.h>
-#include <tqgroupbox.h>
-#include <tqslider.h>
-#include <tqwidgetstack.h>
-
-#include <kapplication.h>
-#include <kcombobox.h>
-#include <klocale.h>
-
-#include "kis_wdg_options_tiff.h"
-
-KisDlgOptionsTIFF::KisDlgOptionsTIFF(TQWidget *tqparent, const char *name)
-    : KDialogBase(tqparent, name, false, i18n("TIFF Export Options"), KDialogBase::Ok | KDialogBase::Cancel)
-{
-    optionswdg = new KisWdgOptionsTIFF(this);
-    activated(0);
-    connect(optionswdg->kComboBoxCompressionType, TQT_SIGNAL(activated ( int )), this, TQT_SLOT(activated ( int ) ));
-    connect(optionswdg->flatten, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(flattenToggled( bool) ) );
-    setMainWidget(optionswdg);
-    kapp->restoreOverrideCursor();
-    tqsetSizePolicy(TQSizePolicy(TQSizePolicy::Minimum, TQSizePolicy::Minimum) );
-}
-
-KisDlgOptionsTIFF::~KisDlgOptionsTIFF()
-{
-}
-
-void KisDlgOptionsTIFF::activated ( int index )
-{
-/*    optionswdg->groupBoxJPEG->hide();
-    optionswdg->groupBoxDeflate->hide();
-    optionswdg->groupBoxCCITGroupCCITG3->hide();
-    optionswdg->groupBoxPixarLog->hide();*/
-    switch(index)
-    {
-        case 1:
-            optionswdg->codecsOptionsStack->raiseWidget(1);
-//             optionswdg->groupBoxJPEG->show();
-            break;
-        case 2:
-            optionswdg->codecsOptionsStack->raiseWidget(2);
-//             optionswdg->groupBoxDeflate->show();
-            break;
-        case 6:
-            optionswdg->codecsOptionsStack->raiseWidget(3);
-//             optionswdg->groupBoxCCITGroupCCITG3->show();
-            break;
-        case 8:
-            optionswdg->codecsOptionsStack->raiseWidget(4);
-//             optionswdg->groupBoxPixarLog->show();
-            break;
-        default:
-            optionswdg->codecsOptionsStack->raiseWidget(0);
-    }
-}
-
-void KisDlgOptionsTIFF::flattenToggled(bool t)
-{
-    optionswdg->alpha->setEnabled(t);
-    if(!t)
-    {
-        optionswdg->alpha->setChecked(true);
-    }
-}
-
-
-KisTIFFOptions KisDlgOptionsTIFF::options()
-{
-    KisTIFFOptions options;
-    switch(optionswdg->kComboBoxCompressionType->currentItem ())
-    {
-        case 0:
-            options.compressionType = COMPRESSION_NONE;
-            break;
-        case 1:
-            options.compressionType = COMPRESSION_JPEG;
-            break;
-        case 2:
-            options.compressionType = COMPRESSION_DEFLATE;
-            break;
-        case 3:
-            options.compressionType = COMPRESSION_LZW;
-            break;
-#ifdef COMPRESSION_JP2000
-        case 4:
-            options.compressionType = COMPRESSION_JP2000;
-            break;
-#endif
-        case 5:
-            options.compressionType = COMPRESSION_CCITTRLE;
-            break;
-        case 6:
-            options.compressionType = COMPRESSION_CCITTFAX3;
-            break;
-        case 7:
-            options.compressionType = COMPRESSION_CCITTFAX4;
-            break;
-        case 8:
-            options.compressionType = COMPRESSION_PIXARLOG;
-            break;
-    }
-    options.predictor = optionswdg->kComboBoxPredictor->currentItem() + 1;
-    options.alpha = optionswdg->alpha->isChecked();
-    options.flatten = optionswdg->flatten->isChecked();
-    options.jpegQuality = optionswdg->qualityLevel->value();
-    options.deflateCompress = optionswdg->compressionLevelDeflate->value();
-    options.faxMode = optionswdg->kComboBoxFaxMode->currentItem() + 1;
-    options.pixarLogCompress = optionswdg->compressionLevelPixarLog->value();
-    
-    return options;
-}
-
-#include "kis_dlg_options_tiff.moc"
diff --git a/filters/krita/tiff/kis_dlg_options_tiff.h b/filters/krita/tiff/kis_dlg_options_tiff.h
deleted file mode 100644
index 5fd1e48eb..000000000
--- a/filters/krita/tiff/kis_dlg_options_tiff.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  Copyright (c) 2005-2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_DLG_OPTIONS_TIFF_H
-#define KIS_DLG_OPTIONS_TIFF_H
-
-#include <kdialogbase.h>
-#include <kis_tiff_converter.h>
-
-class KisWdgOptionsTIFF;
-/**
-	@author Cyrille Berger <cberger@cberger.net>
-*/
-class KisDlgOptionsTIFF : public KDialogBase
-{
-    Q_OBJECT
-  TQ_OBJECT
-    public:
-        KisDlgOptionsTIFF(TQWidget *tqparent=0, const char *name=0);
-        ~KisDlgOptionsTIFF();
-    public slots:
-        void activated ( int index );
-        void flattenToggled(bool);
-        KisTIFFOptions options();
-    public:
-        KisWdgOptionsTIFF* optionswdg;
-};
-
-#endif
diff --git a/filters/krita/tiff/kis_tiff_converter.cc b/filters/krita/tiff/kis_tiff_converter.cc
deleted file mode 100644
index 229111eaa..000000000
--- a/filters/krita/tiff/kis_tiff_converter.cc
+++ /dev/null
@@ -1,677 +0,0 @@
-/*
- *  Copyright (c) 2005-2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
- 
-#include "kis_tiff_converter.h"
-
-#include <stdio.h>
-
-#include <config.h>
-#include LCMS_HEADER
-
-#include <tqfile.h>
-
-#include <kapplication.h>
-#include <KoDocumentInfo.h>
-
-#include <kio/netaccess.h>
-
-#include <kis_abstract_colorspace.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_doc.h>
-#include <kis_image.h>
-#include <kis_iterators_pixel.h>
-#include <kis_layer.h>
-#include <kis_meta_registry.h>
-#include <kis_profile.h>
-#include <kis_group_layer.h>
-#include <kis_paint_layer.h>
-
-#include "kis_tiff_reader.h"
-#include "kis_tiff_ycbcr_reader.h"
-#include "kis_tiff_stream.h"
-#include "kis_tiff_writer_visitor.h"
-
-namespace {
-
-    TQString getColorSpaceForColorType(uint16 color_type, uint16 color_nb_bits, TIFF *image, uint16 &nbchannels, uint16 &extrasamplescount, uint8 &destDepth, uint16 sampletype) {
-        if(color_type == PHOTOMETRIC_MINISWHITE || color_type == PHOTOMETRIC_MINISBLACK)
-        {
-            if(nbchannels == 0) nbchannels = 1;
-            extrasamplescount = nbchannels - 1; // FIX the extrasamples count in case of
-            if(color_nb_bits <= 8)
-            {
-                destDepth = 8;
-                return "GRAYA";
-            } else {
-                destDepth = 16;
-                return "GRAYA16";
-            }
-        } else if(color_type == PHOTOMETRIC_RGB  /*|| color_type == */ ) {
-            if(nbchannels == 0) nbchannels = 3;
-            extrasamplescount = nbchannels - 3; // FIX the extrasamples count in case of
-            if(sampletype == SAMPLEFORMAT_IEEEFP)
-            {
-              if(color_nb_bits == 16)
-              {
-                destDepth = 16;
-                return "RGBAF16HALF";
-              } else if( color_nb_bits == 32) {
-                destDepth = 32;
-                return "RGBAF32";
-              }
-              return "";
-            } else {
-              if(color_nb_bits <= 8)
-              {
-                  destDepth = 8;
-                  return "RGBA";
-              } else {
-                  destDepth = 16;
-                  return "RGBA16";
-              }
-            }
-        } else if(color_type == PHOTOMETRIC_YCBCR ) {
-            if(nbchannels == 0) nbchannels = 3;
-            extrasamplescount = nbchannels - 3; // FIX the extrasamples count in case of
-            if(color_nb_bits <= 8)
-            {
-                destDepth = 8;
-                return "YCbCrAU8";
-            } else {
-                destDepth = 16;
-                return "YCbCrAU16";
-            }
-        } else if(color_type == PHOTOMETRIC_SEPARATED ) {
-            if(nbchannels == 0) nbchannels = 4;
-            // SEPARATED is in general CMYK but not allways, so we check
-            uint16 inkset;
-            if((TIFFGetField(image, TIFFTAG_INKSET, &inkset) == 0)){
-                kdDebug(41008) <<  "Image does not define the inkset." << endl;
-                inkset = 2;
-            }
-            if(inkset !=  INKSET_CMYK)
-            {
-                kdDebug(41008) << "Unsupported inkset (right now, only CMYK is supported)" << endl;
-                char** ink_names;
-                uint16 numberofinks;
-                if( TIFFGetField(image, TIFFTAG_INKNAMES, &ink_names) && TIFFGetField(image, TIFFTAG_NUMBEROFINKS, &numberofinks) )
-                {
-                    kdDebug(41008) << "Inks are : " << endl;
-                    for(uint i = 0; i < numberofinks; i++)
-                    {
-                        kdDebug(41008) << ink_names[i] << endl;
-                    }
-                } else {
-                    kdDebug(41008) << "inknames aren't defined !" << endl;
-                    // To be able to read stupid adobe files, if there are no information about inks and four channels, then it's a CMYK file :
-                    if( nbchannels - extrasamplescount != 4)
-                    {
-                        return "";
-                    }
-                }
-            }
-            if(color_nb_bits <= 8)
-            {
-                destDepth = 8;
-                return "CMYK";
-            } else {
-                destDepth = 16;
-                return "CMYKA16";
-            }
-        } else if(color_type == PHOTOMETRIC_CIELAB
-#ifdef PHOTOMETRIC_ICCLAB
-	 || color_type == PHOTOMETRIC_ICCLAB
-#endif
-	 ) {
-            destDepth = 16;
-            if(nbchannels == 0) nbchannels = 3;
-            extrasamplescount = nbchannels - 3; // FIX the extrasamples count in case of
-            return "LABA"; // TODO add support for a 8bit LAB colorspace when it is written
-        } else if(color_type ==  PHOTOMETRIC_PALETTE) {
-            destDepth = 16;
-            if(nbchannels == 0) nbchannels = 2;
-            extrasamplescount = nbchannels - 2; // FIX the extrasamples count in case of
-            // <-- we will convert the index image to RGBA16 as the palette is allways on 16bits colors
-            return "RGBA16";
-        }
-        return "";
-    }
-}
-
-KisTIFFConverter::KisTIFFConverter(KisDoc *doc, KisUndoAdapter *adapter)
-{
-    m_doc = doc;
-    m_adapter = adapter;
-    m_job = 0;
-    m_stop = false;
-}
-
-KisTIFFConverter::~KisTIFFConverter()
-{
-}
-
-KisImageBuilder_Result KisTIFFConverter::decode(const KURL& uri)
-{
-    kdDebug(41008) << "Start decoding TIFF File" << endl;
-    // Opent the TIFF file
-    TIFF *image = 0;
-    if((image = TIFFOpen(TQFile::encodeName(uri.path()), "r")) == NULL){
-        kdDebug(41008) << "Could not open the file, either it doesn't exist, either it is not a TIFF : " << uri.path() << endl;
-
-        return (KisImageBuilder_RESULT_BAD_FETCH);
-    }
-    do {
-        kdDebug(41008) << "Read new sub-image" << endl;
-        KisImageBuilder_Result result = readTIFFDirectory(image);
-        if(result != KisImageBuilder_RESULT_OK){
-            return result;
-        }
-    } while (TIFFReadDirectory(image));
-    // Freeing memory
-    TIFFClose(image);
-    return KisImageBuilder_RESULT_OK;
-}
-
-KisImageBuilder_Result KisTIFFConverter::readTIFFDirectory( TIFF* image)
-{
-    // Read information about the tiff
-    uint32 width, height;
-    if(TIFFGetField(image, TIFFTAG_IMAGEWIDTH, &width) == 0){
-        kdDebug(41008) <<  "Image does not define its width" << endl;
-        TIFFClose(image);
-        return KisImageBuilder_RESULT_INVALID_ARG;
-    }
-    if(TIFFGetField(image, TIFFTAG_IMAGELENGTH, &height) == 0){
-        kdDebug(41008) <<  "Image does not define its height" << endl;
-        TIFFClose(image);
-        return KisImageBuilder_RESULT_INVALID_ARG;
-    }
-    uint16 depth;
-    if((TIFFGetField(image, TIFFTAG_BITSPERSAMPLE, &depth) == 0)){
-        kdDebug(41008) <<  "Image does not define its depth" << endl;
-        depth = 1;
-    }
-    uint16 sampletype;
-    if((TIFFGetField(image, TIFFTAG_SAMPLEFORMAT, &sampletype) == 0)){
-        kdDebug(41008) <<  "Image does not define its sample type" << endl;
-        sampletype =  SAMPLEFORMAT_UINT;
-    }
-    // Determine the number of channels (usefull to know if a file has an alpha or not
-    uint16 nbchannels;
-    if(TIFFGetField(image, TIFFTAG_SAMPLESPERPIXEL, &nbchannels) == 0){
-        kdDebug(41008) << "Image has an undefined number of samples per pixel" << endl;
-        nbchannels = 0;
-    }
-    // Get the number of extrasamples and information about them
-    uint16 *sampleinfo, extrasamplescount;
-    if(TIFFGetField(image, TIFFTAG_EXTRASAMPLES, &extrasamplescount, &sampleinfo) == 0)
-    {
-        extrasamplescount = 0;
-    }
-    // Determine the colorspace
-    uint16 color_type;
-    if(TIFFGetField(image, TIFFTAG_PHOTOMETRIC, &color_type) == 0){
-        kdDebug(41008) << "Image has an undefined photometric interpretation" << endl;
-        color_type = PHOTOMETRIC_MINISWHITE;
-    }
-    uint8 dstDepth;
-    TQString csName = getColorSpaceForColorType(color_type, depth, image, nbchannels, extrasamplescount, dstDepth,sampletype);
-    if(csName.isEmpty()) {
-        kdDebug(41008) << "Image has an unsupported colorspace : " << color_type << " for this depth : "<< depth << endl;
-        TIFFClose(image);
-        return KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE;
-    }
-    kdDebug(41008) << "Colorspace is : " << csName << " with a depth of " << depth << " and with a nb of channels of " << nbchannels << endl;
-    
-    // Read image profile
-    kdDebug() << "Reading profile" << endl;
-    KisProfile* profile = 0;
-    DWORD EmbedLen;
-    LPBYTE EmbedBuffer;
-
-    if (TIFFGetField(image, TIFFTAG_ICCPROFILE, &EmbedLen, &EmbedBuffer)) {
-        kdDebug(41008) << "Profile found" << endl;
-        TQByteArray rawdata;
-        rawdata.resize(EmbedLen);
-        memcpy(rawdata.data(), EmbedBuffer, EmbedLen);
-        profile = new KisProfile(rawdata);
-    } else {
-        kdDebug(41008) << "No Profile found" << endl;
-    }
-    
-    // Retrieve a pointer to the colorspace
-    KisColorSpace* cs = 0;
-    if (profile && profile->isSuitableForOutput())
-    {
-        kdDebug(41008) << "image has embedded profile: " << profile -> productName() << "\n";
-        cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace(csName, profile);
-    }
-    else
-        cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID(csName,""),"");
-
-    if(cs == 0) {
-        kdDebug(41008) << "Colorspace " << csName << " is not available, please check your installation." << endl;
-        TIFFClose(image);
-        return KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE;
-    }
-    
-    // Create the cmsTransform if needed 
-    cmsHTRANSFORM transform = 0;
-    if(profile && !profile->isSuitableForOutput())
-    {
-        kdDebug(41008) << "The profile can't be used in krita, need conversion" << endl;
-        transform = cmsCreateTransform(profile->profile(), cs->colorSpaceType(),
-                                       cs->getProfile()->profile() , cs->colorSpaceType(),
-                                       INTENT_PERCEPTUAL, 0);
-    }
-
-    
-    // Check if there is an alpha channel
-    int8 alphapos = -1; // <- no alpha
-    // Check which extra is alpha if any
-    kdDebug(41008) << "There are " << nbchannels << " channels and " << extrasamplescount << " extra channels" << endl;
-    if(sampleinfo) // index images don't have any sampleinfo, and therefor sampleinfo == 0
-    {
-        for(int i = 0; i < extrasamplescount; i ++)
-        {
-            kdDebug(41008) << i << " " << extrasamplescount << " "  << (cs->nColorChannels()) <<  nbchannels << " " << sampleinfo[i] << endl;
-            if(sampleinfo[i] == EXTRASAMPLE_ASSOCALPHA)
-            {
-                // XXX: dangelo: the color values are already multiplied with
-                // the alpha value.  This needs to be reversed later (postprocessor?)
-                alphapos = i;
-            }
-    
-            if (sampleinfo[i] == EXTRASAMPLE_UNASSALPHA)
-            {
-                // color values are not premultiplied with alpha, and can be used as they are.
-                alphapos = i;
-            }
-        }
-    }
-    
-    // Read META Information
-    KoDocumentInfo * info = m_doc->documentInfo();
-    KoDocumentInfoAbout * aboutPage = static_cast<KoDocumentInfoAbout *>(info->page( "about" ));
-    KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author"));
-    char* text;
-    if (TIFFGetField(image, TIFFTAG_ARTIST, &text)) {
-        authorPage->setFullName(text);
-    }
-    if (TIFFGetField(image, TIFFTAG_DOCUMENTNAME, &text)) {
-        aboutPage->setTitle(text);
-    }
-    if (TIFFGetField(image,TIFFTAG_IMAGEDESCRIPTION,&text) ) {
-        aboutPage->setAbstract( text );
-    }
-    
-    
-    // Get the planar configuration
-    uint16 planarconfig;
-    if(TIFFGetField(image, TIFFTAG_PLANARCONFIG, &planarconfig) == 0)
-    {
-        kdDebug(41008) <<  "Plannar configuration is not define" << endl;
-        TIFFClose(image);
-        return KisImageBuilder_RESULT_INVALID_ARG;
-    }
-    // Creating the KisImageSP
-    if( ! m_img ) {
-        m_img = new KisImage(m_doc->undoAdapter(), width, height, cs, "built image");
-        Q_CHECK_PTR(m_img);
-        m_img->blockSignals(true); // Don't send out signals while we're building the image
-        if(profile)
-        {
-            m_img -> addAnnotation( profile->annotation() );
-        }
-    } else {
-        if( m_img->width() < (TQ_INT32)width || m_img->height() < (TQ_INT32)height)
-        {
-            TQ_UINT32 newwidth = (m_img->width() < (TQ_INT32)width) ? width : m_img->width();
-            TQ_UINT32 newheight = (m_img->height() < (TQ_INT32)height) ? height : m_img->height();
-            m_img->resize(newwidth, newheight, false);
-        }
-    }
-    KisPaintLayer* layer = new KisPaintLayer(m_img, m_img -> nextLayerName(), TQ_UINT8_MAX);
-    tdata_t buf = 0;
-    tdata_t* ps_buf = 0; // used only for planar configuration seperated
-    TIFFStreamBase* tiffstream;
-    
-    KisTIFFReaderBase* tiffReader = 0;
-    
-    TQ_UINT8 poses[5];
-    KisTIFFPostProcessor* postprocessor = 0;
-    
-    // Configure poses
-    uint8 nbcolorsamples = nbchannels - extrasamplescount;
-    switch(color_type)
-    {
-        case PHOTOMETRIC_MINISWHITE:
-        {
-            poses[0] = 0; poses[1] = 1;
-            postprocessor = new KisTIFFPostProcessorInvert(nbcolorsamples);
-        }
-        break;
-        case PHOTOMETRIC_MINISBLACK:
-        {
-            poses[0] = 0; poses[1] = 1;
-            postprocessor = new KisTIFFPostProcessor(nbcolorsamples);
-        }
-        break;
-        case PHOTOMETRIC_CIELAB:
-        {
-            poses[0] = 0; poses[1] = 1; poses[2] = 2; poses[3] = 3;
-            postprocessor = new KisTIFFPostProcessorICCLABtoCIELAB(nbcolorsamples);
-        }
-        break;
-#ifdef PHOTOMETRIC_ICCLAB
-        case PHOTOMETRIC_ICCLAB:
-        {
-            poses[0] = 0; poses[1] = 1; poses[2] = 2; poses[3] = 3;
-            postprocessor = new KisTIFFPostProcessor(nbcolorsamples);
-        }
-        break;
-#endif
-        case PHOTOMETRIC_RGB:
-        {
-            poses[0] = 2; poses[1] = 1; poses[2] = 0; poses[3] = 3;
-            postprocessor = new KisTIFFPostProcessor(nbcolorsamples);
-        }
-        break;
-        case PHOTOMETRIC_SEPARATED:
-        {
-            poses[0] = 0; poses[1] = 1; poses[2] = 2; poses[3] = 3; poses[4] = 4;
-            postprocessor = new KisTIFFPostProcessor(nbcolorsamples);
-        }
-        break;
-        default:
-        break;
-    }
-    
-    
-    // Initisalize tiffReader
-    uint16 * lineSizeCoeffs = new uint16[nbchannels];
-    uint16 vsubsampling = 1;
-    uint16 hsubsampling = 1;
-    for(uint i = 0; i < nbchannels; i++)
-    {
-        lineSizeCoeffs[i] = 1;
-    }
-    if( color_type == PHOTOMETRIC_PALETTE)
-    {
-        uint16 *red; // No need to free them they are free by libtiff
-        uint16 *green;
-        uint16 *blue;
-        if ((TIFFGetField(image, TIFFTAG_COLORMAP, &red, &green, &blue)) == 0)
-        {
-            kdDebug(41008) <<  "Indexed image does not define a palette" << endl;
-            TIFFClose(image);
-            return KisImageBuilder_RESULT_INVALID_ARG;
-        }
-
-        tiffReader = new KisTIFFReaderFromPalette( layer->paintDevice(), red, green, blue, poses, alphapos, depth, nbcolorsamples, extrasamplescount, transform, postprocessor);
-    } else if(color_type == PHOTOMETRIC_YCBCR ) {
-        TIFFGetFieldDefaulted( image, TIFFTAG_YCBCRSUBSAMPLING, &hsubsampling, &vsubsampling );
-        lineSizeCoeffs[1] = hsubsampling;
-        lineSizeCoeffs[2] = hsubsampling;
-        uint16 position;
-        TIFFGetFieldDefaulted( image, TIFFTAG_YCBCRPOSITIONING, &position  );
-        if( dstDepth == 8 )
-        {
-            tiffReader = new KisTIFFYCbCrReaderTarget8Bit(layer->paintDevice(), poses, alphapos, depth, nbcolorsamples, extrasamplescount, transform, postprocessor, hsubsampling, vsubsampling, (KisTIFFYCbCr::Position)position);
-        } else if( dstDepth == 16 )
-        {
-            tiffReader = new KisTIFFYCbCrReaderTarget16Bit( layer->paintDevice(), poses, alphapos, depth, nbcolorsamples, extrasamplescount, transform, postprocessor, hsubsampling, vsubsampling, (KisTIFFYCbCr::Position)position);
-        }
-    } else if(dstDepth == 8)
-    {
-        tiffReader = new KisTIFFReaderTarget8bit( layer->paintDevice(), poses, alphapos, depth, nbcolorsamples, extrasamplescount, transform, postprocessor);
-    } else if(dstDepth == 16) {
-        tiffReader = new KisTIFFReaderTarget16bit( layer->paintDevice(), poses, alphapos, depth, nbcolorsamples, extrasamplescount, transform, postprocessor);
-    } else if(dstDepth == 32) {
-        tiffReader = new KisTIFFReaderTarget32bit( layer->paintDevice(), poses, alphapos, depth, nbcolorsamples, extrasamplescount, transform, postprocessor);
-    }
-    
-    if(TIFFIsTiled(image))
-    {
-        kdDebug(41008) << "tiled image" << endl;
-        uint32 tileWidth, tileHeight;
-        uint32 x, y;
-        TIFFGetField(image, TIFFTAG_TILEWIDTH, &tileWidth);
-        TIFFGetField(image, TIFFTAG_TILELENGTH, &tileHeight);
-        uint32 linewidth = (tileWidth * depth * nbchannels) / 8;
-        if(planarconfig == PLANARCONFIG_CONTIG)
-        {
-            buf = _TIFFmalloc(TIFFTileSize(image));
-            if(depth < 16)
-            {
-                tiffstream = new TIFFStreamContigBelow16((uint8*)buf, depth, linewidth);
-            } else if(depth < 32)
-            {
-                tiffstream = new TIFFStreamContigBelow32((uint8*)buf, depth, linewidth);
-            } else {
-                tiffstream = new TIFFStreamContigAbove32((uint8*)buf, depth, linewidth);
-            }
-        } else {
-            ps_buf = new tdata_t[nbchannels];
-            uint32 * lineSizes = new uint32[nbchannels];
-            uint16 baseSize = TIFFTileSize(image)/nbchannels;
-            for(uint i = 0; i < nbchannels; i++)
-            {
-                ps_buf[i] = _TIFFmalloc(baseSize);
-                lineSizes[i] = baseSize / lineSizeCoeffs[i];
-            }
-            tiffstream = new TIFFStreamSeperate( (uint8**) ps_buf, nbchannels, depth, lineSizes);
-            delete [] lineSizes;
-        }
-        kdDebug(41008) << linewidth << " " << nbchannels << " " << layer->paintDevice()->colorSpace()->nColorChannels() << endl;
-        for (y = 0; y < height; y+= tileHeight)
-        {
-            for (x = 0; x < width; x += tileWidth)
-            {
-                kdDebug(41008) << "Reading tile x = " << x << " y = " << y << endl;
-                if( planarconfig == PLANARCONFIG_CONTIG )
-                {
-                    TIFFReadTile(image, buf, x, y, 0, (tsample_t) -1);
-                } else {
-                    for(uint i = 0; i < nbchannels; i++)
-                    {
-                        TIFFReadTile(image, ps_buf[i], x, y, 0, i);
-                    }
-                }
-                uint32 realTileWidth =  (x + tileWidth) < width ? tileWidth : width - x;
-                for (uint yintile = 0; y + yintile < height && yintile < tileHeight/vsubsampling; ) {
-                    tiffReader->copyDataToChannels( x, y + yintile , realTileWidth, tiffstream);
-                    yintile += 1;
-                    tiffstream->moveToLine( yintile );
-                }
-                tiffstream->restart();
-            }
-        }
-    } else {
-        kdDebug(41008) << "striped image" << endl;
-        tsize_t stripsize = TIFFStripSize(image);
-        uint32 rowsPerStrip;
-        TIFFGetFieldDefaulted(image, TIFFTAG_ROWSPERSTRIP, &rowsPerStrip);
-        kdDebug() << rowsPerStrip << " " << height << endl;
-        rowsPerStrip = TQMIN(rowsPerStrip, height); // when TIFFNumberOfStrips(image) == 1 it might happen that rowsPerStrip is incorrectly set
-        if(planarconfig == PLANARCONFIG_CONTIG)
-        {
-            buf = _TIFFmalloc(stripsize);
-            if(depth < 16)
-            {
-                tiffstream = new TIFFStreamContigBelow16((uint8*)buf, depth, stripsize/rowsPerStrip);
-            } else if(depth < 32)
-            {
-                tiffstream = new TIFFStreamContigBelow32((uint8*)buf, depth, stripsize/rowsPerStrip);
-            } else {
-                tiffstream = new TIFFStreamContigAbove32((uint8*)buf, depth, stripsize/rowsPerStrip);
-            }
-        } else {
-            ps_buf = new tdata_t[nbchannels];
-            uint32 scanLineSize = stripsize/rowsPerStrip;
-            kdDebug(41008) << " scanLineSize for each plan = " << scanLineSize << endl;
-            uint32 * lineSizes = new uint32[nbchannels];
-            for(uint i = 0; i < nbchannels; i++)
-            {
-                ps_buf[i] = _TIFFmalloc(stripsize);
-                lineSizes[i] = scanLineSize / lineSizeCoeffs[i];
-            }
-            tiffstream = new TIFFStreamSeperate( (uint8**) ps_buf, nbchannels, depth, lineSizes);
-            delete [] lineSizes;
-        }
-
-        kdDebug(41008) << "Scanline size = " << TIFFRasterScanlineSize(image) << " / strip size = " << TIFFStripSize(image) << " / rowsPerStrip = " << rowsPerStrip << " stripsize/rowsPerStrip = " << stripsize/rowsPerStrip << endl;
-        uint32 y = 0;
-        kdDebug(41008) << " NbOfStrips = " << TIFFNumberOfStrips(image) << " rowsPerStrip = " << rowsPerStrip << " stripsize = " << stripsize << endl;
-        for (uint32 strip = 0; y < height; strip++)
-        {
-            if( planarconfig == PLANARCONFIG_CONTIG )
-            {
-                TIFFReadEncodedStrip(image, TIFFComputeStrip( image, y, 0 ) , buf, (tsize_t) -1);
-            } else {
-                for(uint i = 0; i < nbchannels; i++)
-                {
-                    TIFFReadEncodedStrip(image, TIFFComputeStrip( image, y, i ), ps_buf[i], (tsize_t) -1);
-                }
-            }
-            for( uint32 yinstrip = 0 ; yinstrip < rowsPerStrip && y < height ; )
-            {
-                uint linesread = tiffReader->copyDataToChannels( 0, y, width, tiffstream);
-                y += linesread;
-                yinstrip += linesread;
-                tiffstream->moveToLine( yinstrip );
-            }
-            tiffstream->restart();
-        }
-    }
-    tiffReader->finalize();
-    delete lineSizeCoeffs;
-    delete tiffReader;
-    delete tiffstream;
-    if( planarconfig == PLANARCONFIG_CONTIG )
-    {
-        _TIFFfree(buf);
-    } else {
-        for(uint i = 0; i < nbchannels; i++)
-        {
-            _TIFFfree(ps_buf[i]);
-        }
-        delete[] ps_buf;
-    }
-    
-    m_img->addLayer(layer, m_img->rootLayer(), 0);
-    return KisImageBuilder_RESULT_OK;
-}
-
-KisImageBuilder_Result KisTIFFConverter::buildImage(const KURL& uri)
-{
-    if (uri.isEmpty())
-        return KisImageBuilder_RESULT_NO_URI;
-
-    if (!KIO::NetAccess::exists(uri, false, tqApp -> mainWidget())) {
-        return KisImageBuilder_RESULT_NOT_EXIST;
-    }
-
-    // We're not set up to handle asynchronous loading at the moment.
-    KisImageBuilder_Result result = KisImageBuilder_RESULT_FAILURE;
-    TQString tmpFile;
-
-    if (KIO::NetAccess::download(uri, tmpFile, tqApp -> mainWidget())) {
-        KURL uriTF;
-        uriTF.setPath( tmpFile );
-        result = decode(uriTF);
-        KIO::NetAccess::removeTempFile(tmpFile);
-    }
-
-    return result;
-}
-
-
-KisImageSP KisTIFFConverter::image()
-{
-    return m_img;
-}
-
-
-KisImageBuilder_Result KisTIFFConverter::buildFile(const KURL& uri, KisImageSP img, KisTIFFOptions options)
-{
-    kdDebug(41008) << "Start writing TIFF File" << endl;
-    if (!img)
-        return KisImageBuilder_RESULT_EMPTY;
-
-    if (uri.isEmpty())
-        return KisImageBuilder_RESULT_NO_URI;
-
-    if (!uri.isLocalFile())
-        return KisImageBuilder_RESULT_NOT_LOCAL;
-    
-    // Open file for writing
-    TIFF *image;
-    if((image = TIFFOpen(TQFile::encodeName(uri.path()), "w")) == NULL){
-        kdDebug(41008) << "Could not open the file for writting " << uri.path() << endl;
-        TIFFClose(image);
-        return (KisImageBuilder_RESULT_FAILURE);
-    }
-
-    // Set the document informations
-    KoDocumentInfo * info = m_doc->documentInfo();
-    KoDocumentInfoAbout * aboutPage = static_cast<KoDocumentInfoAbout *>(info->page( "about" ));
-    TQString title = aboutPage->title();
-    if(!title.isEmpty())
-    {
-        TIFFSetField(image, TIFFTAG_DOCUMENTNAME, title.ascii());
-    }
-    TQString abstract = aboutPage->abstract();
-    if(!abstract.isEmpty())
-    {
-        TIFFSetField(image, TIFFTAG_IMAGEDESCRIPTION, abstract.ascii());
-    }
-    KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" ));
-    TQString author = authorPage->fullName();
-    if(!author.isEmpty())
-    {
-        TIFFSetField(image, TIFFTAG_ARTIST, author.ascii());
-    }
-    
-    KisTIFFWriterVisitor* visitor = new KisTIFFWriterVisitor(image, &options);
-    KisGroupLayer* root = dynamic_cast<KisGroupLayer*>(img->rootLayer().data());
-    if(root == 0)
-    {
-        KIO::del(uri);
-        TIFFClose(image);
-        return KisImageBuilder_RESULT_FAILURE;
-    }
-    if(!visitor->visit( root ))
-    {
-        KIO::del(uri);
-        TIFFClose(image);
-        return KisImageBuilder_RESULT_FAILURE;
-    }
-    
-    TIFFClose(image);
-    return KisImageBuilder_RESULT_OK;
-}
-
-
-void KisTIFFConverter::cancel()
-{
-    m_stop = true;
-}
-
-#include "kis_tiff_converter.moc"
diff --git a/filters/krita/tiff/kis_tiff_converter.h b/filters/krita/tiff/kis_tiff_converter.h
deleted file mode 100644
index 7d7176b73..000000000
--- a/filters/krita/tiff/kis_tiff_converter.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- *  Copyright (c) 2005-2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef _KIS_TIFF_CONVERTER_H_
-#define _KIS_TIFF_CONVERTER_H_
-
-#include <stdio.h>
-#include <tiffio.h>
-
-#include <tqvaluevector.h>
-
-#include <kio/job.h>
-
-#include <kis_progress_subject.h>
-
-#include "kis_types.h"
-#include "kis_global.h"
-#include "kis_annotation.h"
-class KisDoc;
-class KisUndoAdapter;
-
-/**
- * Image import/export plugins can use these results to report about success or failure.
- */
-enum KisImageBuilder_Result {
-        KisImageBuilder_RESULT_FAILURE = -400,
-        KisImageBuilder_RESULT_NOT_EXIST = -300,
-        KisImageBuilder_RESULT_NOT_LOCAL = -200,
-        KisImageBuilder_RESULT_BAD_FETCH = -100,
-        KisImageBuilder_RESULT_INVALID_ARG = -50,
-        KisImageBuilder_RESULT_OK = 0,
-        KisImageBuilder_RESULT_PROGRESS = 1,
-        KisImageBuilder_RESULT_EMPTY = 100,
-        KisImageBuilder_RESULT_BUSY = 150,
-        KisImageBuilder_RESULT_NO_URI = 200,
-        KisImageBuilder_RESULT_UNSUPPORTED = 300,
-        KisImageBuilder_RESULT_INTR = 400,
-        KisImageBuilder_RESULT_PATH = 500,
-        KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE = 600
-};
-
-struct KisTIFFOptions {
-    TQ_UINT16 compressionType;
-    TQ_UINT16 predictor;
-    bool alpha;
-    bool flatten;
-    TQ_UINT16 jpegQuality;
-    TQ_UINT16 deflateCompress;
-    TQ_UINT16 faxMode;
-    TQ_UINT16 pixarLogCompress;
-};
-
-class KisTIFFConverter : public KisProgressSubject {
-        Q_OBJECT
-  TQ_OBJECT
-    public:
-        KisTIFFConverter(KisDoc *doc, KisUndoAdapter *adapter);
-        virtual ~KisTIFFConverter();
-    public:
-        KisImageBuilder_Result buildImage(const KURL& uri);
-        KisImageBuilder_Result buildFile(const KURL& uri, KisImageSP layer, KisTIFFOptions);
-        /** Retrieve the constructed image
-        */
-        KisImageSP image();
-    public slots:
-        virtual void cancel();
-    private:
-        KisImageBuilder_Result decode(const KURL& uri);
-        KisImageBuilder_Result readTIFFDirectory( TIFF* image);
-    private:
-        KisImageSP m_img;
-        KisDoc *m_doc;
-        KisUndoAdapter *m_adapter;
-        bool m_stop;
-        KIO::TransferJob *m_job;
-};
-
-#endif
diff --git a/filters/krita/tiff/kis_tiff_export.cc b/filters/krita/tiff/kis_tiff_export.cc
deleted file mode 100644
index d2b39977b..000000000
--- a/filters/krita/tiff/kis_tiff_export.cc
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_tiff_export.h"
-
-#include <tqcheckbox.h>
-#include <tqslider.h>
-
-#include <kapplication.h>
-#include <kcombobox.h>
-#include <kdialogbase.h>
-#include <kgenericfactory.h>
-
-#include <KoFilterChain.h>
-
-#include <kis_doc.h>
-#include <kis_group_layer.h>
-#include <kis_image.h>
-#include <kis_paint_layer.h>
-#include <kis_progress_display_interface.h>
-
-#include "kis_tiff_converter.h"
-#include "kis_dlg_options_tiff.h"
-#include "kis_wdg_options_tiff.h"
-
-typedef KGenericFactory<KisTIFFExport, KoFilter> KisTIFFExportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkritatiffexport, KisTIFFExportFactory("kofficefilters"))
-
-KisTIFFExport::KisTIFFExport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-KisTIFFExport::~KisTIFFExport()
-{
-}
-
-KoFilter::ConversiontqStatus KisTIFFExport::convert(const TQCString& from, const TQCString& to)
-{
-    kdDebug(41008) << "Tiff export! From: " << from << ", To: " << to << "\n";
-    
-    if (from != "application/x-krita")
-        return KoFilter::NotImplemented;
-
-    
-    KisDlgOptionsTIFF* kdb = new KisDlgOptionsTIFF(0, "options dialog for tiff");
- 
-    KisDoc *output = dynamic_cast<KisDoc*>(m_chain->inputDocument());
-    
-    KisColorSpace* cs = output->currentImage()->colorSpace();
-    KisChannelInfo::enumChannelValueType type = cs->channels()[0]->channelValueType();
-    if( type == KisChannelInfo::FLOAT16 || type == KisChannelInfo::FLOAT32)
-    {
-      kdb->optionswdg->kComboBoxPredictor->removeItem(1);
-    } else {
-      kdb->optionswdg->kComboBoxPredictor->removeItem(2);
-    }
-    
-    if(kdb->exec() == TQDialog::Rejected)
-    {
-        return KoFilter::OK; // FIXME Cancel doesn't exist :(
-    }
-    
-    KisTIFFOptions options = kdb->options();
-
-    if( ( type == KisChannelInfo::FLOAT16 || type == KisChannelInfo::FLOAT32) && options.predictor == 2  )
-    { // FIXME THIS IS AN HACK FIX THAT IN 2.0 !!
-      options.predictor = 3;
-    }
-    delete kdb;
-    
-    TQString filename = m_chain->outputFile();
-    
-    if (!output)
-        return KoFilter::CreationError;
-    
-    if (filename.isEmpty()) return KoFilter::FileNotFound;
-
-    KURL url;
-    url.setPath(filename);
-
-    KisImageSP img;
-    
-    if(options.flatten)
-    {
-        img = new KisImage(0, output->currentImage()->width(), output->currentImage()->height(), output->currentImage()->colorSpace(), "");
-        KisPaintDeviceSP pd = new KisPaintDevice(*output->currentImage()->projection());
-        KisPaintLayerSP l = new KisPaintLayer(img, "projection", OPACITY_OPAQUE, pd);
-        img->addLayer(l.data(), img->rootLayer(), 0);
-    } else {
-        img = output->currentImage();
-    }
-    
-
-    KisTIFFConverter ktc(output, output->undoAdapter());
-/*    vKisAnnotationSP_it beginIt = img->beginAnnotations();
-    vKisAnnotationSP_it endIt = img->endAnnotations();*/
-    KisImageBuilder_Result res;
-    if ( (res = ktc.buildFile(url, img, options)) == KisImageBuilder_RESULT_OK) {
-        kdDebug(41008) << "success !" << endl;
-        return KoFilter::OK;
-    }
-    kdDebug(41008) << " Result = " << res << endl;
-    return KoFilter::InternalError;
-}
-
-#include <kis_tiff_export.moc>
-
diff --git a/filters/krita/tiff/kis_tiff_export.h b/filters/krita/tiff/kis_tiff_export.h
deleted file mode 100644
index 113747c73..000000000
--- a/filters/krita/tiff/kis_tiff_export.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef _KIS_TIFF_EXPORT_H_
-#define _KIS_TIFF_EXPORT_H_
-
-#include <KoFilter.h>
-
-class KisTIFFExport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-    public:
-        KisTIFFExport(KoFilter *tqparent, const char *name, const TQStringList&);
-        virtual ~KisTIFFExport();
-    public:
-        virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif
diff --git a/filters/krita/tiff/kis_tiff_import.cc b/filters/krita/tiff/kis_tiff_import.cc
deleted file mode 100644
index 7c157846b..000000000
--- a/filters/krita/tiff/kis_tiff_import.cc
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_tiff_import.h"
-
-#include <kgenericfactory.h>
-
-#include <KoFilterChain.h>
-
-#include <kis_doc.h>
-#include <kis_image.h>
-#include <kis_progress_display_interface.h>
-#include <kis_view.h>
-
-#include "kis_tiff_converter.h"
-
-typedef KGenericFactory<KisTIFFImport, KoFilter> TIFFImportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkritatiffimport, TIFFImportFactory("kofficefilters"))
-
-KisTIFFImport::KisTIFFImport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-KisTIFFImport::~KisTIFFImport()
-{
-}
-
-KoFilter::ConversiontqStatus KisTIFFImport::convert(const TQCString&, const TQCString& to)
-{
-    kdDebug(41008) << "Importing using TIFFImport!\n";
-
-    if (to != "application/x-krita")
-        return KoFilter::BadMimeType;
-
-    KisDoc * doc = dynamic_cast<KisDoc*>(m_chain -> outputDocument());
-    KisView * view = static_cast<KisView*>(doc -> views().getFirst());
-    
-    TQString filename = m_chain -> inputFile();
-    
-    if (!doc)
-        return KoFilter::CreationError;
-
-    doc -> prepareForImport();
-        
-
-    if (!filename.isEmpty()) {
-    
-        KURL url;
-        url.setPath(filename);
-
-        if (url.isEmpty())
-            return KoFilter::FileNotFound;
-            
-        KisTIFFConverter ib(doc, doc -> undoAdapter());
-
-        if (view != 0)
-            view -> canvasSubject() ->  progressDisplay() -> setSubject(&ib, false, true);
-
-        switch (ib.buildImage(url)) {
-            case KisImageBuilder_RESULT_UNSUPPORTED:
-                return KoFilter::NotImplemented;
-                break;
-            case KisImageBuilder_RESULT_INVALID_ARG:
-                return KoFilter::BadMimeType;
-                break;
-            case KisImageBuilder_RESULT_NO_URI:
-            case KisImageBuilder_RESULT_NOT_LOCAL:
-                return KoFilter::FileNotFound;
-                break;
-            case KisImageBuilder_RESULT_BAD_FETCH:
-            case KisImageBuilder_RESULT_EMPTY:
-                return KoFilter::ParsingError;
-                break;
-            case KisImageBuilder_RESULT_FAILURE:
-                return KoFilter::InternalError;
-                break;
-            case KisImageBuilder_RESULT_OK:
-                doc -> setCurrentImage( ib.image());
-                return KoFilter::OK;
-            default:
-                break;
-        }
-
-    }
-    return KoFilter::StorageCreationError;
-}
-
-#include <kis_tiff_import.moc>
-
diff --git a/filters/krita/tiff/kis_tiff_import.h b/filters/krita/tiff/kis_tiff_import.h
deleted file mode 100644
index 9fef77557..000000000
--- a/filters/krita/tiff/kis_tiff_import.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef _KIS_TIFF_IMPORT_H_
-#define _KIS_TIFF_IMPORT_H_
-
-#include <KoFilter.h>
-
-class KisTIFFImport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-    public:
-        KisTIFFImport(KoFilter *tqparent, const char *name, const TQStringList&);
-        virtual ~KisTIFFImport();
-    public:
-        virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif
diff --git a/filters/krita/tiff/kis_tiff_reader.cc b/filters/krita/tiff/kis_tiff_reader.cc
deleted file mode 100644
index f2eabd878..000000000
--- a/filters/krita/tiff/kis_tiff_reader.cc
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- *  Copyright (c) 2005-2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
- 
-#include "kis_tiff_reader.h"
-
-#include <kdebug.h>
-
-#include <kis_iterators_pixel.h>
-#include <kis_paint_device.h>
-
-#include "kis_tiff_stream.h"
-
-    uint KisTIFFReaderTarget8bit::copyDataToChannels( TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 dataWidth, TIFFStreamBase* tiffstream)
-    {
-        KisHLineIterator it = paintDevice() -> createHLineIterator(x, y, dataWidth, true);
-        double coeff = TQ_UINT8_MAX / (double)( pow(2, sourceDepth() ) - 1 );
-//         kdDebug(41008) << " depth expension coefficient : " << coeff << endl;
-        while (!it.isDone()) {
-            TQ_UINT8 *d = it.rawData();
-            TQ_UINT8 i;
-            for(i = 0; i < nbColorsSamples() ; i++)
-            {
-                d[poses()[i]] = (TQ_UINT8)( tiffstream->nextValue() * coeff );
-            }
-            postProcessor()->postProcess8bit( d);
-            if(transform()) cmsDoTransform(transform(), d, d, 1);
-            d[poses()[i]] = TQ_UINT8_MAX;
-            for(int k = 0; k < nbExtraSamples(); k++)
-            {
-                if(k == alphaPos())
-                    d[poses()[i]] = (TQ_UINT32) ( tiffstream->nextValue() * coeff );
-                else
-                    tiffstream->nextValue();
-            }
-            ++it;
-        }
-        return 1;
-    }
-    uint KisTIFFReaderTarget16bit::copyDataToChannels( TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 dataWidth, TIFFStreamBase* tiffstream)
-    {
-        KisHLineIterator it = paintDevice() -> createHLineIterator(x, y, dataWidth, true);
-        double coeff = TQ_UINT16_MAX / (double)( pow(2, sourceDepth() ) - 1 );
-//         kdDebug(41008) << " depth expension coefficient : " << coeff << endl;
-        while (!it.isDone()) {
-            TQ_UINT16 *d = reinterpret_cast<TQ_UINT16 *>(it.rawData());
-            TQ_UINT8 i;
-            for(i = 0; i < nbColorsSamples(); i++)
-            {
-                d[poses()[i]] = (TQ_UINT16)( tiffstream->nextValue() * coeff );
-            }
-            postProcessor()->postProcess16bit( d);
-            if(transform()) cmsDoTransform(transform(), d, d, 1);
-            d[poses()[i]] = TQ_UINT16_MAX;
-            for(int k = 0; k < nbExtraSamples(); k++)
-            {
-                if(k == alphaPos())
-                    d[poses()[i]] = (TQ_UINT16) ( tiffstream->nextValue() * coeff );
-                else
-                    tiffstream->nextValue();
-            }
-            ++it;
-        }
-        return 1;
-    }
-    
-    uint KisTIFFReaderTarget32bit::copyDataToChannels( TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 dataWidth, TIFFStreamBase* tiffstream)
-    {
-        KisHLineIterator it = paintDevice() -> createHLineIterator(x, y, dataWidth, true);
-        double coeff = TQ_UINT32_MAX / (double)( pow(2, sourceDepth() ) - 1 );
-//         kdDebug(41008) << " depth expension coefficient : " << coeff << endl;
-        while (!it.isDone()) {
-            TQ_UINT32 *d = reinterpret_cast<TQ_UINT32 *>(it.rawData());
-            TQ_UINT8 i;
-            for(i = 0; i < nbColorsSamples(); i++)
-            {
-                d[poses()[i]] = (TQ_UINT32)( tiffstream->nextValue() * coeff );
-            }
-            postProcessor()->postProcess32bit( d);
-            if(transform()) cmsDoTransform(transform(), d, d, 1);
-            d[poses()[i]] = TQ_UINT32_MAX;
-            for(int k = 0; k < nbExtraSamples(); k++)
-            {
-                if(k == alphaPos())
-                    d[poses()[i]] = (TQ_UINT32) ( tiffstream->nextValue() * coeff );
-                else
-                    tiffstream->nextValue();
-            }
-            ++it;
-        }
-        return 1;
-    }
-    uint KisTIFFReaderFromPalette::copyDataToChannels(TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 dataWidth,  TIFFStreamBase* tiffstream)
-    {
-        KisHLineIterator it = paintDevice() -> createHLineIterator(x, y, dataWidth, true);
-        while (!it.isDone()) {
-            TQ_UINT16* d = reinterpret_cast<TQ_UINT16 *>(it.rawData());
-            uint32 index = tiffstream->nextValue();
-            d[2] = m_red[index];
-            d[1] = m_green[index];
-            d[0] = m_blue[index];
-            d[3] = TQ_UINT16_MAX;
-            ++it;
-        }
-        return 1;
-    }
diff --git a/filters/krita/tiff/kis_tiff_reader.h b/filters/krita/tiff/kis_tiff_reader.h
deleted file mode 100644
index 2ab573dd1..000000000
--- a/filters/krita/tiff/kis_tiff_reader.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef _KIS_TIFF_READER_H_
-#define _KIS_TIFF_READER_H_
-
-// On some platforms, tiffio.h #defines NULL in a bad
-// way for C++, as (void *)0 instead of using the correct
-// C++ value 0. Include stdio.h first to get the right one.
-#include <stdio.h>
-#include <tiffio.h>
-
-// #include <tqvaluevector.h>
-// #include <kio/job.h>
-// #include <kis_progress_subject.h>
-
-#include <kis_paint_device.h>
-
-#include "kis_types.h"
-#include "kis_global.h"
-// #include "kis_annotation.h"
-
-#include <kis_iterator.h>
-#include <kis_paint_device.h>
-
-#define TQ_UINT32_MAX 4294967295u
-
-class TIFFStreamBase;
-
-class KisTIFFPostProcessor {
-    public:
-        KisTIFFPostProcessor(uint8 nbcolorssamples) : m_nbcolorssamples(nbcolorssamples) { }
-    public:
-        virtual void postProcess8bit( TQ_UINT8* ) { };
-        virtual void postProcess16bit( TQ_UINT16* ) { };
-        virtual void postProcess32bit( TQ_UINT32* ) { };
-    protected:
-        inline uint8 nbColorsSamples() { return m_nbcolorssamples; }
-    private:
-        uint8 m_nbcolorssamples;
-};
-
-class KisTIFFPostProcessorInvert : public KisTIFFPostProcessor {
-    public:
-        KisTIFFPostProcessorInvert(uint8 nbcolorssamples) : KisTIFFPostProcessor(nbcolorssamples) {}
-    public:
-        virtual void postProcess8bit( TQ_UINT8* data )
-        {
-            for(int i = 0; i < nbColorsSamples(); i++)
-            {
-                data[i] = TQ_UINT8_MAX - data[i];
-            }
-        }
-        virtual void postProcess16bit( TQ_UINT16* data )
-        {
-            TQ_UINT16* d = (TQ_UINT16*) data;
-            for(int i = 0; i < nbColorsSamples(); i++)
-            {
-                d[i] = TQ_UINT16_MAX - d[i];
-            }
-        }
-        virtual void postProcess32bit( TQ_UINT32* data )
-        {
-            TQ_UINT32* d = (TQ_UINT32*) data;
-            for(int i = 0; i < nbColorsSamples(); i++)
-            {
-                d[i] = TQ_UINT32_MAX - d[i];
-            }
-        }
-};
-
-class KisTIFFPostProcessorICCLABtoCIELAB : public KisTIFFPostProcessor {
-    public:
-        KisTIFFPostProcessorICCLABtoCIELAB(uint8 nbcolorssamples) : KisTIFFPostProcessor(nbcolorssamples) {}
-    public:
-        void postProcess8bit(TQ_UINT8* data)
-        {
-            TQ_INT8* ds = (TQ_INT8*) data;
-            for(int i = 1; i < nbColorsSamples(); i++)
-            {
-                ds[i] = data[i] - TQ_UINT8_MAX/2;
-            }
-        }
-        void postProcess16bit(TQ_UINT16* data)
-        {
-            TQ_UINT16* d = (TQ_UINT16*) data;
-            TQ_INT16* ds = (TQ_INT16*) data;
-            for(int i = 1; i < nbColorsSamples(); i++)
-            {
-                ds[i] = d[i] - TQ_UINT16_MAX /2;
-            }
-        }
-        void postProcess32bit(TQ_UINT32* data)
-        {
-            TQ_UINT32* d = (TQ_UINT32*) data;
-            TQ_INT32* ds = (TQ_INT32*) data;
-            for(int i = 1; i < nbColorsSamples(); i++)
-            {
-                ds[i] = d[i] - TQ_UINT32_MAX /2;
-            }
-        }
-};
-
-
-class KisTIFFReaderBase {
-    public:
-        KisTIFFReaderBase( KisPaintDeviceSP device, TQ_UINT8* poses, int8 alphapos, uint8 sourceDepth, uint8 nbcolorssamples, uint8 extrasamplescount, cmsHTRANSFORM transformProfile, KisTIFFPostProcessor* postprocessor) : m_device(device), m_alphapos(alphapos), m_sourceDepth(sourceDepth), m_nbcolorssamples(nbcolorssamples), m_nbextrasamples(extrasamplescount), m_poses(poses), m_transformProfile(transformProfile), m_postprocess(postprocessor)
-        {
-            
-        }
-    public:
-        /**
-         * This function copy data from the tiff stream to the paint device starting at the given position.
-         * @param x horizontal start position
-         * @param y vertical start position
-         * @param dataWidth width of the data to copy
-         * @param tiffstream source of data
-         * 
-         * @return the number of line which were copied
-         */
-        virtual uint copyDataToChannels( TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 dataWidth, TIFFStreamBase* tiffstream) =0;
-        /**
-         * This function is called when all data has been read and should be used for any postprocessing.
-         */
-        virtual void finalize() { };
-    protected:
-        inline KisPaintDeviceSP paintDevice() { return m_device; }
-        inline TQ_UINT8 alphaPos() { return m_alphapos; }
-        inline TQ_UINT8 sourceDepth() { return m_sourceDepth; }
-        inline TQ_UINT8 nbColorsSamples() { return m_nbcolorssamples; }
-        inline TQ_UINT8 nbExtraSamples() { return m_nbextrasamples; }
-        inline TQ_UINT8* poses() { return m_poses; }
-        inline cmsHTRANSFORM transform() { return m_transformProfile; }
-        inline KisTIFFPostProcessor* postProcessor() { return m_postprocess; }
-    private:
-        KisPaintDeviceSP m_device;
-        TQ_UINT8 m_alphapos;
-        TQ_UINT8 m_sourceDepth;
-        TQ_UINT8 m_nbcolorssamples;
-        TQ_UINT8 m_nbextrasamples;
-        TQ_UINT8* m_poses;
-        cmsHTRANSFORM m_transformProfile;
-        KisTIFFPostProcessor* m_postprocess;
-        TQ_UINT32 m_tiffDataWidth;
-};
-
-class KisTIFFReaderTarget8bit : public KisTIFFReaderBase {
-    public:
-        KisTIFFReaderTarget8bit( KisPaintDeviceSP device, TQ_UINT8* poses, int8 alphapos, uint8 sourceDepth, uint8 nbcolorssamples, uint8 extrasamplescount,  cmsHTRANSFORM transformProfile, KisTIFFPostProcessor* postprocessor) : KisTIFFReaderBase(device, poses, alphapos, sourceDepth,  nbcolorssamples, extrasamplescount, transformProfile, postprocessor )
-        {
-            
-        }
-    public:
-        virtual uint copyDataToChannels( TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 dataWidth, TIFFStreamBase* tiffstream);
-};
-
-
-class KisTIFFReaderTarget16bit : public KisTIFFReaderBase {
-    public:
-        KisTIFFReaderTarget16bit( KisPaintDeviceSP device, TQ_UINT8* poses, int8 alphapos, uint8 sourceDepth, uint8 nbcolorssamples, uint8 extrasamplescount, cmsHTRANSFORM transformProfile, KisTIFFPostProcessor* postprocessor) : KisTIFFReaderBase(device, poses, alphapos, sourceDepth,  nbcolorssamples, extrasamplescount, transformProfile, postprocessor )
-        {
-            
-        }
-    public:
-        virtual uint copyDataToChannels( TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 dataWidth, TIFFStreamBase* tiffstream) ;
-};
-
-class KisTIFFReaderTarget32bit : public KisTIFFReaderBase {
-    public:
-        KisTIFFReaderTarget32bit( KisPaintDeviceSP device, TQ_UINT8* poses, int8 alphapos, uint8 sourceDepth, uint8 nbcolorssamples, uint8 extrasamplescount, cmsHTRANSFORM transformProfile, KisTIFFPostProcessor* postprocessor) : KisTIFFReaderBase(device, poses, alphapos, sourceDepth,  nbcolorssamples, extrasamplescount, transformProfile, postprocessor )
-        {
-            
-        }
-    public:
-        virtual uint copyDataToChannels( TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 dataWidth, TIFFStreamBase* tiffstream) ;
-};
-
-class KisTIFFReaderFromPalette : public  KisTIFFReaderBase {
-    public:
-        KisTIFFReaderFromPalette( KisPaintDeviceSP device, uint16 *red, uint16 *green, uint16 *blue, TQ_UINT8* poses, int8 alphapos, uint8 sourceDepth, uint8 nbcolorssamples, uint8 extrasamplescount, cmsHTRANSFORM transformProfile, KisTIFFPostProcessor* postprocessor) : KisTIFFReaderBase(device, poses, alphapos, sourceDepth,  nbcolorssamples, extrasamplescount, transformProfile, postprocessor ), m_red(red), m_green(green), m_blue(blue)
-        {
-            
-        }
-    public:
-        virtual uint copyDataToChannels( TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 dataWidth, TIFFStreamBase* tiffstream) ;
-    private:
-        uint16 *m_red,  *m_green, *m_blue;
-};
-
-#endif
diff --git a/filters/krita/tiff/kis_tiff_stream.cc b/filters/krita/tiff/kis_tiff_stream.cc
deleted file mode 100644
index 3d52d4dc7..000000000
--- a/filters/krita/tiff/kis_tiff_stream.cc
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- *  Copyright (c) 2005-2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
- 
-#include "kis_tiff_stream.h"
-
-TIFFStreamContigBase::TIFFStreamContigBase( uint8* src, uint16 depth, uint32 lineSize ) : TIFFStreamBase(depth), m_src(src), m_lineSize(lineSize) { restart(); }
-
-void TIFFStreamContigBase::restart()
-{
-    m_srcit = m_src;
-    m_posinc = 8;
-}
-
-void TIFFStreamContigBase::moveToLine(uint32 lineNumber)
-{
-    m_srcit = m_src + lineNumber * m_lineSize;
-    m_posinc = 8;
-}
-
-uint32 TIFFStreamContigBelow16::nextValue()
-{
-    register uint8 remain;
-    register uint32 value;
-    remain = m_depth;
-    value = 0;
-    while (remain > 0)
-    {
-        register uint8 toread;
-        toread = remain;
-        if (toread > m_posinc) toread = m_posinc;
-        remain -= toread;
-        m_posinc -= toread;
-        value = (value << toread) | (( (*m_srcit) >> (m_posinc) ) & ( ( 1 << toread ) - 1 ) );
-        if (m_posinc == 0)
-        {
-            m_srcit++;
-            m_posinc=8;
-        }
-    }
-    return value;
-}
-
-uint32 TIFFStreamContigBelow32::nextValue()
-{
-    register uint8 remain;
-    register uint32 value;
-    remain = m_depth;
-    value = 0;
-    while (remain > 0)
-    {
-        register uint8 toread;
-        toread = remain;
-        if (toread > m_posinc) toread = m_posinc;
-        remain -= toread;
-        m_posinc -= toread;
-        value = (value) | ( (( (*m_srcit) >> (m_posinc) ) & ( ( 1 << toread ) - 1 ) ) << ( m_depth - 8 - remain ) );
-        if (m_posinc == 0)
-        {
-            m_srcit++;
-            m_posinc=8;
-        }
-    }
-    return value;
-}
-
-uint32 TIFFStreamContigAbove32::nextValue()
-{
-    register uint8 remain;
-    register uint32 value;
-    remain = m_depth;
-    value = 0;
-    while (remain > 0)
-    {
-        register uint8 toread;
-        toread = remain;
-        if (toread > m_posinc) toread = m_posinc;
-        remain -= toread;
-        m_posinc -= toread;
-        if(remain < 32 )
-        {
-            value = (value) | ( (( (*m_srcit) >> (m_posinc) ) & ( ( 1 << toread ) - 1 ) ) << ( 24 - remain ) );
-        }
-        if (m_posinc == 0)
-        {
-            m_srcit++;
-            m_posinc=8;
-        }
-    }
-    return value;
-}
-
-TIFFStreamSeperate::TIFFStreamSeperate( uint8** srcs, uint8 nb_samples ,uint16 depth, uint32* lineSize) : TIFFStreamBase(depth), m_nb_samples(nb_samples)
-{
-    streams = new TIFFStreamContigBase*[nb_samples];
-    if(depth < 16)
-    {
-        for(uint8 i = 0; i < m_nb_samples; i++)
-        {
-            streams[i] = new TIFFStreamContigBelow16(srcs[i], depth, lineSize[i]);
-        }
-    } else if( depth < 32 )
-    {
-        for(uint8 i = 0; i < m_nb_samples; i++)
-        {
-            streams[i] = new TIFFStreamContigBelow32(srcs[i], depth, lineSize[i]);
-        }
-    } else {
-        for(uint8 i = 0; i < m_nb_samples; i++)
-        {
-            streams[i] = new TIFFStreamContigAbove32(srcs[i], depth, lineSize[i]);
-        }
-    }
-    restart();
-}
-
-TIFFStreamSeperate::~TIFFStreamSeperate()
-{
-    for(uint8 i = 0; i < m_nb_samples; i++)
-    {
-        delete streams[i];
-    }
-    delete[] streams;
-}
-
-uint32 TIFFStreamSeperate::nextValue()
-{
-    uint32 value = streams[ m_current_sample ]->nextValue();
-    if( (++m_current_sample) >= m_nb_samples)
-        m_current_sample = 0;
-    return value;
-}
-
-void TIFFStreamSeperate::restart()
-{
-    m_current_sample = 0;
-    for(uint8 i = 0; i < m_nb_samples; i++)
-    {
-        streams[i]->restart();
-    }
-}
-
-void TIFFStreamSeperate::moveToLine(uint32 lineNumber)
-{
-    for(uint8 i = 0; i < m_nb_samples; i++)
-    {
-        streams[i]->moveToLine(lineNumber);
-    }
-}
diff --git a/filters/krita/tiff/kis_tiff_stream.h b/filters/krita/tiff/kis_tiff_stream.h
deleted file mode 100644
index f203568e8..000000000
--- a/filters/krita/tiff/kis_tiff_stream.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *  Copyright (c) 2005-2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef TIFFSTREAM_H_
-#define TIFFSTREAM_H_
-
-#include <tiffio.h>
-
-class TIFFStreamBase {
-    public:
-       TIFFStreamBase( uint16 depth ) : m_depth(depth) {};
-        virtual uint32 nextValue() =0;
-        virtual void restart() =0;
-        virtual void moveToLine(uint32 lineNumber) =0;
-    protected:
-        uint16 m_depth;
-};
-
-class TIFFStreamContigBase : public TIFFStreamBase {
-    public:
-        TIFFStreamContigBase( uint8* src, uint16 depth, uint32 lineSize );
-        virtual void restart();
-        virtual void moveToLine(uint32 lineNumber);
-    protected:
-        uint8* m_src;
-        uint8* m_srcit;
-        uint8 m_posinc;
-        uint32 m_lineSize;
-};
-
-class TIFFStreamContigBelow16 : public TIFFStreamContigBase {
-    public:
-        TIFFStreamContigBelow16( uint8* src, uint16 depth, uint32 lineSize ) : TIFFStreamContigBase(src, depth, lineSize) { }
-    public:
-        virtual uint32 nextValue();
-};
-
-class TIFFStreamContigBelow32 : public TIFFStreamContigBase {
-    public:
-        TIFFStreamContigBelow32( uint8* src, uint16 depth, uint32 lineSize ) : TIFFStreamContigBase(src, depth, lineSize) { }
-    public:
-        virtual uint32 nextValue();
-};
-
-class TIFFStreamContigAbove32 : public TIFFStreamContigBase {
-    public:
-        TIFFStreamContigAbove32( uint8* src, uint16 depth, uint32 lineSize ) : TIFFStreamContigBase(src, depth, lineSize) { }
-    public:
-        virtual uint32 nextValue();
-};
-
-
-class TIFFStreamSeperate : public TIFFStreamBase {
-    public:
-        TIFFStreamSeperate( uint8** srcs, uint8 nb_samples ,uint16 depth, uint32* lineSize);
-        ~TIFFStreamSeperate();
-        virtual uint32 nextValue();
-        virtual void restart();
-        virtual void moveToLine(uint32 lineNumber);
-    private:
-        TIFFStreamContigBase** streams;
-        uint8 m_current_sample, m_nb_samples;
-};
-
-#endif
diff --git a/filters/krita/tiff/kis_tiff_writer_visitor.cpp b/filters/krita/tiff/kis_tiff_writer_visitor.cpp
deleted file mode 100644
index 766175342..000000000
--- a/filters/krita/tiff/kis_tiff_writer_visitor.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_tiff_writer_visitor.h"
-
-#include <kmessagebox.h>
-#include <klocale.h>
-
-#include <kis_annotation.h>
-#include <kis_colorspace.h>
-#include <kis_group_layer.h>
-#include <kis_image.h>
-#include <kis_paint_layer.h>
-#include <kis_types.h>
-
-#include "kis_tiff_converter.h"
-
-namespace {
-    bool writeColorSpaceInformation( TIFF* image, KisColorSpace * cs, uint16& color_type, uint16& sample_format )
-    {
-        sample_format = SAMPLEFORMAT_UINT;
-        if ( cs->id() == KisID("GRAYA") || cs->id() == KisID("GRAYA16") )
-        {
-            color_type = PHOTOMETRIC_MINISBLACK;
-            return true;
-        }
-        if ( cs->id() == KisID("RGBA") || cs->id() == KisID("RGBA16") )
-        {
-            color_type = PHOTOMETRIC_RGB;
-            return true;
-        }
-        if ( cs->id() == KisID("RGBAF16HALF") || cs->id() == KisID("RGBAF32") )
-        {
-            color_type = PHOTOMETRIC_RGB;
-            sample_format = SAMPLEFORMAT_IEEEFP;
-            return true;
-        }
-        if ( cs->id() == KisID("CMYK") || cs->id() == KisID("CMYKA16") )
-        {
-            color_type = PHOTOMETRIC_SEPARATED;
-            TIFFSetField(image, TIFFTAG_INKSET, INKSET_CMYK);
-            return true;
-        }
-        if ( cs->id() == KisID("LABA") )
-        {
-            color_type = PHOTOMETRIC_CIELAB;
-            return true;
-        }
-
-        KMessageBox::error(0, i18n("Cannot export images in %1.\n").tqarg(cs->id().name()) ) ;
-        return false;
-
-    }
-}
-
-KisTIFFWriterVisitor::KisTIFFWriterVisitor(TIFF*img, KisTIFFOptions* options) : m_image(img), m_options(options)
-{
-}
-
-KisTIFFWriterVisitor::~KisTIFFWriterVisitor()
-{
-}
-
-bool KisTIFFWriterVisitor::saveAlpha() { return m_options->alpha; }
-
-bool KisTIFFWriterVisitor::copyDataToStrips( KisHLineIterator it, tdata_t buff, uint8 depth, uint8 nbcolorssamples, TQ_UINT8* poses)
-{
-    if(depth == 32)
-    {
-        TQ_UINT32 *dst = reinterpret_cast<TQ_UINT32 *>(buff);
-        while (!it.isDone()) {
-            const TQ_UINT32 *d = reinterpret_cast<const TQ_UINT32 *>(it.rawData());
-            int i;
-            for(i = 0; i < nbcolorssamples; i++)
-            {
-                *(dst++) = d[poses[i]];
-            }
-            if(saveAlpha()) *(dst++) = d[poses[i]];
-            ++it;
-        }
-        return true;
-    } else if(depth == 16)
-    {
-        TQ_UINT16 *dst = reinterpret_cast<TQ_UINT16 *>(buff);
-        while (!it.isDone()) {
-            const TQ_UINT16 *d = reinterpret_cast<const TQ_UINT16 *>(it.rawData());
-            int i;
-            for(i = 0; i < nbcolorssamples; i++)
-            {
-                *(dst++) = d[poses[i]];
-            }
-            if(saveAlpha()) *(dst++) = d[poses[i]];
-            ++it;
-        }
-        return true;
-    } else if(depth == 8) {
-        TQ_UINT8 *dst = reinterpret_cast<TQ_UINT8 *>(buff);
-        while (!it.isDone()) {
-            const TQ_UINT8 *d = it.rawData();
-            int i;
-            for(i = 0; i < nbcolorssamples; i++)
-            {
-                *(dst++) = d[poses[i]];
-            }
-            if(saveAlpha()) *(dst++) = d[poses[i]];
-            ++it;
-        }
-        return true;
-    }
-    return false;
-}
-
-
-bool KisTIFFWriterVisitor::visit(KisPaintLayer *layer)
-{
-    kdDebug(41008) << "visiting on paint layer " << layer->name() << "\n";
-    KisPaintDeviceSP pd = layer->paintDevice();
-    // Save depth
-    int depth = 8 * pd->pixelSize() / pd->nChannels();
-    TIFFSetField(image(), TIFFTAG_BITSPERSAMPLE, depth);
-    // Save number of samples
-    if(saveAlpha())
-    {
-        TIFFSetField(image(), TIFFTAG_SAMPLESPERPIXEL, pd->nChannels());
-        uint16 sampleinfo[1] = { EXTRASAMPLE_UNASSALPHA };
-        TIFFSetField(image(), TIFFTAG_EXTRASAMPLES, 1, sampleinfo);
-    } else {
-        TIFFSetField(image(), TIFFTAG_SAMPLESPERPIXEL, pd->nChannels() - 1);
-        TIFFSetField(image(), TIFFTAG_EXTRASAMPLES, 0);
-    }
-    // Save colorspace information
-    uint16 color_type;
-    uint16 sample_format;
-    if(!writeColorSpaceInformation(image(), pd->colorSpace(), color_type, sample_format))
-    { // unsupported colorspace
-        return false;
-    }
-    TIFFSetField(image(), TIFFTAG_PHOTOMETRIC, color_type);
-    TIFFSetField(image(), TIFFTAG_SAMPLEFORMAT, sample_format);
-    TIFFSetField(image(), TIFFTAG_IMAGEWIDTH, layer->image()->width());
-    TIFFSetField(image(), TIFFTAG_IMAGELENGTH, layer->image()->height());
-
-    // Set the compression options
-    TIFFSetField(image(), TIFFTAG_COMPRESSION, m_options->compressionType);
-    TIFFSetField(image(), TIFFTAG_FAXMODE, m_options->faxMode);
-    TIFFSetField(image(), TIFFTAG_JPEGTQUALITY, m_options->jpegQuality);
-    TIFFSetField(image(), TIFFTAG_ZIPTQUALITY, m_options->deflateCompress);
-    TIFFSetField(image(), TIFFTAG_PIXARLOGTQUALITY, m_options->pixarLogCompress);
-    
-    // Set the predictor
-    TIFFSetField(image(), TIFFTAG_PREDICTOR, m_options->predictor);
-
-    // Use contiguous configuration
-    TIFFSetField(image(), TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
-    // Use 8 rows per strip
-    TIFFSetField(image(), TIFFTAG_ROWSPERSTRIP, 8);
-
-    // Save profile
-    KisProfile* profile = pd->colorSpace()->getProfile();
-    if(profile)
-    {
-        TQByteArray ba = profile->annotation()->annotation();
-        TIFFSetField(image(), TIFFTAG_ICCPROFILE, ba.size(),ba.data());
-    }
-    tsize_t stripsize = TIFFStripSize(image());
-    tdata_t buff = _TIFFmalloc(stripsize);
-    TQ_INT32 height = layer->image()->height();
-    TQ_INT32 width = layer->image()->width();
-    bool r = true;
-    for (int y = 0; y < height; y++) {
-        KisHLineIterator it = layer->paintDevice()->createHLineIterator(0, y, width, false);
-        switch(color_type)
-        {
-            case PHOTOMETRIC_MINISBLACK:
-            {
-                TQ_UINT8 poses[]={ 0,1 };
-                r = copyDataToStrips(it, buff, depth, 1, poses);
-            }
-                break;
-            case PHOTOMETRIC_RGB:
-            {
-                TQ_UINT8 poses[]={ 2, 1, 0, 3};
-                r = copyDataToStrips(it, buff, depth, 3, poses);
-            }
-                break;
-            case PHOTOMETRIC_SEPARATED:
-            {
-                TQ_UINT8 poses[]={ 0, 1, 2, 3, 4 };
-                r = copyDataToStrips(it, buff, depth, 4, poses);
-            }
-                break;
-            case PHOTOMETRIC_CIELAB:
-            {
-                TQ_UINT8 poses[]={ 0, 1, 2, 3 };
-                r = copyDataToStrips(it, buff, depth, 3, poses);
-            }
-                break;
-            return false;
-        }
-        if(!r) return false;
-        TIFFWriteScanline(image(), buff, y, (tsample_t) -1);
-    }
-    _TIFFfree(buff);
-    TIFFWriteDirectory(image());
-    return true;
-}
-bool KisTIFFWriterVisitor::visit(KisGroupLayer *layer)
-{
-    kdDebug(41008) << "Visiting on grouplayer " << layer->name() << "\n";
-    KisLayerSP child = layer->firstChild();
-    while (child) {
-        child->accept(*this);
-        child = child->nextSibling();
-    }
-    return true;
-}
-
-bool KisTIFFWriterVisitor::visit(KisPartLayer *)
-{
-    return true;
-}
diff --git a/filters/krita/tiff/kis_tiff_writer_visitor.h b/filters/krita/tiff/kis_tiff_writer_visitor.h
deleted file mode 100644
index abd1aec79..000000000
--- a/filters/krita/tiff/kis_tiff_writer_visitor.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_TIFF_WRITER_VISITOR_H
-#define KIS_TIFF_WRITER_VISITOR_H
-
-#include <kis_layer_visitor.h>
-
-#include <kis_iterators_pixel.h>
-
-#include <tiffio.h>
-
-class KisTIFFOptions;
-
-/**
-	@author Cyrille Berger <cberger@cberger.net>
-*/
-class KisTIFFWriterVisitor : public KisLayerVisitor
-{
-    public:
-        KisTIFFWriterVisitor(TIFF*img, KisTIFFOptions* options);
-        ~KisTIFFWriterVisitor();
-    public:
-        virtual bool visit(KisPaintLayer *layer);
-        virtual bool visit(KisGroupLayer *layer);
-        virtual bool visit(KisPartLayer *layer);
-        virtual bool visit(KisAdjustmentLayer* ) { return true; }
-    private:
-        inline TIFF* image() { return m_image; }
-        inline bool saveAlpha();
-        bool copyDataToStrips( KisHLineIterator it, tdata_t buff, uint8 depth, uint8 nbcolorssamples, TQ_UINT8* poses);
-    private:
-        TIFF* m_image;
-        KisTIFFOptions* m_options;
-};
-
-#endif
diff --git a/filters/krita/tiff/kis_tiff_ycbcr_reader.cc b/filters/krita/tiff/kis_tiff_ycbcr_reader.cc
deleted file mode 100644
index ce5e4ae95..000000000
--- a/filters/krita/tiff/kis_tiff_ycbcr_reader.cc
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_tiff_ycbcr_reader.h"
-
-#include <kis_iterators_pixel.h>
-#include <kis_paint_device.h>
-
-#include "kis_tiff_stream.h"
-
-
-KisTIFFYCbCrReaderTarget8Bit::KisTIFFYCbCrReaderTarget8Bit( KisPaintDeviceSP device, TQ_UINT8* poses, int8 alphapos, uint8 sourceDepth, uint8 nbcolorssamples, uint8 extrasamplescount,  cmsHTRANSFORM transformProfile, KisTIFFPostProcessor* postprocessor, uint16 hsub, uint16 vsub, KisTIFFYCbCr::Position position ) : KisTIFFReaderBase(device, poses, alphapos, sourceDepth,  nbcolorssamples, extrasamplescount, transformProfile, postprocessor), m_hsub(hsub), m_vsub(vsub), m_position(position)
-{
-    // Initialize the buffer
-    TQ_INT32 imagewidth = device->image()->width();
-    if(2*(imagewidth / 2) != imagewidth) imagewidth++;
-    m_bufferWidth = imagewidth / m_hsub;
-    TQ_INT32 imageheight = device->image()->height();
-    if(2*(imageheight / 2) != imageheight) imageheight++;
-    m_bufferHeight = imageheight / m_vsub;
-    m_bufferCb = new TQ_UINT8[ m_bufferWidth * m_bufferHeight ];
-    m_bufferCr = new TQ_UINT8[ m_bufferWidth * m_bufferHeight ];
-}
-
-KisTIFFYCbCrReaderTarget8Bit::~KisTIFFYCbCrReaderTarget8Bit()
-{
-    delete[] m_bufferCb;
-    delete[] m_bufferCr;
-}
-
-uint KisTIFFYCbCrReaderTarget8Bit::copyDataToChannels( TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 dataWidth, TIFFStreamBase* tiffstream)
-{
-    int numcols = dataWidth / m_hsub;
-    double coeff = TQ_UINT8_MAX / (double)( pow(2, sourceDepth() ) - 1 );
-//     kdDebug(41008) << " depth expension coefficient : " << coeff << endl;
-//     kdDebug(41008) << " y = " << y << endl;
-    uint buffPos = y / m_vsub * m_bufferWidth + x / m_hsub ;
-    for(int index = 0; index < numcols; index++)
-    {
-        KisHLineIterator it = paintDevice() -> createHLineIterator(x + m_hsub * index, y, m_hsub, true);
-        for( int vindex = 0; vindex < m_vsub; vindex++)
-        {
-            while( !it.isDone() )
-            {
-                TQ_UINT8 *d = it.rawData();
-                d[0] = (TQ_UINT8)( tiffstream->nextValue() * coeff );
-                d[3] = TQ_UINT8_MAX;
-                for(int k = 0; k < nbExtraSamples(); k++)
-                {
-                    if(k == alphaPos())
-                        d[3] = (TQ_UINT32) ( tiffstream->nextValue() * coeff );
-                    else
-                        tiffstream->nextValue();
-                }
-                ++it;
-            }
-            it.nextRow();
-        }
-        m_bufferCb[ buffPos ] = (TQ_UINT8)(tiffstream->nextValue() * coeff);
-        m_bufferCr[ buffPos ] = (TQ_UINT8)(tiffstream->nextValue() * coeff);
-        buffPos ++;
-    }
-    return m_vsub;
-}
-
-void KisTIFFYCbCrReaderTarget8Bit::finalize()
-{
-    KisHLineIterator it = paintDevice() -> createHLineIterator(0, 0, paintDevice()->image()->width(), true);
-    for(int y = 0; y < paintDevice()->image()->height(); y++)
-    {
-        int x = 0;
-        while(!it.isDone())
-        {
-            TQ_UINT8 *d = it.rawData();
-            int index =  x/m_hsub + y/m_vsub * m_bufferWidth;
-            d[1] = m_bufferCb[ index ];
-            d[2] = m_bufferCr[ index ];
-            ++it; ++x;
-        }
-        it.nextRow();
-    }
-}
-
-KisTIFFYCbCrReaderTarget16Bit::KisTIFFYCbCrReaderTarget16Bit( KisPaintDeviceSP device, TQ_UINT8* poses, int8 alphapos, uint8 sourceDepth, uint8 nbcolorssamples, uint8 extrasamplescount,  cmsHTRANSFORM transformProfile, KisTIFFPostProcessor* postprocessor, uint16 hsub, uint16 vsub, KisTIFFYCbCr::Position position ) : KisTIFFReaderBase(device, poses, alphapos, sourceDepth,  nbcolorssamples, extrasamplescount, transformProfile, postprocessor), m_hsub(hsub), m_vsub(vsub), m_position(position)
-{
-    // Initialize the buffer
-    TQ_INT32 imagewidth = device->image()->width();
-    if(2*(imagewidth / 2) != imagewidth) imagewidth++;
-    m_bufferWidth = imagewidth / m_hsub;
-    TQ_INT32 imageheight = device->image()->height();
-    if(2*(imageheight / 2) != imageheight) imageheight++;
-    m_bufferHeight = imageheight / m_vsub;
-    m_bufferCb = new TQ_UINT16[ m_bufferWidth * m_bufferHeight ];
-    m_bufferCr = new TQ_UINT16[ m_bufferWidth * m_bufferHeight ];
-}
-
-KisTIFFYCbCrReaderTarget16Bit::~KisTIFFYCbCrReaderTarget16Bit()
-{
-    delete[] m_bufferCb;
-    delete[] m_bufferCr;
-}
-
-uint KisTIFFYCbCrReaderTarget16Bit::copyDataToChannels( TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 dataWidth, TIFFStreamBase* tiffstream)
-{
-    int numcols = dataWidth / m_hsub;
-    double coeff = TQ_UINT16_MAX / (double)( pow(2, sourceDepth() ) - 1 );
-//     kdDebug(41008) << " depth expension coefficient : " << coeff << endl;
-//     kdDebug(41008) << " y = " << y << endl;
-    uint buffPos = y / m_vsub * m_bufferWidth + x / m_hsub ;
-    for(int index = 0; index < numcols; index++)
-    {
-        KisHLineIterator it = paintDevice() -> createHLineIterator(x + m_hsub * index, y, m_hsub, true);
-        for( int vindex = 0; vindex < m_vsub; vindex++)
-        {
-            while( !it.isDone() )
-            {
-                TQ_UINT16 *d = reinterpret_cast<TQ_UINT16 *>(it.rawData());
-                d[0] = (TQ_UINT16)( tiffstream->nextValue() * coeff );
-                d[3] = TQ_UINT16_MAX;
-                for(int k = 0; k < nbExtraSamples(); k++)
-                {
-                    if(k == alphaPos())
-                        d[3] = (TQ_UINT32) ( tiffstream->nextValue() * coeff );
-                    else
-                        tiffstream->nextValue();
-                }
-                ++it;
-            }
-            it.nextRow();
-        }
-        m_bufferCb[ buffPos ] = (TQ_UINT16)(tiffstream->nextValue() * coeff);
-        m_bufferCr[ buffPos ] = (TQ_UINT16)(tiffstream->nextValue() * coeff);
-        buffPos ++;
-    }
-    return m_vsub;
-}
-
-void KisTIFFYCbCrReaderTarget16Bit::finalize()
-{
-    KisHLineIterator it = paintDevice() -> createHLineIterator(0, 0, paintDevice()->image()->width(), true);
-    for(int y = 0; y < paintDevice()->image()->height(); y++)
-    {
-        int x = 0;
-        while(!it.isDone())
-        {
-            TQ_UINT16 *d = reinterpret_cast<TQ_UINT16 *>(it.rawData());
-            int index =  x/m_hsub + y/m_vsub * m_bufferWidth;
-            d[1] = m_bufferCb[ index ];
-            d[2] = m_bufferCr[ index ];
-            ++it; ++x;
-        }
-        it.nextRow();
-    }
-}
diff --git a/filters/krita/tiff/kis_tiff_ycbcr_reader.h b/filters/krita/tiff/kis_tiff_ycbcr_reader.h
deleted file mode 100644
index e81e88937..000000000
--- a/filters/krita/tiff/kis_tiff_ycbcr_reader.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef _KIS_TIFF_YCBCR_READER_H_
-#define _KIS_TIFF_YCBCR_READER_H_
-
-#include "kis_tiff_reader.h"
-
-namespace KisTIFFYCbCr {
-    enum Position {
-        POSITION_CENTERED = 1,
-        POSITION_COSITED = 2
-    };
-}
-
-class KisTIFFYCbCrReaderTarget8Bit : public KisTIFFReaderBase {
-    public:
-        /**
-         * @param hsub horizontal subsampling of Cb and Cr
-         * @param hsub vertical subsampling of Cb and Cr
-         */
-        KisTIFFYCbCrReaderTarget8Bit( KisPaintDeviceSP device, TQ_UINT8* poses, int8 alphapos, uint8 sourceDepth, uint8 nbcolorssamples, uint8 extrasamplescount,  cmsHTRANSFORM transformProfile, KisTIFFPostProcessor* postprocessor, uint16 hsub, uint16 vsub, KisTIFFYCbCr::Position position );
-        ~KisTIFFYCbCrReaderTarget8Bit();
-        virtual uint copyDataToChannels( TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 dataWidth, TIFFStreamBase* tiffstream);
-        virtual void finalize();
-    private:
-        TQ_UINT8* m_bufferCb;
-        TQ_UINT8* m_bufferCr;
-        TQ_UINT32 m_bufferWidth, m_bufferHeight;
-        uint16 m_hsub;
-        uint16 m_vsub;
-        KisTIFFYCbCr::Position m_position;
-
-};
-
-class KisTIFFYCbCrReaderTarget16Bit : public KisTIFFReaderBase {
-    public:
-        /**
-         * @param hsub horizontal subsampling of Cb and Cr
-         * @param hsub vertical subsampling of Cb and Cr
-         */
-        KisTIFFYCbCrReaderTarget16Bit( KisPaintDeviceSP device, TQ_UINT8* poses, int8 alphapos, uint8 sourceDepth, uint8 nbcolorssamples, uint8 extrasamplescount,  cmsHTRANSFORM transformProfile, KisTIFFPostProcessor* postprocessor, uint16 hsub, uint16 vsub, KisTIFFYCbCr::Position position );
-        ~KisTIFFYCbCrReaderTarget16Bit();
-        virtual uint copyDataToChannels( TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 dataWidth, TIFFStreamBase* tiffstream);
-        virtual void finalize();
-    private:
-        TQ_UINT16* m_bufferCb;
-        TQ_UINT16* m_bufferCr;
-        TQ_UINT32 m_bufferWidth, m_bufferHeight;
-        uint16 m_hsub;
-        uint16 m_vsub;
-        KisTIFFYCbCr::Position m_position;
-
-};
-
-
-#endif
diff --git a/filters/krita/tiff/kis_wdg_options_tiff.ui b/filters/krita/tiff/kis_wdg_options_tiff.ui
deleted file mode 100644
index 3ffc1bd43..000000000
--- a/filters/krita/tiff/kis_wdg_options_tiff.ui
+++ /dev/null
@@ -1,741 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>KisWdgOptionsTIFF</class>
-<widget class="TQWidget">
-    <property name="name">
-        <cstring>KisWdgOptionsTIFF</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>452</width>
-            <height>267</height>
-        </rect>
-    </property>
-    <property name="sizePolicy">
-        <sizepolicy>
-            <hsizetype>1</hsizetype>
-            <vsizetype>1</vsizetype>
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-        </sizepolicy>
-    </property>
-    <property name="caption">
-        <string>Options of Your TIFF</string>
-    </property>
-    <vbox>
-        <property name="name">
-            <cstring>unnamed</cstring>
-        </property>
-        <property name="margin">
-            <number>0</number>
-        </property>
-        <widget class="TQGroupBox">
-            <property name="name">
-                <cstring>groupBox1</cstring>
-            </property>
-            <property name="sizePolicy">
-                <sizepolicy>
-                    <hsizetype>1</hsizetype>
-                    <vsizetype>1</vsizetype>
-                    <horstretch>0</horstretch>
-                    <verstretch>0</verstretch>
-                </sizepolicy>
-            </property>
-            <property name="title">
-                <string>TIFF Options</string>
-            </property>
-            <vbox>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="TQLayoutWidget">
-                    <property name="name">
-                        <cstring>tqlayout10</cstring>
-                    </property>
-                    <hbox>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <widget class="TQLabel">
-                            <property name="name">
-                                <cstring>textLabel1</cstring>
-                            </property>
-                            <property name="text">
-                                <string>Compression type:</string>
-                            </property>
-                        </widget>
-                        <widget class="KComboBox">
-                            <item>
-                                <property name="text">
-                                    <string>None</string>
-                                </property>
-                            </item>
-                            <item>
-                                <property name="text">
-                                    <string>JPEG DCT Compression</string>
-                                </property>
-                            </item>
-                            <item>
-                                <property name="text">
-                                    <string>Deflate (ZIP)</string>
-                                </property>
-                            </item>
-                            <item>
-                                <property name="text">
-                                    <string>Lempel-Ziv &amp; Welch (LZW)</string>
-                                </property>
-                            </item>
-                            <item>
-                                <property name="text">
-                                    <string>Leadtools JPEG2000</string>
-                                </property>
-                            </item>
-                            <item>
-                                <property name="text">
-                                    <string>CCITT Modified Huffman RLE</string>
-                                </property>
-                            </item>
-                            <item>
-                                <property name="text">
-                                    <string>CCITT Group 3 Fax Encoding</string>
-                                </property>
-                            </item>
-                            <item>
-                                <property name="text">
-                                    <string>CCITT Group 4 Fax Encoding</string>
-                                </property>
-                            </item>
-                            <item>
-                                <property name="text">
-                                    <string>Pixar Log</string>
-                                </property>
-                            </item>
-                            <property name="name">
-                                <cstring>kComboBoxCompressionType</cstring>
-                            </property>
-                        </widget>
-                    </hbox>
-                </widget>
-                <widget class="TQLayoutWidget">
-                    <property name="name">
-                        <cstring>tqlayout7</cstring>
-                    </property>
-                    <hbox>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <widget class="TQLabel">
-                            <property name="name">
-                                <cstring>textLabel1_3</cstring>
-                            </property>
-                            <property name="text">
-                                <string>Predictor:</string>
-                            </property>
-                        </widget>
-                        <widget class="KComboBox">
-                            <item>
-                                <property name="text">
-                                    <string>None</string>
-                                </property>
-                            </item>
-                            <item>
-                                <property name="text">
-                                    <string>Horizontal Differencing</string>
-                                </property>
-                            </item>
-                            <item>
-                                <property name="text">
-                                    <string>Floating PointQt::Horizontal Differencing</string>
-                                </property>
-                            </item>
-                            <property name="name">
-                                <cstring>kComboBoxPredictor</cstring>
-                            </property>
-                            <property name="currentItem">
-                                <number>0</number>
-                            </property>
-                            <property name="toolTip" stdset="0">
-                                <string>Using a predictor can improve the compression (mostly for LZW and deflate)</string>
-                            </property>
-                        </widget>
-                    </hbox>
-                </widget>
-                <widget class="TQCheckBox">
-                    <property name="name">
-                        <cstring>alpha</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Store alpha &amp;channel (transparency)</string>
-                    </property>
-                    <property name="checked">
-                        <bool>true</bool>
-                    </property>
-                    <property name="toolTip" stdset="0">
-                        <string>Disable to get smaller files if your image has no transparancy</string>
-                    </property>
-                    <property name="whatsThis" stdset="0">
-                        <string>&lt;p&gt;The Portable Network Graphics (PNG) file format allows transparancy in your image to be stored by saving an alpha channel.
-You can uncheck the box if you are not using transparancy and you want to make the resulting file smaller .&lt;br&gt;Always saving the alpha channel is recommended.&lt;/p&gt;</string>
-                    </property>
-                </widget>
-                <widget class="TQCheckBox">
-                    <property name="name">
-                        <cstring>flatten</cstring>
-                    </property>
-                    <property name="sizePolicy">
-                        <sizepolicy>
-                            <hsizetype>3</hsizetype>
-                            <vsizetype>3</vsizetype>
-                            <horstretch>0</horstretch>
-                            <verstretch>0</verstretch>
-                        </sizepolicy>
-                    </property>
-                    <property name="text">
-                        <string>Flatten the &amp;image</string>
-                    </property>
-                    <property name="checked">
-                        <bool>true</bool>
-                    </property>
-                    <property name="toolTip" stdset="0">
-                        <string>This option will merge all layers. It is advisable to check this option, otherwise other applications might not be able to read your file correctly.</string>
-                    </property>
-                </widget>
-            </vbox>
-        </widget>
-        <widget class="TQWidgetStack">
-            <property name="name">
-                <cstring>codecsOptionsStack</cstring>
-            </property>
-            <property name="frameShape">
-                <enum>NoFrame</enum>
-            </property>
-            <widget class="TQWidget">
-                <property name="name">
-                    <cstring>WStackPage</cstring>
-                </property>
-                <attribute name="id">
-                    <number>0</number>
-                </attribute>
-                <hbox>
-                    <property name="name">
-                        <cstring>unnamed</cstring>
-                    </property>
-                    <property name="margin">
-                        <number>0</number>
-                    </property>
-                    <property name="spacing">
-                        <number>0</number>
-                    </property>
-                    <widget class="TQFrame">
-                        <property name="name">
-                            <cstring>frame4</cstring>
-                        </property>
-                        <property name="frameShape">
-                            <enum>NoFrame</enum>
-                        </property>
-                        <property name="frameShadow">
-                            <enum>Plain</enum>
-                        </property>
-                    </widget>
-                </hbox>
-            </widget>
-            <widget class="TQWidget">
-                <property name="name">
-                    <cstring>WStackPage</cstring>
-                </property>
-                <attribute name="id">
-                    <number>1</number>
-                </attribute>
-                <hbox>
-                    <property name="name">
-                        <cstring>unnamed</cstring>
-                    </property>
-                    <property name="margin">
-                        <number>0</number>
-                    </property>
-                    <property name="spacing">
-                        <number>0</number>
-                    </property>
-                    <widget class="TQGroupBox">
-                        <property name="name">
-                            <cstring>groupBoxJPEG</cstring>
-                        </property>
-                        <property name="sizePolicy">
-                            <sizepolicy>
-                                <hsizetype>1</hsizetype>
-                                <vsizetype>1</vsizetype>
-                                <horstretch>0</horstretch>
-                                <verstretch>0</verstretch>
-                            </sizepolicy>
-                        </property>
-                        <property name="title">
-                            <string>JPEG Compression Options</string>
-                        </property>
-                        <hbox>
-                            <property name="name">
-                                <cstring>unnamed</cstring>
-                            </property>
-                            <widget class="TQLabel">
-                                <property name="name">
-                                    <cstring>textLabel1_2</cstring>
-                                </property>
-                                <property name="text">
-                                    <string>Quality:</string>
-                                </property>
-                                <property name="tqalignment">
-                                    <set>AlignTop</set>
-                                </property>
-                            </widget>
-                            <widget class="TQLayoutWidget">
-                                <property name="name">
-                                    <cstring>tqlayout5</cstring>
-                                </property>
-                                <vbox>
-                                    <property name="name">
-                                        <cstring>unnamed</cstring>
-                                    </property>
-                                    <widget class="TQSlider">
-                                        <property name="name">
-                                            <cstring>qualityLevel</cstring>
-                                        </property>
-                                        <property name="minValue">
-                                            <number>0</number>
-                                        </property>
-                                        <property name="maxValue">
-                                            <number>100</number>
-                                        </property>
-                                        <property name="lineStep">
-                                            <number>1</number>
-                                        </property>
-                                        <property name="pageStep">
-                                            <number>1</number>
-                                        </property>
-                                        <property name="value">
-                                            <number>80</number>
-                                        </property>
-                                        <property name="orientation">
-                                            <enum>Horizontal</enum>
-                                        </property>
-                                        <property name="tickmarks">
-                                            <enum>Both</enum>
-                                        </property>
-                                        <property name="tickInterval">
-                                            <number>10</number>
-                                        </property>
-                                        <property name="toolTip" stdset="0">
-                                            <string>These settings determine how much information is lost during compression</string>
-                                        </property>
-                                    </widget>
-                                    <widget class="TQLayoutWidget">
-                                        <property name="name">
-                                            <cstring>tqlayout4_2</cstring>
-                                        </property>
-                                        <hbox>
-                                            <property name="name">
-                                                <cstring>unnamed</cstring>
-                                            </property>
-                                            <widget class="TQLabel">
-                                                <property name="name">
-                                                    <cstring>textLabel3</cstring>
-                                                </property>
-                                                <property name="text">
-                                                    <string>Smallest</string>
-                                                </property>
-                                            </widget>
-                                            <widget class="TQLabel">
-                                                <property name="name">
-                                                    <cstring>textLabel4</cstring>
-                                                </property>
-                                                <property name="text">
-                                                    <string>Best</string>
-                                                </property>
-                                                <property name="tqalignment">
-                                                    <set>AlignVCenter|AlignRight</set>
-                                                </property>
-                                            </widget>
-                                        </hbox>
-                                    </widget>
-                                </vbox>
-                            </widget>
-                        </hbox>
-                    </widget>
-                </hbox>
-            </widget>
-            <widget class="TQWidget">
-                <property name="name">
-                    <cstring>WStackPage</cstring>
-                </property>
-                <attribute name="id">
-                    <number>2</number>
-                </attribute>
-                <hbox>
-                    <property name="name">
-                        <cstring>unnamed</cstring>
-                    </property>
-                    <property name="margin">
-                        <number>0</number>
-                    </property>
-                    <property name="spacing">
-                        <number>0</number>
-                    </property>
-                    <widget class="TQGroupBox">
-                        <property name="name">
-                            <cstring>groupBoxDeflate</cstring>
-                        </property>
-                        <property name="sizePolicy">
-                            <sizepolicy>
-                                <hsizetype>1</hsizetype>
-                                <vsizetype>1</vsizetype>
-                                <horstretch>0</horstretch>
-                                <verstretch>0</verstretch>
-                            </sizepolicy>
-                        </property>
-                        <property name="title">
-                            <string>Deflate Compression Options</string>
-                        </property>
-                        <hbox>
-                            <property name="name">
-                                <cstring>unnamed</cstring>
-                            </property>
-                            <widget class="TQLabel">
-                                <property name="name">
-                                    <cstring>textLabel1_4</cstring>
-                                </property>
-                                <property name="text">
-                                    <string>Compress:</string>
-                                </property>
-                                <property name="tqalignment">
-                                    <set>AlignTop</set>
-                                </property>
-                                <property name="toolTip" stdset="0">
-                                    <string>Note: the compression level does not change the quality of the result</string>
-                                </property>
-                                <property name="whatsThis" stdset="0">
-                                    <string>&lt;p&gt;Adjust the compression time. Better compression takes longer.
-&lt;br&gt;Note: the compression level does not change the quality of the result.&lt;/p&gt;</string>
-                                </property>
-                            </widget>
-                            <widget class="TQLayoutWidget">
-                                <property name="name">
-                                    <cstring>tqlayout5_2</cstring>
-                                </property>
-                                <vbox>
-                                    <property name="name">
-                                        <cstring>unnamed</cstring>
-                                    </property>
-                                    <widget class="TQSlider">
-                                        <property name="name">
-                                            <cstring>compressionLevelDeflate</cstring>
-                                        </property>
-                                        <property name="minValue">
-                                            <number>1</number>
-                                        </property>
-                                        <property name="maxValue">
-                                            <number>9</number>
-                                        </property>
-                                        <property name="pageStep">
-                                            <number>1</number>
-                                        </property>
-                                        <property name="value">
-                                            <number>6</number>
-                                        </property>
-                                        <property name="orientation">
-                                            <enum>Horizontal</enum>
-                                        </property>
-                                        <property name="tickmarks">
-                                            <enum>Both</enum>
-                                        </property>
-                                        <property name="toolTip" stdset="0">
-                                            <string>Note: the compression level doesn't change the quality of the result</string>
-                                        </property>
-                                        <property name="whatsThis" stdset="0">
-                                            <string>&lt;p&gt;Adjust the compression time. Better compression takes longer.
-&lt;br&gt;Note: the compression level doesn't change the quality of the result.&lt;/p&gt;</string>
-                                        </property>
-                                    </widget>
-                                    <widget class="TQLayoutWidget">
-                                        <property name="name">
-                                            <cstring>tqlayout4</cstring>
-                                        </property>
-                                        <hbox>
-                                            <property name="name">
-                                                <cstring>unnamed</cstring>
-                                            </property>
-                                            <widget class="TQLabel">
-                                                <property name="name">
-                                                    <cstring>textLabel3_2</cstring>
-                                                </property>
-                                                <property name="text">
-                                                    <string>Fast</string>
-                                                </property>
-                                                <property name="whatsThis" stdset="0">
-                                                    <string>&lt;p&gt;Adjust the compression time. Better compression takes longer.
-&lt;br&gt;Note: the compression level doesn't change the quality of the result.&lt;/p&gt;</string>
-                                                </property>
-                                            </widget>
-                                            <widget class="TQLabel">
-                                                <property name="name">
-                                                    <cstring>textLabel4_2</cstring>
-                                                </property>
-                                                <property name="text">
-                                                    <string>Small</string>
-                                                </property>
-                                                <property name="tqalignment">
-                                                    <set>AlignVCenter|AlignRight</set>
-                                                </property>
-                                                <property name="whatsThis" stdset="0">
-                                                    <string>&lt;p&gt;Adjust the compression time. Better compression takes longer.
-&lt;br&gt;Note: the compression level doesn't change the quality of the result.&lt;/p&gt;</string>
-                                                </property>
-                                            </widget>
-                                        </hbox>
-                                    </widget>
-                                </vbox>
-                            </widget>
-                        </hbox>
-                    </widget>
-                </hbox>
-            </widget>
-            <widget class="TQWidget">
-                <property name="name">
-                    <cstring>WStackPage</cstring>
-                </property>
-                <attribute name="id">
-                    <number>3</number>
-                </attribute>
-                <hbox>
-                    <property name="name">
-                        <cstring>unnamed</cstring>
-                    </property>
-                    <property name="margin">
-                        <number>0</number>
-                    </property>
-                    <property name="spacing">
-                        <number>0</number>
-                    </property>
-                    <widget class="TQGroupBox">
-                        <property name="name">
-                            <cstring>groupBoxCCITGroupCCITG3</cstring>
-                        </property>
-                        <property name="sizePolicy">
-                            <sizepolicy>
-                                <hsizetype>1</hsizetype>
-                                <vsizetype>1</vsizetype>
-                                <horstretch>0</horstretch>
-                                <verstretch>0</verstretch>
-                            </sizepolicy>
-                        </property>
-                        <property name="title">
-                            <string>CCITT Group 3 fax encoding Options</string>
-                        </property>
-                        <hbox>
-                            <property name="name">
-                                <cstring>unnamed</cstring>
-                            </property>
-                            <widget class="TQLabel">
-                                <property name="name">
-                                    <cstring>textLabel2</cstring>
-                                </property>
-                                <property name="text">
-                                    <string>Fax mode:</string>
-                                </property>
-                            </widget>
-                            <widget class="KComboBox">
-                                <item>
-                                    <property name="text">
-                                        <string>Classic</string>
-                                    </property>
-                                </item>
-                                <item>
-                                    <property name="text">
-                                        <string>No RTC</string>
-                                    </property>
-                                </item>
-                                <item>
-                                    <property name="text">
-                                        <string>No EOL</string>
-                                    </property>
-                                </item>
-                                <property name="name">
-                                    <cstring>kComboBoxFaxMode</cstring>
-                                </property>
-                            </widget>
-                        </hbox>
-                    </widget>
-                </hbox>
-            </widget>
-            <widget class="TQWidget">
-                <property name="name">
-                    <cstring>WStackPage</cstring>
-                </property>
-                <attribute name="id">
-                    <number>4</number>
-                </attribute>
-                <hbox>
-                    <property name="name">
-                        <cstring>unnamed</cstring>
-                    </property>
-                    <property name="margin">
-                        <number>0</number>
-                    </property>
-                    <property name="spacing">
-                        <number>0</number>
-                    </property>
-                    <widget class="TQGroupBox">
-                        <property name="name">
-                            <cstring>groupBoxPixarLog</cstring>
-                        </property>
-                        <property name="sizePolicy">
-                            <sizepolicy>
-                                <hsizetype>1</hsizetype>
-                                <vsizetype>1</vsizetype>
-                                <horstretch>0</horstretch>
-                                <verstretch>0</verstretch>
-                            </sizepolicy>
-                        </property>
-                        <property name="title">
-                            <string>Pixar Log Compression Options</string>
-                        </property>
-                        <hbox>
-                            <property name="name">
-                                <cstring>unnamed</cstring>
-                            </property>
-                            <widget class="TQLabel">
-                                <property name="name">
-                                    <cstring>textLabel1_4_2</cstring>
-                                </property>
-                                <property name="text">
-                                    <string>Compress:</string>
-                                </property>
-                                <property name="tqalignment">
-                                    <set>AlignTop</set>
-                                </property>
-                                <property name="toolTip" stdset="0">
-                                    <string>Note: the compression level does not change the quality of the result</string>
-                                </property>
-                                <property name="whatsThis" stdset="0">
-                                    <string>&lt;p&gt;Adjust the compression time. Better compression takes longer.
-&lt;br&gt;Note: the compression level does not change the quality of the result.&lt;/p&gt;</string>
-                                </property>
-                            </widget>
-                            <widget class="TQLayoutWidget">
-                                <property name="name">
-                                    <cstring>tqlayout5_2_2</cstring>
-                                </property>
-                                <vbox>
-                                    <property name="name">
-                                        <cstring>unnamed</cstring>
-                                    </property>
-                                    <widget class="TQSlider">
-                                        <property name="name">
-                                            <cstring>compressionLevelPixarLog</cstring>
-                                        </property>
-                                        <property name="minValue">
-                                            <number>1</number>
-                                        </property>
-                                        <property name="maxValue">
-                                            <number>9</number>
-                                        </property>
-                                        <property name="pageStep">
-                                            <number>1</number>
-                                        </property>
-                                        <property name="value">
-                                            <number>6</number>
-                                        </property>
-                                        <property name="orientation">
-                                            <enum>Horizontal</enum>
-                                        </property>
-                                        <property name="tickmarks">
-                                            <enum>Both</enum>
-                                        </property>
-                                        <property name="toolTip" stdset="0">
-                                            <string>Note: the compression level doesn't change the quality of the result</string>
-                                        </property>
-                                        <property name="whatsThis" stdset="0">
-                                            <string>&lt;p&gt;Adjust the compression time. Better compression takes longer.
-&lt;br&gt;Note: the compression level doesn't change the quality of the result.&lt;/p&gt;</string>
-                                        </property>
-                                    </widget>
-                                    <widget class="TQLayoutWidget">
-                                        <property name="name">
-                                            <cstring>tqlayout4_3</cstring>
-                                        </property>
-                                        <hbox>
-                                            <property name="name">
-                                                <cstring>unnamed</cstring>
-                                            </property>
-                                            <widget class="TQLabel">
-                                                <property name="name">
-                                                    <cstring>textLabel3_2_2</cstring>
-                                                </property>
-                                                <property name="text">
-                                                    <string>Fast</string>
-                                                </property>
-                                                <property name="whatsThis" stdset="0">
-                                                    <string>&lt;p&gt;Adjust the compression time. Better compression takes longer.
-&lt;br&gt;Note: the compression level doesn't change the quality of the result.&lt;/p&gt;</string>
-                                                </property>
-                                            </widget>
-                                            <widget class="TQLabel">
-                                                <property name="name">
-                                                    <cstring>textLabel4_2_2</cstring>
-                                                </property>
-                                                <property name="text">
-                                                    <string>Small</string>
-                                                </property>
-                                                <property name="tqalignment">
-                                                    <set>AlignVCenter|AlignRight</set>
-                                                </property>
-                                                <property name="whatsThis" stdset="0">
-                                                    <string>&lt;p&gt;Adjust the compression time. Better compression takes longer.
-&lt;br&gt;Note: the compression level doesn't change the quality of the result.&lt;/p&gt;</string>
-                                                </property>
-                                            </widget>
-                                        </hbox>
-                                    </widget>
-                                </vbox>
-                            </widget>
-                        </hbox>
-                    </widget>
-                </hbox>
-            </widget>
-        </widget>
-        <spacer>
-            <property name="name">
-                <cstring>spacer3</cstring>
-            </property>
-            <property name="orientation">
-                <enum>Vertical</enum>
-            </property>
-            <property name="sizeType">
-                <enum>Expanding</enum>
-            </property>
-            <property name="tqsizeHint">
-                <size>
-                    <width>20</width>
-                    <height>16</height>
-                </size>
-            </property>
-        </spacer>
-    </vbox>
-</widget>
-<customwidgets>
-</customwidgets>
-<tabstops>
-    <tabstop>kComboBoxCompressionType</tabstop>
-    <tabstop>kComboBoxPredictor</tabstop>
-    <tabstop>alpha</tabstop>
-    <tabstop>flatten</tabstop>
-    <tabstop>qualityLevel</tabstop>
-    <tabstop>compressionLevelDeflate</tabstop>
-    <tabstop>kComboBoxFaxMode</tabstop>
-    <tabstop>compressionLevelPixarLog</tabstop>
-</tabstops>
-<tqlayoutdefaults spacing="6" margin="11"/>
-<includehints>
-    <includehint>kcombobox.h</includehint>
-    <includehint>kcombobox.h</includehint>
-    <includehint>kcombobox.h</includehint>
-</includehints>
-</UI>
diff --git a/filters/krita/tiff/kis_ycbcr_colorspace.h b/filters/krita/tiff/kis_ycbcr_colorspace.h
deleted file mode 100644
index 05220127d..000000000
--- a/filters/krita/tiff/kis_ycbcr_colorspace.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_YCBCR_COLORSPACE_H
-#define KIS_YCBCR_COLORSPACE_H
-namespace {
-    const TQ_INT32 MAX_CHANNEL_YCbCr = 3;
-    const TQ_INT32 MAX_CHANNEL_YCbCrA = 4;
-}
-#endif
-
diff --git a/filters/krita/tiff/krita_tiff.desktop b/filters/krita/tiff/krita_tiff.desktop
deleted file mode 100644
index 455f6caa2..000000000
--- a/filters/krita/tiff/krita_tiff.desktop
+++ /dev/null
@@ -1,63 +0,0 @@
-[Desktop Entry]
-Categories=
-Exec=krita %u
-GenericName=Painting and Image Editing Application
-GenericName[bg]=Редактор на графични изображения
-GenericName[ca]=Programa de dibuix i manipulació d'imatges
-GenericName[cs]=Malování a úpravy obrázků
-GenericName[cy]=Cymhwysiad Peintio Golygu Delweddau
-GenericName[da]=Male- og billedredigeringsprogram
-GenericName[de]=Mal- und Bildbearbeitungsprogramm
-GenericName[el]=Εφαρμογή επεξεργασίας εικόνων
-GenericName[eo]=Aplikaĵo por Pentrado kaj Bildredaktado
-GenericName[es]=Aplicación de pintura y de edición de imágenes
-GenericName[et]=Joonistamise ja pilditöötluse rakendus
-GenericName[eu]=Irudien marrazketa eta ediziorako aplikazioa
-GenericName[fa]=کاربرد ویرایش تصویر و نقاشی
-GenericName[fi]=Maalaus- ja kuvankäsitelyohjelma
-GenericName[fr]=Application de dessin et de manipulation d'images
-GenericName[fy]=Ofbyldingsmanipulaasje
-GenericName[gl]=Aplicación de Pintura e Manipulación de Imaxes
-GenericName[he]=יישום לציור ועריכת תמונות
-GenericName[hr]=Aplikacija za obradu slika i fotografija
-GenericName[hu]=Képszerkesztő
-GenericName[is]=Málun og myndritill
-GenericName[it]=Applicazione di disegno e di modifica delle immagini
-GenericName[ja]=描画と画像編集のためのアプリケーション
-GenericName[km]=កម្មវិធី​គូរ​គំនូរ និង​កែសម្រួល​រូបភាព
-GenericName[lv]=Zīmēšanas un attēlu apstrādes programma
-GenericName[nb]=Program for tegning og bilderedigering
-GenericName[nds]=Programm för't Malen un Bildbewerken
-GenericName[ne]=पेन्टीङ्ग र छवि सम्पादन अनुप्रयोग
-GenericName[nl]=Afbeeldingsmanipulatie
-GenericName[pl]=Program do edycji zdjęć oraz rysunków
-GenericName[pt]=Aplicação de Pintura e Edição de Imagens
-GenericName[pt_BR]=Aplicação de Pintura e Edição de Imagens
-GenericName[ru]=Растровые изображения
-GenericName[se]=Málen- ja govvagieđahallanprográmma
-GenericName[sk]=Program pre tvorbu a úpravu obrázkov
-GenericName[sl]=Program za risanje in obdelavo slik
-GenericName[sr]=Програм за цртање и уређивање слика
-GenericName[sr@Latn]=Program za crtanje i uređivanje slika
-GenericName[sv]=Målnings- och bildredigeringsprogram
-GenericName[uk]=Програма для малювання і редагування зображень
-GenericName[uz]=Rasmlar bilan ishlaydigan dastur
-GenericName[uz@cyrillic]=Расмлар билан ишлайдиган дастур
-GenericName[zh_CN]=绘图和图像编辑应用程序
-GenericName[zh_TW]=繪圖與影像處理程式
-Icon=krita
-MimeType=image/tiff
-Name=Krita
-Name[hi]=के-रिता
-Name[km]= Krita
-Name[lo]=ກຣິຕາ
-Name[ne]=क्रिता
-Path=
-StartupNotify=true
-Terminal=false
-TerminalOptions=
-Type=Application
-X-DCOP-ServiceType=multi
-X-KDE-StartupNotify=true
-X-KDE-SubstituteUID=false
-X-KDE-Username=
diff --git a/filters/krita/tiff/krita_tiff_export.desktop b/filters/krita/tiff/krita_tiff_export.desktop
deleted file mode 100644
index e696cd5a6..000000000
--- a/filters/krita/tiff/krita_tiff_export.desktop
+++ /dev/null
@@ -1,52 +0,0 @@
-[Desktop Entry]
-Icon=
-Name=Krita TIFF Export Filter
-Name[bg]=Филтър за експортиране от Krita в TIFF
-Name[br]=Sil ezporzh TIFF evit Krita
-Name[ca]=Filtre d'exportació TIFF per a Krita
-Name[da]=Krita TIFF-eksportfilter
-Name[de]=Krita TIFF-Exportfilter
-Name[el]=Φίλτρο εξαγωγής TIFF του Krita
-Name[eo]=Krita TIFF-eksportfiltrilo
-Name[es]=Filtro de exportación a TIFF de Krita
-Name[et]=Krita TIFF-i ekspordifilter
-Name[fa]=پالایۀ صادرات Krita TIFF
-Name[fi]=Krita TIFF -vientisuodin
-Name[fr]=Filtre d'exportation TIFF de Krita
-Name[fy]=Krita TIFF Eksportfilter
-Name[ga]=Scagaire Easpórtála TIFF Krita
-Name[gl]=Filtro de Exportación de TIFF para Krita
-Name[he]=Krita TIFF מסנן יצוא
-Name[hr]=Krita TIFF filtar izvoza
-Name[hu]=Krita TIFF exportszűrő
-Name[is]=Krita TIFF útflutningssía
-Name[it]=Filtro di esportazione TIFF per Krita
-Name[ja]=Krita TIFF エクスポートフィルタ
-Name[km]=តម្រង​នាំចេញ TIFF សម្រាប់ Krita
-Name[lt]=Krita TIFF eksportavimo filtras
-Name[lv]=Krita TIFF eksporta filtrs
-Name[nb]=TIFF-eksportfilter for Krita
-Name[nds]=TIFF-Exportfilter för Krita
-Name[ne]=क्रिता TIFF निर्यात फिल्टर
-Name[nl]=Krita TIFF Exportfilter
-Name[pl]=Filtr eksportu do formatu TIFF dla Krita
-Name[pt]=Filtro de Exportação de TIFF para o Krita
-Name[pt_BR]=Filtro de Exportação de TIFF para o Krita
-Name[ru]=Фильтр экспорта рисунков Krita в TIFF
-Name[se]=Krita Tiff-olggosfievrridansilli
-Name[sk]=Exportný filter Krita TIFF
-Name[sl]=Izvozni filter TIFF za Krito
-Name[sr]=Krita-ин филтер за извоз у TIFF
-Name[sr@Latn]=Krita-in filter za izvoz u TIFF
-Name[sv]=Krita TIFF-exportfilter
-Name[uk]=Фільтр експорту TIFF для Krita
-Name[uz]=Krita TIFF eksport filteri
-Name[uz@cyrillic]=Krita TIFF экспорт филтери
-Name[zh_CN]=Krita TIFF 导出过滤器
-Name[zh_TW]=Krita TIFF 匯出過濾程式
-ServiceTypes=KOfficeFilter
-Type=Service
-X-KDE-Export=image/tiff
-X-KDE-Import=application/x-krita
-X-KDE-Library=libkritatiffexport
-X-KDE-Weight=1
diff --git a/filters/krita/tiff/krita_tiff_import.desktop b/filters/krita/tiff/krita_tiff_import.desktop
deleted file mode 100644
index 65e7ae6c2..000000000
--- a/filters/krita/tiff/krita_tiff_import.desktop
+++ /dev/null
@@ -1,52 +0,0 @@
-[Desktop Entry]
-Icon=
-Name=Krita TIFF Import Filter
-Name[bg]=Филтър за импортиране от TIFF в Krita
-Name[br]=Sil enporzh TIFF evit Krita
-Name[ca]=Filtre d'importació TIFF per a Krita
-Name[da]=Krita TIFF-importfilter
-Name[de]=Krita TIFF-Importfilter
-Name[el]=Φίλτρο εισαγωγής TIFF του Krita
-Name[eo]=Krita TIFF-importfiltrilo
-Name[es]=Filtro de importación desde TIFF de Krita
-Name[et]=Krita TIFF-i impordifilter
-Name[fa]=پالایۀ واردات Krita TIFF
-Name[fi]=Krita TIFF -tuontisuodin
-Name[fr]=Filtre d'importation TIFF de Krita
-Name[fy]=Krita TIFF Ymportfilter
-Name[ga]=Scagaire Iompórtála TIFF Krita
-Name[gl]=Filtro de Importación de TIFF para Krita
-Name[he]=Krita TIFF מסנן יבוא
-Name[hr]=Krita TIFF filtar uvoza
-Name[hu]=Krita TIFF importszűrő
-Name[is]=Krita TIFF innflutningssía
-Name[it]=Filtro di importazione TIFF per Krita
-Name[ja]=Krita TIFF インポートフィルタ
-Name[km]=តម្រង​នាំចូល TIFF សម្រាប់ Krita
-Name[lt]=Krita TIFF importavimo filtras
-Name[lv]=Krita TIFF importa filtrs
-Name[nb]=TIFF-importfilter for Krita
-Name[nds]=TIFF-Importfilter för Krita
-Name[ne]=क्रिता TIFF आयात फिल्टर
-Name[nl]=Krita TIFF Importfilter
-Name[pl]=Filtr importu formatu TIFF dla Krita
-Name[pt]=Filtro de Importação de TIFF para o Krita
-Name[pt_BR]=Filtro de Importação de TIFF para o Krita
-Name[ru]=Фильтр импорта рисунков TIFF в Krita
-Name[se]=Krita TIFF-sisafievrridansilli
-Name[sk]=TIFF filter pre import do Krita
-Name[sl]=Uvozni filter TIFF za Krito
-Name[sr]=Krita-ин филтер за увоз из TIFF-а
-Name[sr@Latn]=Krita-in filter za uvoz iz TIFF-a
-Name[sv]=Krita TIFF-importfilter
-Name[uk]=Фільтр імпорту TIFF для Krita
-Name[uz]=Krita TIFF import filteri
-Name[uz@cyrillic]=Krita TIFF импорт филтери
-Name[zh_CN]=Krita TIFF 导入过滤器
-Name[zh_TW]=Krita TIFF 匯入過濾程式
-ServiceTypes=KOfficeFilter
-Type=Service
-X-KDE-Export=application/x-krita
-X-KDE-Import=image/tiff
-X-KDE-Library=libkritatiffimport
-X-KDE-Weight=1
diff --git a/filters/krita/xcf/Makefile.am b/filters/krita/xcf/Makefile.am
deleted file mode 100644
index 50e76130f..000000000
--- a/filters/krita/xcf/Makefile.am
+++ /dev/null
@@ -1,42 +0,0 @@
-kde_module_LTLIBRARIES = libkritaxcfimport.la libkritaxcfexport.la
-
-libkritaxcfexport_la_LDFLAGS = $(KDE_PLUGIN) $(LIBMAGICK_LDFLAGS) $(KDE_RPATH) $(LIBMAGICK_RPATH) $(all_libraries) -module -avoid-version -no-undefined -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritaxcfexport_la_LIBADD = \
-	$(KOFFICE_LIBS) \
-	$(LIBMAGICK_LIBS) \
-	$(top_builddir)/krita/libkritacommon.la
-
-libkritaxcfimport_la_LDFLAGS = $(KDE_PLUGIN) $(LIBMAGICK_LDFLAGS) $(KDE_RPATH) $(LIBMAGICK_RPATH) $(all_libraries) -module -avoid-version -no-undefined -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -lkio -lkparts \
-        -L../../../lib/kofficecore/.libs/ -lkofficecore -llcms \
-        -L../../../lib/kofficeui/.libs/ -lkofficeui -L../../../lib/store/.libs/ -lkstore -L../../../krita/core/.libs/ -lkritaimage -L../../../krita/ui/.libs/ -lkritaui -L../../../krita/kritacolor/.libs/ -lkritacolor
-libkritaxcfimport_la_LIBADD = \
-	$(KOFFICE_LIBS) \
-	$(LIBMAGICK_LIBS) \
-	$(top_builddir)/krita/libkritacommon.la
-
-INCLUDES= \
-	-I$(srcdir) \
-	 $(KOFFICE_INCLUDES) \
-	-I$(top_srcdir)/krita \
-	-I$(top_srcdir)/krita/core \
-	-I$(top_srcdir)/krita/sdk \
-	-I$(top_srcdir)/krita/core/tiles \
-	-I$(top_srcdir)/krita/kritacolor \
-	-I$(top_srcdir)/krita/ui \
-        $(KOFFICE_INCLUDES) -I$(interfacedir) \
-        $(KOPAINTER_INCLUDES) $(LIBMAGICK_CPPFLAGS) \
-	$(all_includes) 
-
-service_DATA = krita_xcf_import.desktop krita_xcf_export.desktop
-servicedir = $(kde_servicesdir)
-
-libkritaxcfimport_la_SOURCES = xcfimport.cpp 
-libkritaxcfexport_la_SOURCES = xcfexport.cpp
-
-METASOURCES = AUTO
-
-SUBDIRS=xcf
-
-KDE_CXXFLAGS = $(USE_EXCEPTIONS)
diff --git a/filters/krita/xcf/krita_xcf_export.desktop b/filters/krita/xcf/krita_xcf_export.desktop
deleted file mode 100644
index f4cde2ecf..000000000
--- a/filters/krita/xcf/krita_xcf_export.desktop
+++ /dev/null
@@ -1,52 +0,0 @@
-[Desktop Entry]
-Name=Krita XCF Export Filter
-Name[bg]=Филтър за експортиране от Krita в XCF
-Name[br]=Sil ezporzh XCF evit Krita
-Name[ca]=Filtre d'exportació XCF per a Krita
-Name[cy]=Hidl Allforio XCF Krita
-Name[da]=Krita XCF-eksportfilter
-Name[de]=Krita XCF-Exportfilter
-Name[el]=Φίλτρο εξαγωγής XCF του Krita
-Name[eo]=Krita XCF-importfiltrilo
-Name[es]=Filtro de exportación a XCF de Krita
-Name[et]=Krita XCF-i ekspordifilter
-Name[fa]=پالایۀ صادرات Krita XCF
-Name[fi]=Krita XCF -vientisuodin
-Name[fr]=Filtre d'exportation XCF de Krita
-Name[fy]=Krita XCF Eksportfilter
-Name[ga]=Scagaire Easpórtála XCF Krita
-Name[gl]=Filtro de Exportación de XCF para Krita
-Name[he]=Krita XCF מסנן יצוא
-Name[hr]=Krita XCF filtar izvoza
-Name[hu]=Krita XCF exportszűrő
-Name[is]=Krita XCF útflutningssía
-Name[it]=Filtro di esportazione XCF per Krita
-Name[ja]=Krita XCF エクスポートフィルタ
-Name[km]=តម្រង​នាំចេញ XCF សម្រាប់ Krita
-Name[lt]=Krita XCF eksportavimo filtras
-Name[lv]=Krita XCF eksporta filtrs
-Name[nb]=XCF-eksportfilter for Krita
-Name[nds]=XCF-Exportfilter för Krita
-Name[ne]=क्रिता XFC निर्यात फिल्टर
-Name[nl]=Krita XCF Exportfilter
-Name[pl]=Filtr eksportu do formatu XCF dla Krita
-Name[pt]=Filtro de Exportação de XCF para o Krita
-Name[pt_BR]=Filtro de Exportação de XCF para o Krita
-Name[ru]=Фильтр экспорта рисунков Krita в XCF
-Name[se]=Krita XCF-olggosfievrridansilli
-Name[sk]=Exportný filter Krita XCF
-Name[sl]=Izvozni filter XCF za Krito
-Name[sr]=Krita-ин филтер за извоз у XCF
-Name[sr@Latn]=Krita-in filter za izvoz u XCF
-Name[sv]=Krita XCF-exportfilter
-Name[uk]=Фільтр експорту XCF для Krita
-Name[uz]=Krita XCF eksport filteri
-Name[uz@cyrillic]=Krita XCF экспорт филтери
-Name[zh_CN]=Krita XCF 导出过滤器
-Name[zh_TW]=Krita XCF 匯出過濾程式
-X-KDE-Export=image/x-xcf-gimp
-ServiceTypes=KOfficeFilter
-Type=Service
-X-KDE-Import=application/x-krita
-X-KDE-Weight=1
-X-KDE-Library=libkritaxcfexport
diff --git a/filters/krita/xcf/krita_xcf_import.desktop b/filters/krita/xcf/krita_xcf_import.desktop
deleted file mode 100644
index 7edbcf2c9..000000000
--- a/filters/krita/xcf/krita_xcf_import.desktop
+++ /dev/null
@@ -1,52 +0,0 @@
-[Desktop Entry]
-Type=Service
-Name=Krita XCF Import Filter
-Name[bg]=Филтър за импортиране от XCF в Krita
-Name[br]=Sil enporzh XCF evit Krita
-Name[ca]=Filtre d'importació XCF per a Krita
-Name[cy]=Hidl Mewnforio XCF Krita
-Name[da]=Krita XCF-importfilter
-Name[de]=Krita XCF-Importfilter
-Name[el]=Φίλτρο εισαγωγής XCF του Krita
-Name[eo]=Krita XCF-importfiltrilo
-Name[es]=Filtro de importación a XCF de Krita
-Name[et]=Krita XCF-i impordifilter
-Name[fa]=پالایۀ واردات Krita XCF
-Name[fi]=Krita XCF -tuontisuodin
-Name[fr]=Filtre d'importation XCF de Krita
-Name[fy]=Krita XCF Ymportfilter
-Name[ga]=Scagaire Iompórtála XCF Krita
-Name[gl]=Filtro de Importación de XCF para Krita
-Name[he]=Krita XCF מסנן יבוא
-Name[hr]=Krita XCF filtar uvoza
-Name[hu]=Krita XCF importszűrő
-Name[is]=Krita XCF innflutningssía
-Name[it]=Filtro di importazione XCF per Krita
-Name[ja]=Krita XCF インポートフィルタ
-Name[km]=តម្រង​នាំចូល XCF សម្រាប់ Krita
-Name[lt]=Krita XCF importavimo filtras
-Name[lv]=Krita XCF importa filtrs
-Name[nb]=XCF-importfilter for Krita
-Name[nds]=XCF-Importfilter för Krita
-Name[ne]=क्रिता XCF आयात फिल्टर
-Name[nl]=Krita XCF Importfilter
-Name[pl]=Filtr importu formatu XCF dla Krita
-Name[pt]=Filtro de Importação de XCF para o Krita
-Name[pt_BR]=Filtro de Importação de XCF para o Krita
-Name[ru]=Фильтр импорта рисунков XCF в Krita
-Name[se]=Krita XCF-sisafievrridansilli
-Name[sk]=XCF filter pre import do Krita
-Name[sl]=Uvozni filter XCF za Krito
-Name[sr]=Krita-ин филтер за увоз из XCF-а
-Name[sr@Latn]=Krita-in filter za uvoz iz XCF-a
-Name[sv]=Krita XCF-importfilter
-Name[uk]=Фільтр імпорту XCF для Krita
-Name[uz]=Krita XCF import filteri
-Name[uz@cyrillic]=Krita XCF импорт филтери
-Name[zh_CN]=Krita XCF 导入过滤器
-Name[zh_TW]=Krita XCF 匯入過濾程式
-X-KDE-Export=application/x-krita
-X-KDE-Import=image/x-xcf-gimp
-X-KDE-Weight=1
-X-KDE-Library=libkritaxcfimport
-ServiceTypes=KOfficeFilter
diff --git a/filters/krita/xcf/xcf/README b/filters/krita/xcf/xcf/README
deleted file mode 100644
index 567d2ab1b..000000000
--- a/filters/krita/xcf/xcf/README
+++ /dev/null
@@ -1,2 +0,0 @@
-Note: this is source copy of 6 feb. 2006; when updated, use a diff from the gimp cvs
-to check for changes in their file format.
diff --git a/filters/krita/xcf/xcf/xcf-load.cc b/filters/krita/xcf/xcf/xcf-load.cc
deleted file mode 100644
index 07b6a1455..000000000
--- a/filters/krita/xcf/xcf/xcf-load.cc
+++ /dev/null
@@ -1,1740 +0,0 @@
-/* The GIMP -- an image manipulation program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <string.h>		/* strcmp, memcmp */
-
-//#include <glib-object.h>
-
-//#include "libgimpbase/gimpbase.h"
-//#include "libgimpcolor/gimpcolor.h"
-
-//#include "core/core-types.h"
-
-//#include "base/tile.h"
-//#include "base/tile-manager.h"
-//#include "base/tile-manager-private.h"
-
-//#include "config/gimpcoreconfig.h"
-
-//#include "core/gimp.h"
-//#include "core/gimpcontainer.h"
-//#include "core/gimpdrawable.h"
-//#include "core/gimpgrid.h"
-//#include "core/gimpimage.h"
-//#include "core/gimpimage-grid.h"
-//#include "core/gimpimage-guides.h"
-//#include "core/gimplayer.h"
-//#include "core/gimplayer-floating-sel.h"
-//#include "core/gimplayertqmask.h"
-//#include "core/gimpparasitelist.h"
-//#include "core/gimpselection.h"
-//#include "core/gimptemplate.h"
-//#include "core/gimpunit.h"
-
-//#include "text/gimptextlayer.h"
-//#include "text/gimptextlayer-xcf.h"
-
-//#include "vectors/gimpanchor.h"
-//#include "vectors/gimpstroke.h"
-//#include "vectors/gimpbezierstroke.h"
-//#include "vectors/gimpvectors.h"
-//#include "vectors/gimpvectors-compat.h"
-
-#include "xcf-private.h"
-#include "xcf-load.h"
-#include "xcf-read.h"
-#include "xcf-seek.h"
-
-//#include "gimp-intl.h"
-
-static bool xcf_load_image_props (XcfInfo * info, KisImage * gimage);
-static bool xcf_load_layer_props (XcfInfo * info,
-				  KisImage * gimage,
-				  KisLayer * layer,
-				  bool * apply_tqmask,
-				  bool * edit_tqmask,
-				  bool * show_tqmask,
-				  TQ_INT32 * text_layer_flags);
-static bool xcf_load_channel_props (XcfInfo * info,
-				    KisImage * gimage,
-				    GimpChannel ** channel);
-static bool xcf_load_prop (XcfInfo * info,
-			   PropType * prop_type, TQ_INT32 * prop_size);
-static KisLayer *xcf_load_layer (XcfInfo * info, KisImage * gimage);
-//static GimpChannel   * xcf_load_channel       (XcfInfo      *info,
-//                                               KisImage    *gimage);
-//static GimpLayerMask * xcf_load_layer_tqmask    (XcfInfo      *info,
-//                                               KisImage    *gimage);
-static bool xcf_load_hierarchy (XcfInfo * info, TileManager * tiles);
-static bool xcf_load_level (XcfInfo * info, TileManager * tiles);
-static bool xcf_load_tile (XcfInfo * info, Tile * tile);
-static bool xcf_load_tile_rle (XcfInfo * info,
-			       Tile * tile, TQ_INT32 data_length);
-//static GimpParasite  * xcf_load_parasite      (XcfInfo      *info);
-static bool xcf_load_old_paths (XcfInfo * info, KisImage * gimage);
-static bool xcf_load_old_path (XcfInfo * info, KisImage * gimage);
-static bool xcf_load_vectors (XcfInfo * info, KisImage * gimage);
-static bool xcf_load_vector (XcfInfo * info, KisImage * gimage);
-
-#ifdef SWAP_FROM_FILE
-static bool xcf_swap_func (TQ_INT32 fd,
-			   Tile * tile, TQ_INT32 cmd, gpointer user_data);
-#endif
-
-
-KisImage *
-xcf_load_image (XcfInfo * info)
-{
-    KisImage *gimage;
-    KisLayer *layer;
-    //GimpChannel  *channel;
-    //KisAnnotation *parasite;
-    TQ_INT32 saved_pos;
-    TQ_INT32 offset;
-    TQ_INT32 width;
-    TQ_INT32 height;
-    TQ_INT32 image_type;
-    TQ_INT32 num_successful_elements = 0;
-
-    /* read in the image width, height and type */
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & width, 1);
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & height, 1);
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & image_type, 1);
-
-    gimage = gimp_create_image (gimp, width, height, image_type, FALSE);
-
-    gimp_image_undo_disable (gimage);
-
-    /* read the image properties */
-    if (!xcf_load_image_props (info, gimage))
-        goto hard_error;
-
-    /* check for a GimpGrid parasite */
-    parasite = gimp_image_parasite_tqfind (GIMP_IMAGE (gimage),
-                                         gimp_grid_parasite_name ());
-    if (parasite)
-    {
-        GimpGrid *grid = gimp_grid_from_parasite (parasite);
-
-        if (grid)
-	{
-            gimp_parasite_list_remove (GIMP_IMAGE (gimage)->parasites,
-                                       gimp_parasite_name (parasite));
-
-            gimp_image_set_grid (GIMP_IMAGE (gimage), grid, FALSE);
-	}
-    }
-
-    while (TRUE)
-    {
-        /* read in the offset of the next layer */
-        info->cp += xcf_read_int32 (info->fp, &offset, 1);
-
-        /* if the offset is 0 then we are at the end
-         *  of the layer list.
-         */
-        if (offset == 0)
-            break;
-
-        /* save the current position as it is where the
-         *  next layer offset is stored.
-         */
-        saved_pos = info->cp;
-
-        /* seek to the layer offset */
-        if (!xcf_seek_pos (info, offset, NULL))
-            goto error;
-
-        /* read in the layer */
-        layer = xcf_load_layer (info, gimage);
-        if (!layer)
-            goto error;
-
-        num_successful_elements++;
-
-        /* add the layer to the image if its not the floating selection */
-        if (layer != info->floating_sel)
-            gimp_image_add_layer (gimage, layer,
-                                  gimp_container_num_tqchildren (gimage->layers));
-
-        /* restore the saved position so we'll be ready to
-         *  read the next offset.
-         */
-        if (!xcf_seek_pos (info, saved_pos, NULL))
-            goto error;
-    }
-
-    while (TRUE)
-    {
-        /* read in the offset of the next channel */
-        info->cp += xcf_read_int32 (info->fp, &offset, 1);
-
-        /* if the offset is 0 then we are at the end
-         *  of the channel list.
-         */
-        if (offset == 0)
-            break;
-
-        /* save the current position as it is where the
-         *  next channel offset is stored.
-         */
-        saved_pos = info->cp;
-
-        /* seek to the channel offset */
-        if (!xcf_seek_pos (info, offset, NULL))
-            goto error;
-
-        /* read in the layer */
-        channel = xcf_load_channel (info, gimage);
-        if (!channel)
-            goto error;
-
-        num_successful_elements++;
-
-        /* add the channel to the image if its not the selection */
-        if (channel != gimage->selection_tqmask)
-            gimp_image_add_channel (gimage, channel, -1);
-
-        /* restore the saved position so we'll be ready to
-         *  read the next offset.
-         */
-        if (!xcf_seek_pos (info, saved_pos, NULL))
-            goto error;
-    }
-
-    if (info->floating_sel && info->floating_sel_drawable)
-        floating_sel_attach (info->floating_sel, info->floating_sel_drawable);
-
-    if (info->active_layer)
-        gimp_image_set_active_layer (gimage, info->active_layer);
-
-    if (info->active_channel)
-        gimp_image_set_active_channel (gimage, info->active_channel);
-
-    gimp_image_set_filename (gimage, info->filename);
-
-    if (info->tattoo_state > 0)
-        gimp_image_set_tattoo_state (gimage, info->tattoo_state);
-
-    gimp_image_undo_enable (gimage);
-
-    return gimage;
-
-error:
-    if (num_successful_elements == 0)
-        goto hard_error;
-
-    g_message ("XCF: This file is corrupt!  I have loaded as much\n"
-               "of it as I can, but it is incomplete.");
-
-    gimp_image_undo_enable (gimage);
-
-    return gimage;
-
-hard_error:
-    g_message ("XCF: This file is corrupt!  I could not even\n"
-               "salvage any partial image data from it.");
-
-    g_object_unref (gimage);
-
-    return NULL;
-}
-
-static bool
-xcf_load_image_props (XcfInfo * info, KisImage * gimage)
-{
-    PropType prop_type;
-    TQ_INT32 prop_size;
-
-    while (TRUE)
-    {
-        if (!xcf_load_prop (info, &prop_type, &prop_size))
-            return FALSE;
-
-        switch (prop_type)
-	{
-	case PROP_END:
-            return TRUE;
-
-	case PROP_COLORMAP:
-            if (info->file_version == 0)
-	    {
-                TQ_INT32 i;
-
-                g_message (_("XCF warning: version 0 of XCF file format\n"
-                             "did not save indexed colormaps correctly.\n"
-                             "Substituting grayscale map."));
-                info->cp +=
-                    xcf_read_int32 (info->fp, (TQ_INT32 *) & gimage->num_cols, 1);
-                gimage->cmap = g_new (guchar, gimage->num_cols * 3);
-                if (!xcf_seek_pos (info, info->cp + gimage->num_cols, NULL))
-                    return FALSE;
-
-                for (i = 0; i < gimage->num_cols; i++)
-		{
-                    gimage->cmap[i * 3 + 0] = i;
-                    gimage->cmap[i * 3 + 1] = i;
-                    gimage->cmap[i * 3 + 2] = i;
-		}
-	    }
-            else
-	    {
-                info->cp +=
-                    xcf_read_int32 (info->fp, (TQ_INT32 *) & gimage->num_cols, 1);
-                gimage->cmap = g_new (guchar, gimage->num_cols * 3);
-                info->cp +=
-                    xcf_read_int8 (info->fp,
-                                   (TQ_UINT8 *) gimage->cmap,
-                                   gimage->num_cols * 3);
-	    }
-
-            /* discard color map, if image is not indexed, this is just
-             * sanity checking to make sure gimp doesn't end up with an
-             * image state that is impossible.
-             */
-            if (gimp_image_base_type (gimage) != GIMP_INDEXED)
-	    {
-                g_free (gimage->cmap);
-                gimage->cmap = NULL;
-                gimage->num_cols = 0;
-	    }
-            break;
-
-	case PROP_COMPRESSION:
-        {
-	    TQ_UINT8 compression;
-
-	    info->cp +=
-                xcf_read_int8 (info->fp, (TQ_UINT8 *) & compression, 1);
-
-	    if ((compression != COMPRESS_NONE) &&
-		(compression != COMPRESS_RLE) &&
-		(compression != COMPRESS_ZLIB) &&
-		(compression != COMPRESS_FRACTAL))
-            {
-		g_message ("unknown compression type: %d", (int) compression);
-		return FALSE;
-            }
-
-	    info->compression = compression;
-        }
-        break;
-
-	case PROP_GUIDES:
-        {
-	    TQ_INT3232 position;
-	    TQ_INT328 orientation;
-	    TQ_INT32 i, nguides;
-
-	    nguides = prop_size / (4 + 1);
-	    for (i = 0; i < nguides; i++)
-            {
-		info->cp +=
-                    xcf_read_int32 (info->fp, (TQ_INT32 *) & position, 1);
-		info->cp +=
-                    xcf_read_int8 (info->fp, (TQ_UINT8 *) & orientation, 1);
-
-		/*  skip -1 guides from old XCFs  */
-		if (position < 0)
-                    continue;
-
-		switch (orientation)
-                {
-                case XCF_ORIENTATION_HORIZONTAL:
-		    gimp_image_add_hguide (gimage, position, FALSE);
-		    break;
-
-                case XCF_ORIENTATION_VERTICAL:
-		    gimp_image_add_vguide (gimage, position, FALSE);
-		    break;
-
-                default:
-		    g_message ("guide orientation out of range in XCF file");
-		    continue;
-                }
-            }
-
-	    /*  this is silly as the order of guides doesn't really matter,
-	     *  but it restores the list to it's original order, which
-	     *  cannot be wrong  --Mitch
-	     */
-	    gimage->guides = g_list_reverse (gimage->guides);
-        }
-        break;
-
-	case PROP_RESOLUTION:
-        {
-	    float xres, yres;
-
-	    info->cp += xcf_read_float (info->fp, &xres, 1);
-	    info->cp += xcf_read_float (info->fp, &yres, 1);
-	    if (xres < GIMP_MIN_RESOLUTION || xres > GIMP_MAX_RESOLUTION ||
-		yres < GIMP_MIN_RESOLUTION || yres > GIMP_MAX_RESOLUTION)
-            {
-		g_message ("Warning, resolution out of range in XCF file");
-		xres = gimage->gimp->config->default_image->xresolution;
-		yres = gimage->gimp->config->default_image->yresolution;
-            }
-	    gimage->xresolution = xres;
-	    gimage->yresolution = yres;
-        }
-        break;
-
-	case PROP_TATTOO:
-        {
-	    info->cp += xcf_read_int32 (info->fp, &info->tattoo_state, 1);
-        }
-        break;
-
-	case PROP_PARASITES:
-        {
-	    glong base = info->cp;
-	    KisAnnotation *p;
-
-	    while (info->cp - base < prop_size)
-            {
-		p = xcf_load_parasite (info);
-		gimp_image_parasite_attach (gimage, p);
-		gimp_parasite_free (p);
-            }
-	    if (info->cp - base != prop_size)
-                g_message ("Error while loading an image's parasites");
-        }
-        break;
-
-	case PROP_UNIT:
-        {
-	    TQ_INT32 unit;
-
-	    info->cp += xcf_read_int32 (info->fp, &unit, 1);
-
-	    if ((unit <= GIMP_UNIT_PIXEL) ||
-		(unit >=
-		 _gimp_unit_get_number_of_built_in_units (gimage->gimp)))
-            {
-		g_message ("Warning, unit out of range in XCF file, "
-			   "falling back to inches");
-		unit = GIMP_UNIT_INCH;
-            }
-
-	    gimage->resolution_unit = unit;
-        }
-        break;
-
-	case PROP_PATHS:
-            xcf_load_old_paths (info, gimage);
-            break;
-
-	case PROP_USER_UNIT:
-        {
-	    TQCString *unit_strings[5];
-	    float factor;
-	    TQ_INT32 digits;
-	    GimpUnit unit;
-	    TQ_INT32 num_units;
-	    TQ_INT32 i;
-
-	    info->cp += xcf_read_float (info->fp, &factor, 1);
-	    info->cp += xcf_read_int32 (info->fp, &digits, 1);
-	    info->cp += xcf_read_string (info->fp, unit_strings, 5);
-
-	    for (i = 0; i < 5; i++)
-                if (unit_strings[i] == NULL)
-                    unit_strings[i] = g_strdup ("");
-
-	    num_units = _gimp_unit_get_number_of_units (gimage->gimp);
-
-	    for (unit =
-                     _gimp_unit_get_number_of_built_in_units (gimage->gimp);
-		 unit < num_units; unit++)
-            {
-		/* if the factor and the identifier match some unit
-		 * in unitrc, use the unitrc unit
-		 */
-		if ((ABS (_gimp_unit_get_factor (gimage->gimp,
-						 unit) - factor) < 1e-5) &&
-		    (strcmp (unit_strings[0],
-			     _gimp_unit_get_identifier (gimage->gimp,
-							unit)) == 0))
-                {
-		    break;
-                }
-            }
-
-	    /* no match */
-	    if (unit == num_units)
-                unit = _gimp_unit_new (gimage->gimp,
-                                       unit_strings[0],
-                                       factor,
-                                       digits,
-                                       unit_strings[1],
-                                       unit_strings[2],
-                                       unit_strings[3], unit_strings[4]);
-
-	    gimage->resolution_unit = unit;
-
-	    for (i = 0; i < 5; i++)
-                g_free (unit_strings[i]);
-        }
-        break;
-
-	case PROP_VECTORS:
-        {
-	    TQ_INT32 base = info->cp;
-
-	    if (xcf_load_vectors (info, gimage))
-            {
-		if (base + prop_size != info->cp)
-                {
-		    g_warning
-                        ("Mismatch in PROP_VECTORS size: skipping %d bytes.",
-                         base + prop_size - info->cp);
-		    xcf_seek_pos (info, base + prop_size, NULL);
-                }
-            }
-	    else
-            {
-		/* skip silently since we don't understand the format and
-		 * xcf_load_vectors already explained what was wrong
-		 */
-		xcf_seek_pos (info, base + prop_size, NULL);
-            }
-        }
-        break;
-
-	default:
-#ifdef GIMP_UNSTABLE
-            g_printerr ("unexpected/unknown image property: %d (skipping)",
-                        prop_type);
-#endif
-            {
-                TQ_UINT8 buf[16];
-                TQ_UINT32 amount;
-
-                while (prop_size > 0)
-                {
-                    amount = MIN (16, prop_size);
-                    info->cp += xcf_read_int8 (info->fp, buf, amount);
-                    prop_size -= MIN (16, amount);
-                }
-            }
-            break;
-	}
-    }
-
-    return FALSE;
-}
-
-static bool
-xcf_load_layer_props (XcfInfo * info,
-		      KisImage * gimage,
-		      KisLayer * layer,
-		      bool * apply_tqmask,
-		      bool * edit_tqmask,
-		      bool * show_tqmask, TQ_INT32 * text_layer_flags)
-{
-    PropType prop_type;
-    TQ_INT32 prop_size;
-
-    while (TRUE)
-    {
-        if (!xcf_load_prop (info, &prop_type, &prop_size))
-            return FALSE;
-
-        switch (prop_type)
-	{
-	case PROP_END:
-            return TRUE;
-
-	case PROP_ACTIVE_LAYER:
-            info->active_layer = layer;
-            break;
-
-	case PROP_FLOATING_SELECTION:
-            info->floating_sel = layer;
-            info->cp +=
-                xcf_read_int32 (info->fp,
-                                (TQ_INT32 *) & info->floating_sel_offset, 1);
-            break;
-
-	case PROP_OPACITY:
-        {
-	    TQ_INT32 opacity;
-
-	    info->cp += xcf_read_int32 (info->fp, &opacity, 1);
-	    layer->opacity = CLAMP ((gdouble) opacity / 255.0,
-				    GIMP_OPACITY_TRANSPARENT,
-				    GIMP_OPACITY_OPAQUE);
-        }
-        break;
-
-	case PROP_VISIBLE:
-        {
-	    bool visible;
-
-	    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & visible, 1);
-	    gimp_item_set_visible (GIMP_ITEM (layer),
-				   visible ? TRUE : FALSE, FALSE);
-        }
-        break;
-
-	case PROP_LINKED:
-        {
-	    bool linked;
-
-	    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & linked, 1);
-	    gimp_item_set_linked (GIMP_ITEM (layer),
-				  linked ? TRUE : FALSE, FALSE);
-        }
-        break;
-
-	case PROP_LOCK_ALPHA:
-            info->cp +=
-                xcf_read_int32 (info->fp, (TQ_INT32 *) & layer->lock_alpha, 1);
-            break;
-
-	case PROP_APPLY_MASK:
-            info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) apply_tqmask, 1);
-            break;
-
-	case PROP_EDIT_MASK:
-            info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) edit_tqmask, 1);
-            break;
-
-	case PROP_SHOW_MASK:
-            info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) show_tqmask, 1);
-            break;
-
-	case PROP_OFFSETS:
-            info->cp +=
-                xcf_read_int32 (info->fp,
-                                (TQ_INT32 *) & GIMP_ITEM (layer)->offset_x, 1);
-            info->cp +=
-                xcf_read_int32 (info->fp,
-                                (TQ_INT32 *) & GIMP_ITEM (layer)->offset_y, 1);
-            break;
-
-	case PROP_MODE:
-            info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & layer->mode, 1);
-            break;
-
-	case PROP_TATTOO:
-            info->cp += xcf_read_int32 (info->fp,
-                                        (TQ_INT32 *) & GIMP_ITEM (layer)->tattoo,
-                                        1);
-            break;
-
-	case PROP_PARASITES:
-        {
-	    glong base = info->cp;
-	    KisAnnotation *p;
-
-	    while (info->cp - base < prop_size)
-            {
-		p = xcf_load_parasite (info);
-		gimp_item_parasite_attach (GIMP_ITEM (layer), p);
-		gimp_parasite_free (p);
-            }
-	    if (info->cp - base != prop_size)
-                g_message ("Error while loading a layer's parasites");
-        }
-        break;
-
-	case PROP_TEXT_LAYER_FLAGS:
-            info->cp += xcf_read_int32 (info->fp, text_layer_flags, 1);
-            break;
-
-	default:
-        {
-	    TQ_UINT8 buf[16];
-	    TQ_UINT32 amount;
-
-#ifdef GIMP_UNSTABLE
-	    g_printerr ("unexpected/unknown layer property: %d (skipping)",
-			prop_type);
-#endif
-	    while (prop_size > 0)
-            {
-		amount = MIN (16, prop_size);
-		info->cp += xcf_read_int8 (info->fp, buf, amount);
-		prop_size -= MIN (16, amount);
-            }
-        }
-        break;
-	}
-    }
-
-    return FALSE;
-}
-
-static bool
-xcf_load_channel_props (XcfInfo * info,
-			KisImage * gimage, GimpChannel ** channel)
-{
-    PropType prop_type;
-    TQ_INT32 prop_size;
-
-    while (TRUE)
-    {
-        if (!xcf_load_prop (info, &prop_type, &prop_size))
-            return FALSE;
-
-        switch (prop_type)
-	{
-	case PROP_END:
-            return TRUE;
-
-	case PROP_ACTIVE_CHANNEL:
-            info->active_channel = *channel;
-            break;
-
-	case PROP_SELECTION:
-            g_object_unref (gimage->selection_tqmask);
-            gimage->selection_tqmask =
-                gimp_selection_new (gimage,
-                                    gimp_item_width (GIMP_ITEM (*channel)),
-                                    gimp_item_height (GIMP_ITEM (*channel)));
-            g_object_ref (gimage->selection_tqmask);
-            gimp_item_sink (GIMP_ITEM (gimage->selection_tqmask));
-
-            tile_manager_unref (GIMP_DRAWABLE (gimage->selection_tqmask)->tiles);
-            GIMP_DRAWABLE (gimage->selection_tqmask)->tiles =
-                GIMP_DRAWABLE (*channel)->tiles;
-            GIMP_DRAWABLE (*channel)->tiles = NULL;
-            g_object_unref (*channel);
-            *channel = gimage->selection_tqmask;
-            (*channel)->boundary_known = FALSE;
-            (*channel)->bounds_known = FALSE;
-            break;
-
-	case PROP_OPACITY:
-        {
-	    TQ_INT32 opacity;
-
-	    info->cp += xcf_read_int32 (info->fp, &opacity, 1);
-	    (*channel)->color.a = opacity / 255.0;
-        }
-        break;
-
-	case PROP_VISIBLE:
-        {
-	    bool visible;
-
-	    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & visible, 1);
-	    gimp_item_set_visible (GIMP_ITEM (*channel),
-				   visible ? TRUE : FALSE, FALSE);
-        }
-        break;
-
-	case PROP_LINKED:
-        {
-	    bool linked;
-
-	    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & linked, 1);
-	    gimp_item_set_linked (GIMP_ITEM (*channel),
-				  linked ? TRUE : FALSE, FALSE);
-        }
-        break;
-
-	case PROP_SHOW_MASKED:
-        {
-	    bool show_tqmasked;
-
-	    info->cp +=
-                xcf_read_int32 (info->fp, (TQ_INT32 *) & show_tqmasked, 1);
-	    gimp_channel_set_show_tqmasked (*channel, show_tqmasked);
-        }
-        break;
-
-	case PROP_COLOR:
-        {
-	    guchar col[3];
-
-	    info->cp += xcf_read_int8 (info->fp, (TQ_UINT8 *) col, 3);
-
-	    gimp_rgb_set_uchar (&(*channel)->color, col[0], col[1], col[2]);
-        }
-        break;
-
-	case PROP_TATTOO:
-            info->cp +=
-                xcf_read_int32 (info->fp, &GIMP_ITEM (*channel)->tattoo, 1);
-            break;
-
-	case PROP_PARASITES:
-        {
-	    glong base = info->cp;
-	    KisAnnotation *p;
-
-	    while ((info->cp - base) < prop_size)
-            {
-		p = xcf_load_parasite (info);
-		gimp_item_parasite_attach (GIMP_ITEM (*channel), p);
-		gimp_parasite_free (p);
-            }
-	    if (info->cp - base != prop_size)
-                g_message ("Error while loading a channel's parasites");
-        }
-        break;
-
-	default:
-#ifdef GIMP_UNSTABLE
-            g_printerr ("unexpected/unknown channel property: %d (skipping)",
-                        prop_type);
-#endif
-
-            {
-                TQ_UINT8 buf[16];
-                TQ_UINT32 amount;
-
-                while (prop_size > 0)
-                {
-                    amount = MIN (16, prop_size);
-                    info->cp += xcf_read_int8 (info->fp, buf, amount);
-                    prop_size -= MIN (16, amount);
-                }
-            }
-            break;
-	}
-    }
-
-    return FALSE;
-}
-
-static bool
-xcf_load_prop (XcfInfo * info, PropType * prop_type, TQ_INT32 * prop_size)
-{
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) prop_type, 1);
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) prop_size, 1);
-    return TRUE;
-}
-
-static KisLayer *
-xcf_load_layer (XcfInfo * info, KisImage * gimage)
-{
-    KisLayer *layer;
-    GimpLayerMask *layer_tqmask;
-    TQ_INT32 hierarchy_offset;
-    TQ_INT32 layer_tqmask_offset;
-    bool apply_tqmask = TRUE;
-    bool edit_tqmask = FALSE;
-    bool show_tqmask = FALSE;
-    bool active;
-    bool floating;
-    TQ_INT32 text_layer_flags = 0;
-    TQ_INT32 width;
-    TQ_INT32 height;
-    TQ_INT32 type;
-    bool is_fs_drawable;
-    TQCString *name;
-
-    /* check and see if this is the drawable the floating selection
-     *  is attached to. if it is then we'll do the attachment in our caller.
-     */
-    is_fs_drawable = (info->cp == info->floating_sel_offset);
-
-    /* read in the layer width, height, type and name */
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & width, 1);
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & height, 1);
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & type, 1);
-    info->cp += xcf_read_string (info->fp, &name, 1);
-
-    /* create a new layer */
-    layer = gimp_layer_new (gimage, width, height,
-                            type, name, 255, GIMP_NORMAL_MODE);
-    g_free (name);
-    if (!layer)
-        return NULL;
-
-    /* read in the layer properties */
-    if (!xcf_load_layer_props (info, gimage, layer,
-                               &apply_tqmask, &edit_tqmask, &show_tqmask,
-                               &text_layer_flags))
-        goto error;
-
-    /* call the evil text layer hack that might change our layer pointer */
-    active = (info->active_layer == layer);
-    floating = (info->floating_sel == layer);
-
-    if (gimp_text_layer_xcf_load_hack (&layer))
-    {
-        gimp_text_layer_set_xcf_flags (GIMP_TEXT_LAYER (layer),
-                                       text_layer_flags);
-
-        if (active)
-            info->active_layer = layer;
-        if (floating)
-            info->floating_sel = layer;
-    }
-
-    /* read the hierarchy and layer tqmask offsets */
-    info->cp += xcf_read_int32 (info->fp, &hierarchy_offset, 1);
-    info->cp += xcf_read_int32 (info->fp, &layer_tqmask_offset, 1);
-
-    /* read in the hierarchy */
-    if (!xcf_seek_pos (info, hierarchy_offset, NULL))
-        goto error;
-
-    if (!xcf_load_hierarchy (info, GIMP_DRAWABLE (layer)->tiles))
-        goto error;
-
-    /* read in the layer tqmask */
-    if (layer_tqmask_offset != 0)
-    {
-        if (!xcf_seek_pos (info, layer_tqmask_offset, NULL))
-            goto error;
-
-        layer_tqmask = xcf_load_layer_tqmask (info, gimage);
-        if (!layer_tqmask)
-            goto error;
-
-        layer_tqmask->apply_tqmask = apply_tqmask;
-        layer_tqmask->edit_tqmask = edit_tqmask;
-        layer_tqmask->show_tqmask = show_tqmask;
-
-        gimp_layer_add_tqmask (layer, layer_tqmask, FALSE);
-    }
-
-    /* attach the floating selection... */
-    if (is_fs_drawable)
-        info->floating_sel_drawable = GIMP_DRAWABLE (layer);
-
-    return layer;
-
-error:
-    g_object_unref (layer);
-    return NULL;
-}
-
-static GimpChannel *
-xcf_load_channel (XcfInfo * info, KisImage * gimage)
-{
-    GimpChannel *channel;
-    TQ_INT32 hierarchy_offset;
-    TQ_INT32 width;
-    TQ_INT32 height;
-    bool is_fs_drawable;
-    TQCString *name;
-    GimpRGB color = { 0.0, 0.0, 0.0, GIMP_OPACITY_OPAQUE };
-
-    /* check and see if this is the drawable the floating selection
-     *  is attached to. if it is then we'll do the attachment in our caller.
-     */
-    is_fs_drawable = (info->cp == info->floating_sel_offset);
-
-    /* read in the layer width, height and name */
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & width, 1);
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & height, 1);
-    info->cp += xcf_read_string (info->fp, &name, 1);
-
-    /* create a new channel */
-    channel = gimp_channel_new (gimage, width, height, name, &color);
-    g_free (name);
-    if (!channel)
-        return NULL;
-
-    /* read in the channel properties */
-    if (!xcf_load_channel_props (info, gimage, &channel))
-        goto error;
-
-    /* read the hierarchy and layer tqmask offsets */
-    info->cp += xcf_read_int32 (info->fp, &hierarchy_offset, 1);
-
-    /* read in the hierarchy */
-    if (!xcf_seek_pos (info, hierarchy_offset, NULL))
-        goto error;
-
-    if (!xcf_load_hierarchy (info, GIMP_DRAWABLE (channel)->tiles))
-        goto error;
-
-    if (is_fs_drawable)
-        info->floating_sel_drawable = GIMP_DRAWABLE (channel);
-
-    return channel;
-
-error:
-    g_object_unref (channel);
-    return NULL;
-}
-
-static GimpLayerMask *
-xcf_load_layer_tqmask (XcfInfo * info, KisImage * gimage)
-{
-    GimpLayerMask *layer_tqmask;
-    GimpChannel *channel;
-    TQ_INT32 hierarchy_offset;
-    TQ_INT32 width;
-    TQ_INT32 height;
-    bool is_fs_drawable;
-    TQCString *name;
-    GimpRGB color = { 0.0, 0.0, 0.0, GIMP_OPACITY_OPAQUE };
-
-    /* check and see if this is the drawable the floating selection
-     *  is attached to. if it is then we'll do the attachment in our caller.
-     */
-    is_fs_drawable = (info->cp == info->floating_sel_offset);
-
-    /* read in the layer width, height and name */
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & width, 1);
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & height, 1);
-    info->cp += xcf_read_string (info->fp, &name, 1);
-
-    /* create a new layer tqmask */
-    layer_tqmask = gimp_layer_tqmask_new (gimage, width, height, name, &color);
-    g_free (name);
-    if (!layer_tqmask)
-        return NULL;
-
-    /* read in the layer_tqmask properties */
-    channel = GIMP_CHANNEL (layer_tqmask);
-    if (!xcf_load_channel_props (info, gimage, &channel))
-        goto error;
-
-    /* read the hierarchy and layer tqmask offsets */
-    info->cp += xcf_read_int32 (info->fp, &hierarchy_offset, 1);
-
-    /* read in the hierarchy */
-    if (!xcf_seek_pos (info, hierarchy_offset, NULL))
-        goto error;
-
-    if (!xcf_load_hierarchy (info, GIMP_DRAWABLE (layer_tqmask)->tiles))
-        goto error;
-
-    /* attach the floating selection... */
-    if (is_fs_drawable)
-        info->floating_sel_drawable = GIMP_DRAWABLE (layer_tqmask);
-
-    return layer_tqmask;
-
-error:
-    g_object_unref (layer_tqmask);
-    return NULL;
-}
-
-static bool
-xcf_load_hierarchy (XcfInfo * info, TileManager * tiles)
-{
-    TQ_INT32 saved_pos;
-    TQ_INT32 offset;
-    TQ_INT32 junk;
-    TQ_INT32 width;
-    TQ_INT32 height;
-    TQ_INT32 bpp;
-
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & width, 1);
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & height, 1);
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & bpp, 1);
-
-    /* make sure the values in the file correspond to the values
-     *  calculated when the TileManager was created.
-     */
-    if (width != tile_manager_width (tiles) ||
-        height != tile_manager_height (tiles) ||
-        bpp != tile_manager_bpp (tiles))
-        return FALSE;
-
-    /* load in the levels...we make sure that the number of levels
-     *  calculated when the TileManager was created is the same
-     *  as the number of levels found in the file.
-     */
-
-    info->cp += xcf_read_int32 (info->fp, &offset, 1);	/* top level */
-
-    /* discard offsets for layers below first, if any.
-     */
-    do
-    {
-        info->cp += xcf_read_int32 (info->fp, &junk, 1);
-    }
-    while (junk != 0);
-
-    /* save the current position as it is where the
-     *  next level offset is stored.
-     */
-    saved_pos = info->cp;
-
-    /* seek to the level offset */
-    if (!xcf_seek_pos (info, offset, NULL))
-        return FALSE;
-
-    /* read in the level */
-    if (!xcf_load_level (info, tiles))
-        return FALSE;
-
-    /* restore the saved position so we'll be ready to
-     *  read the next offset.
-     */
-    if (!xcf_seek_pos (info, saved_pos, NULL))
-        return FALSE;
-
-    return TRUE;
-}
-
-
-static bool
-xcf_load_level (XcfInfo * info, TileManager * tiles)
-{
-    TQ_INT32 saved_pos;
-    TQ_INT32 offset, offset2;
-    TQ_UINT32 ntiles;
-    TQ_INT32 width;
-    TQ_INT32 height;
-    TQ_INT32 i;
-    TQ_INT32 fail;
-    Tile *previous;
-    Tile *tile;
-
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & width, 1);
-    info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & height, 1);
-
-    if (width != tile_manager_width (tiles) ||
-        height != tile_manager_height (tiles))
-        return FALSE;
-
-    /* read in the first tile offset.
-     *  if it is '0', then this tile level is empty
-     *  and we can simply return.
-     */
-    info->cp += xcf_read_int32 (info->fp, &offset, 1);
-    if (offset == 0)
-        return TRUE;
-
-    /* Initialise the reference for the in-memory tile-compression
-     */
-    previous = NULL;
-
-    ntiles = tiles->ntile_rows * tiles->ntile_cols;
-    for (i = 0; i < ntiles; i++)
-    {
-        fail = FALSE;
-
-        if (offset == 0)
-	{
-            g_message ("not enough tiles found in level");
-            return FALSE;
-	}
-
-        /* save the current position as it is where the
-         *  next tile offset is stored.
-         */
-        saved_pos = info->cp;
-
-        /* read in the offset of the next tile so we can calculate the amount
-           of data needed for this tile */
-        info->cp += xcf_read_int32 (info->fp, &offset2, 1);
-
-        /* if the offset is 0 then we need to read in the maximum possible
-           allowing for negative compression */
-        if (offset2 == 0)
-            offset2 = offset + TILE_WIDTH * TILE_WIDTH * 4 * 1.5;
-        /* 1.5 is probably more
-           than we need to allow */
-
-        /* seek to the tile offset */
-        if (!xcf_seek_pos (info, offset, NULL))
-            return FALSE;
-
-        /* get the tile from the tile manager */
-        tile = tile_manager_get (tiles, i, TRUE, TRUE);
-
-        /* read in the tile */
-        switch (info->compression)
-	{
-	case COMPRESS_NONE:
-            if (!xcf_load_tile (info, tile))
-                fail = TRUE;
-            break;
-	case COMPRESS_RLE:
-            if (!xcf_load_tile_rle (info, tile, offset2 - offset))
-                fail = TRUE;
-            break;
-	case COMPRESS_ZLIB:
-            g_error ("xcf: zlib compression unimplemented");
-            fail = TRUE;
-            break;
-	case COMPRESS_FRACTAL:
-            g_error ("xcf: fractal compression unimplemented");
-            fail = TRUE;
-            break;
-	}
-
-        if (fail)
-	{
-            tile_release (tile, TRUE);
-            return FALSE;
-	}
-
-        /* To potentially save memory, we compare the
-         *  newly-fetched tile against the last one, and
-         *  if they're the same we copy-on-write mirror one against
-         *  the other.
-         */
-        if (previous != NULL)
-	{
-            tile_lock (previous);
-            if (tile_ewidth (tile) == tile_ewidth (previous) &&
-                tile_eheight (tile) == tile_eheight (previous) &&
-                tile_bpp (tile) == tile_bpp (previous) &&
-                memcmp (tile_data_pointer (tile, 0, 0),
-                        tile_data_pointer (previous, 0, 0),
-                        tile_size (tile)) == 0)
-                tile_manager_map (tiles, i, previous);
-            tile_release (previous, FALSE);
-	}
-        tile_release (tile, TRUE);
-        previous = tile_manager_get (tiles, i, FALSE, FALSE);
-
-        /* restore the saved position so we'll be ready to
-         *  read the next offset.
-         */
-        if (!xcf_seek_pos (info, saved_pos, NULL))
-            return FALSE;
-
-        /* read in the offset of the next tile */
-        info->cp += xcf_read_int32 (info->fp, &offset, 1);
-    }
-
-    if (offset != 0)
-    {
-        g_message ("encountered garbage after reading level: %d", offset);
-        return FALSE;
-    }
-
-    return TRUE;
-}
-
-static bool
-xcf_load_tile (XcfInfo * info, Tile * tile)
-{
-#ifdef SWAP_FROM_FILE
-
-    if (!info->swap_num)
-    {
-        info->ref_count = g_new (int, 1);
-        info->swap_num = tile_swap_add (info->filename,
-                                        xcf_swap_func, info->ref_count);
-    }
-
-    tile->swap_num = info->swap_num;
-    tile->swap_offset = info->cp;
-    *info->ref_count += 1;
-
-#else
-
-    info->cp += xcf_read_int8 (info->fp, tile_data_pointer (tile, 0, 0),
-                               tile_size (tile));
-
-#endif
-
-    return TRUE;
-}
-
-static bool
-xcf_load_tile_rle (XcfInfo * info, Tile * tile, int data_length)
-{
-    guchar *data;
-    guchar val;
-    TQ_INT32 size;
-    TQ_INT32 count;
-    TQ_INT32 length;
-    TQ_INT32 bpp;
-    TQ_INT32 i, j;
-    TQ_INT32 nmemb_read_successfully;
-    guchar *xcfdata, *xcfodata, *xcfdatalimit;
-
-    data = tile_data_pointer (tile, 0, 0);
-    bpp = tile_bpp (tile);
-
-    xcfdata = xcfodata = g_malloc (data_length);
-
-    /* we have to use fread instead of xcf_read_* because we may be
-       reading past the end of the file here */
-    nmemb_read_successfully = fread ((TQCString *) xcfdata, sizeof (TQCString),
-                                     data_length, info->fp);
-    info->cp += nmemb_read_successfully;
-
-    xcfdatalimit = &xcfodata[nmemb_read_successfully - 1];
-
-    for (i = 0; i < bpp; i++)
-    {
-        data = (guchar *) tile_data_pointer (tile, 0, 0) + i;
-        size = tile_ewidth (tile) * tile_eheight (tile);
-        count = 0;
-
-        while (size > 0)
-	{
-            if (xcfdata > xcfdatalimit)
-	    {
-                goto bogus_rle;
-	    }
-
-            val = *xcfdata++;
-
-            length = val;
-            if (length >= 128)
-	    {
-                length = 255 - (length - 1);
-                if (length == 128)
-		{
-                    if (xcfdata >= xcfdatalimit)
-		    {
-                        goto bogus_rle;
-		    }
-
-                    length = (*xcfdata << 8) + xcfdata[1];
-                    xcfdata += 2;
-		}
-
-                count += length;
-                size -= length;
-
-                if (size < 0)
-		{
-                    goto bogus_rle;
-		}
-
-                if (&xcfdata[length - 1] > xcfdatalimit)
-		{
-                    goto bogus_rle;
-		}
-
-                while (length-- > 0)
-		{
-                    *data = *xcfdata++;
-                    data += bpp;
-		}
-	    }
-            else
-	    {
-                length += 1;
-                if (length == 128)
-		{
-                    if (xcfdata >= xcfdatalimit)
-		    {
-                        goto bogus_rle;
-		    }
-
-                    length = (*xcfdata << 8) + xcfdata[1];
-                    xcfdata += 2;
-		}
-
-                count += length;
-                size -= length;
-
-                if (size < 0)
-		{
-                    goto bogus_rle;
-		}
-
-                if (xcfdata > xcfdatalimit)
-		{
-                    goto bogus_rle;
-		}
-
-                val = *xcfdata++;
-
-                for (j = 0; j < length; j++)
-		{
-                    *data = val;
-                    data += bpp;
-		}
-	    }
-	}
-    }
-    g_free (xcfodata);
-    return TRUE;
-
-bogus_rle:
-    if (xcfodata)
-        g_free (xcfodata);
-    return FALSE;
-}
-
-static KisAnnotation *
-xcf_load_parasite (XcfInfo * info)
-{
-    KisAnnotation *p;
-
-    p = g_new (KisAnnotation, 1);
-    info->cp += xcf_read_string (info->fp, &p->name, 1);
-    info->cp += xcf_read_int32 (info->fp, &p->flags, 1);
-    info->cp += xcf_read_int32 (info->fp, &p->size, 1);
-    p->data = g_new (TQCString, p->size);
-    info->cp += xcf_read_int8 (info->fp, p->data, p->size);
-
-    return p;
-}
-
-static bool
-xcf_load_old_paths (XcfInfo * info, KisImage * gimage)
-{
-    TQ_INT32 num_paths;
-    TQ_INT32 last_selected_row;
-    GimpVectors *active_vectors;
-
-    info->cp += xcf_read_int32 (info->fp, &last_selected_row, 1);
-    info->cp += xcf_read_int32 (info->fp, &num_paths, 1);
-
-    while (num_paths-- > 0)
-        xcf_load_old_path (info, gimage);
-
-    active_vectors = (GimpVectors *)
-                     gimp_container_get_child_by_index (gimage->vectors, last_selected_row);
-
-    if (active_vectors)
-        gimp_image_set_active_vectors (gimage, active_vectors);
-
-    return TRUE;
-}
-
-static bool
-xcf_load_old_path (XcfInfo * info, KisImage * gimage)
-{
-    TQCString *name;
-    TQ_INT32 locked;
-    TQ_UINT8 state;
-    TQ_INT32 closed;
-    TQ_INT32 num_points;
-    TQ_INT32 version;		/* changed from num_paths */
-    GimpTattoo tattoo = 0;
-    GimpVectors *vectors;
-    GimpVectorsCompatPoint *points;
-    TQ_INT32 i;
-
-    info->cp += xcf_read_string (info->fp, &name, 1);
-    info->cp += xcf_read_int32 (info->fp, &locked, 1);
-    info->cp += xcf_read_int8 (info->fp, &state, 1);
-    info->cp += xcf_read_int32 (info->fp, &closed, 1);
-    info->cp += xcf_read_int32 (info->fp, &num_points, 1);
-    info->cp += xcf_read_int32 (info->fp, &version, 1);
-
-    if (version == 2)
-    {
-        TQ_INT32 dummy;
-
-        /* Had extra type field and points are stored as doubles */
-        info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & dummy, 1);
-    }
-    else if (version == 3)
-    {
-        TQ_INT32 dummy;
-
-        /* Has extra tatto field */
-        info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & dummy, 1);
-        info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & tattoo, 1);
-    }
-    else if (version != 1)
-    {
-        g_warning ("Unknown path type. Possibly corrupt XCF file");
-
-        return FALSE;
-    }
-
-    /* skip empty compatibility paths */
-    if (num_points == 0)
-        return FALSE;
-
-    points = g_new0 (GimpVectorsCompatPoint, num_points);
-
-    for (i = 0; i < num_points; i++)
-    {
-        if (version == 1)
-	{
-            TQ_INT3232 x;
-            TQ_INT3232 y;
-
-            info->cp += xcf_read_int32 (info->fp, &points[i].type, 1);
-            info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & x, 1);
-            info->cp += xcf_read_int32 (info->fp, (TQ_INT32 *) & y, 1);
-
-            points[i].x = x;
-            points[i].y = y;
-	}
-        else
-	{
-            float x;
-            float y;
-
-            info->cp += xcf_read_int32 (info->fp, &points[i].type, 1);
-            info->cp += xcf_read_float (info->fp, &x, 1);
-            info->cp += xcf_read_float (info->fp, &y, 1);
-
-            points[i].x = x;
-            points[i].y = y;
-	}
-    }
-
-    vectors =
-        gimp_vectors_compat_new (gimage, name, points, num_points, closed);
-
-    g_free (name);
-    g_free (points);
-
-    GIMP_ITEM (vectors)->linked = locked;
-
-    if (tattoo)
-        GIMP_ITEM (vectors)->tattoo = tattoo;
-
-    gimp_image_add_vectors (gimage, vectors,
-                            gimp_container_num_tqchildren (gimage->vectors));
-
-    return TRUE;
-}
-
-static bool
-xcf_load_vectors (XcfInfo * info, KisImage * gimage)
-{
-    TQ_INT32 version;
-    TQ_INT32 active_index;
-    TQ_INT32 num_paths;
-    GimpVectors *active_vectors;
-    TQ_INT32 base;
-
-#ifdef GIMP_XCF_PATH_DEBUG
-    g_printerr ("xcf_load_vectors\n");
-#endif
-
-    base = info->cp;
-
-    info->cp += xcf_read_int32 (info->fp, &version, 1);
-
-    if (version != 1)
-    {
-        g_message ("Unknown vectors version: %d (skipping)", version);
-        return FALSE;
-    }
-
-    info->cp += xcf_read_int32 (info->fp, &active_index, 1);
-    info->cp += xcf_read_int32 (info->fp, &num_paths, 1);
-
-#ifdef GIMP_XCF_PATH_DEBUG
-    g_printerr ("%d paths (active: %d)\n", num_paths, active_index);
-#endif
-
-    while (num_paths-- > 0)
-        if (!xcf_load_vector (info, gimage))
-            return FALSE;
-
-    active_vectors = (GimpVectors *)
-                     gimp_container_get_child_by_index (gimage->vectors, active_index);
-
-    if (active_vectors)
-        gimp_image_set_active_vectors (gimage, active_vectors);
-
-#ifdef GIMP_XCF_PATH_DEBUG
-    g_printerr ("xcf_load_vectors: loaded %d bytes\n", info->cp - base);
-#endif
-    return TRUE;
-}
-
-static bool
-xcf_load_vector (XcfInfo * info, KisImage * gimage)
-{
-    TQCString *name;
-    GimpTattoo tattoo = 0;
-    TQ_INT32 visible;
-    TQ_INT32 linked;
-    TQ_INT32 num_parasites;
-    TQ_INT32 num_strokes;
-    GimpVectors *vectors;
-    TQ_INT32 i;
-
-#ifdef GIMP_XCF_PATH_DEBUG
-    g_printerr ("xcf_load_vector\n");
-#endif
-
-    info->cp += xcf_read_string (info->fp, &name, 1);
-    info->cp += xcf_read_int32 (info->fp, &tattoo, 1);
-    info->cp += xcf_read_int32 (info->fp, &visible, 1);
-    info->cp += xcf_read_int32 (info->fp, &linked, 1);
-    info->cp += xcf_read_int32 (info->fp, &num_parasites, 1);
-    info->cp += xcf_read_int32 (info->fp, &num_strokes, 1);
-
-#ifdef GIMP_XCF_PATH_DEBUG
-    g_printerr
-        ("name: %s, tattoo: %d, visible: %d, linked: %d, num_parasites %d, "
-         "num_strokes %d\n", name, tattoo, visible, linked, num_parasites,
-         num_strokes);
-#endif
-
-    vectors = gimp_vectors_new (gimage, name);
-
-    GIMP_ITEM (vectors)->visible = visible ? TRUE : FALSE;
-    GIMP_ITEM (vectors)->linked = linked ? TRUE : FALSE;
-
-    if (tattoo)
-        GIMP_ITEM (vectors)->tattoo = tattoo;
-
-    for (i = 0; i < num_parasites; i++)
-    {
-        KisAnnotation *parasite;
-
-        parasite = xcf_load_parasite (info);
-
-        if (!parasite)
-            return FALSE;
-
-        gimp_item_parasite_attach (GIMP_ITEM (vectors), parasite);
-        gimp_parasite_free (parasite);
-    }
-
-    for (i = 0; i < num_strokes; i++)
-    {
-        TQ_INT32 stroke_type_id;
-        TQ_INT32 closed;
-        TQ_INT32 num_axes;
-        TQ_INT32 num_control_points;
-        TQ_INT32 type;
-        float coords[6] = { 0.0, 0.0, 1.0, 0.5, 0.5, 0.5 };
-        GimpStroke *stroke;
-        TQ_INT32 j;
-
-        GValueArray *control_points;
-        GValue value = { 0, };
-        GimpAnchor anchor;
-        GType stroke_type;
-
-        g_value_init (&value, GIMP_TYPE_ANCHOR);
-
-        info->cp += xcf_read_int32 (info->fp, &stroke_type_id, 1);
-        info->cp += xcf_read_int32 (info->fp, &closed, 1);
-        info->cp += xcf_read_int32 (info->fp, &num_axes, 1);
-        info->cp += xcf_read_int32 (info->fp, &num_control_points, 1);
-
-#ifdef GIMP_XCF_PATH_DEBUG
-        g_printerr ("stroke_type: %d, closed: %d, num_axes %d, len %d\n",
-                    stroke_type_id, closed, num_axes, num_control_points);
-#endif
-
-        switch (stroke_type_id)
-	{
-	case XCF_STROKETYPE_BEZIER_STROKE:
-            stroke_type = GIMP_TYPE_BEZIER_STROKE;
-            break;
-
-	default:
-            g_printerr ("skipping unknown stroke type\n");
-            xcf_seek_pos (info,
-                          info->cp + 4 * num_axes * num_control_points, NULL);
-            continue;
-	}
-
-        control_points = g_value_array_new (num_control_points);
-
-        anchor.selected = FALSE;
-
-        for (j = 0; j < num_control_points; j++)
-	{
-            info->cp += xcf_read_int32 (info->fp, &type, 1);
-            info->cp += xcf_read_float (info->fp, coords, num_axes);
-
-            anchor.type = type;
-            anchor.position.x = coords[0];
-            anchor.position.y = coords[1];
-            anchor.position.pressure = coords[2];
-            anchor.position.xtilt = coords[3];
-            anchor.position.ytilt = coords[4];
-            anchor.position.wheel = coords[5];
-
-            g_value_set_boxed (&value, &anchor);
-            g_value_array_append (control_points, &value);
-
-#ifdef GIMP_XCF_PATH_DEBUG
-            g_printerr ("Anchor: %d, (%f, %f, %f, %f, %f, %f)\n", type,
-                        coords[0], coords[1], coords[2], coords[3],
-                        coords[4], coords[5]);
-#endif
-	}
-
-        g_value_unset (&value);
-
-        stroke = g_object_new (stroke_type,
-                               "closed", closed,
-                               "control-points", control_points, NULL);
-
-        gimp_vectors_stroke_add (vectors, stroke);
-    }
-
-    gimp_image_add_vectors (gimage, vectors,
-                            gimp_container_num_tqchildren (gimage->vectors));
-
-    return TRUE;
-}
-
-#ifdef SWAP_FROM_FILE
-
-static bool
-xcf_swap_func (TQ_INT32 fd, Tile * tile, TQ_INT32 cmd, gpointer user_data)
-{
-    TQ_INT32 bytes;
-    TQ_INT32 err;
-    TQ_INT32 nleft;
-    TQ_INT32 *ref_count;
-
-    switch (cmd)
-    {
-    case SWAP_IN:
-        lseek (fd, tile->swap_offset, SEEK_SET);
-
-        bytes = tile_size (tile);
-        tile_alloc (tile);
-
-        nleft = bytes;
-        while (nleft > 0)
-	{
-            do
-	    {
-                err = read (fd, tile->data + bytes - nleft, nleft);
-	    }
-            while ((err == -1) && ((errno == EAGAIN) || (errno == EINTR)));
-
-            if (err <= 0)
-	    {
-                g_message ("unable to read tile data from xcf file: "
-                           "%d ( %d ) bytes read", err, nleft);
-                return FALSE;
-	    }
-
-            nleft -= err;
-	}
-        break;
-
-    case SWAP_OUT:
-    case SWAP_DELETE:
-    case SWAP_COMPRESS:
-        ref_count = user_data;
-        *ref_count -= 1;
-        if (*ref_count == 0)
-	{
-            tile_swap_remove (tile->swap_num);
-            g_free (ref_count);
-	}
-
-        tile->swap_num = 1;
-        tile->swap_offset = -1;
-
-        return TRUE;
-    }
-
-    return FALSE;
-}
-
-#endif
diff --git a/filters/krita/xcf/xcf/xcf-load.h b/filters/krita/xcf/xcf/xcf-load.h
deleted file mode 100644
index 75bc0e9c7..000000000
--- a/filters/krita/xcf/xcf/xcf-load.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* The GIMP -- an image manipulation program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef __XCF_LOAD_H__
-#define __XCF_LOAD_H__
-
-class KisImage;
-class XcfInfo;
-
-KisImage * xcf_load_image (XcfInfo *info);
-
-#endif  /* __XCF_LOAD_H__ */
diff --git a/filters/krita/xcf/xcf/xcf-private.h b/filters/krita/xcf/xcf/xcf-private.h
deleted file mode 100644
index 3a832fbdd..000000000
--- a/filters/krita/xcf/xcf/xcf-private.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* The GIMP -- an image manipulation program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef __XCF_PRIVATE_H__
-#define __XCF_PRIVATE_H__
-
-#include <tqcstring.h>
-
-typedef enum
-{
-  PROP_END                =  0,
-  PROP_COLORMAP           =  1,
-  PROP_ACTIVE_LAYER       =  2,
-  PROP_ACTIVE_CHANNEL     =  3,
-  PROP_SELECTION          =  4,
-  PROP_FLOATING_SELECTION =  5,
-  PROP_OPACITY            =  6,
-  PROP_MODE               =  7,
-  PROP_VISIBLE            =  8,
-  PROP_LINKED             =  9,
-  PROP_LOCK_ALPHA         = 10,
-  PROP_APPLY_MASK         = 11,
-  PROP_EDIT_MASK          = 12,
-  PROP_SHOW_MASK          = 13,
-  PROP_SHOW_MASKED        = 14,
-  PROP_OFFSETS            = 15,
-  PROP_COLOR              = 16,
-  PROP_COMPRESSION        = 17,
-  PROP_GUIDES             = 18,
-  PROP_RESOLUTION         = 19,
-  PROP_TATTOO             = 20,
-  PROP_PARASITES          = 21,
-  PROP_UNIT               = 22,
-  PROP_PATHS              = 23,
-  PROP_USER_UNIT          = 24,
-  PROP_VECTORS            = 25,
-  PROP_TEXT_LAYER_FLAGS   = 26
-} PropType;
-
-typedef enum
-{
-  COMPRESS_NONE              =  0,
-  COMPRESS_RLE               =  1,
-  COMPRESS_ZLIB              =  2,  /* unused */
-  COMPRESS_FRACTAL           =  3   /* unused */
-} XcfCompressionType;
-
-typedef enum
-{
-  XCF_ORIENTATION_HORIZONTAL = 1,
-  XCF_ORIENTATION_VERTICAL   = 2
-} XcfQt::OrientationType;
-
-typedef enum
-{
-  XCF_STROKETYPE_STROKE        = 0,
-  XCF_STROKETYPE_BEZIER_STROKE = 1
-} XcfStrokeType;
-
-typedef struct _XcfInfo  XcfInfo;
-
-struct _XcfInfo
-{
-  FILE               *fp;
-  TQ_UINT32           cp;
-  const TQCString     filename;
-  //GimpTattoo         tattoo_state;
-  KisLayer           *active_layer;
-  //GimpChannel        *active_channel;
-  //GimpDrawable       *floating_sel_drawable;
-  KisLayer           *floating_sel;
-  TQ_UINT32           floating_sel_offset;
-  TQ_INT32            swap_num;
-  TQ_INT32            *ref_count;
-  XcfCompressionType compression;
-  TQ_INT32            file_version;
-};
-
-
-#endif /* __XCF_PRIVATE_H__ */
diff --git a/filters/krita/xcf/xcf/xcf-read.cc b/filters/krita/xcf/xcf/xcf-read.cc
deleted file mode 100644
index 314daa900..000000000
--- a/filters/krita/xcf/xcf/xcf-read.cc
+++ /dev/null
@@ -1,118 +0,0 @@
-/* The GIMP -- an image manipulation program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#include <stdio.h>
-
-#include <glib-object.h>
-
-#include "libgimpbase/gimpbase.h"
-
-#include "xcf-read.h"
-
-#include "gimp-intl.h"
-
-
-TQ_UINT32
-xcf_read_int32 (FILE    *fp,
-		TQ_INT32 *data,
-		TQ_INT32     count)
-{
-  TQ_UINT32 total;
-
-  total = count;
-  if (count > 0)
-    {
-      xcf_read_int8 (fp, (TQ_UINT8 *) data, count * 4);
-
-      while (count--)
-        {
-          *data = g_ntohl (*data);
-          data++;
-        }
-    }
-
-  return total * 4;
-}
-
-TQ_UINT32
-xcf_read_float (FILE   *fp,
-		float *data,
-		TQ_INT32    count)
-{
-  return xcf_read_int32 (fp, (TQ_INT32 *) ((void *) data), count);
-}
-
-TQ_UINT32
-xcf_read_int8 (FILE   *fp,
-	       TQ_UINT8 *data,
-	       TQ_INT32    count)
-{
-  TQ_UINT32 total;
-  TQ_INT32  bytes;
-
-  total = count;
-  while (count > 0)
-    {
-      bytes = fread ((char *) data, sizeof (char), count, fp);
-      if (bytes <= 0) /* something bad happened */
-        break;
-      count -= bytes;
-      data += bytes;
-    }
-
-  return total;
-}
-
-TQ_UINT32
-xcf_read_string (FILE   *fp,
-		 TQCString **data,
-		 TQ_INT32    count)
-{
-  TQ_INT32 tmp;
-  TQ_UINT32   total;
-  TQ_INT32    i;
-
-  total = 0;
-  for (i = 0; i < count; i++)
-    {
-      total += xcf_read_int32 (fp, &tmp, 1);
-      if (tmp > 0)
-        {
-          TQCString *str;
-
-          str = g_new (TQCString, tmp);
-          total += xcf_read_int8 (fp, (TQ_UINT8*) str, tmp);
-
-          if (str[tmp - 1] != '\0')
-            str[tmp - 1] = '\0';
-
-          data[i] = gimp_any_to_utf8 (str, -1,
-                                      _("Invalid UTF-8 string in XCF file"));
-
-          g_free (str);
-        }
-      else
-        {
-          data[i] = NULL;
-        }
-    }
-
-  return total;
-}
diff --git a/filters/krita/xcf/xcf/xcf-read.h b/filters/krita/xcf/xcf/xcf-read.h
deleted file mode 100644
index b90b8a417..000000000
--- a/filters/krita/xcf/xcf/xcf-read.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* The GIMP -- an image manipulation program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef __XCF_READ_H__
-#define __XCF_READ_H__
-
-
-TQ_UINT32   xcf_read_int32  (FILE     *fp,
-			 TQ_INT32  *data,
-			 TQ_INT32      count);
-TQ_UINT32   xcf_read_float  (FILE     *fp,
-			 float   *data,
-			 TQ_INT32      count);
-TQ_UINT32   xcf_read_int8   (FILE     *fp,
-			 TQ_UINT8   *data,
-			 TQ_INT32      count);
-TQ_UINT32   xcf_read_string (FILE     *fp,
-			 TQCString   **data,
-			 TQ_INT32      count);
-
-
-#endif  /* __XCF_READ_H__ */
diff --git a/filters/krita/xcf/xcf/xcf-save.cc b/filters/krita/xcf/xcf/xcf-save.cc
deleted file mode 100644
index 50e5fb17e..000000000
--- a/filters/krita/xcf/xcf/xcf-save.cc
+++ /dev/null
@@ -1,1826 +0,0 @@
-/* The GIMP -- an image manipulation program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <string.h> /* strcpy, strlen */
-
-#include <glib-object.h>
-
-#include "libgimpbase/gimpbase.h"
-#include "libgimpcolor/gimpcolor.h"
-
-#include "core/core-types.h"
-
-#include "base/tile.h"
-#include "base/tile-manager.h"
-#include "base/tile-manager-private.h"
-
-#include "core/gimpchannel.h"
-#include "core/gimpdrawable.h"
-#include "core/gimpgrid.h"
-#include "core/gimpimage.h"
-#include "core/gimpimage-grid.h"
-#include "core/gimpimage-guides.h"
-#include "core/gimplayer.h"
-#include "core/gimplayer-floating-sel.h"
-#include "core/gimplayertqmask.h"
-#include "core/gimplist.h"
-#include "core/gimpparasitelist.h"
-#include "core/gimpunit.h"
-
-#include "text/gimptextlayer.h"
-#include "text/gimptextlayer-xcf.h"
-
-#include "vectors/gimpanchor.h"
-#include "vectors/gimpstroke.h"
-#include "vectors/gimpbezierstroke.h"
-#include "vectors/gimpvectors.h"
-#include "vectors/gimpvectors-compat.h"
-
-#include "xcf-private.h"
-#include "xcf-read.h"
-#include "xcf-seek.h"
-#include "xcf-write.h"
-
-#include "gimp-intl.h"
-
-
-static bool xcf_save_image_props   (XcfInfo           *info,
-                                    KisImage         *gimage,
-                                    GError           **error);
-static bool xcf_save_layer_props   (XcfInfo           *info,
-                                    KisImage         *gimage,
-                                    KisLayer         *layer,
-                                    GError           **error);
-static bool xcf_save_channel_props (XcfInfo           *info,
-                                    KisImage         *gimage,
-                                    GimpChannel       *channel,
-                                    GError           **error);
-static bool xcf_save_prop          (XcfInfo           *info,
-                                    KisImage         *gimage,
-                                    PropType           prop_type,
-                                    GError           **error,
-                                    ...);
-static bool xcf_save_layer         (XcfInfo           *info,
-                                    KisImage         *gimage,
-                                    KisLayer         *layer,
-                                    GError           **error);
-static bool xcf_save_channel       (XcfInfo           *info,
-                                    KisImage         *gimage,
-                                    GimpChannel       *channel,
-                                    GError           **error);
-static bool xcf_save_hierarchy     (XcfInfo           *info,
-                                    TileManager       *tiles,
-                                    GError           **error);
-static bool xcf_save_level         (XcfInfo           *info,
-                                    TileManager       *tiles,
-                                    GError           **error);
-static bool xcf_save_tile          (XcfInfo           *info,
-                                    Tile              *tile,
-                                    GError           **error);
-static bool xcf_save_tile_rle      (XcfInfo           *info,
-                                    Tile              *tile,
-                                    guchar            *rlebuf,
-                                    GError           **error);
-static bool xcf_save_parasite      (XcfInfo           *info,
-                                    KisAnnotation      *parasite,
-                                    GError           **error);
-static bool xcf_save_parasite_list (XcfInfo           *info,
-                                    KisAnnotationList  *parasite,
-                                    GError           **error);
-static bool xcf_save_old_paths     (XcfInfo           *info,
-                                    KisImage         *gimage,
-                                    GError           **error);
-static bool xcf_save_vectors       (XcfInfo           *info,
-                                    KisImage         *gimage,
-                                    GError           **error);
-
-
-/* private convenience macros */
-#define xcf_write_int32_check_error(info, data, count) G_STMT_START {   \
-        info->cp += xcf_write_int32 (info->fp, data, count, &tmp_error); \
-        if (tmp_error)                                                  \
-        {                                                               \
-            g_propagate_error (error, tmp_error);                       \
-            return FALSE;                                               \
-        }                                                               \
-    } G_STMT_END
-
-#define xcf_write_int8_check_error(info, data, count) G_STMT_START {    \
-        info->cp += xcf_write_int8 (info->fp, data, count, &tmp_error); \
-        if (tmp_error)                                                  \
-        {                                                               \
-            g_propagate_error (error, tmp_error);                       \
-            return FALSE;                                               \
-        }                                                               \
-    } G_STMT_END
-
-#define xcf_write_float_check_error(info, data, count) G_STMT_START {   \
-        info->cp += xcf_write_float (info->fp, data, count, &tmp_error); \
-        if (tmp_error)                                                  \
-        {                                                               \
-            g_propagate_error (error, tmp_error);                       \
-            return FALSE;                                               \
-        }                                                               \
-    } G_STMT_END
-
-#define xcf_write_string_check_error(info, data, count) G_STMT_START {  \
-        info->cp += xcf_write_string (info->fp, data, count, &tmp_error); \
-        if (tmp_error)                                                  \
-        {                                                               \
-            g_propagate_error (error, tmp_error);                       \
-            return FALSE;                                               \
-        }                                                               \
-    } G_STMT_END
-
-#define xcf_write_int32_print_error(info, data, count) G_STMT_START {   \
-        info->cp += xcf_write_int32 (info->fp, data, count, &error);    \
-        if (error)                                                      \
-        {                                                               \
-            g_message (_("Error saving XCF file: %s"),                  \
-                       error->message);                                 \
-            return FALSE;                                               \
-        }                                                               \
-    } G_STMT_END
-
-#define xcf_write_int8_print_error(info, data, count) G_STMT_START {    \
-        info->cp += xcf_write_int8 (info->fp, data, count, &error);     \
-        if (error)                                                      \
-        {                                                               \
-            g_message (_("Error saving XCF file: %s"),                  \
-                       error->message);                                 \
-            return FALSE;                                               \
-        }                                                               \
-    } G_STMT_END
-
-#define xcf_write_float_print_error(info, data, count) G_STMT_START {   \
-        info->cp += xcf_write_float (info->fp, data, count, &error);    \
-        if (error)                                                      \
-        {                                                               \
-            g_message (_("Error saving XCF file: %s"),                  \
-                       error->message);                                 \
-            return FALSE;                                               \
-        }                                                               \
-    } G_STMT_END
-
-#define xcf_write_string_print_error(info, data, count) G_STMT_START {  \
-        info->cp += xcf_write_string (info->fp, data, count, &error);   \
-        if (error)                                                      \
-        {                                                               \
-            g_message (_("Error saving XCF file: %s"),                  \
-                       error->message);                                 \
-            return FALSE;                                               \
-        }                                                               \
-    } G_STMT_END
-
-#define xcf_write_prop_type_check_error(info, prop_type) G_STMT_START { \
-        TQ_INT32 _prop_int32 = prop_type;                                \
-        xcf_write_int32_check_error (info, &_prop_int32, 1);            \
-    } G_STMT_END
-
-#define xcf_write_prop_type_print_error(info, prop_type) G_STMT_START { \
-        TQ_INT32 _prop_int32 = prop_type;                                \
-        xcf_write_int32_print_error (info, &_prop_int32, 1);            \
-    } G_STMT_END
-
-#define xcf_check_error(x) G_STMT_START {       \
-        if (! (x))                              \
-            return FALSE;                       \
-    } G_STMT_END
-
-#define xcf_print_error(x) G_STMT_START {               \
-        if (! (x))                                      \
-        {                                               \
-            g_message (_("Error saving XCF file: %s"),  \
-                       error->message);                 \
-            return FALSE;                               \
-        }                                               \
-    } G_STMT_END
-
-
-void
-xcf_save_choose_format (XcfInfo   *info,
-                        KisImage *gimage)
-{
-    KisLayer *layer;
-    GList     *list;
-
-    TQ_INT32 save_version = 0;                /* default to oldest */
-
-    if (gimage->cmap)
-        save_version = 1;                   /* need version 1 for colormaps */
-
-    for (list = GIMP_LIST (gimage->layers)->list;
-         list && save_version < 2;
-         list = g_list_next (list))
-    {
-        layer = GIMP_LAYER (list->data);
-
-        switch (layer->mode)
-        {
-            /* new layer modes not supported by gimp-1.2 */
-        case GIMP_SOFTLIGHT_MODE:
-        case GIMP_GRAIN_EXTRACT_MODE:
-        case GIMP_GRAIN_MERGE_MODE:
-        case GIMP_COLOR_ERASE_MODE:
-            save_version = 2;
-            break;
-
-        default:
-            break;
-        }
-    }
-
-    info->file_version = save_version;
-}
-
-TQ_INT32
-xcf_save_image (XcfInfo   *info,
-		KisImage *gimage)
-{
-    KisLayer   *layer;
-    KisLayer   *floating_layer;
-    GimpChannel *channel;
-    TQ_INT32      saved_pos;
-    TQ_INT32      offset;
-    TQ_UINT32        nlayers;
-    TQ_UINT32        nchannels;
-    GList       *list;
-    bool     have_selection;
-    TQ_INT32         t1, t2, t3, t4;
-    TQCString        version_tag[14];
-    GError      *error = NULL;
-
-    floating_layer = gimp_image_floating_sel (gimage);
-    if (floating_layer)
-        floating_sel_relax (floating_layer, FALSE);
-
-    /* write out the tag information for the image */
-    if (info->file_version > 0)
-    {
-        sprintf (version_tag, "gimp xcf v%03d", info->file_version);
-    }
-    else
-    {
-        strcpy (version_tag, "gimp xcf file");
-    }
-    xcf_write_int8_print_error  (info, (TQ_UINT8 *) version_tag, 14);
-
-    /* write out the width, height and image type information for the image */
-    xcf_write_int32_print_error (info, (TQ_INT32 *) &gimage->width, 1);
-    xcf_write_int32_print_error (info, (TQ_INT32 *) &gimage->height, 1);
-    xcf_write_int32_print_error (info, (TQ_INT32 *) &gimage->base_type, 1);
-
-    /* determine the number of layers and channels in the image */
-    nlayers   = (TQ_UINT32) gimp_container_num_tqchildren (gimage->layers);
-    nchannels = (TQ_UINT32) gimp_container_num_tqchildren (gimage->channels);
-
-    /* check and see if we have to save out the selection */
-    have_selection = gimp_channel_bounds (gimp_image_get_tqmask (gimage),
-                                          &t1, &t2, &t3, &t4);
-    if (have_selection)
-        nchannels += 1;
-
-    /* write the property information for the image.
-     */
-
-    xcf_print_error (xcf_save_image_props (info, gimage, &error));
-
-    /* save the current file position as it is the start of where
-     *  we place the layer offset information.
-     */
-    saved_pos = info->cp;
-
-    /* seek to after the offset lists */
-    xcf_print_error (xcf_seek_pos (info,
-                                   info->cp + (nlayers + nchannels + 2) * 4,
-                                   &error));
-
-    for (list = GIMP_LIST (gimage->layers)->list;
-         list;
-         list = g_list_next (list))
-    {
-        layer = (KisLayer *) list->data;
-
-        /* save the start offset of where we are writing
-         *  out the next layer.
-         */
-        offset = info->cp;
-
-        /* write out the layer. */
-        xcf_print_error (xcf_save_layer (info, gimage, layer, &error));
-
-        /* seek back to where we are to write out the next
-         *  layer offset and write it out.
-         */
-        xcf_print_error (xcf_seek_pos (info, saved_pos, &error));
-        xcf_write_int32_print_error (info, &offset, 1);
-
-        /* increment the location we are to write out the
-         *  next offset.
-         */
-        saved_pos = info->cp;
-
-        /* seek to the end of the file which is where
-         *  we will write out the next layer.
-         */
-        xcf_print_error (xcf_seek_end (info, &error));
-    }
-
-    /* write out a '0' offset position to indicate the end
-     *  of the layer offsets.
-     */
-    offset = 0;
-    xcf_print_error (xcf_seek_pos (info, saved_pos, &error));
-    xcf_write_int32_print_error (info, &offset, 1);
-    saved_pos = info->cp;
-    xcf_print_error (xcf_seek_end (info, &error));
-
-    list = GIMP_LIST (gimage->channels)->list;
-
-    while (list || have_selection)
-    {
-        if (list)
-	{
-            channel = (GimpChannel *) list->data;
-
-            list = g_list_next (list);
-	}
-        else
-	{
-            channel = gimage->selection_tqmask;
-            have_selection = FALSE;
-	}
-
-        /* save the start offset of where we are writing
-         *  out the next channel.
-         */
-        offset = info->cp;
-
-        /* write out the layer. */
-        xcf_print_error (xcf_save_channel (info, gimage, channel, &error));
-
-        /* seek back to where we are to write out the next
-         *  channel offset and write it out.
-         */
-        xcf_print_error (xcf_seek_pos (info, saved_pos, &error));
-        xcf_write_int32_print_error (info, &offset, 1);
-
-        /* increment the location we are to write out the
-         *  next offset.
-         */
-        saved_pos = info->cp;
-
-        /* seek to the end of the file which is where
-         *  we will write out the next channel.
-         */
-        xcf_print_error (xcf_seek_end (info, &error));
-    }
-
-    /* write out a '0' offset position to indicate the end
-     *  of the channel offsets.
-     */
-    offset = 0;
-    xcf_print_error (xcf_seek_pos (info, saved_pos, &error));
-    xcf_write_int32_print_error (info, &offset, 1);
-    saved_pos = info->cp;
-
-    if (floating_layer)
-        floating_sel_rigor (floating_layer, FALSE);
-
-    return !ferror(info->fp);
-}
-
-static bool
-xcf_save_image_props (XcfInfo   *info,
-		      KisImage *gimage,
-		      GError   **error)
-{
-    KisAnnotation *parasite = NULL;
-    GimpUnit      unit     = gimp_image_get_unit (gimage);
-
-    /* check and see if we should save the colormap property */
-    if (gimage->cmap)
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_COLORMAP, error,
-                                        gimage->num_cols, gimage->cmap));
-
-    if (info->compression != COMPRESS_NONE)
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_COMPRESSION,
-                                        error, info->compression));
-
-    if (gimage->guides)
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_GUIDES,
-                                        error, gimage->guides));
-
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_RESOLUTION, error,
-                                    gimage->xresolution, gimage->yresolution));
-
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_TATTOO, error,
-                                    gimage->tattoo_state));
-
-    if (gimp_parasite_list_length (gimage->parasites) > 0)
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_PARASITES,
-                                        error, gimage->parasites));
-
-    if (unit < _gimp_unit_get_number_of_built_in_units (gimage->gimp))
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_UNIT, error, unit));
-
-    if (gimp_container_num_tqchildren (gimage->vectors) > 0)
-    {
-        if (gimp_vectors_compat_is_compatible (gimage))
-            xcf_check_error (xcf_save_prop (info, gimage, PROP_PATHS, error));
-        else
-            xcf_check_error (xcf_save_prop (info, gimage, PROP_VECTORS, error));
-    }
-
-    if (unit >= _gimp_unit_get_number_of_built_in_units (gimage->gimp))
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_USER_UNIT, error, unit));
-
-    if (GIMP_IS_GRID (gimage->grid))
-    {
-        GimpGrid *grid = gimp_image_get_grid (gimage);
-
-        parasite = gimp_grid_to_parasite (grid);
-        gimp_parasite_list_add (GIMP_IMAGE (gimage)->parasites, parasite);
-    }
-
-    if (gimp_parasite_list_length (GIMP_IMAGE (gimage)->parasites) > 0)
-    {
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_PARASITES, error,
-                                        GIMP_IMAGE (gimage)->parasites));
-    }
-
-    if (parasite)
-    {
-        gimp_parasite_list_remove (GIMP_IMAGE (gimage)->parasites,
-                                   gimp_parasite_name (parasite));
-        gimp_parasite_free (parasite);
-    }
-
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_END, error));
-
-    return TRUE;
-}
-
-static bool
-xcf_save_layer_props (XcfInfo   *info,
-		      KisImage *gimage,
-		      KisLayer *layer,
-		      GError   **error)
-{
-    KisAnnotation *parasite = NULL;
-
-    if (layer == gimp_image_get_active_layer (gimage))
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_ACTIVE_LAYER, error));
-
-    if (layer == gimp_image_floating_sel (gimage))
-    {
-        info->floating_sel_drawable = layer->fs.drawable;
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_FLOATING_SELECTION,
-                                        error));
-    }
-
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_OPACITY, error,
-                                    layer->opacity));
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_VISIBLE, error,
-                                    gimp_item_get_visible (GIMP_ITEM (layer))));
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_LINKED, error,
-                                    gimp_item_get_linked (GIMP_ITEM (layer))));
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_LOCK_ALPHA,
-                                    error, layer->lock_alpha));
-
-    if (layer->tqmask)
-    {
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_APPLY_MASK,
-                                        error, layer->tqmask->apply_tqmask));
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_EDIT_MASK,
-                                        error, layer->tqmask->edit_tqmask));
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_SHOW_MASK,
-                                        error, layer->tqmask->show_tqmask));
-    }
-    else
-    {
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_APPLY_MASK,
-                                        error, FALSE));
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_EDIT_MASK,
-                                        error, FALSE));
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_SHOW_MASK,
-                                        error, FALSE));
-    }
-
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_OFFSETS, error,
-                                    GIMP_ITEM (layer)->offset_x,
-                                    GIMP_ITEM (layer)->offset_y));
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_MODE, error,
-                                    layer->mode));
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_TATTOO, error,
-                                    GIMP_ITEM (layer)->tattoo));
-
-    if (GIMP_IS_TEXT_LAYER (layer) && GIMP_TEXT_LAYER (layer)->text)
-    {
-        GimpTextLayer *text_layer = GIMP_TEXT_LAYER (layer);
-        TQ_INT32        flags      = gimp_text_layer_get_xcf_flags (text_layer);
-
-        gimp_text_layer_xcf_save_prepare (text_layer);
-
-        if (flags)
-            xcf_check_error (xcf_save_prop (info,
-                                            gimage, PROP_TEXT_LAYER_FLAGS, error,
-                                            flags));
-    }
-
-    if (gimp_parasite_list_length (GIMP_ITEM (layer)->parasites) > 0)
-    {
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_PARASITES, error,
-                                        GIMP_ITEM (layer)->parasites));
-    }
-
-    if (parasite)
-    {
-        gimp_parasite_list_remove (GIMP_ITEM (layer)->parasites,
-                                   gimp_parasite_name (parasite));
-        gimp_parasite_free (parasite);
-    }
-
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_END, error));
-
-    return TRUE;
-}
-
-static bool
-xcf_save_channel_props (XcfInfo     *info,
-			KisImage   *gimage,
-			GimpChannel *channel,
-			GError     **error)
-{
-    guchar col[3];
-
-    if (channel == gimp_image_get_active_channel (gimage))
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_ACTIVE_CHANNEL, error));
-
-    if (channel == gimage->selection_tqmask)
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_SELECTION, error));
-
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_OPACITY, error,
-                                    channel->color.a));
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_VISIBLE, error,
-                                    gimp_item_get_visible (GIMP_ITEM (channel))));
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_LINKED, error,
-                                    gimp_item_get_linked (GIMP_ITEM (channel))));
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_SHOW_MASKED, error,
-                                    channel->show_tqmasked));
-
-    gimp_rgb_get_uchar (&channel->color, &col[0], &col[1], &col[2]);
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_COLOR, error, col));
-
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_TATTOO, error,
-                                    GIMP_ITEM (channel)->tattoo));
-
-    if (gimp_parasite_list_length (GIMP_ITEM (channel)->parasites) > 0)
-        xcf_check_error (xcf_save_prop (info, gimage, PROP_PARASITES, error,
-                                        GIMP_ITEM (channel)->parasites));
-
-    xcf_check_error (xcf_save_prop (info, gimage, PROP_END, error));
-
-    return TRUE;
-}
-
-static bool
-xcf_save_prop (XcfInfo   *info,
-	       KisImage *gimage,
-	       PropType   prop_type,
-	       GError   **error,
-	       ...)
-{
-    TQ_INT32 size;
-    va_list args;
-
-    GError *tmp_error = NULL;
-
-    va_start (args, error);
-
-    switch (prop_type)
-    {
-    case PROP_END:
-        size = 0;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-        xcf_write_int32_check_error (info, &size, 1);
-        break;
-
-    case PROP_COLORMAP:
-    {
-	TQ_INT32  ncolors;
-	guchar  *colors;
-
-	ncolors = va_arg (args, TQ_INT32);
-	colors = va_arg (args, guchar*);
-	size = 4 + ncolors * 3;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, &ncolors, 1);
-	xcf_write_int8_check_error  (info, colors, ncolors * 3);
-    }
-    break;
-
-    case PROP_ACTIVE_LAYER:
-    case PROP_ACTIVE_CHANNEL:
-    case PROP_SELECTION:
-        size = 0;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-        xcf_write_int32_check_error (info, &size, 1);
-        break;
-
-    case PROP_FLOATING_SELECTION:
-    {
-	TQ_INT32 dummy;
-
-	dummy = 0;
-	size = 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	info->floating_sel_offset = info->cp;
-	xcf_write_int32_check_error (info, &dummy, 1);
-    }
-    break;
-
-    case PROP_OPACITY:
-    {
-	gdouble opacity;
-        TQ_INT32 uint_opacity;
-
-	opacity = va_arg (args, gdouble);
-
-        uint_opacity = opacity * 255.999;
-
-	size = 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, &uint_opacity, 1);
-    }
-    break;
-
-    case PROP_MODE:
-    {
-	TQ_INT3232 mode;
-
-	mode = va_arg (args, TQ_INT3232);
-	size = 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, (TQ_INT32 *) &mode, 1);
-    }
-    break;
-
-    case PROP_VISIBLE:
-    {
-	TQ_INT32 visible;
-
-	visible = va_arg (args, TQ_INT32);
-	size = 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, &visible, 1);
-    }
-    break;
-
-    case PROP_LINKED:
-    {
-	TQ_INT32 linked;
-
-	linked = va_arg (args, TQ_INT32);
-	size = 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, &linked, 1);
-    }
-    break;
-
-    case PROP_LOCK_ALPHA:
-    {
-	TQ_INT32 lock_alpha;
-
-	lock_alpha = va_arg (args, TQ_INT32);
-	size = 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, &lock_alpha, 1);
-    }
-    break;
-
-    case PROP_APPLY_MASK:
-    {
-	TQ_INT32 apply_tqmask;
-
-	apply_tqmask = va_arg (args, TQ_INT32);
-	size = 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, &apply_tqmask, 1);
-    }
-    break;
-
-    case PROP_EDIT_MASK:
-    {
-	TQ_INT32 edit_tqmask;
-
-	edit_tqmask = va_arg (args, TQ_INT32);
-	size = 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, &edit_tqmask, 1);
-    }
-    break;
-
-    case PROP_SHOW_MASK:
-    {
-	TQ_INT32 show_tqmask;
-
-	show_tqmask = va_arg (args, TQ_INT32);
-	size = 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, &show_tqmask, 1);
-    }
-    break;
-
-    case PROP_SHOW_MASKED:
-    {
-	TQ_INT32 show_tqmasked;
-
-	show_tqmasked = va_arg (args, TQ_INT32);
-	size = 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, &show_tqmasked, 1);
-    }
-    break;
-
-    case PROP_OFFSETS:
-    {
-	TQ_INT3232 offsets[2];
-
-	offsets[0] = va_arg (args, TQ_INT3232);
-	offsets[1] = va_arg (args, TQ_INT3232);
-	size = 8;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, (TQ_INT32 *) offsets, 2);
-    }
-    break;
-
-    case PROP_COLOR:
-    {
-	guchar *color;
-
-	color = va_arg (args, guchar*);
-	size = 3;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int8_check_error  (info, color, 3);
-    }
-    break;
-
-    case PROP_COMPRESSION:
-    {
-	TQ_UINT8 compression;
-
-	compression = (TQ_UINT8) va_arg (args, TQ_INT32);
-	size = 1;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int8_check_error  (info, &compression, 1);
-    }
-    break;
-
-    case PROP_GUIDES:
-    {
-	GList     *guides;
-	GimpGuide *guide;
-	TQ_INT3232     position;
-	TQ_INT328      orientation;
-	TQ_INT32       nguides;
-
-	guides = va_arg (args, GList *);
-	nguides = g_list_length (guides);
-
-	size = nguides * (4 + 1);
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-
-	for (; guides; guides = g_list_next (guides))
-        {
-	    guide = (GimpGuide *) guides->data;
-
-	    position = guide->position;
-
-            switch (guide->orientation)
-            {
-            case GIMP_ORIENTATION_HORIZONTAL:
-                orientation = XCF_ORIENTATION_HORIZONTAL;
-                break;
-
-            case GIMP_ORIENTATION_VERTICAL:
-                orientation = XCF_ORIENTATION_VERTICAL;
-                break;
-
-            default:
-                g_warning ("%s: skipping guide with bad orientation",
-                           G_STRFUNC);
-                continue;
-            }
-
-	    xcf_write_int32_check_error (info, (TQ_INT32 *) &position,    1);
-	    xcf_write_int8_check_error  (info, (TQ_UINT8 *)  &orientation, 1);
-        }
-    }
-    break;
-
-    case PROP_RESOLUTION:
-    {
-	float xresolution, yresolution;
-
-	/* we pass in floats,
-           but they are promoted to double by the compiler */
-	xresolution =  va_arg (args, double);
-	yresolution =  va_arg (args, double);
-
-	size = 4*2;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-
-	xcf_write_float_check_error (info, &xresolution, 1);
-	xcf_write_float_check_error (info, &yresolution, 1);
-    }
-    break;
-
-    case PROP_TATTOO:
-    {
-	TQ_INT32 tattoo;
-
-	tattoo =  va_arg (args, TQ_INT32);
-	size = 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, &tattoo, 1);
-    }
-    break;
-
-    case PROP_PARASITES:
-    {
-	KisAnnotationList *list;
-	TQ_INT32           base, length;
-	long              pos;
-
-	list = va_arg (args, KisAnnotationList *);
-
-	if (gimp_parasite_list_persistent_length (list) > 0)
-        {
-            xcf_write_prop_type_check_error (info, prop_type);
-
-	    /* because we don't know how much room the parasite list will take
-	     * we save the file position and write the length later
-	     */
-            pos = info->cp;
-	    xcf_write_int32_check_error (info, &length, 1);
-	    base = info->cp;
-
-            xcf_check_error (xcf_save_parasite_list (info, list, error));
-
-	    length = info->cp - base;
-	    /* go back to the saved position and write the length */
-            xcf_check_error (xcf_seek_pos (info, pos, error));
-	    xcf_write_int32 (info->fp, &length, 1, &tmp_error);
-	    if (tmp_error)
-            {
-	        g_propagate_error (error, tmp_error);
-	        return FALSE;
-            }
-
-            xcf_check_error (xcf_seek_end (info, error));
-        }
-    }
-    break;
-
-    case PROP_UNIT:
-    {
-	TQ_INT32 unit;
-
-	unit = va_arg (args, TQ_INT32);
-
-	size = 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, &unit, 1);
-    }
-    break;
-
-    case PROP_PATHS:
-    {
-	TQ_INT32 base, length;
-	glong   pos;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-
-        /* because we don't know how much room the paths list will take
-         * we save the file position and write the length later
-         */
-        pos = info->cp;
-        xcf_write_int32_check_error (info, &length, 1);
-
-        base = info->cp;
-
-        xcf_check_error (xcf_save_old_paths (info, gimage, error));
-
-        length = info->cp - base;
-
-        /* go back to the saved position and write the length */
-        xcf_check_error (xcf_seek_pos (info, pos, error));
-        xcf_write_int32 (info->fp, &length, 1, &tmp_error);
-        if (tmp_error)
-        {
-            g_propagate_error (error, tmp_error);
-            return FALSE;
-        }
-
-        xcf_check_error (xcf_seek_end (info, error));
-    }
-    break;
-
-    case PROP_USER_UNIT:
-    {
-	GimpUnit     unit;
-	const TQCString *unit_strings[5];
-	float       factor;
-	TQ_INT32      digits;
-
-	unit = va_arg (args, TQ_INT32);
-
-	/* write the entire unit definition */
-	unit_strings[0] = _gimp_unit_get_identifier (gimage->gimp, unit);
-	factor          = _gimp_unit_get_factor (gimage->gimp, unit);
-	digits          = _gimp_unit_get_digits (gimage->gimp, unit);
-	unit_strings[1] = _gimp_unit_get_symbol (gimage->gimp, unit);
-	unit_strings[2] = _gimp_unit_get_abbreviation (gimage->gimp, unit);
-	unit_strings[3] = _gimp_unit_get_singular (gimage->gimp, unit);
-	unit_strings[4] = _gimp_unit_get_plural (gimage->gimp, unit);
-
-	size =
-            2 * 4 +
-            strlen (unit_strings[0]) ? strlen (unit_strings[0]) + 5 : 4 +
-            strlen (unit_strings[1]) ? strlen (unit_strings[1]) + 5 : 4 +
-            strlen (unit_strings[2]) ? strlen (unit_strings[2]) + 5 : 4 +
-            strlen (unit_strings[3]) ? strlen (unit_strings[3]) + 5 : 4 +
-            strlen (unit_strings[4]) ? strlen (unit_strings[4]) + 5 : 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_float_check_error (info, &factor, 1);
-	xcf_write_int32_check_error (info, &digits, 1);
-	xcf_write_string_check_error (info, (TQCString **) unit_strings, 5);
-    }
-    break;
-
-    case PROP_VECTORS:
-    {
-	TQ_INT32 base, length;
-	glong   pos;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-
-        /* because we don't know how much room the paths list will take
-         * we save the file position and write the length later
-         */
-        pos = info->cp;
-        xcf_write_int32_check_error (info, &length, 1);
-
-        base = info->cp;
-
-        xcf_check_error (xcf_save_vectors (info, gimage, error));
-
-        length = info->cp - base;
-
-        /* go back to the saved position and write the length */
-        xcf_check_error (xcf_seek_pos (info, pos, error));
-        xcf_write_int32 (info->fp, &length, 1, &tmp_error);
-        if (tmp_error)
-        {
-            g_propagate_error (error, tmp_error);
-            return FALSE;
-        }
-
-        xcf_check_error (xcf_seek_end (info, error));
-    }
-    break;
-
-    case PROP_TEXT_LAYER_FLAGS:
-    {
-	TQ_INT32 flags;
-
-	flags = va_arg (args, TQ_INT32);
-	size = 4;
-
-        xcf_write_prop_type_check_error (info, prop_type);
-	xcf_write_int32_check_error (info, &size, 1);
-	xcf_write_int32_check_error (info, &flags, 1);
-    }
-    break;
-    }
-
-    va_end (args);
-
-    return TRUE;
-}
-
-static bool
-xcf_save_layer (XcfInfo   *info,
-		KisImage *gimage,
-		KisLayer *layer,
-		GError   **error)
-{
-    TQ_INT32 saved_pos;
-    TQ_INT32 offset;
-
-    GError *tmp_error = NULL;
-
-    /* check and see if this is the drawable that the floating
-     *  selection is attached to.
-     */
-    if (GIMP_DRAWABLE (layer) == info->floating_sel_drawable)
-    {
-        saved_pos = info->cp;
-        xcf_check_error (xcf_seek_pos (info, info->floating_sel_offset, error));
-        xcf_write_int32_check_error (info, &saved_pos, 1);
-        xcf_check_error (xcf_seek_pos (info, saved_pos, error));
-    }
-
-    /* write out the width, height and image type information for the layer */
-    xcf_write_int32_check_error (info,
-                                 (TQ_INT32 *) &GIMP_ITEM (layer)->width, 1);
-    xcf_write_int32_check_error (info,
-                                 (TQ_INT32 *) &GIMP_ITEM (layer)->height, 1);
-    xcf_write_int32_check_error (info,
-                                 (TQ_INT32 *) &GIMP_DRAWABLE (layer)->type, 1);
-
-    /* write out the layers name */
-    xcf_write_string_check_error (info, &GIMP_OBJECT (layer)->name, 1);
-
-    /* write out the layer properties */
-    xcf_save_layer_props (info, gimage, layer, error);
-
-    /* save the current position which is where the hierarchy offset
-     *  will be stored.
-     */
-    saved_pos = info->cp;
-
-    /* write out the layer tile hierarchy */
-    xcf_check_error (xcf_seek_pos (info, info->cp + 8, error));
-    offset = info->cp;
-
-    xcf_check_error (xcf_save_hierarchy (info,
-                                         GIMP_DRAWABLE(layer)->tiles, error));
-
-    xcf_check_error (xcf_seek_pos (info, saved_pos, error));
-    xcf_write_int32_check_error (info, &offset, 1);
-    saved_pos = info->cp;
-
-    /* write out the layer tqmask */
-    if (layer->tqmask)
-    {
-        xcf_check_error (xcf_seek_end (info, error));
-        offset = info->cp;
-
-        xcf_check_error (xcf_save_channel (info,
-                                           gimage, GIMP_CHANNEL(layer->tqmask),
-                                           error));
-    }
-    else
-        offset = 0;
-
-    xcf_check_error (xcf_seek_pos (info, saved_pos, error));
-    xcf_write_int32_check_error (info, &offset, 1);
-
-    return TRUE;
-}
-
-static bool
-xcf_save_channel (XcfInfo      *info,
-		  KisImage    *gimage,
-		  GimpChannel  *channel,
-		  GError      **error)
-{
-    TQ_INT32 saved_pos;
-    TQ_INT32 offset;
-
-    GError *tmp_error = NULL;
-
-    /* check and see if this is the drawable that the floating
-     *  selection is attached to.
-     */
-    if (GIMP_DRAWABLE (channel) == info->floating_sel_drawable)
-    {
-        saved_pos = info->cp;
-        xcf_check_error (xcf_seek_pos (info, info->floating_sel_offset, error));
-        xcf_write_int32_check_error (info, &saved_pos, 1);
-        xcf_check_error (xcf_seek_pos (info, saved_pos, error));
-    }
-
-    /* write out the width and height information for the channel */
-    xcf_write_int32_check_error (info,
-                                 (TQ_INT32 *) &GIMP_ITEM (channel)->width, 1);
-    xcf_write_int32_check_error (info,
-                                 (TQ_INT32 *) &GIMP_ITEM (channel)->height, 1);
-
-    /* write out the channels name */
-    xcf_write_string_check_error (info, &GIMP_OBJECT (channel)->name, 1);
-
-    /* write out the channel properties */
-    xcf_save_channel_props (info, gimage, channel, error);
-
-    /* save the current position which is where the hierarchy offset
-     *  will be stored.
-     */
-    saved_pos = info->cp;
-
-    /* write out the channel tile hierarchy */
-    xcf_check_error (xcf_seek_pos (info, info->cp + 4, error));
-    offset = info->cp;
-
-    xcf_check_error (xcf_save_hierarchy (info,
-                                         GIMP_DRAWABLE (channel)->tiles, error));
-
-    xcf_check_error (xcf_seek_pos (info, saved_pos, error));
-    xcf_write_int32_check_error (info, &offset, 1);
-    saved_pos = info->cp;
-
-    return TRUE;
-}
-
-static TQ_INT32
-xcf_calc_levels (TQ_INT32 size,
-		 TQ_INT32 tile_size)
-{
-    int levels;
-
-    levels = 1;
-    while (size > tile_size)
-    {
-        size /= 2;
-        levels += 1;
-    }
-
-    return levels;
-}
-
-
-static bool
-xcf_save_hierarchy (XcfInfo     *info,
-		    TileManager *tiles,
-		    GError     **error)
-{
-    TQ_INT32 saved_pos;
-    TQ_INT32 offset;
-    TQ_INT32 width;
-    TQ_INT32 height;
-    TQ_INT32 bpp;
-    TQ_INT32    i;
-    TQ_INT32    nlevels;
-    TQ_INT32    tmp1, tmp2;
-
-    GError *tmp_error = NULL;
-
-    width  = tile_manager_width (tiles);
-    height = tile_manager_height (tiles);
-    bpp    = tile_manager_bpp (tiles);
-
-    xcf_write_int32_check_error (info, (TQ_INT32 *) &width, 1);
-    xcf_write_int32_check_error (info, (TQ_INT32 *) &height, 1);
-    xcf_write_int32_check_error (info, (TQ_INT32 *) &bpp, 1);
-
-    saved_pos = info->cp;
-
-    tmp1 = xcf_calc_levels (width, TILE_WIDTH);
-    tmp2 = xcf_calc_levels (height, TILE_HEIGHT);
-    nlevels = MAX (tmp1, tmp2);
-
-    xcf_check_error (xcf_seek_pos (info, info->cp + (1 + nlevels) * 4, error));
-
-    for (i = 0; i < nlevels; i++)
-    {
-        offset = info->cp;
-
-        if (i == 0)
-	{
-            /* write out the level. */
-            xcf_check_error (xcf_save_level (info, tiles, error));
-	}
-        else
-	{
-            /* fake an empty level */
-            tmp1 = 0;
-            width  /= 2;
-            height /= 2;
-            xcf_write_int32_check_error (info, (TQ_INT32 *) &width,  1);
-            xcf_write_int32_check_error (info, (TQ_INT32 *) &height, 1);
-            xcf_write_int32_check_error (info, (TQ_INT32 *) &tmp1,   1);
-	}
-
-        /* seek back to where we are to write out the next
-         *  level offset and write it out.
-         */
-        xcf_check_error (xcf_seek_pos (info, saved_pos, error));
-        xcf_write_int32_check_error (info, &offset, 1);
-
-        /* increment the location we are to write out the
-         *  next offset.
-         */
-        saved_pos = info->cp;
-
-        /* seek to the end of the file which is where
-         *  we will write out the next level.
-         */
-        xcf_check_error (xcf_seek_end (info, error));
-    }
-
-    /* write out a '0' offset position to indicate the end
-     *  of the level offsets.
-     */
-    offset = 0;
-    xcf_check_error (xcf_seek_pos (info, saved_pos, error));
-    xcf_write_int32_check_error (info, &offset, 1);
-
-    return TRUE;
-}
-
-static bool
-xcf_save_level (XcfInfo     *info,
-		TileManager *level,
-		GError     **error)
-{
-    TQ_INT32  saved_pos;
-    TQ_INT32  offset;
-    TQ_INT32  width;
-    TQ_INT32  height;
-    TQ_UINT32    ntiles;
-    TQ_INT32     i;
-    guchar  *rlebuf;
-
-    GError *tmp_error = NULL;
-
-    width  = tile_manager_width (level);
-    height = tile_manager_height (level);
-
-    xcf_write_int32_check_error (info, (TQ_INT32 *) &width, 1);
-    xcf_write_int32_check_error (info, (TQ_INT32 *) &height, 1);
-
-    saved_pos = info->cp;
-
-    /* allocate a temporary buffer to store the rle data before it is
-       written to disk */
-    rlebuf =
-        g_malloc (TILE_WIDTH * TILE_HEIGHT * tile_manager_bpp (level) * 1.5);
-
-    if (level->tiles)
-    {
-        ntiles = level->ntile_rows * level->ntile_cols;
-        xcf_check_error (xcf_seek_pos (info, info->cp + (ntiles + 1) * 4, error));
-
-        for (i = 0; i < ntiles; i++)
-	{
-            /* save the start offset of where we are writing
-             *  out the next tile.
-             */
-            offset = info->cp;
-
-            /* write out the tile. */
-            switch (info->compression)
-	    {
-	    case COMPRESS_NONE:
-                xcf_check_error(xcf_save_tile (info, level->tiles[i], error));
-                break;
-	    case COMPRESS_RLE:
-                xcf_check_error (xcf_save_tile_rle (info, level->tiles[i],
-                                                    rlebuf, error));
-                break;
-	    case COMPRESS_ZLIB:
-                g_error ("xcf: zlib compression unimplemented");
-                break;
-	    case COMPRESS_FRACTAL:
-                g_error ("xcf: fractal compression unimplemented");
-                break;
-	    }
-
-            /* seek back to where we are to write out the next
-             *  tile offset and write it out.
-             */
-            xcf_check_error (xcf_seek_pos (info, saved_pos, error));
-            xcf_write_int32_check_error (info, &offset, 1);
-
-            /* increment the location we are to write out the
-             *  next offset.
-             */
-            saved_pos = info->cp;
-
-            /* seek to the end of the file which is where
-             *  we will write out the next tile.
-             */
-            xcf_check_error (xcf_seek_end (info, error));
-	}
-    }
-
-    g_free (rlebuf);
-
-    /* write out a '0' offset position to indicate the end
-     *  of the level offsets.
-     */
-    offset = 0;
-    xcf_check_error (xcf_seek_pos (info, saved_pos, error));
-    xcf_write_int32_check_error (info, &offset, 1);
-
-    return TRUE;
-
-}
-
-static bool
-xcf_save_tile (XcfInfo  *info,
-	       Tile     *tile,
-	       GError  **error)
-{
-    GError *tmp_error = NULL;
-
-    tile_lock (tile);
-    xcf_write_int8_check_error (info, tile_data_pointer (tile, 0, 0),
-                                tile_size (tile));
-    tile_release (tile, FALSE);
-
-    return TRUE;
-}
-
-static bool
-xcf_save_tile_rle (XcfInfo  *info,
-		   Tile     *tile,
-		   guchar   *rlebuf,
-		   GError  **error)
-{
-    guchar *data, *t;
-    unsigned int last;
-    TQ_INT32 state;
-    TQ_INT32 length;
-    TQ_INT32 count;
-    TQ_INT32 size;
-    TQ_INT32 bpp;
-    TQ_INT32 i, j;
-    TQ_INT32 len = 0;
-
-    GError *tmp_error = NULL;
-
-    tile_lock (tile);
-
-    bpp = tile_bpp (tile);
-
-    for (i = 0; i < bpp; i++)
-    {
-        data = (guchar*) tile_data_pointer (tile, 0, 0) + i;
-
-        state = 0;
-        length = 0;
-        count = 0;
-        size = tile_ewidth(tile) * tile_eheight(tile);
-        last = -1;
-
-        while (size > 0)
-	{
-            switch (state)
-	    {
-	    case 0:
-                /* in state 0 we try to find a long sequence of
-                 *  matching values.
-                 */
-                if ((length == 32768) ||
-                    ((size - length) <= 0) ||
-                    ((length > 1) && (last != *data)))
-		{
-                    count += length;
-                    if (length >= 128)
-		    {
-                        rlebuf[len++] = 127;
-                        rlebuf[len++] = (length >> 8);
-                        rlebuf[len++] = length & 0x00FF;
-                        rlebuf[len++] = last;
-		    }
-                    else
-		    {
-                        rlebuf[len++] = length - 1;
-                        rlebuf[len++] = last;
-		    }
-                    size -= length;
-                    length = 0;
-		}
-                else if ((length == 1) && (last != *data))
-                    state = 1;
-                break;
-
-	    case 1:
-                /* in state 1 we try and find a long sequence of
-                 *  non-matching values.
-                 */
-                if ((length == 32768) ||
-                    ((size - length) == 0) ||
-                    ((length > 0) && (last == *data) &&
-                     ((size - length) == 1 || last == data[bpp])))
-		{
-                    count += length;
-                    state = 0;
-
-                    if (length >= 128)
-		    {
-                        rlebuf[len++] = 255 - 127;
-                        rlebuf[len++] = (length >> 8);
-                        rlebuf[len++] = length & 0x00FF;
-		    }
-                    else
-		    {
-                        rlebuf[len++] = 255 - (length - 1);
-		    }
-
-                    t = data - length * bpp;
-                    for (j = 0; j < length; j++)
-		    {
-                        rlebuf[len++] = *t;
-                        t += bpp;
-		    }
-
-                    size -= length;
-                    length = 0;
-		}
-                break;
-	    }
-
-            if (size > 0) {
-                length += 1;
-                last = *data;
-                data += bpp;
-            }
-	}
-
-        if (count != (tile_ewidth (tile) * tile_eheight (tile)))
-            g_message ("xcf: uh oh! xcf rle tile saving error: %d", count);
-    }
-    xcf_write_int8_check_error (info, rlebuf, len);
-    tile_release (tile, FALSE);
-
-    return TRUE;
-}
-
-static bool
-xcf_save_parasite (XcfInfo       *info,
-                   KisAnnotation  *parasite,
-                   GError       **error)
-{
-    if (gimp_parasite_is_persistent (parasite))
-    {
-        GError *tmp_error = NULL;
-
-        xcf_write_string_check_error (info, &parasite->name,  1);
-        xcf_write_int32_check_error  (info, &parasite->flags, 1);
-        xcf_write_int32_check_error  (info, &parasite->size,  1);
-        xcf_write_int8_check_error   (info, parasite->data, parasite->size);
-    }
-
-    return TRUE;
-}
-
-typedef struct
-{
-    XcfInfo *info;
-    GError  *error;
-} XcfParasiteData;
-
-static void
-xcf_save_parasite_func (TQCString           *key,
-                        KisAnnotation    *parasite,
-                        XcfParasiteData *data)
-{
-    if (! data->error)
-        xcf_save_parasite (data->info, parasite, &data->error);
-}
-
-static bool
-xcf_save_parasite_list (XcfInfo           *info,
-                        KisAnnotationList  *list,
-                        GError           **error)
-{
-    XcfParasiteData data;
-
-    data.info  = info;
-    data.error = NULL;
-
-    gimp_parasite_list_foreach (list, (GHFunc) xcf_save_parasite_func, &data);
-
-    if (data.error)
-    {
-        g_propagate_error (error, data.error);
-        return FALSE;
-    }
-
-    return TRUE;
-}
-
-static bool
-xcf_save_old_paths (XcfInfo    *info,
-                    KisImage  *gimage,
-                    GError    **error)
-{
-    GimpVectors *active_vectors;
-    TQ_INT32      num_paths;
-    TQ_INT32      active_index = 0;
-    GList       *list;
-    GError      *tmp_error = NULL;
-
-    /* Write out the following:-
-     *
-     * last_selected_row (TQ_INT32)
-     * number_of_paths (TQ_INT32)
-     *
-     * then each path:-
-     */
-
-    num_paths = gimp_container_num_tqchildren (gimage->vectors);
-
-    active_vectors = gimp_image_get_active_vectors (gimage);
-
-    if (active_vectors)
-        active_index = gimp_container_get_child_index (gimage->vectors,
-                                                       GIMP_OBJECT (active_vectors));
-
-    xcf_write_int32_check_error (info, &active_index, 1);
-    xcf_write_int32_check_error (info, &num_paths,    1);
-
-    for (list = GIMP_LIST (gimage->vectors)->list;
-         list;
-         list = g_list_next (list))
-    {
-        GimpVectors            *vectors = list->data;
-        TQCString                  *name;
-        TQ_INT32                 locked;
-        TQ_UINT8                  state;
-        TQ_INT32                 version;
-        TQ_INT32                 pathtype;
-        TQ_INT32                 tattoo;
-        GimpVectorsCompatPoint *points;
-        TQ_INT3232                  num_points;
-        TQ_INT3232                  closed;
-        TQ_INT32                    i;
-
-        /*
-         * name (string)
-         * locked (TQ_INT32)
-         * state (TQCString)
-         * closed (TQ_INT32)
-         * number points (TQ_INT32)
-         * version (TQ_INT32)
-         * pathtype (TQ_INT32)
-         * tattoo (TQ_INT32)
-         * then each point.
-         */
-
-        points = gimp_vectors_compat_get_points (vectors, &num_points, &closed);
-
-        /* if no points are generated because of a faulty path we should
-         * skip saving the path - this is unfortunately impossible, because
-         * we already saved the number of paths and I wont start seeking
-         * around to fix that cruft  */
-
-        name     = (TQCString *) gimp_object_get_name (GIMP_OBJECT (vectors));
-        locked   = gimp_item_get_linked (GIMP_ITEM (vectors));
-        state    = closed ? 4 : 2;  /* EDIT : ADD  (editing state, 1.2 compat) */
-        version  = 3;
-        pathtype = 1;  /* BEZIER  (1.2 compat) */
-        tattoo   = gimp_item_get_tattoo (GIMP_ITEM (vectors));
-
-        xcf_write_string_check_error (info, &name,       1);
-        xcf_write_int32_check_error  (info, &locked,     1);
-        xcf_write_int8_check_error   (info, &state,      1);
-        xcf_write_int32_check_error  (info, &closed,     1);
-        xcf_write_int32_check_error  (info, &num_points, 1);
-        xcf_write_int32_check_error  (info, &version,    1);
-        xcf_write_int32_check_error  (info, &pathtype,   1);
-        xcf_write_int32_check_error  (info, &tattoo,     1);
-
-        for (i = 0; i < num_points; i++)
-        {
-            float x;
-            float y;
-
-            x = points[i].x;
-            y = points[i].y;
-
-            /*
-             * type (TQ_INT32)
-             * x (float)
-             * y (float)
-             */
-
-            xcf_write_int32_check_error (info, &points[i].type, 1);
-            xcf_write_float_check_error (info, &x,              1);
-            xcf_write_float_check_error (info, &y,              1);
-        }
-
-        g_free (points);
-    }
-
-    return TRUE;
-}
-
-static bool
-xcf_save_vectors (XcfInfo    *info,
-                  KisImage  *gimage,
-                  GError    **error)
-{
-    GimpVectors *active_vectors;
-    TQ_INT32      version      = 1;
-    TQ_INT32      active_index = 0;
-    TQ_INT32      num_paths;
-    GList       *list;
-    GList       *stroke_list;
-    GError      *tmp_error = NULL;
-
-    /* Write out the following:-
-     *
-     * version (TQ_INT32)
-     * active_index (TQ_INT32)
-     * num_paths (TQ_INT32)
-     *
-     * then each path:-
-     */
-
-    active_vectors = gimp_image_get_active_vectors (gimage);
-
-    if (active_vectors)
-        active_index = gimp_container_get_child_index (gimage->vectors,
-                                                       GIMP_OBJECT (active_vectors));
-
-    num_paths = gimp_container_num_tqchildren (gimage->vectors);
-
-    xcf_write_int32_check_error (info, &version,      1);
-    xcf_write_int32_check_error (info, &active_index, 1);
-    xcf_write_int32_check_error (info, &num_paths,    1);
-
-    for (list = GIMP_LIST (gimage->vectors)->list;
-         list;
-         list = g_list_next (list))
-    {
-        GimpVectors      *vectors = list->data;
-        KisAnnotationList *parasites;
-        TQCString            *name;
-        TQ_INT32           tattoo;
-        TQ_INT32           visible;
-        TQ_INT32           linked;
-        TQ_INT32           num_parasites;
-        TQ_INT32           num_strokes;
-
-        /*
-         * name (string)
-         * tattoo (TQ_INT32)
-         * visible (TQ_INT32)
-         * linked (TQ_INT32)
-         * num_parasites (TQ_INT32)
-         * num_strokes (TQ_INT32)
-         *
-         * then each parasite
-         * then each stroke
-         */
-
-        parasites = GIMP_ITEM (vectors)->parasites;
-
-        name          = (TQCString *) gimp_object_get_name (GIMP_OBJECT (vectors));
-        visible       = gimp_item_get_visible (GIMP_ITEM (vectors));
-        linked        = gimp_item_get_linked (GIMP_ITEM (vectors));
-        tattoo        = gimp_item_get_tattoo (GIMP_ITEM (vectors));
-        num_parasites = gimp_parasite_list_persistent_length (parasites);
-        num_strokes   = g_list_length (vectors->strokes);
-
-        xcf_write_string_check_error (info, &name,          1);
-        xcf_write_int32_check_error  (info, &tattoo,        1);
-        xcf_write_int32_check_error  (info, &visible,       1);
-        xcf_write_int32_check_error  (info, &linked,        1);
-        xcf_write_int32_check_error  (info, &num_parasites, 1);
-        xcf_write_int32_check_error  (info, &num_strokes,   1);
-
-        xcf_check_error (xcf_save_parasite_list (info, parasites, error));
-
-        for (stroke_list = g_list_first (vectors->strokes);
-             stroke_list;
-             stroke_list = g_list_next (stroke_list))
-        {
-            GimpStroke *stroke;
-            TQ_INT32     stroke_type;
-            TQ_INT32     closed;
-            TQ_INT32     num_axes;
-            GArray     *control_points;
-            TQ_INT32        i;
-
-            TQ_INT32     type;
-            float      coords[6];
-
-            /*
-             * stroke_type (TQ_INT32)
-             * closed (TQ_INT32)
-             * num_axes (TQ_INT32)
-             * num_control_points (TQ_INT32)
-             *
-             * then each control point.
-             */
-
-            stroke = GIMP_STROKE (stroke_list->data);
-
-            if (GIMP_IS_BEZIER_STROKE (stroke))
-            {
-                stroke_type = XCF_STROKETYPE_BEZIER_STROKE;
-                num_axes = 2;   /* hardcoded, might be increased later */
-            }
-            else
-            {
-                g_printerr ("Skipping unknown stroke type!\n");
-                continue;
-            }
-
-            control_points = gimp_stroke_control_points_get (stroke, &closed);
-
-            xcf_write_int32_check_error (info, &stroke_type,         1);
-            xcf_write_int32_check_error (info, &closed,              1);
-            xcf_write_int32_check_error (info, &num_axes,            1);
-            xcf_write_int32_check_error (info, &control_points->len, 1);
-
-            for (i = 0; i < control_points->len; i++)
-            {
-                GimpAnchor *anchor;
-
-                anchor = & (g_array_index (control_points, GimpAnchor, i));
-
-                type      = anchor->type;
-                coords[0] = anchor->position.x;
-                coords[1] = anchor->position.y;
-                coords[2] = anchor->position.pressure;
-                coords[3] = anchor->position.xtilt;
-                coords[4] = anchor->position.ytilt;
-                coords[5] = anchor->position.wheel;
-
-                /*
-                 * type (TQ_INT32)
-                 *
-                 * the first num_axis elements of:
-                 * [0] x (float)
-                 * [1] y (float)
-                 * [2] pressure (float)
-                 * [3] xtilt (float)
-                 * [4] ytilt (float)
-                 * [5] wheel (float)
-                 */
-
-                xcf_write_int32_check_error (info, &type, 1);
-                xcf_write_float_check_error (info, coords, num_axes);
-            }
-
-            g_array_free (control_points, TRUE);
-        }
-    }
-
-    return TRUE;
-}
diff --git a/filters/krita/xcf/xcf/xcf-save.h b/filters/krita/xcf/xcf/xcf-save.h
deleted file mode 100644
index cc49d2d36..000000000
--- a/filters/krita/xcf/xcf/xcf-save.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* The GIMP -- an image manipulation program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef __XCF_SAVE_H__
-#define __XCF_SAVE_H__
-
-
-void   xcf_save_choose_format (XcfInfo   *info,
-			       KisImage *gimage);
-TQ_INT32   xcf_save_image         (XcfInfo   *info,
-			       KisImage *gimage);
-
-
-#endif  /* __XCF_SAVE_H__ */
diff --git a/filters/krita/xcf/xcf/xcf-seek.cc b/filters/krita/xcf/xcf/xcf-seek.cc
deleted file mode 100644
index a24271f5e..000000000
--- a/filters/krita/xcf/xcf/xcf-seek.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-/* The GIMP -- an image manipulation program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <errno.h>
-
-#include <glib-object.h>
-
-#include "core/core-types.h"
-
-#include "xcf-private.h"
-#include "xcf-seek.h"
-
-#include "gimp-intl.h"
-
-bool
-xcf_seek_pos (XcfInfo  *info,
-	      TQ_UINT32     pos,
-	      GError  **error)
-{
-    if (info->cp != pos)
-    {
-        info->cp = pos;
-        if (fseek (info->fp, info->cp, SEEK_SET) == -1)
-        {
-            g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno),
-                         _("Could not seek in XCF file: %s"),
-                         g_strerror (errno));
-
-            return FALSE;
-        }
-    }
-
-    return TRUE;
-}
-
-bool
-xcf_seek_end (XcfInfo  *info,
-              GError  **error)
-{
-    if (fseek (info->fp, 0, SEEK_END) == -1)
-    {
-        g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno),
-                     _("Could not seek in XCF file: %s"),
-                     g_strerror (errno));
-
-        return FALSE;
-    }
-
-    info->cp = ftell (info->fp);
-
-    if (fseek (info->fp, 0, SEEK_END) == -1)
-    {
-        g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno),
-                     _("Could not seek in XCF file: %s"),
-                     g_strerror (errno));
-
-        return FALSE;
-    }
-
-    return TRUE;
-}
diff --git a/filters/krita/xcf/xcf/xcf-seek.h b/filters/krita/xcf/xcf/xcf-seek.h
deleted file mode 100644
index 1bb7b7a92..000000000
--- a/filters/krita/xcf/xcf/xcf-seek.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* The GIMP -- an image manipulation program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef __XCF_SEEK_H__
-#define __XCF_SEEK_H__
-
-
-bool   xcf_seek_pos (XcfInfo *info,
-		         TQ_UINT32    pos,
-		         GError **error);
-bool   xcf_seek_end (XcfInfo *info,
-                         GError **error);
-
-
-#endif  /* __XCF_SEEK_H__ */
diff --git a/filters/krita/xcf/xcf/xcf-write.cc b/filters/krita/xcf/xcf/xcf-write.cc
deleted file mode 100644
index 4010ab18f..000000000
--- a/filters/krita/xcf/xcf/xcf-write.cc
+++ /dev/null
@@ -1,104 +0,0 @@
-/* The GIMP -- an image manipulation program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <string.h> /* strlen */
-#include <errno.h>
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#include <netinet/in.h>
-#include <limits.h>
-#include <stdlib.h>
-#include <cfloat>
-
-#include "xcf-write.h"
-
-TQ_UINT32 xcf_write_int32  (FILE *fp, TQ_INT32 *data, TQ_INT32 count);
-{
-    TQ_INT32  tmp;
-    TQ_INT32    i;
-
-    if (count > 0)
-    {
-        for (i = 0; i < count; i++)
-        {
-            tmp = htonl (data[i]);
-            xcf_write_int8 (fp, (TQ_UINT8*) &tmp, 4);
-
-            if (fp->status() != IO_Ok)
-            {
-                return i * 4;
-            }
-        }
-    }
-
-    return count * 4;
-}
-
-TQ_UINT32 xcf_write_float  (FILE *fp, float *data, TQ_INT32 count);
-{
-    return xcf_write_int32 (fp, (TQ_INT32 *)((void *)data), count, error);
-}
-
-TQ_UINT32 xcf_write_int8 (FILE *fp, TQ_UINT8 *data, TQ_INT32 count);
-{
-    TQ_INT32  bytes;
-    bytes = fp->writeBlock( data, count );
-    return bytes;
-}
-
-TQ_UINT32 xcf_write_string (FILE *fp, TQCString *data, TQ_INT32 count);
-{
-    GError  *tmp_error = NULL;
-    TQ_INT32  tmp;
-    TQ_UINT32    total;
-    TQ_INT32     i;
-
-    total = 0;
-    for (i = 0; i < count; i++)
-    {
-        if (data[i])
-            tmp = strlen (data[i]) + 1;
-        else
-            tmp = 0;
-
-        xcf_write_int32 (fp, &tmp, 1, &tmp_error);
-        if (tmp_error)
-        {
-            g_propagate_error (error, tmp_error);
-            return total;
-        }
-
-        if (tmp > 0)
-            xcf_write_int8 (fp, (TQ_UINT8*) data[i], tmp, &tmp_error);
-        if (tmp_error)
-        {
-            g_propagate_error (error, tmp_error);
-            return total;
-        }
-
-        total += 4 + tmp;
-    }
-
-    return total;
-}
diff --git a/filters/krita/xcf/xcf/xcf-write.h b/filters/krita/xcf/xcf/xcf-write.h
deleted file mode 100644
index 8e21a08e5..000000000
--- a/filters/krita/xcf/xcf/xcf-write.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* The GIMP -- an image manipulation program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef __XCF_WRITE_H__
-#define __XCF_WRITE_H__
-
-#include <tqstring.h>
-#include <tqstringlist.h>
-#include <tqfile.h>
-
-// Write count integers to the file
-TQ_UINT32 xcf_write_int32 (TQFile *fp, TQ_INT32 *data, TQ_INT32 count);
-
-// Write count of floats to the file
-TQ_UINT32 xcf_write_float (TQFile *fp, float *data, TQ_INT32 count);
-
-// Write count chars to the file
-TQ_UINT32 xcf_write_int8 (TQFile *fp, TQ_UINT8 *data, TQ_INT32 count);
-
-// Write count zero-terminated strings to the file, each string preceded by its length as an integer
-TQ_UINT32 xcf_write_string (TQFile *fp, TQCString *data, TQ_INT32 count);
-
-
-#endif  /* __XCF_WRITE_H__ */
diff --git a/filters/krita/xcf/xcfexport.cpp b/filters/krita/xcf/xcfexport.cpp
deleted file mode 100644
index 99aaa5560..000000000
--- a/filters/krita/xcf/xcfexport.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#include <xcfexport.h>
-
-#include <kurl.h>
-#include <kgenericfactory.h>
-
-#include <KoDocument.h>
-#include <KoFilterChain.h>
-
-#include <kis_doc.h>
-#include <kis_image.h>
-#include <kis_annotation.h>
-#include <kis_types.h>
-#include <kis_xcf_converter.h>
-
-typedef KGenericFactory<XCFExport, KoFilter> XCFExportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkritaxcfexport, XCFExportFactory("kofficefilters"))
-
-XCFExport::XCFExport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-XCFExport::~XCFExport()
-{
-}
-
-KoFilter::ConversiontqStatus XCFExport::convert(const TQCString& from, const TQCString& to)
-{
-    kdDebug(41008) << "xcf export! From: " << from << ", To: " << to << "\n";
-    
-    if (from != "application/x-krita")
-        return KoFilter::NotImplemented;
-
-    KisDoc *output = dynamic_cast<KisDoc*>(m_chain->inputDocument());
-    TQString filename = m_chain->outputFile();
-    
-    if (!output)
-        return KoFilter::CreationError;
-    
-    
-    if (filename.isEmpty()) return KoFilter::FileNotFound;
-
-    KURL url(filename);
-
-    KisImageSP img = output->currentImage();
-    if (!img) return KoFilter::ParsingError;
-
-    KisXCFConverter ib(output, output->undoAdapter());
-
-    vKisAnnotationSP_it beginIt = img->beginAnnotations();
-    vKisAnnotationSP_it endIt = img->endAnnotations();
-    
-    if (ib.buildFile(url, img, beginIt, endIt) == KisImageBuilder_RESULT_OK) {
-        return KoFilter::OK;
-    }
-
-    return KoFilter::InternalError;
-}
-
-#include <xcfexport.moc>
-
diff --git a/filters/krita/xcf/xcfexport.h b/filters/krita/xcf/xcfexport.h
deleted file mode 100644
index b6acf737b..000000000
--- a/filters/krita/xcf/xcfexport.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef XCFEXPORT_H_
-#define XCFEXPORT_H_
-
-#include <KoFilter.h>
-
-class XCFExport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    XCFExport(KoFilter *tqparent, const char *name, const TQStringList&);
-    virtual ~XCFExport();
-
-public:
-    virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif // XCFEXPORT_H_
-
diff --git a/filters/krita/xcf/xcfimport.cpp b/filters/krita/xcf/xcfimport.cpp
deleted file mode 100644
index 1a7d7947b..000000000
--- a/filters/krita/xcf/xcfimport.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#include <tqstring.h>
-
-#include <xcfimport.h>
-#include <kgenericfactory.h>
-#include <KoDocument.h>
-#include <KoFilterChain.h>
-
-#include <kis_doc.h>
-#include <kis_view.h>
-#include <kis_xcf_converter.h>
-#include <kis_progress_display_interface.h>
-
-typedef KGenericFactory<XCFImport, KoFilter> XCFImportFactory;
-K_EXPORT_COMPONENT_FACTORY(libkritaxcfimport, XCFImportFactory("kofficefilters"))
-
-XCFImport::XCFImport(KoFilter *, const char *, const TQStringList&) : KoFilter()
-{
-}
-
-XCFImport::~XCFImport()
-{
-}
-
-KoFilter::ConversiontqStatus XCFImport::convert(const TQCString&, const TQCString& to)
-{
-    kdDebug(41008) << "Importing using XCFImport!\n";
-
-    if (to != "application/x-krita")
-        return KoFilter::BadMimeType;
-
-    KisDoc * doc = dynamic_cast<KisDoc*>(m_chain -> outputDocument());
-    KisView * view = static_cast<KisView*>(doc -> views().getFirst());
-
-    TQString filename = m_chain -> inputFile();
-
-    if (!doc)
-        return KoFilter::CreationError;
-
-    doc -> prepareForImport();
-
-
-    if (!filename.isEmpty()) {
-
-        KURL url(filename);
-
-        if (url.isEmpty())
-            return KoFilter::FileNotFound;
-
-        KisXCFConverter ib(doc, doc -> undoAdapter());
-
-        switch (ib.buildImage(url)) {
-            case KisImageBuilder_RESULT_UNSUPPORTED:
-                return KoFilter::NotImplemented;
-                break;
-            case KisImageBuilder_RESULT_INVALID_ARG:
-                return KoFilter::BadMimeType;
-                break;
-            case KisImageBuilder_RESULT_NO_URI:
-            case KisImageBuilder_RESULT_NOT_LOCAL:
-                return KoFilter::FileNotFound;
-                break;
-            case KisImageBuilder_RESULT_BAD_FETCH:
-            case KisImageBuilder_RESULT_EMPTY:
-                return KoFilter::ParsingError;
-                break;
-            case KisImageBuilder_RESULT_FAILURE:
-                return KoFilter::InternalError;
-                break;
-            case KisImageBuilder_RESULT_OK:
-                doc -> setCurrentImage( ib.image());
-                return KoFilter::OK;
-            default:
-                break;
-        }
-
-    }
-    return KoFilter::StorageCreationError;
-}
-
-#include <xcfimport.moc>
-
diff --git a/filters/krita/xcf/xcfimport.h b/filters/krita/xcf/xcfimport.h
deleted file mode 100644
index 038e76043..000000000
--- a/filters/krita/xcf/xcfimport.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef XCFIMPORT_H_
-#define XCFIMPORT_H_
-
-#include <KoFilter.h>
-
-class XCFImport : public KoFilter {
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    XCFImport(KoFilter *tqparent, const char *name, const TQStringList&);
-    virtual ~XCFImport();
-
-public:
-    virtual KoFilter::ConversiontqStatus convert(const TQCString& from, const TQCString& to);
-};
-
-#endif // XCFIMPORT_H_
-
diff --git a/krita/AUTHORS b/krita/AUTHORS
deleted file mode 100644
index 3ef41cdea..000000000
--- a/krita/AUTHORS
+++ /dev/null
@@ -1,20 +0,0 @@
-Adrian Page <Adrian.Page@tesco.net>
-Andrew Richards <physajr@phys.canterbury.ac.nz>
-Bart Coppens <kde@bartcoppens.be>
-Boudewijn Rempt <boud@valdyas.org>
-Carsten Pfeiffer <pfeiffer@kde.org>
-Casper Boemann <cbr@boemann.dk>
-Cyrille Berger <cyb@lepi.org>
-Danny Allen <dannya40uk@yahoo.co.uk>
-Dirk Schoenberger <dirk.schoenberger@sz-online.de>
-Gábor Lehel <illissius@gmail.com>
-John Califf <jcaliff@compuzone.net>
-Matthias Elter <elter@kde.org>
-Melchior Franz <melchior@kde.org>
-Michael Koch <koch@kde.org>
-Michael Thaler <michael.thaler@ph.tum.de> 
-Patrick Julien <freak@codepimps.org>
-Roger Larsson <roger.larsson@norran.net>
-Sven Langkamp <longamp@reallygood.de>
-
-Current maintainer: Boudewijn Rempt <boud@valdyas.org>
diff --git a/krita/ChangeLog b/krita/ChangeLog
deleted file mode 100644
index 15793398e..000000000
--- a/krita/ChangeLog
+++ /dev/null
@@ -1 +0,0 @@
-We really should use cvs2changelog or something like that...
diff --git a/krita/HACKING b/krita/HACKING
deleted file mode 100644
index e1c7262bc..000000000
--- a/krita/HACKING
+++ /dev/null
@@ -1,93 +0,0 @@
-Since 1999, people have been hacking on Krita. Everyone brought their
-own coding style, their own code conventions, their own likes and
-dislikes. Me, (Boudewijn that is), I like indents of four spaces, and
-no scope prefixes for variables. However, in the interests of
-consistency, these are the rules new code should adhere to:
-
-
-Indentation
-
-	With four spaces. Use the default Java indentation
-	style of (X)Emacs or KDevelop -- also for brace placement.
-
-Includes
-
-	Avoid as much as possible #includes in header files; use forward declarations
-	of classes.
-
-Initializers
-
-	Avoid as much as possible initializers in the body of the constructor. Use
-	initializer lists instead.
-
-Scope prefixes
-
-	Use only m_ for class-level variables. No other scope prefixes; no g_, l_,
-	no 'p' for pointer variables.
-
-Shared pointers
-
-	Use shared pointers wherever possible.
-
-Getter/setter
-
-	Krita doesn't use Qt's properties -- yet. If you want to introduce use of
-	properties, convert any and all classes in Krita before committing.
-
-	Getter/setters are named 'x() for getters and setX(int x) for setters. If you
-	come across violations of this rule, change the code.	
-
-Class naming
-
-	If you use a well-known design pattern, name the class according to the design
-	pattern. All files should start with 'kis_', all classes with the 'Kis' prefix.
-	In filenames, separate words with an underscore; in classnames use capital letters. 
-	Example: kis_new_class.h/KisNewClass.
-
-	The only exception to this rule are interfaces.
-	Example: kis_tool.h/KisToolInterface.
-
-Function naming
-
-	Functions should be named in camelBackedFashion, to conform to Qt's standards.
-	If you encounter functions in c_style_like_this, feel free to rename. Also:
-	verbNoun -- i.e., rotateLayer, not layer_rotate. The latter is a true c-ism,
-	introduced by a language that needs to prefix the 'class' name to every function
-	in order to have something that not quite OO.
-
-Variable/Parameter names
-
-	Variable/parameter names start with an undercast letter. A name composed of different
-	words is done in camelBackedStyle.
-
-Designer
-
-	Krita has started to use designer. All dialogs and all widgets that have a tqlayout
-	manager must be done in designer. We don't add code nor add signal/slot connections
-	in designer
-
-Enums
-
-	All enums should be prefixed with 'enum'.
-
-Namespaces
-
-	Currently, we only use anonymous (right term?) namespaces for things like undo
-	commands. For the rest, some classes have a 'Kis' prefix, others don't. This should
-	be made consistent, and we might want to use namespaces to keep all of Krita
-	inside.
-
-Files and classes
-
-	It's preferred (and strongly preferred) to have only one class per .h/.cpp file.
-	(Which is logical, because otherwise you won't be able to keep to the naming scheme.)
-
-Spaces
-
-	Keep the source airy and open. (However, maybe I was wrong in wanting spaces around ->...)
-
-Slots and Q_SIGNALS
-
-	Prefix Q_SLOTS with slot and Q_SIGNALS with sig: slotUpdateSelection, sigSelectionUpdated.
-
-Boudewijn Rempt
\ No newline at end of file
diff --git a/krita/IMAGE_LIBRARIES b/krita/IMAGE_LIBRARIES
deleted file mode 100644
index 4b9bb2e1c..000000000
--- a/krita/IMAGE_LIBRARIES
+++ /dev/null
@@ -1,259 +0,0 @@
-WARNING: OBSOLETE (Krita's internal code has become much better by now)
-
-From time to time, people come up with the suggestion to use an
-existing imaging library with Krita, to replace our own core. This
-file contains a list of all libraries known to me, and a short
-evaluation. 
-
-Perhaps, one day, we will decide to either use an existing library, or
-remodel our core after one of those. Of the libraries present, except
-for our own Krita, Vigra look like it's the best bet from a technical
-point of view, with Vips a good runner-up.
-
-
-* Krita  (http://koffice.kde.org/krita)
-
-Krita contains its own 2D image library, consisting of the tile
-manager, the layer classes and KisPainter. We really should separate
-this 2d lib from the interface code, and put it in a real lib with 
-a well-defined interface.
-
-Advantages:
-
-	- Already works
-	- Optimized for interactive work
-	- Allows different colour models
-	- Uses GraphicsMagick or ImageMagick for loading and saving.
-
-Disadvantages:
-	
-	- Does not work well with different channel depths
-	- Not integrated with CMS
-	- TileManager complicated and slow for pixel reading and
-	  writing.
-	  
-* Gimp (http://www.gimp.org)
-
-The Gimp contains a complex core that allows interactive painting of
-images with a channel depth of 8 bits.
-
-Advantages:
-
-	- Well tested, very complete
-	- Optimized for interactive usage
-
-Disadvantages:
-
-	- Written in C.
-	- Not readily available as a library.
-	- Depends on glib and gtk
-	- 8-bit only
-	- No colour models
-	- Has problems handling really large images
-
-* Vigra (http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/)
-
-Vigra is a C++ imaging library written by Ullrich Koetthe to
-demonstrate his Phd thesis on flexible image algorithms.
-
-Advantages:
-
-	- Supports very large images
-	- Supports colour models
-	- Supports different bit depths through templating
-	- C++
-	- Relatively small
-	- Relatively well-documented
-
-Disadvantages:
-
-	- License incompatible with GPL?
-	- Not optimized for interactive use
-	- Unsure about future development since this was a research
-	  project.
-
-* Vips (http://www.vips.ecs.soton.ac.uk/)
-
-Vips is a C library with a C++ layer. It has been designed for
-handling very large images, mainly in the context of research into
-paintings in museums like the National Gallery. It comes with a gtk2
-gui.
-
-Advantages:
-
-	- Handles very large images
-	- Handles colour models
-	- Handles different bit depths
-	- C++ interface
-
-Disadvantages:
-
-	- Not optimized for paintbox type apps (even though it is
-	  possible).
-	- Very large.
-
-* VXL (http://vxl.sourceforge.net/)
-
-VXL is a collection of small libraries that are used for compution
-vision and imaging purposes in an academic setting.
-
-Advantages:
-
-	- Handles very large images
-	- C++
-
-Disadvantages:
-
-	- Not recently updated
-	- Comes with its own core libraries that replace standard C++
-	- Optimized for simple rgb images.
-	- No license at all
-	- Badly documented
-
-* CImg (http://cimg.sourceforge.net/)
-
-CImg is a very cool, very small library that offers some extremely
-innovative image effects, like inpainting of damaged or noise images.
-
-Advantages:
-	
-	- Small
-	- GPL
-	- Cool stuff
-
-Disadvantages:
-
-	- Everything, including GUI stuff, in one header file.
-	- badly documented.
-
-
-* Gegl (http://www.gegl.org/)
-
-Gegl was intended to become the Gimp 2.0 core, but development had
-stalled so much that the move to Gegl didn't happen before Gimp 2.0.
-However, the Thawte millionaire whose name has escaped me, has
-promised to support gegl development financially, freeing the
-developer to work full-time on it. It is, more or less, an attempt to
-write a templated library in C++ with the help of a custom language to
-describe image operations.
-
-Advantages:
-	
-	- It's got money behind it
-	- Small
-	- Optimized for interactive use
-
-Disadvantages:
-
-	- Not finished yet
-	- C
-	- Complex hack around the fact that C is a low-level language
-
-* libart_lgpl (http://www.levien.com/libart/)
-
-Libart isn't really an image library, but rather a canvas that can be
-used to paint images on. It is optimized for vector graphics, and is
-used by Karbon to render tqshapes before display.
-
-Advantages:
-
-	- Raph Levien is really good at this stuff, so libart is
-	  quality
-
-Disadvantages:
-
-	- C
-	- It isn't an image library, really
-
-
-* java2D (http://java.sun.com/j2se/1.4.2/docs/guide/2d/index.html)
-
-
-Java2D is more or less complete library to write a paint app around.
-It offers image types, colour spaces, kernel convolutions and text.
-It's in Java, of course, and the free re-implementation is not done
-yet, and besides, is based around Cairo.
-
-Advantages:
-	
-	- Neat OO design
-	- Complete
-
-Disadvantages:
-
-	- Java
-	- Not free
-	- Has some legacy cruft.
-
-* ImageMagick/GraphicsMagick (http://imagemagick.org/, http://www.graphicsmagick.org/)
-
-GraphicsMagick is ImageMagick with a different license, and a
-focus on API stability. GM and IM now also differ slightly in terms of
-features offered. Krita used to be based around IM (which can still be
-seen in many places in the code). The IM core was dropped in favour of
-the present core because it turned out that IM was not re-entrant,
-making it hard to use in an interactive application.
-
-Advantages:
-
-	- Mature
-	- C++ interface
-	- Full-featured
-	- RGB and CMYK (but not more)
-	- License compatible with Krita
-	- Under active development
-
-Disadvantages:
-
-	- Bit-depth a compile-time option
-	- Not re-entrant: not optimized for interactive use.
-
-* Paintlib2 (http://www.paintlib.de/paintlib/)
-
-A portable (windows/Linux) library for image loading, manipulation and
-saving. The same kind of thing as IM/GM, but not quite as mature.
-
-Advantages:
-
-Disadvantages:
- 	
-	- No support for larger bit depths per channel
-	- Windows (bmp) centric
-	- Development seems to have stopped in 2000
-
-
-* Antigrain (http://www.antigrain.com/)
-
-Antigrain is a graphics lib that specializes in high-quality anti-aliasing. It can be 
-useful to mine for algorithms, but is mainly a library to render vector data to bitmaps,
-just like libart or cairo.
-
-Advantages:
-
-	- High quality algorithms
-	- Completely free license.
-	- Colour-space agnostic
-
-Disadvantages:
-
-	- Not a complete 2D library
-	- self-admittedly complex and hard to use.
-	- No support for greater bit-depths.
-
-* The Visualization Toolkit (VTK, http://public.kitware.com/VTK/)
-
-A very big C++ library for 2d and 3d image processing and visualisation. It's
-too big to easily evaluate for me.
-
-Advantages
-	
-	- It is used in other Qt applications, like Julius
-	- Probably very good
-
-Disadvantages
-
-	- The book is very expensive
-	- Uses its own make equivalent, CMake
-	- Very large
-
-* Java Advanced Imaging
diff --git a/krita/Makefile.am b/krita/Makefile.am
deleted file mode 100644
index db9d7f0a6..000000000
--- a/krita/Makefile.am
+++ /dev/null
@@ -1,47 +0,0 @@
-INCLUDES  = $(KOFFICE_INCLUDES) $(KOPAINTER_INCLUDES) $(all_includes)
-
-## The common lib, shared between the part, the plugins, and the filters
-lib_LTLIBRARIES = libkritacommon.la
-libkritacommon_la_SOURCES = dummy.cc
-libkritacommon_la_LDFLAGS = $(all_libraries) $(LIB_QT) -version-info 1:0 -no-undefined
-libkritacommon_la_LIBADD = sdk/libkritasdk.la core/libkritaimage.la ui/libkritaui.la kritacolor/libkritacolor.la $(LCMS_LIBS) $(LIB_KOFFICEUI) $(LIB_KOPAINTER) $(LIB_KOPALETTE) $(LIB_XINPUTEXT)
-
-## The part
-kde_module_LTLIBRARIES = libkritapart.la
-libkritapart_la_SOURCES = krita_part_init.cc
-libkritapart_la_LDFLAGS = $(all_libraries) $(LIB_QT) -L../lib/kofficecore/.libs/ -lkofficecore -L../lib/kofficeui/.libs/ -lkofficeui -L../lib/store/.libs/ -lkstore -L../krita/ui/.libs -lkritaui -module $(KDE_PLUGIN)
-libkritapart_la_LIBADD = libkritacommon.la
-
-METASOURCES = AUTO
-
-## The kdeinit loadable module and executable
-kdeinit_LTLIBRARIES = krita.la
-bin_PROGRAMS =
-krita_la_SOURCES = main.cc
-krita_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
-krita_la_LIBADD = $(LIB_KOFFICECORE)
-
-xdg_apps_DATA = krita.desktop
-kdemimedir = $(kde_mimedir)/application
-
-rcdir = $(kde_datadir)/krita
-rc_DATA = krita.rc krita_readonly.rc
-
-SUBDIRS = sdk kritacolor core ui . dtd colorspaces plugins data pics 
-# Needed to compile libkritacommon.la, which has no source files to itself
-# but everything in static libs.
-dummy.cc:
-	echo > dummy.cc
-
-messages: rc.cpp
-	$(EXTRACTRC) `find . -name \*.ui` >> rc.cpp
-	$(EXTRACTRC) `find . -name \*.rc` >> rc.cpp
-	perl extracti18n.pl > i18ndata
-	$(XGETTEXT) i18ndata rc.cpp `find . -name \*.cc -o -name \*.h -o -name \*.cpp` ui/kis_aboutdata.h -o $(podir)/krita.pot
-	rm -f i18ndata
-
-DOXYGEN_EXCLUDE = CImg.h colorspaces plugins kritacolor/colorspaces core/tiles
-include $(top_srcdir)/admin/Doxyfile.am
-
-kde_services_DATA = kritapart.desktop
-
diff --git a/krita/README b/krita/README
deleted file mode 100644
index ec24af477..000000000
--- a/krita/README
+++ /dev/null
@@ -1,13 +0,0 @@
-Krita
-
-Krita is a paint application for bitmap images. It's also, according to
-the Dictionary of Phrase and Fable:
-
-The first of four Hindu periods contained in the great Yuga, when the
-genius of Truth and Right, in the form of bull, stood firm on his four
-feet, and man gained nothing by iniquity.
-
-In the Mahabharata, the name 'krita' is used in a context where this
-can be translated with 'perfect' - the perfect age.
-
-Krita is Swedish for chalk (or pencil?) and rita means "to write".
diff --git a/krita/TODO b/krita/TODO
deleted file mode 100644
index c301d6249..000000000
--- a/krita/TODO
+++ /dev/null
@@ -1,181 +0,0 @@
-After 1.5 cleanups
-
-* Move core/ui class private members to d-pointers
-* Selections, adj. masks, wetness, heigh masks (all 8-bit mask ideas)
-  as sublayers to paint layers, and make them movable between layers
-  and x,y, toggle on/off.
-* Fix KisFilter::colorSpaceIndependence/worksWith overlap
-* Add api & gui to exclude channels from compositing
-* Add a mechanism for cspaces to start long-running filters when a paintdev
-  is created -- and a gui to turn that on and off, perhaps something analogous
-  to a channels box
-* Make set of filter categories extensible
-* BUG 121975: selections and group layers.
-* Add end poly entry to the popup menu when the poly tool is active (note:
-  make this more generically useful for tools. Great idea by David Herman
-* Paint direct should be paint directly
-          
-UI stuff:
-
-* color picker: top combo should be as wide as the whole widget; the widget is a bit too big,
-  we should try to make the listview a lot smaller. Maybe just use labels here?
-* The edit palette dialog two-step should be changed into a single dialog
-          
-Code organization
-
-Transform tool (CBR)
-
-	* Implement native integer versions for bell, bspline, lanczos3 and mitchell filters
-	* The option widget should be connected
-	* Figure out why scaling down produces sum of weights <255 (Hermite filter)
-	* Implement gui, create cursors and update visitor for shearing
-
-Integration
-
-	* A krita document embedded in KWord has the wrong scaling and transparency
-	* A krita document embedded in another document prints at the wrong place
-	* Embedded KOffice objects don't paint themselves correctly
-	* There is currently no kimgio module for Krita images: implement one by
-	  saving a rendered png image into the krita file and extracting that from
-	  kimgio. (Saving of a png image in .kra files is done; now we just need to 
-          add the kimgio file)
-        * There is no easy way to get back from editing an embedded document (if the image is larger
-          than the window)
-          
-Colorspace independence (found with the test colorstrategy)
-
-	* Check and double check the cms capabilities: especially the use of
-          profiles in the render/convert/edit paths.
-	* Merge grayscale layers back into one color image.
-    
-Core
-
-     * The fill painter (and perhaps other paitners, too) should call addDirtyRect, and the floodfill
-          tool should use that rect to blit and notify the image, instead of notifying the complete image.s
-	* Fix image resolution handling (zooming, pixel-for-pixel, 100% == zoomed to dpi/xdpi etc.)
-	* Loading and saving of selections
-	* Anti-aliased filling (requires some simple colorspace function to merge 2 Pixels)
-	* Load/save configuration of everything user-settable.
-	* Long painter operations (e.g., convolution painter) should use the
-          progressbar and be cancelable.
-    * Color adjustment filters seem to have a problem with partially selected pixels
-
-File Format:
-
-	* Save & load all annotations in .kra files
-	* Save & load more information, like PNG comments, gamma information, etc
-
-
-Import/Export
-
-    * Fix gimp XCF PSD and import/export (ImageMagick hacking...)
-	* Fix imports to import metadata.
-
-User Interface
-    * Add an explanatory textframe to the scaling filter combobox.
-    * Add a good crosshair cursor and a crosshair cursor that extends to the rulers.
-    * Add a cheatsheet widget that integrates with knewstuff to have tutorials that people
-      can download and follow from Krita.
-    * Add opacity widget (One that grows more white or transparent (showing those gray blocks) based on the
-	  input)
-    * Add out-of-gamut selection
-    * Fix layout problems in tool option widgets.
-    * Disable dragging the toolbox from dock position to dock position (see Karbon)
-    * Disable all relevant actions when a layer is locked or invisible. See bug #90456. Show locked status of current layer in statusbar.
-    * Add link check to new image dialog to sync width and height
-    * The description field in color settings is empty
-    * Implement the following dialogs / widgets:
-		    - Variations (#Boudewijn)
-		    - Gradient: remove the autogradient dialog and make into a proper
-				gradient dialog, and allow saving gradients.
-
-    * Show which tool is associated with which pointer (mouse, stylus, eraser, other stylusses) In the statusbar.
-    * Allow guides to be disabled. Allow diagonal guides (useful for perspective drawings) Bug #108398
-    * Allow snapping to guides.
-    * Create templates for often-used image formats. Add save-as-template
-    * Add deselect with rmb -- maybe also selectable actions with other tools on rmb?
-    * Fix crop tool: when pressing shift, keep aspect ratio, implement gray mask.
-	  (Michael Thaler)
-    * Allow shape tools to be filled with gradients
-
-	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
-
-    * Doing a copy of a selection, but having the wrong layer selected gives 
-      me an empty selection (all transparent).  Pressing paste should say so 
-      (popup) instead of creating a new useless layer.
-    * the selection tools should allow pressing shift to go to 'substract' 
-      mode without adjusting the combobox for the current tool.  (a different 
-      pointer would be nice as well)
-
-    * Pressing save for the first time gives me the 'save document as' dialog 
-      which is set to 'png' as default file format.
-      I suggest to set the default format (in the "save as" dialog) to the krita 
-      format for any image that has more then 1 layer.  
-
-
-Selections
-
-    * On shearing, the whole image is mirrored, not the selected
-	  bits.
-    * Add opacity slider to selection painting tools so you can
-          select something 50%.
-
-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
-	* preferences dialog can show non-existent profile for the monitor profile -> confusing
-
-
-Tools
-
-	* Zoom tool should zoom out when alt is pressed. Show zoom-minus cursor in that case
-	* Implement the following tools or paintops: 
-		    - fix airbrush tool (add rate option, add increase
-		      of brush size if kept in one place)
-		    - 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.
-	* Implement path tools (Michael Thaler?)
-	* Sumi-e brush tool
-	* Natural media tools (chalk, ink, oil, watercolour -- fun!)
-
-Plugins
-
-	* As many filters as possible :-)
-
-Modules
-
-	* Add color models for HSV, YUV etc.
-	* Add Wet & Sticky model (in progress already)
-	* Implement Curtiss et. al. for watercolour (Levien, wet dreams. In progress)
-	* The composite ops in RGB -> composite.h do not take mask into account
-	 - this goes for COPY and CLEAR in grayscale also
-
-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.
-
diff --git a/krita/UIcomments b/krita/UIcomments
deleted file mode 100644
index 1b9242408..000000000
--- a/krita/UIcomments
+++ /dev/null
@@ -1,59 +0,0 @@
-Color palettes ;
-
-You can drag a color from the preview swatches but it is changing the
-selected one at click and since dropping drops on the selected one, the 
-concept of duplicating the foreground to the background by dragging is 
-impossible.  I suggest to do selecting of foreground/background color on 
-mouse release instead.
-
-<BSAR: I don't understand this at all -- not sure what you're talking about.>
-
-Selections
-
-When you did a 'select all' and then create a selection nothing happens 
-since you can't select more then you already did.  For that reason I 
-suggest to make select all and deselect lead to a similar situation where 
-adding a selection or substracting one will be smart and do make the 
-result of that select or deselect visible.  In either case selecting a 
-part in both a fully selected and fully deselected image should lead to 
-the same result.
-
-<BSAR: not going to do this: in the next release, it will be
-always clear whether there's a selection because we're going to show it as a
-child layer. For now, determining whether the extent of a selection is as big
-as the extent of a layer, and whether the whole selection is completely 100%
-selected is going to be too expensive>
-
-
-Thomas Zander
-
-
-Missing tooltips (Carsten N.)
-
-LEGEND: NTAA No Tooltip At All
- 
-Missing tooltips:
- 
-KComboBox in the toolbar (the with 'Pixel Brush' for example)
- 
-Overview-widget: NTAA
- 
-Histogram: No Tooltip. Well, there is nothing but the histogram, there should be at least something...
- 
-Context-Widgets of the tools:
- 
-Star: NTAA
- 
-Brush: NTAA
- 
-Line: NTAA
- 
-Rectangle: NTAA
- 
-Ellispse: NTAA
- 
-Polygone: NTAA
- 
-Polyline: NTAA
- 
-Duplicate Brush: NTAA
diff --git a/krita/colorspaces/Makefile.am b/krita/colorspaces/Makefile.am
deleted file mode 100644
index 8f975e966..000000000
--- a/krita/colorspaces/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-# Definition of the service type
-
-if have_openexr
-HALF_SUBDIRS=rgb_f16half
-endif
-
-SUBDIRS = rgb_u8 rgb_u16 rgb_f32 \
-	gray_u8 gray_u16 \
-	cmyk_u8 cmyk_u16 \
-	lms_f32 \
-	ycbcr_u8 ycbcr_u16 \
-	$(HALF_SUBDIRS) \
-	wet
-#wet wetsticky
-
diff --git a/krita/colorspaces/README b/krita/colorspaces/README
deleted file mode 100644
index 21e302ffc..000000000
--- a/krita/colorspaces/README
+++ /dev/null
@@ -1,11 +0,0 @@
-About Modules
-
-Modules are plug-ins that implement exchangable core functionality
-for Krita, such as colour strategies. Modules are loaded at startup
-and shared among all Krita documents and views. That means that making
-modules stateful is iffy, and that you need to be careful about 
-re-entrancy.
-
-Modules are named modules because the plugins, which are kpartgui's
-are already called plugins. Capito? Good.
-
diff --git a/krita/colorspaces/cmyk_u16/Makefile.am b/krita/colorspaces/cmyk_u16/Makefile.am
deleted file mode 100644
index c2ef5f8c8..000000000
--- a/krita/colorspaces/cmyk_u16/Makefile.am
+++ /dev/null
@@ -1,30 +0,0 @@
-kde_services_DATA = krita_cmyk_u16_plugin.desktop
-
-INCLUDES  =  -I$(srcdir)/../../sdk \
-	-I$(srcdir)/../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../kritacolor/ \
-	$(KOFFICE_INCLUDES) \
-	$(all_includes)
-
-lib_LTLIBRARIES = libkrita_cmyk_u16.la
-libkrita_cmyk_u16_la_SOURCES = kis_cmyk_u16_colorspace.cc
-libkrita_cmyk_u16_la_LDFLAGS = $(all_libraries)
-libkrita_cmyk_u16_la_LIBADD =  ../../kritacolor/libkritacolor.la
-
-# Install this plugin in the KDE modules directory
-kde_module_LTLIBRARIES = krita_cmyk_u16_plugin.la
-
-# Srcs for the plugin
-krita_cmyk_u16_plugin_la_SOURCES = cmyk_u16_plugin.cc
-noinst_HEADERS = cmyk_u16_plugin.h kis_cmyk_u16_colorspace.h
-
-krita_cmyk_u16_plugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -llcms
-krita_cmyk_u16_plugin_la_LIBADD = libkrita_cmyk_u16.la ../../kritacolor/libkritacolor.la
-
-krita_cmyk_u16_plugin_la_METASOURCES = AUTO
-#METASOURCES = AUTO # XXX: which of the two?
-
-
-SUBDIRS = .
-#$(TESTSDIR)
-
diff --git a/krita/colorspaces/cmyk_u16/cmyk_u16_plugin.cc b/krita/colorspaces/cmyk_u16/cmyk_u16_plugin.cc
deleted file mode 100644
index d7b20b294..000000000
--- a/krita/colorspaces/cmyk_u16/cmyk_u16_plugin.cc
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-* cmyk_u16_plugin.cc -- Part of Krita
-*
-* Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org)
-* Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
-*
-*  This program is free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  This program is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  You should have received a copy of the GNU General Public License
-*  along with this program; if not, write to the Free Software
-*  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <kinstance.h>
-#include <kgenericfactory.h>
-#include <kdebug.h>
-
-#include <kis_debug_areas.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_basic_histogram_producers.h>
-#include <kis_debug_areas.h>
-#include "cmyk_u16_plugin.h"
-#include "kis_cmyk_u16_colorspace.h"
-
-typedef KGenericFactory<CMYKU16Plugin> CMYKU16PluginFactory;
-K_EXPORT_COMPONENT_FACTORY( krita_cmyk_u16_plugin, CMYKU16PluginFactory( "krita" ) )
-
-
-CMYKU16Plugin::CMYKU16Plugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-    setInstance(CMYKU16PluginFactory::instance());
-
-    if ( tqparent->inherits("KisColorSpaceFactoryRegistry") )
-    {
-        KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>( tqparent );
-
-        KisColorSpace * colorSpaceCMYKU16 = new KisCmykU16ColorSpace(f, 0);
-        KisColorSpaceFactory * csf = new KisCmykU16ColorSpaceFactory();
-        Q_CHECK_PTR(colorSpaceCMYKU16);
-        f->add(csf);
-        KisHistogramProducerFactoryRegistry::instance()->add(
-                new KisBasicHistogramProducerFactory<KisBasicU16HistogramProducer>
-                (KisID("CMYK16HISTO", i18n("CMYK16")), colorSpaceCMYKU16) );
-    }
-
-}
-
-CMYKU16Plugin::~CMYKU16Plugin()
-{
-}
-
-#include "cmyk_u16_plugin.moc"
diff --git a/krita/colorspaces/cmyk_u16/cmyk_u16_plugin.h b/krita/colorspaces/cmyk_u16/cmyk_u16_plugin.h
deleted file mode 100644
index 07224a141..000000000
--- a/krita/colorspaces/cmyk_u16/cmyk_u16_plugin.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef CMYK_U16_PLUGIN_H_
-#define CMYK_U16_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-/**
- * A plugin wrapper around the CMYK U16 colour space strategy.
- */
-class CMYKU16Plugin : public KParts::Plugin
-{
-    Q_OBJECT
-  TQ_OBJECT
-public:
-    CMYKU16Plugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~CMYKU16Plugin();
-
-};
-
-
-#endif // CMYK_U16_PLUGIN_H_
diff --git a/krita/colorspaces/cmyk_u16/kis_cmyk_u16_colorspace.cc b/krita/colorspaces/cmyk_u16/kis_cmyk_u16_colorspace.cc
deleted file mode 100644
index 3f2ccc809..000000000
--- a/krita/colorspaces/cmyk_u16/kis_cmyk_u16_colorspace.cc
+++ /dev/null
@@ -1,714 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <config.h>
-#include <limits.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include LCMS_HEADER
-
-#include <tqimage.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include <kis_debug_areas.h>
-#include "kis_cmyk_u16_colorspace.h"
-#include "kis_u16_base_colorspace.h"
-#include "kis_color_conversions.h"
-#include "kis_integer_maths.h"
-#include "kis_colorspace_factory_registry.h"
-
-namespace {
-    const TQ_INT32 MAX_CHANNEL_CMYK = 4;
-    const TQ_INT32 MAX_CHANNEL_CMYKA = 5;
-}
-
-KisCmykU16ColorSpace::KisCmykU16ColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) :
-    KisU16BaseColorSpace(KisID("CMYKA16", i18n("CMYK (16-bit integer/channel)")), TYPE_CMYK5_16, icSigCmykData, tqparent, p)
-{
-    m_channels.push_back(new KisChannelInfo(i18n("Cyan"), i18n("C"), 0 * sizeof(TQ_UINT16), KisChannelInfo::COLOR, KisChannelInfo::UINT16, sizeof(TQ_UINT16), TQt::cyan));
-    m_channels.push_back(new KisChannelInfo(i18n("Magenta"), i18n("M"), 1 * sizeof(TQ_UINT16), KisChannelInfo::COLOR, KisChannelInfo::UINT16, sizeof(TQ_UINT16), TQt::magenta));
-    m_channels.push_back(new KisChannelInfo(i18n("Yellow"), i18n("Y"), 2 * sizeof(TQ_UINT16), KisChannelInfo::COLOR, KisChannelInfo::UINT16, sizeof(TQ_UINT16), TQt::yellow));
-    m_channels.push_back(new KisChannelInfo(i18n("Black"), i18n("K"), 3 * sizeof(TQ_UINT16), KisChannelInfo::COLOR, KisChannelInfo::UINT16, sizeof(TQ_UINT16), TQt::black));
-    m_channels.push_back(new KisChannelInfo(i18n("Alpha"), i18n("A"), 4 * sizeof(TQ_UINT16), KisChannelInfo::ALPHA, KisChannelInfo::UINT16, sizeof(TQ_UINT16)));
-
-    m_alphaPos = PIXEL_ALPHA * sizeof(TQ_UINT16);
-
-    init();
-}
-
-KisCmykU16ColorSpace::~KisCmykU16ColorSpace()
-{
-}
-
-void KisCmykU16ColorSpace::mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const
-{
-    TQ_UINT32 totalCyan = 0, totalMagenta = 0, totalYellow = 0, totalBlack = 0, newAlpha = 0;
-
-    while (nColors--)
-    {
-        const Pixel *pixel = reinterpret_cast<const Pixel *>(*colors);
-
-        TQ_UINT32 alpha = pixel->alpha;
-        TQ_UINT32 alphaTimesWeight = UINT16_MULT(alpha, UINT8_TO_UINT16(*weights));
-
-        totalCyan += UINT16_MULT(pixel->cyan, alphaTimesWeight);
-        totalMagenta += UINT16_MULT(pixel->magenta, alphaTimesWeight);
-        totalYellow += UINT16_MULT(pixel->yellow, alphaTimesWeight);
-        totalBlack += UINT16_MULT(pixel->black, alphaTimesWeight);
-        newAlpha += alphaTimesWeight;
-
-        weights++;
-        colors++;
-    }
-
-    Q_ASSERT(newAlpha <= U16_OPACITY_OPAQUE);
-
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->alpha = newAlpha;
-
-    if (newAlpha > 0) {
-        totalCyan = UINT16_DIVIDE(totalCyan, newAlpha);
-        totalMagenta = UINT16_DIVIDE(totalMagenta, newAlpha);
-        totalYellow = UINT16_DIVIDE(totalYellow, newAlpha);
-        totalBlack = UINT16_DIVIDE(totalBlack, newAlpha);
-    }
-
-    dstPixel->cyan = totalCyan;
-    dstPixel->magenta = totalMagenta;
-    dstPixel->yellow = totalYellow;
-    dstPixel->black = totalBlack;
-}
-
-void KisCmykU16ColorSpace::convolveColors(TQ_UINT8** colors, TQ_INT32* kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const
-{
-    TQ_INT32 totalCyan = 0, totalMagenta = 0, totalYellow = 0, totalK = 0, totalAlpha = 0;
-
-    while (nColors--)
-    {
-        const Pixel * pixel = reinterpret_cast<const Pixel *>( *colors );
-
-        TQ_INT32 weight = *kernelValues;
-
-        if (weight != 0) {
-            totalCyan += pixel->cyan * weight;
-            totalMagenta += pixel->magenta * weight;
-            totalYellow += pixel->yellow * weight;
-            totalK += pixel->black * weight;
-            totalAlpha += pixel->alpha * weight;
-        }
-        colors++;
-        kernelValues++;
-    }
-
-    Pixel * p = reinterpret_cast< Pixel *>( dst );
-
-    if (channelFlags & KisChannelInfo::FLAG_COLOR) {
-        p->cyan = CLAMP( ( totalCyan / factor) + offset, 0, TQ_UINT16_MAX);
-        p->magenta = CLAMP( ( totalMagenta / factor) + offset, 0, TQ_UINT16_MAX);
-        p->yellow = CLAMP( ( totalYellow / factor) + offset, 0, TQ_UINT16_MAX);
-        p->black = CLAMP( ( totalK / factor) + offset, 0, TQ_UINT16_MAX);
-    }
-    if (channelFlags & KisChannelInfo::FLAG_ALPHA) {
-        p->alpha = CLAMP((totalAlpha/ factor) + offset, 0, TQ_UINT16_MAX);
-    }
-}
-
-
-void KisCmykU16ColorSpace::invertColor(TQ_UINT8 * src, TQ_INT32 nPixels)
-{
-    TQ_UINT32 psize = pixelSize();
-
-    while (nPixels--)
-    {
-        Pixel * p = reinterpret_cast< Pixel *>( src );
-        p->cyan = TQ_UINT16_MAX - p->cyan;
-        p->magenta = TQ_UINT16_MAX - p->magenta;
-        p->yellow = TQ_UINT16_MAX - p->yellow;
-        p->black = TQ_UINT16_MAX - p->black;
-        src += psize;
-    }
-}
-
-
-
-void KisCmykU16ColorSpace::applyAdjustment(const TQ_UINT8 *src, TQ_UINT8 *dst, KisColorAdjustment *adj, TQ_INT32 nPixels)
-{
-    TQ_UINT32 psize = pixelSize();
-    
-    TQ_UINT8 * tmp = new TQ_UINT8[nPixels * psize];
-    TQ_UINT8 * tmpPtr = tmp;
-    memcpy(tmp, dst, nPixels * psize);
-    
-    KisAbstractColorSpace::applyAdjustment(src, dst, adj, nPixels);
-
-    // Copy the alpha, which lcms doesn't do for us, grumble.
-
-    while (nPixels--)
-    {
-        TQ_UINT16 *pixelAlphaSrc = reinterpret_cast<TQ_UINT16 *>(tmpPtr + m_alphaPos);
-        TQ_UINT16 *pixelAlphaDst = reinterpret_cast<TQ_UINT16 *>(dst + m_alphaPos);
-        
-        *pixelAlphaDst= *pixelAlphaSrc;
-        
-        tmpPtr += psize;
-        dst += psize;
-    }
-
-    delete [] tmp;
-}
-
-TQValueVector<KisChannelInfo *> KisCmykU16ColorSpace::channels() const
-{
-    return m_channels;
-}
-
-TQ_UINT32 KisCmykU16ColorSpace::nChannels() const
-{
-    return MAX_CHANNEL_CMYKA;
-}
-
-TQ_UINT32 KisCmykU16ColorSpace::nColorChannels() const
-{
-    return MAX_CHANNEL_CMYK;
-}
-
-TQ_UINT32 KisCmykU16ColorSpace::pixelSize() const
-{
-    return MAX_CHANNEL_CMYKA * sizeof(TQ_UINT16);
-}
-
-void KisCmykU16ColorSpace::getSingleChannelPixel(TQ_UINT8 *dstPixel, const TQ_UINT8 *srcPixel, TQ_UINT32 channelIndex)
-{
-    if (channelIndex < (TQ_UINT32)MAX_CHANNEL_CMYKA) {
-
-        memset(dstPixel, 0, MAX_CHANNEL_CMYKA * sizeof(TQ_UINT16));
-
-        if (U16_OPACITY_TRANSPARENT != 0) {
-            dstPixel[PIXEL_ALPHA] = U16_OPACITY_TRANSPARENT;
-        }
-
-        memcpy(dstPixel + (channelIndex * sizeof(TQ_UINT16)), srcPixel + (channelIndex * sizeof(TQ_UINT16)), sizeof(TQ_UINT16));
-    }
-}
-
-void KisCmykU16ColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT16 *src = reinterpret_cast<const TQ_UINT16 *>(srcRowStart);
-        TQ_UINT16 *dst = reinterpret_cast<TQ_UINT16 *>(dstRowStart);
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-        TQ_INT32 columns = numColumns;
-
-        while (columns > 0) {
-
-            TQ_UINT16 srcAlpha = src[PIXEL_ALPHA];
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = UINT16_MULT(srcAlpha, UINT8_TO_UINT16(U8_tqmask));
-                }
-                tqmask++;
-            }
-
-            if (srcAlpha != U16_OPACITY_TRANSPARENT) {
-
-                if (opacity != U16_OPACITY_OPAQUE) {
-                    srcAlpha = UINT16_MULT(srcAlpha, opacity);
-                }
-
-                if (srcAlpha == U16_OPACITY_OPAQUE) {
-                    memcpy(dst, src, MAX_CHANNEL_CMYKA * sizeof(TQ_UINT16));
-                } else {
-                    TQ_UINT16 dstAlpha = dst[PIXEL_ALPHA];
-
-                    TQ_UINT16 srcBlend;
-
-                    if (dstAlpha == U16_OPACITY_OPAQUE) {
-                        srcBlend = srcAlpha;
-                    } else {
-                        TQ_UINT16 newAlpha = dstAlpha + UINT16_MULT(U16_OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                        dst[PIXEL_ALPHA] = newAlpha;
-
-                        if (newAlpha != 0) {
-                            srcBlend = UINT16_DIVIDE(srcAlpha, newAlpha);
-                        } else {
-                            srcBlend = srcAlpha;
-                        }
-                    }
-
-                    if (srcBlend == U16_OPACITY_OPAQUE) {
-                        memcpy(dst, src, MAX_CHANNEL_CMYK * sizeof(TQ_UINT16));
-                    } else {
-                        dst[PIXEL_CYAN] = UINT16_BLEND(src[PIXEL_CYAN], dst[PIXEL_CYAN], srcBlend);
-                        dst[PIXEL_MAGENTA] = UINT16_BLEND(src[PIXEL_MAGENTA], dst[PIXEL_MAGENTA], srcBlend);
-                        dst[PIXEL_YELLOW] = UINT16_BLEND(src[PIXEL_YELLOW], dst[PIXEL_YELLOW], srcBlend);
-                        dst[PIXEL_BLACK] = UINT16_BLEND(src[PIXEL_BLACK], dst[PIXEL_BLACK], srcBlend);
-                    }
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_CMYKA;
-            dst += MAX_CHANNEL_CMYKA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart) {
-            tqmaskRowStart += tqmaskRowStride;
-        }
-    }
-}
-
-#define COMMON_COMPOSITE_OP_PROLOG() \
-    while (rows > 0) { \
-    \
-        const TQ_UINT16 *src = reinterpret_cast<const TQ_UINT16 *>(srcRowStart); \
-        TQ_UINT16 *dst = reinterpret_cast<TQ_UINT16 *>(dstRowStart); \
-        TQ_INT32 columns = numColumns; \
-        const TQ_UINT8 *tqmask = tqmaskRowStart; \
-    \
-        while (columns > 0) { \
-    \
-            TQ_UINT16 srcAlpha = src[PIXEL_ALPHA]; \
-            TQ_UINT16 dstAlpha = dst[PIXEL_ALPHA]; \
-    \
-            srcAlpha = TQMIN(srcAlpha, dstAlpha); \
-    \
-            if (tqmask != 0) { \
-                TQ_UINT8 U8_tqmask = *tqmask; \
-    \
-                if (U8_tqmask != OPACITY_OPAQUE) { \
-                    srcAlpha = UINT16_MULT(srcAlpha, UINT8_TO_UINT16(U8_tqmask)); \
-                } \
-                tqmask++; \
-            } \
-    \
-            if (srcAlpha != U16_OPACITY_TRANSPARENT) { \
-    \
-                if (opacity != U16_OPACITY_OPAQUE) { \
-                    srcAlpha = UINT16_MULT(srcAlpha, opacity); \
-                } \
-    \
-                TQ_UINT16 srcBlend; \
-    \
-                if (dstAlpha == U16_OPACITY_OPAQUE) { \
-                    srcBlend = srcAlpha; \
-                } else { \
-                    TQ_UINT16 newAlpha = dstAlpha + UINT16_MULT(U16_OPACITY_OPAQUE - dstAlpha, srcAlpha); \
-                    dst[PIXEL_ALPHA] = newAlpha; \
-    \
-                    if (newAlpha != 0) { \
-                        srcBlend = UINT16_DIVIDE(srcAlpha, newAlpha); \
-                    } else { \
-                        srcBlend = srcAlpha; \
-                    } \
-                }
-
-#define COMMON_COMPOSITE_OP_EPILOG() \
-            } \
-    \
-            columns--; \
-            src += MAX_CHANNEL_CMYKA; \
-            dst += MAX_CHANNEL_CMYKA; \
-        } \
-    \
-        rows--; \
-        srcRowStart += srcRowStride; \
-        dstRowStart += dstRowStride; \
-        if(tqmaskRowStart) { \
-            tqmaskRowStart += tqmaskRowStride; \
-        } \
-    }
-
-void KisCmykU16ColorSpace::compositeMultiply(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-
-        for (int channel = 0; channel < MAX_CHANNEL_CMYK; channel++) {
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = UINT16_MULT(srcColor, dstColor);
-
-            dst[channel] = UINT16_BLEND(srcColor, dstColor, srcBlend);
-        }
-
-
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykU16ColorSpace::compositeDivide(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = TQMIN((dstColor * (UINT16_MAX + 1u) + (srcColor / 2u)) / (1u + srcColor), UINT16_MAX);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykU16ColorSpace::compositeScreen(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = UINT16_MAX - UINT16_MULT(UINT16_MAX - dstColor, UINT16_MAX - srcColor);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykU16ColorSpace::compositeOverlay(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = UINT16_MULT(dstColor, dstColor + 2u * UINT16_MULT(srcColor, UINT16_MAX - dstColor));
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykU16ColorSpace::compositeDodge(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = TQMIN((dstColor * (UINT16_MAX + 1u)) / (UINT16_MAX + 1u - srcColor), UINT16_MAX);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykU16ColorSpace::compositeBurn(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = TQMIN(((UINT16_MAX - dstColor) * (UINT16_MAX + 1u)) / (srcColor + 1u), UINT16_MAX);
-            if (srcColor > UINT16_MAX - srcColor) srcColor = UINT16_MAX;
-            
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykU16ColorSpace::compositeDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = TQMIN(srcColor, dstColor);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykU16ColorSpace::compositeLighten(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = TQMAX(srcColor, dstColor);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykU16ColorSpace::compositeErase(TQ_UINT8 *dst,
-            TQ_INT32 dstRowSize,
-            const TQ_UINT8 *src,
-            TQ_INT32 srcRowSize,
-            const TQ_UINT8 *srcAlphaMask,
-            TQ_INT32 tqmaskRowStride,
-            TQ_INT32 rows,
-            TQ_INT32 cols,
-            TQ_UINT16 /*opacity*/)
-{
-    while (rows-- > 0)
-    {
-        const Pixel *s = reinterpret_cast<const Pixel *>(src);
-        Pixel *d = reinterpret_cast<Pixel *>(dst);
-        const TQ_UINT8 *tqmask = srcAlphaMask;
-
-        for (TQ_INT32 i = cols; i > 0; i--, s++, d++)
-        {
-            TQ_UINT16 srcAlpha = s->alpha;
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = UINT16_BLEND(srcAlpha, U16_OPACITY_OPAQUE, UINT8_TO_UINT16(U8_tqmask));
-                }
-                tqmask++;
-            }
-            d->alpha = UINT16_MULT(srcAlpha, d->alpha);
-        }
-
-        dst += dstRowSize;
-        src += srcRowSize;
-        if(srcAlphaMask) {
-            srcAlphaMask += tqmaskRowStride;
-        }
-    }
-}
-
-
-void KisCmykU16ColorSpace::bitBlt(TQ_UINT8 *dst,
-                      TQ_INT32 dstRowStride,
-                      const TQ_UINT8 *src,
-                      TQ_INT32 srcRowStride,
-                      const TQ_UINT8 *tqmask,
-                      TQ_INT32 tqmaskRowStride,
-                      TQ_UINT8 U8_opacity,
-                      TQ_INT32 rows,
-                      TQ_INT32 cols,
-                      const KisCompositeOp& op)
-{
-    TQ_UINT16 opacity = UINT8_TO_UINT16(U8_opacity);
-
-    switch (op.op()) {
-    case COMPOSITE_UNDEF:
-        // Undefined == no composition
-        break;
-    case COMPOSITE_OVER:
-        compositeOver(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_IN:
-        //compositeIn(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-    case COMPOSITE_OUT:
-        //compositeOut(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ATOP:
-        //compositeAtop(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_XOR:
-        //compositeXor(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_PLUS:
-        //compositePlus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_MINUS:
-        //compositeMinus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ADD:
-        //compositeAdd(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SUBTRACT:
-        //compositeSubtract(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DIFF:
-        //compositeDiff(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_MULT:
-        compositeMultiply(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DIVIDE:
-        compositeDivide(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_BUMPMAP:
-        //compositeBumpmap(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY:
-        compositeCopy(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, U8_opacity);
-        break;
-    case COMPOSITE_COPY_CYAN:
-        //compositeCopyCyan(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_MAGENTA:
-        //compositeCopyMagenta(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_YELLOW:
-        //compositeCopyYellow(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_OPACITY:
-        //compositeCopyOpacity(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_CLEAR:
-        //compositeClear(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DISSOLVE:
-        //compositeDissolve(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DISPLACE:
-        //compositeDisplace(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-#if 0
-    case COMPOSITE_MODULATE:
-        compositeModulate(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_THRESHOLD:
-        compositeThreshold(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-#endif
-    case COMPOSITE_NO:
-        // No composition.
-        break;
-    case COMPOSITE_DARKEN:
-        compositeDarken(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_LIGHTEN:
-        compositeLighten(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_HUE:
-        //compositeHue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SATURATION:
-        //compositeSaturation(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_VALUE:
-        //compositeValue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COLOR:
-        //compositeColor(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COLORIZE:
-        //compositeColorize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_LUMINIZE:
-        //compositeLuminize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SCREEN:
-        compositeScreen(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_OVERLAY:
-        compositeOverlay(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ERASE:
-        compositeErase(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DODGE:
-        compositeDodge(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_BURN:
-        compositeBurn(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ALPHA_DARKEN:
-        abstractCompositeAlphaDarken<TQ_UINT16, U16Mult, Uint8ToU16, U16OpacityTest,
-                                     PIXEL_ALPHA, MAX_CHANNEL_CMYK, MAX_CHANNEL_CMYKA>(
-                dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride,
-                rows, cols, opacity, U16Mult(), Uint8ToU16(), U16OpacityTest());
-            break;
-    default:
-        break;
-    }
-}
-
-KisCompositeOpList KisCmykU16ColorSpace::userVisiblecompositeOps() const
-{
-    KisCompositeOpList list;
-
-    list.append(KisCompositeOp(COMPOSITE_OVER));
-    list.append(KisCompositeOp(COMPOSITE_ALPHA_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_MULT));
-    list.append(KisCompositeOp(COMPOSITE_BURN));
-    list.append(KisCompositeOp(COMPOSITE_DODGE));
-    list.append(KisCompositeOp(COMPOSITE_DIVIDE));
-    list.append(KisCompositeOp(COMPOSITE_SCREEN));
-    list.append(KisCompositeOp(COMPOSITE_OVERLAY));
-    list.append(KisCompositeOp(COMPOSITE_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_LIGHTEN));
-
-    return list;
-}
diff --git a/krita/colorspaces/cmyk_u16/kis_cmyk_u16_colorspace.h b/krita/colorspaces/cmyk_u16/kis_cmyk_u16_colorspace.h
deleted file mode 100644
index 1a70fc710..000000000
--- a/krita/colorspaces/cmyk_u16/kis_cmyk_u16_colorspace.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- *  Copyright (c) 2006 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_STRATEGY_COLORSPACE_CMYK_U16_H_
-#define KIS_STRATEGY_COLORSPACE_CMYK_U16_H_
-
-#include <tqcolor.h>
-
-#include <koffice_export.h>
-
-#include "kis_global.h"
-#include "kis_u16_base_colorspace.h"
-#include "kis_integer_maths.h"
-
-
-class KRITATOOL_EXPORT KisCmykU16ColorSpace : public KisU16BaseColorSpace {
-public:
-
-    struct Pixel {
-        TQ_UINT16 cyan;
-        TQ_UINT16 magenta;
-        TQ_UINT16 yellow;
-        TQ_UINT16 black;
-        TQ_UINT16 alpha;
-    };
-
-public:
-    KisCmykU16ColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p);
-    virtual ~KisCmykU16ColorSpace();
-
-    virtual bool willDegrade(ColorSpaceIndependence independence)
-        {
-            if (independence == TO_RGBA8)
-                return true;
-            else
-                return false;
-        };
-
-public:
-
-    virtual TQValueVector<KisChannelInfo *> channels() const;
-    virtual TQ_UINT32 nChannels() const;
-    virtual TQ_UINT32 nColorChannels() const;
-    virtual TQ_UINT32 pixelSize() const;
-    
-    virtual void applyAdjustment(const TQ_UINT8 *src, TQ_UINT8 *dst, KisColorAdjustment *adj, TQ_INT32 nPixels);
-    virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const;
-    virtual void invertColor(TQ_UINT8 * src, TQ_INT32 nPixels);
-    virtual void convolveColors(TQ_UINT8** colors, TQ_INT32 * kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const;
-    virtual void getSingleChannelPixel(TQ_UINT8 *dstPixel, const TQ_UINT8 *srcPixel, TQ_UINT32 channelIndex);
-
-    virtual KisCompositeOpList userVisiblecompositeOps() const;
-
-protected:
-
-    virtual void bitBlt(TQ_UINT8 *dst,
-                TQ_INT32 dstRowStride,
-                const TQ_UINT8 *src,
-                TQ_INT32 srcRowStride,
-                const TQ_UINT8 *srcAlphaMask,
-                TQ_INT32 tqmaskRowStride,
-                TQ_UINT8 opacity,
-                TQ_INT32 rows,
-                TQ_INT32 cols,
-                const KisCompositeOp& op);
-
-    void compositeOver(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeMultiply(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeDivide(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeScreen(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeOverlay(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeDodge(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeBurn(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeDarken(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeLighten(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-
-private:
-    friend class KisCmykU16ColorSpaceTester;
-
-    static const TQ_UINT8 PIXEL_CYAN = 0;
-    static const TQ_UINT8 PIXEL_MAGENTA = 1;
-    static const TQ_UINT8 PIXEL_YELLOW = 2;
-    static const TQ_UINT8 PIXEL_BLACK = 3;
-    static const TQ_UINT8 PIXEL_ALPHA = 4;
-};
-
-class KisCmykU16ColorSpaceFactory : public KisColorSpaceFactory
-{
-public:
-    /**
-     * Krita definition for use in .kra files and internally: unchanging name +
-     * i18n'able description.
-     */
-    virtual KisID id() const { return KisID("CMYKA16", i18n("CMYK (16-bit integer/channel)")); };
-
-    /**
-     * lcms colorspace type definition.
-     */
-    virtual TQ_UINT32 colorSpaceType() { return TYPE_CMYK5_16; };
-
-    virtual icColorSpaceSignature colorSpaceSignature() { return icSigCmykData; };
-
-    virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) { return new KisCmykU16ColorSpace(tqparent, p); };
-
-    virtual TQString defaultProfile() { return "Offset printing, according to ISO/DIS 12647-2:2004, OFCOM, paper type 1 or 2 = coated art, 115 g/m2, screen ruling 60 cm-1, positive-acting plates"; };
-};
-
-#endif // KIS_STRATEGY_COLORSPACE_CMYK_U16_H_
diff --git a/krita/colorspaces/cmyk_u16/krita_cmyk_u16_plugin.desktop b/krita/colorspaces/cmyk_u16/krita_cmyk_u16_plugin.desktop
deleted file mode 100644
index ea14371a8..000000000
--- a/krita/colorspaces/cmyk_u16/krita_cmyk_u16_plugin.desktop
+++ /dev/null
@@ -1,85 +0,0 @@
-[Desktop Entry]
-Name=CMYK Color Model (16-bit integer)
-Name[bg]=Цветови модел CMYK (16 бита)
-Name[ca]=Model de color CMYK (enters de 16 bits)
-Name[cy]=Model Lliw CMYK (cyfanrif 16-did)
-Name[da]=CMYK-farvemodel (16-bit heltal)
-Name[de]=CMYK-Farbmodell (16-bit Ganzzahl)
-Name[el]=Χρωματικό μοντέλο CMYK (16-bit ακέραιοι)
-Name[en_GB]=CMYK Colour Model (16-bit integer)
-Name[eo]=CMYK-kolormodelo (16-bita entjero)
-Name[es]=Modelo de color CMYK (entero de 16 bits)
-Name[et]=CMYK värvimudel (16-bitine täisarv)
-Name[fa]=مدل رنگ CMYK )عدد صحیح ۱۶ بیتی(
-Name[fi]=CMYK-värimalli 
-Name[fr]=Modèle de couleurs CMYK (entiers 16 bits)
-Name[fy]=CMYK-kleurmodel (16-bit ynteger)
-Name[gl]=Modelo de Cores CMYK (inteiro de 16-bit)
-Name[he]=מודל צבעים CMYK (16 סיביות)
-Name[hu]=CMYK színmodell (16 bites egész)
-Name[is]=CMYK litategund (16-bita)
-Name[it]=Modello di colore CMYK (intero a 16 bit)
-Name[ja]=CMYK カラーモデル (16 ビット整数)
-Name[km]=គំរូ​ពណ៌ CMYK (ចំនួនគត់ ១៦ ប៊ីត)
-Name[lt]=CMYK spalvų modelis (16-bitų sveikasis)
-Name[nb]=CMYK-fargemodell (16-bit heltall)
-Name[nds]=CMYK-Klöörmodell (16-Bit Heeltall)
-Name[ne]=CMYK रङ मोडेल (१६-बिट इन्टिजर)
-Name[nl]=CMYK-kleurmodel (16-bit integer)
-Name[pl]=Przestrzeń barw CMYK (16-bitowa liczbowa całkowita)
-Name[pt]=Modelo de Cor CMYK (inteiros de 16 bits)
-Name[pt_BR]=Modelo de Cor CMYK (inteiros de 16 bits)
-Name[ru]=CMYK (целое 16-бит)
-Name[se]=CMYK-ivdnemálle (16-bihttá lohku)
-Name[sk]=CMYK model farieb (16-bitové čísla)
-Name[sl]=Barvni model CMYK (16-bitno celo število)
-Name[sr]=CMYK модел боја (16-битно целобројно)
-Name[sr@Latn]=CMYK model boja (16-bitno celobrojno)
-Name[sv]=CMYK-färgmodell (16-bitars heltal)
-Name[uk]=Модель кольору CMYK (16-бітне ціле число)
-Name[uz]=CMYK rang usuli (16-bit butun)
-Name[uz@cyrillic]=CMYK ранг усули (16-бит бутун)
-Name[zh_CN]=CMYK 色彩模型(16 位整数)
-Name[zh_TW]=CMYK 色彩模型 (16-bit 整數)
-Comment=Color model for 16-bit integer per channel CMYK images
-Comment[bg]=Цветови модел за 16 битови изображения CMYK
-Comment[ca]=Model de color d'enters de 16 bits per a canal d'imatges CMYK
-Comment[cy]=Model lliw ar gyfer delweddau CMYK â chyfanrif 16-did/sianel
-Comment[da]=Farvemodel for 16-bit heltal pr kanal CMYK-billeder
-Comment[de]=Farbmodell für 16-bit pro Kanal CMYK-Bilder
-Comment[el]=Χρωματικό μοντέλο για 16-bit ακεραίους ανά κανάλι CMYK εικόνες
-Comment[en_GB]=Colour model for 16-bit integer per channel CMYK images
-Comment[es]=Modelo de color de entero de 16 bits por canal para imágenes CMYK
-Comment[et]=16-bitiste täisarvuliste kanalitega CMYK-piltide värvimudel
-Comment[fa]=مدل رنگ برای عدد صحیح ۱۶ بیتی در هر مجرای تصاویر CMYK
-Comment[fi]=Värimalli 8-bittisille/kanavaisille CMYK-kuville 
-Comment[fr]=Modèle de couleurs pour des images CMYK à 16 bits/plage
-Comment[fy]=Kleurmodel foar 16-bit/kanaal fan CMYK-ôfbeeldings
-Comment[gl]=Modelo de Cores para imaxes CMYK de 16-bit por canal
-Comment[he]=מודל צבעים עבור תמונות CMYK של 16 סיביות/ערוצים
-Comment[hu]=Színmodell 16 bit/csatorna CMYK képekhez
-Comment[is]=Litategund fyrir 16-bita/rásir CMYK myndir
-Comment[it]=Modello di colore per immagini CMYK a canale di 16 bit
-Comment[ja]=16 ビット整数/チャンネル CMYK 画像のためのカラーモデル
-Comment[km]=គំរូ​ពណ៌​សម្រាប់​រូបភាព CMYK ចំនួនគត់ ១៦ ប៊ីត​ក្នុង​មួយ​ឆានែល
-Comment[nb]=Fargemodell for CMYK-bilder med 16 bit per kanal
-Comment[nds]=Klöörmodell för CMYK-Biller mit 16-Bit Heeltall per Kanaal
-Comment[ne]=प्रति च्यानल CMYK छविहरूको १६ बिट इन्टिजरका लागि रङ मोडेल
-Comment[nl]=Kleurmodel voor 16-bit/kanaal van CMYK-afbeeldingen
-Comment[pl]=Przestrzeń barw dla obrazków CMYK z 16-bitowymi liczbami całkowitymi na kanał
-Comment[pt]=Modelo de cor para imagens CMYK com 16 bits por canal
-Comment[pt_BR]=Modelo de cor para imagens CMYK com 16 bits por canal
-Comment[ru]=Цветовое пространство CMYK (целое 16-бит/канал)
-Comment[se]=CMYK-ivdnemálle mas lea 16 bihttá kanálas
-Comment[sk]=Model farieb pre CMYK obrázky so 16 bitmi na kanál
-Comment[sl]=Barvni model za slike CMYK z 16 biti/kanal
-Comment[sr]=Модел боја за CMYK слике, 16-битно целобројно по каналу
-Comment[sr@Latn]=Model boja za CMYK slike, 16-bitno celobrojno po kanalu
-Comment[sv]=Färgmodell för 16-bitars heltal per kanal CMYK-bilder
-Comment[uk]=Модель кольору з 16-бітним цілим числом для кожного каналу зображень CMYK
-Comment[zh_CN]=16 位整数每通道 CYMK 图像的色彩模型
-Comment[zh_TW]=每色頻為 16-bit 的 CMYK 圖片色彩模型
-ServiceTypes=Krita/ColorSpace
-Type=Service
-X-KDE-Library=krita_cmyk_u16_plugin
-X-Krita-Version=2
diff --git a/krita/colorspaces/cmyk_u8/Makefile.am b/krita/colorspaces/cmyk_u8/Makefile.am
deleted file mode 100644
index 98e5ac527..000000000
--- a/krita/colorspaces/cmyk_u8/Makefile.am
+++ /dev/null
@@ -1,20 +0,0 @@
-kde_services_DATA = kritacmykplugin.desktop
-
-INCLUDES  = -I$(srcdir)/../../sdk \
-	-I$(srcdir)/../../kritacolor/color_strategy \
-	-I$(srcdir)/../../kritacolor \
-	$(KOFFICE_INCLUDES) \
-	$(all_includes)
-
-kde_module_LTLIBRARIES = kritacmykplugin.la
-
-kritacmykplugin_la_SOURCES = cmyk_plugin.cc kis_cmyk_colorspace.cc
-noinst_HEADERS = cmyk_plugin.h kis_cmyk_colorspace.h 
-
-kritacmykplugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -llcms
-kritacmykplugin_la_LIBADD =  ../../kritacolor/libkritacolor.la
-
-kritacmykplugin_la_METASOURCES = AUTO
-
-
-SUBDIRS=templates
diff --git a/krita/colorspaces/cmyk_u8/cmyk_plugin.cc b/krita/colorspaces/cmyk_u8/cmyk_plugin.cc
deleted file mode 100644
index d216417eb..000000000
--- a/krita/colorspaces/cmyk_u8/cmyk_plugin.cc
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * cmyk_plugin.cc -- Part of Krita
- *
- * Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <klocale.h>
-#include <kiconloader.h>
-#include <kinstance.h>
-#include <kmessagebox.h>
-#include <kstandarddirs.h>
-#include <ktempfile.h>
-#include <kdebug.h>
-#include <kgenericfactory.h>
-
-#include <kis_debug_areas.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_basic_histogram_producers.h>
-
-#include "cmyk_plugin.h"
-
-#include "kis_cmyk_colorspace.h"
-
-typedef KGenericFactory<CMYKPlugin> CMYKPluginFactory;
-K_EXPORT_COMPONENT_FACTORY( kritacmykplugin, CMYKPluginFactory( "krita" ) )
-
-
-CMYKPlugin::CMYKPlugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-    setInstance(CMYKPluginFactory::instance());
-    if ( tqparent->inherits("KisColorSpaceFactoryRegistry") )
-    {
-        KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>( tqparent );
-
-        KisColorSpace * colorSpaceCMYK = new KisCmykColorSpace(f, 0);
-        KisColorSpaceFactory * csf = new KisCmykColorSpaceFactory();
-        Q_CHECK_PTR(colorSpaceCMYK);
-        f->add(csf);
-
-        KisHistogramProducerFactoryRegistry::instance()->add(
-                new KisBasicHistogramProducerFactory<KisBasicU8HistogramProducer>
-                (KisID("CMYKHISTO", i18n("CMYK")), colorSpaceCMYK) );
-    }
-
-}
-
-CMYKPlugin::~CMYKPlugin()
-{
-}
-
-#include "cmyk_plugin.moc"
diff --git a/krita/colorspaces/cmyk_u8/cmyk_plugin.h b/krita/colorspaces/cmyk_u8/cmyk_plugin.h
deleted file mode 100644
index 073a5e613..000000000
--- a/krita/colorspaces/cmyk_u8/cmyk_plugin.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef CMYK_PLUGIN_H_
-#define CMYK_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-/**
- * A plugin wrapper around the CMYK colour space strategy.
- */
-class CMYKPlugin : public KParts::Plugin
-{
-    Q_OBJECT
-  TQ_OBJECT
-public:
-    CMYKPlugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~CMYKPlugin();
-
-
-};
-
-#endif // CMYK_PLUGIN_H_
diff --git a/krita/colorspaces/cmyk_u8/cmykplugin.rc b/krita/colorspaces/cmyk_u8/cmykplugin.rc
deleted file mode 100644
index 915a1d0a1..000000000
--- a/krita/colorspaces/cmyk_u8/cmykplugin.rc
+++ /dev/null
@@ -1,7 +0,0 @@
-<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui library="kritacmykplugin" version="1">
-<Menu name="Image"><text>&amp;Image</text>
-    <Menu name="Mode"><text>&amp;Mode</text>
-            <Action name="convert to RGB(A)"/>
-    </Menu>
-</Menu></kpartgui>
diff --git a/krita/colorspaces/cmyk_u8/composite.h b/krita/colorspaces/cmyk_u8/composite.h
deleted file mode 100644
index 4914a7dfa..000000000
--- a/krita/colorspaces/cmyk_u8/composite.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- *  Copyright (c) 2006 Boudewijn Rempt
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
- 
-#ifndef COMPOSITE_CMYK
-#define COMPOSITE_CMYK
-
-void compositeCopyCyan(TQ_INT32 stride,
-               TQ_UINT8 *dst, 
-               TQ_INT32 dststride,
-               TQ_UINT8 *src, 
-               TQ_INT32 srcstride,
-               TQ_INT32 rows, 
-               TQ_INT32 cols, 
-               TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    compositeCopyChannel(PIXEL_CYAN, stride, dst, dststride, src, srcstride, rows, cols, opacity);
-}
-
-
-void compositeCopyMagenta(TQ_INT32 stride,
-              TQ_UINT8 *dst, 
-              TQ_INT32 dststride,
-              TQ_UINT8 *src, 
-              TQ_INT32 srcstride,
-              TQ_INT32 rows, 
-              TQ_INT32 cols, 
-              TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    compositeCopyChannel(PIXEL_MAGENTA, stride, dst, dststride, src, srcstride, rows, cols, opacity);
-
-}
-
-
-void compositeCopyYellow(TQ_INT32 stride,
-             TQ_UINT8 *dst, 
-             TQ_INT32 dststride,
-             TQ_UINT8 *src, 
-             TQ_INT32 srcstride,
-             TQ_INT32 rows, 
-             TQ_INT32 cols, 
-             TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    compositeCopyChannel(PIXEL_YELLOW, stride, dst, dststride, src, srcstride, rows, cols, opacity);
-
-}
-
-
-void compositeCopyBlack(TQ_INT32 stride,
-            TQ_UINT8 *dst, 
-            TQ_INT32 dststride,
-            TQ_UINT8 *src, 
-            TQ_INT32 srcstride,
-            TQ_INT32 rows, 
-            TQ_INT32 cols, 
-            TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    compositeCopyChannel(PIXEL_BLACK, stride, dst, dststride, src, srcstride, rows, cols, opacity);
-}
-
-
-#endif
\ No newline at end of file
diff --git a/krita/colorspaces/cmyk_u8/kis_cmyk_colorspace.cc b/krita/colorspaces/cmyk_u8/kis_cmyk_colorspace.cc
deleted file mode 100644
index 49256c261..000000000
--- a/krita/colorspaces/cmyk_u8/kis_cmyk_colorspace.cc
+++ /dev/null
@@ -1,710 +0,0 @@
-/*
- *  Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can CYANistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <limits.h>
-#include <stdlib.h>
-#include <config.h>
-#include LCMS_HEADER
-
-#include <tqimage.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include "kis_cmyk_colorspace.h"
-#include "kis_u8_base_colorspace.h"
-#include "kis_colorspace_factory_registry.h"
-
-#include "kis_profile.h"
-#include "kis_integer_maths.h"
-
-namespace cmyk {
-    const TQ_INT32 MAX_CHANNEL_CMYK = 4;
-    const TQ_INT32 MAX_CHANNEL_CMYKA = 5;
-}
-
-KisCmykColorSpace::KisCmykColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) :
-    KisU8BaseColorSpace(KisID("CMYK", i18n("CMYK")), TYPE_CMYK5_8, icSigCmykData, tqparent, p)
-{
-    m_channels.push_back(new KisChannelInfo(i18n("Cyan"), i18n("C"), 0, KisChannelInfo::COLOR, KisChannelInfo::UINT8, 1, TQt::cyan));
-    m_channels.push_back(new KisChannelInfo(i18n("Magenta"), i18n("M"), 1, KisChannelInfo::COLOR, KisChannelInfo::UINT8, 1, TQt::magenta));
-    m_channels.push_back(new KisChannelInfo(i18n("Yellow"), i18n("Y"), 2, KisChannelInfo::COLOR, KisChannelInfo::UINT8, 1, TQt::yellow));
-    m_channels.push_back(new KisChannelInfo(i18n("Black"), i18n("K"), 3, KisChannelInfo::COLOR, KisChannelInfo::UINT8, 1, TQt::black));
-    m_channels.push_back(new KisChannelInfo(i18n("Alpha"), i18n("A"), 4, KisChannelInfo::ALPHA, KisChannelInfo::UINT8, 1, TQt::white));
-
-    m_alphaPos = PIXEL_CMYK_ALPHA;
-
-    init();
-}
-
-KisCmykColorSpace::~KisCmykColorSpace()
-{
-}
-
-void KisCmykColorSpace::mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const
-{
-    TQ_UINT32 totalCyan = 0, totalMagenta = 0, totalYellow = 0, totalK = 0, totalAlpha = 0;
-
-    while (nColors--)
-    {
-        TQ_UINT32 alpha = (*colors)[4];
-        TQ_UINT32 alphaTimesWeight = alpha * *weights;
-
-        totalCyan += (*colors)[0] * alphaTimesWeight;
-        totalMagenta += (*colors)[1] * alphaTimesWeight;
-        totalYellow += (*colors)[2] * alphaTimesWeight;
-        totalK += (*colors)[3] * alphaTimesWeight;
-        totalAlpha += alphaTimesWeight;
-
-        weights++;
-        colors++;
-    }
-
-    //Q_ASSERT(newAlpha <= 255*255);
-    if (totalAlpha > 255*255) totalAlpha = 255*255;
-
-    // Divide by 255.
-    dst[4] =(((totalAlpha + 0x80)>>8)+totalAlpha) >>8;
-
-    if (totalAlpha > 0) {
-        totalCyan = totalCyan / totalAlpha;
-        totalMagenta = totalMagenta / totalAlpha;
-        totalYellow = totalYellow / totalAlpha;
-        totalK = totalK / totalAlpha;
-    } // else the values are already 0 too
-
-    TQ_UINT32 dstCyan = totalCyan;
-    if (dstCyan > 255) dstCyan = 255;
-    dst[0] = dstCyan;
-
-    TQ_UINT32 dstMagenta = totalMagenta;
-    if (dstMagenta > 255) dstMagenta = 255;
-    dst[1] = dstMagenta;
-
-    TQ_UINT32 dstYellow = totalYellow;
-    if (dstYellow > 255) dstYellow = 255;
-    dst[2] = dstYellow;
-
-    TQ_UINT32 dstK = totalK;
-    if (dstK > 255) dstK = 255;
-    dst[3] = dstK;
-}
-
-
-void KisCmykColorSpace::convolveColors(TQ_UINT8** colors, TQ_INT32* kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const
-{
-    TQ_INT32 totalCyan = 0, totalMagenta = 0, totalYellow = 0, totalK = 0, totalAlpha = 0;
-
-    while (nColors--)
-    {
-        TQ_INT32 weight = *kernelValues;
-
-        if (weight != 0) {
-            totalCyan += (*colors)[PIXEL_CYAN] * weight;
-            totalMagenta += (*colors)[PIXEL_MAGENTA] * weight;
-            totalYellow += (*colors)[PIXEL_YELLOW] * weight;
-            totalK += (*colors)[PIXEL_BLACK] * weight;
-            totalAlpha += (*colors)[PIXEL_CMYK_ALPHA] * weight;
-        }
-        colors++;
-        kernelValues++;
-    }
-
-
-    if (channelFlags & KisChannelInfo::FLAG_COLOR) {
-        dst[PIXEL_CYAN] = CLAMP((totalCyan / factor) + offset, 0, TQ_UINT8_MAX);
-        dst[PIXEL_MAGENTA] = CLAMP((totalMagenta / factor) + offset, 0, TQ_UINT8_MAX);
-        dst[PIXEL_YELLOW] =  CLAMP((totalYellow / factor) + offset, 0, TQ_UINT8_MAX);
-        dst[PIXEL_BLACK] =  CLAMP((totalK / factor) + offset, 0, TQ_UINT8_MAX);
-    }
-    if (channelFlags & KisChannelInfo::FLAG_ALPHA) {
-        dst[PIXEL_CMYK_ALPHA] = CLAMP((totalAlpha/ factor) + offset, 0, TQ_UINT8_MAX);
-    }
-}
-
-
-void KisCmykColorSpace::invertColor(TQ_UINT8 * src, TQ_INT32 nPixels)
-{
-    TQ_UINT32 psize = pixelSize();
-
-    while (nPixels--)
-    {
-        src[PIXEL_CYAN] = TQ_UINT8_MAX - src[PIXEL_CYAN];
-        src[PIXEL_MAGENTA] = TQ_UINT8_MAX - src[PIXEL_MAGENTA];
-        src[PIXEL_YELLOW] = TQ_UINT8_MAX - src[PIXEL_YELLOW];
-        src[PIXEL_BLACK] = TQ_UINT8_MAX - src[PIXEL_BLACK];
-        src += psize;
-    }
-}
-
-void KisCmykColorSpace::applyAdjustment(const TQ_UINT8 *src, TQ_UINT8 *dst, KisColorAdjustment *adj, TQ_INT32 nPixels)
-{
-    TQ_UINT32 psize = pixelSize();
-
-    TQ_UINT8 * tmp = new TQ_UINT8[nPixels * psize];
-    TQ_UINT8 * tmpPtr = tmp;
-    memcpy(tmp, dst, nPixels * psize);
-
-    KisAbstractColorSpace::applyAdjustment(src, dst, adj, nPixels);
-
-    // Copy the alpha, which lcms doesn't do for us, grumble.
-
-    while (nPixels--)
-    {
-        dst[4] = tmpPtr[4];
-
-        tmpPtr += psize;
-        dst += psize;
-    }
-
-    delete [] tmp;
-}
-
-TQValueVector<KisChannelInfo *> KisCmykColorSpace::channels() const
-{
-    return m_channels;
-}
-
-TQ_UINT32 KisCmykColorSpace::nChannels() const
-{
-    return cmyk::MAX_CHANNEL_CMYKA;
-}
-
-TQ_UINT32 KisCmykColorSpace::nColorChannels() const
-{
-    return cmyk::MAX_CHANNEL_CMYK;
-}
-
-TQ_UINT32 KisCmykColorSpace::pixelSize() const
-{
-    return cmyk::MAX_CHANNEL_CMYKA;
-}
-
-void KisCmykColorSpace::getSingleChannelPixel(TQ_UINT8 *dstPixel, const TQ_UINT8 *srcPixel, TQ_UINT32 channelIndex)
-{
-    if (channelIndex < (TQ_UINT32)cmyk::MAX_CHANNEL_CMYKA) {
-
-        memset(dstPixel, 0, cmyk::MAX_CHANNEL_CMYKA * sizeof(TQ_UINT8));
-
-        if (OPACITY_TRANSPARENT != 0) {
-            dstPixel[PIXEL_CMYK_ALPHA] = OPACITY_TRANSPARENT;
-        }
-
-        memcpy(dstPixel + (channelIndex * sizeof(TQ_UINT8)), srcPixel + (channelIndex * sizeof(TQ_UINT8)), sizeof(TQ_UINT8));
-    }
-}
-
-void KisCmykColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-        TQ_INT32 columns = numColumns;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_CMYK_ALPHA];
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(srcAlpha, U8_tqmask);
-                }
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(srcAlpha, opacity);
-                }
-
-                if (srcAlpha == OPACITY_OPAQUE) {
-                    memcpy(dst, src, cmyk::MAX_CHANNEL_CMYKA * sizeof(TQ_UINT8));
-                } else {
-                    TQ_UINT8 dstAlpha = dst[PIXEL_CMYK_ALPHA];
-
-                    TQ_UINT8 srcBlend;
-
-                    if (dstAlpha == OPACITY_OPAQUE) {
-                        srcBlend = srcAlpha;
-                    } else {
-                        TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                        dst[PIXEL_CMYK_ALPHA] = newAlpha;
-
-                        if (newAlpha != 0) {
-                            srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                        } else {
-                            srcBlend = srcAlpha;
-                        }
-                    }
-
-                    if (srcBlend == OPACITY_OPAQUE) {
-                        memcpy(dst, src, cmyk::MAX_CHANNEL_CMYK * sizeof(TQ_UINT8));
-                    } else {
-                        dst[PIXEL_CYAN] = UINT8_BLEND(src[PIXEL_CYAN], dst[PIXEL_CYAN], srcBlend);
-                        dst[PIXEL_MAGENTA] = UINT8_BLEND(src[PIXEL_MAGENTA], dst[PIXEL_MAGENTA], srcBlend);
-                        dst[PIXEL_YELLOW] = UINT8_BLEND(src[PIXEL_YELLOW], dst[PIXEL_YELLOW], srcBlend);
-                        dst[PIXEL_BLACK] = UINT8_BLEND(src[PIXEL_BLACK], dst[PIXEL_BLACK], srcBlend);
-                    }
-                }
-            }
-
-            columns--;
-            src += cmyk::MAX_CHANNEL_CMYKA;
-            dst += cmyk::MAX_CHANNEL_CMYKA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart) {
-            tqmaskRowStart += tqmaskRowStride;
-        }
-    }
-}
-
-#define COMMON_COMPOSITE_OP_PROLOG() \
-    while (rows > 0) { \
-    \
-        const TQ_UINT8 *src = srcRowStart; \
-        TQ_UINT8 *dst = dstRowStart; \
-        TQ_INT32 columns = numColumns; \
-        const TQ_UINT8 *tqmask = tqmaskRowStart; \
-    \
-        while (columns > 0) { \
-    \
-            TQ_UINT8 srcAlpha = src[PIXEL_CMYK_ALPHA]; \
-            TQ_UINT8 dstAlpha = dst[PIXEL_CMYK_ALPHA]; \
-    \
-            srcAlpha = TQMIN(srcAlpha, dstAlpha); \
-    \
-            if (tqmask != 0) { \
-                TQ_UINT8 U8_tqmask = *tqmask; \
-    \
-                if (U8_tqmask != OPACITY_OPAQUE) { \
-                    srcAlpha = UINT8_MULT(srcAlpha, U8_tqmask); \
-} \
-                tqmask++; \
-} \
-    \
-            if (srcAlpha != OPACITY_TRANSPARENT) { \
-    \
-                if (opacity != OPACITY_OPAQUE) { \
-                    srcAlpha = UINT8_MULT(srcAlpha, opacity); \
-} \
-    \
-                TQ_UINT8 srcBlend; \
-    \
-                if (dstAlpha == OPACITY_OPAQUE) { \
-                    srcBlend = srcAlpha; \
-} else { \
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha); \
-                    dst[PIXEL_CMYK_ALPHA] = newAlpha; \
-    \
-                    if (newAlpha != 0) { \
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha); \
-} else { \
-                        srcBlend = srcAlpha; \
-} \
-}
-
-#define COMMON_COMPOSITE_OP_EPILOG() \
-} \
-    \
-            columns--; \
-            src += cmyk::MAX_CHANNEL_CMYKA; \
-            dst += cmyk::MAX_CHANNEL_CMYKA; \
-} \
-    \
-        rows--; \
-        srcRowStart += srcRowStride; \
-        dstRowStart += dstRowStride; \
-        if(tqmaskRowStart) { \
-            tqmaskRowStart += tqmaskRowStride; \
-} \
-}
-
-void KisCmykColorSpace::compositeMultiply(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-
-        for (int channel = 0; channel < cmyk::MAX_CHANNEL_CMYK; channel++) {
-            TQ_UINT8 srcColor = src[channel];
-            TQ_UINT8 dstColor = dst[channel];
-
-            srcColor = UINT8_MULT(srcColor, dstColor);
-
-            dst[channel] = UINT8_BLEND(srcColor, dstColor, srcBlend);
-        }
-
-
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykColorSpace::compositeDivide(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < cmyk::MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT8 srcColor = src[channel];
-            TQ_UINT8 dstColor = dst[channel];
-
-            srcColor = TQMIN((dstColor * (UINT8_MAX + 1u) + (srcColor / 2u)) / (1u + srcColor), UINT8_MAX);
-
-            TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykColorSpace::compositeScreen(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < cmyk::MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT8 srcColor = src[channel];
-            TQ_UINT8 dstColor = dst[channel];
-
-            srcColor = UINT8_MAX - UINT8_MULT(UINT8_MAX - dstColor, UINT8_MAX - srcColor);
-
-            TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykColorSpace::compositeOverlay(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < cmyk::MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT8 srcColor = src[channel];
-            TQ_UINT8 dstColor = dst[channel];
-
-            srcColor = UINT8_MULT(dstColor, dstColor + 2u * UINT8_MULT(srcColor, UINT8_MAX - dstColor));
-
-            TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykColorSpace::compositeDodge(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < cmyk::MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT8 srcColor = src[channel];
-            TQ_UINT8 dstColor = dst[channel];
-
-            srcColor = TQMIN((dstColor * (UINT8_MAX + 1u)) / (UINT8_MAX + 1u - srcColor), UINT8_MAX);
-
-            TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykColorSpace::compositeBurn(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < cmyk::MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT8 srcColor = src[channel];
-            TQ_UINT8 dstColor = dst[channel];
-
-            srcColor = TQMIN(((UINT8_MAX - dstColor) * (UINT8_MAX + 1u)) / (srcColor + 1u), UINT8_MAX);
-            if (srcColor > UINT8_MAX - srcColor) srcColor = UINT8_MAX;
-            
-            TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykColorSpace::compositeDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < cmyk::MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT8 srcColor = src[channel];
-            TQ_UINT8 dstColor = dst[channel];
-
-            srcColor = TQMIN(srcColor, dstColor);
-
-            TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykColorSpace::compositeLighten(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < cmyk::MAX_CHANNEL_CMYK; channel++) {
-
-            TQ_UINT8 srcColor = src[channel];
-            TQ_UINT8 dstColor = dst[channel];
-
-            srcColor = TQMAX(srcColor, dstColor);
-
-            TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisCmykColorSpace::compositeErase(TQ_UINT8 *dst,
-                                          TQ_INT32 dstRowSize,
-                                          const TQ_UINT8 *src,
-                                          TQ_INT32 srcRowSize,
-                                          const TQ_UINT8 *srcAlphaMask,
-                                          TQ_INT32 tqmaskRowStride,
-                                          TQ_INT32 rows,
-                                          TQ_INT32 cols,
-                                          TQ_UINT8 /*opacity*/)
-{
-    while (rows-- > 0)
-    {
-        const Pixel *s = reinterpret_cast<const Pixel *>(src);
-        Pixel *d = reinterpret_cast<Pixel *>(dst);
-        const TQ_UINT8 *tqmask = srcAlphaMask;
-
-        for (TQ_INT32 i = cols; i > 0; i--, s++, d++)
-        {
-            TQ_UINT8 srcAlpha = s->alpha;
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_BLEND(srcAlpha, OPACITY_OPAQUE, U8_tqmask);
-                }
-                tqmask++;
-            }
-            d->alpha = UINT8_MULT(srcAlpha, d->alpha);
-        }
-
-        dst += dstRowSize;
-        src += srcRowSize;
-        if(srcAlphaMask) {
-            srcAlphaMask += tqmaskRowStride;
-        }
-    }
-}
-
-void KisCmykColorSpace::bitBlt(TQ_UINT8 *dst,
-                                  TQ_INT32 dstRowStride,
-                                  const TQ_UINT8 *src,
-                                  TQ_INT32 srcRowStride,
-                                  const TQ_UINT8 *tqmask,
-                                  TQ_INT32 tqmaskRowStride,
-                                  TQ_UINT8 opacity,
-                                  TQ_INT32 rows,
-                                  TQ_INT32 cols,
-                                  const KisCompositeOp& op)
-{
-
-    switch (op.op()) {
-        case COMPOSITE_UNDEF:
-        // Undefined == no composition
-            break;
-        case COMPOSITE_OVER:
-            compositeOver(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_IN:
-        //compositeIn(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        case COMPOSITE_OUT:
-        //compositeOut(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_ATOP:
-        //compositeAtop(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_XOR:
-        //compositeXor(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_PLUS:
-        //compositePlus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_MINUS:
-        //compositeMinus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_ADD:
-        //compositeAdd(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_SUBTRACT:
-        //compositeSubtract(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_DIFF:
-        //compositeDiff(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_MULT:
-            compositeMultiply(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_DIVIDE:
-            compositeDivide(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_BUMPMAP:
-        //compositeBumpmap(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_COPY:
-            compositeCopy(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_COPY_CYAN:
-        //compositeCopyCyan(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_COPY_MAGENTA:
-        //compositeCopyMagenta(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_COPY_YELLOW:
-        //compositeCopyYellow(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_COPY_OPACITY:
-        //compositeCopyOpacity(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_CLEAR:
-        //compositeClear(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_DISSOLVE:
-        //compositeDissolve(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_DISPLACE:
-        //compositeDisplace(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-#if 0
-        case COMPOSITE_MODULATE:
-        compositeModulate(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-        case COMPOSITE_THRESHOLD:
-        compositeThreshold(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-#endif
-        case COMPOSITE_NO:
-        // No composition.
-            break;
-        case COMPOSITE_DARKEN:
-            compositeDarken(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_LIGHTEN:
-            compositeLighten(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_HUE:
-        //compositeHue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_SATURATION:
-        //compositeSaturation(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_VALUE:
-        //compositeValue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_COLOR:
-        //compositeColor(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_COLORIZE:
-        //compositeColorize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_LUMINIZE:
-        //compositeLuminize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_SCREEN:
-            compositeScreen(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_OVERLAY:
-            compositeOverlay(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_ERASE:
-            compositeErase(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_DODGE:
-            compositeDodge(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_BURN:
-            compositeBurn(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_ALPHA_DARKEN:
-            abstractCompositeAlphaDarken<TQ_UINT8, U8Mult, Uint8ToU8, U8OpacityTest,
-                    PIXEL_CMYK_ALPHA, cmyk::MAX_CHANNEL_CMYK, cmyk::MAX_CHANNEL_CMYKA>(
-                    dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride,
-                    rows, cols, opacity, U8Mult(), Uint8ToU8(), U8OpacityTest());
-                    break;
-        default:
-            break;
-    }
-}
-
-KisCompositeOpList KisCmykColorSpace::userVisiblecompositeOps() const
-{
-    KisCompositeOpList list;
-
-    list.append(KisCompositeOp(COMPOSITE_OVER));
-    list.append(KisCompositeOp(COMPOSITE_ALPHA_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_MULT));
-    list.append(KisCompositeOp(COMPOSITE_BURN));
-    list.append(KisCompositeOp(COMPOSITE_DODGE));
-    list.append(KisCompositeOp(COMPOSITE_DIVIDE));
-    list.append(KisCompositeOp(COMPOSITE_SCREEN));
-    list.append(KisCompositeOp(COMPOSITE_OVERLAY));
-    list.append(KisCompositeOp(COMPOSITE_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_LIGHTEN));
-
-    return list;
-}
diff --git a/krita/colorspaces/cmyk_u8/kis_cmyk_colorspace.h b/krita/colorspaces/cmyk_u8/kis_cmyk_colorspace.h
deleted file mode 100644
index b02990bf2..000000000
--- a/krita/colorspaces/cmyk_u8/kis_cmyk_colorspace.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- *  Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_STRATEGY_COLORSPACE_CMYK_H_
-#define KIS_STRATEGY_COLORSPACE_CMYK_H_
-
-#include <tqcolor.h>
-#include <tqmap.h>
-#include <koffice_export.h>
-#include "kis_global.h"
-#include "kis_u8_base_colorspace.h"
-
-class KRITACORE_EXPORT KisCmykColorSpace : public KisU8BaseColorSpace {
-
-public:
-
-        
-    struct Pixel {
-            TQ_UINT16 cyan;
-            TQ_UINT16 magenta;
-            TQ_UINT16 yellow;
-            TQ_UINT16 black;
-            TQ_UINT16 alpha;
-        };
-public:
-    KisCmykColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p);
-    virtual ~KisCmykColorSpace();
-
-
-    virtual bool willDegrade(ColorSpaceIndependence independence)
-        {
-            if (independence == TO_RGBA8)
-                return true;
-            else
-                return false;
-        };
-
-
-
-public:
-
-    virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const;
-    virtual void applyAdjustment(const TQ_UINT8 *src, TQ_UINT8 *dst, KisColorAdjustment *adj, TQ_INT32 nPixels);
-    virtual void invertColor(TQ_UINT8 * src, TQ_INT32 nPixels);
-    virtual void convolveColors(TQ_UINT8** colors, TQ_INT32 * kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const;
-    // XXX: darken & intensity8?
-    
-    virtual TQValueVector<KisChannelInfo *> channels() const;
-    virtual TQ_UINT32 nChannels() const;
-    virtual TQ_UINT32 nColorChannels() const;
-    virtual TQ_UINT32 pixelSize() const;
-    virtual void getSingleChannelPixel(TQ_UINT8 *dstPixel, const TQ_UINT8 *srcPixel, TQ_UINT32 channelIndex);
-    
-    virtual KisCompositeOpList userVisiblecompositeOps() const;
-
-protected:
-    
-    virtual void bitBlt(TQ_UINT8 *dst,
-                        TQ_INT32 dstRowStride,
-                        const TQ_UINT8 *src,
-                        TQ_INT32 srcRowStride,
-                        const TQ_UINT8 *srcAlphaMask,
-                        TQ_INT32 tqmaskRowStride,
-                        TQ_UINT8 opacity,
-                        TQ_INT32 rows,
-                        TQ_INT32 cols,
-                        const KisCompositeOp& op);
-
-    void compositeOver(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeMultiply(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeDivide(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeScreen(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeOverlay(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeDodge(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeBurn(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeDarken(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeLighten(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-
-private:
-
-    TQ_UINT8 * m_qcolordata;
-
-    static const TQ_UINT8 PIXEL_CYAN = 0;
-    static const TQ_UINT8 PIXEL_MAGENTA = 1;
-    static const TQ_UINT8 PIXEL_YELLOW = 2;
-    static const TQ_UINT8 PIXEL_BLACK = 3;
-    static const TQ_UINT8 PIXEL_CMYK_ALPHA = 4;
-};
-
-class KisCmykColorSpaceFactory : public KisColorSpaceFactory
-{
-public:
-    /**
-     * Krita definition for use in .kra files and internally: unchanging name +
-     * i18n'able description.
-     */
-    virtual KisID id() const { return KisID("CMYK", i18n("CMYK (8-bit integer/channel)")); };
-
-    /**
-     * lcms colorspace type definition.
-     */
-    virtual TQ_UINT32 colorSpaceType() { return TYPE_CMYK5_8; };
-
-    virtual icColorSpaceSignature colorSpaceSignature() { return icSigCmykData; };
-
-    virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) { return new KisCmykColorSpace(tqparent, p); };
-
-    virtual TQString defaultProfile() { return "Offset printing, according to ISO/DIS 12647-2:2004, OFCOM, paper type 1 or 2 = coated art, 115 g/m2, screen ruling 60 cm-1, positive-acting plates"; }; //  Do not i18n -- this is from a data file
-};
-
-#endif // KIS_STRATEGY_COLORSPACE_CMYK_H_
diff --git a/krita/colorspaces/cmyk_u8/kritacmykplugin.desktop b/krita/colorspaces/cmyk_u8/kritacmykplugin.desktop
deleted file mode 100644
index 5ae04a6f5..000000000
--- a/krita/colorspaces/cmyk_u8/kritacmykplugin.desktop
+++ /dev/null
@@ -1,99 +0,0 @@
-[Desktop Entry]
-Name=CMYK Color Model
-Name[bg]=Цветови модел CMYK
-Name[br]=Gobari al livioù CMYK
-Name[ca]=Model de color CMYK
-Name[cy]=Model Lliw CMYK
-Name[da]=CMYK-farvemodel
-Name[de]=CMYK-Farbmodell
-Name[el]=Χρωματικό μοντέλο CMYK
-Name[en_GB]=CMYK Colour Model
-Name[eo]=CMYK-kolormodelo
-Name[es]=Modelo de color CMYK
-Name[et]=CMYK värvimudel
-Name[eu]=CMYK kolore-eredua
-Name[fa]=مدل رنگ CMYK
-Name[fi]=CMYK-värimalli
-Name[fr]=Modèle de couleurs CMYK
-Name[fy]=CMYK kleur-model
-Name[gl]=Modelo de Cores CMYK
-Name[he]=מודל צבעים CMYK
-Name[hi]=सीएमवायके रंग नमूना
-Name[hu]=CMYK színmodell
-Name[is]=CMYK litategund
-Name[it]=Modello di colore CMYK
-Name[ja]=CMYK カラーモデル
-Name[km]=គំរូពណ៌ CMYK
-Name[lt]=CMYK spalvų modelis
-Name[ms]=Model Warna CMYK
-Name[nb]=CMYK-fargemodell
-Name[nds]=CMYK-Klöörmodell
-Name[ne]=CMYK रङ मोडेलल
-Name[nl]=CMYK-kleurmodel
-Name[nn]=CMYK-fargemodell
-Name[pl]=Przestrzeń barw CMYK
-Name[pt]=Modelo de Cor CMYK
-Name[pt_BR]=Modelo de Cor CMYK
-Name[ru]=CMYK
-Name[se]=CMYK-ivdnemálle
-Name[sk]=Model farieb CMYK
-Name[sl]=Barvni model CMYK
-Name[sr]=CMYK модел боја
-Name[sr@Latn]=CMYK model boja
-Name[sv]=CMYK-färgmodell
-Name[ta]=CMYK வண்ண முறை
-Name[tr]=CMYK Renk Modeli
-Name[uk]=Модель кольору CMYK
-Name[uz]=CMYK rang usuli
-Name[uz@cyrillic]=CMYK ранг усули
-Name[zh_CN]=CMYK 色彩模型
-Name[zh_TW]=CMYK 色彩模型
-Comment=Color model for 8-bit/channel CMYK images
-Comment[bg]=Цветови модел за 8 битови изображения CMYK
-Comment[ca]=Model de color d'enters de 8 bits per a canal d'imatges CMYK
-Comment[cy]=Model lliw ar gyfer delweddau CMYK 8-did/sianel
-Comment[da]=Farvemodel for 8-bit/kanal CMYK-billeder
-Comment[de]=Farbmodell für 8-bit pro Kanal CMYK-Bilder
-Comment[el]=Χρωματικό μοντέλο για 8-bit/κανάλι CMYK εικόνες
-Comment[en_GB]=Colour model for 8-bit/channel CMYK images
-Comment[es]=Modelo de color para imágenes de 8 bits/canal CMYK
-Comment[et]=8-bitiste kanalitega CMYK-piltide värvimudel
-Comment[eu]=8 bit/kanaleko CMYK irudien kolore-eredua
-Comment[fa]=مدل رنگ برای تصاویر CMYK مجرا/۸ بیتی
-Comment[fi]=Värimalli 8-bittisille/kanavaisille CMYK-kuville
-Comment[fr]=Modèle de couleurs pour des images CMYK à 8 bits/plage
-Comment[fy]=Kleurmodel foar 8-bit/kanaal CMYK-ôfbeeldings
-Comment[gl]=Modelo de Cores para imaxer CMYK de 8-bit/canal
-Comment[he]=מודל צבעים עבור תמונות CMYK של 8 סיביות/ערוצים
-Comment[hi]=8-बिट/चैनल सीएमवायके छवियों के लिए रंग नमूना
-Comment[hu]=Színmodell 8 bit/csatorna CMYK képekhez
-Comment[is]=Litategund fyrir 8-bita/rásir CMYK myndir
-Comment[it]=Modello di colore per immagini CMYK a canale di 8 bit
-Comment[ja]=8 ビット/チャンネル CMYK 画像のためのカラーモデル
-Comment[km]=គំរូពណ៌សម្រាប់​រូបភាព CMYK ៨ ប៊ីត​ក្នុង​មួយ​ឆានែល
-Comment[ms]=Model warna bagi imej CMYK 8-bit/saluran
-Comment[nb]=Fargemodell for CMYK-bilder med 8 bit per kanal
-Comment[nds]=Klöörmodell för CMYK-Biller mit 8-Bit Heeltall per Kanaal
-Comment[ne]=८-बिट/च्यानल CMYK छविहरूका लागि रङ मोडेल
-Comment[nl]=Kleurmodel voor 8-bit/kanaal CMYK-afbeeldingen
-Comment[nn]=Fargemodell for CMYK-bilete med 8 bit per kanal
-Comment[pl]=Przestrzeń barw dla obrazków CMYK 8 bitów/kanał
-Comment[pt]=Modelo de cor para imagens CMYK com 8 bits por canal
-Comment[pt_BR]=Modelo de cor para imagens com 8-bits de canal CMYK
-Comment[ru]=Цветовое пространство CMYK (8-бит/канал)
-Comment[se]=CMYK-ivdnemálle mas lea 8 bihttá kanálas
-Comment[sk]=Model farieb pre CMYK obrázky s 8 bitmi na kanál
-Comment[sl]=Barvni model za slike CMYK z 8 biti/kanal
-Comment[sr]=Модел боја за CMYK слике са 8 битова по каналу
-Comment[sr@Latn]=Model boja za CMYK slike sa 8 bitova po kanalu
-Comment[sv]=Färgmodell för 8 bitar/kanal CMYK-bilder
-Comment[ta]=8/பிட்/வழி CMYK பிம்பங்களுக்கான வண்ண முறை
-Comment[tr]=8-bit/kanal CMYK görüntüler için renk modeli
-Comment[uk]=Модель кольору CMYK для зображень 8-біт/каналів
-Comment[zh_CN]=八位/通道 CMYK 图像的色彩模型
-Comment[zh_TW]=8-bit/色頻的 CMYK 圖片色彩模型
-ServiceTypes=Krita/ColorSpace
-Type=Service
-X-KDE-Library=kritacmykplugin
-X-Krita-Version=2
-
diff --git a/krita/colorspaces/cmyk_u8/templates/.directory b/krita/colorspaces/cmyk_u8/templates/.directory
deleted file mode 100644
index f69b12ea1..000000000
--- a/krita/colorspaces/cmyk_u8/templates/.directory
+++ /dev/null
@@ -1,5 +0,0 @@
-[Desktop Entry]
-Name=CMYK
-Name[fr]=CMJN
-Name[hi]=सीएमवायके
-X-KDE-DefaultTab=true
diff --git a/krita/colorspaces/cmyk_u8/templates/Makefile.am b/krita/colorspaces/cmyk_u8/templates/Makefile.am
deleted file mode 100644
index 7a975df88..000000000
--- a/krita/colorspaces/cmyk_u8/templates/Makefile.am
+++ /dev/null
@@ -1,8 +0,0 @@
-templates_DATA = .directory white_2000x800.desktop
-templatesdir = $(kde_datadir)/krita/templates/cmyk
-
-templatesrc_DATA = white_2000x800.kra
-templatesrcdir = $(kde_datadir)/krita/templates/cmyk/.source
-
-templatesicon_ICON = AUTO
-templatesicondir = $(kde_datadir)/krita/icons
diff --git a/krita/colorspaces/cmyk_u8/templates/cr48-action-template_cmyk_empty.png b/krita/colorspaces/cmyk_u8/templates/cr48-action-template_cmyk_empty.png
deleted file mode 100644
index 4e2374728..000000000
Binary files a/krita/colorspaces/cmyk_u8/templates/cr48-action-template_cmyk_empty.png and /dev/null differ
diff --git a/krita/colorspaces/cmyk_u8/templates/crsc-action-template_cmyk_empty.svgz b/krita/colorspaces/cmyk_u8/templates/crsc-action-template_cmyk_empty.svgz
deleted file mode 100644
index a1ad0ae5f..000000000
Binary files a/krita/colorspaces/cmyk_u8/templates/crsc-action-template_cmyk_empty.svgz and /dev/null differ
diff --git a/krita/colorspaces/cmyk_u8/templates/white_2000x800.desktop b/krita/colorspaces/cmyk_u8/templates/white_2000x800.desktop
deleted file mode 100644
index b1632e51e..000000000
--- a/krita/colorspaces/cmyk_u8/templates/white_2000x800.desktop
+++ /dev/null
@@ -1,100 +0,0 @@
-[Desktop Entry]
-Type=Link
-URL=.source/white_2000x800.kra
-Icon=template_cmyk_empty
-Name=White 2000 x 800
-Name[bg]=Бяло 2000x800
-Name[br]=Gwenn 2000 x 800
-Name[ca]=Blanc 2000 x 800
-Name[cy]=Gwyn 2000 x 800
-Name[da]=Hvidt 2000 x 800
-Name[de]=Weiß 2000 x 800
-Name[el]=Λευκό 2000 x 800
-Name[es]=2000 x 800 blanco
-Name[et]=Valge 2000 x 800
-Name[eu]=Zuria 2000 x 800
-Name[fa]=سفید ۸۰۰ × ۲۰۰۰
-Name[fi]=Valkoinen 2000 x 800
-Name[fr]=Image blanche 2000 x 800
-Name[fy]=Wyt 2000 x 800
-Name[ga]=Bán 2000×800
-Name[gl]=Branco 2000 x 800
-Name[he]=לבן ‎2000 x 800
-Name[hi]=सफेद 2000 x 800
-Name[hu]=fehér 2000 x 800
-Name[is]=Hvít 2000 x 800
-Name[it]=Bianco 2000 × 800
-Name[ja]=白 2000 x 800
-Name[km]=ពណ៌​ស 2000 x 800
-Name[lt]=Baltas 2000 x 800
-Name[lv]=Balts 2000 x 800
-Name[ms]=Putih 2000 x 800
-Name[nb]=Hvit 2000 x 800
-Name[nds]=Witt 2000 x 800
-Name[ne]=सेतो २००० x ८००
-Name[nl]=Wit 2000 x 800
-Name[nn]=Kvitt 2000 × 800
-Name[pl]=Biały 2000 x 800
-Name[pt]=Branca 2000 x 800
-Name[pt_BR]=2000 x 800 em Branco
-Name[ru]=Белый 2000x800
-Name[se]=Vilges 2000 × 800
-Name[sk]=Biely 2000 x 800
-Name[sl]=Bela 2000 x 800
-Name[sr]=Бела 2000 x 800
-Name[sr@Latn]=Bela 2000 x 800
-Name[sv]=Vit 2000 x 800
-Name[ta]=வெள்ளை 2000 x 800
-Name[tr]=Beyaz 2000 x 800
-Name[uk]=Біле 2000 x 800
-Name[uz]=Oq 2000 x 800
-Name[uz@cyrillic]=Оқ 2000 x 800
-Name[zh_CN]=白色 2000 x 800
-Name[zh_TW]=白色 2000 x 800
-Comment=Creates a white CMYK image of 2000 x 800 pixels.
-Comment[bg]=Създаване на бяло изображения CMYK с размери 2000x800 пиксела.
-Comment[ca]=Crea una imatge blanca CMYK de 2000 x 800 píxels.
-Comment[cy]=Creu delwedd CMYK wen o 2000 x 800 picsel.
-Comment[da]=Laver et hvidt CMYK-billede på 2000 x 800 biledpunkter.
-Comment[de]=Erstellt ein weißes CMYK-Bild mit 2000 x 800 Pixeln.
-Comment[el]=Δημιουργεί μία λευκή CMYK εικόνα μεγέθους 2000 x 800 εικονοστοιχείων.
-Comment[es]=Crea una imagen CMYK blanca de 2000 x 800 píxeles.
-Comment[et]=Loob valge CMYK-pildi mõõtmetega 2000 x 800 pikslit.
-Comment[eu]=2000 x 800 pixeleko CMYK irudi zuri bat sortzen du.
-Comment[fa]=یک تصویر سفید CMYK ۲۰۰۰ × ۸۰۰ تصویردانه‌ای ایجاد می‌کند.
-Comment[fi]=Luo valkoisen 2000 x 800 pikselin CMYK-kuvan.
-Comment[fr]=Crée une image CMYK blanche de 2000 x 800 pixels.
-Comment[fy]=Makket in wite CMYK-ôfbeelding oan fan 2000 x 2000 byldpunten.
-Comment[gl]=Cria unha imaxe CMYK branca de 2000 x 800 pixels.
-Comment[he]=יצירת תמונת CMYK לבנה בגודל ‎2000 x 800 פיקסלים
-Comment[hi]=2000 x 800 पिक्सेल की सफेद सीएमवायके छवि बनाता है.
-Comment[hu]=Létrehoz egy fehér, 2000 x 800 képpontos CMYK képet.
-Comment[is]=Býr til hvíta CMYK mynd með 2000 x 800 punktum.
-Comment[it]=Crea un'immagine CMYK bianca di 2000 × 800 pixel.
-Comment[ja]=2000 x 800 ピクセルの CMYK 画像を作成
-Comment[km]=បង្កើត​រូបភាព CMYK ពណ៌​ស​មួយ ដែល​មាន​ទំហំ ២០០០ x ៨០០ ភីកសែល ។
-Comment[ms]=Cipta  imej CMYK putih 2000 x 800 piksel.
-Comment[nb]=Lager et hvitt CMYK-bilde på 2000 x 800 piksler.
-Comment[nds]=Stellt en wittet CMYK-Bild mit 2000 x 800 Pixels op.
-Comment[ne]=२००० x ८०० पिक्सेलको सेतो CMYK छवि सिर्जना गर्दछ ।
-Comment[nl]=Maakt een witte CMYK-afbeelding aan van 2000 x 2000 pixels.
-Comment[nn]=Lagar eit kvitt CMYK-bilete på 2000 × 800 pikslar.
-Comment[pl]=Tworzy biały obrazek CMYK o rozmiarach 2000 na 800 pikseli.
-Comment[pt]=Cria uma imagem CMYK branca com 2000 x 800 pontos.
-Comment[pt_BR]=Cria uma imagem CMYK em branco de 2000 x 800 pixéis.
-Comment[ru]=Рисунок CMYK, 2000x800, белый фон
-Comment[se]=Ráhkada CMYK-gova mas leat 2000 × 800 govvačuoggá.
-Comment[sk]=Vytvorí biely obrázok CMYK s rozmermi 2000 x 800 pixelov.
-Comment[sl]=Ustvari belo sliko CMYK velikosti 2000 x 800 pik.
-Comment[sr]=Прави белу CMYK слику са 2000 x 800 пиксела.
-Comment[sr@Latn]=Pravi belu CMYK sliku sa 2000 x 800 piksela.
-Comment[sv]=Skapar en vit CMYK-bild med 2000 x 800 bildpunkter.
-Comment[ta]=2000 x 800 படத்துணுக்குகளில் ஒரு வெள்ளை CMYK  பிம்பத்தை உருவாக்குகிறது.
-Comment[tr]=2000 x 800 piksel ebadında beyaz bir CMYK görüntü oluşturur.
-Comment[uk]=Створює біле зображення CMYK 2000 x 800 пікселів.
-Comment[uz]=Oʻlchami 2000 x 800 nuqta boʻlgan oq CMYK rasmni yaratish.
-Comment[uz@cyrillic]=Ўлчами 2000 x 800 нуқта бўлган оқ CMYK расмни яратиш.
-Comment[zh_CN]=创建 2000 x 800 像素的白色 CMYK 图像。
-Comment[zh_TW]=建立一個白色，2000 x 800 像素的 CMYK 圖片。
-X-Krita-Version=2
-
diff --git a/krita/colorspaces/cmyk_u8/templates/white_2000x800.kra b/krita/colorspaces/cmyk_u8/templates/white_2000x800.kra
deleted file mode 100644
index 7fb7a1660..000000000
Binary files a/krita/colorspaces/cmyk_u8/templates/white_2000x800.kra and /dev/null differ
diff --git a/krita/colorspaces/gray_u16/Makefile.am b/krita/colorspaces/gray_u16/Makefile.am
deleted file mode 100644
index 87a94b924..000000000
--- a/krita/colorspaces/gray_u16/Makefile.am
+++ /dev/null
@@ -1,29 +0,0 @@
-# location for the rc file
-kde_services_DATA = krita_gray_u16_plugin.desktop
-
-INCLUDES  =  -I$(srcdir)/../../sdk \
-	-I$(srcdir)/../../kritacolor/color_strategy \
-	-I$(srcdir)/../../kritacolor/ \
-	$(KOFFICE_INCLUDES) \
-	$(all_includes)
-
-lib_LTLIBRARIES = libkrita_gray_u16.la
-libkrita_gray_u16_la_SOURCES = kis_gray_u16_colorspace.cc
-libkrita_gray_u16_la_LDFLAGS = $(all_libraries)
-libkrita_gray_u16_la_LIBADD =  ../../kritacolor/libkritacolor.la
-
-# Install this plugin in the KDE modules directory
-kde_module_LTLIBRARIES = krita_gray_u16_plugin.la
-
-# Srcs for the plugin
-krita_gray_u16_plugin_la_SOURCES = gray_u16_plugin.cc
-noinst_HEADERS = gray_u16_plugin.h kis_gray_u16_colorspace.h
-
-krita_gray_u16_plugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -llcms
-krita_gray_u16_plugin_la_LIBADD =  libkrita_gray_u16.la ../../kritacolor/libkritacolor.la
-
-krita_gray_u16_plugin_la_METASOURCES = AUTO
-
-
-SUBDIRS = .
-
diff --git a/krita/colorspaces/gray_u16/gray_u16_plugin.cc b/krita/colorspaces/gray_u16/gray_u16_plugin.cc
deleted file mode 100644
index f48ab6d50..000000000
--- a/krita/colorspaces/gray_u16/gray_u16_plugin.cc
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-* gray_u16_plugin.cc -- Part of Krita
-*
-* Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org)
-* Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
-*
-*  This program is free software; you can grayistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  This program is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  You should have received a copy of the GNU General Public License
-*  along with this program; if not, write to the Free Software
-*  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <kinstance.h>
-#include <kgenericfactory.h>
-#include <kdebug.h>
-
-#include <kis_debug_areas.h>
-
-#include <kis_colorspace_factory_registry.h>
-#include <kis_basic_histogram_producers.h>
-
-#include "gray_u16_plugin.h"
-#include "kis_gray_u16_colorspace.h"
-
-typedef KGenericFactory<GRAYU16Plugin> GRAYU16PluginFactory;
-K_EXPORT_COMPONENT_FACTORY( krita_gray_u16_plugin, GRAYU16PluginFactory( "krita" ) )
-
-
-GRAYU16Plugin::GRAYU16Plugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-    setInstance(GRAYU16PluginFactory::instance());
-
-    if ( tqparent->inherits("KisColorSpaceFactoryRegistry") )
-    {
-        KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>( tqparent );
-
-        KisColorSpace * colorSpaceGRAYU16 = new KisGrayU16ColorSpace(f, 0);
-        KisColorSpaceFactory * csf = new KisGrayU16ColorSpaceFactory();
-        Q_CHECK_PTR(colorSpaceGRAYU16);
-        f->add(csf);
-
-        KisHistogramProducerFactoryRegistry::instance()->add(
-                new KisBasicHistogramProducerFactory<KisBasicU16HistogramProducer>
-                (KisID("GRAYA16HISTO", i18n("GRAY/Alpha16")), colorSpaceGRAYU16) );
-    }
-
-}
-
-GRAYU16Plugin::~GRAYU16Plugin()
-{
-}
-
-#include "gray_u16_plugin.moc"
diff --git a/krita/colorspaces/gray_u16/gray_u16_plugin.h b/krita/colorspaces/gray_u16/gray_u16_plugin.h
deleted file mode 100644
index 39ef6c2ac..000000000
--- a/krita/colorspaces/gray_u16/gray_u16_plugin.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can grayistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef GRAY_U16_PLUGIN_H_
-#define GRAY_U16_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-/**
- * A plugin wrapper around the GRAY U16 colour space strategy.
- */
-class GRAYU16Plugin : public KParts::Plugin
-{
-    Q_OBJECT
-  TQ_OBJECT
-public:
-    GRAYU16Plugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~GRAYU16Plugin();
-
-};
-
-
-#endif // GRAY_U16_PLUGIN_H_
diff --git a/krita/colorspaces/gray_u16/kis_gray_u16_colorspace.cc b/krita/colorspaces/gray_u16/kis_gray_u16_colorspace.cc
deleted file mode 100644
index 00f3440c1..000000000
--- a/krita/colorspaces/gray_u16/kis_gray_u16_colorspace.cc
+++ /dev/null
@@ -1,658 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien  <freak@codepimps.org>
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <config.h>
-#include <limits.h>
-#include <stdlib.h>
-#include LCMS_HEADER
-
-#include <tqimage.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-#include <kglobal.h>
-
-#include "kis_gray_u16_colorspace.h"
-#include "kis_u16_base_colorspace.h"
-#include "kis_color_conversions.h"
-#include "kis_integer_maths.h"
-#include "kis_colorspace_factory_registry.h"
-
-namespace {
-    const TQ_INT32 MAX_CHANNEL_GRAY = 1;
-    const TQ_INT32 MAX_CHANNEL_GRAYA = 2;
-}
-
-KisGrayU16ColorSpace::KisGrayU16ColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) :
-    KisU16BaseColorSpace(KisID("GRAYA16", i18n("Grayscale (16-bit integer/channel)")), TYPE_GRAYA_16, icSigGrayData, tqparent, p)
-{
-    m_channels.push_back(new KisChannelInfo(i18n("Gray"), i18n("G"), PIXEL_GRAY * sizeof(TQ_UINT16), KisChannelInfo::COLOR, KisChannelInfo::UINT16, sizeof(TQ_UINT16)));
-    m_channels.push_back(new KisChannelInfo(i18n("Alpha"), i18n("A"), PIXEL_ALPHA * sizeof(TQ_UINT16), KisChannelInfo::ALPHA, KisChannelInfo::UINT16, sizeof(TQ_UINT16)));
-
-/*    LPGAMMATABLE Gamma = cmsBuildGamma(256, 2.2);
-    cmsHPROFILE hProfile = cmsCreateGrayProfile(cmsD50_xyY(), Gamma);
-    cmsFreeGamma(Gamma);
-*/
-
-    m_alphaPos = PIXEL_ALPHA * sizeof(TQ_UINT16);
-
-    init();
-}
-
-KisGrayU16ColorSpace::~KisGrayU16ColorSpace()
-{
-}
-
-void KisGrayU16ColorSpace::mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const
-{
-    TQ_UINT32 totalGray = 0, newAlpha = 0;
-
-    while (nColors--)
-    {
-        const Pixel *pixel = reinterpret_cast<const Pixel *>(*colors);
-
-        TQ_UINT32 alpha = pixel->alpha;
-        TQ_UINT32 alphaTimesWeight = UINT16_MULT(alpha, UINT8_TO_UINT16(*weights));
-
-        totalGray += UINT16_MULT(pixel->gray, alphaTimesWeight);
-        newAlpha += alphaTimesWeight;
-
-        weights++;
-        colors++;
-    }
-
-    Q_ASSERT(newAlpha <= U16_OPACITY_OPAQUE);
-
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->alpha = newAlpha;
-
-    if (newAlpha > 0) {
-        totalGray = UINT16_DIVIDE(totalGray, newAlpha);
-    }
-
-    dstPixel->gray = totalGray;
-}
-
-void KisGrayU16ColorSpace::convolveColors(TQ_UINT8** colors, TQ_INT32* kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst,
-                                          TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const
-{
-    TQ_INT32 totalGray = 0, totalAlpha = 0;
-
-    while (nColors--)
-    {
-        const Pixel * pixel = reinterpret_cast<const Pixel *>( *colors );
-
-        TQ_INT32 weight = *kernelValues;
-
-        if (weight != 0) {
-            totalGray += pixel->gray * weight;
-            totalAlpha += pixel->alpha * weight;
-        }
-        colors++;
-        kernelValues++;
-    }
-
-    Pixel * p = reinterpret_cast< Pixel *>( dst );
-
-    if (channelFlags & KisChannelInfo::FLAG_COLOR) {
-        p->gray = CLAMP( ( totalGray / factor) + offset, 0, TQ_UINT16_MAX);
-    }
-    if (channelFlags & KisChannelInfo::FLAG_ALPHA) {
-        p->alpha = CLAMP((totalAlpha/ factor) + offset, 0, TQ_UINT16_MAX);
-    }
-}
-
-
-void KisGrayU16ColorSpace::invertColor(TQ_UINT8 * src, TQ_INT32 nPixels)
-{
-    TQ_UINT32 psize = pixelSize();
-
-    while (nPixels--)
-    {
-        Pixel * p = reinterpret_cast< Pixel *>( src );
-        p->gray = TQ_UINT16_MAX - p->gray;
-        src += psize;
-    }
-}
-
-
-
-TQ_UINT8 KisGrayU16ColorSpace::intensity8(const TQ_UINT8 * src) const
-{
-    const Pixel * p = reinterpret_cast<const Pixel *>( src );
-    return UINT16_TO_UINT8(p->gray);
-}
-
-
-TQValueVector<KisChannelInfo *> KisGrayU16ColorSpace::channels() const
-{
-    return m_channels;
-}
-
-TQ_UINT32 KisGrayU16ColorSpace::nChannels() const
-{
-    return MAX_CHANNEL_GRAYA;
-}
-
-TQ_UINT32 KisGrayU16ColorSpace::nColorChannels() const
-{
-    return MAX_CHANNEL_GRAY;
-}
-
-TQ_UINT32 KisGrayU16ColorSpace::pixelSize() const
-{
-    return MAX_CHANNEL_GRAYA * sizeof(TQ_UINT16);
-}
-
-void KisGrayU16ColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT16 *src = reinterpret_cast<const TQ_UINT16 *>(srcRowStart);
-        TQ_UINT16 *dst = reinterpret_cast<TQ_UINT16 *>(dstRowStart);
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-        TQ_INT32 columns = numColumns;
-
-        while (columns > 0) {
-
-            TQ_UINT16 srcAlpha = src[PIXEL_ALPHA];
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = UINT16_MULT(srcAlpha, UINT8_TO_UINT16(U8_tqmask));
-                }
-                tqmask++;
-            }
-
-            if (srcAlpha != U16_OPACITY_TRANSPARENT) {
-
-                if (opacity != U16_OPACITY_OPAQUE) {
-                    srcAlpha = UINT16_MULT(srcAlpha, opacity);
-                }
-
-                if (srcAlpha == U16_OPACITY_OPAQUE) {
-                    memcpy(dst, src, MAX_CHANNEL_GRAYA * sizeof(TQ_UINT16));
-                } else {
-                    TQ_UINT16 dstAlpha = dst[PIXEL_ALPHA];
-
-                    TQ_UINT16 srcBlend;
-
-                    if (dstAlpha == U16_OPACITY_OPAQUE) {
-                        srcBlend = srcAlpha;
-                    } else {
-                        TQ_UINT16 newAlpha = dstAlpha + UINT16_MULT(U16_OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                        dst[PIXEL_ALPHA] = newAlpha;
-
-                        if (newAlpha != 0) {
-                            srcBlend = UINT16_DIVIDE(srcAlpha, newAlpha);
-                        } else {
-                            srcBlend = srcAlpha;
-                        }
-                    }
-
-                    if (srcBlend == U16_OPACITY_OPAQUE) {
-                        memcpy(dst, src, MAX_CHANNEL_GRAY * sizeof(TQ_UINT16));
-                    } else {
-                        dst[PIXEL_GRAY] = UINT16_BLEND(src[PIXEL_GRAY], dst[PIXEL_GRAY], srcBlend);
-                    }
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_GRAYA;
-            dst += MAX_CHANNEL_GRAYA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart) {
-            tqmaskRowStart += tqmaskRowStride;
-        }
-    }
-}
-
-#define COMMON_COMPOSITE_OP_PROLOG() \
-    while (rows > 0) { \
-    \
-        const TQ_UINT16 *src = reinterpret_cast<const TQ_UINT16 *>(srcRowStart); \
-        TQ_UINT16 *dst = reinterpret_cast<TQ_UINT16 *>(dstRowStart); \
-        TQ_INT32 columns = numColumns; \
-        const TQ_UINT8 *tqmask = tqmaskRowStart; \
-    \
-        while (columns > 0) { \
-    \
-            TQ_UINT16 srcAlpha = src[PIXEL_ALPHA]; \
-            TQ_UINT16 dstAlpha = dst[PIXEL_ALPHA]; \
-    \
-            srcAlpha = TQMIN(srcAlpha, dstAlpha); \
-    \
-            if (tqmask != 0) { \
-                TQ_UINT8 U8_tqmask = *tqmask; \
-    \
-                if (U8_tqmask != OPACITY_OPAQUE) { \
-                    srcAlpha = UINT16_MULT(srcAlpha, UINT8_TO_UINT16(U8_tqmask)); \
-                } \
-                tqmask++; \
-            } \
-    \
-            if (srcAlpha != U16_OPACITY_TRANSPARENT) { \
-    \
-                if (opacity != U16_OPACITY_OPAQUE) { \
-                    srcAlpha = UINT16_MULT(srcAlpha, opacity); \
-                } \
-    \
-                TQ_UINT16 srcBlend; \
-    \
-                if (dstAlpha == U16_OPACITY_OPAQUE) { \
-                    srcBlend = srcAlpha; \
-                } else { \
-                    TQ_UINT16 newAlpha = dstAlpha + UINT16_MULT(U16_OPACITY_OPAQUE - dstAlpha, srcAlpha); \
-                    dst[PIXEL_ALPHA] = newAlpha; \
-    \
-                    if (newAlpha != 0) { \
-                        srcBlend = UINT16_DIVIDE(srcAlpha, newAlpha); \
-                    } else { \
-                        srcBlend = srcAlpha; \
-                    } \
-                }
-
-#define COMMON_COMPOSITE_OP_EPILOG() \
-            } \
-    \
-            columns--; \
-            src += MAX_CHANNEL_GRAYA; \
-            dst += MAX_CHANNEL_GRAYA; \
-        } \
-    \
-        rows--; \
-        srcRowStart += srcRowStride; \
-        dstRowStart += dstRowStride; \
-        if(tqmaskRowStart) { \
-            tqmaskRowStart += tqmaskRowStride; \
-        } \
-    }
-
-void KisGrayU16ColorSpace::compositeMultiply(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        TQ_UINT16 srcColor = src[PIXEL_GRAY];
-        TQ_UINT16 dstColor = dst[PIXEL_GRAY];
-
-        srcColor = UINT16_MULT(srcColor, dstColor);
-
-        dst[PIXEL_GRAY] = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisGrayU16ColorSpace::compositeDivide(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = TQMIN((dstColor * (UINT16_MAX + 1u) + (srcColor / 2u)) / (1u + srcColor), UINT16_MAX);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisGrayU16ColorSpace::compositeScreen(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = UINT16_MAX - UINT16_MULT(UINT16_MAX - dstColor, UINT16_MAX - srcColor);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisGrayU16ColorSpace::compositeOverlay(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = UINT16_MULT(dstColor, dstColor + 2u * UINT16_MULT(srcColor, UINT16_MAX - dstColor));
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisGrayU16ColorSpace::compositeDodge(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = TQMIN((dstColor * (UINT16_MAX + 1u)) / (UINT16_MAX + 1u - srcColor), UINT16_MAX);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisGrayU16ColorSpace::compositeBurn(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = kMin(((UINT16_MAX - dstColor) * (UINT16_MAX + 1u)) / (srcColor + 1u), UINT16_MAX);
-            srcColor = kClamp(UINT16_MAX - srcColor, 0u, UINT16_MAX);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisGrayU16ColorSpace::compositeDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = TQMIN(srcColor, dstColor);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisGrayU16ColorSpace::compositeLighten(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = TQMAX(srcColor, dstColor);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-
-void KisGrayU16ColorSpace::compositeErase(TQ_UINT8 *dst,
-            TQ_INT32 dstRowSize,
-            const TQ_UINT8 *src,
-            TQ_INT32 srcRowSize,
-            const TQ_UINT8 *srcAlphaMask,
-            TQ_INT32 tqmaskRowStride,
-            TQ_INT32 rows,
-            TQ_INT32 cols,
-            TQ_UINT16 /*opacity*/)
-{
-    while (rows-- > 0)
-    {
-        const Pixel *s = reinterpret_cast<const Pixel *>(src);
-        Pixel *d = reinterpret_cast<Pixel *>(dst);
-        const TQ_UINT8 *tqmask = srcAlphaMask;
-
-        for (TQ_INT32 i = cols; i > 0; i--, s++, d++)
-        {
-            TQ_UINT16 srcAlpha = s->alpha;
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = UINT16_BLEND(srcAlpha, U16_OPACITY_OPAQUE, UINT8_TO_UINT16(U8_tqmask));
-                }
-                tqmask++;
-            }
-            d->alpha = UINT16_MULT(srcAlpha, d->alpha);
-        }
-
-        dst += dstRowSize;
-        src += srcRowSize;
-        if(srcAlphaMask) {
-            srcAlphaMask += tqmaskRowStride;
-        }
-    }
-}
-
-void KisGrayU16ColorSpace::bitBlt(TQ_UINT8 *dst,
-                      TQ_INT32 dstRowStride,
-                      const TQ_UINT8 *src,
-                      TQ_INT32 srcRowStride,
-                      const TQ_UINT8 *tqmask,
-                      TQ_INT32 tqmaskRowStride,
-                      TQ_UINT8 U8_opacity,
-                      TQ_INT32 rows,
-                      TQ_INT32 cols,
-                      const KisCompositeOp& op)
-{
-    TQ_UINT16 opacity = UINT8_TO_UINT16(U8_opacity);
-
-    switch (op.op()) {
-    case COMPOSITE_UNDEF:
-        // Undefined == no composition
-        break;
-    case COMPOSITE_OVER:
-        compositeOver(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_IN:
-        //compositeIn(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-    case COMPOSITE_OUT:
-        //compositeOut(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ATOP:
-        //compositeAtop(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_XOR:
-        //compositeXor(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_PLUS:
-        //compositePlus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_MINUS:
-        //compositeMinus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ADD:
-        //compositeAdd(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SUBTRACT:
-        //compositeSubtract(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DIFF:
-        //compositeDiff(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_MULT:
-        compositeMultiply(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DIVIDE:
-        compositeDivide(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_BUMPMAP:
-        //compositeBumpmap(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY:
-        compositeCopy(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, U8_opacity);
-        break;
-    case COMPOSITE_COPY_RED:
-        //compositeCopyRed(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_GREEN:
-        //compositeCopyGreen(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_BLUE:
-        //compositeCopyBlue(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_OPACITY:
-        //compositeCopyOpacity(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_CLEAR:
-        //compositeClear(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DISSOLVE:
-        //compositeDissolve(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DISPLACE:
-        //compositeDisplace(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-#if 0
-    case COMPOSITE_MODULATE:
-        compositeModulate(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_THRESHOLD:
-        compositeThreshold(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-#endif
-    case COMPOSITE_NO:
-        // No composition.
-        break;
-    case COMPOSITE_DARKEN:
-        compositeDarken(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_LIGHTEN:
-        compositeLighten(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_HUE:
-        //compositeHue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SATURATION:
-        //compositeSaturation(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_VALUE:
-        //compositeValue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COLOR:
-        //compositeColor(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COLORIZE:
-        //compositeColorize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_LUMINIZE:
-        //compositeLuminize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SCREEN:
-        compositeScreen(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_OVERLAY:
-        compositeOverlay(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ERASE:
-        compositeErase(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DODGE:
-        compositeDodge(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_BURN:
-        compositeBurn(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ALPHA_DARKEN:
-        abstractCompositeAlphaDarken<TQ_UINT16, U16Mult, Uint8ToU16, U16OpacityTest,
-                    PIXEL_ALPHA, MAX_CHANNEL_GRAY, MAX_CHANNEL_GRAYA>(
-                    dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride,
-                    rows, cols, opacity, U16Mult(), Uint8ToU16(), U16OpacityTest());
-        break;
-    default:
-        break;
-    }
-}
-
-KisCompositeOpList KisGrayU16ColorSpace::userVisiblecompositeOps() const
-{
-    KisCompositeOpList list;
-
-    list.append(KisCompositeOp(COMPOSITE_OVER));
-    list.append(KisCompositeOp(COMPOSITE_ALPHA_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_MULT));
-    list.append(KisCompositeOp(COMPOSITE_BURN));
-    list.append(KisCompositeOp(COMPOSITE_DODGE));
-    list.append(KisCompositeOp(COMPOSITE_DIVIDE));
-    list.append(KisCompositeOp(COMPOSITE_SCREEN));
-    list.append(KisCompositeOp(COMPOSITE_OVERLAY));
-    list.append(KisCompositeOp(COMPOSITE_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_LIGHTEN));
-
-    return list;
-}
diff --git a/krita/colorspaces/gray_u16/kis_gray_u16_colorspace.h b/krita/colorspaces/gray_u16/kis_gray_u16_colorspace.h
deleted file mode 100644
index f5fd6bde5..000000000
--- a/krita/colorspaces/gray_u16/kis_gray_u16_colorspace.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien  <freak@codepimps.org>
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can grayistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_STRATEGY_COLORSPACE_GRAY_U16_H_
-#define KIS_STRATEGY_COLORSPACE_GRAY_U16_H_
-
-#include <tqcolor.h>
-
-#include <koffice_export.h>
-
-#include "kis_global.h"
-#include "kis_u16_base_colorspace.h"
-#include "kis_integer_maths.h"
-
-
-class KRITATOOL_EXPORT KisGrayU16ColorSpace : public KisU16BaseColorSpace {
-public:
-
-    struct Pixel {
-        TQ_UINT16 gray;
-        TQ_UINT16 alpha;
-    };
-
-    virtual bool willDegrade(ColorSpaceIndependence independence)
-        {
-            if (independence == TO_RGBA8)
-                return true;
-            else
-                return false;
-        };
-
-
-public:
-    KisGrayU16ColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p);
-    virtual ~KisGrayU16ColorSpace();
-
-public:
-    virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const;
-    virtual void invertColor(TQ_UINT8 * src, TQ_INT32 nPixels);
-    virtual void convolveColors(TQ_UINT8** colors, TQ_INT32 * kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const;
-    virtual TQ_UINT8 intensity8(const TQ_UINT8 * src) const;
-
-    virtual TQValueVector<KisChannelInfo *> channels() const;
-    virtual TQ_UINT32 nChannels() const;
-    virtual TQ_UINT32 nColorChannels() const;
-    virtual TQ_UINT32 pixelSize() const;
-
-    virtual KisCompositeOpList userVisiblecompositeOps() const;
-
-
-protected:
-
-    virtual void bitBlt(TQ_UINT8 *dst,
-                TQ_INT32 dstRowStride,
-                const TQ_UINT8 *src,
-                TQ_INT32 srcRowStride,
-                const TQ_UINT8 *srcAlphaMask,
-                TQ_INT32 tqmaskRowStride,
-                TQ_UINT8 opacity,
-                TQ_INT32 rows,
-                TQ_INT32 cols,
-                const KisCompositeOp& op);
-
-    void compositeOver(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeMultiply(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeDivide(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeScreen(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeOverlay(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeDodge(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeBurn(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeDarken(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeLighten(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-
-private:
-    friend class KisGrayU16ColorSpaceTester;
-
-    static const TQ_UINT8 PIXEL_GRAY = 0;
-    static const TQ_UINT8 PIXEL_ALPHA = 1;
-};
-
-class KisGrayU16ColorSpaceFactory : public KisColorSpaceFactory
-{
-public:
-    /**
-     * Krita definition for use in .kra files and internally: unchanging name +
-     * i18n'able description.
-     */
-    virtual KisID id() const { return KisID("GRAYA16", i18n("Grayscale (16-bit integer/channel)")); };
-
-    /**
-     * lcms colorspace type definition.
-     */
-    virtual TQ_UINT32 colorSpaceType() { return TYPE_GRAY_16; };
-
-    virtual icColorSpaceSignature colorSpaceSignature() { return icSigGrayData; };
-
-    virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) { return new KisGrayU16ColorSpace(tqparent, p); };
-
-    virtual TQString defaultProfile() { return "gray built-in - (lcms internal)"; };
-};
-
-#endif // KIS_STRATEGY_COLORSPACE_GRAY_U16_H_
diff --git a/krita/colorspaces/gray_u16/krita_gray_u16_plugin.desktop b/krita/colorspaces/gray_u16/krita_gray_u16_plugin.desktop
deleted file mode 100644
index 8ba4e38e0..000000000
--- a/krita/colorspaces/gray_u16/krita_gray_u16_plugin.desktop
+++ /dev/null
@@ -1,83 +0,0 @@
-[Desktop Entry]
-Name=Grayscale Color Model (16-bit integer)
-Name[bg]=Цветови модел сива гама (16 бита)
-Name[ca]=Model de color d'escala de grisos (enters de 16 bits)
-Name[cy]=Model Lliw Graddlwyd (cyfanrif 16-did)
-Name[da]=Farvemodel med gråskala (16-bit heltal)
-Name[de]=Graustufen-Farbmodell (16-bit Ganzzahl)
-Name[el]=Χρωματικό μοντέλο διαβαθμίσεων του γκρι (16 bit ακέραιοι)
-Name[en_GB]=Greyscale Colour Model (16-bit integer)
-Name[eo]=Grizoskala kolormodelo (16-bita entjero)
-Name[es]=Modelo de color de escala de grises (entero de 16 bits)
-Name[et]=Halltooni värvimudel (16-bitine)
-Name[fa]=مدل رنگ مقیاس خاکستری )عدد صحیح ۱۶ بیتی(
-Name[fi]=Harmaasävyvärimalli (16-bittinen)
-Name[fr]=Modèle de couleurs en nivaux de gris (entiers 16 bits)
-Name[fy]=Kleurmodel foar griiswearden (16-bit yntegers)
-Name[gl]=Modelo de Cores en Escala de Gris (inteiro de 16-bit)
-Name[he]=מודל צבעים של גווני אפור )16 סיביות(
-Name[hu]=Szürkeárnyalatos színmodell (16 bites egész)
-Name[is]=Gráskala litategund (16-bita heiltala)
-Name[it]=Modello di colore a scala di grigio (intero a 16 bit)
-Name[ja]=グレースケール カラーモデル (16 ビット整数)
-Name[km]=គំរូ​ពណ៌​មាត្រដ្ឋានប្រផេះ (ចំនួនគត់ ១៦ ប៊ីត)
-Name[nb]=Fargemodell med gråtoner (16-bit heltall)
-Name[nds]=Griestöön-Klöörmodell (16-Bit Heeltall)
-Name[ne]=ग्रेस्केल रङ मोडेल (१६-बिट इन्टिजर)
-Name[nl]=Kleurmodel voor grijswaarden (16-bit integers)
-Name[pl]=Skala szarości (16-bitowa liczba całkowita)
-Name[pt]=Modelo de Cor de Tons de Cinzento (inteiros de 16 bits)
-Name[pt_BR]=Modelo de Cor de Tons de Cinza (inteiros de 16 bits)
-Name[ru]=Градации серого (целое 16-бит)
-Name[se]=Ránesivdnemálle (16-bihttá lohku)
-Name[sk]=Čiernobiely/šedý model farieb (16-bitové čísla)
-Name[sl]=Sivinski barvni model (16-bitno celo število)
-Name[sr]=Модел боја у сивим нијансама (16-битно целобројно)
-Name[sr@Latn]=Model boja u sivim nijansama (16-bitno celobrojno)
-Name[sv]=Färgmodell med gråskala (16-bitars heltal)
-Name[uk]=Модель кольору відтінків сірого (16-бітне ціле число)
-Name[uz]=Kul rang usuli (16-bit butun)
-Name[uz@cyrillic]=Кул ранг усули (16-бит бутун)
-Name[zh_CN]=灰度色彩模型(16 位整数)
-Name[zh_TW]=灰階色彩模型 (16-bit 整數)
-Comment=Color model for 16-bit integer per channel Grayscale images
-Comment[bg]=Цветови модел за 16 битови изображения в сива гама
-Comment[ca]=Model de color d'enters de 16 bits per a canal d'imatges d'escala de grisos
-Comment[cy]=Model lliw ar gyfer delweddau Graddlwyd â chyfanrif 16-did/sianel
-Comment[da]=Farvemodel for 16-bit heltal pr kanal Gråskala-billeder
-Comment[de]=Farbmodell für 16-bit Ganzzahl pro Kanal Graustufen-Bilder
-Comment[el]=Χρωματικό μοντέλο για 16-bit ακεραίους ανά κανάλι με διαβαθμίσεις του γκρι εικόνες
-Comment[en_GB]=Colour model for 16-bit integer per channel Greyscale images
-Comment[es]=Modelo de color de entero de 16 bits por canal para imágenes de escala de grises
-Comment[et]=16-bitiste täisarvuliste kanalitega halltoonis piltide värvimudel
-Comment[fa]=مدل رنگ برای عدد صحیح ۱۶ بیتی در هر تصویر مقیاس خاکستری مجرا
-Comment[fi]=Värimalli 16-bittisille harmaasävykuville
-Comment[fr]=Modèle de couleurs pour des images en nivaux de gris à 16 bits/plage
-Comment[fy]=Kleurmodel foar16-bit/kanaal griiswearde-ôfbeeldings
-Comment[gl]=Modelo de cor para imaxes en escala de grises de  16-bit por canal
-Comment[he]=מודל צבעים עבור תמונות של 16 סיביות בגווני אפור
-Comment[hu]=Színmodell 16 bit/csatorna szürkeárnyalatos képekhez
-Comment[is]=Litategund fyrir 16-bita heiltölu á rás gráskala myndir
-Comment[it]=Modello di colore per immagini in scala di grigio a canale di 16 bit
-Comment[ja]=16 ビット整数/チャンネル グレースケール画像のためのカラーモデル
-Comment[km]=គំរូ​ពណ៌​សម្រាប់​រូបភាព​មាត្រដ្ឋាន​ប្រផេះ​ចំនួន​គត់ ១៦ ប៊ីត​ក្នុង​មួយ​ឆានែល
-Comment[nb]=Fargemodell for gråtonebilde med 16 bit per kanal
-Comment[nds]=Klöörmodell för Griestöön-Biller mit 16-Bit Heeltall per Kanaal
-Comment[ne]=प्रति च्यानल ग्रेस्केल छविहरूका १६-बिट च्यानलका लागि रङ मोडेल
-Comment[nl]=Kleurmodel voor 16-bit/kanaal grijswaarde-afbeeldingen
-Comment[pl]=Przestrzeń barw dla obrazków w skali szarości z 16-bitową liczbą całkowitą na kanał
-Comment[pt]=Modelo de cor para imagens de tons de cinzento com 16 bits por canal
-Comment[pt_BR]=Modelo de cor para imagens de tons de cinza com 16 bits por canal
-Comment[ru]=Цветовое пространство градаций серого (целое 16-бит/канал)
-Comment[sk]=Model farieb pre ČB/šedé obrázky so 16 bitmi na kanál
-Comment[sl]=Barvni model za 16-bitna cela števila/kanal sivinske slike
-Comment[sr]=Модел боја за слике у сивим нијансама, 16-битно целобројно по каналу
-Comment[sr@Latn]=Model boja za slike u sivim nijansama, 16-bitno celobrojno po kanalu
-Comment[sv]=Färgmodell för 16-bitars heltal per kanal gråskalebilder
-Comment[uk]=Модель кольору для зображень відтінків сірого, 16-біт/канал
-Comment[zh_CN]=每通道 16 位整数的灰度图像色彩模型
-Comment[zh_TW]=每色頻為 16-bit 的灰階圖片色彩模型
-ServiceTypes=Krita/ColorSpace
-Type=Service
-X-Krita-Version=2
-X-KDE-Library=krita_gray_u16_plugin
diff --git a/krita/colorspaces/gray_u8/Makefile.am b/krita/colorspaces/gray_u8/Makefile.am
deleted file mode 100644
index df24b5146..000000000
--- a/krita/colorspaces/gray_u8/Makefile.am
+++ /dev/null
@@ -1,31 +0,0 @@
-kde_services_DATA = kritagrayplugin.desktop
-
-INCLUDES  =  -I$(srcdir)/../../sdk \
-	-I$(srcdir)/../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../kritacolor/ \
-	-I$(interfacedir) \
-	$(KOFFICE_INCLUDES) \
-	$(all_includes)
-
-
-lib_LTLIBRARIES = libkritagrayscale.la
-libkritagrayscale_la_SOURCES = kis_gray_colorspace.cc
-libkritagrayscale_la_LDFLAGS = $(all_libraries)
-libkritagrayscale_la_LIBADD =  ../../kritacolor/libkritacolor.la
-
-kde_module_LTLIBRARIES = kritagrayplugin.la
-
-kritagrayplugin_la_SOURCES = gray_plugin.cc
-noinst_HEADERS = gray_plugin.h kis_gray_colorspace.h
-
-kritagrayplugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -llcms
-kritagrayplugin_la_LIBADD =  libkritagrayscale.la ../../kritacolor/libkritacolor.la
-
-kritagrayplugin_la_METASOURCES = AUTO
-
-if include_kunittest_tests
-TESTSDIR = tests
-endif
-
-SUBDIRS = . templates $(TESTSDIR)
-
diff --git a/krita/colorspaces/gray_u8/gray_plugin.cc b/krita/colorspaces/gray_u8/gray_plugin.cc
deleted file mode 100644
index d8df4393c..000000000
--- a/krita/colorspaces/gray_u8/gray_plugin.cc
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * gray_plugin.cc -- Part of Krita
- *
- * Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <klocale.h>
-#include <kiconloader.h>
-#include <kinstance.h>
-#include <kmessagebox.h>
-#include <kstandarddirs.h>
-#include <ktempfile.h>
-#include <kdebug.h>
-#include <kgenericfactory.h>
-
-#include <kis_debug_areas.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_basic_histogram_producers.h>
-
-#include "gray_plugin.h"
-#include "kis_gray_colorspace.h"
-
-typedef KGenericFactory<GrayPlugin> GrayPluginFactory;
-K_EXPORT_COMPONENT_FACTORY( kritagrayplugin, GrayPluginFactory( "kritacore" ) )
-
-
-GrayPlugin::GrayPlugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-           setInstance(GrayPluginFactory::instance());
-
-    // This is not a gui plugin; only load it when the doc is created.
-    if ( tqparent->inherits("KisColorSpaceFactoryRegistry") )
-    {
-
-        KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>( tqparent );
-
-        // .22 gamma grayscale or something like that. Taken from the lcms tutorial...
-        LPGAMMATABLE Gamma = cmsBuildGamma(256, 2.2);
-        cmsHPROFILE hProfile = cmsCreateGrayProfile(cmsD50_xyY(), Gamma);
-        cmsFreeGamma(Gamma);
-        KisProfile *defProfile = new KisProfile(hProfile);
-
-        f->addProfile(defProfile);
-
-        KisColorSpace * colorSpaceGrayA = new KisGrayColorSpace(f, 0);
-
-        KisColorSpaceFactory * csf = new KisGrayColorSpaceFactory();
-        Q_CHECK_PTR(colorSpaceGrayA);
-
-        f->add(csf);
-
-        KisHistogramProducerFactoryRegistry::instance()->add(
-            new KisBasicHistogramProducerFactory<KisBasicU8HistogramProducer>
-            (KisID("GRAYA8HISTO", i18n("GRAY/Alpha8")), colorSpaceGrayA) );
-    }
-
-}
-
-GrayPlugin::~GrayPlugin()
-{
-}
-
-#include "gray_plugin.moc"
diff --git a/krita/colorspaces/gray_u8/gray_plugin.h b/krita/colorspaces/gray_u8/gray_plugin.h
deleted file mode 100644
index f18bf77c5..000000000
--- a/krita/colorspaces/gray_u8/gray_plugin.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef GRAY_PLUGIN_H_
-#define GRAY_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-/**
- * A plugin wrapper around the GRAY colour space strategy.
- */
-class GrayPlugin : public KParts::Plugin
-{
-    Q_OBJECT
-  TQ_OBJECT
-public:
-    GrayPlugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~GrayPlugin();
-
-};
-
-#endif // GRAY_PLUGIN_H_
diff --git a/krita/colorspaces/gray_u8/grayplugin.rc b/krita/colorspaces/gray_u8/grayplugin.rc
deleted file mode 100644
index e14278e7a..000000000
--- a/krita/colorspaces/gray_u8/grayplugin.rc
+++ /dev/null
@@ -1,7 +0,0 @@
-<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui library="kritagrayplugin" version="1">
-<Menu name="Image"><text>&amp;Image</text>
-    <Menu name="Mode"><text>&amp;Mode</text>
-            <Action name="convert to Gray(A)"/>
-    </Menu>
-</Menu></kpartgui>
diff --git a/krita/colorspaces/gray_u8/kis_gray_colorspace.cc b/krita/colorspaces/gray_u8/kis_gray_colorspace.cc
deleted file mode 100644
index dbd475df4..000000000
--- a/krita/colorspaces/gray_u8/kis_gray_colorspace.cc
+++ /dev/null
@@ -1,997 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien  <freak@codepimps.org>
- *  Copyright (c) 2004 Cyrille Berger
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <limits.h>
-#include <stdlib.h>
-
-#include <config.h>
-#include LCMS_HEADER
-
-#include <tqimage.h>
-
-#include <klocale.h>
-#include <kdebug.h>
-#include <kglobal.h>
-
-#include "kis_abstract_colorspace.h"
-#include "kis_u8_base_colorspace.h"
-#include "kis_gray_colorspace.h"
-#include "kis_integer_maths.h"
-
-#define downscale(quantum)  (quantum) //((unsigned char) ((quantum)/257UL))
-#define upscale(value)  (value) // ((TQ_UINT8) (257UL*(value)))
-
-namespace {
-    const TQ_INT32 MAX_CHANNEL_GRAYSCALE = 1;
-    const TQ_INT32 MAX_CHANNEL_GRAYSCALEA = 2;
-}
-
-KisGrayColorSpace::KisGrayColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) :
-    KisU8BaseColorSpace(KisID("GRAYA", i18n("Grayscale")), TYPE_GRAYA_8, icSigGrayData, tqparent, p)
-{
-    m_channels.push_back(new KisChannelInfo(i18n("Gray"), i18n("G"), 0, KisChannelInfo::COLOR, KisChannelInfo::UINT8));
-    m_channels.push_back(new KisChannelInfo(i18n("Alpha"), i18n("A"), 1, KisChannelInfo::ALPHA, KisChannelInfo::UINT8));
-
-    m_alphaPos = PIXEL_GRAY_ALPHA;
-
-    init();
-}
-
-
-KisGrayColorSpace::~KisGrayColorSpace()
-{
-}
-
-void KisGrayColorSpace::setPixel(TQ_UINT8 *pixel, TQ_UINT8 gray, TQ_UINT8 alpha) const
-{
-    pixel[PIXEL_GRAY] = gray;
-    pixel[PIXEL_GRAY_ALPHA] = alpha;
-}
-
-void KisGrayColorSpace::getPixel(const TQ_UINT8 *pixel, TQ_UINT8 *gray, TQ_UINT8 *alpha) const
-{
-    *gray = pixel[PIXEL_GRAY];
-    *alpha = pixel[PIXEL_GRAY_ALPHA];
-}
-
-void KisGrayColorSpace::getAlpha(const TQ_UINT8 *pixel, TQ_UINT8 *alpha) const
-{
-    *alpha = pixel[PIXEL_GRAY_ALPHA];
-}
-
-void KisGrayColorSpace::setAlpha(TQ_UINT8 *pixels, TQ_UINT8 alpha, TQ_INT32 nPixels) const
-{
-    while (nPixels > 0) {
-        pixels[PIXEL_GRAY_ALPHA] = alpha;
-        --nPixels;
-        pixels += MAX_CHANNEL_GRAYSCALEA;
-    }
-}
-
-void KisGrayColorSpace::mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const
-{
-    TQ_UINT32 totalGray = 0, newAlpha = 0;
-
-    while (nColors--)
-    {
-        TQ_UINT32 alpha = (*colors)[PIXEL_GRAY_ALPHA];
-        TQ_UINT32 alphaTimesWeight = UINT8_MULT(alpha, *weights);
-
-        totalGray += (*colors)[PIXEL_GRAY] * alphaTimesWeight;
-        newAlpha += alphaTimesWeight;
-
-        weights++;
-        colors++;
-    }
-
-    Q_ASSERT(newAlpha <= 255);
-
-    dst[PIXEL_GRAY_ALPHA] = newAlpha;
-
-    if (newAlpha > 0) {
-        totalGray = UINT8_DIVIDE(totalGray, newAlpha);
-    }
-
-    // Divide by 255.
-    totalGray += 0x80;
-    TQ_UINT32 dstGray = ((totalGray >> 8) + totalGray) >> 8;
-    Q_ASSERT(dstGray <= 255);
-    dst[PIXEL_GRAY] = dstGray;
-}
-
-void KisGrayColorSpace::convolveColors(TQ_UINT8** colors, TQ_INT32* kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const
-{
-    TQ_INT32 totalGray = 0, totalAlpha = 0;
-
-    while (nColors--)
-    {
-        TQ_INT32 weight = *kernelValues;
-
-        if (weight != 0) {
-            totalGray += (*colors)[PIXEL_GRAY] * weight;
-            totalAlpha += (*colors)[PIXEL_GRAY_ALPHA] * weight;
-        }
-        colors++;
-        kernelValues++;
-    }
-
-
-    if (channelFlags & KisChannelInfo::FLAG_COLOR) {
-        dst[PIXEL_GRAY] = CLAMP((totalGray / factor) + offset, 0, TQ_UINT8_MAX);
-    }
-    if (channelFlags & KisChannelInfo::FLAG_ALPHA) {
-        dst[PIXEL_GRAY_ALPHA] = CLAMP((totalAlpha/ factor) + offset, 0, TQ_UINT8_MAX);
-    }
-
-}
-
-
-void KisGrayColorSpace::invertColor(TQ_UINT8 * src, TQ_INT32 nPixels)
-{
-    TQ_UINT32 psize = pixelSize();
-
-    while (nPixels--)
-    {
-        src[PIXEL_GRAY] = TQ_UINT8_MAX - src[PIXEL_GRAY];
-        src += psize;
-    }
-}
-
-void KisGrayColorSpace::darken(const TQ_UINT8 * src, TQ_UINT8 * dst, TQ_INT32 shade, bool compensate, double compensation, TQ_INT32 nPixels) const
-{
-    TQ_UINT32 pSize = pixelSize();
-
-    while (nPixels--) {
-        if (compensate) {
-            dst[PIXEL_GRAY]  = (TQ_INT8) TQMIN(255,((src[PIXEL_GRAY] * shade) / (compensation * 255)));
-        }
-        else {
-            dst[PIXEL_GRAY]  = (TQ_INT8) TQMIN(255, (src[PIXEL_GRAY] * shade / 255));
-        }
-        dst += pSize;
-        src += pSize;
-    }
-}
-
-TQ_UINT8 KisGrayColorSpace::intensity8(const TQ_UINT8 * src) const
-{
-    return src[PIXEL_GRAY];
-}
-
-TQValueVector<KisChannelInfo *> KisGrayColorSpace::channels() const
-{
-    return m_channels;
-}
-
-TQ_UINT32 KisGrayColorSpace::nChannels() const
-{
-    return MAX_CHANNEL_GRAYSCALEA;
-}
-
-TQ_UINT32 KisGrayColorSpace::nColorChannels() const
-{
-    return MAX_CHANNEL_GRAYSCALE;
-}
-
-TQ_UINT32 KisGrayColorSpace::pixelSize() const
-{
-    return MAX_CHANNEL_GRAYSCALEA;
-}
-
-void KisGrayColorSpace::bitBlt(TQ_UINT8 *dst,
-                      TQ_INT32 dstRowStride,
-                      const TQ_UINT8 *src,
-                      TQ_INT32 srcRowStride,
-                      const TQ_UINT8 *tqmask,
-                      TQ_INT32 tqmaskRowStride,
-                      TQ_UINT8 opacity,
-                      TQ_INT32 rows,
-                      TQ_INT32 cols,
-                      const KisCompositeOp& op)
-{
-    switch (op.op()) {
-    case COMPOSITE_OVER:
-        compositeOver(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_MULT:
-        compositeMultiply(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DIVIDE:
-        compositeDivide(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DARKEN:
-        compositeDarken(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_LIGHTEN:
-        compositeLighten(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SCREEN:
-        compositeScreen(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_OVERLAY:
-        compositeOverlay(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DODGE:
-        compositeDodge(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_BURN:
-        compositeBurn(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ERASE:
-        compositeErase(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY:
-        compositeCopy(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_CLEAR: {
-        TQ_UINT8 *d;
-        TQ_INT32 linesize;
-
-        linesize = MAX_CHANNEL_GRAYSCALEA*sizeof(TQ_UINT8) * cols;
-        d = dst;
-        while (rows-- > 0) {
-            memset(d, 0, linesize);
-            d += dstRowStride;
-        }
-    }
-        break;
-    case COMPOSITE_ALPHA_DARKEN:
-        compositeAlphaDarken(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-
-    default:
-        break;
-    }
-}
-
-KisCompositeOpList KisGrayColorSpace::userVisiblecompositeOps() const
-{
-    KisCompositeOpList list;
-
-    list.append(KisCompositeOp(COMPOSITE_OVER));
-    list.append(KisCompositeOp(COMPOSITE_MULT));
-    list.append(KisCompositeOp(COMPOSITE_BURN));
-    list.append(KisCompositeOp(COMPOSITE_DODGE));
-    list.append(KisCompositeOp(COMPOSITE_DIVIDE));
-    list.append(KisCompositeOp(COMPOSITE_SCREEN));
-    list.append(KisCompositeOp(COMPOSITE_OVERLAY));
-    list.append(KisCompositeOp(COMPOSITE_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_LIGHTEN));
-
-    return list;
-}
-
-void KisGrayColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_GRAY_ALPHA];
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(srcAlpha, opacity);
-                }
-
-                if (srcAlpha == OPACITY_OPAQUE) {
-                    memcpy(dst, src, MAX_CHANNEL_GRAYSCALEA * sizeof(TQ_UINT8));
-                } else {
-                    TQ_UINT8 dstAlpha = dst[PIXEL_GRAY_ALPHA];
-
-                    TQ_UINT8 srcBlend;
-
-                    if (dstAlpha == OPACITY_OPAQUE) {
-                        srcBlend = srcAlpha;
-                    } else {
-                        TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                        dst[PIXEL_GRAY_ALPHA] = newAlpha;
-
-                        if (newAlpha != 0) {
-                            srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                        } else {
-                            srcBlend = srcAlpha;
-                        }
-                    }
-
-                    if (srcBlend == OPACITY_OPAQUE) {
-                        memcpy(dst, src, MAX_CHANNEL_GRAYSCALE * sizeof(TQ_UINT8));
-                    } else {
-                        dst[PIXEL_GRAY] = UINT8_BLEND(src[PIXEL_GRAY], dst[PIXEL_GRAY], srcBlend);
-                    }
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_GRAYSCALEA;
-            dst += MAX_CHANNEL_GRAYSCALEA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisGrayColorSpace::compositeMultiply(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_GRAY_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_GRAY_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_GRAY_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_GRAY_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                TQ_UINT8 srcColor = src[PIXEL_GRAY];
-                TQ_UINT8 dstColor = dst[PIXEL_GRAY];
-
-                srcColor = UINT8_MULT(srcColor, dstColor);
-
-                dst[PIXEL_GRAY] = UINT8_BLEND(srcColor, dstColor, srcBlend);
-            }
-
-            columns--;
-            src += MAX_CHANNEL_GRAYSCALEA;
-            dst += MAX_CHANNEL_GRAYSCALEA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisGrayColorSpace::compositeDivide(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_GRAY_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_GRAY_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_GRAY_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_GRAY_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_GRAYSCALE; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = TQMIN((dstColor * (UINT8_MAX + 1)) / (1 + srcColor), UINT8_MAX);
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_GRAYSCALEA;
-            dst += MAX_CHANNEL_GRAYSCALEA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisGrayColorSpace::compositeScreen(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_GRAY_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_GRAY_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_GRAY_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_GRAY_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_GRAYSCALE; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = UINT8_MAX - UINT8_MULT(UINT8_MAX - dstColor, UINT8_MAX - srcColor);
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_GRAYSCALEA;
-            dst += MAX_CHANNEL_GRAYSCALEA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisGrayColorSpace::compositeOverlay(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_GRAY_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_GRAY_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_GRAY_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_GRAY_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_GRAYSCALE; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = UINT8_MULT(dstColor, dstColor + UINT8_MULT(2 * srcColor, UINT8_MAX - dstColor));
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_GRAYSCALEA;
-            dst += MAX_CHANNEL_GRAYSCALEA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisGrayColorSpace::compositeDodge(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_GRAY_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_GRAY_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_GRAY_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_GRAY_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_GRAYSCALE; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = TQMIN((dstColor * (UINT8_MAX + 1)) / (UINT8_MAX + 1 - srcColor), UINT8_MAX);
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_GRAYSCALEA;
-            dst += MAX_CHANNEL_GRAYSCALEA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisGrayColorSpace::compositeBurn(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_GRAY_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_GRAY_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_GRAY_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_GRAY_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_GRAYSCALE; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = kMin(((UINT8_MAX - dstColor) * (UINT8_MAX + 1)) / (srcColor + 1), UINT8_MAX);
-                    srcColor = kClamp(UINT8_MAX - srcColor, 0u, UINT8_MAX);
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_GRAYSCALEA;
-            dst += MAX_CHANNEL_GRAYSCALEA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisGrayColorSpace::compositeDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_GRAY_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_GRAY_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_GRAY_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_GRAY_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_GRAYSCALE; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = TQMIN(srcColor, dstColor);
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_GRAYSCALEA;
-            dst += MAX_CHANNEL_GRAYSCALEA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisGrayColorSpace::compositeLighten(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_GRAY_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_GRAY_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_GRAY_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_GRAY_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_GRAYSCALE; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = TQMAX(srcColor, dstColor);
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_GRAYSCALEA;
-            dst += MAX_CHANNEL_GRAYSCALEA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisGrayColorSpace::compositeErase(TQ_UINT8 *dst,
-            TQ_INT32 dstRowSize,
-            const TQ_UINT8 *src,
-            TQ_INT32 srcRowSize,
-            const TQ_UINT8 *srcAlphaMask,
-            TQ_INT32 tqmaskRowStride,
-            TQ_INT32 rows,
-            TQ_INT32 cols,
-            TQ_UINT8 /*opacity*/)
-{
-    TQ_INT32 i;
-    TQ_UINT8 srcAlpha;
-
-    while (rows-- > 0)
-    {
-        const TQ_UINT8 *s = src;
-        TQ_UINT8 *d = dst;
-        const TQ_UINT8 *tqmask = srcAlphaMask;
-
-        for (i = cols; i > 0; i--, s+=MAX_CHANNEL_GRAYSCALEA, d+=MAX_CHANNEL_GRAYSCALEA)
-        {
-            srcAlpha = s[PIXEL_GRAY_ALPHA];
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_BLEND(srcAlpha, OPACITY_OPAQUE, *tqmask);
-                tqmask++;
-            }
-            d[PIXEL_GRAY_ALPHA] = UINT8_MULT(srcAlpha, d[PIXEL_GRAY_ALPHA]);
-        }
-
-        dst += dstRowSize;
-        if(srcAlphaMask)
-            srcAlphaMask += tqmaskRowStride;
-        src += srcRowSize;
-    }
-}
-
-void KisGrayColorSpace::compositeAlphaDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride,
-                                     const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride,
-                                     const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride,
-                                     TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-        TQ_INT32 columns = numColumns;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_GRAY_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_GRAY_ALPHA];
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (opacity != OPACITY_OPAQUE) {
-                srcAlpha = UINT8_MULT(srcAlpha, opacity);
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT && srcAlpha >= dstAlpha) {
-                dst[PIXEL_GRAY_ALPHA] = srcAlpha;
-                memcpy(dst, src, MAX_CHANNEL_GRAYSCALE * sizeof(TQ_UINT8));
-            }
-
-            columns--;
-            src += MAX_CHANNEL_GRAYSCALEA;
-            dst += MAX_CHANNEL_GRAYSCALEA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
diff --git a/krita/colorspaces/gray_u8/kis_gray_colorspace.h b/krita/colorspaces/gray_u8/kis_gray_colorspace.h
deleted file mode 100644
index 66da3c302..000000000
--- a/krita/colorspaces/gray_u8/kis_gray_colorspace.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_STRATEGY_COLORSPACE_GRAYSCALE_H_
-#define KIS_STRATEGY_COLORSPACE_GRAYSCALE_H_
-#include <tqcolor.h>
-
-#include <klocale.h>
-
-#include <koffice_export.h>
-
-#include "kis_global.h"
-#include "kis_abstract_colorspace.h"
-#include "kis_u8_base_colorspace.h"
-
-class KRITACORE_EXPORT KisGrayColorSpace : public KisU8BaseColorSpace {
-public:
-    KisGrayColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p);
-    virtual ~KisGrayColorSpace();
-
-    virtual bool willDegrade(ColorSpaceIndependence /*independence*/)
-        {
-            return false;
-        };
-
-public:
-
-    void setPixel(TQ_UINT8 *pixel, TQ_UINT8 gray, TQ_UINT8 alpha) const;
-    void getPixel(const TQ_UINT8 *pixel, TQ_UINT8 *gray, TQ_UINT8 *alpha) const;
-
-    virtual void getAlpha(const TQ_UINT8 *pixel, TQ_UINT8 *alpha) const;
-    virtual void setAlpha(TQ_UINT8 * pixels, TQ_UINT8 alpha, TQ_INT32 nPixels) const;
-
-    virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const;
-    virtual void convolveColors(TQ_UINT8** colors, TQ_INT32* kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const;
-    virtual void invertColor(TQ_UINT8 * src, TQ_INT32 nPixels);
-    virtual void darken(const TQ_UINT8 * src, TQ_UINT8 * dst, TQ_INT32 shade, bool compensate, double compensation, TQ_INT32 nPixels) const;
-    virtual TQ_UINT8 intensity8(const TQ_UINT8 * src) const;
-
-    virtual TQValueVector<KisChannelInfo *> channels() const;
-    virtual TQ_UINT32 nChannels() const;
-    virtual TQ_UINT32 nColorChannels() const;
-    virtual TQ_UINT32 pixelSize() const;
-
-    virtual void bitBlt(TQ_UINT8 *dst,
-                TQ_INT32 dststride,
-                const TQ_UINT8 *src,
-                TQ_INT32 srcRowStride,
-                const TQ_UINT8 *srcAlphaMask,
-                TQ_INT32 tqmaskRowStride,
-                TQ_UINT8 opacity,
-                TQ_INT32 rows,
-                TQ_INT32 cols,
-                const KisCompositeOp& op);
-
-    KisCompositeOpList userVisiblecompositeOps() const;
-
-protected:
-    void compositeOver(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeMultiply(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeDivide(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeScreen(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeOverlay(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeDodge(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeBurn(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeDarken(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeLighten(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeAlphaDarken(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-
-
-private:
-    friend class KisGrayColorSpaceTester;
-
-    static const TQ_UINT8 PIXEL_GRAY = 0;
-    static const TQ_UINT8 PIXEL_GRAY_ALPHA = 1;
-};
-
-class KisGrayColorSpaceFactory : public KisColorSpaceFactory
-{
-public:
-    /**
-     * Krita definition for use in .kra files and internally: unchanging name +
-     * i18n'able description.
-     */
-    virtual KisID id() const { return KisID("GRAYA", i18n("Grayscale (8-bit integer/channel)")); };
-
-    /**
-     * lcms colorspace type definition.
-     */
-    virtual TQ_UINT32 colorSpaceType() { return TYPE_GRAYA_8; };
-
-    virtual icColorSpaceSignature colorSpaceSignature() { return icSigGrayData; };
-
-    virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) { return new KisGrayColorSpace(tqparent, p); };
-
-    virtual TQString defaultProfile() { return "gray built-in - (lcms internal)"; };
-};
-
-#endif // KIS_STRATEGY_COLORSPACE_GRAYSCALE_H_
diff --git a/krita/colorspaces/gray_u8/kritagrayplugin.desktop b/krita/colorspaces/gray_u8/kritagrayplugin.desktop
deleted file mode 100644
index cd810f818..000000000
--- a/krita/colorspaces/gray_u8/kritagrayplugin.desktop
+++ /dev/null
@@ -1,97 +0,0 @@
-[Desktop Entry]
-Name=Grayscale Color Model
-Name[bg]=Цветови модел със степени на сивото
-Name[ca]=Model de color d'escala de grisos
-Name[cy]=Model Lliw Graddlwyd
-Name[da]=Farvemodel med gråskala
-Name[de]=Graustufen-Farbmodell
-Name[el]=Χρωματικό μοντέλο διαβαθμίσεων του γκρι
-Name[en_GB]=Greyscale Colour Model
-Name[eo]=Grizoskala kolormodelo
-Name[es]=Modelo de color de escala de grises
-Name[et]=Halltooni värvimudel
-Name[eu]=Gris-eskala kolore-eredua
-Name[fa]=مدل رنگ مقیاس خاکستری
-Name[fi]=Harmaasävyvärimalli
-Name[fr]=Modèle de couleurs en niveaux de gris
-Name[fy]=Griiswearden kleurmodel
-Name[gl]=Modelo de Cores en Escala de Gris
-Name[he]=מודל צבעים של גווני אפור
-Name[hi]=श्वेत-श्याम रंग नमूना
-Name[hu]=Szürkeárnyalatos színmodell
-Name[is]=Gráskala litategund
-Name[it]=Modello di colore in scala di grigio
-Name[ja]=グレースケール カラーモデル
-Name[km]=គំរូ​ពណ៌​មាត្រដ្ឋាន​ប្រផេះ
-Name[lv]=Pelēktoņu krāsu modelis
-Name[ms]=Model Warna Skala Kelabu
-Name[nb]=Fargemodell med gråtoner
-Name[nds]=Griestöön-Klöörmodell
-Name[ne]=ग्रेस्केल रङ मोडेल
-Name[nl]=Grijswaarden kleurmodel
-Name[nn]=Fargemodell med gråtonar
-Name[pl]=Skala szarości
-Name[pt]=Modelo de Cor de Tons de Cinzento
-Name[pt_BR]=Modelo de Cor em Tons de Cinza
-Name[ru]=Градации серого
-Name[se]=Ránesivnniid ivdnemálle
-Name[sk]=Model farieb ČB/šedý
-Name[sl]=Sivinski barvni model
-Name[sr]=Модел боја за сиве нијансе
-Name[sr@Latn]=Model boja za sive nijanse
-Name[sv]=Gråskalefärgmodell
-Name[ta]=பழுப்புநிற வண்ண மாதிரி
-Name[tr]=Griton Renk Modeli
-Name[uk]=Модель кольору "відтінки сірого"
-Name[uz]=Kul rang usuli
-Name[uz@cyrillic]=Кул ранг усули
-Name[zh_CN]=灰度色彩模型
-Name[zh_TW]=灰階色彩模型
-Comment=Color model for 8-bit grayscale images
-Comment[bg]=Цветови модел за 8 битови сиви изображения
-Comment[ca]=Model de color d'escala de grisos de 8 bits
-Comment[cy]=Model lliw ar gyfer delweddau graddlwyd 8-did
-Comment[da]=Farvemodel for 8-bit gråskala-billeder
-Comment[de]=Farbmodell für 8-bit Graustufenbilder
-Comment[el]=Χρωματικό μοντέλο για 8-bit με διαβαθμίσεις του γκρι εικόνες
-Comment[en_GB]=Colour model for 8-bit greyscale images
-Comment[eo]=Kolormodelo por 8-bitaj grizoskalaj bildoj
-Comment[es]=Modelo de color de imágenes de escala de grises para 8 bits
-Comment[et]=8-bitiste halltoonis piltide värvimudel
-Comment[eu]=8 bit/kanaleko gris-eskalako irudien kolore-eredua
-Comment[fa]=مدل رنگ برای تصاویر مقیاس خاکستری ۸ بیتی
-Comment[fi]=Värimalli 8-bittisille harmaasävykuville
-Comment[fr]=Modèle de couleurs pour des images en niveaux de gris 8 bits
-Comment[fy]=Kleurmodel foar ôfbeeldings yn 8-bit griiswearden
-Comment[gl]=Modelo de Cores de escala de gris de for 8-bit
-Comment[he]=מודל צבעים עבור תמונות של 8 סיביות בגווני אפור
-Comment[hi]=8-बिट श्वेत-श्याम छवियों के लिए रंग नमूना
-Comment[hu]=Színmodell 8 bites szürkeárnyalatos képekhez
-Comment[is]=Litategund fyrir 8-bita gráskala myndir
-Comment[it]=Modello di colore per immagini a 8 bit in scala di grigio
-Comment[ja]=8 ビット グレースケール画像のためのカラーモデル
-Comment[km]=គំរូ​ពណ៌​សម្រាប់​រូបភាព​មាត្រដ្ឋាន​ប្រផេះ ៨ ប៊ីត
-Comment[ms]=Model warna bagi imej skala kelabu 8-bit
-Comment[nb]=Fargemodell for 8-bits gråtonebilder
-Comment[nds]=Klöörmodell för Griestöön-Biller mit 8-Bit Heeltall
-Comment[ne]=८-बिट ग्रेस्केल छविहरूका लागि रङ मोडेल
-Comment[nl]=Kleurmodel voor afbeeldingen in 8-bit grijswaarden
-Comment[nn]=Fargemodell for 8-bits gråtonebilete
-Comment[pl]=Przestrzeń braw dla 8-bitowych obrazków w skali szarości
-Comment[pt]=Modelo de cor para imagens de tons de cinzento com 8 bits
-Comment[pt_BR]=Modelo de cor para imagens com 8-bits de tons de cinza
-Comment[ru]=Цветовое пространство градаций серого (8-бит)
-Comment[sk]=Model farieb pre ČB/šedé obrázky s 8 bitmi na kanál
-Comment[sl]=Barvni model za 8 bitne sivinske slike
-Comment[sr]=Модел боја за слике у 8-битним сивим нијансама
-Comment[sr@Latn]=Model boja za slike u 8-bitnim sivim nijansama
-Comment[sv]=Färgmodell för 8-bitars gråskalebilder
-Comment[ta]=8-பிட் பழுப்புநிற பிம்பங்களுக்கு வண்ண மாதிரி
-Comment[tr]=8-bit griton görüntüler için renk modeli.
-Comment[uk]=Модель кольору зображень відтінків сірого (8-бітів)
-Comment[zh_CN]=8 位灰度图像的色彩模型
-Comment[zh_TW]=8-bit 灰階圖片的色彩模型
-ServiceTypes=Krita/ColorSpace
-Type=Service
-X-KDE-Library=kritagrayplugin
-X-Krita-Version=2
diff --git a/krita/colorspaces/gray_u8/templates/.directory b/krita/colorspaces/gray_u8/templates/.directory
deleted file mode 100644
index e408f23fc..000000000
--- a/krita/colorspaces/gray_u8/templates/.directory
+++ /dev/null
@@ -1,48 +0,0 @@
-[Desktop Entry]
-Name=Grayscale
-Name[bg]=Гама на сивото
-Name[br]=SkeulLouet
-Name[ca]=Escala de grisos
-Name[cy]=Graddlwyd
-Name[da]=Gråskala
-Name[de]=Graustufen
-Name[el]=Διαβαθμίσεις του γκρι
-Name[eo]=Grizoskalo
-Name[es]=Escala de grises
-Name[et]=Halltoonid
-Name[fa]=مقیاس خاکستری
-Name[fi]=Harmaasävyinen
-Name[fr]=Niveaux de gris
-Name[fy]=Griiswearden
-Name[ga]=Liathscála
-Name[gl]=Escala de Gris
-Name[he]=גווני אפור
-Name[hi]=श्वेत-श्याम
-Name[hu]=Szürkeárnyalatok
-Name[is]=Gráskali
-Name[it]=Scala di grigio
-Name[ja]=グレースケール
-Name[km]=មាត្រដ្ឋាន​ប្រផេះ​
-Name[lv]=Pelēktoņu
-Name[nb]=Gråtoner
-Name[nds]=Griestöön
-Name[ne]=ग्रेस्केल
-Name[nl]=Grijswaarden
-Name[pl]=Skala szarości
-Name[pt]=Tons de Cinzento
-Name[pt_BR]=Tons de Cinza
-Name[ru]=Градации серого
-Name[se]=Ránesivnnit
-Name[sk]=Čiernobiely
-Name[sl]=Sivinska
-Name[sr]=Сиве нијансе
-Name[sr@Latn]=Sive nijanse
-Name[sv]=Gråskala
-Name[ta]=பழுப்புநிற வண்ணம்
-Name[tr]=Griton
-Name[uk]=Відтінки сірого
-Name[uz]=Oq-qora
-Name[uz@cyrillic]=Оқ-қора
-Name[zh_CN]=灰度
-Name[zh_TW]=灰階
-X-KDE-DefaultTab=true
diff --git a/krita/colorspaces/gray_u8/templates/Makefile.am b/krita/colorspaces/gray_u8/templates/Makefile.am
deleted file mode 100644
index 2b1852234..000000000
--- a/krita/colorspaces/gray_u8/templates/Makefile.am
+++ /dev/null
@@ -1,8 +0,0 @@
-templates_DATA = .directory white_640x480.desktop
-templatesdir = $(kde_datadir)/krita/templates/gray
-
-templatesrc_DATA =white_640x480.kra 
-templatesrcdir = $(kde_datadir)/krita/templates/gray/.source
-
-templatesicon_ICON = AUTO
-templatesicondir = $(kde_datadir)/krita/icons
diff --git a/krita/colorspaces/gray_u8/templates/cr48-action-template_gray_empty.png b/krita/colorspaces/gray_u8/templates/cr48-action-template_gray_empty.png
deleted file mode 100644
index 73e064b69..000000000
Binary files a/krita/colorspaces/gray_u8/templates/cr48-action-template_gray_empty.png and /dev/null differ
diff --git a/krita/colorspaces/gray_u8/templates/crsc-action-template_gray_empty.svgz b/krita/colorspaces/gray_u8/templates/crsc-action-template_gray_empty.svgz
deleted file mode 100644
index 93af227f1..000000000
Binary files a/krita/colorspaces/gray_u8/templates/crsc-action-template_gray_empty.svgz and /dev/null differ
diff --git a/krita/colorspaces/gray_u8/templates/white_640x480.desktop b/krita/colorspaces/gray_u8/templates/white_640x480.desktop
deleted file mode 100644
index cea93b179..000000000
--- a/krita/colorspaces/gray_u8/templates/white_640x480.desktop
+++ /dev/null
@@ -1,99 +0,0 @@
-[Desktop Entry]
-Type=Link
-URL=.source/white_640x480.kra
-Icon=template_gray_empty
-Name=White Background, 640 x 480
-Name[bg]=Бял фон, 640x480
-Name[ca]=Fons blanc, 640 x 480
-Name[cy]=Cefndir Gwyn, 640 x 480
-Name[da]=Hvid baggrund, 640 x 480
-Name[de]=Weißer Hintergrund, 640 x 480
-Name[el]=Λευκό φόντο, 640 x 480
-Name[eo]=Blanka fono, 640 x 480
-Name[es]=Fondo blanco, 640 x 480
-Name[et]=Valge taust, 640 x 480
-Name[eu]=Atzeko plano zuria, 640 x 480
-Name[fa]=زمینۀ سفید، ۴۸۰ × ۶۴۰
-Name[fi]=Valkoinen tausta, 640 x 480
-Name[fr]=Fond blanc 640 x 480
-Name[fy]=Wite eftergrûn, 640 x 480
-Name[ga]=Cúlra Bán, 640×480
-Name[gl]=Fondo Branco, 640 x 480
-Name[he]=רקע לבן, ‎640 x 480
-Name[hi]=सफेद पृष्ठभूमि, 640 x 480
-Name[hu]=Fehér háttér, 640 x 480
-Name[is]=Hvítur bakgrunnur, 640 x 480
-Name[it]=Sfondo bianco, 640 × 480
-Name[ja]=白い背景 640 x 480
-Name[km]=ផ្ទៃខាងក្រោយ​ពណ៌​ស, 640 x 480
-Name[lt]=Baltas fonas, 640 x 480
-Name[lv]=Balts fons, 640x480
-Name[ms]=Latar Belakang Putih, 640 x 480
-Name[nb]=Hvit bakgrunn, 640 x 480
-Name[nds]=Witt Achtergrund, 640 x 480
-Name[ne]=सेतो पृष्ठभूमि, ६४० x ४८०
-Name[nl]=Witte achtergrond, 640 x 480
-Name[nn]=Kvit bakgrunn, 640 × 480
-Name[pl]=Białe tło, 640 x 480
-Name[pt]=Fundo Branco, 640 x 480
-Name[pt_BR]=Fundo em branco, 640 x 480
-Name[ru]=Рисунок 640x480, белый фон
-Name[se]=Vilges duogáš, 640 × 480
-Name[sk]=Biele pozadie, 640 x 480
-Name[sl]=Belo ozadje, 640 x 480
-Name[sr]=Бела позадина, 640 x 480
-Name[sr@Latn]=Bela pozadina, 640 x 480
-Name[sv]=Vit bakgrund, 640 x 480
-Name[ta]=வெள்ளை பின்னணி, 640 x 480
-Name[tr]=Beyaz Arkaplan, 640 x 480
-Name[uk]=Біле тло, 640 x 480
-Name[uz]=Oq orqa fon 640 x 480
-Name[uz@cyrillic]=Оқ орқа фон 640 x 480
-Name[zh_CN]=白色背景，640 x 480
-Name[zh_TW]=白色背景， 640 x 480
-Comment=Creates an image of 640 x 480 pixels with a white background.
-Comment[bg]=Създаване на изображение с размери 640x480 пиксела и бял фон.
-Comment[ca]=Crea una imatge de 640 x 480 píxels amb el fons blanc.
-Comment[cy]=Creu delwedd o 640 x 480 o bicseli efo cefndir gwyn.
-Comment[da]=Laver et billede på 640 x 480 billedpunkter med en hvid baggrund.
-Comment[de]=Erstellt ein Bild mit 640 x 480 Pixeln mit einem weißen Hintergrund.
-Comment[el]=Δημιουργεί μία εικόνα μεγέθους 640 x 480 εικονοστοιχείων με λευκό φόντο.
-Comment[es]=Crea una imagen de 640 x 480 píxeles con un fondo blanco.
-Comment[et]=Loob valge taustaga pildi mõõtmetega 640 x 800 pikslit.
-Comment[eu]=640 x 480 pixeleko atzeko planoa zuria duen irudi bat sortzen du.
-Comment[fa]=تصویری ۴۸۰ × ۶۴۰ تصویردانه‌ای با یک زمینۀ سفید ایجاد می‌کند.
-Comment[fi]=Luo 640 x 480 pikselin kuvan valkoisella taustalla.
-Comment[fr]=Crée une image de 640 x 480 pixels avec un fond blanc.
-Comment[fy]=Makket in ôfbylding oan fan 640 x 480 byldpunten, mei in wite eftergrûn
-Comment[gl]=Cria unha imaxe de 640 x 480 pixels cun fondo branco.
-Comment[he]=יצירת תמונת בגודל ‎640 x 480 פיקסלים עם רקע לבן
-Comment[hi]=640 x 480 पिक्सेल का, सफेद पृष्ठभूमि युक्त छवि बनाता है
-Comment[hu]=Létrehoz egy 640 x 480 képpontos képet fehér háttérrel.
-Comment[is]=Býr til hvíta mynd í 640 x 480 punkta upplausn með hvítum bakgrunni.
-Comment[it]=Crea un'immagine di 640 × 480 pixel con uno sfondo bianco.
-Comment[ja]=640 x 480 ピクセルの白い背景の画像を作成
-Comment[km]=បង្កើត​រូបភាព​ទំហំ 640 x 480 ភីកសែល ដែល​មាន​ផ្ទៃ​ខាង​ក្រោយ​ពណ៌​ស ។
-Comment[ms]=Cipta imej 640 x 480 piksel dengan latar belakang putih.
-Comment[nb]=Lager et bilde på 640 x 480 piksler med hvit bakgrunn.
-Comment[nds]=Stellt en Bild mit 640 x 480 Pixels mit witten Achtergrund op.
-Comment[ne]=सेतो पृष्ठभूमि सहित ६४० x ४८० पिक्सेलको छवि सिर्जना गर्दछ ।
-Comment[nl]=Maakt een afbeelding aan van 640 x 480 pixels, met een witte achtergrond.
-Comment[nn]=Lagar eit bilete på 640 × 480 pikslar med ein kvit bakgrunn.
-Comment[pl]=Tworzy obrazek z białym tłem o rozmiarach 640 x 480 pikseli.
-Comment[pt]=Cria uma imagem de 640 x 480 pontos com um fundo branco.
-Comment[pt_BR]=Cria uma imagem de 640 x 480 pixéis com um fundo branco.
-Comment[ru]=Рисунок 640x480, белый фон
-Comment[se]=Ráhkada vilges govva mas leat 640 × 480 govvačuogga.
-Comment[sk]=Vytvorí obrázok s rozmermi 640 x 480 pixelov a bielym pozadím.
-Comment[sl]=Ustvari sliko velikosti 640 x 480 pik z belim ozadjem.
-Comment[sr]=Прави слику од 640 x 480 пиксела са белом позадином.
-Comment[sr@Latn]=Pravi sliku od 640 x 480 piksela sa belom pozadinom.
-Comment[sv]=Skapar en bild med 640 x 480 bildpunkter och en vit bakgrund.
-Comment[ta]=640 x 480 படத்துணுக்குகளில் வெள்ளை பின்னணியுடன் ஒரு பிம்பத்தை உருவாக்குகிறது.
-Comment[tr]=640 x 480 piksel ebadında beyaz arkaplana sahip bir görüntü oluşturur
-Comment[uk]=Створює зображення 640 x 480 пікселів з білим тлом.
-Comment[uz]=Oʻlchami 640 x 480 nuqta va foni oq boʻlgan rasmni yaratish.
-Comment[uz@cyrillic]=Ўлчами 640 x 480 нуқта ва фони оқ бўлган расмни яратиш.
-Comment[zh_CN]=创建白色背景的 640 x 480 像素的图像。
-Comment[zh_TW]=建立一個 640 x 480 像素，白色背景的圖片。
-X-Krita-Version=2
diff --git a/krita/colorspaces/gray_u8/templates/white_640x480.kra b/krita/colorspaces/gray_u8/templates/white_640x480.kra
deleted file mode 100644
index f1865a64a..000000000
Binary files a/krita/colorspaces/gray_u8/templates/white_640x480.kra and /dev/null differ
diff --git a/krita/colorspaces/gray_u8/tests/Makefile.am b/krita/colorspaces/gray_u8/tests/Makefile.am
deleted file mode 100644
index f5f14f7c3..000000000
--- a/krita/colorspaces/gray_u8/tests/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-AM_CPPFLAGS = -I$(srcdir)/.. \
-	 -I$(srcdir)/../../../sdk \
-	-I$(srcdir)/../../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../../color_strategy/ \
-	$(all_includes)
-
-# The check_ target makes sure we don't install the modules,
-# $(KDE_CHECK_PLUGIN) assures a shared library is created.
-check_LTLIBRARIES = kunittest_kis_strategy_colorspace_grayscale_tester.la
-
-kunittest_kis_strategy_colorspace_grayscale_tester_la_SOURCES = kis_strategy_colorspace_grayscale_tester.cpp
-kunittest_kis_strategy_colorspace_grayscale_tester_la_LIBADD = -lkunittest ../libkritagrayscale.la
-kunittest_kis_strategy_colorspace_grayscale_tester_la_LDFLAGS = -module $(KDE_CHECK_PLUGIN) $(all_libraries)
-
-check-local: kunittest_kis_strategy_colorspace_grayscale_tester.la
-	kunittestmodrunner
-
diff --git a/krita/colorspaces/gray_u8/tests/kis_strategy_colorspace_grayscale_tester.cpp b/krita/colorspaces/gray_u8/tests/kis_strategy_colorspace_grayscale_tester.cpp
deleted file mode 100644
index 0374c0727..000000000
--- a/krita/colorspaces/gray_u8/tests/kis_strategy_colorspace_grayscale_tester.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <kunittest/runner.h>
-#include <kunittest/module.h>
-
-#include "kis_factory.h"
-#include "kis_strategy_colorspace_grayscale_tester.h"
-#include "kis_gray_colorspace.h"
-
-using namespace KUnitTest;
-
-KUNITTEST_MODULE( kunittest_kis_strategy_colorspace_grayscale_tester, "Greyscale ColorSpace Tester" );
-KUNITTEST_MODULE_REGISTER_TESTER( KisGrayColorSpaceTester );
-
-void KisGrayColorSpaceTester::allTests()
-{
-    // We need this so that the colour profile loading can operate without crashing.
-    KisFactory *factory = new KisFactory();
-
-    testBasics();
-    testMixColors();
-
-    delete factory;
-}
-
-#define MAX_CHANNEL_GRAYSCALEA 2
-
-#define GRAY_CHANNEL 0
-#define ALPHA_CHANNEL 1
-
-void KisGrayColorSpaceTester::testBasics()
-{
-    KisProfile *profile = new KisProfile(cmsCreate_sRGBProfile());
-    KisGrayColorSpace *cs = new KisGrayColorSpace(profile);
-
-
-    TQ_UINT8 pixel[MAX_CHANNEL_GRAYSCALEA];
-
-    pixel[KisGrayColorSpace::PIXEL_GRAY] = 255;
-    pixel[KisGrayColorSpace::PIXEL_GRAY_ALPHA] = 128;
-
-    TQString valueText = cs->channelValueText(pixel, GRAY_CHANNEL);
-    CHECK(valueText, TQString("255"));
-
-    valueText = cs->channelValueText(pixel, ALPHA_CHANNEL);
-    CHECK(valueText, TQString("128"));
-
-    valueText = cs->normalisedChannelValueText(pixel, GRAY_CHANNEL);
-    CHECK(valueText, TQString().setNum(1.0));
-
-    valueText = cs->normalisedChannelValueText(pixel, ALPHA_CHANNEL);
-    CHECK(valueText, TQString().setNum(128.0 / 255.0));
-
-    cs->setPixel(pixel, 128, 192l);
-    CHECK((uint)pixel[KisGrayColorSpace::PIXEL_GRAY], 128u);
-    CHECK((uint)pixel[KisGrayColorSpace::PIXEL_GRAY_ALPHA], 192u);
-
-    TQ_UINT8 gray;
-    TQ_UINT8 alpha;
-
-    cs->getPixel(pixel, &gray, &alpha);
-    CHECK((uint)gray, 128u);
-    CHECK((uint)alpha, 192u);
-
-    delete cs;
-}
-
-void KisGrayColorSpaceTester::testMixColors()
-{
-    KisProfile *profile = new KisProfile(cmsCreate_sRGBProfile());
-    KisAbstractColorSpace * cs = new KisGrayColorSpace(profile);
-
-    TQ_UINT8 pixel1[MAX_CHANNEL_GRAYSCALEA];
-    TQ_UINT8 pixel2[MAX_CHANNEL_GRAYSCALEA];
-    TQ_UINT8 outputPixel[MAX_CHANNEL_GRAYSCALEA];
-
-    pixel1[KisGrayColorSpace::PIXEL_GRAY] = 255;
-    pixel1[KisGrayColorSpace::PIXEL_GRAY_ALPHA] = 255;
-
-    pixel2[KisGrayColorSpace::PIXEL_GRAY] = 0;
-    pixel2[KisGrayColorSpace::PIXEL_GRAY_ALPHA] = 0;
-
-    const TQ_UINT8 *pixelPtrs[2];
-    TQ_UINT8 weights[2];
-
-    pixelPtrs[0] = pixel1;
-    pixelPtrs[1] = pixel2;
-
-    weights[0] = 255;
-    weights[1] = 0;
-
-    cs->mixColors(pixelPtrs, weights, 2, outputPixel);
-
-    CHECK((int)outputPixel[KisGrayColorSpace::PIXEL_GRAY], 255);
-    CHECK((int)outputPixel[KisGrayColorSpace::PIXEL_GRAY_ALPHA], 255);
-
-    weights[0] = 0;
-    weights[1] = 255;
-
-    cs->mixColors(pixelPtrs, weights, 2, outputPixel);
-
-    CHECK((int)outputPixel[KisGrayColorSpace::PIXEL_GRAY], 0);
-    CHECK((int)outputPixel[KisGrayColorSpace::PIXEL_GRAY_ALPHA], 0);
-
-    weights[0] = 128;
-    weights[1] = 127;
-
-    cs->mixColors(pixelPtrs, weights, 2, outputPixel);
-     
-    CHECK((int)outputPixel[KisGrayColorSpace::PIXEL_GRAY], 255);
-    CHECK((int)outputPixel[KisGrayColorSpace::PIXEL_GRAY_ALPHA], 128);
-
-    pixel1[KisGrayColorSpace::PIXEL_GRAY] = 200;
-    pixel1[KisGrayColorSpace::PIXEL_GRAY_ALPHA] = 255;
-
-    pixel2[KisGrayColorSpace::PIXEL_GRAY] = 100;
-    pixel2[KisGrayColorSpace::PIXEL_GRAY_ALPHA] = 255;
-
-    cs->mixColors(pixelPtrs, weights, 2, outputPixel);
-
-    CHECK((int)outputPixel[KisGrayColorSpace::PIXEL_GRAY], 150);
-    CHECK((int)outputPixel[KisGrayColorSpace::PIXEL_GRAY_ALPHA], 255);
-
-    pixel1[KisGrayColorSpace::PIXEL_GRAY] = 0;
-    pixel1[KisGrayColorSpace::PIXEL_GRAY_ALPHA] = 0;
-
-    pixel2[KisGrayColorSpace::PIXEL_GRAY] = 255;
-    pixel2[KisGrayColorSpace::PIXEL_GRAY_ALPHA] = 254;
-
-    weights[0] = 89;
-    weights[1] = 166;
-
-    cs->mixColors(pixelPtrs, weights, 2, outputPixel);
-
-    CHECK((int)outputPixel[KisGrayColorSpace::PIXEL_GRAY], 255);
-    CHECK((int)outputPixel[KisGrayColorSpace::PIXEL_GRAY_ALPHA], 165);
-}
-
-
diff --git a/krita/colorspaces/gray_u8/tests/kis_strategy_colorspace_grayscale_tester.h b/krita/colorspaces/gray_u8/tests/kis_strategy_colorspace_grayscale_tester.h
deleted file mode 100644
index 9b5f8d5e0..000000000
--- a/krita/colorspaces/gray_u8/tests/kis_strategy_colorspace_grayscale_tester.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-
-#ifndef KIS_STRATEGY_COLORSPACE_GRAYSCALE_TESTER_H
-#define KIS_STRATEGY_COLORSPACE_GRAYSCALE_TESTER_H
-
-#include <kunittest/tester.h>
-
-class KisGrayColorSpaceTester : public KUnitTest::Tester
-{
-public:
-        void allTests();
-    void testMixColors();
-    void testBasics();
-};
-
-#endif
-
diff --git a/krita/colorspaces/lms_f32/Makefile.am b/krita/colorspaces/lms_f32/Makefile.am
deleted file mode 100644
index 4904f175f..000000000
--- a/krita/colorspaces/lms_f32/Makefile.am
+++ /dev/null
@@ -1,28 +0,0 @@
-# Install the desktop file needed to detect the plugin
-kde_services_DATA = krita_lms_f32_plugin.desktop
-
-INCLUDES  = \
-	-I$(srcdir)/../../sdk \
-	-I$(srcdir)/../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../kritacolor/ \
-	$(KOFFICE_INCLUDES) \
-	$(all_includes)
-
-
-lib_LTLIBRARIES = libkrita_lms_f32.la
-libkrita_lms_f32_la_SOURCES = kis_lms_f32_colorspace.cc
-libkrita_lms_f32_la_LDFLAGS = $(all_libraries)
-libkrita_lms_f32_la_LIBADD =  ../../kritacolor/libkritacolor.la
-
-# Install this plugin in the KDE modules directory
-kde_module_LTLIBRARIES = krita_lms_f32_plugin.la
-
-# Srcs for the plugin
-krita_lms_f32_plugin_la_SOURCES = lms_f32_plugin.cc
-noinst_HEADERS = lms_f32_plugin.h kis_lms_f32_colorspace.h
-
-krita_lms_f32_plugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -llcms
-krita_lms_f32_plugin_la_LIBADD =  libkrita_lms_f32.la ../../kritacolor/libkritacolor.la
-
-krita_lms_f32_plugin_la_METASOURCES = AUTO
-
diff --git a/krita/colorspaces/lms_f32/kis_lms_f32_colorspace.cc b/krita/colorspaces/lms_f32/kis_lms_f32_colorspace.cc
deleted file mode 100644
index 57475a03a..000000000
--- a/krita/colorspaces/lms_f32/kis_lms_f32_colorspace.cc
+++ /dev/null
@@ -1,385 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien  <freak@codepimps.org>
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include <config.h>
-#include <limits.h>
-#include <stdlib.h>
-#include LCMS_HEADER
-
-#include <tqimage.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include "kis_lms_f32_colorspace.h"
-#include "kis_color_conversions.h"
-
-namespace {
-    const TQ_INT32 MAX_CHANNEL_LMS = 3;
-    const TQ_INT32 MAX_CHANNEL_LMSA = 4;
-}
-
-#include "kis_integer_maths.h"
-
-#define FLOAT_MAX 1.0f //temp
-
-#define EPSILON 1e-6
-
-// FIXME: lcms doesn't support 32-bit float
-#define F32_LCMS_TYPE TYPE_BGRA_16
-
-// disable the lcms handling by setting profile=0
-KisLmsF32ColorSpace::KisLmsF32ColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile */*p*/) :
-    KisF32BaseColorSpace(KisID("LMSAF32", i18n("LMS (32-bit float/channel)")), F32_LCMS_TYPE, icSig3colorData, tqparent, 0)
-{
-    m_channels.push_back(new KisChannelInfo(i18n("Long"), i18n("L"), PIXEL_LONGWAVE * sizeof(float), KisChannelInfo::COLOR, KisChannelInfo::FLOAT32, sizeof(float)));
-    m_channels.push_back(new KisChannelInfo(i18n("Middle"), i18n("M"), PIXEL_MIDDLEWAVE * sizeof(float), KisChannelInfo::COLOR, KisChannelInfo::FLOAT32, sizeof(float)));
-    m_channels.push_back(new KisChannelInfo(i18n("Short"), i18n("S"), PIXEL_SHORTWAVE * sizeof(float), KisChannelInfo::COLOR, KisChannelInfo::FLOAT32, sizeof(float)));
-    m_channels.push_back(new KisChannelInfo(i18n("Alpha"), i18n("A"), PIXEL_ALPHA * sizeof(float), KisChannelInfo::ALPHA, KisChannelInfo::FLOAT32, sizeof(float)));
-
-    m_alphaPos = PIXEL_ALPHA * sizeof(float);
-}
-
-KisLmsF32ColorSpace::~KisLmsF32ColorSpace()
-{
-}
-
-void KisLmsF32ColorSpace::setPixel(TQ_UINT8 *dst, float longWave, float middleWave, float shortWave, float alpha) const
-{
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->longWave = longWave;
-    dstPixel->middleWave = middleWave;
-    dstPixel->shortWave = shortWave;
-    dstPixel->alpha = alpha;
-}
-
-void KisLmsF32ColorSpace::getPixel(const TQ_UINT8 *src, float *longWave, float *middleWave, float *shortWave, float *alpha) const
-{
-    const Pixel *srcPixel = reinterpret_cast<const Pixel *>(src);
-
-    *longWave = srcPixel->longWave;
-    *middleWave = srcPixel->middleWave;
-    *shortWave = srcPixel->shortWave;
-    *alpha = srcPixel->alpha;
-}
-
-void KisLmsF32ColorSpace::fromTQColor(const TQColor& c, TQ_UINT8 *dstU8, KisProfile * /*profile*/)
-{
-    Pixel *dst = reinterpret_cast<Pixel *>(dstU8);
-
-    dst->longWave = computeLong(c.red(),c.green(),c.blue());
-    dst->middleWave = computeMiddle(c.red(),c.green(),c.blue());
-    dst->shortWave = computeShort(c.red(),c.green(),c.blue());
-}
-
-void KisLmsF32ColorSpace::fromTQColor(const TQColor& c, TQ_UINT8 opacity, TQ_UINT8 *dstU8, KisProfile * /*profile*/)
-{
-    Pixel *dst = reinterpret_cast<Pixel *>(dstU8);
-
-    dst->longWave = computeLong(c.red(),c.green(),c.blue());
-    dst->middleWave = computeMiddle(c.red(),c.green(),c.blue());
-    dst->shortWave = computeShort(c.red(),c.green(),c.blue());
-    dst->alpha = UINT8_TO_FLOAT(opacity);
-}
-
-void KisLmsF32ColorSpace::toTQColor(const TQ_UINT8 *srcU8, TQColor *c, KisProfile * /*profile*/)
-{
-    const Pixel *src = reinterpret_cast<const Pixel *>(srcU8);
-
-    c->setRgb(computeRed(src->longWave,src->middleWave,src->shortWave), computeGreen(src->longWave,src->middleWave,src->shortWave), computeBlue(src->longWave,src->middleWave,src->shortWave));
-}
-
-void KisLmsF32ColorSpace::toTQColor(const TQ_UINT8 *srcU8, TQColor *c, TQ_UINT8 *opacity, KisProfile * /*profile*/)
-{
-   const Pixel *src = reinterpret_cast<const Pixel *>(srcU8);
-
-   c->setRgb(computeRed(src->longWave,src->middleWave,src->shortWave), computeGreen(src->longWave,src->middleWave,src->shortWave), computeBlue(src->longWave,src->middleWave,src->shortWave));
-   *opacity = FLOAT_TO_UINT8(src->alpha);
-}
-
-TQ_UINT8 KisLmsF32ColorSpace::difference(const TQ_UINT8 *src1U8, const TQ_UINT8 *src2U8)
-{
-    const Pixel *src1 = reinterpret_cast<const Pixel *>(src1U8);
-    const Pixel *src2 = reinterpret_cast<const Pixel *>(src2U8);
-
-    return FLOAT_TO_UINT8(TQMAX(TQABS(src2->longWave - src1->longWave),
-                          TQMAX(TQABS(src2->middleWave - src1->middleWave),
-                               TQABS(src2->shortWave - src1->shortWave))));
-}
-
-void KisLmsF32ColorSpace::mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const
-{
-    float totalLong = 0, totalMiddle = 0, totalShort = 0, newAlpha = 0;
-
-    while (nColors--)
-    {
-        const Pixel *pixel = reinterpret_cast<const Pixel *>(*colors);
-
-        float alpha = pixel->alpha;
-        float alphaTimesWeight = alpha * UINT8_TO_FLOAT(*weights);
-
-        totalLong += pixel->longWave * alphaTimesWeight;
-        totalMiddle += pixel->middleWave * alphaTimesWeight;
-        totalShort += pixel->shortWave * alphaTimesWeight;
-        newAlpha += alphaTimesWeight;
-
-        weights++;
-        colors++;
-    }
-
-    Q_ASSERT(newAlpha <= F32_OPACITY_OPAQUE);
-
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->alpha = newAlpha;
-
-    if (newAlpha > EPSILON) {
-        totalLong = totalLong / newAlpha;
-        totalMiddle = totalMiddle / newAlpha;
-        totalShort = totalShort / newAlpha;
-    }
-
-    dstPixel->longWave = totalLong;
-    dstPixel->middleWave = totalMiddle;
-    dstPixel->shortWave = totalShort;
-}
-
-TQValueVector<KisChannelInfo *> KisLmsF32ColorSpace::channels() const
-{
-    return m_channels;
-}
-
-TQ_UINT32 KisLmsF32ColorSpace::nChannels() const
-{
-    return MAX_CHANNEL_LMSA;
-}
-
-TQ_UINT32 KisLmsF32ColorSpace::nColorChannels() const
-{
-    return MAX_CHANNEL_LMS;
-}
-
-TQ_UINT32 KisLmsF32ColorSpace::pixelSize() const
-{
-    return MAX_CHANNEL_LMSA * sizeof(float);
-}
-
-TQImage KisLmsF32ColorSpace::convertToTQImage(const TQ_UINT8 *dataU8, TQ_INT32 width, TQ_INT32 height,
-                                            KisProfile *  /*dstProfile*/,
-                                            TQ_INT32 /*renderingIntent*/, float /*exposure*/)
-
-{
-    const float *data = reinterpret_cast<const float *>(dataU8);
-
-    TQImage img = TQImage(width, height, 32, 0, TQImage::LittleEndian);
-    img.setAlphaBuffer(true);
-
-    TQ_INT32 i = 0;
-    uchar *j = img.bits();
-
-    while ( i < width * height * MAX_CHANNEL_LMSA) {
-        double l = *( data + i + PIXEL_LONGWAVE );
-        double m = *( data + i + PIXEL_MIDDLEWAVE );
-        double s = *( data + i + PIXEL_SHORTWAVE );
-        *( j + 3)  = FLOAT_TO_UINT8(*( data + i + PIXEL_ALPHA ));
-        *( j + 2 ) = computeRed(l,m,s);
-        *( j + 1 ) = computeGreen(l,m,s);
-        *( j + 0 ) = computeBlue(l,m,s);
-        i += MAX_CHANNEL_LMSA;
-        j += MAX_CHANNEL_LMSA;
-    }
-
-    /*
-    if (srcProfile != 0 && dstProfile != 0) {
-        convertPixelsTo(img.bits(), srcProfile,
-                img.bits(), this, dstProfile,
-                width * height, renderingIntent);
-    }
-    */
-    return img;
-}
-
-
-void KisLmsF32ColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    while (rows > 0) {
-
-        const float *src = reinterpret_cast<const float *>(srcRowStart);
-        float *dst = reinterpret_cast<float *>(dstRowStart);
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-        TQ_INT32 columns = numColumns;
-
-        while (columns > 0) {
-
-            float srcAlpha = src[PIXEL_ALPHA];
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha *= UINT8_TO_FLOAT(U8_tqmask);
-                }
-                tqmask++;
-            }
-
-            if (srcAlpha > F32_OPACITY_TRANSPARENT + EPSILON) {
-
-                if (opacity < F32_OPACITY_OPAQUE - EPSILON) {
-                    srcAlpha *= opacity;
-                }
-
-                if (srcAlpha > F32_OPACITY_OPAQUE - EPSILON) {
-                    memcpy(dst, src, MAX_CHANNEL_LMSA * sizeof(float));
-                } else {
-                    float dstAlpha = dst[PIXEL_ALPHA];
-
-                    float srcBlend;
-
-                    if (dstAlpha > F32_OPACITY_OPAQUE - EPSILON) {
-                        srcBlend = srcAlpha;
-                    } else {
-                        float newAlpha = dstAlpha + (F32_OPACITY_OPAQUE - dstAlpha) * srcAlpha;
-                        dst[PIXEL_ALPHA] = newAlpha;
-
-                        if (newAlpha > EPSILON) {
-                            srcBlend = srcAlpha / newAlpha;
-                        } else {
-                            srcBlend = srcAlpha;
-                        }
-                    }
-
-                    if (srcBlend > F32_OPACITY_OPAQUE - EPSILON) {
-                        memcpy(dst, src, MAX_CHANNEL_LMS * sizeof(float));
-                    } else {
-                        dst[PIXEL_LONGWAVE] = FLOAT_BLEND(src[PIXEL_LONGWAVE], dst[PIXEL_LONGWAVE], srcBlend);
-                        dst[PIXEL_MIDDLEWAVE] = FLOAT_BLEND(src[PIXEL_MIDDLEWAVE], dst[PIXEL_MIDDLEWAVE], srcBlend);
-                        dst[PIXEL_SHORTWAVE] = FLOAT_BLEND(src[PIXEL_SHORTWAVE], dst[PIXEL_SHORTWAVE], srcBlend);
-                    }
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_LMSA;
-            dst += MAX_CHANNEL_LMSA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart) {
-            tqmaskRowStart += tqmaskRowStride;
-        }
-    }
-}
-
-void KisLmsF32ColorSpace::compositeErase(TQ_UINT8 *dst,
-            TQ_INT32 dstRowSize,
-            const TQ_UINT8 *src,
-            TQ_INT32 srcRowSize,
-            const TQ_UINT8 *srcAlphaMask,
-            TQ_INT32 tqmaskRowStride,
-            TQ_INT32 rows,
-            TQ_INT32 cols,
-            float /*opacity*/)
-{
-    while (rows-- > 0)
-    {
-        const Pixel *s = reinterpret_cast<const Pixel *>(src);
-        Pixel *d = reinterpret_cast<Pixel *>(dst);
-        const TQ_UINT8 *tqmask = srcAlphaMask;
-
-        for (TQ_INT32 i = cols; i > 0; i--, s++, d++)
-        {
-            float srcAlpha = s->alpha;
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = FLOAT_BLEND(srcAlpha, F32_OPACITY_OPAQUE, UINT8_TO_FLOAT(U8_tqmask));
-                }
-                tqmask++;
-            }
-            d->alpha = srcAlpha * d->alpha;
-        }
-
-        dst += dstRowSize;
-        src += srcRowSize;
-        if(srcAlphaMask) {
-            srcAlphaMask += tqmaskRowStride;
-        }
-    }
-}
-
-void KisLmsF32ColorSpace::compositeCopy(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride,
-                        const TQ_UINT8 */*tqmaskRowStart*/, TQ_INT32 /*tqmaskRowStride*/, TQ_INT32 rows, TQ_INT32 numColumns, float /*opacity*/)
-{
-    while (rows > 0) {
-        memcpy(dstRowStart, srcRowStart, numColumns * sizeof(Pixel));
-        --rows;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-    }
-}
-
-void KisLmsF32ColorSpace::bitBlt(TQ_UINT8 *dst,
-                      TQ_INT32 dstRowStride,
-                      const TQ_UINT8 *src,
-                      TQ_INT32 srcRowStride,
-                      const TQ_UINT8 *tqmask,
-                      TQ_INT32 tqmaskRowStride,
-                      TQ_UINT8 U8_opacity,
-                      TQ_INT32 rows,
-                      TQ_INT32 cols,
-                      const KisCompositeOp& op)
-{
-    float opacity = UINT8_TO_FLOAT(U8_opacity);
-
-    switch (op.op()) {
-    case COMPOSITE_UNDEF:
-        // Undefined == no composition
-        break;
-    case COMPOSITE_OVER:
-        compositeOver(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY:
-        compositeCopy(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ERASE:
-        compositeErase(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    default:
-        break;
-    }
-}
-
-KisCompositeOpList KisLmsF32ColorSpace::userVisiblecompositeOps() const
-{
-    KisCompositeOpList list;
-
-    list.append(KisCompositeOp(COMPOSITE_OVER));
-    return list;
-}
-
diff --git a/krita/colorspaces/lms_f32/kis_lms_f32_colorspace.h b/krita/colorspaces/lms_f32/kis_lms_f32_colorspace.h
deleted file mode 100644
index 82a1c2aa6..000000000
--- a/krita/colorspaces/lms_f32/kis_lms_f32_colorspace.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien  <freak@codepimps.org>
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_STRATEGY_COLORSPACE_LMS_F32_H_
-#define KIS_STRATEGY_COLORSPACE_LMS_F32_H_
-
-#include <tqcolor.h>
-
-#include <klocale.h>
-
-#include <koffice_export.h>
-
-#include "kis_global.h"
-#include "kis_f32_base_colorspace.h"
-
-class KisColorSpaceFactoryRegistry;
-
-class KRITATOOL_EXPORT KisLmsF32ColorSpace : public KisF32BaseColorSpace {
-public:
-    KisLmsF32ColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p);
-    virtual ~KisLmsF32ColorSpace();
-
-    virtual bool willDegrade(ColorSpaceIndependence independence)
-        {
-            if (independence == TO_RGBA8 || independence == TO_LAB16)
-                return true;
-            else
-                return false;
-        };
-
-
-public:
-    void setPixel(TQ_UINT8 *pixel, float longWave, float middleWave, float shortWave, float alpha) const;
-    void getPixel(const TQ_UINT8 *pixel, float *longWave, float *middleWave, float *shortWave, float *alpha) const;
-
-    virtual void fromTQColor(const TQColor& c, TQ_UINT8 *dst, KisProfile * profile = 0);
-    virtual void fromTQColor(const TQColor& c, TQ_UINT8 opacity, TQ_UINT8 *dst, KisProfile * profile = 0);
-
-    virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, KisProfile * profile = 0);
-    virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, TQ_UINT8 *opacity, KisProfile * profile = 0);
-
-    virtual TQ_UINT8 difference(const TQ_UINT8 *src1, const TQ_UINT8 *src2);
-    virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const;
-
-    virtual TQValueVector<KisChannelInfo *> channels() const;
-    virtual TQ_UINT32 nChannels() const;
-    virtual TQ_UINT32 nColorChannels() const;
-    virtual TQ_UINT32 pixelSize() const;
-
-    virtual bool hasHighDynamicRange() const { return false; }
-
-    virtual TQImage convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width, TQ_INT32 height,
-                       KisProfile *  dstProfile,
-                       TQ_INT32 renderingIntent,
-                       float exposure = 0.0f);
-
-    virtual KisCompositeOpList userVisiblecompositeOps() const;
-
-
-protected:
-
-    virtual void bitBlt(TQ_UINT8 *dst,
-                TQ_INT32 dstRowStride,
-                const TQ_UINT8 *src,
-                TQ_INT32 srcRowStride,
-                const TQ_UINT8 *srcAlphaMask,
-                TQ_INT32 tqmaskRowStride,
-                TQ_UINT8 opacity,
-                TQ_INT32 rows,
-                TQ_INT32 cols,
-                const KisCompositeOp& op);
-
-    void compositeOver(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeCopy(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-
-private:
-    inline TQ_UINT8 computeRed(float l, float m, float s) const
-    {
-        return FLOAT_TO_UINT8(4.4679*l - 3.58738*m + 0.1193*s);
-    }
-    inline TQ_UINT8 computeGreen(float l, float m, float s) const
-    {
-        return FLOAT_TO_UINT8(-1.2186*l + 2.3809*m - 0.1624*s);
-    }
-    inline TQ_UINT8 computeBlue(float l, float m, float s) const
-    {
-        return FLOAT_TO_UINT8(0.0497*l - 0.2439*m + 1.2045*s);
-    }
-    inline float computeLong(TQ_UINT8 r, TQ_UINT8 g, TQ_UINT8 b) const
-    {
-        return 0.3811*UINT8_TO_FLOAT(r) + 0.5783*UINT8_TO_FLOAT(g) + 0.0402*UINT8_TO_FLOAT(b);
-    }
-    inline float computeMiddle(TQ_UINT8 r, TQ_UINT8 g, TQ_UINT8 b) const
-    {
-        return 0.1967*UINT8_TO_FLOAT(r) + 0.7244*UINT8_TO_FLOAT(g) + 0.0782*UINT8_TO_FLOAT(b);
-    }
-    inline float computeShort(TQ_UINT8 r, TQ_UINT8 g, TQ_UINT8 b) const
-    {
-        return 0.0241*UINT8_TO_FLOAT(r) + 0.1288*UINT8_TO_FLOAT(g) + 0.8444*UINT8_TO_FLOAT(b);
-    }
-
-    friend class KisLmsF32ColorSpaceTester;
-
-    static const TQ_UINT8 PIXEL_LONGWAVE = 0;
-    static const TQ_UINT8 PIXEL_MIDDLEWAVE = 1;
-    static const TQ_UINT8 PIXEL_SHORTWAVE = 2;
-    static const TQ_UINT8 PIXEL_ALPHA = 3;
-
-    struct Pixel {
-        float longWave;
-        float middleWave;
-        float shortWave;
-        float alpha;
-    };
-};
-
-class KisLmsF32ColorSpaceFactory : public KisColorSpaceFactory
-{
-public:
-    /**
-     * Krita definition for use in .kra files and internally: unchanging name +
-     * i18n'able description.
-     */
-    virtual KisID id() const { return KisID("LMSAF32", i18n("LMS Cone Space (32-bit float/channel)")); };
-
-    /**
-     * lcms colorspace type definition.
-     */
-    virtual TQ_UINT32 colorSpaceType() { return 0; }; // FIXME: lcms do not support LMS cone space
-
-    virtual icColorSpaceSignature colorSpaceSignature() { return icMaxEnumData; };
-
-    virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) { return new KisLmsF32ColorSpace(tqparent, p); };
-
-    virtual TQString defaultProfile() { return "sRGB built-in - (lcms internal)"; };
-};
-
-#endif // KIS_STRATEGY_COLORSPACE_LMS_F32_H_
-
diff --git a/krita/colorspaces/lms_f32/krita_lms_f32_plugin.desktop b/krita/colorspaces/lms_f32/krita_lms_f32_plugin.desktop
deleted file mode 100644
index 899512096..000000000
--- a/krita/colorspaces/lms_f32/krita_lms_f32_plugin.desktop
+++ /dev/null
@@ -1,77 +0,0 @@
-[Desktop Entry]
-Name=LMS Color Model (32-bit float)
-Name[bg]=Цветови модел LMS (32 бита)
-Name[ca]=Model de color LMS (paleta de 32 bits)
-Name[cy]=Model Lliw LMS (arnawf 32-did)
-Name[da]=LMS-farvemodel (32-bit float)
-Name[de]=LMS-Farbmodell (32-bit Fließkomma)
-Name[el]=Χρωματικό μοντέλο LMS (32 bit δεκαδικοί)
-Name[en_GB]=LMS Colour Model (32-bit float)
-Name[eo]=LMS-kolormodelo (32-bita flupunkto)
-Name[es]=Modelo de color LMS (decimal de 32 bits)
-Name[et]=LMS värvimudel (32-bitine murdarv)
-Name[fa]=مدل رنگ LMS )شناور ۳۲ بیتی(
-Name[fr]=Modèle de couleurs LMS (flottants 32 bits)
-Name[fy]=LMS-kleurmodel (32-bit float)
-Name[gl]=Modelo de Cores LMS (vírgula flutuante 32-bit)
-Name[he]=מודל צבעים LMS (32 סיביות)
-Name[hu]=LMS színmodell (32 bites lebegőpontos)
-Name[is]=LMS litategund (32-bita fleytitala)
-Name[it]=Modello di colore LMS (virgola mobile a 32 bit)
-Name[ja]=LMS カラーモデル (32 ビット浮動小数)
-Name[km]=គំរូ​ពណ៌ LMS (ចំនួន​ទស្សភាគ ៣២ ប៊ីត)
-Name[nb]=LMS-fargemodell (32-bit flyttall)
-Name[nds]=LMS-Klöörmodell (32-Bit Fleetkomma)
-Name[ne]=LMS रङ मोडेल (३२-बिट उत्प्लावन)
-Name[nl]=LMS-kleurmodel (32-bit float)
-Name[pl]=Przestrzeń barw LMS (32-bitowa liczba zmiennoprzecinkowa)
-Name[pt]=Modelo de Cor LMS (v. flutuante de 32-bits)
-Name[pt_BR]=Modelo de Cor LMS (ponto flutuante de 32-bits)
-Name[ru]=LMS (32-бит с плавающей точкой)
-Name[sk]=Model farieb LMS (32-bitové reálne čísla)
-Name[sl]=Barvni model LMS (32-bitna decimalno število)
-Name[sr]=LMS модел боја (32-битно реално)
-Name[sr@Latn]=LMS model boja (32-bitno realno)
-Name[sv]=LMS-färgmodell (32-bitars flyttal)
-Name[uk]=Модель кольору LMS (32-бітне дробове число)
-Name[uz]=LMS rang usuli (32-bit kasr)
-Name[uz@cyrillic]=LMS ранг усули (32-бит каср)
-Name[zh_CN]=LMS 色彩模型(32 位浮点)
-Name[zh_TW]=LMS 色彩模型 (32-bit 浮點數)
-Comment=Color model for LMS cone space (Long Middle and Short wavelengths)
-Comment[bg]=Цветови модел за интервали LMS (дълги, средни и къси вълни)
-Comment[ca]=Model de color per a conus d'espai LMC (amples d'ona llargs, mitjos i curts)
-Comment[cy]=Model lliw ar gyfer gofod côn LMS (tonfeddi Hir, Canolig a Byr)
-Comment[da]=Farvemodel for LMS-keglerum (Lange, mellemliggende og korte bølgelængder)
-Comment[de]=Farbmodell für LMS cone space (Lange, Mittelere und Kurze Wellenlängen)
-Comment[el]=Χρωματικό μοντέλο για χώρο χρωμάτων LMS (Μακρά μεσαία και σύντομα μήκη κύματος)
-Comment[en_GB]=Colour model for LMS cone space (Long Middle and Short wavelengths)
-Comment[es]=Modelo de color para el espacio cónico LMS (con longitudes de onda larga, media y corta)
-Comment[et]=LMS koonuse (pikad, keskmised ja lühikesed lainepikkused) värvimudel
-Comment[fa]=مدل رنگ برای فضای مخروط LMS )طول موج بلند، متوسط و کوتاه(
-Comment[fr]=Modèle de couleurs pour l'espace conique LMS (longueurs d'ondes longues, moyennes et courtes)
-Comment[fy]=Kleurmodel Foar LMS-kegelromte (lange, middelt en koarte golflingten)
-Comment[gl]=Modelo de Cores para o espazo do cone LMS (Long Middle and Short wavelengths)
-Comment[hu]=Színmodell az LMS kúptérhez (hosszú, közepes és rövid hullámhosszak)
-Comment[is]=Litategund fyrir LMS keilubil (löng miðlungs og stutt bylgjulengd)
-Comment[it]=Modello di colore per lo spazio conico LMS (lunghezze d'onda lunghe, medie e corte)
-Comment[km]=មូដែល​ពណ៌​សម្រាប់ LMS ដែល​មាន​ចន្លោះ​រាង​សាជី​មូល​ (ប្រវែង​រលក​ខ្លី និង​ពាក់​កណ្ដាល​វែង)
-Comment[nb]=Fargemodell for LMS-kjeglerom (Long Middle og Short bølgelengder)
-Comment[nds]=Klöörmodell för LMS-Kegelruum (Lang, middel un kort Bülgenlängden)
-Comment[ne]=LMS शंकु खाली स्थान (लामो मध्य र छोटो तरङलम्बाइहरू) का लागि रङ मोडेल
-Comment[nl]=Kleurmodel voor LMS-kegelruimte (lange, middel en korte golflengten)
-Comment[pl]=Przestrzeń barw dla przestrzeni stożkowej LMS (średnie długie i krótkie długości fal)
-Comment[pt]=Modelo de cor para o espaço cónico do LMS (comprimentos de onda longos, médios e curtos)
-Comment[pt_BR]=Modelo de cor para o espaço cônico do LMS (comprimentos de onda longos, médios e curtos)
-Comment[ru]=Цветовое пространство LMS (Long Middle and Short wavelengths)
-Comment[sk]=Model farieb pre LMS kónický priestor (dlhé, stredné a krátke vlnové dĺžky)
-Comment[sl]=Barvni model za prostor stožca LMS (dolge, srednje in kratke valovne dolžine)
-Comment[sr]=Модел боја за LMS конусни простор (дуге средње и кратке таласне дужине)
-Comment[sr@Latn]=Model boja za LMS konusni prostor (duge srednje i kratke talasne dužine)
-Comment[sv]=Färgmodell för LMS-konrymd (Långa, mellanliggande och korta våglängder)
-Comment[uk]=Модель кольорів для конусного простору LMS (довгі середні і короткі довжини кольорів)
-Comment[zh_TW]=LMS cone space 顏色模式（Long Middle and Short 波長）
-ServiceTypes=Krita/ColorSpace
-Type=Service
-X-KDE-Library=krita_lms_f32_plugin
-X-Krita-Version=2
diff --git a/krita/colorspaces/lms_f32/lms_f32_plugin.cc b/krita/colorspaces/lms_f32/lms_f32_plugin.cc
deleted file mode 100644
index b04dd86d9..000000000
--- a/krita/colorspaces/lms_f32/lms_f32_plugin.cc
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-* lms_f32_plugin.cc -- Part of Krita
-*
-* Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org)
-* Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
-*  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
-*
-*  This program is free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  This program is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  You should have received a copy of the GNU General Public License
-*  along with this program; if not, write to the Free Software
-*  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
-*/
-
-#include <kinstance.h>
-#include <kgenericfactory.h>
-#include <kdebug.h>
-
-#include <kis_debug_areas.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_basic_histogram_producers.h>
-
-#include "lms_f32_plugin.h"
-#include "kis_lms_f32_colorspace.h"
-
-typedef KGenericFactory<LMSF32Plugin> LMSF32PluginFactory;
-K_EXPORT_COMPONENT_FACTORY( krita_lms_f32_plugin, LMSF32PluginFactory( "krita" ) )
-
-
-LMSF32Plugin::LMSF32Plugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-    setInstance(LMSF32PluginFactory::instance());
-
-    if ( tqparent->inherits("KisColorSpaceFactoryRegistry") )
-    {
-	KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>(tqparent);
-
-        KisColorSpace * colorSpaceLMSF32  = new KisLmsF32ColorSpace(f, 0);
-
-        KisColorSpaceFactory * csf  = new KisLmsF32ColorSpaceFactory();
-        f->add(csf);
-
-        KisHistogramProducerFactoryRegistry::instance()->add(
-            new KisBasicHistogramProducerFactory<KisBasicF32HistogramProducer>
-            (KisID("LMSF32HISTO", i18n("Float32")), colorSpaceLMSF32) );
-    }
-
-}
-
-LMSF32Plugin::~LMSF32Plugin()
-{
-}
-
-#include "lms_f32_plugin.moc"
diff --git a/krita/colorspaces/lms_f32/lms_f32_plugin.h b/krita/colorspaces/lms_f32/lms_f32_plugin.h
deleted file mode 100644
index 7d9229a69..000000000
--- a/krita/colorspaces/lms_f32/lms_f32_plugin.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- *  Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef LMS_F32_PLUGIN_H_
-#define LMS_F32_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-/**
- * A plugin wrapper around the LMS F32 colour space strategy.
- */
-class LMSF32Plugin : public KParts::Plugin
-{
-    Q_OBJECT
-  TQ_OBJECT
-public:
-    LMSF32Plugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~LMSF32Plugin();
-
-};
-
-
-#endif // LMS_F32_PLUGIN_H_
diff --git a/krita/colorspaces/lms_f32/lms_f32_plugin.rc b/krita/colorspaces/lms_f32/lms_f32_plugin.rc
deleted file mode 100644
index ac6ec45f4..000000000
--- a/krita/colorspaces/lms_f32/lms_f32_plugin.rc
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui library="krita_lms_f32_plugin" version="1">
-<Menu name="Image"><text>&amp;Image</text>
-    <Menu name="Mode"><text>&amp;Mode</text>
-            <Action name="convert to RGB(A) (32-bit float)"/>
-    </Menu>
-</Menu>
-
-</kpartgui>
diff --git a/krita/colorspaces/rgb_f16half/Makefile.am b/krita/colorspaces/rgb_f16half/Makefile.am
deleted file mode 100644
index 89ef5d895..000000000
--- a/krita/colorspaces/rgb_f16half/Makefile.am
+++ /dev/null
@@ -1,35 +0,0 @@
-# Install the desktop file needed to detect the plugin
-kde_services_DATA = krita_rgb_f16half_plugin.desktop
-
-INCLUDES  = \
-	-I$(srcdir)/../../sdk \
-	-I$(srcdir)/../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../kritacolor/ \
-	$(OPENEXR_CFLAGS) \
-	$(KOFFICE_INCLUDES) \
-	$(all_includes)
-
-
-lib_LTLIBRARIES = libkrita_rgb_f16half.la
-libkrita_rgb_f16half_la_SOURCES = kis_rgb_f16half_colorspace.cc
-libkrita_rgb_f16half_la_LDFLAGS = $(all_libraries)
-libkrita_rgb_f16half_la_LIBADD =  ../../kritacolor/libkritacolor.la
-
-# Install this plugin in the KDE modules directory
-kde_module_LTLIBRARIES = krita_rgb_f16half_plugin.la
-
-# Srcs for the plugin
-krita_rgb_f16half_plugin_la_SOURCES = rgb_f16half_plugin.cc
-noinst_HEADERS = rgb_f16half_plugin.h kis_rgb_f16half_colorspace.h
-
-krita_rgb_f16half_plugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -llcms
-krita_rgb_f16half_plugin_la_LIBADD = libkrita_rgb_f16half.la ../../kritacolor/libkritacolor.la
-
-krita_rgb_f16half_plugin_la_METASOURCES = AUTO
-
-if include_kunittest_tests
-TESTSDIR = tests
-endif
-
-SUBDIRS = . $(TESTSDIR)
-
diff --git a/krita/colorspaces/rgb_f16half/kis_rgb_f16half_colorspace.cc b/krita/colorspaces/rgb_f16half/kis_rgb_f16half_colorspace.cc
deleted file mode 100644
index fb2df8c1a..000000000
--- a/krita/colorspaces/rgb_f16half/kis_rgb_f16half_colorspace.cc
+++ /dev/null
@@ -1,952 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include <config.h>
-#include <limits.h>
-#include <stdlib.h>
-#include LCMS_HEADER
-
-#include <tqimage.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include "kis_rgb_f16half_colorspace.h"
-#include "kis_f32_base_colorspace.h"
-#include "kis_color_conversions.h"
-
-namespace {
-    const TQ_INT32 MAX_CHANNEL_RGB = 3;
-    const TQ_INT32 MAX_CHANNEL_RGBA = 4;
-}
-
-#include "kis_integer_maths.h"
-
-#ifndef HAVE_POWF
-#undef powf
-#define powf pow
-#endif
-
-//#define HALF_MAX ((half)1.0f) //temp
-
-#define EPSILON HALF_EPSILON
-
-// FIXME: lcms doesn't support 16-bit float
-#define RGBAF16HALF_LCMS_TYPE TYPE_BGRA_16
-
-KisRgbF16HalfColorSpace::KisRgbF16HalfColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) :
-    KisF16HalfBaseColorSpace(KisID("RGBAF16HALF", i18n("RGB (16-bit float/channel)")), RGBAF16HALF_LCMS_TYPE, icSigRgbData, tqparent, p)
-{
-    m_channels.push_back(new KisChannelInfo(i18n("Red"), i18n("R"), PIXEL_RED * sizeof(half), KisChannelInfo::COLOR, KisChannelInfo::FLOAT16, sizeof(half)));
-    m_channels.push_back(new KisChannelInfo(i18n("Green"), i18n("G"), PIXEL_GREEN * sizeof(half), KisChannelInfo::COLOR, KisChannelInfo::FLOAT16, sizeof(half)));
-    m_channels.push_back(new KisChannelInfo(i18n("Blue"), i18n("B"), PIXEL_BLUE * sizeof(half), KisChannelInfo::COLOR, KisChannelInfo::FLOAT16, sizeof(half)));
-    m_channels.push_back(new KisChannelInfo(i18n("Alpha"), i18n("A"), PIXEL_ALPHA * sizeof(half), KisChannelInfo::ALPHA, KisChannelInfo::FLOAT16, sizeof(half)));
-
-    //cmsHPROFILE hProfile = cmsCreate_sRGBProfile();
-    //setDefaultProfile( new KisProfile(hProfile, RGBAF16HALF_LCMS_TYPE) );
-
-    m_alphaPos = PIXEL_ALPHA * sizeof(half);
-}
-
-KisRgbF16HalfColorSpace::~KisRgbF16HalfColorSpace()
-{
-}
-
-void KisRgbF16HalfColorSpace::setPixel(TQ_UINT8 *dst, half red, half green, half blue, half alpha) const
-{
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->red = red;
-    dstPixel->green = green;
-    dstPixel->blue = blue;
-    dstPixel->alpha = alpha;
-}
-
-void KisRgbF16HalfColorSpace::getPixel(const TQ_UINT8 *src, half *red, half *green, half *blue, half *alpha) const
-{
-    const Pixel *srcPixel = reinterpret_cast<const Pixel *>(src);
-
-    *red = srcPixel->red;
-    *green = srcPixel->green;
-    *blue = srcPixel->blue;
-    *alpha = srcPixel->alpha;
-}
-
-void KisRgbF16HalfColorSpace::fromTQColor(const TQColor& c, TQ_UINT8 *dstU8, KisProfile *)
-{
-    Pixel *dst = reinterpret_cast<Pixel *>(dstU8);
-
-    dst->red = UINT8_TO_HALF(c.red());
-    dst->green = UINT8_TO_HALF(c.green());
-    dst->blue = UINT8_TO_HALF(c.blue());
-}
-
-void KisRgbF16HalfColorSpace::fromTQColor(const TQColor& c, TQ_UINT8 opacity, TQ_UINT8 *dstU8, KisProfile *)
-{
-    Pixel *dst = reinterpret_cast<Pixel *>(dstU8);
-
-    dst->red = UINT8_TO_HALF(c.red());
-    dst->green = UINT8_TO_HALF(c.green());
-    dst->blue = UINT8_TO_HALF(c.blue());
-    dst->alpha = UINT8_TO_HALF(opacity);
-}
-
-void KisRgbF16HalfColorSpace::toTQColor(const TQ_UINT8 *srcU8, TQColor *c, KisProfile *)
-{
-    const Pixel *src = reinterpret_cast<const Pixel *>(srcU8);
-
-    c->setRgb(HALF_TO_UINT8(src->red), HALF_TO_UINT8(src->green), HALF_TO_UINT8(src->blue));
-}
-
-void KisRgbF16HalfColorSpace::toTQColor(const TQ_UINT8 *srcU8, TQColor *c, TQ_UINT8 *opacity, KisProfile *)
-{
-    const Pixel *src = reinterpret_cast<const Pixel *>(srcU8);
-
-    c->setRgb(HALF_TO_UINT8(src->red), HALF_TO_UINT8(src->green), HALF_TO_UINT8(src->blue));
-    *opacity = HALF_TO_UINT8(src->alpha);
-}
-
-TQ_UINT8 KisRgbF16HalfColorSpace::difference(const TQ_UINT8 *src1U8, const TQ_UINT8 *src2U8)
-{
-    const Pixel *src1 = reinterpret_cast<const Pixel *>(src1U8);
-    const Pixel *src2 = reinterpret_cast<const Pixel *>(src2U8);
-
-    return HALF_TO_UINT8(TQMAX(TQABS(src2->red - src1->red),
-                TQMAX(TQABS(src2->green - src1->green),
-                     TQABS(src2->blue - src1->blue))));
-}
-
-void KisRgbF16HalfColorSpace::mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const
-{
-    half totalRed = 0, totalGreen = 0, totalBlue = 0, newAlpha = 0;
-
-    while (nColors--)
-    {
-        const Pixel *pixel = reinterpret_cast<const Pixel *>(*colors);
-
-        half alpha = pixel->alpha;
-        half alphaTimesWeight = alpha * UINT8_TO_HALF(*weights);
-
-        totalRed += pixel->red * alphaTimesWeight;
-        totalGreen += pixel->green * alphaTimesWeight;
-        totalBlue += pixel->blue * alphaTimesWeight;
-        newAlpha += alphaTimesWeight;
-
-        weights++;
-        colors++;
-    }
-
-    Q_ASSERT(newAlpha <= F16HALF_OPACITY_OPAQUE);
-
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->alpha = newAlpha;
-
-    if (newAlpha > EPSILON) {
-        totalRed = totalRed / newAlpha;
-        totalGreen = totalGreen / newAlpha;
-        totalBlue = totalBlue / newAlpha;
-    }
-
-    dstPixel->red = totalRed;
-    dstPixel->green = totalGreen;
-    dstPixel->blue = totalBlue;
-}
-
-void KisRgbF16HalfColorSpace::convolveColors(TQ_UINT8** colors, TQ_INT32 * kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const
-{
-    half totalRed = 0, totalGreen = 0, totalBlue = 0, totalAlpha = 0;
-
-    while (nColors--)
-    {
-        const Pixel * pixel = reinterpret_cast<const Pixel *>( *colors );
-
-        half weight = *kernelValues;
-
-        if (weight != 0) {
-            totalRed += pixel->red * UINT8_TO_HALF(weight);
-            totalGreen += pixel->green * UINT8_TO_HALF(weight);
-            totalBlue += pixel->blue * UINT8_TO_HALF(weight);
-            totalAlpha += pixel->alpha * UINT8_TO_HALF(weight);
-        }
-        colors++;
-        kernelValues++;
-    }
-
-    Pixel * p = reinterpret_cast< Pixel *>( dst );
-
-    if (channelFlags & KisChannelInfo::FLAG_COLOR) {
-        p->red = CLAMP( ( totalRed / factor) + offset, 0, HALF_MAX);
-        p->green = CLAMP( ( totalGreen / factor) + offset, 0, HALF_MAX);
-        p->blue = CLAMP( ( totalBlue / factor) + offset, 0, HALF_MAX);
-    }
-    if (channelFlags & KisChannelInfo::FLAG_ALPHA) {
-        p->alpha = CLAMP((totalAlpha/ factor) + offset, 0, HALF_MAX);
-    }
-}
-
-
-void KisRgbF16HalfColorSpace::invertColor(TQ_UINT8 * src, TQ_INT32 nPixels)
-{
-    TQ_UINT32 psize = pixelSize();
-
-    while (nPixels--)
-    {
-        Pixel * p = reinterpret_cast< Pixel *>( src );
-        p->red = 1.0 - p->red;
-        p->green = 1.0 - p->green;
-        p->blue = 1.0 - p->blue;
-        src += psize;
-    }
-
-}
-
-
-TQ_UINT8 KisRgbF16HalfColorSpace::intensity8(const TQ_UINT8 * src) const
-{
-    const Pixel * p = reinterpret_cast<const Pixel *>( src );
-
-    return HALF_TO_UINT8((p->red * 0.30 + p->green * 0.59 + p->blue * 0.11) + 0.5);
-}
-
-
-TQValueVector<KisChannelInfo *> KisRgbF16HalfColorSpace::channels() const
-{
-    return m_channels;
-}
-
-TQ_UINT32 KisRgbF16HalfColorSpace::nChannels() const
-{
-    return MAX_CHANNEL_RGBA;
-}
-
-TQ_UINT32 KisRgbF16HalfColorSpace::nColorChannels() const
-{
-    return MAX_CHANNEL_RGB;
-}
-
-TQ_UINT32 KisRgbF16HalfColorSpace::pixelSize() const
-{
-    return MAX_CHANNEL_RGBA * sizeof(half);
-}
-
-TQ_UINT8 convertToDisplay(float value, float exposureFactor, float gamma)
-{
-    //value *= pow(2, exposure + 2.47393);
-    value *= exposureFactor;
-
-    value = powf(value, gamma);
-
-    // scale middle gray to the target framebuffer value
-
-    value *= 84.66f;
-
-    int valueInt = (int)(value + 0.5);
-
-    return CLAMP(valueInt, 0, 255);
-}
-
-TQImage KisRgbF16HalfColorSpace::convertToTQImage(const TQ_UINT8 *dataU8, TQ_INT32 width, TQ_INT32 height,
-                         KisProfile *  /*dstProfile*/,
-                         TQ_INT32 /*renderingIntent*/, float exposure)
-
-{
-    const half *data = reinterpret_cast<const half *>(dataU8);
-
-    TQImage img = TQImage(width, height, 32, 0, TQImage::LittleEndian);
-    img.setAlphaBuffer(true);
-
-    TQ_INT32 i = 0;
-    uchar *j = img.bits();
-
-    // XXX: For now assume gamma 2.2.
-    float gamma = 1 / 2.2;
-    float exposureFactor = powf(2, exposure + 2.47393);
-
-    while ( i < width * height * MAX_CHANNEL_RGBA) {
-        *( j + 3)  = HALF_TO_UINT8(*( data + i + PIXEL_ALPHA ));
-        *( j + 2 ) = convertToDisplay(*( data + i + PIXEL_RED ), exposureFactor, gamma);
-        *( j + 1 ) = convertToDisplay(*( data + i + PIXEL_GREEN ), exposureFactor, gamma);
-        *( j + 0 ) = convertToDisplay(*( data + i + PIXEL_BLUE ), exposureFactor, gamma);
-        i += MAX_CHANNEL_RGBA;
-        j += MAX_CHANNEL_RGBA;
-    }
-
-    /*
-    if (srcProfile != 0 && dstProfile != 0) {
-        convertPixelsTo(img.bits(), srcProfile,
-                img.bits(), this, dstProfile,
-                width * height, renderingIntent);
-    }
-    */
-    return img;
-}
-
-
-void KisRgbF16HalfColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, half opacity)
-{
-    while (rows > 0) {
-
-        const half *src = reinterpret_cast<const half *>(srcRowStart);
-        half *dst = reinterpret_cast<half *>(dstRowStart);
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-        TQ_INT32 columns = numColumns;
-
-        while (columns > 0) {
-
-            half srcAlpha = src[PIXEL_ALPHA];
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha *= UINT8_TO_HALF(U8_tqmask);
-                }
-                tqmask++;
-            }
-
-            if (srcAlpha > F16HALF_OPACITY_TRANSPARENT + EPSILON) {
-
-                if (opacity < F16HALF_OPACITY_OPAQUE - EPSILON) {
-                    srcAlpha *= opacity;
-                }
-
-                if (srcAlpha > F16HALF_OPACITY_OPAQUE - EPSILON) {
-                    memcpy(dst, src, MAX_CHANNEL_RGBA * sizeof(half));
-                } else {
-                    half dstAlpha = dst[PIXEL_ALPHA];
-
-                    half srcBlend;
-
-                    if (dstAlpha > F16HALF_OPACITY_OPAQUE - EPSILON) {
-                        srcBlend = srcAlpha;
-                    } else {
-                        half newAlpha = dstAlpha + (F16HALF_OPACITY_OPAQUE - dstAlpha) * srcAlpha;
-                        dst[PIXEL_ALPHA] = newAlpha;
-
-                        if (newAlpha > EPSILON) {
-                            srcBlend = srcAlpha / newAlpha;
-                        } else {
-                            srcBlend = srcAlpha;
-                        }
-                    }
-
-                    if (srcBlend > F16HALF_OPACITY_OPAQUE - EPSILON) {
-                        memcpy(dst, src, MAX_CHANNEL_RGB * sizeof(half));
-                    } else {
-                        dst[PIXEL_RED] = HALF_BLEND(src[PIXEL_RED], dst[PIXEL_RED], srcBlend);
-                        dst[PIXEL_GREEN] = HALF_BLEND(src[PIXEL_GREEN], dst[PIXEL_GREEN], srcBlend);
-                        dst[PIXEL_BLUE] = HALF_BLEND(src[PIXEL_BLUE], dst[PIXEL_BLUE], srcBlend);
-                    }
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart) {
-            tqmaskRowStart += tqmaskRowStride;
-        }
-    }
-}
-
-#define COMMON_COMPOSITE_OP_PROLOG() \
-    while (rows > 0) { \
-    \
-        const half *src = reinterpret_cast<const half *>(srcRowStart); \
-        half *dst = reinterpret_cast<half *>(dstRowStart); \
-        TQ_INT32 columns = numColumns; \
-        const TQ_UINT8 *tqmask = tqmaskRowStart; \
-    \
-        while (columns > 0) { \
-    \
-            half srcAlpha = src[PIXEL_ALPHA]; \
-            half dstAlpha = dst[PIXEL_ALPHA]; \
-    \
-            srcAlpha = TQMIN(srcAlpha, dstAlpha); \
-    \
-            if (tqmask != 0) { \
-                TQ_UINT8 U8_tqmask = *tqmask; \
-    \
-                if (U8_tqmask != OPACITY_OPAQUE) { \
-                    srcAlpha *= UINT8_TO_HALF(U8_tqmask); \
-                } \
-                tqmask++; \
-            } \
-    \
-            if (srcAlpha > F16HALF_OPACITY_TRANSPARENT + EPSILON) { \
-    \
-                if (opacity < F16HALF_OPACITY_OPAQUE - EPSILON) { \
-                    srcAlpha *= opacity; \
-                } \
-    \
-                half srcBlend; \
-    \
-                if (dstAlpha > F16HALF_OPACITY_OPAQUE - EPSILON) { \
-                    srcBlend = srcAlpha; \
-                } else { \
-                    half newAlpha = dstAlpha + (F16HALF_OPACITY_OPAQUE - dstAlpha) * srcAlpha; \
-                    dst[PIXEL_ALPHA] = newAlpha; \
-    \
-                    if (newAlpha > EPSILON) { \
-                        srcBlend = srcAlpha / newAlpha; \
-                    } else { \
-                        srcBlend = srcAlpha; \
-                    } \
-                }
-
-#define COMMON_COMPOSITE_OP_EPILOG() \
-            } \
-    \
-            columns--; \
-            src += MAX_CHANNEL_RGBA; \
-            dst += MAX_CHANNEL_RGBA; \
-        } \
-    \
-        rows--; \
-        srcRowStart += srcRowStride; \
-        dstRowStart += dstRowStride; \
-        if(tqmaskRowStart) { \
-            tqmaskRowStart += tqmaskRowStride; \
-        } \
-    }
-
-void KisRgbF16HalfColorSpace::compositeMultiply(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, half opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        half srcColor = src[PIXEL_RED];
-        half dstColor = dst[PIXEL_RED];
-
-        srcColor = srcColor * dstColor;
-
-        dst[PIXEL_RED] = HALF_BLEND(srcColor, dstColor, srcBlend);
-
-        srcColor = src[PIXEL_GREEN];
-        dstColor = dst[PIXEL_GREEN];
-
-        srcColor = srcColor * dstColor;
-
-        dst[PIXEL_GREEN] = HALF_BLEND(srcColor, dstColor, srcBlend);
-
-        srcColor = src[PIXEL_BLUE];
-        dstColor = dst[PIXEL_BLUE];
-
-        srcColor = srcColor * dstColor;
-
-        dst[PIXEL_BLUE] = HALF_BLEND(srcColor, dstColor, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF16HalfColorSpace::compositeDivide(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, half opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            half srcColor = src[channel];
-            half dstColor = dst[channel];
-
-            srcColor = TQMIN(dstColor / (srcColor + EPSILON), HALF_MAX);
-
-            half newColor = HALF_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF16HalfColorSpace::compositeScreen(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, half opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            half srcColor = src[channel];
-            half dstColor = dst[channel];
-
-            srcColor = HALF_MAX - ((HALF_MAX - dstColor) * (HALF_MAX - srcColor));
-
-            half newColor = HALF_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF16HalfColorSpace::compositeOverlay(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, half opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            half srcColor = src[channel];
-            half dstColor = dst[channel];
-
-            srcColor = dstColor * (dstColor + 2 * (srcColor * (HALF_MAX - dstColor)));
-
-            half newColor = HALF_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF16HalfColorSpace::compositeDodge(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, half opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            half srcColor = src[channel];
-            half dstColor = dst[channel];
-
-            srcColor = TQMIN(dstColor / (HALF_MAX + EPSILON - srcColor), HALF_MAX);
-
-            half newColor = HALF_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF16HalfColorSpace::compositeBurn(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, half opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            half srcColor = src[channel];
-            half dstColor = dst[channel];
-
-            srcColor = TQMIN((HALF_MAX - dstColor) / (srcColor + EPSILON), HALF_MAX);
-            srcColor = CLAMP(HALF_MAX - srcColor, 0, HALF_MAX);
-
-            half newColor = HALF_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF16HalfColorSpace::compositeDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, half opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            half srcColor = src[channel];
-            half dstColor = dst[channel];
-
-            srcColor = TQMIN(srcColor, dstColor);
-
-            half newColor = HALF_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF16HalfColorSpace::compositeLighten(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, half opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            half srcColor = src[channel];
-            half dstColor = dst[channel];
-
-            srcColor = TQMAX(srcColor, dstColor);
-
-            half newColor = HALF_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF16HalfColorSpace::compositeHue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, half opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        float srcRed = src[PIXEL_RED];
-        float srcGreen = src[PIXEL_GREEN];
-        float srcBlue = src[PIXEL_BLUE];
-
-        float dstRed = dst[PIXEL_RED];
-        float dstGreen = dst[PIXEL_GREEN];
-        float dstBlue = dst[PIXEL_BLUE];
-
-        float srcHue;
-        float srcSaturation;
-        float srcValue;
-
-        float dstHue;
-        float dstSaturation;
-        float dstValue;
-
-        RGBToHSV(srcRed, srcGreen, srcBlue, &srcHue, &srcSaturation, &srcValue);
-        RGBToHSV(dstRed, dstGreen, dstBlue, &dstHue, &dstSaturation, &dstValue);
-
-        HSVToRGB(srcHue, dstSaturation, dstValue, &srcRed, &srcGreen, &srcBlue);
-
-        dst[PIXEL_RED] = FLOAT_BLEND(srcRed, dstRed, srcBlend);
-        dst[PIXEL_GREEN] = FLOAT_BLEND(srcGreen, dstGreen, srcBlend);
-        dst[PIXEL_BLUE] = FLOAT_BLEND(srcBlue, dstBlue, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF16HalfColorSpace::compositeSaturation(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, half opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        float srcRed = src[PIXEL_RED];
-        float srcGreen = src[PIXEL_GREEN];
-        float srcBlue = src[PIXEL_BLUE];
-
-        float dstRed = dst[PIXEL_RED];
-        float dstGreen = dst[PIXEL_GREEN];
-        float dstBlue = dst[PIXEL_BLUE];
-
-        float srcHue;
-        float srcSaturation;
-        float srcValue;
-
-        float dstHue;
-        float dstSaturation;
-        float dstValue;
-
-        RGBToHSV(srcRed, srcGreen, srcBlue, &srcHue, &srcSaturation, &srcValue);
-        RGBToHSV(dstRed, dstGreen, dstBlue, &dstHue, &dstSaturation, &dstValue);
-
-        HSVToRGB(dstHue, srcSaturation, dstValue, &srcRed, &srcGreen, &srcBlue);
-
-        dst[PIXEL_RED] = FLOAT_BLEND(srcRed, dstRed, srcBlend);
-        dst[PIXEL_GREEN] = FLOAT_BLEND(srcGreen, dstGreen, srcBlend);
-        dst[PIXEL_BLUE] = FLOAT_BLEND(srcBlue, dstBlue, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF16HalfColorSpace::compositeValue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, half opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        float srcRed = src[PIXEL_RED];
-        float srcGreen = src[PIXEL_GREEN];
-        float srcBlue = src[PIXEL_BLUE];
-
-        float dstRed = dst[PIXEL_RED];
-        float dstGreen = dst[PIXEL_GREEN];
-        float dstBlue = dst[PIXEL_BLUE];
-
-        float srcHue;
-        float srcSaturation;
-        float srcValue;
-
-        float dstHue;
-        float dstSaturation;
-        float dstValue;
-
-        RGBToHSV(srcRed, srcGreen, srcBlue, &srcHue, &srcSaturation, &srcValue);
-        RGBToHSV(dstRed, dstGreen, dstBlue, &dstHue, &dstSaturation, &dstValue);
-
-        HSVToRGB(dstHue, dstSaturation, srcValue, &srcRed, &srcGreen, &srcBlue);
-
-        dst[PIXEL_RED] = FLOAT_BLEND(srcRed, dstRed, srcBlend);
-        dst[PIXEL_GREEN] = FLOAT_BLEND(srcGreen, dstGreen, srcBlend);
-        dst[PIXEL_BLUE] = FLOAT_BLEND(srcBlue, dstBlue, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF16HalfColorSpace::compositeColor(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, half opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        float srcRed = src[PIXEL_RED];
-        float srcGreen = src[PIXEL_GREEN];
-        float srcBlue = src[PIXEL_BLUE];
-
-        float dstRed = dst[PIXEL_RED];
-        float dstGreen = dst[PIXEL_GREEN];
-        float dstBlue = dst[PIXEL_BLUE];
-
-        float srcHue;
-        float srcSaturation;
-        float srcLightness;
-
-        float dstHue;
-        float dstSaturation;
-        float dstLightness;
-
-        RGBToHSL(srcRed, srcGreen, srcBlue, &srcHue, &srcSaturation, &srcLightness);
-        RGBToHSL(dstRed, dstGreen, dstBlue, &dstHue, &dstSaturation, &dstLightness);
-
-        HSLToRGB(srcHue, srcSaturation, dstLightness, &srcRed, &srcGreen, &srcBlue);
-
-        dst[PIXEL_RED] = FLOAT_BLEND(srcRed, dstRed, srcBlend);
-        dst[PIXEL_GREEN] = FLOAT_BLEND(srcGreen, dstGreen, srcBlend);
-        dst[PIXEL_BLUE] = FLOAT_BLEND(srcBlue, dstBlue, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF16HalfColorSpace::compositeErase(TQ_UINT8 *dst,
-            TQ_INT32 dstRowSize,
-            const TQ_UINT8 *src,
-            TQ_INT32 srcRowSize,
-            const TQ_UINT8 *srcAlphaMask,
-            TQ_INT32 tqmaskRowStride,
-            TQ_INT32 rows,
-            TQ_INT32 cols,
-            half /*opacity*/)
-{
-    while (rows-- > 0)
-    {
-        const Pixel *s = reinterpret_cast<const Pixel *>(src);
-        Pixel *d = reinterpret_cast<Pixel *>(dst);
-        const TQ_UINT8 *tqmask = srcAlphaMask;
-
-        for (TQ_INT32 i = cols; i > 0; i--, s++, d++)
-        {
-            half srcAlpha = s->alpha;
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = HALF_BLEND(srcAlpha, F16HALF_OPACITY_OPAQUE, UINT8_TO_HALF(U8_tqmask));
-                }
-                tqmask++;
-            }
-            d->alpha = srcAlpha * d->alpha;
-        }
-
-        dst += dstRowSize;
-        src += srcRowSize;
-        if(srcAlphaMask) {
-            srcAlphaMask += tqmaskRowStride;
-        }
-    }
-}
-
-void KisRgbF16HalfColorSpace::bitBlt(TQ_UINT8 *dst,
-                      TQ_INT32 dstRowStride,
-                      const TQ_UINT8 *src,
-                      TQ_INT32 srcRowStride,
-                      const TQ_UINT8 *tqmask,
-                      TQ_INT32 tqmaskRowStride,
-                      TQ_UINT8 U8_opacity,
-                      TQ_INT32 rows,
-                      TQ_INT32 cols,
-                      const KisCompositeOp& op)
-{
-    half opacity = UINT8_TO_HALF(U8_opacity);
-
-    switch (op.op()) {
-    case COMPOSITE_UNDEF:
-        // Undefined == no composition
-        break;
-    case COMPOSITE_OVER:
-        compositeOver(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_IN:
-        //compositeIn(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-    case COMPOSITE_OUT:
-        //compositeOut(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ATOP:
-        //compositeAtop(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_XOR:
-        //compositeXor(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_PLUS:
-        //compositePlus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_MINUS:
-        //compositeMinus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ADD:
-        //compositeAdd(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SUBTRACT:
-        //compositeSubtract(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DIFF:
-        //compositeDiff(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_MULT:
-        compositeMultiply(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DIVIDE:
-        compositeDivide(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_BUMPMAP:
-        //compositeBumpmap(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY:
-        compositeCopy(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, U8_opacity);
-        break;
-    case COMPOSITE_COPY_RED:
-        //compositeCopyRed(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_GREEN:
-        //compositeCopyGreen(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_BLUE:
-        //compositeCopyBlue(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_OPACITY:
-        //compositeCopyOpacity(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_CLEAR:
-        //compositeClear(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DISSOLVE:
-        //compositeDissolve(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DISPLACE:
-        //compositeDisplace(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-#if 0
-    case COMPOSITE_MODULATE:
-        compositeModulate(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_THRESHOLD:
-        compositeThreshold(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-#endif
-    case COMPOSITE_NO:
-        // No composition.
-        break;
-    case COMPOSITE_DARKEN:
-        compositeDarken(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_LIGHTEN:
-        compositeLighten(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_HUE:
-        compositeHue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SATURATION:
-        compositeSaturation(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_VALUE:
-        compositeValue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COLOR:
-        compositeColor(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COLORIZE:
-        //compositeColorize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_LUMINIZE:
-        //compositeLuminize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SCREEN:
-        compositeScreen(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_OVERLAY:
-        compositeOverlay(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ERASE:
-        compositeErase(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DODGE:
-        compositeDodge(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_BURN:
-        compositeBurn(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ALPHA_DARKEN:
-        abstractCompositeAlphaDarken<half, F16HalfMult, Uint8ToF16Half, F16HalfOpacityTest,
-                    PIXEL_ALPHA, MAX_CHANNEL_RGB, MAX_CHANNEL_RGBA>(
-                    dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride,
-                    rows, cols,
-                    U8_opacity, F16HalfMult(), Uint8ToF16Half(), F16HalfOpacityTest());
-        break;
-    default:
-        break;
-    }
-}
-
-KisCompositeOpList KisRgbF16HalfColorSpace::userVisiblecompositeOps() const
-{
-    KisCompositeOpList list;
-
-    list.append(KisCompositeOp(COMPOSITE_OVER));
-    list.append(KisCompositeOp(COMPOSITE_ALPHA_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_MULT));
-    list.append(KisCompositeOp(COMPOSITE_BURN));
-    list.append(KisCompositeOp(COMPOSITE_DODGE));
-    list.append(KisCompositeOp(COMPOSITE_DIVIDE));
-    list.append(KisCompositeOp(COMPOSITE_SCREEN));
-    list.append(KisCompositeOp(COMPOSITE_OVERLAY));
-    list.append(KisCompositeOp(COMPOSITE_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_LIGHTEN));
-    list.append(KisCompositeOp(COMPOSITE_HUE));
-    list.append(KisCompositeOp(COMPOSITE_SATURATION));
-    list.append(KisCompositeOp(COMPOSITE_VALUE));
-    list.append(KisCompositeOp(COMPOSITE_COLOR));
-
-    return list;
-}
-
diff --git a/krita/colorspaces/rgb_f16half/kis_rgb_f16half_colorspace.h b/krita/colorspaces/rgb_f16half/kis_rgb_f16half_colorspace.h
deleted file mode 100644
index c4a356c0d..000000000
--- a/krita/colorspaces/rgb_f16half/kis_rgb_f16half_colorspace.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_RGB_F16HALF_COLORSPACE_H_
-#define KIS_RGB_F16HALF_COLORSPACE_H_
-
-#include <tqcolor.h>
-
-#include <klocale.h>
-
-#include <koffice_export.h>
-
-#include "kis_global.h"
-#include "kis_f16half_base_colorspace.h"
-
-
-class KRITATOOL_EXPORT KisRgbF16HalfColorSpace : public KisF16HalfBaseColorSpace {
-public:
-    KisRgbF16HalfColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p);
-    virtual ~KisRgbF16HalfColorSpace();
-
-    virtual bool willDegrade(ColorSpaceIndependence independence)
-        {
-            if (independence == TO_RGBA8 || independence == TO_LAB16)
-                return true;
-            else
-                return false;
-        };
-
-
-public:
-    void setPixel(TQ_UINT8 *pixel, half red, half green, half blue, half alpha) const;
-    void getPixel(const TQ_UINT8 *pixel, half *red, half *green, half *blue, half *alpha) const;
-
-    virtual void fromTQColor(const TQColor& c, TQ_UINT8 *dst, KisProfile * profile = 0);
-    virtual void fromTQColor(const TQColor& c, TQ_UINT8 opacity, TQ_UINT8 *dst, KisProfile * profile = 0);
-
-    virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, KisProfile * profile = 0);
-    virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, TQ_UINT8 *opacity, KisProfile * profile = 0);
-
-    virtual TQ_UINT8 difference(const TQ_UINT8 *src1, const TQ_UINT8 *src2);
-    virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const;
-    virtual void invertColor(TQ_UINT8 * src, TQ_INT32 nPixels);
-    virtual void convolveColors(TQ_UINT8** colors, TQ_INT32 * kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const;
-    virtual TQ_UINT8 intensity8(const TQ_UINT8 * src) const;
-            
-    virtual TQValueVector<KisChannelInfo *> channels() const;
-    virtual TQ_UINT32 nChannels() const;
-    virtual TQ_UINT32 nColorChannels() const;
-    virtual TQ_UINT32 pixelSize() const;
-
-    virtual TQImage convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width, TQ_INT32 height,
-                       KisProfile *  dstProfile,
-                       TQ_INT32 renderingIntent,
-                       float exposure = 0.0f);
-
-    virtual KisCompositeOpList userVisiblecompositeOps() const;
-
-
-protected:
-
-    virtual void bitBlt(TQ_UINT8 *dst,
-                TQ_INT32 dstRowStride,
-                const TQ_UINT8 *src,
-                TQ_INT32 srcRowStride,
-                const TQ_UINT8 *srcAlphaMask,
-                TQ_INT32 tqmaskRowStride,
-                TQ_UINT8 opacity,
-                TQ_INT32 rows,
-                TQ_INT32 cols,
-                const KisCompositeOp& op);
-
-    void compositeOver(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-    void compositeMultiply(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-    void compositeDivide(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-    void compositeScreen(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-    void compositeOverlay(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-    void compositeDodge(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-    void compositeBurn(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-    void compositeDarken(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-    void compositeLighten(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-    void compositeHue(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-    void compositeSaturation(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-    void compositeValue(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-    void compositeColor(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-    void compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, half opacity);
-
-private:
-    friend class KisRgbF16HalfColorSpaceTester;
-
-    static const TQ_UINT8 PIXEL_BLUE = 0;
-    static const TQ_UINT8 PIXEL_GREEN = 1;
-    static const TQ_UINT8 PIXEL_RED = 2;
-    static const TQ_UINT8 PIXEL_ALPHA = 3;
-
-    struct Pixel {
-        half blue;
-        half green;
-        half red;
-        half alpha;
-    };
-};
-
-// FIXME: lcms doesn't support 16-bit float
-#define RGBAF16HALF_LCMS_TYPE TYPE_BGRA_16
-
-class KisRgbF16HalfColorSpaceFactory : public KisColorSpaceFactory
-{
-public:
-    /**
-     * Krita definition for use in .kra files and internally: unchanging name +
-     * i18n'able description.
-     */
-    virtual KisID id() const { return KisID("RGBAF16HALF", i18n("RGB (16-bit float/channel)")); };
-
-    /**
-     * lcms colorspace type definition.
-     */
-    virtual TQ_UINT32 colorSpaceType() { return RGBAF16HALF_LCMS_TYPE; };
-
-    virtual icColorSpaceSignature colorSpaceSignature() { return icSigRgbData; };
-
-    virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) { return new KisRgbF16HalfColorSpace(tqparent, p); };
-
-    virtual TQString defaultProfile() { return "sRGB built-in - (lcms internal)"; };
-};
-
-#endif // KIS_RGB_F16HALF_COLORSPACE_H_
-
diff --git a/krita/colorspaces/rgb_f16half/krita_rgb_f16half_plugin.desktop b/krita/colorspaces/rgb_f16half/krita_rgb_f16half_plugin.desktop
deleted file mode 100644
index 8ebf7b17e..000000000
--- a/krita/colorspaces/rgb_f16half/krita_rgb_f16half_plugin.desktop
+++ /dev/null
@@ -1,76 +0,0 @@
-[Desktop Entry]
-Name=RGB Color Model (16-bit float 'half')
-Name[bg]=Цветови модел RGB (16-bit float 'half')
-Name[ca]=Model de color RGB (paleta 'mitja' de 16 bits)
-Name[cy]=Model Lliw RGB (arnawf 16-did 'hanner')
-Name[da]=RGB-farvemodel (16-bit heltal 'halv')
-Name[de]=RGB-Farbmodell (16-bit Fließkomma 'Halb')
-Name[el]=Χρωματικό μοντέλο RGB (16 bit μισοί δεκαδικοί)
-Name[en_GB]=RGB Colour Model (16-bit float 'half')
-Name[es]=Modelo de color RGB (decimal «medio» de 16 bits)
-Name[et]=RGB värvimudel (16-bitine murdarv 'half')
-Name[fa]=مدل رنگ RGB )»نیمه« شناور ۱۶ بیتی(
-Name[fr]=Modèle de couleurs RVB (demi flottants 16 bits)
-Name[fy]=RGB-kleurmodel (16-bit float 'heal')
-Name[gl]=Modelo de Cores RGB (vírgula flutuante 16-bit 'half')
-Name[he]=מודל צבעים RGB (16 סיביות)
-Name[hu]=RGB színmodell (16 bites lebegőpontos - 'feles')
-Name[is]=RGB litategund (16-bita fleytitala)
-Name[it]=Modello di colore RGB (semi-virgola mobile a 16 bit)
-Name[ja]=RGB カラーモデル (16-bit float 'half')
-Name[km]=ម៉ូដែល​ពណ៌​RGB  (ចំនួន​ទសភាគ 16 ប៊ីត​ 'ពាក់​កណ្ដាល')
-Name[nb]=RGB-fargemodell (16-bit flytende 'halv')
-Name[nds]=RGB-Klöörmodell (16-Bit Fleetkomma "half")
-Name[ne]=RGB रङ मोडेल (१६-बिट उत्प्लावन 'आधा')
-Name[nl]=RGB-kleurmodel (16-bit float 'half')
-Name[pl]=Przestrzeń barw RGB ("połowa" 16-bitowej liczby zmiennoprzecinkowej)
-Name[pt]=Modelo de Cor RGB (v. flutuante de 16-bits 'half')
-Name[pt_BR]=Modelo de Cor RGB (ponto flutuante de 16-bits 'half')
-Name[ru]=RGB (16-бит с плавающей точкой)
-Name[sk]=Model farieb RGB (16-bitové reálne čísla 'half')
-Name[sl]=Barvni model RGB (16-bitno celo število, »polovica«)
-Name[sr]=RGB модел боја (16-битно реално „полу“)
-Name[sr@Latn]=RGB model boja (16-bitno realno „polu“)
-Name[sv]=RGB-färgmodell (16-bitars flyttal 'halva')
-Name[uk]=Модель кольору RGB (16-бітне дробове число "half")
-Name[uz]=RGB rang usuli (16-bit 'yarim' kasr)
-Name[uz@cyrillic]=RGB ранг усули (16-бит 'ярим' каср)
-Name[zh_TW]=RGB 色彩模型 (32-bit 浮點數「半」)
-Comment=Color model for 16-bit floating point 'half' per channel RGB images
-Comment[bg]=Цветови модел за 16 битови изображения RGB за полуканал
-Comment[ca]=Model de color per a paleta 'mitja' de 16 bits-canal d'imatges RGB
-Comment[da]=Farvemodel for 16-bit decimaltal 'halvdel' pr kanal RGB-billeder
-Comment[de]=Farbmodell für 16-bit Fließkomma 'Halb' pro Kanal RGB-Bilder
-Comment[el]=Χρωματικό μοντέλο για 16-bit μισούς δεκαδικούς ανά κανάλι RGB εικόνες
-Comment[en_GB]=Colour model for 16-bit floating point 'half' per channel RGB images
-Comment[es]=Modelo de color decimal «medio» de 16 bits por canal para imágenes RGB
-Comment[et]=16-bitiste murdarvuliste ('half') kanalitega RGB-piltide värvimudel
-Comment[fa]=مدل رنگ برای ممیز »نیمه« شناور برای هر تصویر RGB مجرا
-Comment[fi]=Värimalli 16-bittisille/kanavaisille RGB-kuville
-Comment[fr]=Modèle de couleurs pour des images RVB en 16 bits flottants (demi) par canal
-Comment[fy]=Kleurmodel foar RGB-ôfbeeldings mei 16-bit driuwende komma 'heal' de kanaal
-Comment[gl]=Espazo de cores para imaxes RGB de 16-bit de vírgula flutuante 'half' por canal
-Comment[he]=מודל צבעים עבור תמונות RGB של 16 סיביות/ערוצים
-Comment[hu]=Színmodell 16 bit (lebegőpontos, 'feles')/csatorna RGB képekhez
-Comment[is]=Litategund fyrir 16-bita fleytitölu á rás RGB myndir
-Comment[it]=Modello di colore per immagini RGB in semi-virgola mobile a canale di 16 bit
-Comment[km]=ម៉ូលដែល​ពណ៌​ 16 ប៊ីត​ចំណុច​ដែល​អណ្ដែត​ 'ពាក្យ​កណ្ដាល' ក្នុង​ឆានែល​រូបភាព​ RGB 
-Comment[nb]=Fargemodell for RGB-bilde med 16 bit flyttall 'halv' per kanal
-Comment[nds]=Klöörmodell för RGB-Biller mit 16-Bit Fleetkomma "half" per Kanaal
-Comment[ne]='आधा' प्रति च्यानल RGB छविहरूको १६-बिट उत्प्लावन बिन्दुका लागि रङ मोडेल
-Comment[nl]=Kleurmodel voor RGB-afbeeldingen met 16-bit drijvende komma 'half' per kanaal
-Comment[pl]=Przestrzeń barw dla obrazków RGB z "połową" 16-bitowej liczby zmiennoprzecinkowej na kanał
-Comment[pt]=Modelo de cor para imagens RGB com 16 bits de vírgula flutuante 'half' por canal
-Comment[pt_BR]=Modelo de cor para imagens RGB com 16 bits de ponto flutuante 'half' por canal
-Comment[ru]=Цветовое пространство RGB (16-бит/канал с плавающей точкой)
-Comment[sk]=Model farieb pre RGB obrázky so 16-bitovými reálnymi číslami 'half' na kanál
-Comment[sl]=Barvni model za slike RGB s 16-bitno plavajočo vejico na kanal
-Comment[sr]=Модел боја за RGB слике, 16-битно реално „полу“ по каналу
-Comment[sr@Latn]=Model boja za RGB slike, 16-bitno realno „polu“ po kanalu
-Comment[sv]=Färgmodell för 16-bitars flyttal 'halva' per kanal RGB-bilder
-Comment[uk]=Модель кольорів для 16-бітних зображень RGB, з плаваючою комою, "половина" на канал
-Comment[zh_TW]=每色頻 16-bit 半浮點 RGB 圖片的色彩模型
-ServiceTypes=Krita/ColorSpace
-Type=Service
-X-KDE-Library=krita_rgb_f16half_plugin
-X-Krita-Version=2
diff --git a/krita/colorspaces/rgb_f16half/rgb_f16half_plugin.cc b/krita/colorspaces/rgb_f16half/rgb_f16half_plugin.cc
deleted file mode 100644
index 52c42c108..000000000
--- a/krita/colorspaces/rgb_f16half/rgb_f16half_plugin.cc
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-* rgb_f32_plugin.cc -- Part of Krita
-*
-* Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org)
-* Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
-*
-*  This program is free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  This program is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  You should have received a copy of the GNU General Public License
-*  along with this program; if not, write to the Free Software
-*  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
-*/
-
-#include <kinstance.h>
-#include <kgenericfactory.h>
-#include <kdebug.h>
-
-#include <kis_debug_areas.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_basic_histogram_producers.h>
-
-#include "rgb_f16half_plugin.h"
-#include "kis_rgb_f16half_colorspace.h"
-
-typedef KGenericFactory<RGBF16HalfPlugin> RGBF16HalfPluginFactory;
-K_EXPORT_COMPONENT_FACTORY( krita_rgb_f16half_plugin, RGBF16HalfPluginFactory( "krita" ) )
-
-
-RGBF16HalfPlugin::RGBF16HalfPlugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-    setInstance(RGBF16HalfPluginFactory::instance());
-
-    if ( tqparent->inherits("KisColorSpaceFactoryRegistry") )
-    {
-        KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>( tqparent );
-
-        KisColorSpace * colorSpaceRGBF16Half  = new KisRgbF16HalfColorSpace(f, 0);
-        KisColorSpaceFactory *csf  = new KisRgbF16HalfColorSpaceFactory();
-        Q_CHECK_PTR(colorSpaceRGBF16Half);
-        f->add(csf);
-        KisHistogramProducerFactoryRegistry::instance()->add(
-                new KisBasicHistogramProducerFactory<KisBasicF16HalfHistogramProducer>
-                (KisID("RGBF16HALFHISTO", i18n("Float16 Half")), colorSpaceRGBF16Half) );
-    }
-
-}
-
-RGBF16HalfPlugin::~RGBF16HalfPlugin()
-{
-}
-
-#include "rgb_f16half_plugin.moc"
-
diff --git a/krita/colorspaces/rgb_f16half/rgb_f16half_plugin.h b/krita/colorspaces/rgb_f16half/rgb_f16half_plugin.h
deleted file mode 100644
index a970247c2..000000000
--- a/krita/colorspaces/rgb_f16half/rgb_f16half_plugin.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- *  Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef RGB_F16HALF_PLUGIN_H_
-#define RGB_F16HALF_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-/**
- * A plugin wrapper around the RGB F16Half colour space strategy.
- */
-class RGBF16HalfPlugin : public KParts::Plugin
-{
-    Q_OBJECT
-  TQ_OBJECT
-public:
-    RGBF16HalfPlugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~RGBF16HalfPlugin();
-
-};
-
-
-#endif // RGB_F16HALF_PLUGIN_H_
diff --git a/krita/colorspaces/rgb_f16half/rgb_f16half_plugin.rc b/krita/colorspaces/rgb_f16half/rgb_f16half_plugin.rc
deleted file mode 100644
index 0155b2c51..000000000
--- a/krita/colorspaces/rgb_f16half/rgb_f16half_plugin.rc
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui library="krita_rgb_f16half_plugin" version="1">
-<Menu name="Image"><text>&amp;Image</text>
-    <Menu name="Mode"><text>&amp;Mode</text>
-            <Action name="convert to RGB(A) (16-bit float 'half')"/>
-    </Menu>
-</Menu>
-
-</kpartgui>
diff --git a/krita/colorspaces/rgb_f16half/tests/Makefile.am b/krita/colorspaces/rgb_f16half/tests/Makefile.am
deleted file mode 100644
index 4b8ff4999..000000000
--- a/krita/colorspaces/rgb_f16half/tests/Makefile.am
+++ /dev/null
@@ -1,19 +0,0 @@
-AM_CPPFLAGS = -I$(srcdir)/.. \
-	-I$(srcdir)/../../../sdk \
-	-I$(srcdir)/../../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../../color_strategy/ \
-	-I$(srcdir)/../../../modules/rgb_f32 \
-	$(OPENEXR_CFLAGS) \
-	$(all_includes)
-
-# The check_ target makes sure we don't install the modules,
-# $(KDE_CHECK_PLUGIN) assures a shared library is created.
-check_LTLIBRARIES = kunittest_kis_rgb_f16half_colorspace_tester.la
-
-kunittest_kis_rgb_f16half_colorspace_tester_la_SOURCES = kis_rgb_f16half_colorspace_tester.cc
-kunittest_kis_rgb_f16half_colorspace_tester_la_LIBADD = -lkunittest ../libkrita_rgb_f16half.la
-kunittest_kis_rgb_f16half_colorspace_tester_la_LDFLAGS = -module $(KDE_CHECK_PLUGIN) $(all_libraries)
-
-check-local: kunittest_kis_rgb_f16half_colorspace_tester.la
-	kunittestmodrunner
-
diff --git a/krita/colorspaces/rgb_f16half/tests/kis_rgb_f16half_colorspace_tester.cc b/krita/colorspaces/rgb_f16half/tests/kis_rgb_f16half_colorspace_tester.cc
deleted file mode 100644
index 59eb8e5f1..000000000
--- a/krita/colorspaces/rgb_f16half/tests/kis_rgb_f16half_colorspace_tester.cc
+++ /dev/null
@@ -1,545 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include <kunittest/runner.h>
-#include <kunittest/module.h>
-
-#include "kis_factory.h"
-#include "kis_rgb_f16half_colorspace.h"
-#include "kis_rgb_f16half_colorspace_tester.h"
-#include "kis_rgb_f32_colorspace.h"
-#include "kis_integer_maths.h"
-#include "kis_paint_device.h"
-
-using namespace KUnitTest;
-
-KUNITTEST_MODULE( kunittest_kis_rgb_f16half_colorspace_tester, "RGBA 16-bit float half colorspace tester" );
-KUNITTEST_MODULE_REGISTER_TESTER( KisRgbF16HalfColorSpaceTester );
-
-#define PIXEL_BLUE 0
-#define PIXEL_GREEN 1
-#define PIXEL_RED 2
-#define PIXEL_ALPHA 3
-
-#define NUM_CHANNELS 4
-#define NUM_COLOUR_CHANNELS 3
-#define CHANNEL_SIZE ((int)sizeof(half))
-
-#define RED_CHANNEL 0
-#define GREEN_CHANNEL 1
-#define BLUE_CHANNEL 2
-#define ALPHA_CHANNEL 3
-
-//#define MAX_CHANNEL_VALUE 1.0f
-//#define MIN_CHANNEL_VALUE 0.0f
-
-#define CHANNEL_VALUE_ZERO ((half)0)
-#define CHANNEL_VALUE_ONE ((half)1)
-
-void KisRgbF16HalfColorSpaceTester::allTests()
-{
-    // We need this so that the colour profile loading can operate without crashing.
-    KisFactory *factory = new KisFactory();
-
-    testBasics();
-    testToTQImage();
-    testCompositeOps();
-    testMixColors();
-
-    delete factory;
-}
-
-void KisRgbF16HalfColorSpaceTester::testBasics()
-{
-
-
-    KisProfile *profile = new KisProfile(cmsCreate_sRGBProfile());
-
-    KisRgbF16HalfColorSpace *cs = new KisRgbF16HalfColorSpace(profile);
-    KisAbstractColorSpace * csSP = cs;
-
-    CHECK(cs->hasAlpha(), true);
-    CHECK(cs->nChannels(), NUM_CHANNELS);
-    CHECK(cs->nColorChannels(), NUM_COLOUR_CHANNELS);
-    CHECK(cs->pixelSize(), NUM_CHANNELS * CHANNEL_SIZE);
-
-    TQValueVector<KisChannelInfo *> channels = cs->channels();
-
-    // Red
-    CHECK(channels[0]->pos(), PIXEL_RED * CHANNEL_SIZE);
-    CHECK(channels[0]->size(), CHANNEL_SIZE);
-    CHECK(channels[0]->channelType(), COLOR);
-
-    // Green
-    CHECK(channels[1]->pos(), PIXEL_GREEN * CHANNEL_SIZE);
-    CHECK(channels[1]->size(), CHANNEL_SIZE);
-    CHECK(channels[1]->channelType(), COLOR);
-
-    // Blue
-    CHECK(channels[2]->pos(), PIXEL_BLUE * CHANNEL_SIZE);
-    CHECK(channels[2]->size(), CHANNEL_SIZE);
-    CHECK(channels[2]->channelType(), COLOR);
-
-    // Alpha
-    CHECK(channels[3]->pos(), PIXEL_ALPHA * CHANNEL_SIZE);
-    CHECK(channels[3]->size(), CHANNEL_SIZE);
-    CHECK(channels[3]->channelType(), ALPHA);
-
-    KisPaintDeviceSP pd = new KisPaintDevice(cs, "test");
-
-    KisRgbF16HalfColorSpace::Pixel defaultPixel;
-
-    memcpy(&defaultPixel, pd->dataManager()->defaultPixel(), sizeof(defaultPixel));
-
-    CHECK(defaultPixel.red, CHANNEL_VALUE_ZERO);
-    CHECK(defaultPixel.green, CHANNEL_VALUE_ZERO);
-    CHECK(defaultPixel.blue, CHANNEL_VALUE_ZERO);
-    CHECK(defaultPixel.alpha, F16HALF_OPACITY_TRANSPARENT);
-
-    half pixel[NUM_CHANNELS];
-
-    cs->fromTQColor(tqRgb(255, 255, 255), reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK(pixel[PIXEL_RED], CHANNEL_VALUE_ONE);
-    CHECK(pixel[PIXEL_GREEN], CHANNEL_VALUE_ONE);
-    CHECK(pixel[PIXEL_BLUE], CHANNEL_VALUE_ONE);
-
-    cs->fromTQColor(tqRgb(0, 0, 0), reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK(pixel[PIXEL_RED], CHANNEL_VALUE_ZERO);
-    CHECK(pixel[PIXEL_GREEN], CHANNEL_VALUE_ZERO);
-    CHECK(pixel[PIXEL_BLUE], CHANNEL_VALUE_ZERO);
-
-    cs->fromTQColor(tqRgb(128, 64, 192), reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK(pixel[PIXEL_RED], UINT8_TO_HALF(128));
-    CHECK(pixel[PIXEL_GREEN], UINT8_TO_HALF(64));
-    CHECK(pixel[PIXEL_BLUE], UINT8_TO_HALF(192));
-
-    cs->fromTQColor(tqRgb(255, 255, 255), OPACITY_OPAQUE, reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK(pixel[PIXEL_RED], CHANNEL_VALUE_ONE);
-    CHECK(pixel[PIXEL_GREEN], CHANNEL_VALUE_ONE);
-    CHECK(pixel[PIXEL_BLUE], CHANNEL_VALUE_ONE);
-    CHECK(pixel[PIXEL_ALPHA], CHANNEL_VALUE_ONE);
-
-    cs->fromTQColor(tqRgb(255, 255, 255), OPACITY_TRANSPARENT, reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK(pixel[PIXEL_RED], CHANNEL_VALUE_ONE);
-    CHECK(pixel[PIXEL_GREEN], CHANNEL_VALUE_ONE);
-    CHECK(pixel[PIXEL_BLUE], CHANNEL_VALUE_ONE);
-    CHECK(pixel[PIXEL_ALPHA], F16HALF_OPACITY_TRANSPARENT);
-
-    cs->fromTQColor(tqRgb(255, 255, 255), OPACITY_OPAQUE / 2, reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK(pixel[PIXEL_RED], CHANNEL_VALUE_ONE);
-    CHECK(pixel[PIXEL_GREEN], CHANNEL_VALUE_ONE);
-    CHECK(pixel[PIXEL_BLUE], CHANNEL_VALUE_ONE);
-    CHECK(pixel[PIXEL_ALPHA], UINT8_TO_HALF(OPACITY_OPAQUE / 2));
-
-    pixel[PIXEL_RED] = CHANNEL_VALUE_ONE;
-    pixel[PIXEL_GREEN] = CHANNEL_VALUE_ONE;
-    pixel[PIXEL_BLUE] = CHANNEL_VALUE_ONE;
-
-    TQColor c;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c);
-
-    CHECK(c.red(), 255);
-    CHECK(c.green(), 255);
-    CHECK(c.blue(), 255);
-
-    pixel[PIXEL_RED] = CHANNEL_VALUE_ZERO;
-    pixel[PIXEL_GREEN] = CHANNEL_VALUE_ZERO;
-    pixel[PIXEL_BLUE] = CHANNEL_VALUE_ZERO;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c);
-
-    CHECK(c.red(), 0);
-    CHECK(c.green(), 0);
-    CHECK(c.blue(), 0);
-
-    pixel[PIXEL_RED] = CHANNEL_VALUE_ONE / 4;
-    pixel[PIXEL_GREEN] = CHANNEL_VALUE_ONE / 2;
-    pixel[PIXEL_BLUE] = (3 * CHANNEL_VALUE_ONE) / 4;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c);
-
-    CHECK(c.red(), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE / 4));
-    CHECK(c.green(), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE / 2));
-    CHECK(c.blue(), (int)HALF_TO_UINT8((3 * CHANNEL_VALUE_ONE) / 4));
-
-    pixel[PIXEL_RED] = CHANNEL_VALUE_ONE;
-    pixel[PIXEL_GREEN] = CHANNEL_VALUE_ONE;
-    pixel[PIXEL_BLUE] = CHANNEL_VALUE_ONE;
-    pixel[PIXEL_ALPHA] = CHANNEL_VALUE_ONE;
-
-    TQ_UINT8 opacity;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c, &opacity);
-
-    CHECK(c.red(), 255);
-    CHECK(c.green(), 255);
-    CHECK(c.blue(), 255);
-    CHECK(opacity, OPACITY_OPAQUE);
-
-    pixel[PIXEL_ALPHA] = F16HALF_OPACITY_OPAQUE;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c, &opacity);
-
-    CHECK(c.red(), 255);
-    CHECK(c.green(), 255);
-    CHECK(c.blue(), 255);
-    CHECK(opacity, OPACITY_OPAQUE);
-
-    pixel[PIXEL_RED] = CHANNEL_VALUE_ZERO;
-    pixel[PIXEL_GREEN] = CHANNEL_VALUE_ZERO;
-    pixel[PIXEL_BLUE] = CHANNEL_VALUE_ZERO;
-    pixel[PIXEL_ALPHA] = F16HALF_OPACITY_TRANSPARENT;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c, &opacity);
-
-    CHECK(c.red(), 0);
-    CHECK(c.green(), 0);
-    CHECK(c.blue(), 0);
-    CHECK(opacity, OPACITY_TRANSPARENT);
-
-    pixel[PIXEL_RED] = CHANNEL_VALUE_ONE / 4;
-    pixel[PIXEL_GREEN] = CHANNEL_VALUE_ONE / 2;
-    pixel[PIXEL_BLUE] = (3 * CHANNEL_VALUE_ONE) / 4;
-    pixel[PIXEL_ALPHA] = CHANNEL_VALUE_ONE / 2;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c, &opacity);
-
-    CHECK(c.red(), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE / 4));
-    CHECK(c.green(), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE / 2));
-    CHECK(c.blue(), (int)HALF_TO_UINT8((3 * CHANNEL_VALUE_ONE) / 4));
-    CHECK((int)opacity, (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE / 2));
-
-    #define NUM_PIXELS 4
-
-    KisRgbF16HalfColorSpace::Pixel pixels[NUM_PIXELS] = {
-        {CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE / 4},
-        {CHANNEL_VALUE_ONE / 4, CHANNEL_VALUE_ONE / 2, CHANNEL_VALUE_ONE / 3, CHANNEL_VALUE_ONE / 2},
-        {CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ZERO},
-        {CHANNEL_VALUE_ZERO, CHANNEL_VALUE_ZERO, CHANNEL_VALUE_ZERO, CHANNEL_VALUE_ONE}
-    };
-
-    cs->setAlpha(reinterpret_cast<TQ_UINT8 *>(pixels), OPACITY_OPAQUE / 2, NUM_PIXELS);
-
-    CHECK(pixels[0].red, CHANNEL_VALUE_ONE);
-    CHECK(pixels[0].green, CHANNEL_VALUE_ONE);
-    CHECK(pixels[0].blue, CHANNEL_VALUE_ONE);
-    CHECK(pixels[0].alpha, UINT8_TO_HALF(OPACITY_OPAQUE / 2));
-
-    CHECK(pixels[1].red, (half)(CHANNEL_VALUE_ONE / 3));
-    CHECK(pixels[1].green, (half)(CHANNEL_VALUE_ONE / 2));
-    CHECK(pixels[1].blue, (half)(CHANNEL_VALUE_ONE / 4));
-    CHECK(pixels[1].alpha, UINT8_TO_HALF(OPACITY_OPAQUE / 2));
-
-    CHECK(pixels[2].red, CHANNEL_VALUE_ONE);
-    CHECK(pixels[2].green, CHANNEL_VALUE_ONE);
-    CHECK(pixels[2].blue, CHANNEL_VALUE_ONE);
-    CHECK(pixels[2].alpha, UINT8_TO_HALF(OPACITY_OPAQUE / 2));
-
-    CHECK(pixels[3].red, CHANNEL_VALUE_ZERO);
-    CHECK(pixels[3].green, CHANNEL_VALUE_ZERO);
-    CHECK(pixels[3].blue, CHANNEL_VALUE_ZERO);
-    CHECK(pixels[3].alpha, UINT8_TO_HALF(OPACITY_OPAQUE / 2));
-
-    pixel[PIXEL_RED] = CHANNEL_VALUE_ONE;
-    pixel[PIXEL_GREEN] = CHANNEL_VALUE_ONE / 2;
-    pixel[PIXEL_BLUE] = CHANNEL_VALUE_ONE / 4;
-    pixel[PIXEL_ALPHA] = CHANNEL_VALUE_ZERO;
-
-    TQString valueText = cs->channelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), RED_CHANNEL);
-    CHECK(valueText, TQString().setNum(CHANNEL_VALUE_ONE));
-
-    valueText = cs->channelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), GREEN_CHANNEL);
-    CHECK(valueText, TQString().setNum(CHANNEL_VALUE_ONE / 2));
-
-    valueText = cs->channelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), BLUE_CHANNEL);
-    CHECK(valueText, TQString().setNum(CHANNEL_VALUE_ONE / 4));
-
-    valueText = cs->channelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), ALPHA_CHANNEL);
-    CHECK(valueText, TQString().setNum(CHANNEL_VALUE_ZERO));
-
-    valueText = cs->normalisedChannelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), RED_CHANNEL);
-    CHECK(valueText, TQString().setNum(CHANNEL_VALUE_ONE));
-
-    valueText = cs->normalisedChannelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), GREEN_CHANNEL);
-    CHECK(valueText, TQString().setNum(CHANNEL_VALUE_ONE / 2));
-
-    valueText = cs->normalisedChannelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), BLUE_CHANNEL);
-    CHECK(valueText, TQString().setNum(CHANNEL_VALUE_ONE / 4));
-
-    valueText = cs->normalisedChannelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), ALPHA_CHANNEL);
-    CHECK(valueText, TQString().setNum(CHANNEL_VALUE_ZERO));
-
-    cs->setPixel(reinterpret_cast<TQ_UINT8 *>(pixel), 0.128, 0.192, 0.64, 0.99);
-    CHECK(pixel[PIXEL_RED], (half)0.128f);
-    CHECK(pixel[PIXEL_GREEN], (half)0.192f);
-    CHECK(pixel[PIXEL_BLUE], (half)0.64f);
-    CHECK(pixel[PIXEL_ALPHA], (half)0.99f);
-
-    half red;
-    half green;
-    half blue;
-    half alpha;
-
-    cs->getPixel(reinterpret_cast<const TQ_UINT8 *>(pixel), &red, &green, &blue, &alpha);
-    CHECK(red, (half)0.128f);
-    CHECK(green, (half)0.192f);
-    CHECK(blue, (half)0.64f);
-    CHECK(alpha, (half)0.99f);
-
-    CHECK(HALF_TO_UINT8(-0.5), 0u);
-    CHECK(HALF_TO_UINT8(0), 0u);
-    CHECK_TOLERANCE(HALF_TO_UINT8(0.5), UINT8_MAX / 2, 1u);
-    CHECK(HALF_TO_UINT8(1), UINT8_MAX);
-    CHECK(HALF_TO_UINT8(1.5), UINT8_MAX);
-
-    CHECK(HALF_TO_UINT16(-0.5), 0u);
-    CHECK(HALF_TO_UINT16(0), 0u);
-    CHECK_TOLERANCE(HALF_TO_UINT16(0.5), UINT16_MAX / 2, 1u);
-    CHECK(HALF_TO_UINT16(1), UINT16_MAX);
-    CHECK(HALF_TO_UINT16(1.5), UINT16_MAX);
-}
-
-void KisRgbF16HalfColorSpaceTester::testMixColors()
-{
-    KisProfile *profile = new KisProfile(cmsCreate_sRGBProfile());
-    KisAbstractColorSpace * cs = new KisRgbF16HalfColorSpace(profile);
-
-    // Test mixColors.
-    half pixel1[NUM_CHANNELS];
-    half pixel2[NUM_CHANNELS];
-    half outputPixel[NUM_CHANNELS];
-
-    outputPixel[PIXEL_RED] = 0;
-    outputPixel[PIXEL_GREEN] = 0;
-    outputPixel[PIXEL_BLUE] = 0;
-    outputPixel[PIXEL_ALPHA] = 0;
-
-    pixel1[PIXEL_RED] = CHANNEL_VALUE_ONE;
-    pixel1[PIXEL_GREEN] = CHANNEL_VALUE_ONE;
-    pixel1[PIXEL_BLUE] = CHANNEL_VALUE_ONE;
-    pixel1[PIXEL_ALPHA] = CHANNEL_VALUE_ONE;
-
-    pixel2[PIXEL_RED] = 0;
-    pixel2[PIXEL_GREEN] = 0;
-    pixel2[PIXEL_BLUE] = 0;
-    pixel2[PIXEL_ALPHA] = 0;
-
-    const TQ_UINT8 *pixelPtrs[2];
-    TQ_UINT8 weights[2];
-
-    pixelPtrs[0] = reinterpret_cast<const TQ_UINT8 *>(pixel1);
-    pixelPtrs[1] = reinterpret_cast<const TQ_UINT8 *>(pixel2);
-
-    weights[0] = 255;
-    weights[1] = 0;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK(outputPixel[PIXEL_RED], CHANNEL_VALUE_ONE);
-    CHECK(outputPixel[PIXEL_GREEN], CHANNEL_VALUE_ONE);
-    CHECK(outputPixel[PIXEL_BLUE], CHANNEL_VALUE_ONE);
-    CHECK(outputPixel[PIXEL_ALPHA], CHANNEL_VALUE_ONE);
-
-    weights[0] = 0;
-    weights[1] = 255;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK(outputPixel[PIXEL_RED], (half)0.0f);
-    CHECK(outputPixel[PIXEL_GREEN], (half)0.0f);
-    CHECK(outputPixel[PIXEL_BLUE], (half)0.0f);
-    CHECK(outputPixel[PIXEL_ALPHA], (half)0.0f);
-
-    weights[0] = 128;
-    weights[1] = 127;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK(outputPixel[PIXEL_RED], CHANNEL_VALUE_ONE);
-    CHECK(outputPixel[PIXEL_GREEN], CHANNEL_VALUE_ONE);
-    CHECK(outputPixel[PIXEL_BLUE], CHANNEL_VALUE_ONE);
-    CHECK(outputPixel[PIXEL_ALPHA], (half)((128 * CHANNEL_VALUE_ONE) / 255));
-
-    pixel1[PIXEL_RED] = 20000;
-    pixel1[PIXEL_GREEN] = 10000;
-    pixel1[PIXEL_BLUE] = 5000;
-    pixel1[PIXEL_ALPHA] = CHANNEL_VALUE_ONE;
-
-    pixel2[PIXEL_RED] = 10000;
-    pixel2[PIXEL_GREEN] = 20000;
-    pixel2[PIXEL_BLUE] = 2000;
-    pixel2[PIXEL_ALPHA] = CHANNEL_VALUE_ONE;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK_TOLERANCE(outputPixel[PIXEL_RED], (128 * 20000 + 127 * 10000) / 255, 5);
-    CHECK_TOLERANCE(outputPixel[PIXEL_GREEN], (128 * 10000 + 127 * 20000) / 255, 5);
-    CHECK_TOLERANCE(outputPixel[PIXEL_BLUE], (128 * 5000 + 127 * 2000) / 255, 5);
-    CHECK(outputPixel[PIXEL_ALPHA], CHANNEL_VALUE_ONE);
-
-    pixel1[PIXEL_RED] = 0;
-    pixel1[PIXEL_GREEN] = 0;
-    pixel1[PIXEL_BLUE] = 0;
-    pixel1[PIXEL_ALPHA] = 0;
-
-    pixel2[PIXEL_RED] = CHANNEL_VALUE_ONE;
-    pixel2[PIXEL_GREEN] = CHANNEL_VALUE_ONE;
-    pixel2[PIXEL_BLUE] = CHANNEL_VALUE_ONE;
-    pixel2[PIXEL_ALPHA] = CHANNEL_VALUE_ONE;
-
-    weights[0] = 89;
-    weights[1] = 166;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK(outputPixel[PIXEL_RED], CHANNEL_VALUE_ONE);
-    CHECK(outputPixel[PIXEL_GREEN], CHANNEL_VALUE_ONE);
-    CHECK(outputPixel[PIXEL_BLUE], CHANNEL_VALUE_ONE);
-    CHECK_TOLERANCE(outputPixel[PIXEL_ALPHA], (89 * 0 + 166 * CHANNEL_VALUE_ONE) / 255, 5);
-}
-
-#define PIXELS_WIDTH 2
-#define PIXELS_HEIGHT 2
-
-void KisRgbF16HalfColorSpaceTester::testToTQImage()
-{
-    KisProfile *profile = new KisProfile(cmsCreate_sRGBProfile());
-
-    KisAbstractColorSpace * cs = new KisRgbF16HalfColorSpace(profile);
-
-    KisRgbF16HalfColorSpace::Pixel pixels[PIXELS_WIDTH * PIXELS_HEIGHT] = {
-        {CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE / 4},
-        {CHANNEL_VALUE_ONE / 4, CHANNEL_VALUE_ONE / 2, CHANNEL_VALUE_ONE / 3, CHANNEL_VALUE_ONE / 2},
-        {CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ZERO},
-        {CHANNEL_VALUE_ZERO, CHANNEL_VALUE_ZERO, CHANNEL_VALUE_ZERO, CHANNEL_VALUE_ONE}
-    };
-
-    TQImage image = cs->convertToTQImage(reinterpret_cast<const TQ_UINT8 *>(pixels), PIXELS_WIDTH, PIXELS_HEIGHT, 0, 0);
-
-    TQRgb c = image.pixel(0, 0);
-
-    // Exposure comes into play here.
-    /*
-    CHECK(tqRed(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE));
-    CHECK(tqGreen(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE));
-    CHECK(tqBlue(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE));
-    CHECK(tqAlpha(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE / 4));
-
-    c = image.pixel(1, 0);
-
-    CHECK(tqRed(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE / 3));
-    CHECK(tqGreen(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE / 2));
-    CHECK(tqBlue(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE / 4));
-    CHECK(tqAlpha(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE / 2));
-
-    c = image.pixel(0, 1);
-
-    CHECK(tqRed(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE));
-    CHECK(tqGreen(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE));
-    CHECK(tqBlue(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE));
-    CHECK(tqAlpha(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ZERO));
-
-    c = image.pixel(1, 1);
-
-    CHECK(tqRed(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ZERO));
-    CHECK(tqGreen(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ZERO));
-    CHECK(tqBlue(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ZERO));
-    CHECK(tqAlpha(c), (int)HALF_TO_UINT8(CHANNEL_VALUE_ONE));
-    */
-}
-
-#define NUM_ROWS 2
-#define NUM_COLUMNS 2
-#define SRC_ROW_STRIDE (NUM_COLUMNS * CHANNEL_SIZE)
-#define DST_ROW_STRIDE (NUM_COLUMNS * CHANNEL_SIZE)
-#define MASK_ROW_STRIDE NUM_COLUMNS
-
-/*
-1 alpha 1    0 alpha 1
-1 alpha 0.5  0 alpha 1
-1 alpha 0.5  0 alpha 0.5
-1 alpha 0    0 alpha 0.5
-
-*/
-
-void  KisRgbF16HalfColorSpaceTester::testCompositeOps()
-{
-    KisProfile *profile = new KisProfile(cmsCreate_sRGBProfile());
-
-    KisRgbF16HalfColorSpace *cs = new KisRgbF16HalfColorSpace(profile);
-
-    KisRgbF16HalfColorSpace::Pixel srcPixel;
-    KisRgbF16HalfColorSpace::Pixel dstPixel;
-
-    srcPixel.red = UINT8_TO_HALF(102);
-    srcPixel.green = UINT8_TO_HALF(170);
-    srcPixel.blue = UINT8_TO_HALF(238);
-    srcPixel.alpha = F16HALF_OPACITY_OPAQUE;
-
-    dstPixel = srcPixel;
-
-    cs->compositeDivide(reinterpret_cast<TQ_UINT8 *>(&dstPixel), 1, reinterpret_cast<const TQ_UINT8 *>(&srcPixel),
-                1, 0, 0, 1, 1, F16HALF_OPACITY_OPAQUE);
-    /*
-    CHECK(dstPixel.red, (TQ_UINT16)UINT8_TO_UINT16(253));
-    CHECK(dstPixel.green, (TQ_UINT16)UINT8_TO_UINT16(254));
-    CHECK(dstPixel.blue, (TQ_UINT16)UINT8_TO_UINT16(254));
-    CHECK(dstPixel.alpha, KisRgbF16HalfColorSpace::F16HALF_OPACITY_OPAQUE);
-
-    TQ_UINT16 srcColor = 43690;
-    TQ_UINT16 dstColor = 43690;
-
-    srcColor = TQMIN((dstColor * (65535u + 1u) + (srcColor / 2u)) / (1u + srcColor), 65535u);
-
-    CHECK((int)srcColor, 65534);
-
-    TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, 65535u);
-
-    CHECK((int)newColor, 65534);
-    */
-
-    /*
-    KisRgbF16HalfColorSpace::Pixel srcPixels[NUM_ROWS * NUM_COLUMNS] = {
-        {CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE / 4},
-        {CHANNEL_VALUE_ONE / 4, CHANNEL_VALUE_ONE / 2, CHANNEL_VALUE_ONE / 3, CHANNEL_VALUE_ONE / 2},
-        {CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ZERO},
-        {CHANNEL_VALUE_ZERO, CHANNEL_VALUE_ZERO, CHANNEL_VALUE_ZERO, CHANNEL_VALUE_ONE}
-    };
-
-    KisRgbF16HalfColorSpace::Pixel dstPixels[NUM_ROWS * NUM_COLUMNS] = {
-        {CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE / 4},
-        {CHANNEL_VALUE_ONE / 4, CHANNEL_VALUE_ONE / 2, CHANNEL_VALUE_ONE / 3, CHANNEL_VALUE_ONE / 2},
-        {CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ONE, CHANNEL_VALUE_ZERO},
-        {CHANNEL_VALUE_ZERO, CHANNEL_VALUE_ZERO, CHANNEL_VALUE_ZERO, CHANNEL_VALUE_ONE}
-    };
-
-    cs->compositeOver(reinterpret_cast<TQ_UINT8 *>(dstPixels), DST_ROW_STRIDE, reinterpret_cast<const TQ_UINT8 *>(srcPixels),
-                SRC_ROW_STRIDE, tqmask, MASK_ROW_STRIDE, NUM_ROWS, NUM_COLUMNS, opacity);
-    */
-
-    delete cs;
-}
-
diff --git a/krita/colorspaces/rgb_f16half/tests/kis_rgb_f16half_colorspace_tester.h b/krita/colorspaces/rgb_f16half/tests/kis_rgb_f16half_colorspace_tester.h
deleted file mode 100644
index 6547e35ba..000000000
--- a/krita/colorspaces/rgb_f16half/tests/kis_rgb_f16half_colorspace_tester.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-
-#ifndef KIS_RGB_F16HALF_COLORSPACE_TESTER_H
-#define KIS_RGB_F16HALF_COLORSPACE_TESTER_H
-
-#include <kunittest/tester.h>
-
-#define CHECK_TOLERANCE( x, y, tolerance ) \
-if ((x) <= (y) + (tolerance) && (x) >= (y) - (tolerance)) \
-{ \
-    success(TQString(__FILE__) + "[" + TQString::number(__LINE__) + "]: passed " + #x); \
-} \
-else \
-{ \
-    failure(TQString(__FILE__) + "[" + TQString::number(__LINE__) + TQString("]: failed ") + #x + "\n Expected " + #y + ", Actual result " + TQString::number(x)); \
-} \
-
-class KisRgbF16HalfColorSpaceTester : public KUnitTest::Tester
-{
-public:
-    void allTests();
-    void testBasics();
-    void testMixColors();
-    void testToTQImage();
-    void testCompositeOps();
-};
-
-#endif
-
diff --git a/krita/colorspaces/rgb_f32/Makefile.am b/krita/colorspaces/rgb_f32/Makefile.am
deleted file mode 100644
index 5f08e271c..000000000
--- a/krita/colorspaces/rgb_f32/Makefile.am
+++ /dev/null
@@ -1,34 +0,0 @@
-# Install the desktop file needed to detect the plugin
-kde_services_DATA = krita_rgb_f32_plugin.desktop
-
-INCLUDES  = \
-	-I$(srcdir)/../../sdk \
-	-I$(srcdir)/../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../kritacolor/ \
-	$(KOFFICE_INCLUDES) \
-	$(all_includes)
-
-
-lib_LTLIBRARIES = libkrita_rgb_f32.la
-libkrita_rgb_f32_la_SOURCES = kis_rgb_f32_colorspace.cc
-libkrita_rgb_f32_la_LDFLAGS = $(all_libraries)
-libkrita_rgb_f32_la_LIBADD =  ../../kritacolor/libkritacolor.la
-
-# Install this plugin in the KDE modules directory
-kde_module_LTLIBRARIES = krita_rgb_f32_plugin.la
-
-# Srcs for the plugin
-krita_rgb_f32_plugin_la_SOURCES = rgb_f32_plugin.cc
-noinst_HEADERS = rgb_f32_plugin.h kis_rgb_f32_colorspace.h
-
-krita_rgb_f32_plugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -llcms
-krita_rgb_f32_plugin_la_LIBADD =  libkrita_rgb_f32.la ../../kritacolor/libkritacolor.la
-
-krita_rgb_f32_plugin_la_METASOURCES = AUTO
-
-if include_kunittest_tests
-TESTSDIR = tests
-endif
-
-SUBDIRS = . $(TESTSDIR)
-
diff --git a/krita/colorspaces/rgb_f32/kis_rgb_f32_colorspace.cc b/krita/colorspaces/rgb_f32/kis_rgb_f32_colorspace.cc
deleted file mode 100644
index 98e0b28bf..000000000
--- a/krita/colorspaces/rgb_f32/kis_rgb_f32_colorspace.cc
+++ /dev/null
@@ -1,949 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien  <freak@codepimps.org>
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include <config.h>
-#include <limits.h>
-#include <stdlib.h>
-#include LCMS_HEADER
-
-#include <tqimage.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include "kis_rgb_f32_colorspace.h"
-#include "kis_color_conversions.h"
-
-namespace {
-    const TQ_INT32 MAX_CHANNEL_RGB = 3;
-    const TQ_INT32 MAX_CHANNEL_RGBA = 4;
-}
-
-#include "kis_integer_maths.h"
-
-#ifndef HAVE_POWF
-#undef powf
-#define powf pow
-#endif
-
-#define FLOAT_MAX 1.0f //temp
-
-#define EPSILON 1e-6
-
-// FIXME: lcms doesn't support 32-bit float
-#define F32_LCMS_TYPE TYPE_BGRA_16
-
-// disable the lcms handling by setting profile=0
-KisRgbF32ColorSpace::KisRgbF32ColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile */*p*/) :
-    KisF32BaseColorSpace(KisID("RGBAF32", i18n("RGB (32-bit float/channel)")), F32_LCMS_TYPE, icSigRgbData, tqparent, 0)
-{
-    m_channels.push_back(new KisChannelInfo(i18n("Red"), i18n("R"), PIXEL_RED * sizeof(float), KisChannelInfo::COLOR, KisChannelInfo::FLOAT32, sizeof(float)));
-    m_channels.push_back(new KisChannelInfo(i18n("Green"), i18n("G"), PIXEL_GREEN * sizeof(float), KisChannelInfo::COLOR, KisChannelInfo::FLOAT32, sizeof(float)));
-    m_channels.push_back(new KisChannelInfo(i18n("Blue"), i18n("B"), PIXEL_BLUE * sizeof(float), KisChannelInfo::COLOR, KisChannelInfo::FLOAT32, sizeof(float)));
-    m_channels.push_back(new KisChannelInfo(i18n("Alpha"), i18n("A"), PIXEL_ALPHA * sizeof(float), KisChannelInfo::ALPHA, KisChannelInfo::FLOAT32, sizeof(float)));
-
-    m_alphaPos = PIXEL_ALPHA * sizeof(float);
-}
-
-KisRgbF32ColorSpace::~KisRgbF32ColorSpace()
-{
-}
-
-void KisRgbF32ColorSpace::setPixel(TQ_UINT8 *dst, float red, float green, float blue, float alpha) const
-{
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->red = red;
-    dstPixel->green = green;
-    dstPixel->blue = blue;
-    dstPixel->alpha = alpha;
-}
-
-void KisRgbF32ColorSpace::getPixel(const TQ_UINT8 *src, float *red, float *green, float *blue, float *alpha) const
-{
-    const Pixel *srcPixel = reinterpret_cast<const Pixel *>(src);
-
-    *red = srcPixel->red;
-    *green = srcPixel->green;
-    *blue = srcPixel->blue;
-    *alpha = srcPixel->alpha;
-}
-
-void KisRgbF32ColorSpace::fromTQColor(const TQColor& c, TQ_UINT8 *dstU8, KisProfile * /*profile*/)
-{
-    Pixel *dst = reinterpret_cast<Pixel *>(dstU8);
-
-    dst->red = UINT8_TO_FLOAT(c.red());
-    dst->green = UINT8_TO_FLOAT(c.green());
-    dst->blue = UINT8_TO_FLOAT(c.blue());
-}
-
-void KisRgbF32ColorSpace::fromTQColor(const TQColor& c, TQ_UINT8 opacity, TQ_UINT8 *dstU8, KisProfile * /*profile*/)
-{
-    Pixel *dst = reinterpret_cast<Pixel *>(dstU8);
-
-    dst->red = UINT8_TO_FLOAT(c.red());
-    dst->green = UINT8_TO_FLOAT(c.green());
-    dst->blue = UINT8_TO_FLOAT(c.blue());
-    dst->alpha = UINT8_TO_FLOAT(opacity);
-}
-
-void KisRgbF32ColorSpace::toTQColor(const TQ_UINT8 *srcU8, TQColor *c, KisProfile * /*profile*/)
-{
-    const Pixel *src = reinterpret_cast<const Pixel *>(srcU8);
-
-    c->setRgb(FLOAT_TO_UINT8(src->red), FLOAT_TO_UINT8(src->green), FLOAT_TO_UINT8(src->blue));
-}
-
-void KisRgbF32ColorSpace::toTQColor(const TQ_UINT8 *srcU8, TQColor *c, TQ_UINT8 *opacity, KisProfile * /*profile*/)
-{
-    const Pixel *src = reinterpret_cast<const Pixel *>(srcU8);
-
-    c->setRgb(FLOAT_TO_UINT8(src->red), FLOAT_TO_UINT8(src->green), FLOAT_TO_UINT8(src->blue));
-    *opacity = FLOAT_TO_UINT8(src->alpha);
-}
-
-TQ_UINT8 KisRgbF32ColorSpace::difference(const TQ_UINT8 *src1U8, const TQ_UINT8 *src2U8)
-{
-    const Pixel *src1 = reinterpret_cast<const Pixel *>(src1U8);
-    const Pixel *src2 = reinterpret_cast<const Pixel *>(src2U8);
-
-    return FLOAT_TO_UINT8(TQMAX(TQABS(src2->red - src1->red),
-                TQMAX(TQABS(src2->green - src1->green),
-                     TQABS(src2->blue - src1->blue))));
-}
-
-void KisRgbF32ColorSpace::mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const
-{
-    float totalRed = 0, totalGreen = 0, totalBlue = 0, newAlpha = 0;
-
-    while (nColors--)
-    {
-        const Pixel *pixel = reinterpret_cast<const Pixel *>(*colors);
-
-        float alpha = pixel->alpha;
-        float alphaTimesWeight = alpha * UINT8_TO_FLOAT(*weights);
-
-        totalRed += pixel->red * alphaTimesWeight;
-        totalGreen += pixel->green * alphaTimesWeight;
-        totalBlue += pixel->blue * alphaTimesWeight;
-        newAlpha += alphaTimesWeight;
-
-        weights++;
-        colors++;
-    }
-
-    Q_ASSERT(newAlpha <= F32_OPACITY_OPAQUE);
-
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->alpha = newAlpha;
-
-    if (newAlpha > EPSILON) {
-        totalRed = totalRed / newAlpha;
-        totalGreen = totalGreen / newAlpha;
-        totalBlue = totalBlue / newAlpha;
-    }
-
-    dstPixel->red = totalRed;
-    dstPixel->green = totalGreen;
-    dstPixel->blue = totalBlue;
-}
-
-void KisRgbF32ColorSpace::convolveColors(TQ_UINT8** colors, TQ_INT32 * kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const
-{
-    float totalRed = 0, totalGreen = 0, totalBlue = 0, totalAlpha = 0;
-
-    while (nColors--)
-    {
-        const Pixel * pixel = reinterpret_cast<const Pixel *>( *colors );
-
-        float weight = *kernelValues;
-
-        if (weight != 0) {
-            totalRed += pixel->red * weight;
-            totalGreen += pixel->green * weight;
-            totalBlue += pixel->blue * weight;
-            totalAlpha += pixel->alpha * weight;
-        }
-        colors++;
-        kernelValues++;
-    }
-
-    Pixel * p = reinterpret_cast< Pixel *>( dst );
-
-    if (channelFlags & KisChannelInfo::FLAG_COLOR) {
-        p->red = CLAMP( ( totalRed / factor) + offset, 0, FLOAT_MAX);
-        p->green = CLAMP( ( totalGreen / factor) + offset, 0, FLOAT_MAX);
-        p->blue = CLAMP( ( totalBlue / factor) + offset, 0, FLOAT_MAX);
-    }
-    if (channelFlags & KisChannelInfo::FLAG_ALPHA) {
-        p->alpha = CLAMP((totalAlpha/ factor) + offset, 0, FLOAT_MAX);
-    }
-}
-
-
-void KisRgbF32ColorSpace::invertColor(TQ_UINT8 * src, TQ_INT32 nPixels)
-{
-    TQ_UINT32 psize = pixelSize();
-
-    while (nPixels--)
-    {
-        Pixel * p = reinterpret_cast< Pixel *>( src );
-        p->red = FLOAT_MAX - p->red;
-        p->green = FLOAT_MAX - p->green;
-        p->blue = FLOAT_MAX - p->blue;
-        src += psize;
-    }
-
-}
-
-TQ_UINT8 KisRgbF32ColorSpace::intensity8(const TQ_UINT8 * src) const
-{
-    const Pixel * p = reinterpret_cast<const Pixel *>( src );
-
-    return FLOAT_TO_UINT8((p->red * 0.30 + p->green * 0.59 + p->blue * 0.11) + 0.5);
-}
-
-
-
-TQValueVector<KisChannelInfo *> KisRgbF32ColorSpace::channels() const
-{
-    return m_channels;
-}
-
-TQ_UINT32 KisRgbF32ColorSpace::nChannels() const
-{
-    return MAX_CHANNEL_RGBA;
-}
-
-TQ_UINT32 KisRgbF32ColorSpace::nColorChannels() const
-{
-    return MAX_CHANNEL_RGB;
-}
-
-TQ_UINT32 KisRgbF32ColorSpace::pixelSize() const
-{
-    return MAX_CHANNEL_RGBA * sizeof(float);
-}
-
-TQ_UINT8 convertToDisplay(float value, float exposureFactor, float gamma)
-{
-    //value *= pow(2, exposure + 2.47393);
-    value *= exposureFactor;
-
-    value = powf(value, gamma);
-
-    // scale middle gray to the target framebuffer value
-
-    value *= 84.66f;
-
-    int valueInt = (int)(value + 0.5);
-
-    return CLAMP(valueInt, 0, 255);
-}
-
-TQImage KisRgbF32ColorSpace::convertToTQImage(const TQ_UINT8 *dataU8, TQ_INT32 width, TQ_INT32 height,
-                                            KisProfile *  /*dstProfile*/,
-                                            TQ_INT32 /*renderingIntent*/, float exposure)
-
-{
-    const float *data = reinterpret_cast<const float *>(dataU8);
-
-    TQImage img = TQImage(width, height, 32, 0, TQImage::LittleEndian);
-    img.setAlphaBuffer(true);
-
-    TQ_INT32 i = 0;
-    uchar *j = img.bits();
-
-    // XXX: For now assume gamma 2.2.
-    float gamma = 1 / 2.2;
-    float exposureFactor = powf(2, exposure + 2.47393);
-
-    while ( i < width * height * MAX_CHANNEL_RGBA) {
-        *( j + 3)  = FLOAT_TO_UINT8(*( data + i + PIXEL_ALPHA ));
-        *( j + 2 ) = convertToDisplay(*( data + i + PIXEL_RED ), exposureFactor, gamma);
-        *( j + 1 ) = convertToDisplay(*( data + i + PIXEL_GREEN ), exposureFactor, gamma);
-        *( j + 0 ) = convertToDisplay(*( data + i + PIXEL_BLUE ), exposureFactor, gamma);
-        i += MAX_CHANNEL_RGBA;
-        j += MAX_CHANNEL_RGBA;
-    }
-
-    /*
-    if (srcProfile != 0 && dstProfile != 0) {
-        convertPixelsTo(img.bits(), srcProfile,
-                img.bits(), this, dstProfile,
-                width * height, renderingIntent);
-    }
-    */
-    return img;
-}
-
-
-void KisRgbF32ColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    while (rows > 0) {
-
-        const float *src = reinterpret_cast<const float *>(srcRowStart);
-        float *dst = reinterpret_cast<float *>(dstRowStart);
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-        TQ_INT32 columns = numColumns;
-
-        while (columns > 0) {
-
-            float srcAlpha = src[PIXEL_ALPHA];
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha *= UINT8_TO_FLOAT(U8_tqmask);
-                }
-                tqmask++;
-            }
-
-            if (srcAlpha > F32_OPACITY_TRANSPARENT + EPSILON) {
-
-                if (opacity < F32_OPACITY_OPAQUE - EPSILON) {
-                    srcAlpha *= opacity;
-                }
-
-                if (srcAlpha > F32_OPACITY_OPAQUE - EPSILON) {
-                    memcpy(dst, src, MAX_CHANNEL_RGBA * sizeof(float));
-                } else {
-                    float dstAlpha = dst[PIXEL_ALPHA];
-
-                    float srcBlend;
-
-                    if (dstAlpha > F32_OPACITY_OPAQUE - EPSILON) {
-                        srcBlend = srcAlpha;
-                    } else {
-                        float newAlpha = dstAlpha + (F32_OPACITY_OPAQUE - dstAlpha) * srcAlpha;
-                        dst[PIXEL_ALPHA] = newAlpha;
-
-                        if (newAlpha > EPSILON) {
-                            srcBlend = srcAlpha / newAlpha;
-                        } else {
-                            srcBlend = srcAlpha;
-                        }
-                    }
-
-                    if (srcBlend > F32_OPACITY_OPAQUE - EPSILON) {
-                        memcpy(dst, src, MAX_CHANNEL_RGB * sizeof(float));
-                    } else {
-                        dst[PIXEL_RED] = FLOAT_BLEND(src[PIXEL_RED], dst[PIXEL_RED], srcBlend);
-                        dst[PIXEL_GREEN] = FLOAT_BLEND(src[PIXEL_GREEN], dst[PIXEL_GREEN], srcBlend);
-                        dst[PIXEL_BLUE] = FLOAT_BLEND(src[PIXEL_BLUE], dst[PIXEL_BLUE], srcBlend);
-                    }
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart) {
-            tqmaskRowStart += tqmaskRowStride;
-        }
-    }
-}
-
-#define COMMON_COMPOSITE_OP_PROLOG() \
-    while (rows > 0) { \
-    \
-        const float *src = reinterpret_cast<const float *>(srcRowStart); \
-        float *dst = reinterpret_cast<float *>(dstRowStart); \
-        TQ_INT32 columns = numColumns; \
-        const TQ_UINT8 *tqmask = tqmaskRowStart; \
-    \
-        while (columns > 0) { \
-    \
-            float srcAlpha = src[PIXEL_ALPHA]; \
-            float dstAlpha = dst[PIXEL_ALPHA]; \
-    \
-            srcAlpha = TQMIN(srcAlpha, dstAlpha); \
-    \
-            if (tqmask != 0) { \
-                TQ_UINT8 U8_tqmask = *tqmask; \
-    \
-                if (U8_tqmask != OPACITY_OPAQUE) { \
-                    srcAlpha *= UINT8_TO_FLOAT(U8_tqmask); \
-                } \
-                tqmask++; \
-            } \
-    \
-            if (srcAlpha > F32_OPACITY_TRANSPARENT + EPSILON) { \
-    \
-                if (opacity < F32_OPACITY_OPAQUE - EPSILON) { \
-                    srcAlpha *= opacity; \
-                } \
-    \
-                float srcBlend; \
-    \
-                if (dstAlpha > F32_OPACITY_OPAQUE - EPSILON) { \
-                    srcBlend = srcAlpha; \
-                } else { \
-                    float newAlpha = dstAlpha + (F32_OPACITY_OPAQUE - dstAlpha) * srcAlpha; \
-                    dst[PIXEL_ALPHA] = newAlpha; \
-    \
-                    if (newAlpha > EPSILON) { \
-                        srcBlend = srcAlpha / newAlpha; \
-                    } else { \
-                        srcBlend = srcAlpha; \
-                    } \
-                }
-
-#define COMMON_COMPOSITE_OP_EPILOG() \
-            } \
-    \
-            columns--; \
-            src += MAX_CHANNEL_RGBA; \
-            dst += MAX_CHANNEL_RGBA; \
-        } \
-    \
-        rows--; \
-        srcRowStart += srcRowStride; \
-        dstRowStart += dstRowStride; \
-        if(tqmaskRowStart) { \
-            tqmaskRowStart += tqmaskRowStride; \
-        } \
-    }
-
-void KisRgbF32ColorSpace::compositeMultiply(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        float srcColor = src[PIXEL_RED];
-        float dstColor = dst[PIXEL_RED];
-
-        srcColor = srcColor * dstColor;
-
-        dst[PIXEL_RED] = FLOAT_BLEND(srcColor, dstColor, srcBlend);
-
-        srcColor = src[PIXEL_GREEN];
-        dstColor = dst[PIXEL_GREEN];
-
-        srcColor = srcColor * dstColor;
-
-        dst[PIXEL_GREEN] = FLOAT_BLEND(srcColor, dstColor, srcBlend);
-
-        srcColor = src[PIXEL_BLUE];
-        dstColor = dst[PIXEL_BLUE];
-
-        srcColor = srcColor * dstColor;
-
-        dst[PIXEL_BLUE] = FLOAT_BLEND(srcColor, dstColor, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF32ColorSpace::compositeDivide(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            float srcColor = src[channel];
-            float dstColor = dst[channel];
-
-            srcColor = TQMIN(dstColor / (srcColor + EPSILON), FLOAT_MAX);
-
-            float newColor = FLOAT_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF32ColorSpace::compositeScreen(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            float srcColor = src[channel];
-            float dstColor = dst[channel];
-
-            srcColor = FLOAT_MAX - ((FLOAT_MAX - dstColor) * (FLOAT_MAX - srcColor));
-
-            float newColor = FLOAT_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF32ColorSpace::compositeOverlay(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            float srcColor = src[channel];
-            float dstColor = dst[channel];
-
-            srcColor = dstColor * (dstColor + 2 * (srcColor * (FLOAT_MAX - dstColor)));
-
-            float newColor = FLOAT_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF32ColorSpace::compositeDodge(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            float srcColor = src[channel];
-            float dstColor = dst[channel];
-
-            srcColor = TQMIN(dstColor / (FLOAT_MAX + EPSILON - srcColor), FLOAT_MAX);
-
-            float newColor = FLOAT_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF32ColorSpace::compositeBurn(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            float srcColor = src[channel];
-            float dstColor = dst[channel];
-
-            srcColor = TQMIN((FLOAT_MAX - dstColor) / (srcColor + EPSILON), FLOAT_MAX);
-            srcColor = CLAMP(FLOAT_MAX - srcColor, 0, FLOAT_MAX);
-
-            float newColor = FLOAT_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF32ColorSpace::compositeDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            float srcColor = src[channel];
-            float dstColor = dst[channel];
-
-            srcColor = TQMIN(srcColor, dstColor);
-
-            float newColor = FLOAT_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF32ColorSpace::compositeLighten(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            float srcColor = src[channel];
-            float dstColor = dst[channel];
-
-            srcColor = TQMAX(srcColor, dstColor);
-
-            float newColor = FLOAT_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF32ColorSpace::compositeHue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        float srcRed = src[PIXEL_RED];
-        float srcGreen = src[PIXEL_GREEN];
-        float srcBlue = src[PIXEL_BLUE];
-
-        float dstRed = dst[PIXEL_RED];
-        float dstGreen = dst[PIXEL_GREEN];
-        float dstBlue = dst[PIXEL_BLUE];
-
-        float srcHue;
-        float srcSaturation;
-        float srcValue;
-
-        float dstHue;
-        float dstSaturation;
-        float dstValue;
-
-        RGBToHSV(srcRed, srcGreen, srcBlue, &srcHue, &srcSaturation, &srcValue);
-        RGBToHSV(dstRed, dstGreen, dstBlue, &dstHue, &dstSaturation, &dstValue);
-
-        HSVToRGB(srcHue, dstSaturation, dstValue, &srcRed, &srcGreen, &srcBlue);
-
-        dst[PIXEL_RED] = FLOAT_BLEND(srcRed, dstRed, srcBlend);
-        dst[PIXEL_GREEN] = FLOAT_BLEND(srcGreen, dstGreen, srcBlend);
-        dst[PIXEL_BLUE] = FLOAT_BLEND(srcBlue, dstBlue, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF32ColorSpace::compositeSaturation(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        float srcRed = src[PIXEL_RED];
-        float srcGreen = src[PIXEL_GREEN];
-        float srcBlue = src[PIXEL_BLUE];
-
-        float dstRed = dst[PIXEL_RED];
-        float dstGreen = dst[PIXEL_GREEN];
-        float dstBlue = dst[PIXEL_BLUE];
-
-        float srcHue;
-        float srcSaturation;
-        float srcValue;
-
-        float dstHue;
-        float dstSaturation;
-        float dstValue;
-
-        RGBToHSV(srcRed, srcGreen, srcBlue, &srcHue, &srcSaturation, &srcValue);
-        RGBToHSV(dstRed, dstGreen, dstBlue, &dstHue, &dstSaturation, &dstValue);
-
-        HSVToRGB(dstHue, srcSaturation, dstValue, &srcRed, &srcGreen, &srcBlue);
-
-        dst[PIXEL_RED] = FLOAT_BLEND(srcRed, dstRed, srcBlend);
-        dst[PIXEL_GREEN] = FLOAT_BLEND(srcGreen, dstGreen, srcBlend);
-        dst[PIXEL_BLUE] = FLOAT_BLEND(srcBlue, dstBlue, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF32ColorSpace::compositeValue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        float srcRed = src[PIXEL_RED];
-        float srcGreen = src[PIXEL_GREEN];
-        float srcBlue = src[PIXEL_BLUE];
-
-        float dstRed = dst[PIXEL_RED];
-        float dstGreen = dst[PIXEL_GREEN];
-        float dstBlue = dst[PIXEL_BLUE];
-
-        float srcHue;
-        float srcSaturation;
-        float srcValue;
-
-        float dstHue;
-        float dstSaturation;
-        float dstValue;
-
-        RGBToHSV(srcRed, srcGreen, srcBlue, &srcHue, &srcSaturation, &srcValue);
-        RGBToHSV(dstRed, dstGreen, dstBlue, &dstHue, &dstSaturation, &dstValue);
-
-        HSVToRGB(dstHue, dstSaturation, srcValue, &srcRed, &srcGreen, &srcBlue);
-
-        dst[PIXEL_RED] = FLOAT_BLEND(srcRed, dstRed, srcBlend);
-        dst[PIXEL_GREEN] = FLOAT_BLEND(srcGreen, dstGreen, srcBlend);
-        dst[PIXEL_BLUE] = FLOAT_BLEND(srcBlue, dstBlue, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF32ColorSpace::compositeColor(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, float opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        float srcRed = src[PIXEL_RED];
-        float srcGreen = src[PIXEL_GREEN];
-        float srcBlue = src[PIXEL_BLUE];
-
-        float dstRed = dst[PIXEL_RED];
-        float dstGreen = dst[PIXEL_GREEN];
-        float dstBlue = dst[PIXEL_BLUE];
-
-        float srcHue;
-        float srcSaturation;
-        float srcLightness;
-
-        float dstHue;
-        float dstSaturation;
-        float dstLightness;
-
-        RGBToHSL(srcRed, srcGreen, srcBlue, &srcHue, &srcSaturation, &srcLightness);
-        RGBToHSL(dstRed, dstGreen, dstBlue, &dstHue, &dstSaturation, &dstLightness);
-
-        HSLToRGB(srcHue, srcSaturation, dstLightness, &srcRed, &srcGreen, &srcBlue);
-
-        dst[PIXEL_RED] = FLOAT_BLEND(srcRed, dstRed, srcBlend);
-        dst[PIXEL_GREEN] = FLOAT_BLEND(srcGreen, dstGreen, srcBlend);
-        dst[PIXEL_BLUE] = FLOAT_BLEND(srcBlue, dstBlue, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbF32ColorSpace::compositeErase(TQ_UINT8 *dst,
-            TQ_INT32 dstRowSize,
-            const TQ_UINT8 *src,
-            TQ_INT32 srcRowSize,
-            const TQ_UINT8 *srcAlphaMask,
-            TQ_INT32 tqmaskRowStride,
-            TQ_INT32 rows,
-            TQ_INT32 cols,
-            float /*opacity*/)
-{
-    while (rows-- > 0)
-    {
-        const Pixel *s = reinterpret_cast<const Pixel *>(src);
-        Pixel *d = reinterpret_cast<Pixel *>(dst);
-        const TQ_UINT8 *tqmask = srcAlphaMask;
-
-        for (TQ_INT32 i = cols; i > 0; i--, s++, d++)
-        {
-            float srcAlpha = s->alpha;
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = FLOAT_BLEND(srcAlpha, F32_OPACITY_OPAQUE, UINT8_TO_FLOAT(U8_tqmask));
-                }
-                tqmask++;
-            }
-            d->alpha = srcAlpha * d->alpha;
-        }
-
-        dst += dstRowSize;
-        src += srcRowSize;
-        if(srcAlphaMask) {
-            srcAlphaMask += tqmaskRowStride;
-        }
-    }
-}
-
-void KisRgbF32ColorSpace::bitBlt(TQ_UINT8 *dst,
-                      TQ_INT32 dstRowStride,
-                      const TQ_UINT8 *src,
-                      TQ_INT32 srcRowStride,
-                      const TQ_UINT8 *tqmask,
-                      TQ_INT32 tqmaskRowStride,
-                      TQ_UINT8 U8_opacity,
-                      TQ_INT32 rows,
-                      TQ_INT32 cols,
-                      const KisCompositeOp& op)
-{
-    float opacity = UINT8_TO_FLOAT(U8_opacity);
-
-    switch (op.op()) {
-    case COMPOSITE_UNDEF:
-        // Undefined == no composition
-        break;
-    case COMPOSITE_OVER:
-        compositeOver(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_IN:
-        //compositeIn(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-    case COMPOSITE_OUT:
-        //compositeOut(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ATOP:
-        //compositeAtop(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_XOR:
-        //compositeXor(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_PLUS:
-        //compositePlus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_MINUS:
-        //compositeMinus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ADD:
-        //compositeAdd(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SUBTRACT:
-        //compositeSubtract(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DIFF:
-        //compositeDiff(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_MULT:
-        compositeMultiply(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DIVIDE:
-        compositeDivide(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_BUMPMAP:
-        //compositeBumpmap(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY:
-        compositeCopy(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, U8_opacity);
-        break;
-    case COMPOSITE_COPY_RED:
-        //compositeCopyRed(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_GREEN:
-        //compositeCopyGreen(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_BLUE:
-        //compositeCopyBlue(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_OPACITY:
-        //compositeCopyOpacity(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_CLEAR:
-        //compositeClear(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DISSOLVE:
-        //compositeDissolve(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DISPLACE:
-        //compositeDisplace(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-#if 0
-    case COMPOSITE_MODULATE:
-        compositeModulate(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_THRESHOLD:
-        compositeThreshold(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-#endif
-    case COMPOSITE_NO:
-        // No composition.
-        break;
-    case COMPOSITE_DARKEN:
-        compositeDarken(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_LIGHTEN:
-        compositeLighten(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_HUE:
-        compositeHue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SATURATION:
-        compositeSaturation(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_VALUE:
-        compositeValue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COLOR:
-        compositeColor(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COLORIZE:
-        //compositeColorize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_LUMINIZE:
-        //compositeLuminize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SCREEN:
-        compositeScreen(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_OVERLAY:
-        compositeOverlay(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ERASE:
-        compositeErase(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DODGE:
-        compositeDodge(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_BURN:
-        compositeBurn(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ALPHA_DARKEN:
-        abstractCompositeAlphaDarken<float, F32Mult, Uint8ToF32, F32OpacityTest,
-                    PIXEL_ALPHA, MAX_CHANNEL_RGB, MAX_CHANNEL_RGBA>(
-                    dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride,
-                    rows, cols, U8_opacity, F32Mult(), Uint8ToF32(), F32OpacityTest());
-    default:
-        break;
-    }
-}
-
-KisCompositeOpList KisRgbF32ColorSpace::userVisiblecompositeOps() const
-{
-    KisCompositeOpList list;
-
-    list.append(KisCompositeOp(COMPOSITE_OVER));
-    list.append(KisCompositeOp(COMPOSITE_ALPHA_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_MULT));
-    list.append(KisCompositeOp(COMPOSITE_BURN));
-    list.append(KisCompositeOp(COMPOSITE_DODGE));
-    list.append(KisCompositeOp(COMPOSITE_DIVIDE));
-    list.append(KisCompositeOp(COMPOSITE_SCREEN));
-    list.append(KisCompositeOp(COMPOSITE_OVERLAY));
-    list.append(KisCompositeOp(COMPOSITE_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_LIGHTEN));
-    list.append(KisCompositeOp(COMPOSITE_HUE));
-    list.append(KisCompositeOp(COMPOSITE_SATURATION));
-    list.append(KisCompositeOp(COMPOSITE_VALUE));
-    list.append(KisCompositeOp(COMPOSITE_COLOR));
-
-    return list;
-}
-
diff --git a/krita/colorspaces/rgb_f32/kis_rgb_f32_colorspace.h b/krita/colorspaces/rgb_f32/kis_rgb_f32_colorspace.h
deleted file mode 100644
index 615025cda..000000000
--- a/krita/colorspaces/rgb_f32/kis_rgb_f32_colorspace.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien  <freak@codepimps.org>
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_STRATEGY_COLORSPACE_RGB_F32_H_
-#define KIS_STRATEGY_COLORSPACE_RGB_F32_H_
-
-#include <tqcolor.h>
-
-#include <klocale.h>
-
-#include <koffice_export.h>
-
-#include "kis_global.h"
-#include "kis_f32_base_colorspace.h"
-
-class KisColorSpaceFactoryRegistry;
-
-class KRITATOOL_EXPORT KisRgbF32ColorSpace : public KisF32BaseColorSpace {
-public:
-    KisRgbF32ColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p);
-    virtual ~KisRgbF32ColorSpace();
-
-    virtual bool willDegrade(ColorSpaceIndependence independence)
-        {
-            if (independence == TO_RGBA8 || independence == TO_LAB16)
-                return true;
-            else
-                return false;
-        };
-
-
-
-public:
-    void setPixel(TQ_UINT8 *pixel, float red, float green, float blue, float alpha) const;
-    void getPixel(const TQ_UINT8 *pixel, float *red, float *green, float *blue, float *alpha) const;
-
-    virtual void fromTQColor(const TQColor& c, TQ_UINT8 *dst, KisProfile * profile = 0);
-    virtual void fromTQColor(const TQColor& c, TQ_UINT8 opacity, TQ_UINT8 *dst, KisProfile * profile = 0);
-
-    virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, KisProfile * profile = 0);
-    virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, TQ_UINT8 *opacity, KisProfile * profile = 0);
-
-    virtual TQ_UINT8 difference(const TQ_UINT8 *src1, const TQ_UINT8 *src2);
-    virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const;
-    virtual void invertColor(TQ_UINT8 * src, TQ_INT32 nPixels);
-    virtual void convolveColors(TQ_UINT8** colors, TQ_INT32 * kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const;
-    virtual TQ_UINT8 intensity8(const TQ_UINT8 * src) const;
-
-    virtual TQValueVector<KisChannelInfo *> channels() const;
-    virtual TQ_UINT32 nChannels() const;
-    virtual TQ_UINT32 nColorChannels() const;
-    virtual TQ_UINT32 pixelSize() const;
-
-
-    virtual TQImage convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width, TQ_INT32 height,
-                       KisProfile *  dstProfile,
-                       TQ_INT32 renderingIntent,
-                       float exposure = 0.0f);
-
-    virtual KisCompositeOpList userVisiblecompositeOps() const;
-
-
-protected:
-
-    virtual void bitBlt(TQ_UINT8 *dst,
-                TQ_INT32 dstRowStride,
-                const TQ_UINT8 *src,
-                TQ_INT32 srcRowStride,
-                const TQ_UINT8 *srcAlphaMask,
-                TQ_INT32 tqmaskRowStride,
-                TQ_UINT8 opacity,
-                TQ_INT32 rows,
-                TQ_INT32 cols,
-                const KisCompositeOp& op);
-
-    void compositeOver(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeMultiply(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeDivide(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeScreen(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeOverlay(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeDodge(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeBurn(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeDarken(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeLighten(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeHue(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeSaturation(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeValue(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeColor(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-    void compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, float opacity);
-
-private:
-    friend class KisRgbF32ColorSpaceTester;
-
-    static const TQ_UINT8 PIXEL_BLUE = 0;
-    static const TQ_UINT8 PIXEL_GREEN = 1;
-    static const TQ_UINT8 PIXEL_RED = 2;
-    static const TQ_UINT8 PIXEL_ALPHA = 3;
-
-    struct Pixel {
-        float blue;
-        float green;
-        float red;
-        float alpha;
-    };
-
-    // For Alpha Composite
-    struct F32Mult {
-        inline float operator()(const float& a, const float& b) const {
-            return a * b;
-        }
-    };
-    struct Uint8ToF32 {
-        inline float operator()(const TQ_UINT8 src) const {
-            return UINT8_TO_FLOAT(src);
-        }
-    };
-    struct F32OpacityTest {
-        inline bool operator()(const float& opacity) const {
-            return opacity > F32_OPACITY_TRANSPARENT + 1e-6; // #define EPSILON in the .cc
-        }
-    };
-};
-
-// FIXME: lcms doesn't support 32-bit float
-#define F32_LCMS_TYPE TYPE_BGRA_16
-
-class KisRgbF32ColorSpaceFactory : public KisColorSpaceFactory
-{
-public:
-    /**
-     * Krita definition for use in .kra files and internally: unchanging name +
-     * i18n'able description.
-     */
-    virtual KisID id() const { return KisID("RGBAF32", i18n("RGB (32-bit float/channel)")); };
-
-    /**
-     * lcms colorspace type definition.
-     */
-    virtual TQ_UINT32 colorSpaceType() { return F32_LCMS_TYPE; };
-
-    virtual icColorSpaceSignature colorSpaceSignature() { return icSigRgbData; };
-
-    virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) { return new KisRgbF32ColorSpace(tqparent, p); };
-
-    virtual TQString defaultProfile() { return "sRGB built-in - (lcms internal)"; };
-};
-
-#endif // KIS_STRATEGY_COLORSPACE_RGB_F32_H_
-
diff --git a/krita/colorspaces/rgb_f32/krita_rgb_f32_plugin.desktop b/krita/colorspaces/rgb_f32/krita_rgb_f32_plugin.desktop
deleted file mode 100644
index 67ea396df..000000000
--- a/krita/colorspaces/rgb_f32/krita_rgb_f32_plugin.desktop
+++ /dev/null
@@ -1,77 +0,0 @@
-[Desktop Entry]
-Name=RGB Color Model (32-bit float)
-Name[bg]=Цветови модел RGB (32 бита)
-Name[ca]=Model de color RGB (paleta de 32 bits)
-Name[cy]=Model Lliw RGB (arnawf 32-did)
-Name[da]=RGB-farvemodel (32-bit float)
-Name[de]=RGB-Farbmodell (32-bit Fließkomma)
-Name[el]=Χρωματικό μοντέλο RGB (32 bit δεκαδικοί)
-Name[en_GB]=RGB Colour Model (32-bit float)
-Name[eo]=RGB-kolormodelo (32-bita flupunkto)
-Name[es]=Modelo de color RGB (decimal de 32 bits)
-Name[et]=RGB värvimudel (32-bitine murdarv)
-Name[fa]=مدل رنگ RGB )شناور ۳۲ بیتی(
-Name[fr]=Modèle de couleurs RVB (flottants 32 bits)
-Name[fy]=RGB-kleurmodel (32-bit float)
-Name[gl]=Espazo de Cores RGB (flutuante de 32-bit)
-Name[he]=מודל צבעים RGB (32 סיביות)
-Name[hu]=RGB színmodell (32 bites lebegőpontos)
-Name[is]=RGB litategund (32-bita fleytitala)
-Name[it]=Modello di colore RGB (virgola mobile a 32 bit)
-Name[ja]=RGB カラーモデル (32 ビット浮動小数)
-Name[km]=គំរូ​ពណ៌ RGB (ចំនួន​ទស្សភាគ 32 ប៊ីត)
-Name[nb]=RGB-fargemodell (32-bit flyttall)
-Name[nds]=RGB-Klöörmodell (32-Bit Fleetkomma)
-Name[ne]=RGB रङ मोडेल (३२-बिट उत्प्लावन)
-Name[nl]=RGB-kleurmodel (32-bit float)
-Name[pl]=Przestrzeń barw RGB (32-bitowa zmiennoprzecinkowa)
-Name[pt]=Modelo de Cor RGB (v. flutuante de 32-bits)
-Name[pt_BR]=Modelo de Cor RGB (ponto flutuante de 32-bits)
-Name[ru]=RGB (32-бит с плавающей точкой)
-Name[sk]=Model farieb RGB (32-bitové reálne čísla)
-Name[sl]=Barvni model RGB (32-bitno celo število)
-Name[sr]=RGB модел боја (32-битно реално)
-Name[sr@Latn]=RGB model boja (32-bitno realno)
-Name[sv]=RGB-färgmodell (32-bitars heltal)
-Name[uk]=Модель кольорів RGB (32-бітне дробове число)
-Name[uz]=RGB rang usuli (32-bit kasr)
-Name[uz@cyrillic]=RGB ранг усули (32-бит каср)
-Name[zh_TW]=RGB 色彩模型 (32-bit 浮點數)
-Comment=Color model for 32-bit floating point per channel RGB images
-Comment[bg]=Цветови модел за 32 битови изображения RGB
-Comment[ca]=Model de color per a punt flotant de 32 bits-canal d'imatges RGB
-Comment[da]=Farvemodel for 32-bit decimaltal pr kanal RGB-billeder
-Comment[de]=Farbmodell für 32-bit Fließkomma pro Kanal RGB-Bilder
-Comment[el]=Χρωματικό μοντέλο για 32-bit δεκαδικούς ανά κανάλι RGB εικόνες
-Comment[en_GB]=Colour model for 32-bit floating point per channel RGB images
-Comment[es]=Modelo de color decimal de 32 bits por canal para imágenes RGB
-Comment[et]=32-bitiste murdarvuliste kanalitega RGB-piltide värvimudel
-Comment[fa]=مدل رنگ برای ممیز شناور ۳۲ بیتی برای هر تصویر RGB مجرا
-Comment[fr]=Modèle de couleurs pour des images RVB en 32 bits flottants par canal
-Comment[fy]=Kleurmodel foar RGB-ôfbyldings mei 32-bit Driuwende komma de kanaal
-Comment[gl]=Espazo de cores para imaxes RGB de 32-bit vírgula flutuante por canal
-Comment[he]=מודל צבעים עבור תמונות RGB של 32 סיביות/ערוצים
-Comment[hu]=Színmodell 32 bit (lebegőpontos)/csatorna RGB képekhez
-Comment[is]=Litategund fyrir 32-bita fleytitölu á rás RGB myndir
-Comment[it]=Modello di colore per immagini RGB in virgola mobile a canale di 32 bit
-Comment[ja]=32 ビット浮動小数/チャンネル RGB 画像のためのカラーモデル
-Comment[km]=ម៉ូដែល​ពណ៌​សម្រាប់​ចំណុច​ចំនួន​ទស្សភាគ 32-bit ក្នុង​ឆានែល​រូបភាព RGB
-Comment[nb]=Fargemodell for RGB-bilde med 32 bit flyttall per kanal
-Comment[nds]=Klöörmodell för RGB-Biller mit 32-Bit Fleetkomma per Kanaal
-Comment[ne]=प्रति च्यानल RGB छविहरूको ३२-बिट उत्प्लावन बिन्दुका लागि रङ मोडेल
-Comment[nl]=Kleurmodel voor RGB-afbeeldingen met 32-bit drijvende komma per kanaal
-Comment[pl]=Przestrzeń barw dla obrazków RGB z 32-bitową liczbą zmiennoprzecinkową na kanał
-Comment[pt]=Modelo de cor para imagens RGB com 32 bits de vírgula flutuante por canal
-Comment[pt_BR]=Modelo de cor para imagens RGB com 32 bits de ponto flutuante por canal
-Comment[ru]=Цветовое пространство RGB (32-бит/канал с плавающей точкой)
-Comment[sk]=Model farieb pre RGB obrázky s 32-bitovými reálnymi číslami na kanál
-Comment[sl]=Barvni model za slike RGB z 32-bitno plavajočo vejico na kanal
-Comment[sr]=Модел боја за RGB слике, 32-битно реално по каналу
-Comment[sr@Latn]=Model boja za RGB slike, 32-bitno realno po kanalu
-Comment[sv]=Färgmodell för 32-bitars flyttal per kanal RGB-bilder
-Comment[uk]=Модель кольорів для зображень RGB 32-біт з плаваючою комою на канал
-Comment[zh_TW]=每色頻 32-bit 浮點 RGB 圖片的色彩模型
-ServiceTypes=Krita/ColorSpace
-Type=Service
-X-Krita-Version=2
-X-KDE-Library=krita_rgb_f32_plugin
diff --git a/krita/colorspaces/rgb_f32/rgb_f32_plugin.cc b/krita/colorspaces/rgb_f32/rgb_f32_plugin.cc
deleted file mode 100644
index b8dad3da3..000000000
--- a/krita/colorspaces/rgb_f32/rgb_f32_plugin.cc
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-* rgb_f32_plugin.cc -- Part of Krita
-*
-* Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org)
-* Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
-*
-*  This program is free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  This program is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  You should have received a copy of the GNU General Public License
-*  along with this program; if not, write to the Free Software
-*  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
-*/
-
-#include <kinstance.h>
-#include <kgenericfactory.h>
-#include <kdebug.h>
-
-#include <kis_debug_areas.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_basic_histogram_producers.h>
-
-#include "rgb_f32_plugin.h"
-#include "kis_rgb_f32_colorspace.h"
-
-typedef KGenericFactory<RGBF32Plugin> RGBF32PluginFactory;
-K_EXPORT_COMPONENT_FACTORY( krita_rgb_f32_plugin, RGBF32PluginFactory( "krita" ) )
-
-
-RGBF32Plugin::RGBF32Plugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-    setInstance(RGBF32PluginFactory::instance());
-
-    if ( tqparent->inherits("KisColorSpaceFactoryRegistry") )
-    {
-	KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>(tqparent);
-
-        KisColorSpace * colorSpaceRGBF32  = new KisRgbF32ColorSpace(f, 0);
-
-        KisColorSpaceFactory * csf  = new KisRgbF32ColorSpaceFactory();
-        f->add(csf);
-
-        KisHistogramProducerFactoryRegistry::instance()->add(
-            new KisBasicHistogramProducerFactory<KisBasicF32HistogramProducer>
-            (KisID("RGBF32HISTO", i18n("Float32")), colorSpaceRGBF32) );
-    }
-
-}
-
-RGBF32Plugin::~RGBF32Plugin()
-{
-}
-
-#include "rgb_f32_plugin.moc"
diff --git a/krita/colorspaces/rgb_f32/rgb_f32_plugin.h b/krita/colorspaces/rgb_f32/rgb_f32_plugin.h
deleted file mode 100644
index 22ec674f1..000000000
--- a/krita/colorspaces/rgb_f32/rgb_f32_plugin.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- *  Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef RGB_F32_PLUGIN_H_
-#define RGB_F32_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-/**
- * A plugin wrapper around the RGB F32 colour space strategy.
- */
-class RGBF32Plugin : public KParts::Plugin
-{
-    Q_OBJECT
-  TQ_OBJECT
-public:
-    RGBF32Plugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~RGBF32Plugin();
-
-};
-
-
-#endif // RGB_F32_PLUGIN_H_
diff --git a/krita/colorspaces/rgb_f32/rgb_f32_plugin.rc b/krita/colorspaces/rgb_f32/rgb_f32_plugin.rc
deleted file mode 100644
index 14aab641e..000000000
--- a/krita/colorspaces/rgb_f32/rgb_f32_plugin.rc
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui library="krita_rgb_f32_plugin" version="1">
-<Menu name="Image"><text>&amp;Image</text>
-    <Menu name="Mode"><text>&amp;Mode</text>
-            <Action name="convert to RGB(A) (32-bit float)"/>
-    </Menu>
-</Menu>
-
-</kpartgui>
diff --git a/krita/colorspaces/rgb_f32/tests/Makefile.am b/krita/colorspaces/rgb_f32/tests/Makefile.am
deleted file mode 100644
index 943af1d03..000000000
--- a/krita/colorspaces/rgb_f32/tests/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-AM_CPPFLAGS = -I$(srcdir)/.. \
-	-I$(srcdir)/../../../sdk \
-	-I$(srcdir)/../../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../../color_strategy/ \
-	$(all_includes)
-
-# The check_ target makes sure we don't install the modules,
-# $(KDE_CHECK_PLUGIN) assures a shared library is created.
-check_LTLIBRARIES = kunittest_kis_strategy_colorspace_rgb_f32_tester.la
-
-kunittest_kis_strategy_colorspace_rgb_f32_tester_la_SOURCES = kis_strategy_colorspace_rgb_f32_tester.cc
-kunittest_kis_strategy_colorspace_rgb_f32_tester_la_LIBADD = -lkunittest ../libkrita_rgb_f32.la
-kunittest_kis_strategy_colorspace_rgb_f32_tester_la_LDFLAGS = -module $(KDE_CHECK_PLUGIN) $(all_libraries)
-
-check-local: kunittest_kis_strategy_colorspace_rgb_f32_tester.la
-	kunittestmodrunner
-
diff --git a/krita/colorspaces/rgb_f32/tests/kis_strategy_colorspace_rgb_f32_tester.cc b/krita/colorspaces/rgb_f32/tests/kis_strategy_colorspace_rgb_f32_tester.cc
deleted file mode 100644
index b4ec34e9b..000000000
--- a/krita/colorspaces/rgb_f32/tests/kis_strategy_colorspace_rgb_f32_tester.cc
+++ /dev/null
@@ -1,541 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include <kunittest/runner.h>
-#include <kunittest/module.h>
-
-#include "kis_factory.h"
-#include "kis_strategy_colorspace_rgb_f32_tester.h"
-#include "kis_rgb_f32_colorspace.h"
-#include "kis_integer_maths.h"
-#include "kis_paint_device.h"
-
-using namespace KUnitTest;
-
-KUNITTEST_MODULE( kunittest_kis_strategy_colorspace_rgb_f32_tester, "RGBA 32-bit float colorspace tester" );
-KUNITTEST_MODULE_REGISTER_TESTER( KisRgbF32ColorSpaceTester );
-
-#define PIXEL_BLUE 0
-#define PIXEL_GREEN 1
-#define PIXEL_RED 2
-#define PIXEL_ALPHA 3
-
-#define NUM_CHANNELS 4
-#define NUM_COLOUR_CHANNELS 3
-#define CHANNEL_SIZE ((int)sizeof(float))
-
-#define RED_CHANNEL 0
-#define GREEN_CHANNEL 1
-#define BLUE_CHANNEL 2
-#define ALPHA_CHANNEL 3
-
-#define MAX_CHANNEL_VALUE 1.0f
-#define MIN_CHANNEL_VALUE 0.0f
-
-
-void KisRgbF32ColorSpaceTester::allTests()
-{
-    // We need this so that the colour profile loading can operate without crashing.
-    KisFactory *factory = new KisFactory();
-
-    testBasics();
-    testToTQImage();
-    testCompositeOps();
-        testMixColors();
-
-    delete factory;
-}
-
-void KisRgbF32ColorSpaceTester::testBasics()
-{
-    KisProfile *profile = new KisProfile(cmsCreate_sRGBProfile());
-
-    KisRgbF32ColorSpace *cs = new KisRgbF32ColorSpace(profile);
-    KisAbstractColorSpace * csSP = cs;
-
-    CHECK(cs->hasAlpha(), true);
-    CHECK(cs->nChannels(), NUM_CHANNELS);
-    CHECK(cs->nColorChannels(), NUM_COLOUR_CHANNELS);
-    CHECK(cs->pixelSize(), NUM_CHANNELS * CHANNEL_SIZE);
-
-    TQValueVector<KisChannelInfo *> channels = cs->channels();
-
-    // Red
-    CHECK(channels[0]->pos(), PIXEL_RED * CHANNEL_SIZE);
-    CHECK(channels[0]->size(), CHANNEL_SIZE);
-    CHECK(channels[0]->channelType(), COLOR);
-
-    // Green
-    CHECK(channels[1]->pos(), PIXEL_GREEN * CHANNEL_SIZE);
-    CHECK(channels[1]->size(), CHANNEL_SIZE);
-    CHECK(channels[1]->channelType(), COLOR);
-
-    // Blue
-    CHECK(channels[2]->pos(), PIXEL_BLUE * CHANNEL_SIZE);
-    CHECK(channels[2]->size(), CHANNEL_SIZE);
-    CHECK(channels[2]->channelType(), COLOR);
-
-    // Alpha
-    CHECK(channels[3]->pos(), PIXEL_ALPHA * CHANNEL_SIZE);
-    CHECK(channels[3]->size(), CHANNEL_SIZE);
-    CHECK(channels[3]->channelType(), ALPHA);
-
-    KisPaintDeviceSP pd = new KisPaintDevice(cs, "test");
-
-    KisRgbF32ColorSpace::Pixel defaultPixel;
-
-    memcpy(&defaultPixel, pd->dataManager()->defaultPixel(), sizeof(defaultPixel));
-
-    CHECK(defaultPixel.red, 0.0f);
-    CHECK(defaultPixel.green, 0.0f);
-    CHECK(defaultPixel.blue, 0.0f);
-    CHECK(defaultPixel.alpha, F32_OPACITY_TRANSPARENT);
-
-    float pixel[NUM_CHANNELS];
-
-    cs->fromTQColor(tqRgb(255, 255, 255), reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK(pixel[PIXEL_RED], MAX_CHANNEL_VALUE);
-    CHECK(pixel[PIXEL_GREEN], MAX_CHANNEL_VALUE);
-    CHECK(pixel[PIXEL_BLUE], MAX_CHANNEL_VALUE);
-
-    cs->fromTQColor(tqRgb(0, 0, 0), reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK(pixel[PIXEL_RED], MIN_CHANNEL_VALUE);
-    CHECK(pixel[PIXEL_GREEN], MIN_CHANNEL_VALUE);
-    CHECK(pixel[PIXEL_BLUE], MIN_CHANNEL_VALUE);
-
-    cs->fromTQColor(tqRgb(128, 64, 192), reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK(pixel[PIXEL_RED], UINT8_TO_FLOAT(128));
-    CHECK(pixel[PIXEL_GREEN], UINT8_TO_FLOAT(64));
-    CHECK(pixel[PIXEL_BLUE], UINT8_TO_FLOAT(192));
-
-    cs->fromTQColor(tqRgb(255, 255, 255), OPACITY_OPAQUE, reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK(pixel[PIXEL_RED], MAX_CHANNEL_VALUE);
-    CHECK(pixel[PIXEL_GREEN], MAX_CHANNEL_VALUE);
-    CHECK(pixel[PIXEL_BLUE], MAX_CHANNEL_VALUE);
-    CHECK(pixel[PIXEL_ALPHA], MAX_CHANNEL_VALUE);
-
-    cs->fromTQColor(tqRgb(255, 255, 255), OPACITY_TRANSPARENT, reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK(pixel[PIXEL_RED], MAX_CHANNEL_VALUE);
-    CHECK(pixel[PIXEL_GREEN], MAX_CHANNEL_VALUE);
-    CHECK(pixel[PIXEL_BLUE], MAX_CHANNEL_VALUE);
-    CHECK(pixel[PIXEL_ALPHA], F32_OPACITY_TRANSPARENT);
-
-    cs->fromTQColor(tqRgb(255, 255, 255), OPACITY_OPAQUE / 2, reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK(pixel[PIXEL_RED], MAX_CHANNEL_VALUE);
-    CHECK(pixel[PIXEL_GREEN], MAX_CHANNEL_VALUE);
-    CHECK(pixel[PIXEL_BLUE], MAX_CHANNEL_VALUE);
-    CHECK(pixel[PIXEL_ALPHA], UINT8_TO_FLOAT(OPACITY_OPAQUE / 2));
-
-    pixel[PIXEL_RED] = MAX_CHANNEL_VALUE;
-    pixel[PIXEL_GREEN] = MAX_CHANNEL_VALUE;
-    pixel[PIXEL_BLUE] = MAX_CHANNEL_VALUE;
-
-    TQColor c;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c);
-
-    CHECK(c.red(), 255);
-    CHECK(c.green(), 255);
-    CHECK(c.blue(), 255);
-
-    pixel[PIXEL_RED] = MIN_CHANNEL_VALUE;
-    pixel[PIXEL_GREEN] = MIN_CHANNEL_VALUE;
-    pixel[PIXEL_BLUE] = MIN_CHANNEL_VALUE;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c);
-
-    CHECK(c.red(), 0);
-    CHECK(c.green(), 0);
-    CHECK(c.blue(), 0);
-
-    pixel[PIXEL_RED] = MAX_CHANNEL_VALUE / 4;
-    pixel[PIXEL_GREEN] = MAX_CHANNEL_VALUE / 2;
-    pixel[PIXEL_BLUE] = (3 * MAX_CHANNEL_VALUE) / 4;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c);
-
-    CHECK(c.red(), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE / 4));
-    CHECK(c.green(), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE / 2));
-    CHECK(c.blue(), (int)FLOAT_TO_UINT8((3 * MAX_CHANNEL_VALUE) / 4));
-
-    pixel[PIXEL_RED] = MAX_CHANNEL_VALUE;
-    pixel[PIXEL_GREEN] = MAX_CHANNEL_VALUE;
-    pixel[PIXEL_BLUE] = MAX_CHANNEL_VALUE;
-    pixel[PIXEL_ALPHA] = MAX_CHANNEL_VALUE;
-
-    TQ_UINT8 opacity;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c, &opacity);
-
-    CHECK(c.red(), 255);
-    CHECK(c.green(), 255);
-    CHECK(c.blue(), 255);
-    CHECK(opacity, OPACITY_OPAQUE);
-
-    pixel[PIXEL_ALPHA] = F32_OPACITY_OPAQUE;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c, &opacity);
-
-    CHECK(c.red(), 255);
-    CHECK(c.green(), 255);
-    CHECK(c.blue(), 255);
-    CHECK(opacity, OPACITY_OPAQUE);
-
-    pixel[PIXEL_RED] = MIN_CHANNEL_VALUE;
-    pixel[PIXEL_GREEN] = MIN_CHANNEL_VALUE;
-    pixel[PIXEL_BLUE] = MIN_CHANNEL_VALUE;
-    pixel[PIXEL_ALPHA] = F32_OPACITY_TRANSPARENT;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c, &opacity);
-
-    CHECK(c.red(), 0);
-    CHECK(c.green(), 0);
-    CHECK(c.blue(), 0);
-    CHECK(opacity, OPACITY_TRANSPARENT);
-
-    pixel[PIXEL_RED] = MAX_CHANNEL_VALUE / 4;
-    pixel[PIXEL_GREEN] = MAX_CHANNEL_VALUE / 2;
-    pixel[PIXEL_BLUE] = (3 * MAX_CHANNEL_VALUE) / 4;
-    pixel[PIXEL_ALPHA] = MAX_CHANNEL_VALUE / 2;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c, &opacity);
-
-    CHECK(c.red(), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE / 4));
-    CHECK(c.green(), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE / 2));
-    CHECK(c.blue(), (int)FLOAT_TO_UINT8((3 * MAX_CHANNEL_VALUE) / 4));
-    CHECK((int)opacity, (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE / 2));
-
-    #define NUM_PIXELS 4
-
-    KisRgbF32ColorSpace::Pixel pixels[NUM_PIXELS] = {
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE / 4},
-        {MAX_CHANNEL_VALUE / 4, MAX_CHANNEL_VALUE / 2, MAX_CHANNEL_VALUE / 3, MAX_CHANNEL_VALUE / 2},
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MIN_CHANNEL_VALUE},
-        {MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MAX_CHANNEL_VALUE}
-    };
-
-    cs->setAlpha(reinterpret_cast<TQ_UINT8 *>(pixels), OPACITY_OPAQUE / 2, NUM_PIXELS);
-
-    CHECK(pixels[0].red, MAX_CHANNEL_VALUE);
-    CHECK(pixels[0].green, MAX_CHANNEL_VALUE);
-    CHECK(pixels[0].blue, MAX_CHANNEL_VALUE);
-    CHECK(pixels[0].alpha, UINT8_TO_FLOAT(OPACITY_OPAQUE / 2));
-
-    CHECK(pixels[1].red, MAX_CHANNEL_VALUE / 3);
-    CHECK(pixels[1].green, MAX_CHANNEL_VALUE / 2);
-    CHECK(pixels[1].blue, MAX_CHANNEL_VALUE / 4);
-    CHECK(pixels[1].alpha, UINT8_TO_FLOAT(OPACITY_OPAQUE / 2));
-
-    CHECK(pixels[2].red, MAX_CHANNEL_VALUE);
-    CHECK(pixels[2].green, MAX_CHANNEL_VALUE);
-    CHECK(pixels[2].blue, MAX_CHANNEL_VALUE);
-    CHECK(pixels[2].alpha, UINT8_TO_FLOAT(OPACITY_OPAQUE / 2));
-
-    CHECK(pixels[3].red, MIN_CHANNEL_VALUE);
-    CHECK(pixels[3].green, MIN_CHANNEL_VALUE);
-    CHECK(pixels[3].blue, MIN_CHANNEL_VALUE);
-    CHECK(pixels[3].alpha, UINT8_TO_FLOAT(OPACITY_OPAQUE / 2));
-
-    pixel[PIXEL_RED] = MAX_CHANNEL_VALUE;
-    pixel[PIXEL_GREEN] = MAX_CHANNEL_VALUE / 2;
-    pixel[PIXEL_BLUE] = MAX_CHANNEL_VALUE / 4;
-    pixel[PIXEL_ALPHA] = MIN_CHANNEL_VALUE;
-
-    TQString valueText = cs->channelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), RED_CHANNEL);
-    CHECK(valueText, TQString().setNum(MAX_CHANNEL_VALUE));
-
-    valueText = cs->channelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), GREEN_CHANNEL);
-    CHECK(valueText, TQString().setNum(MAX_CHANNEL_VALUE / 2));
-
-    valueText = cs->channelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), BLUE_CHANNEL);
-    CHECK(valueText, TQString().setNum(MAX_CHANNEL_VALUE / 4));
-
-    valueText = cs->channelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), ALPHA_CHANNEL);
-    CHECK(valueText, TQString().setNum(MIN_CHANNEL_VALUE));
-
-    valueText = cs->normalisedChannelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), RED_CHANNEL);
-    CHECK(valueText, TQString().setNum(MAX_CHANNEL_VALUE));
-
-    valueText = cs->normalisedChannelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), GREEN_CHANNEL);
-    CHECK(valueText, TQString().setNum(MAX_CHANNEL_VALUE / 2));
-
-    valueText = cs->normalisedChannelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), BLUE_CHANNEL);
-    CHECK(valueText, TQString().setNum(MAX_CHANNEL_VALUE / 4));
-
-    valueText = cs->normalisedChannelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), ALPHA_CHANNEL);
-    CHECK(valueText, TQString().setNum(MIN_CHANNEL_VALUE));
-
-    cs->setPixel(reinterpret_cast<TQ_UINT8 *>(pixel), 0.128, 0.192, 0.64, 0.99);
-    CHECK(pixel[PIXEL_RED], 0.128f);
-    CHECK(pixel[PIXEL_GREEN], 0.192f);
-    CHECK(pixel[PIXEL_BLUE], 0.64f);
-    CHECK(pixel[PIXEL_ALPHA], 0.99f);
-
-    float red;
-    float green;
-    float blue;
-    float alpha;
-
-    cs->getPixel(reinterpret_cast<const TQ_UINT8 *>(pixel), &red, &green, &blue, &alpha);
-    CHECK(red, 0.128f);
-    CHECK(green, 0.192f);
-    CHECK(blue, 0.64f);
-    CHECK(alpha, 0.99f);
-
-    CHECK(FLOAT_TO_UINT8(-0.5), 0u);
-    CHECK(FLOAT_TO_UINT8(0), 0u);
-    CHECK_TOLERANCE(FLOAT_TO_UINT8(0.5), UINT8_MAX / 2, 1u);
-    CHECK(FLOAT_TO_UINT8(1), UINT8_MAX);
-    CHECK(FLOAT_TO_UINT8(1.5), UINT8_MAX);
-
-    CHECK(FLOAT_TO_UINT16(-0.5), 0u);
-    CHECK(FLOAT_TO_UINT16(0), 0u);
-    CHECK_TOLERANCE(FLOAT_TO_UINT16(0.5), UINT16_MAX / 2, 1u);
-    CHECK(FLOAT_TO_UINT16(1), UINT16_MAX);
-    CHECK(FLOAT_TO_UINT16(1.5), UINT16_MAX);
-}
-
-void KisRgbF32ColorSpaceTester::testMixColors()
-{
-    KisProfile *profile = new KisProfile(cmsCreate_sRGBProfile());
-
-    KisAbstractColorSpace * cs = new KisRgbF32ColorSpace(profile);
-
-    // Test mixColors.
-    float pixel1[NUM_CHANNELS];
-    float pixel2[NUM_CHANNELS];
-    float outputPixel[NUM_CHANNELS];
-
-    outputPixel[PIXEL_RED] = 0;
-    outputPixel[PIXEL_GREEN] = 0;
-    outputPixel[PIXEL_BLUE] = 0;
-    outputPixel[PIXEL_ALPHA] = 0;
-
-    pixel1[PIXEL_RED] = MAX_CHANNEL_VALUE;
-    pixel1[PIXEL_GREEN] = MAX_CHANNEL_VALUE;
-    pixel1[PIXEL_BLUE] = MAX_CHANNEL_VALUE;
-    pixel1[PIXEL_ALPHA] = MAX_CHANNEL_VALUE;
-
-    pixel2[PIXEL_RED] = 0;
-    pixel2[PIXEL_GREEN] = 0;
-    pixel2[PIXEL_BLUE] = 0;
-    pixel2[PIXEL_ALPHA] = 0;
-
-    const TQ_UINT8 *pixelPtrs[2];
-    TQ_UINT8 weights[2];
-
-    pixelPtrs[0] = reinterpret_cast<const TQ_UINT8 *>(pixel1);
-    pixelPtrs[1] = reinterpret_cast<const TQ_UINT8 *>(pixel2);
-
-    weights[0] = 255;
-    weights[1] = 0;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK(outputPixel[PIXEL_RED], MAX_CHANNEL_VALUE);
-    CHECK(outputPixel[PIXEL_GREEN], MAX_CHANNEL_VALUE);
-    CHECK(outputPixel[PIXEL_BLUE], MAX_CHANNEL_VALUE);
-    CHECK(outputPixel[PIXEL_ALPHA], MAX_CHANNEL_VALUE);
-
-    weights[0] = 0;
-    weights[1] = 255;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK(outputPixel[PIXEL_RED], 0.0f);
-    CHECK(outputPixel[PIXEL_GREEN], 0.0f);
-    CHECK(outputPixel[PIXEL_BLUE], 0.0f);
-    CHECK(outputPixel[PIXEL_ALPHA], 0.0f);
-
-    weights[0] = 128;
-    weights[1] = 127;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK(outputPixel[PIXEL_RED], MAX_CHANNEL_VALUE);
-    CHECK(outputPixel[PIXEL_GREEN], MAX_CHANNEL_VALUE);
-    CHECK(outputPixel[PIXEL_BLUE], MAX_CHANNEL_VALUE);
-    CHECK(outputPixel[PIXEL_ALPHA], (128 * MAX_CHANNEL_VALUE) / 255);
-
-    pixel1[PIXEL_RED] = 20000;
-    pixel1[PIXEL_GREEN] = 10000;
-    pixel1[PIXEL_BLUE] = 5000;
-    pixel1[PIXEL_ALPHA] = MAX_CHANNEL_VALUE;
-
-    pixel2[PIXEL_RED] = 10000;
-    pixel2[PIXEL_GREEN] = 20000;
-    pixel2[PIXEL_BLUE] = 2000;
-    pixel2[PIXEL_ALPHA] = MAX_CHANNEL_VALUE;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK_TOLERANCE(outputPixel[PIXEL_RED], (128 * 20000 + 127 * 10000) / 255, 5);
-    CHECK_TOLERANCE(outputPixel[PIXEL_GREEN], (128 * 10000 + 127 * 20000) / 255, 5);
-    CHECK_TOLERANCE(outputPixel[PIXEL_BLUE], (128 * 5000 + 127 * 2000) / 255, 5);
-    CHECK(outputPixel[PIXEL_ALPHA], MAX_CHANNEL_VALUE);
-
-    pixel1[PIXEL_RED] = 0;
-    pixel1[PIXEL_GREEN] = 0;
-    pixel1[PIXEL_BLUE] = 0;
-    pixel1[PIXEL_ALPHA] = 0;
-
-    pixel2[PIXEL_RED] = MAX_CHANNEL_VALUE;
-    pixel2[PIXEL_GREEN] = MAX_CHANNEL_VALUE;
-    pixel2[PIXEL_BLUE] = MAX_CHANNEL_VALUE;
-    pixel2[PIXEL_ALPHA] = MAX_CHANNEL_VALUE;
-
-    weights[0] = 89;
-    weights[1] = 166;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK(outputPixel[PIXEL_RED], MAX_CHANNEL_VALUE);
-    CHECK(outputPixel[PIXEL_GREEN], MAX_CHANNEL_VALUE);
-    CHECK(outputPixel[PIXEL_BLUE], MAX_CHANNEL_VALUE);
-    CHECK_TOLERANCE(outputPixel[PIXEL_ALPHA], (89 * 0 + 166 * MAX_CHANNEL_VALUE) / 255, 5);
-}
-
-#define PIXELS_WIDTH 2
-#define PIXELS_HEIGHT 2
-
-void KisRgbF32ColorSpaceTester::testToTQImage()
-{
-    KisProfile *profile = new KisProfile(cmsCreate_sRGBProfile());
-
-    KisAbstractColorSpace * cs = new KisRgbF32ColorSpace(profile);
-
-    KisRgbF32ColorSpace::Pixel pixels[PIXELS_WIDTH * PIXELS_HEIGHT] = {
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE / 4},
-        {MAX_CHANNEL_VALUE / 4, MAX_CHANNEL_VALUE / 2, MAX_CHANNEL_VALUE / 3, MAX_CHANNEL_VALUE / 2},
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MIN_CHANNEL_VALUE},
-        {MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MAX_CHANNEL_VALUE}
-    };
-
-    TQImage image = cs->convertToTQImage(reinterpret_cast<const TQ_UINT8 *>(pixels), PIXELS_WIDTH, PIXELS_HEIGHT, 0, 0);
-
-    TQRgb c = image.pixel(0, 0);
-
-    // Exposure comes into play here.
-    /*
-    CHECK(tqRed(c), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE));
-    CHECK(tqGreen(c), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE));
-    CHECK(tqBlue(c), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE));
-    CHECK(tqAlpha(c), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE / 4));
-
-    c = image.pixel(1, 0);
-
-    CHECK(tqRed(c), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE / 3));
-    CHECK(tqGreen(c), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE / 2));
-    CHECK(tqBlue(c), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE / 4));
-    CHECK(tqAlpha(c), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE / 2));
-
-    c = image.pixel(0, 1);
-
-    CHECK(tqRed(c), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE));
-    CHECK(tqGreen(c), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE));
-    CHECK(tqBlue(c), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE));
-    CHECK(tqAlpha(c), (int)FLOAT_TO_UINT8(MIN_CHANNEL_VALUE));
-
-    c = image.pixel(1, 1);
-
-    CHECK(tqRed(c), (int)FLOAT_TO_UINT8(MIN_CHANNEL_VALUE));
-    CHECK(tqGreen(c), (int)FLOAT_TO_UINT8(MIN_CHANNEL_VALUE));
-    CHECK(tqBlue(c), (int)FLOAT_TO_UINT8(MIN_CHANNEL_VALUE));
-    CHECK(tqAlpha(c), (int)FLOAT_TO_UINT8(MAX_CHANNEL_VALUE));
-    */
-}
-
-#define NUM_ROWS 2
-#define NUM_COLUMNS 2
-#define SRC_ROW_STRIDE (NUM_COLUMNS * CHANNEL_SIZE)
-#define DST_ROW_STRIDE (NUM_COLUMNS * CHANNEL_SIZE)
-#define MASK_ROW_STRIDE NUM_COLUMNS
-
-/*
-1 alpha 1    0 alpha 1
-1 alpha 0.5  0 alpha 1
-1 alpha 0.5  0 alpha 0.5
-1 alpha 0    0 alpha 0.5
-
-*/
-
-void KisRgbF32ColorSpaceTester::testCompositeOps()
-{
-    KisProfile *profile = new KisProfile(cmsCreate_sRGBProfile());
-
-    KisRgbF32ColorSpace *cs = new KisRgbF32ColorSpace(profile);
-
-    KisRgbF32ColorSpace::Pixel srcPixel;
-    KisRgbF32ColorSpace::Pixel dstPixel;
-
-    srcPixel.red = UINT8_TO_FLOAT(102);
-    srcPixel.green = UINT8_TO_FLOAT(170);
-    srcPixel.blue = UINT8_TO_FLOAT(238);
-    srcPixel.alpha = F32_OPACITY_OPAQUE;
-
-    dstPixel = srcPixel;
-
-    cs->compositeDivide(reinterpret_cast<TQ_UINT8 *>(&dstPixel), 1, reinterpret_cast<const TQ_UINT8 *>(&srcPixel),
-                1, 0, 0, 1, 1, F32_OPACITY_OPAQUE);
-    /*
-    CHECK(dstPixel.red, (TQ_UINT16)UINT8_TO_UINT16(253));
-    CHECK(dstPixel.green, (TQ_UINT16)UINT8_TO_UINT16(254));
-    CHECK(dstPixel.blue, (TQ_UINT16)UINT8_TO_UINT16(254));
-    CHECK(dstPixel.alpha, KisRgbF32ColorSpace::F32_OPACITY_OPAQUE);
-
-    TQ_UINT16 srcColor = 43690;
-    TQ_UINT16 dstColor = 43690;
-
-    srcColor = TQMIN((dstColor * (65535u + 1u) + (srcColor / 2u)) / (1u + srcColor), 65535u);
-
-    CHECK((int)srcColor, 65534);
-
-    TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, 65535u);
-
-    CHECK((int)newColor, 65534);
-    */
-
-    /*
-    KisRgbF32ColorSpace::Pixel srcPixels[NUM_ROWS * NUM_COLUMNS] = {
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE / 4},
-        {MAX_CHANNEL_VALUE / 4, MAX_CHANNEL_VALUE / 2, MAX_CHANNEL_VALUE / 3, MAX_CHANNEL_VALUE / 2},
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MIN_CHANNEL_VALUE},
-        {MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MAX_CHANNEL_VALUE}
-    };
-
-    KisRgbF32ColorSpace::Pixel dstPixels[NUM_ROWS * NUM_COLUMNS] = {
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE / 4},
-        {MAX_CHANNEL_VALUE / 4, MAX_CHANNEL_VALUE / 2, MAX_CHANNEL_VALUE / 3, MAX_CHANNEL_VALUE / 2},
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MIN_CHANNEL_VALUE},
-        {MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MAX_CHANNEL_VALUE}
-    };
-
-    cs->compositeOver(reinterpret_cast<TQ_UINT8 *>(dstPixels), DST_ROW_STRIDE, reinterpret_cast<const TQ_UINT8 *>(srcPixels),
-                SRC_ROW_STRIDE, tqmask, MASK_ROW_STRIDE, NUM_ROWS, NUM_COLUMNS, opacity);
-    */
-
-    delete cs;
-}
-
diff --git a/krita/colorspaces/rgb_f32/tests/kis_strategy_colorspace_rgb_f32_tester.h b/krita/colorspaces/rgb_f32/tests/kis_strategy_colorspace_rgb_f32_tester.h
deleted file mode 100644
index 1153f1473..000000000
--- a/krita/colorspaces/rgb_f32/tests/kis_strategy_colorspace_rgb_f32_tester.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-
-#ifndef KIS_STRATEGY_COLORSPACE_RGB_F32_TESTER_H
-#define KIS_STRATEGY_COLORSPACE_RGB_F32_TESTER_H
-
-#include <kunittest/tester.h>
-
-#define CHECK_TOLERANCE( x, y, tolerance ) \
-if ((x) <= (y) + (tolerance) && (x) >= (y) - (tolerance)) \
-{ \
-    success(TQString(__FILE__) + "[" + TQString::number(__LINE__) + "]: passed " + #x); \
-} \
-else \
-{ \
-    failure(TQString(__FILE__) + "[" + TQString::number(__LINE__) + TQString("]: failed ") + #x + "\n Expected " + #y + ", Actual result " + TQString::number(x)); \
-} \
-
-class KisRgbF32ColorSpaceTester : public KUnitTest::Tester
-{
-public:
-        void allTests();
-    void testBasics();
-    void testMixColors();
-    void testToTQImage();
-    void testCompositeOps();
-};
-
-#endif
-
diff --git a/krita/colorspaces/rgb_u16/Makefile.am b/krita/colorspaces/rgb_u16/Makefile.am
deleted file mode 100644
index f087b8f17..000000000
--- a/krita/colorspaces/rgb_u16/Makefile.am
+++ /dev/null
@@ -1,32 +0,0 @@
-# location for the rc file
-kde_services_DATA = krita_rgb_u16_plugin.desktop
-
-INCLUDES  =  -I$(srcdir)/../../sdk \
-	-I$(srcdir)/../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../kritacolor \
-	$(KOFFICE_INCLUDES) \
-	$(all_includes)
-
-lib_LTLIBRARIES = libkrita_rgb_u16.la
-libkrita_rgb_u16_la_SOURCES = kis_rgb_u16_colorspace.cc
-libkrita_rgb_u16_la_LDFLAGS = $(all_libraries)
-libkrita_rgb_u16_la_LIBADD = ../../kritacolor/libkritacolor.la
-
-# Install this plugin in the KDE modules directory
-kde_module_LTLIBRARIES = krita_rgb_u16_plugin.la
-
-# Srcs for the plugin
-krita_rgb_u16_plugin_la_SOURCES = rgb_u16_plugin.cc
-noinst_HEADERS = rgb_u16_plugin.h kis_rgb_u16_colorspace.h
-
-krita_rgb_u16_plugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -llcms
-krita_rgb_u16_plugin_la_LIBADD = libkrita_rgb_u16.la ../../kritacolor/libkritacolor.la
-
-krita_rgb_u16_plugin_la_METASOURCES = AUTO
-
-if include_kunittest_tests
-TESTSDIR = tests
-endif
-
-SUBDIRS = . $(TESTSDIR)
-
diff --git a/krita/colorspaces/rgb_u16/kis_rgb_u16_colorspace.cc b/krita/colorspaces/rgb_u16/kis_rgb_u16_colorspace.cc
deleted file mode 100644
index c61433d2e..000000000
--- a/krita/colorspaces/rgb_u16/kis_rgb_u16_colorspace.cc
+++ /dev/null
@@ -1,869 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien  <freak@codepimps.org>
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <config.h>
-#include <limits.h>
-#include <stdlib.h>
-#include LCMS_HEADER
-
-#include <tqimage.h>
-#include <tqcolor.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-#include <kglobal.h>
-
-#include "kis_rgb_u16_colorspace.h"
-#include "kis_u16_base_colorspace.h"
-#include "kis_color_conversions.h"
-#include "kis_integer_maths.h"
-
-namespace {
-    const TQ_INT32 MAX_CHANNEL_RGB = 3;
-    const TQ_INT32 MAX_CHANNEL_RGBA = 4;
-}
-
-// XXX: already defined is superclass?
-//const TQ_UINT16 KisRgbU16ColorSpace::U16_OPACITY_OPAQUE;
-//const TQ_UINT16 KisRgbU16ColorSpace::U16_OPACITY_TRANSPARENT;
-
-KisRgbU16ColorSpace::KisRgbU16ColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) :
-    KisU16BaseColorSpace(KisID("RGBA16", i18n("RGB (16-bit integer/channel)")), TYPE_BGRA_16, icSigRgbData, tqparent, p)
-{
-    m_channels.push_back(new KisChannelInfo(i18n("Red"), i18n("R"), PIXEL_RED * sizeof(TQ_UINT16), KisChannelInfo::COLOR, KisChannelInfo::UINT16, sizeof(TQ_UINT16), TQColor(255,0,0)));
-    m_channels.push_back(new KisChannelInfo(i18n("Green"), i18n("G"), PIXEL_GREEN * sizeof(TQ_UINT16), KisChannelInfo::COLOR, KisChannelInfo::UINT16, sizeof(TQ_UINT16), TQColor(0,255,0)));
-    m_channels.push_back(new KisChannelInfo(i18n("Blue"), i18n("B"), PIXEL_BLUE * sizeof(TQ_UINT16), KisChannelInfo::COLOR, KisChannelInfo::UINT16, sizeof(TQ_UINT16), TQColor(0,0,255)));
-    m_channels.push_back(new KisChannelInfo(i18n("Alpha"), i18n("A"), PIXEL_ALPHA * sizeof(TQ_UINT16), KisChannelInfo::ALPHA, KisChannelInfo::UINT16, sizeof(TQ_UINT16)));
-
-    m_alphaPos = PIXEL_ALPHA * sizeof(TQ_UINT16);
-
-    init();
-}
-
-KisRgbU16ColorSpace::~KisRgbU16ColorSpace()
-{
-}
-
-void KisRgbU16ColorSpace::setPixel(TQ_UINT8 *dst, TQ_UINT16 red, TQ_UINT16 green, TQ_UINT16 blue, TQ_UINT16 alpha) const
-{
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->red = red;
-    dstPixel->green = green;
-    dstPixel->blue = blue;
-    dstPixel->alpha = alpha;
-}
-
-void KisRgbU16ColorSpace::getPixel(const TQ_UINT8 *src, TQ_UINT16 *red, TQ_UINT16 *green, TQ_UINT16 *blue, TQ_UINT16 *alpha) const
-{
-    const Pixel *srcPixel = reinterpret_cast<const Pixel *>(src);
-
-    *red = srcPixel->red;
-    *green = srcPixel->green;
-    *blue = srcPixel->blue;
-    *alpha = srcPixel->alpha;
-}
-
-void KisRgbU16ColorSpace::mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const
-{
-    TQ_UINT32 totalRed = 0, totalGreen = 0, totalBlue = 0, newAlpha = 0;
-
-    while (nColors--)
-    {
-        const Pixel *pixel = reinterpret_cast<const Pixel *>(*colors);
-
-        TQ_UINT32 alpha = pixel->alpha;
-        TQ_UINT32 alphaTimesWeight = UINT16_MULT(alpha, UINT8_TO_UINT16(*weights));
-
-        totalRed += UINT16_MULT(pixel->red, alphaTimesWeight);
-        totalGreen += UINT16_MULT(pixel->green, alphaTimesWeight);
-        totalBlue += UINT16_MULT(pixel->blue, alphaTimesWeight);
-        newAlpha += alphaTimesWeight;
-
-        weights++;
-        colors++;
-    }
-
-    Q_ASSERT(newAlpha <= U16_OPACITY_OPAQUE);
-
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->alpha = newAlpha;
-
-    if (newAlpha > 0) {
-        totalRed = UINT16_DIVIDE(totalRed, newAlpha);
-        totalGreen = UINT16_DIVIDE(totalGreen, newAlpha);
-        totalBlue = UINT16_DIVIDE(totalBlue, newAlpha);
-    }
-
-    dstPixel->red = totalRed;
-    dstPixel->green = totalGreen;
-    dstPixel->blue = totalBlue;
-}
-
-
-void KisRgbU16ColorSpace::convolveColors(TQ_UINT8** colors, TQ_INT32* kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst,
-                                         TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const
-{
-    TQ_INT32 totalRed = 0, totalGreen = 0, totalBlue = 0, totalAlpha = 0;
-
-    while (nColors--)
-    {
-        const Pixel * pixel = reinterpret_cast<const Pixel *>( *colors );
-
-        TQ_INT32 weight = *kernelValues;
-
-        if (weight != 0) {
-            totalRed += pixel->red * weight;
-            totalGreen += pixel->green * weight;
-            totalBlue += pixel->blue * weight;
-            totalAlpha +=pixel->alpha * weight;
-        }
-        colors++;
-        kernelValues++;
-    }
-
-    Pixel * p = reinterpret_cast< Pixel *>( dst );
-
-    if (channelFlags & KisChannelInfo::FLAG_COLOR) {
-        p->red = CLAMP( ( totalRed / factor) + offset, 0, TQ_UINT16_MAX);
-        p->green = CLAMP( ( totalGreen / factor) + offset, 0, TQ_UINT16_MAX);
-        p->blue = CLAMP( ( totalBlue / factor) + offset, 0, TQ_UINT16_MAX);
-    }
-    if (channelFlags & KisChannelInfo::FLAG_ALPHA) {
-        p->alpha = CLAMP((totalAlpha/ factor) + offset, 0, TQ_UINT16_MAX);
-    }
-}
-
-
-void KisRgbU16ColorSpace::invertColor(TQ_UINT8 * src, TQ_INT32 nPixels)
-{
-    TQ_UINT32 psize = pixelSize();
-
-    while (nPixels--)
-    {
-        Pixel * p = reinterpret_cast< Pixel *>( src );
-        p->red = TQ_UINT16_MAX - p->red;
-        p->green = TQ_UINT16_MAX - p->green;
-        p->blue = TQ_UINT16_MAX - p->blue;
-        src += psize;
-    }
-}
-
-TQ_UINT8 KisRgbU16ColorSpace::intensity8(const TQ_UINT8 * src) const
-{
-    const Pixel * p = reinterpret_cast<const Pixel *>( src );
-    
-    return UINT16_TO_UINT8(static_cast<TQ_UINT16>((p->red * 0.30 + p->green * 0.59 + p->blue * 0.11) + 0.5));
-}
-
-
-TQValueVector<KisChannelInfo *> KisRgbU16ColorSpace::channels() const
-{
-    return m_channels;
-}
-
-TQ_UINT32 KisRgbU16ColorSpace::nChannels() const
-{
-    return MAX_CHANNEL_RGBA;
-}
-
-TQ_UINT32 KisRgbU16ColorSpace::nColorChannels() const
-{
-    return MAX_CHANNEL_RGB;
-}
-
-TQ_UINT32 KisRgbU16ColorSpace::pixelSize() const
-{
-    return MAX_CHANNEL_RGBA * sizeof(TQ_UINT16);
-}
-
-
-void KisRgbU16ColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT16 *src = reinterpret_cast<const TQ_UINT16 *>(srcRowStart);
-        TQ_UINT16 *dst = reinterpret_cast<TQ_UINT16 *>(dstRowStart);
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-        TQ_INT32 columns = numColumns;
-
-        while (columns > 0) {
-
-            TQ_UINT16 srcAlpha = src[PIXEL_ALPHA];
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = UINT16_MULT(srcAlpha, UINT8_TO_UINT16(U8_tqmask));
-                }
-                tqmask++;
-            }
-
-            if (srcAlpha != U16_OPACITY_TRANSPARENT) {
-
-                if (opacity != U16_OPACITY_OPAQUE) {
-                    srcAlpha = UINT16_MULT(srcAlpha, opacity);
-                }
-
-                if (srcAlpha == U16_OPACITY_OPAQUE) {
-                    memcpy(dst, src, MAX_CHANNEL_RGBA * sizeof(TQ_UINT16));
-                } else {
-                    TQ_UINT16 dstAlpha = dst[PIXEL_ALPHA];
-
-                    TQ_UINT16 srcBlend;
-
-                    if (dstAlpha == U16_OPACITY_OPAQUE) {
-                        srcBlend = srcAlpha;
-                    } else {
-                        TQ_UINT16 newAlpha = dstAlpha + UINT16_MULT(U16_OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                        dst[PIXEL_ALPHA] = newAlpha;
-
-                        if (newAlpha != 0) {
-                            srcBlend = UINT16_DIVIDE(srcAlpha, newAlpha);
-                        } else {
-                            srcBlend = srcAlpha;
-                        }
-                    }
-
-                    if (srcBlend == U16_OPACITY_OPAQUE) {
-                        memcpy(dst, src, MAX_CHANNEL_RGB * sizeof(TQ_UINT16));
-                    } else {
-                        dst[PIXEL_RED] = UINT16_BLEND(src[PIXEL_RED], dst[PIXEL_RED], srcBlend);
-                        dst[PIXEL_GREEN] = UINT16_BLEND(src[PIXEL_GREEN], dst[PIXEL_GREEN], srcBlend);
-                        dst[PIXEL_BLUE] = UINT16_BLEND(src[PIXEL_BLUE], dst[PIXEL_BLUE], srcBlend);
-                    }
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart) {
-            tqmaskRowStart += tqmaskRowStride;
-        }
-    }
-}
-
-#define COMMON_COMPOSITE_OP_PROLOG() \
-    while (rows > 0) { \
-    \
-        const TQ_UINT16 *src = reinterpret_cast<const TQ_UINT16 *>(srcRowStart); \
-        TQ_UINT16 *dst = reinterpret_cast<TQ_UINT16 *>(dstRowStart); \
-        TQ_INT32 columns = numColumns; \
-        const TQ_UINT8 *tqmask = tqmaskRowStart; \
-    \
-        while (columns > 0) { \
-    \
-            TQ_UINT16 srcAlpha = src[PIXEL_ALPHA]; \
-            TQ_UINT16 dstAlpha = dst[PIXEL_ALPHA]; \
-    \
-            srcAlpha = TQMIN(srcAlpha, dstAlpha); \
-    \
-            if (tqmask != 0) { \
-                TQ_UINT8 U8_tqmask = *tqmask; \
-    \
-                if (U8_tqmask != OPACITY_OPAQUE) { \
-                    srcAlpha = UINT16_MULT(srcAlpha, UINT8_TO_UINT16(U8_tqmask)); \
-                } \
-                tqmask++; \
-            } \
-    \
-            if (srcAlpha != U16_OPACITY_TRANSPARENT) { \
-    \
-                if (opacity != U16_OPACITY_OPAQUE) { \
-                    srcAlpha = UINT16_MULT(srcAlpha, opacity); \
-                } \
-    \
-                TQ_UINT16 srcBlend; \
-    \
-                if (dstAlpha == U16_OPACITY_OPAQUE) { \
-                    srcBlend = srcAlpha; \
-                } else { \
-                    TQ_UINT16 newAlpha = dstAlpha + UINT16_MULT(U16_OPACITY_OPAQUE - dstAlpha, srcAlpha); \
-                    dst[PIXEL_ALPHA] = newAlpha; \
-    \
-                    if (newAlpha != 0) { \
-                        srcBlend = UINT16_DIVIDE(srcAlpha, newAlpha); \
-                    } else { \
-                        srcBlend = srcAlpha; \
-                    } \
-                }
-
-#define COMMON_COMPOSITE_OP_EPILOG() \
-            } \
-    \
-            columns--; \
-            src += MAX_CHANNEL_RGBA; \
-            dst += MAX_CHANNEL_RGBA; \
-        } \
-    \
-        rows--; \
-        srcRowStart += srcRowStride; \
-        dstRowStart += dstRowStride; \
-        if(tqmaskRowStart) { \
-            tqmaskRowStart += tqmaskRowStride; \
-        } \
-    }
-
-void KisRgbU16ColorSpace::compositeMultiply(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = UINT16_MULT(srcColor, dstColor);
-
-            dst[channel] = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbU16ColorSpace::compositeDivide(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = TQMIN((dstColor * (UINT16_MAX + 1u) + (srcColor / 2u)) / (1u + srcColor), UINT16_MAX);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbU16ColorSpace::compositeScreen(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = UINT16_MAX - UINT16_MULT(UINT16_MAX - dstColor, UINT16_MAX - srcColor);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbU16ColorSpace::compositeOverlay(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = UINT16_MULT(dstColor, dstColor + 2u * UINT16_MULT(srcColor, UINT16_MAX - dstColor));
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbU16ColorSpace::compositeDodge(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = TQMIN((dstColor * (UINT16_MAX + 1u)) / (UINT16_MAX + 1u - srcColor), UINT16_MAX);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbU16ColorSpace::compositeBurn(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = kMin(((UINT16_MAX - dstColor) * (UINT16_MAX + 1u)) / (srcColor + 1u), UINT16_MAX);
-            srcColor = kClamp(UINT16_MAX - srcColor, 0u, UINT16_MAX);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbU16ColorSpace::compositeDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = TQMIN(srcColor, dstColor);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbU16ColorSpace::compositeLighten(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-            TQ_UINT16 srcColor = src[channel];
-            TQ_UINT16 dstColor = dst[channel];
-
-            srcColor = TQMAX(srcColor, dstColor);
-
-            TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend);
-
-            dst[channel] = newColor;
-        }
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbU16ColorSpace::compositeHue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        float FSrcRed = static_cast<float>(src[PIXEL_RED]) / UINT16_MAX;
-        float FSrcGreen = static_cast<float>(src[PIXEL_GREEN]) / UINT16_MAX;
-        float FSrcBlue = static_cast<float>(src[PIXEL_BLUE]) / UINT16_MAX;
-
-        TQ_UINT16 dstRed = dst[PIXEL_RED];
-        TQ_UINT16 dstGreen = dst[PIXEL_GREEN];
-        TQ_UINT16 dstBlue = dst[PIXEL_BLUE];
-
-        float FDstRed = static_cast<float>(dstRed) / UINT16_MAX;
-        float FDstGreen = static_cast<float>(dstGreen) / UINT16_MAX;
-        float FDstBlue = static_cast<float>(dstBlue) / UINT16_MAX;
-
-        float srcHue;
-        float srcSaturation;
-        float srcValue;
-
-        float dstHue;
-        float dstSaturation;
-        float dstValue;
-
-        RGBToHSV(FSrcRed, FSrcGreen, FSrcBlue, &srcHue, &srcSaturation, &srcValue);
-        RGBToHSV(FDstRed, FDstGreen, FDstBlue, &dstHue, &dstSaturation, &dstValue);
-
-        HSVToRGB(srcHue, dstSaturation, dstValue, &FSrcRed, &FSrcGreen, &FSrcBlue);
-
-        TQ_UINT16 srcRed = static_cast<TQ_UINT16>(FSrcRed * UINT16_MAX + 0.5);
-        TQ_UINT16 srcGreen = static_cast<TQ_UINT16>(FSrcGreen * UINT16_MAX + 0.5);
-        TQ_UINT16 srcBlue = static_cast<TQ_UINT16>(FSrcBlue * UINT16_MAX + 0.5);
-
-        dst[PIXEL_RED] = UINT16_BLEND(srcRed, dstRed, srcBlend);
-        dst[PIXEL_GREEN] = UINT16_BLEND(srcGreen, dstGreen, srcBlend);
-        dst[PIXEL_BLUE] = UINT16_BLEND(srcBlue, dstBlue, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbU16ColorSpace::compositeSaturation(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        float FSrcRed = static_cast<float>(src[PIXEL_RED]) / UINT16_MAX;
-        float FSrcGreen = static_cast<float>(src[PIXEL_GREEN]) / UINT16_MAX;
-        float FSrcBlue = static_cast<float>(src[PIXEL_BLUE]) / UINT16_MAX;
-
-        TQ_UINT16 dstRed = dst[PIXEL_RED];
-        TQ_UINT16 dstGreen = dst[PIXEL_GREEN];
-        TQ_UINT16 dstBlue = dst[PIXEL_BLUE];
-
-        float FDstRed = static_cast<float>(dstRed) / UINT16_MAX;
-        float FDstGreen = static_cast<float>(dstGreen) / UINT16_MAX;
-        float FDstBlue = static_cast<float>(dstBlue) / UINT16_MAX;
-
-        float srcHue;
-        float srcSaturation;
-        float srcValue;
-
-        float dstHue;
-        float dstSaturation;
-        float dstValue;
-
-        RGBToHSV(FSrcRed, FSrcGreen, FSrcBlue, &srcHue, &srcSaturation, &srcValue);
-        RGBToHSV(FDstRed, FDstGreen, FDstBlue, &dstHue, &dstSaturation, &dstValue);
-
-        HSVToRGB(dstHue, srcSaturation, dstValue, &FSrcRed, &FSrcGreen, &FSrcBlue);
-
-        TQ_UINT16 srcRed = static_cast<TQ_UINT16>(FSrcRed * UINT16_MAX + 0.5);
-        TQ_UINT16 srcGreen = static_cast<TQ_UINT16>(FSrcGreen * UINT16_MAX + 0.5);
-        TQ_UINT16 srcBlue = static_cast<TQ_UINT16>(FSrcBlue * UINT16_MAX + 0.5);
-
-        dst[PIXEL_RED] = UINT16_BLEND(srcRed, dstRed, srcBlend);
-        dst[PIXEL_GREEN] = UINT16_BLEND(srcGreen, dstGreen, srcBlend);
-        dst[PIXEL_BLUE] = UINT16_BLEND(srcBlue, dstBlue, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbU16ColorSpace::compositeValue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        float FSrcRed = static_cast<float>(src[PIXEL_RED]) / UINT16_MAX;
-        float FSrcGreen = static_cast<float>(src[PIXEL_GREEN]) / UINT16_MAX;
-        float FSrcBlue = static_cast<float>(src[PIXEL_BLUE]) / UINT16_MAX;
-
-        TQ_UINT16 dstRed = dst[PIXEL_RED];
-        TQ_UINT16 dstGreen = dst[PIXEL_GREEN];
-        TQ_UINT16 dstBlue = dst[PIXEL_BLUE];
-
-        float FDstRed = static_cast<float>(dstRed) / UINT16_MAX;
-        float FDstGreen = static_cast<float>(dstGreen) / UINT16_MAX;
-        float FDstBlue = static_cast<float>(dstBlue) / UINT16_MAX;
-
-        float srcHue;
-        float srcSaturation;
-        float srcValue;
-
-        float dstHue;
-        float dstSaturation;
-        float dstValue;
-
-        RGBToHSV(FSrcRed, FSrcGreen, FSrcBlue, &srcHue, &srcSaturation, &srcValue);
-        RGBToHSV(FDstRed, FDstGreen, FDstBlue, &dstHue, &dstSaturation, &dstValue);
-
-        HSVToRGB(dstHue, dstSaturation, srcValue, &FSrcRed, &FSrcGreen, &FSrcBlue);
-
-        TQ_UINT16 srcRed = static_cast<TQ_UINT16>(FSrcRed * UINT16_MAX + 0.5);
-        TQ_UINT16 srcGreen = static_cast<TQ_UINT16>(FSrcGreen * UINT16_MAX + 0.5);
-        TQ_UINT16 srcBlue = static_cast<TQ_UINT16>(FSrcBlue * UINT16_MAX + 0.5);
-
-        dst[PIXEL_RED] = UINT16_BLEND(srcRed, dstRed, srcBlend);
-        dst[PIXEL_GREEN] = UINT16_BLEND(srcGreen, dstGreen, srcBlend);
-        dst[PIXEL_BLUE] = UINT16_BLEND(srcBlue, dstBlue, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbU16ColorSpace::compositeColor(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity)
-{
-    COMMON_COMPOSITE_OP_PROLOG();
-
-    {
-        float FSrcRed = static_cast<float>(src[PIXEL_RED]) / UINT16_MAX;
-        float FSrcGreen = static_cast<float>(src[PIXEL_GREEN]) / UINT16_MAX;
-        float FSrcBlue = static_cast<float>(src[PIXEL_BLUE]) / UINT16_MAX;
-
-        TQ_UINT16 dstRed = dst[PIXEL_RED];
-        TQ_UINT16 dstGreen = dst[PIXEL_GREEN];
-        TQ_UINT16 dstBlue = dst[PIXEL_BLUE];
-
-        float FDstRed = static_cast<float>(dstRed) / UINT16_MAX;
-        float FDstGreen = static_cast<float>(dstGreen) / UINT16_MAX;
-        float FDstBlue = static_cast<float>(dstBlue) / UINT16_MAX;
-
-        float srcHue;
-        float srcSaturation;
-        float srcLightness;
-
-        float dstHue;
-        float dstSaturation;
-        float dstLightness;
-
-        RGBToHSL(FSrcRed, FSrcGreen, FSrcBlue, &srcHue, &srcSaturation, &srcLightness);
-        RGBToHSL(FDstRed, FDstGreen, FDstBlue, &dstHue, &dstSaturation, &dstLightness);
-
-        HSLToRGB(srcHue, srcSaturation, dstLightness, &FSrcRed, &FSrcGreen, &FSrcBlue);
-
-        TQ_UINT16 srcRed = static_cast<TQ_UINT16>(FSrcRed * UINT16_MAX + 0.5);
-        TQ_UINT16 srcGreen = static_cast<TQ_UINT16>(FSrcGreen * UINT16_MAX + 0.5);
-        TQ_UINT16 srcBlue = static_cast<TQ_UINT16>(FSrcBlue * UINT16_MAX + 0.5);
-
-        dst[PIXEL_RED] = UINT16_BLEND(srcRed, dstRed, srcBlend);
-        dst[PIXEL_GREEN] = UINT16_BLEND(srcGreen, dstGreen, srcBlend);
-        dst[PIXEL_BLUE] = UINT16_BLEND(srcBlue, dstBlue, srcBlend);
-    }
-
-    COMMON_COMPOSITE_OP_EPILOG();
-}
-
-void KisRgbU16ColorSpace::compositeErase(TQ_UINT8 *dst,
-            TQ_INT32 dstRowSize,
-            const TQ_UINT8 *src,
-            TQ_INT32 srcRowSize,
-            const TQ_UINT8 *srcAlphaMask,
-            TQ_INT32 tqmaskRowStride,
-            TQ_INT32 rows,
-            TQ_INT32 cols,
-            TQ_UINT16 /*opacity*/)
-{
-    while (rows-- > 0)
-    {
-        const Pixel *s = reinterpret_cast<const Pixel *>(src);
-        Pixel *d = reinterpret_cast<Pixel *>(dst);
-        const TQ_UINT8 *tqmask = srcAlphaMask;
-
-        for (TQ_INT32 i = cols; i > 0; i--, s++, d++)
-        {
-            TQ_UINT16 srcAlpha = s->alpha;
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = UINT16_BLEND(srcAlpha, U16_OPACITY_OPAQUE, UINT8_TO_UINT16(U8_tqmask));
-                }
-                tqmask++;
-            }
-            d->alpha = UINT16_MULT(srcAlpha, d->alpha);
-        }
-
-        dst += dstRowSize;
-        src += srcRowSize;
-        if(srcAlphaMask) {
-            srcAlphaMask += tqmaskRowStride;
-        }
-    }
-}
-
-void KisRgbU16ColorSpace::bitBlt(TQ_UINT8 *dst,
-                      TQ_INT32 dstRowStride,
-                      const TQ_UINT8 *src,
-                      TQ_INT32 srcRowStride,
-                      const TQ_UINT8 *tqmask,
-                      TQ_INT32 tqmaskRowStride,
-                      TQ_UINT8 U8_opacity,
-                      TQ_INT32 rows,
-                      TQ_INT32 cols,
-                      const KisCompositeOp& op)
-{
-    TQ_UINT16 opacity = UINT8_TO_UINT16(U8_opacity);
-
-    switch (op.op()) {
-    case COMPOSITE_UNDEF:
-        // Undefined == no composition
-        break;
-    case COMPOSITE_OVER:
-        compositeOver(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_IN:
-        //compositeIn(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-    case COMPOSITE_OUT:
-        //compositeOut(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ATOP:
-        //compositeAtop(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_XOR:
-        //compositeXor(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_PLUS:
-        //compositePlus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_MINUS:
-        //compositeMinus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ADD:
-        //compositeAdd(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SUBTRACT:
-        //compositeSubtract(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DIFF:
-        //compositeDiff(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_MULT:
-        compositeMultiply(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DIVIDE:
-        compositeDivide(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_BUMPMAP:
-        //compositeBumpmap(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY:
-        compositeCopy(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, U8_opacity);
-        break;
-    case COMPOSITE_COPY_RED:
-        //compositeCopyRed(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_GREEN:
-        //compositeCopyGreen(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_BLUE:
-        //compositeCopyBlue(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_OPACITY:
-        //compositeCopyOpacity(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_CLEAR:
-        //compositeClear(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DISSOLVE:
-        //compositeDissolve(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DISPLACE:
-        //compositeDisplace(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-#if 0
-    case COMPOSITE_MODULATE:
-        compositeModulate(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_THRESHOLD:
-        compositeThreshold(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-#endif
-    case COMPOSITE_NO:
-        // No composition.
-        break;
-    case COMPOSITE_DARKEN:
-        compositeDarken(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_LIGHTEN:
-        compositeLighten(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_HUE:
-        compositeHue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SATURATION:
-        compositeSaturation(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_VALUE:
-        compositeValue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COLOR:
-        compositeColor(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COLORIZE:
-        //compositeColorize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_LUMINIZE:
-        //compositeLuminize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SCREEN:
-        compositeScreen(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_OVERLAY:
-        compositeOverlay(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ERASE:
-        compositeErase(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DODGE:
-        compositeDodge(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_BURN:
-        compositeBurn(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ALPHA_DARKEN:
-        abstractCompositeAlphaDarken<TQ_UINT16, U16Mult, Uint8ToU16, U16OpacityTest,
-                    PIXEL_ALPHA, MAX_CHANNEL_RGB, MAX_CHANNEL_RGBA>(
-                    dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride,
-                    rows, cols, opacity, U16Mult(), Uint8ToU16(), U16OpacityTest());
-                    break;
-    default:
-        break;
-    }
-}
-
-KisCompositeOpList KisRgbU16ColorSpace::userVisiblecompositeOps() const
-{
-    KisCompositeOpList list;
-
-    list.append(KisCompositeOp(COMPOSITE_OVER));
-    list.append(KisCompositeOp(COMPOSITE_ALPHA_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_MULT));
-    list.append(KisCompositeOp(COMPOSITE_BURN));
-    list.append(KisCompositeOp(COMPOSITE_DODGE));
-    list.append(KisCompositeOp(COMPOSITE_DIVIDE));
-    list.append(KisCompositeOp(COMPOSITE_SCREEN));
-    list.append(KisCompositeOp(COMPOSITE_OVERLAY));
-    list.append(KisCompositeOp(COMPOSITE_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_LIGHTEN));
-    list.append(KisCompositeOp(COMPOSITE_HUE));
-    list.append(KisCompositeOp(COMPOSITE_SATURATION));
-    list.append(KisCompositeOp(COMPOSITE_VALUE));
-    list.append(KisCompositeOp(COMPOSITE_COLOR));
-
-    return list;
-}
diff --git a/krita/colorspaces/rgb_u16/kis_rgb_u16_colorspace.h b/krita/colorspaces/rgb_u16/kis_rgb_u16_colorspace.h
deleted file mode 100644
index abb9b42b2..000000000
--- a/krita/colorspaces/rgb_u16/kis_rgb_u16_colorspace.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien  <freak@codepimps.org>
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_STRATEGY_COLORSPACE_RGB_U16_H_
-#define KIS_STRATEGY_COLORSPACE_RGB_U16_H_
-
-#include <klocale.h>
-
-#include <koffice_export.h>
-
-#include "kis_global.h"
-#include "kis_u16_base_colorspace.h"
-#include "kis_integer_maths.h"
-
-
-class KRITATOOL_EXPORT KisRgbU16ColorSpace : public KisU16BaseColorSpace {
-public:
-
-    struct Pixel {
-        TQ_UINT16 blue;
-        TQ_UINT16 green;
-        TQ_UINT16 red;
-        TQ_UINT16 alpha;
-    };
-public:
-    KisRgbU16ColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p);
-    virtual ~KisRgbU16ColorSpace();
-
-    virtual bool willDegrade(ColorSpaceIndependence independence)
-        {
-            if (independence == TO_RGBA8)
-                return true;
-            else
-                return false;
-        };
-
-
-
-public:
-    void setPixel(TQ_UINT8 *pixel, TQ_UINT16 red, TQ_UINT16 green, TQ_UINT16 blue, TQ_UINT16 alpha) const;
-    void getPixel(const TQ_UINT8 *pixel, TQ_UINT16 *red, TQ_UINT16 *green, TQ_UINT16 *blue, TQ_UINT16 *alpha) const;
-
-    virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const;
-    virtual void convolveColors(TQ_UINT8** colors, TQ_INT32* kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const;
-    virtual void invertColor(TQ_UINT8 * src, TQ_INT32 nPixels);
-    virtual TQ_UINT8 intensity8(const TQ_UINT8 * src) const;
-
-    virtual TQValueVector<KisChannelInfo *> channels() const;
-    virtual TQ_UINT32 nChannels() const;
-    virtual TQ_UINT32 nColorChannels() const;
-    virtual TQ_UINT32 pixelSize() const;
-
-    virtual KisCompositeOpList userVisiblecompositeOps() const;
-    
-protected:
-
-    virtual void bitBlt(TQ_UINT8 *dst,
-                TQ_INT32 dstRowStride,
-                const TQ_UINT8 *src,
-                TQ_INT32 srcRowStride,
-                const TQ_UINT8 *srcAlphaMask,
-                TQ_INT32 tqmaskRowStride,
-                TQ_UINT8 opacity,
-                TQ_INT32 rows,
-                TQ_INT32 cols,
-                const KisCompositeOp& op);
-
-    void compositeOver(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeMultiply(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeDivide(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeScreen(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeOverlay(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeDodge(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeBurn(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeDarken(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeLighten(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeHue(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeSaturation(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeValue(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeColor(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-    void compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity);
-
-private:
-    friend class KisRgbU16ColorSpaceTester;
-
-    static const TQ_UINT8 PIXEL_BLUE = 0;
-    static const TQ_UINT8 PIXEL_GREEN = 1;
-    static const TQ_UINT8 PIXEL_RED = 2;
-    static const TQ_UINT8 PIXEL_ALPHA = 3;
-};
-
-class KisRgbU16ColorSpaceFactory : public KisColorSpaceFactory
-{
-public:
-    /**
-     * Krita definition for use in .kra files and internally: unchanging name +
-     * i18n'able description.
-     */
-    virtual KisID id() const { return KisID("RGBA16", i18n("RGB (16-bit integer/channel)")); };
-
-    /**
-     * lcms colorspace type definition.
-     */
-    virtual TQ_UINT32 colorSpaceType() { return TYPE_BGRA_16; };
-
-    virtual icColorSpaceSignature colorSpaceSignature() { return icSigRgbData; };
-
-    virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) { return new KisRgbU16ColorSpace(tqparent, p); };
-
-    virtual TQString defaultProfile() { return "sRGB built-in - (lcms internal)"; };
-};
-
-#endif // KIS_STRATEGY_COLORSPACE_RGB_U16_H_
diff --git a/krita/colorspaces/rgb_u16/krita_rgb_u16_plugin.desktop b/krita/colorspaces/rgb_u16/krita_rgb_u16_plugin.desktop
deleted file mode 100644
index 4cf767663..000000000
--- a/krita/colorspaces/rgb_u16/krita_rgb_u16_plugin.desktop
+++ /dev/null
@@ -1,80 +0,0 @@
-[Desktop Entry]
-Name=RGB Color Model (16-bit integer)
-Name[bg]=Цветови модел RGB (16 бита)
-Name[ca]=Model de color RGB (enter de 16 bits)
-Name[cy]=Model Lliw RGB (cyfanrif 16-did)
-Name[da]=RGB-farvemodel (16-bit heltal)
-Name[de]=RGB-Farbmodell (16-bit Ganzzahl)
-Name[el]=Χρωματικό μοντέλο RGB (16 bit ακέραιοι)
-Name[en_GB]=RGB Colour Model (16-bit integer)
-Name[eo]=RGB-kolormodelo (16-bita entjero)
-Name[es]=Modelo de color RGB (entero de 16 bits)
-Name[et]=RGB värvimudel (16-bitine täisarv)
-Name[fa]=مدل رنگ RGB )عدد صحیح ۱۶ بیتی(
-Name[fr]=Modèle de couleurs RVB (entiers 16 bits)
-Name[fy]=RGB-kleurmodel (16-bit integer)
-Name[gl]=Modelo de Cores RGB (inteiros de 16-bit)
-Name[he]=מודל צבעים RGB (16 סיביות)
-Name[hu]=RGB színmodell (16 bites egész)
-Name[is]=RGB litategund (16-bita heiltala)
-Name[it]=Modello di colore RGB (intero a 16 bit)
-Name[ja]=RGB カラーモデル (16 ビット整数)
-Name[km]=គំរូ​ពណ៌ RGB (ចំនួនគត់ 16 ប៊ីត)
-Name[lt]=RGB spalvų modelis (16-bitų sveikasis)
-Name[nb]=RGB-fargemodell (16-bit heltall)
-Name[nds]=RGB-Klöörmodell (16-Bit Heeltall)
-Name[ne]=RGB रङ मोडेल (१६-बिट इन्टिजर)
-Name[nl]=RGB-kleurmodel (16-bit integer)
-Name[pl]=Przestrzeń barw RGB (16-bitowa liczba całkowita)
-Name[pt]=Modelo de Cor RGB (inteiro de 16-bits)
-Name[pt_BR]=Modelo de Cor RGB (inteiro de 16-bits)
-Name[ru]=RGB (целое 16-бит)
-Name[sk]=Model farieb RGB (16-bitové čísla)
-Name[sl]=Barvni model RGB (16-bitno celo število)
-Name[sr]=RGB модел боја (16-битно целобројно)
-Name[sr@Latn]=RGB model boja (16-bitno celobrojno)
-Name[sv]=RGB-färgmodell (16-bitars heltal)
-Name[uk]=Модель кольору RGB (16-бітне ціле число)
-Name[uz]=RGB rang usuli (16-bit butun)
-Name[uz@cyrillic]=RGB ранг усули (16-бит бутун)
-Name[zh_TW]=RGB 色彩模型 (16-bit 整數)
-Comment=Color model for 16-bit integer per channel RGB images
-Comment[bg]=Цветови модел за 16 битови изображения RGB
-Comment[ca]=Model de color enter de 16 bits per canal d'imatges RGB
-Comment[cy]=Model lliw ar gyfer delweddau RGB â chyfanrif 16-did/sianel
-Comment[da]=Farvemodel for 16-bit heltal pr kanal RGB-billeder
-Comment[de]=Farbmodell für 16-bit Ganzzahl pro Kanal RGB-Bilder
-Comment[el]=Χρωματικό μοντέλο για 16-bit ακέραιους ανά κανάλι RGB εικόνες
-Comment[en_GB]=Colour model for 16-bit integer per channel RGB images
-Comment[es]=Modelo de color de entero de 16 bits por canal para imágenes RGB
-Comment[et]=16-bitiste täisarvuliste kanalitega RGB-piltide värvimudel
-Comment[fa]=مدل رنگ برای عدد صحیح ۱۶ بیتی برای هر تصویر RGB مجرا
-Comment[fr]=Modèle de couleurs pour des images RVB en 16 bits/plage
-Comment[fy]=Kleurmodel foar RGB-ôfbyldings mei16-bit/kanaal
-Comment[gl]=Modelo de cores para imaxes RGB de inteiro de 16-bit por canal
-Comment[he]=מודל צבעים עבור תמונות RGB של 16 סיביות/ערוצים
-Comment[hu]=Színmodell 16 bites egész/csatorna RGB képekhez
-Comment[is]=Litategund fyrir 16-bita heiltölu á rás RGB myndir
-Comment[it]=Modello di colore per immagini RGB in interi a canale di 16 bit
-Comment[ja]=16 ビット整数/チャンネル RGB 画像のためのカラーモデル
-Comment[km]=គំរូ​ពណ៌​សម្រាប់​រូបភាព RGB ចំនួនគត់ 16 ប៊ីត​ក្នុង​មួយ​ឆានែល
-Comment[nb]=Fargemodell for RGB-bilde med 16 bit heltall per kanal
-Comment[nds]=Klöörmodell för RGB-Biller mit 16-Bit Heeltall per Kanaal
-Comment[ne]=प्रति च्यानल RGB छविहरूको १६-बिट इन्टिजरका लागि रङ मोडेल
-Comment[nl]=Kleurmodel voor RGB-afbeeldingen met 16-bit/kanaal
-Comment[pl]=Przestrzeń barw dla obrazków RGB o 16-bitowych liczbach całkowitych na kanał
-Comment[pt]=Modelo de cor para imagens RGB com 16 bits por canal
-Comment[pt_BR]=Modelo de cor para imagens RGB com 16 bits por canal
-Comment[ru]=Цветовое пространство RGB (целое 16-бит/канал)
-Comment[sk]=Model farieb pre RGB obrázky so 16-bitovými číslami na kanál
-Comment[sl]=Barvni model za slike RGB s 16-bitnim celim številom na kanal
-Comment[sr]=Модел боја за RGB слике, 16-битно целобројно по каналу
-Comment[sr@Latn]=Model boja za RGB slike, 16-bitno celobrojno po kanalu
-Comment[sv]=Färgmodell för 16-bitars heltal/kanal RGB-bilder
-Comment[uk]=Модель кольорів для зображень RGB 32-біт ціле число на канал
-Comment[zh_TW]=每色頻 16-bit 整數 RGB 圖片的色彩模型
-ServiceTypes=Krita/ColorSpace
-Type=Service
-X-KDE-Library=krita_rgb_u16_plugin
-X-Krita-Version=2
-
diff --git a/krita/colorspaces/rgb_u16/rgb_u16_plugin.cc b/krita/colorspaces/rgb_u16/rgb_u16_plugin.cc
deleted file mode 100644
index d05e59f94..000000000
--- a/krita/colorspaces/rgb_u16/rgb_u16_plugin.cc
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-* rgb_u16_plugin.cc -- Part of Krita
-*
-* Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org)
-* Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
-*
-*  This program is free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  This program is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  You should have received a copy of the GNU General Public License
-*  along with this program; if not, write to the Free Software
-*  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <kinstance.h>
-#include <kgenericfactory.h>
-#include <kdebug.h>
-
-#include <kis_debug_areas.h>
-#include <kis_colorspace_factory_registry.h>
-
-#include "rgb_u16_plugin.h"
-#include "kis_rgb_u16_colorspace.h"
-#include "kis_basic_histogram_producers.h"
-
-typedef KGenericFactory<RGBU16Plugin> RGBU16PluginFactory;
-K_EXPORT_COMPONENT_FACTORY( krita_rgb_u16_plugin, RGBU16PluginFactory( "krita" ) )
-
-
-RGBU16Plugin::RGBU16Plugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-    setInstance(RGBU16PluginFactory::instance());
-
-    if ( tqparent->inherits("KisColorSpaceFactoryRegistry") )
-    {
-        KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry *>( tqparent );
-
-        KisColorSpace * colorSpaceRGBU16 = new KisRgbU16ColorSpace(f, 0);
-        KisColorSpaceFactory * csFactory = new KisRgbU16ColorSpaceFactory();
-        f->add( csFactory );
-
-        KisHistogramProducerFactoryRegistry::instance()->add(
-                new KisBasicHistogramProducerFactory<KisBasicU16HistogramProducer>
-                (KisID("RGB16HISTO", i18n("RGB16")), colorSpaceRGBU16) );
-    }
-
-}
-
-RGBU16Plugin::~RGBU16Plugin()
-{
-}
-
-#include "rgb_u16_plugin.moc"
diff --git a/krita/colorspaces/rgb_u16/rgb_u16_plugin.h b/krita/colorspaces/rgb_u16/rgb_u16_plugin.h
deleted file mode 100644
index d5cf4d140..000000000
--- a/krita/colorspaces/rgb_u16/rgb_u16_plugin.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef RGB_U16_PLUGIN_H_
-#define RGB_U16_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-/**
- * A plugin wrapper around the RGB U16 colour space strategy.
- */
-class RGBU16Plugin : public KParts::Plugin
-{
-    Q_OBJECT
-  TQ_OBJECT
-public:
-    RGBU16Plugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~RGBU16Plugin();
-};
-
-
-#endif // RGB_U16_PLUGIN_H_
diff --git a/krita/colorspaces/rgb_u16/tests/Makefile.am b/krita/colorspaces/rgb_u16/tests/Makefile.am
deleted file mode 100644
index f8c8dc36d..000000000
--- a/krita/colorspaces/rgb_u16/tests/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-AM_CPPFLAGS = -I$(srcdir)/.. \
-	 -I$(srcdir)/../../../sdk \
-	-I$(srcdir)/../../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../../color_strategy/ \
-	$(all_includes)
-
-# The check_ target makes sure we don't install the modules,
-# $(KDE_CHECK_PLUGIN) assures a shared library is created.
-check_LTLIBRARIES = kunittest_kis_strategy_colorspace_rgb_u16_tester.la
-
-kunittest_kis_strategy_colorspace_rgb_u16_tester_la_SOURCES = kis_strategy_colorspace_rgb_u16_tester.cc
-kunittest_kis_strategy_colorspace_rgb_u16_tester_la_LIBADD = -lkunittest ../libkrita_rgb_u16.la
-kunittest_kis_strategy_colorspace_rgb_u16_tester_la_LDFLAGS = -module $(KDE_CHECK_PLUGIN) $(all_libraries)
-
-check-local: kunittest_kis_strategy_colorspace_rgb_u16_tester.la
-	kunittestmodrunner
-
diff --git a/krita/colorspaces/rgb_u16/tests/kis_strategy_colorspace_rgb_u16_tester.cc b/krita/colorspaces/rgb_u16/tests/kis_strategy_colorspace_rgb_u16_tester.cc
deleted file mode 100644
index 7861b8e1a..000000000
--- a/krita/colorspaces/rgb_u16/tests/kis_strategy_colorspace_rgb_u16_tester.cc
+++ /dev/null
@@ -1,524 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <kunittest/runner.h>
-#include <kunittest/module.h>
-
-#include "kis_factory.h"
-#include "kis_strategy_colorspace_rgb_u16_tester.h"
-#include "kis_rgb_u16_colorspace.h"
-#include "kis_integer_maths.h"
-#include "kis_paint_device.h"
-
-using namespace KUnitTest;
-
-KUNITTEST_MODULE( kunittest_kis_strategy_colorspace_rgb_u16_tester, "RGB 16-bit integer colorspace tester" );
-KUNITTEST_MODULE_REGISTER_TESTER( KisRgbU16ColorSpaceTester );
-
-#define PIXEL_BLUE 0
-#define PIXEL_GREEN 1
-#define PIXEL_RED 2
-#define PIXEL_ALPHA 3
-
-#define NUM_CHANNELS 4
-#define NUM_COLOUR_CHANNELS 3
-#define CHANNEL_SIZE 2
-
-#define RED_CHANNEL 0
-#define GREEN_CHANNEL 1
-#define BLUE_CHANNEL 2
-#define ALPHA_CHANNEL 3
-
-#define MAX_CHANNEL_VALUE UINT16_MAX
-#define MIN_CHANNEL_VALUE UINT16_MIN
-
-void KisRgbU16ColorSpaceTester::allTests()
-{
-    // We need this so that the colour profile loading can operate without crashing.
-    KisFactory *factory = new KisFactory();
-
-    testBasics();
-    testToTQImage();
-    testCompositeOps();
-    testMixColors();
-
-    delete factory;
-}
-
-void KisRgbU16ColorSpaceTester::testBasics()
-{
-    KisProfile *defProfile = new KisProfile(cmsCreate_sRGBProfile());
-
-    KisRgbU16ColorSpace *cs = new KisRgbU16ColorSpace(defProfile);
-    KisAbstractColorSpace * csSP = cs;
-
-    CHECK(cs->hasAlpha(), true);
-    CHECK(cs->nChannels(), NUM_CHANNELS);
-    CHECK(cs->nColorChannels(), NUM_COLOUR_CHANNELS);
-    CHECK(cs->pixelSize(), NUM_CHANNELS * CHANNEL_SIZE);
-
-    TQValueVector<KisChannelInfo *> channels = cs->channels();
-
-    // Red
-    CHECK(channels[0]->pos(), PIXEL_RED * CHANNEL_SIZE);
-    CHECK(channels[0]->size(), CHANNEL_SIZE);
-    CHECK(channels[0]->channelType(), COLOR);
-
-    // Green
-    CHECK(channels[1]->pos(), PIXEL_GREEN * CHANNEL_SIZE);
-    CHECK(channels[1]->size(), CHANNEL_SIZE);
-    CHECK(channels[1]->channelType(), COLOR);
-
-    // Blue
-    CHECK(channels[2]->pos(), PIXEL_BLUE * CHANNEL_SIZE);
-    CHECK(channels[2]->size(), CHANNEL_SIZE);
-    CHECK(channels[2]->channelType(), COLOR);
-
-    // Alpha
-    CHECK(channels[3]->pos(), PIXEL_ALPHA * CHANNEL_SIZE);
-    CHECK(channels[3]->size(), CHANNEL_SIZE);
-    CHECK(channels[3]->channelType(), ALPHA);
-
-    KisPaintDeviceSP pd = new KisPaintDevice(cs, "test");
-
-    KisRgbU16ColorSpace::Pixel defaultPixel;
-
-    memcpy(&defaultPixel, pd->dataManager()->defaultPixel(), sizeof(defaultPixel));
-
-    CHECK((int)defaultPixel.red, 0);
-    CHECK((int)defaultPixel.green, 0);
-    CHECK((int)defaultPixel.blue, 0);
-    CHECK((int)defaultPixel.alpha, 0);
-
-    TQ_UINT16 pixel[NUM_CHANNELS];
-
-    cs->fromTQColor(tqRgb(255, 255, 255), reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK((uint)pixel[PIXEL_RED], MAX_CHANNEL_VALUE);
-    CHECK((uint)pixel[PIXEL_GREEN], MAX_CHANNEL_VALUE);
-    CHECK((uint)pixel[PIXEL_BLUE], MAX_CHANNEL_VALUE);
-
-    cs->fromTQColor(tqRgb(0, 0, 0), reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK((uint)pixel[PIXEL_RED], MIN_CHANNEL_VALUE);
-    CHECK((uint)pixel[PIXEL_GREEN], MIN_CHANNEL_VALUE);
-    CHECK((uint)pixel[PIXEL_BLUE], MIN_CHANNEL_VALUE);
-
-    cs->fromTQColor(tqRgb(128, 64, 192), reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK((uint)pixel[PIXEL_RED], (uint)UINT8_TO_UINT16(128));
-    CHECK((uint)pixel[PIXEL_GREEN], (uint)UINT8_TO_UINT16(64));
-    CHECK((uint)pixel[PIXEL_BLUE], (uint)UINT8_TO_UINT16(192));
-
-    cs->fromTQColor(tqRgb(255, 255, 255), OPACITY_OPAQUE, reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK((uint)pixel[PIXEL_RED], MAX_CHANNEL_VALUE);
-    CHECK((uint)pixel[PIXEL_GREEN], MAX_CHANNEL_VALUE);
-    CHECK((uint)pixel[PIXEL_BLUE], MAX_CHANNEL_VALUE);
-    CHECK((uint)pixel[PIXEL_ALPHA], MAX_CHANNEL_VALUE);
-
-    cs->fromTQColor(tqRgb(255, 255, 255), OPACITY_TRANSPARENT, reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK((uint)pixel[PIXEL_RED], MAX_CHANNEL_VALUE);
-    CHECK((uint)pixel[PIXEL_GREEN], MAX_CHANNEL_VALUE);
-    CHECK((uint)pixel[PIXEL_BLUE], MAX_CHANNEL_VALUE);
-    CHECK((uint)pixel[PIXEL_ALPHA], MIN_CHANNEL_VALUE);
-
-    cs->fromTQColor(tqRgb(255, 255, 255), OPACITY_OPAQUE / 2, reinterpret_cast<TQ_UINT8 *>(pixel));
-
-    CHECK((uint)pixel[PIXEL_RED], MAX_CHANNEL_VALUE);
-    CHECK((uint)pixel[PIXEL_GREEN], MAX_CHANNEL_VALUE);
-    CHECK((uint)pixel[PIXEL_BLUE], MAX_CHANNEL_VALUE);
-    CHECK((uint)pixel[PIXEL_ALPHA], UINT8_TO_UINT16(OPACITY_OPAQUE / 2));
-
-    pixel[PIXEL_RED] = MAX_CHANNEL_VALUE;
-    pixel[PIXEL_GREEN] = MAX_CHANNEL_VALUE;
-    pixel[PIXEL_BLUE] = MAX_CHANNEL_VALUE;
-
-    TQColor c;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c);
-
-    CHECK(c.red(), 255);
-    CHECK(c.green(), 255);
-    CHECK(c.blue(), 255);
-
-    pixel[PIXEL_RED] = MIN_CHANNEL_VALUE;
-    pixel[PIXEL_GREEN] = MIN_CHANNEL_VALUE;
-    pixel[PIXEL_BLUE] = MIN_CHANNEL_VALUE;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c);
-
-    CHECK(c.red(), 0);
-    CHECK(c.green(), 0);
-    CHECK(c.blue(), 0);
-
-    pixel[PIXEL_RED] = MAX_CHANNEL_VALUE / 4;
-    pixel[PIXEL_GREEN] = MAX_CHANNEL_VALUE / 2;
-    pixel[PIXEL_BLUE] = (3 * MAX_CHANNEL_VALUE) / 4;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c);
-
-    CHECK(c.red(), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE / 4));
-    CHECK(c.green(), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE / 2));
-    CHECK(c.blue(), (int)UINT16_TO_UINT8((3 * MAX_CHANNEL_VALUE) / 4));
-
-    pixel[PIXEL_RED] = MAX_CHANNEL_VALUE;
-    pixel[PIXEL_GREEN] = MAX_CHANNEL_VALUE;
-    pixel[PIXEL_BLUE] = MAX_CHANNEL_VALUE;
-    pixel[PIXEL_ALPHA] = MAX_CHANNEL_VALUE;
-
-    TQ_UINT8 opacity;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c, &opacity);
-
-    CHECK(c.red(), 255);
-    CHECK(c.green(), 255);
-    CHECK(c.blue(), 255);
-    CHECK(opacity, OPACITY_OPAQUE);
-
-    pixel[PIXEL_ALPHA] = MAX_CHANNEL_VALUE;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c, &opacity);
-
-    CHECK(c.red(), 255);
-    CHECK(c.green(), 255);
-    CHECK(c.blue(), 255);
-    CHECK(opacity, OPACITY_OPAQUE);
-
-    pixel[PIXEL_RED] = MIN_CHANNEL_VALUE;
-    pixel[PIXEL_GREEN] = MIN_CHANNEL_VALUE;
-    pixel[PIXEL_BLUE] = MIN_CHANNEL_VALUE;
-    pixel[PIXEL_ALPHA] = MIN_CHANNEL_VALUE;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c, &opacity);
-
-    CHECK(c.red(), 0);
-    CHECK(c.green(), 0);
-    CHECK(c.blue(), 0);
-    CHECK(opacity, OPACITY_TRANSPARENT);
-
-    pixel[PIXEL_RED] = MAX_CHANNEL_VALUE / 4;
-    pixel[PIXEL_GREEN] = MAX_CHANNEL_VALUE / 2;
-    pixel[PIXEL_BLUE] = (3 * MAX_CHANNEL_VALUE) / 4;
-    pixel[PIXEL_ALPHA] = MAX_CHANNEL_VALUE / 2;
-
-    cs->toTQColor(reinterpret_cast<const TQ_UINT8 *>(pixel), &c, &opacity);
-
-    CHECK(c.red(), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE / 4));
-    CHECK(c.green(), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE / 2));
-    CHECK(c.blue(), (int)UINT16_TO_UINT8((3 * MAX_CHANNEL_VALUE) / 4));
-    CHECK((int)opacity, (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE / 2));
-
-    #define NUM_PIXELS 4
-
-    KisRgbU16ColorSpace::Pixel pixels[NUM_PIXELS] = {
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE / 4},
-        {MAX_CHANNEL_VALUE / 4, MAX_CHANNEL_VALUE / 2, MAX_CHANNEL_VALUE / 3, MAX_CHANNEL_VALUE / 2},
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MIN_CHANNEL_VALUE},
-        {MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MAX_CHANNEL_VALUE}
-    };
-
-    cs->setAlpha(reinterpret_cast<TQ_UINT8 *>(pixels), OPACITY_OPAQUE / 2, NUM_PIXELS);
-
-    CHECK((uint)pixels[0].red, MAX_CHANNEL_VALUE);
-    CHECK((uint)pixels[0].green, MAX_CHANNEL_VALUE);
-    CHECK((uint)pixels[0].blue, MAX_CHANNEL_VALUE);
-    CHECK((uint)pixels[0].alpha, (uint)UINT8_TO_UINT16(OPACITY_OPAQUE / 2));
-
-    CHECK((uint)pixels[1].red, MAX_CHANNEL_VALUE / 3);
-    CHECK((uint)pixels[1].green, MAX_CHANNEL_VALUE / 2);
-    CHECK((uint)pixels[1].blue, MAX_CHANNEL_VALUE / 4);
-    CHECK((uint)pixels[1].alpha, (uint)UINT8_TO_UINT16(OPACITY_OPAQUE / 2));
-
-    CHECK((uint)pixels[2].red, MAX_CHANNEL_VALUE);
-    CHECK((uint)pixels[2].green, MAX_CHANNEL_VALUE);
-    CHECK((uint)pixels[2].blue, MAX_CHANNEL_VALUE);
-    CHECK((uint)pixels[2].alpha, (uint)UINT8_TO_UINT16(OPACITY_OPAQUE / 2));
-
-    CHECK((uint)pixels[3].red, MIN_CHANNEL_VALUE);
-    CHECK((uint)pixels[3].green, MIN_CHANNEL_VALUE);
-    CHECK((uint)pixels[3].blue, MIN_CHANNEL_VALUE);
-    CHECK((uint)pixels[3].alpha, (uint)UINT8_TO_UINT16(OPACITY_OPAQUE / 2));
-
-    pixel[PIXEL_RED] = MAX_CHANNEL_VALUE;
-    pixel[PIXEL_GREEN] = MAX_CHANNEL_VALUE / 2;
-    pixel[PIXEL_BLUE] = MAX_CHANNEL_VALUE / 4;
-    pixel[PIXEL_ALPHA] = MIN_CHANNEL_VALUE;
-
-    TQString valueText = cs->channelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), RED_CHANNEL);
-    CHECK(valueText, TQString().setNum(MAX_CHANNEL_VALUE));
-
-    valueText = cs->channelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), GREEN_CHANNEL);
-    CHECK(valueText, TQString().setNum(MAX_CHANNEL_VALUE / 2));
-
-    valueText = cs->channelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), BLUE_CHANNEL);
-    CHECK(valueText, TQString().setNum(MAX_CHANNEL_VALUE / 4));
-
-    valueText = cs->channelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), ALPHA_CHANNEL);
-    CHECK(valueText, TQString().setNum(MIN_CHANNEL_VALUE));
-
-    valueText = cs->normalisedChannelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), RED_CHANNEL);
-    CHECK(valueText, TQString().setNum(static_cast<float>(MAX_CHANNEL_VALUE) / MAX_CHANNEL_VALUE));
-
-    valueText = cs->normalisedChannelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), GREEN_CHANNEL);
-    CHECK(valueText, TQString().setNum(static_cast<float>(MAX_CHANNEL_VALUE / 2) / MAX_CHANNEL_VALUE));
-
-    valueText = cs->normalisedChannelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), BLUE_CHANNEL);
-    CHECK(valueText, TQString().setNum(static_cast<float>(MAX_CHANNEL_VALUE / 4) / MAX_CHANNEL_VALUE));
-
-    valueText = cs->normalisedChannelValueText(reinterpret_cast<TQ_UINT8 *>(pixel), ALPHA_CHANNEL);
-    CHECK(valueText, TQString().setNum(static_cast<float>(MIN_CHANNEL_VALUE) / MAX_CHANNEL_VALUE));
-
-    cs->setPixel(reinterpret_cast<TQ_UINT8 *>(pixel), 128, 192, 64, 99);
-    CHECK((uint)pixel[PIXEL_RED], 128u);
-    CHECK((uint)pixel[PIXEL_GREEN], 192u);
-    CHECK((uint)pixel[PIXEL_BLUE], 64u);
-    CHECK((uint)pixel[PIXEL_ALPHA], 99u);
-
-    TQ_UINT16 red;
-    TQ_UINT16 green;
-    TQ_UINT16 blue;
-    TQ_UINT16 alpha;
-
-    cs->getPixel(reinterpret_cast<const TQ_UINT8 *>(pixel), &red, &green, &blue, &alpha);
-    CHECK((uint)red, 128u);
-    CHECK((uint)green, 192u);
-    CHECK((uint)blue, 64u);
-    CHECK((uint)alpha, 99u);
-}
-
-void KisRgbU16ColorSpaceTester::testMixColors()
-{
-    KisProfile *defProfile = new KisProfile(cmsCreate_sRGBProfile());
-
-    KisAbstractColorSpace * cs = new KisRgbU16ColorSpace(defProfile);
-
-    // Test mixColors.
-    TQ_UINT16 pixel1[NUM_CHANNELS];
-    TQ_UINT16 pixel2[NUM_CHANNELS];
-    TQ_UINT16 outputPixel[NUM_CHANNELS];
-
-    outputPixel[PIXEL_RED] = 0;
-    outputPixel[PIXEL_GREEN] = 0;
-    outputPixel[PIXEL_BLUE] = 0;
-    outputPixel[PIXEL_ALPHA] = 0;
-
-    pixel1[PIXEL_RED] = UINT16_MAX;
-    pixel1[PIXEL_GREEN] = UINT16_MAX;
-    pixel1[PIXEL_BLUE] = UINT16_MAX;
-    pixel1[PIXEL_ALPHA] = UINT16_MAX;
-
-    pixel2[PIXEL_RED] = 0;
-    pixel2[PIXEL_GREEN] = 0;
-    pixel2[PIXEL_BLUE] = 0;
-    pixel2[PIXEL_ALPHA] = 0;
-
-    const TQ_UINT8 *pixelPtrs[2];
-    TQ_UINT8 weights[2];
-
-    pixelPtrs[0] = reinterpret_cast<const TQ_UINT8 *>(pixel1);
-    pixelPtrs[1] = reinterpret_cast<const TQ_UINT8 *>(pixel2);
-
-    weights[0] = 255;
-    weights[1] = 0;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK((uint)outputPixel[PIXEL_RED], UINT16_MAX);
-    CHECK((uint)outputPixel[PIXEL_GREEN], UINT16_MAX);
-    CHECK((uint)outputPixel[PIXEL_BLUE], UINT16_MAX);
-    CHECK((uint)outputPixel[PIXEL_ALPHA], UINT16_MAX);
-
-    weights[0] = 0;
-    weights[1] = 255;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK((int)outputPixel[PIXEL_RED], 0);
-    CHECK((int)outputPixel[PIXEL_GREEN], 0);
-    CHECK((int)outputPixel[PIXEL_BLUE], 0);
-    CHECK((int)outputPixel[PIXEL_ALPHA], 0);
-
-    weights[0] = 128;
-    weights[1] = 127;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK((uint)outputPixel[PIXEL_RED], UINT16_MAX);
-    CHECK((uint)outputPixel[PIXEL_GREEN], UINT16_MAX);
-    CHECK((uint)outputPixel[PIXEL_BLUE], UINT16_MAX);
-    CHECK((uint)outputPixel[PIXEL_ALPHA], (128u * UINT16_MAX) / 255u);
-
-    pixel1[PIXEL_RED] = 20000;
-    pixel1[PIXEL_GREEN] = 10000;
-    pixel1[PIXEL_BLUE] = 5000;
-    pixel1[PIXEL_ALPHA] = UINT16_MAX;
-
-    pixel2[PIXEL_RED] = 10000;
-    pixel2[PIXEL_GREEN] = 20000;
-    pixel2[PIXEL_BLUE] = 2000;
-    pixel2[PIXEL_ALPHA] = UINT16_MAX;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK_TOLERANCE((uint)outputPixel[PIXEL_RED], (128u * 20000u + 127u * 10000u) / 255u, 5u);
-    CHECK_TOLERANCE((uint)outputPixel[PIXEL_GREEN], (128u * 10000u + 127u * 20000u) / 255u, 5u);
-    CHECK_TOLERANCE((uint)outputPixel[PIXEL_BLUE], (128u * 5000u + 127u * 2000u) / 255u, 5u);
-    CHECK((uint)outputPixel[PIXEL_ALPHA], UINT16_MAX);
-
-    pixel1[PIXEL_RED] = 0;
-    pixel1[PIXEL_GREEN] = 0;
-    pixel1[PIXEL_BLUE] = 0;
-    pixel1[PIXEL_ALPHA] = 0;
-
-    pixel2[PIXEL_RED] = UINT16_MAX;
-    pixel2[PIXEL_GREEN] = UINT16_MAX;
-    pixel2[PIXEL_BLUE] = UINT16_MAX;
-    pixel2[PIXEL_ALPHA] = UINT16_MAX;
-
-    weights[0] = 89;
-    weights[1] = 166;
-
-    cs->mixColors(pixelPtrs, weights, 2, reinterpret_cast<TQ_UINT8 *>(outputPixel));
-
-    CHECK((uint)outputPixel[PIXEL_RED], UINT16_MAX);
-    CHECK((uint)outputPixel[PIXEL_GREEN], UINT16_MAX);
-    CHECK((uint)outputPixel[PIXEL_BLUE], UINT16_MAX);
-    CHECK_TOLERANCE((uint)outputPixel[PIXEL_ALPHA], (89u * 0u + 166u * UINT16_MAX) / 255u, 5u);
-}
-
-#define PIXELS_WIDTH 2
-#define PIXELS_HEIGHT 2
-
-void KisRgbU16ColorSpaceTester::testToTQImage()
-{
-    KisProfile *defProfile = new KisProfile(cmsCreate_sRGBProfile());
-
-    KisAbstractColorSpace * cs = new KisRgbU16ColorSpace(defProfile);
-
-    KisRgbU16ColorSpace::Pixel pixels[PIXELS_WIDTH * PIXELS_HEIGHT] = {
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE / 4},
-        {MAX_CHANNEL_VALUE / 4, MAX_CHANNEL_VALUE / 2, MAX_CHANNEL_VALUE / 3, MAX_CHANNEL_VALUE / 2},
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MIN_CHANNEL_VALUE},
-        {MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MAX_CHANNEL_VALUE}
-    };
-
-    TQImage image = cs->convertToTQImage(reinterpret_cast<const TQ_UINT8 *>(pixels), PIXELS_WIDTH, PIXELS_HEIGHT, 0, 0);
-
-    TQRgb c = image.pixel(0, 0);
-
-    CHECK(tqRed(c), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE));
-    CHECK(tqGreen(c), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE));
-    CHECK(tqBlue(c), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE));
-    CHECK(tqAlpha(c), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE / 4));
-
-    c = image.pixel(1, 0);
-
-    CHECK(tqRed(c), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE / 3));
-    CHECK(tqGreen(c), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE / 2));
-    CHECK_TOLERANCE(tqBlue(c), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE / 4), 1u);
-    CHECK(tqAlpha(c), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE / 2));
-
-    c = image.pixel(0, 1);
-
-    CHECK(tqRed(c), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE));
-    CHECK(tqGreen(c), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE));
-    CHECK(tqBlue(c), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE));
-    CHECK(tqAlpha(c), (int)UINT16_TO_UINT8(MIN_CHANNEL_VALUE));
-
-    c = image.pixel(1, 1);
-
-    CHECK(tqRed(c), (int)UINT16_TO_UINT8(MIN_CHANNEL_VALUE));
-    CHECK(tqGreen(c), (int)UINT16_TO_UINT8(MIN_CHANNEL_VALUE));
-    CHECK(tqBlue(c), (int)UINT16_TO_UINT8(MIN_CHANNEL_VALUE));
-    CHECK(tqAlpha(c), (int)UINT16_TO_UINT8(MAX_CHANNEL_VALUE));
-}
-
-#define NUM_ROWS 2
-#define NUM_COLUMNS 2
-#define SRC_ROW_STRIDE (NUM_COLUMNS * CHANNEL_SIZE)
-#define DST_ROW_STRIDE (NUM_COLUMNS * CHANNEL_SIZE)
-#define MASK_ROW_STRIDE NUM_COLUMNS
-
-/*
-1 alpha 1    0 alpha 1
-1 alpha 0.5  0 alpha 1
-1 alpha 0.5  0 alpha 0.5
-1 alpha 0    0 alpha 0.5
-
-*/
-
-void  KisRgbU16ColorSpaceTester::testCompositeOps()
-{
-    KisProfile *defProfile = new KisProfile(cmsCreate_sRGBProfile());
-
-    KisRgbU16ColorSpace *cs = new KisRgbU16ColorSpace(defProfile);
-
-    KisRgbU16ColorSpace::Pixel srcPixel;
-    KisRgbU16ColorSpace::Pixel dstPixel;
-
-    srcPixel.red = UINT8_TO_UINT16(102);
-    srcPixel.green = UINT8_TO_UINT16(170);
-    srcPixel.blue = UINT8_TO_UINT16(238);
-    srcPixel.alpha = KisRgbU16ColorSpace::U16_OPACITY_OPAQUE;
-
-    dstPixel = srcPixel;
-
-    cs->compositeDivide(reinterpret_cast<TQ_UINT8 *>(&dstPixel), 1, reinterpret_cast<const TQ_UINT8 *>(&srcPixel),
-                1, 0, 0, 1, 1, KisRgbU16ColorSpace::U16_OPACITY_OPAQUE);
-    /*
-    CHECK(dstPixel.red, (TQ_UINT16)UINT8_TO_UINT16(253));
-    CHECK(dstPixel.green, (TQ_UINT16)UINT8_TO_UINT16(254));
-    CHECK(dstPixel.blue, (TQ_UINT16)UINT8_TO_UINT16(254));
-    CHECK(dstPixel.alpha, KisRgbU16ColorSpace::U16_OPACITY_OPAQUE);
-
-    TQ_UINT16 srcColor = 43690;
-    TQ_UINT16 dstColor = 43690;
-
-    srcColor = TQMIN((dstColor * (65535u + 1u) + (srcColor / 2u)) / (1u + srcColor), 65535u);
-
-    CHECK((int)srcColor, 65534);
-
-    TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, 65535u);
-
-    CHECK((int)newColor, 65534);
-    */
-
-    /*
-    KisRgbU16ColorSpace::Pixel srcPixels[NUM_ROWS * NUM_COLUMNS] = {
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE / 4},
-        {MAX_CHANNEL_VALUE / 4, MAX_CHANNEL_VALUE / 2, MAX_CHANNEL_VALUE / 3, MAX_CHANNEL_VALUE / 2},
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MIN_CHANNEL_VALUE},
-        {MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MAX_CHANNEL_VALUE}
-    };
-
-    KisRgbU16ColorSpace::Pixel dstPixels[NUM_ROWS * NUM_COLUMNS] = {
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE / 4},
-        {MAX_CHANNEL_VALUE / 4, MAX_CHANNEL_VALUE / 2, MAX_CHANNEL_VALUE / 3, MAX_CHANNEL_VALUE / 2},
-        {MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MAX_CHANNEL_VALUE, MIN_CHANNEL_VALUE},
-        {MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MIN_CHANNEL_VALUE, MAX_CHANNEL_VALUE}
-    };
-
-    cs->compositeOver(reinterpret_cast<TQ_UINT8 *>(dstPixels), DST_ROW_STRIDE, reinterpret_cast<const TQ_UINT8 *>(srcPixels),
-                SRC_ROW_STRIDE, tqmask, MASK_ROW_STRIDE, NUM_ROWS, NUM_COLUMNS, opacity);
-    */
-
-    delete cs;
-}
-
diff --git a/krita/colorspaces/rgb_u16/tests/kis_strategy_colorspace_rgb_u16_tester.h b/krita/colorspaces/rgb_u16/tests/kis_strategy_colorspace_rgb_u16_tester.h
deleted file mode 100644
index 848cf1ac2..000000000
--- a/krita/colorspaces/rgb_u16/tests/kis_strategy_colorspace_rgb_u16_tester.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-
-#ifndef KIS_STRATEGY_COLORSPACE_RGB_U16_TESTER_H
-#define KIS_STRATEGY_COLORSPACE_RGB_U16_TESTER_H
-
-#include <kunittest/tester.h>
-
-#define CHECK_TOLERANCE( x, y, tolerance ) \
-if ((x) <= (y) + (tolerance) && (x) >= (y) - (tolerance)) \
-{ \
-    success(TQString(__FILE__) + "[" + TQString::number(__LINE__) + "]: passed " + #x); \
-} \
-else \
-{ \
-    failure(TQString(__FILE__) + "[" + TQString::number(__LINE__) + TQString("]: failed ") + #x + "\n Expected " + #y + ", Actual result " + TQString::number(x)); \
-} \
-
-class KisRgbU16ColorSpaceTester : public KUnitTest::Tester
-{
-public:
-        void allTests();
-    void testBasics();
-    void testMixColors();
-    void testToTQImage();
-    void testCompositeOps();
-};
-
-#endif
-
diff --git a/krita/colorspaces/rgb_u8/Makefile.am b/krita/colorspaces/rgb_u8/Makefile.am
deleted file mode 100644
index 9589c6c5e..000000000
--- a/krita/colorspaces/rgb_u8/Makefile.am
+++ /dev/null
@@ -1,33 +0,0 @@
-# Install the desktop file needed to detect the plugin
-kde_services_DATA = kritargbplugin.desktop
-
-INCLUDES  =  -I$(srcdir)/../../sdk \
-	-I$(srcdir)/../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../kritacolor/ \
-	$(KOFFICE_INCLUDES) \
-	$(all_includes)
-
-lib_LTLIBRARIES = libkritargb.la
-libkritargb_la_SOURCES = kis_rgb_colorspace.cc
-libkritargb_la_LDFLAGS = $(all_libraries) $(LIB_QT)
-libkritargb_la_LIBADD =  ../../kritacolor/libkritacolor.la
-
-# Install this plugin in the KDE modules directory
-kde_module_LTLIBRARIES = kritargbplugin.la
-
-# Srcs for the plugin
-kritargbplugin_la_SOURCES = rgb_plugin.cc
-noinst_HEADERS = rgb_plugin.h kis_rgb_colorspace.h
-
-kritargbplugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -llcms
-kritargbplugin_la_LIBADD =  libkritargb.la ../../kritacolor/libkritacolor.la
-
-kritargbplugin_la_METASOURCES = AUTO
-#METASOURCES = AUTO # XXX: which of the two?
-
-if include_kunittest_tests
-TESTSDIR = tests
-endif
-
-SUBDIRS = . templates $(TESTSDIR)
-
diff --git a/krita/colorspaces/rgb_u8/composite.h b/krita/colorspaces/rgb_u8/composite.h
deleted file mode 100644
index d55487b66..000000000
--- a/krita/colorspaces/rgb_u8/composite.h
+++ /dev/null
@@ -1,868 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
-
- Some code is derived from GraphicsMagick/magick/composite.c and is 
- subject to the following license and copyright:
-
-  Copyright (C) 2002 GraphicsMagick Group, an organization dedicated
-  to making software imaging solutions freely available.
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files
-  ("GraphicsMagick"), to deal in GraphicsMagick without restriction,
-  including without limitation the rights to use, copy, modify, merge,
-  publish, distribute, sublicense, and/or sell copies of GraphicsMagick,
-  and to permit persons to whom GraphicsMagick is furnished to do so,
-  subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included
-  in all copies or substantial portions of GraphicsMagick.
-
-  The software is provided "as is", without warranty of any kind, express
-  or implied, including but not limited to the warranties of
-  merchantability, fitness for a particular purpose and noninfringement.
-  In no event shall GraphicsMagick Group be liable for any claim,
-  damages or other liability, whether in an action of contract, tort or
-  otherwise, arising from, out of or in connection with GraphicsMagick
-  or the use or other dealings in GraphicsMagick.
-
-  Except as contained in this notice, the name of the GraphicsMagick
-  Group shall not be used in advertising or otherwise to promote the
-  sale, use or other dealings in GraphicsMagick without prior written
-  authorization from the GraphicsMagick Group.
-
- Other code is derived from gwenview/src/qxcfi.* - this is released under
-  the terms of the LGPL
-
- */
-
-#ifndef COMPOSITE_H_
-#define COMPOSITE_H_
-
-#include <kdebug.h>
-
-#include <kis_global.h>
-
-/**
- * Image composition functions that can be used by the colour strategies. 
- *
- * XXX: perhaps each composition function ought to be a strategy of itself.
- * Krita is still missing something like a capabilities database that ties 
- * together image formats, colour systems, composition functions etc., that
- * determines which goes with which and defines user visible text for all this.
- * 
- * For now, this is a quick hack; once things are working again, I'll investigate
- * doing this nicely (famous last words...)
- *
- * XXX: Except for Over, none of the operators uses the opacity parameter
- */
-
-
-// Straight from image.h
-
-#define PixelIntensity(pixel) ((unsigned int) \
-   (((double)306.0 * (pixel[PIXEL_RED]) + \
-     (double)601.0 * (pixel[PIXEL_GREEN]) + \
-     (double)117.0 * (pixel[PIXEL_BLUE)) \
-    / 1024.0))
-
-#define PixelIntensityToQuantum(pixel) ((TQ_UINT8)PixelIntensity(pixel))
-
-#define PixelIntensityToDouble(pixel) ((double)PixelIntensity(pixel))
-
-#define RoundSignedToQuantum(value) ((TQ_UINT8) (value < 0 ? 0 : \
-  (value > TQ_UINT8_MAX) ? TQ_UINT8_MAX : value + 0.5))
-
-#define RoundToQuantum(value) ((TQ_UINT8) (value > TQ_UINT8_MAX ? TQ_UINT8_MAX : \
-  value + 0.5))
-
-// And from studio.h
-#define AbsoluteValue(x)  ((x) < 0 ? -(x) : (x))
-
-void compositeIn(TQ_INT32 pixelSize,
-         TQ_UINT8 *dst, 
-         TQ_INT32 dstRowSize,
-         const TQ_UINT8 *src, 
-         TQ_INT32 srcRowSize,
-         TQ_INT32 rows, 
-         TQ_INT32 cols, 
-         TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-
-    if (opacity == OPACITY_TRANSPARENT) 
-        return;
-
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    TQ_INT32 i;
-    
-    double sAlpha, dAlpha;
-    double alpha;
-
-    while (rows-- > 0) {
-        d = dst;
-        s = src;
-        for (i = cols; i > 0; i--, d += pixelSize, s += pixelSize) {
-            
-            if (s[PIXEL_ALPHA] == OPACITY_TRANSPARENT)
-            {
-                memcpy(d, s, pixelSize * sizeof(TQ_UINT8));
-                continue;
-            }
-            if (d[PIXEL_ALPHA] == OPACITY_TRANSPARENT)
-                continue;
- 
-            sAlpha = UINT8_MAX - s[PIXEL_ALPHA];
-            dAlpha = UINT8_MAX - d[PIXEL_ALPHA];
-
-            alpha=(double) (((double) UINT8_MAX - sAlpha) * (UINT8_MAX - dAlpha) / UINT8_MAX);
-            d[PIXEL_RED]=(TQ_UINT8) (((double) UINT8_MAX - sAlpha) *
-                        (UINT8_MAX-dAlpha) * s[PIXEL_RED] / UINT8_MAX / alpha + 0.5);
-            d[PIXEL_GREEN]=(TQ_UINT8) (((double) UINT8_MAX - sAlpha)*
-                          (UINT8_MAX-dAlpha) * s[PIXEL_GREEN] / UINT8_MAX / alpha + 0.5);
-            d[PIXEL_BLUE]=(TQ_UINT8) (((double) UINT8_MAX - sAlpha)*
-                         (UINT8_MAX - dAlpha) * s[PIXEL_BLUE] / UINT8_MAX / alpha + 0.5);
-            d[PIXEL_ALPHA]=(TQ_UINT8) ((d[PIXEL_ALPHA] * (UINT8_MAX - alpha) / UINT8_MAX) + 0.5);
-            
-        }
-        dst += dstRowSize;
-        src += srcRowSize;
-    }
-
-}
-
-void compositeOut(TQ_INT32 pixelSize,
-           TQ_UINT8 *dst, 
-           TQ_INT32 dstRowSize,
-           const TQ_UINT8 *src, 
-           TQ_INT32 srcRowSize,
-           TQ_INT32 rows, 
-           TQ_INT32 cols, 
-           TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    if (opacity == OPACITY_TRANSPARENT) 
-        return;
-
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    TQ_INT32 i;
-
-    double sAlpha, dAlpha;
-    double alpha;
-
-    while (rows-- > 0) {
-        d = dst;
-        s = src;
-        for (i = cols; i > 0; i--, d += pixelSize, s += pixelSize) {
-            if (s[PIXEL_ALPHA] == OPACITY_TRANSPARENT)
-            {
-                memcpy(d, s, pixelSize * sizeof(TQ_UINT8));
-                break;
-            }
-            if (d[PIXEL_ALPHA] == OPACITY_OPAQUE)
-            {
-                d[PIXEL_ALPHA]=OPACITY_TRANSPARENT;
-                break;
-            }
-            sAlpha = UINT8_MAX - s[PIXEL_ALPHA];
-            dAlpha = UINT8_MAX - d[PIXEL_ALPHA];
-
-            alpha=(double) (UINT8_MAX - sAlpha) * d[PIXEL_ALPHA]/UINT8_MAX;
-            d[PIXEL_RED] = (TQ_UINT8) (((double) UINT8_MAX - sAlpha) * dAlpha * s[PIXEL_RED] / UINT8_MAX / alpha + 0.5);
-            d[PIXEL_GREEN] = (TQ_UINT8) (((double) UINT8_MAX - sAlpha) * dAlpha * s[PIXEL_GREEN] / UINT8_MAX / alpha + 0.5);
-            d[PIXEL_BLUE] = (TQ_UINT8) (((double) UINT8_MAX - sAlpha) * dAlpha * s[PIXEL_BLUE] / UINT8_MAX / alpha + 0.5);
-            d[PIXEL_ALPHA]=(TQ_UINT8) ((d[PIXEL_ALPHA] * (UINT8_MAX - alpha) / UINT8_MAX) + 0.5);
-        }
-        dst += dstRowSize;
-        src += srcRowSize;
-    }
-        
-}
-
-void compositeAtop(TQ_INT32 pixelSize,
-           TQ_UINT8 *dst, 
-           TQ_INT32 dstRowSize,
-           const TQ_UINT8 *src, 
-           TQ_INT32 srcRowSize,
-           TQ_INT32 rows, 
-           TQ_INT32 cols, 
-           TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-
-    if (opacity == OPACITY_TRANSPARENT) 
-        return;
-
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    TQ_INT32 i;
-
-    double sAlpha, dAlpha;
-    double alpha, red, green, blue;
-
-    while (rows-- > 0) {
-        d = dst;
-        s = src;
-        for (i = cols; i > 0; i--, d += pixelSize, s += pixelSize) {
-            sAlpha = UINT8_MAX - s[PIXEL_ALPHA];
-            dAlpha = UINT8_MAX - d[PIXEL_ALPHA];
-            
-            alpha = ((double)(UINT8_MAX - sAlpha) *
-                   (UINT8_MAX - dAlpha) + (double) sAlpha *
-                   (UINT8_MAX - dAlpha)) / UINT8_MAX;
-
-            red = ((double)(UINT8_MAX - sAlpha) * (UINT8_MAX - dAlpha) *  s[PIXEL_RED] / UINT8_MAX +
-                 (double) sAlpha * (UINT8_MAX-dAlpha) * d[PIXEL_RED]/UINT8_MAX) / alpha;
-            d[PIXEL_RED] = (TQ_UINT8) (red > UINT8_MAX ? UINT8_MAX : red + 0.5);
-
-            green = ((double) (UINT8_MAX - sAlpha) * (UINT8_MAX - dAlpha) * s[PIXEL_GREEN] / UINT8_MAX + 
-                 (double) sAlpha * (UINT8_MAX-dAlpha) * d[PIXEL_GREEN]/UINT8_MAX)/alpha;
-            d[PIXEL_GREEN] = (TQ_UINT8) (green > UINT8_MAX ? UINT8_MAX : green + 0.5);
-
-            blue = ((double) (UINT8_MAX - sAlpha) * (UINT8_MAX- dAlpha) * s[PIXEL_BLUE] / UINT8_MAX +
-                     (double) sAlpha * (UINT8_MAX - dAlpha) * d[PIXEL_BLUE]/UINT8_MAX) / alpha;
-            d[PIXEL_BLUE] = (TQ_UINT8) (blue > UINT8_MAX ? UINT8_MAX : blue + 0.5);
-            d[PIXEL_ALPHA]=(TQ_UINT8) (UINT8_MAX - (alpha > UINT8_MAX ? UINT8_MAX : alpha) + 0.5);
-        }
-        dst += dstRowSize;
-        src += srcRowSize;
-    }
-}
-
-
-void compositeXor(TQ_INT32 pixelSize,
-          TQ_UINT8 *dst, 
-          TQ_INT32 dstRowSize,
-          const TQ_UINT8 *src, 
-          TQ_INT32 srcRowSize,
-          TQ_INT32 rows, 
-          TQ_INT32 cols, 
-          TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    if (opacity == OPACITY_TRANSPARENT) 
-        return;
-
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    TQ_INT32 i;
-
-    double sAlpha, dAlpha;
-    double alpha, red, green, blue;
-
-    while (rows-- > 0) {
-        d = dst;
-        s = src;
-        for (i = cols; i > 0; i--, d += pixelSize, s += pixelSize) {
-            sAlpha = UINT8_MAX - s[PIXEL_ALPHA];
-            dAlpha = UINT8_MAX - d[PIXEL_ALPHA];
-            
-            alpha =((double) (UINT8_MAX -sAlpha)*
-                dAlpha+(double) (UINT8_MAX -dAlpha)*
-                sAlpha)/UINT8_MAX ;
-            red=((double) (UINT8_MAX -sAlpha)*dAlpha*
-                 s[PIXEL_RED]/UINT8_MAX +(double) (UINT8_MAX -dAlpha)*
-                 sAlpha*d[PIXEL_RED]/UINT8_MAX )/alpha ;
-            d[PIXEL_RED]=RoundSignedToQuantum(red);
-            green=((double) (UINT8_MAX -sAlpha)*dAlpha*
-                   s[PIXEL_GREEN]/UINT8_MAX +(double) (UINT8_MAX -dAlpha)*
-                   sAlpha*d[PIXEL_GREEN]/UINT8_MAX )/alpha ;
-            d[PIXEL_GREEN]=RoundSignedToQuantum(green);
-            blue=((double) (UINT8_MAX -sAlpha)*dAlpha*
-                  s[PIXEL_BLUE]/UINT8_MAX +(double) (UINT8_MAX -dAlpha)*
-                  sAlpha*d[PIXEL_BLUE]/UINT8_MAX )/alpha ;
-            d[PIXEL_BLUE]=RoundSignedToQuantum(blue);
-            d[PIXEL_ALPHA]=UINT8_MAX -RoundSignedToQuantum(alpha );
-        }
-        dst += dstRowSize;
-        src += srcRowSize;
-    }
-
-}
-
-
-void compositePlus(TQ_INT32 pixelSize,
-           TQ_UINT8 *dst, 
-           TQ_INT32 dstRowSize,
-           const TQ_UINT8 *src, 
-           TQ_INT32 srcRowSize,
-           TQ_INT32 rows, 
-           TQ_INT32 cols, 
-           TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    if (opacity == OPACITY_TRANSPARENT) 
-        return;
-
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    TQ_INT32 i;
-
-    double sAlpha, dAlpha;
-    double alpha, red, green, blue;
-
-    while (rows-- > 0) {
-        d = dst;
-        s = src;
-        for (i = cols; i > 0; i--, d += pixelSize, s += pixelSize) {
-            sAlpha = UINT8_MAX - s[PIXEL_ALPHA];
-            dAlpha = UINT8_MAX - d[PIXEL_ALPHA];
-
-            red=((double) (UINT8_MAX -sAlpha)*s[PIXEL_RED]+(double)
-                 (UINT8_MAX -dAlpha)*d[PIXEL_RED])/UINT8_MAX ;
-            d[PIXEL_RED]=RoundSignedToQuantum(red);
-            green=((double) (UINT8_MAX -sAlpha)*s[PIXEL_GREEN]+(double)
-                   (UINT8_MAX -dAlpha)*d[PIXEL_GREEN])/UINT8_MAX ;
-            d[PIXEL_GREEN]=RoundSignedToQuantum(green);
-            blue=((double) (UINT8_MAX -sAlpha)*s[PIXEL_BLUE]+(double)
-                  (UINT8_MAX -dAlpha)*d[PIXEL_BLUE])/UINT8_MAX ;
-            d[PIXEL_BLUE]=RoundSignedToQuantum(blue);
-            alpha =((double) (UINT8_MAX -sAlpha)+
-                (double) (UINT8_MAX -dAlpha))/UINT8_MAX ;
-            d[PIXEL_ALPHA]=UINT8_MAX -RoundSignedToQuantum(alpha );    
-        }
-        dst += dstRowSize;
-        src += srcRowSize;
-    }
-}
-
-
-
-void compositeMinus(TQ_INT32 pixelSize,
-            TQ_UINT8 *dst, 
-            TQ_INT32 dstRowSize,
-            const TQ_UINT8 *src, 
-            TQ_INT32 srcRowSize,
-            TQ_INT32 rows, 
-            TQ_INT32 cols,
-            TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    if (opacity == OPACITY_TRANSPARENT) 
-        return;
-
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    TQ_INT32 i;
-
-    double sAlpha, dAlpha;
-    double alpha, red, green, blue;
-
-    while (rows-- > 0) {
-        d = dst;
-        s = src;
-        for (i = cols; i > 0; i--, d += pixelSize, s += pixelSize) {
-            sAlpha = UINT8_MAX - s[PIXEL_ALPHA];
-            dAlpha = UINT8_MAX - d[PIXEL_ALPHA];
-
-            red=((double) (UINT8_MAX -dAlpha)*d[PIXEL_RED]-
-                 (double) (UINT8_MAX -sAlpha)*s[PIXEL_RED])/UINT8_MAX ;
-            d[PIXEL_RED]=RoundSignedToQuantum(red);
-            green=((double) (UINT8_MAX -dAlpha)*d[PIXEL_GREEN]-
-                   (double) (UINT8_MAX -sAlpha)*s[PIXEL_GREEN])/UINT8_MAX ;
-            d[PIXEL_GREEN]=RoundSignedToQuantum(green);
-            blue=((double) (UINT8_MAX -dAlpha)*d[PIXEL_BLUE]-
-                  (double) (UINT8_MAX -sAlpha)*s[PIXEL_BLUE])/UINT8_MAX ;
-            d[PIXEL_BLUE]=RoundSignedToQuantum(blue);
-            alpha =((double) (UINT8_MAX -dAlpha)-
-                (double) (UINT8_MAX -sAlpha))/UINT8_MAX ;
-            d[PIXEL_ALPHA]=UINT8_MAX -RoundSignedToQuantum(alpha );
-            
-        }
-        dst += dstRowSize;
-        src += srcRowSize;
-    }
-
-}
-
-void compositeAdd(TQ_INT32 pixelSize,
-          TQ_UINT8 *dst, 
-          TQ_INT32 dstRowSize,
-          const TQ_UINT8 *src, 
-          TQ_INT32 srcRowSize,
-          TQ_INT32 rows, 
-          TQ_INT32 cols, 
-          TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    if (opacity == OPACITY_TRANSPARENT) 
-        return;
-
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    TQ_INT32 i;
-
-    double sAlpha, dAlpha;
-    double red, green, blue;
-
-    while (rows-- > 0) {
-        d = dst;
-        s = src;
-        for (i = cols; i > 0; i--, d += pixelSize, s += pixelSize) {
-            sAlpha = UINT8_MAX - s[PIXEL_ALPHA];
-            dAlpha = UINT8_MAX - d[PIXEL_ALPHA];
-
-            red=(double) s[PIXEL_RED]+d[PIXEL_RED];
-            d[PIXEL_RED]=(TQ_UINT8)
-                (red > UINT8_MAX  ? red-=UINT8_MAX  : red+0.5);
-            green=(double) s[PIXEL_GREEN]+d[PIXEL_GREEN];
-            d[PIXEL_GREEN]=(TQ_UINT8)
-                (green > UINT8_MAX  ? green-=UINT8_MAX  : green+0.5);
-            blue=(double) s[PIXEL_BLUE]+d[PIXEL_BLUE];
-            d[PIXEL_BLUE]=(TQ_UINT8)
-                (blue > UINT8_MAX  ? blue-=UINT8_MAX  : blue+0.5);
-            d[PIXEL_ALPHA]=OPACITY_OPAQUE;    
-        }
-        dst += dstRowSize;
-        src += srcRowSize;
-    }
-
-}
-
-void compositeSubtract(TQ_INT32 pixelSize,
-               TQ_UINT8 *dst, 
-               TQ_INT32 dstRowSize,
-               const TQ_UINT8 *src, 
-               TQ_INT32 srcRowSize,
-               TQ_INT32 rows, 
-               TQ_INT32 cols, 
-               TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    if (opacity == OPACITY_TRANSPARENT) 
-        return;
-
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    TQ_INT32 i;
-
-    double red, green, blue;
-
-    while (rows-- > 0) {
-        d = dst;
-        s = src;
-        for (i = cols; i > 0; i--, d += pixelSize, s += pixelSize) {
-
-            red=(double) s[PIXEL_RED]-d[PIXEL_RED];
-            d[PIXEL_RED]=(TQ_UINT8)
-                (red < 0 ? red+=UINT8_MAX  : red+0.5);
-            green=(double) s[PIXEL_GREEN]-d[PIXEL_GREEN];
-            d[PIXEL_GREEN]=(TQ_UINT8)
-                (green < 0 ? green+=UINT8_MAX  : green+0.5);
-            blue=(double) s[PIXEL_BLUE]-d[PIXEL_BLUE];
-            d[PIXEL_BLUE]=(TQ_UINT8)
-                (blue < 0 ? blue+=UINT8_MAX  : blue+0.5);
-            d[PIXEL_ALPHA]=OPACITY_OPAQUE;
-            
-        }
-        dst += dstRowSize;
-        src += srcRowSize;
-    }
-
-}
-
-void compositeDiff(TQ_INT32 pixelSize,
-           TQ_UINT8 *dst, 
-           TQ_INT32 dstRowSize,
-           const TQ_UINT8 *src, 
-           TQ_INT32 srcRowSize,
-           TQ_INT32 rows, 
-           TQ_INT32 cols, 
-           TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    if (opacity == OPACITY_TRANSPARENT) 
-        return;
-
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    TQ_INT32 i;
-
-    double sAlpha, dAlpha;
-
-    while (rows-- > 0) {
-        d = dst;
-        s = src;
-        for (i = cols; i > 0; i--, d += pixelSize, s += pixelSize) {
-            sAlpha = UINT8_MAX - s[PIXEL_ALPHA];
-            dAlpha = UINT8_MAX - d[PIXEL_ALPHA];
-
-            d[PIXEL_RED]=(TQ_UINT8)
-                AbsoluteValue(s[PIXEL_RED]-(double) d[PIXEL_RED]);
-            d[PIXEL_GREEN]=(TQ_UINT8)
-                AbsoluteValue(s[PIXEL_GREEN]-(double) d[PIXEL_GREEN]);
-            d[PIXEL_BLUE]=(TQ_UINT8)
-                AbsoluteValue(s[PIXEL_BLUE]-(double) d[PIXEL_BLUE]);
-            d[PIXEL_ALPHA]=UINT8_MAX - (TQ_UINT8)
-                AbsoluteValue(sAlpha-(double) dAlpha);
-
-        }
-        dst += dstRowSize;
-        src += srcRowSize;
-    }
-
-}
-
-void compositeBumpmap(TQ_INT32 pixelSize,
-              TQ_UINT8 *dst, 
-              TQ_INT32 dstRowSize,
-              const TQ_UINT8 *src, 
-              TQ_INT32 srcRowSize,
-              TQ_INT32 rows, 
-              TQ_INT32 cols, 
-              TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    if (opacity == OPACITY_TRANSPARENT) 
-        return;
-
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    TQ_INT32 i;
-
-    double intensity;
-
-    while (rows-- > 0) {
-        d = dst;
-        s = src;
-        for (i = cols; i > 0; i--, d += pixelSize, s += pixelSize) {
-            // Is this correct? It's not this way in GM.
-            if (s[PIXEL_ALPHA] == OPACITY_TRANSPARENT)
-                continue;
-
-            // And I'm not sure whether this is correct, either.
-            intensity = ((double)306.0 * s[PIXEL_RED] + 
-                     (double)601.0 * s[PIXEL_GREEN] + 
-                     (double)117.0 * s[PIXEL_BLUE]) / 1024.0;
-            
-            d[PIXEL_RED]=(TQ_UINT8) (((double)
-                         intensity * d[PIXEL_RED])/UINT8_MAX +0.5);
-            d[PIXEL_GREEN]=(TQ_UINT8) (((double)
-                           intensity * d[PIXEL_GREEN])/UINT8_MAX +0.5);
-            d[PIXEL_BLUE]=(TQ_UINT8) (((double)
-                          intensity * d[PIXEL_BLUE])/UINT8_MAX +0.5);
-            d[PIXEL_ALPHA]= (TQ_UINT8) (((double)
-                           intensity * d[PIXEL_ALPHA])/UINT8_MAX +0.5);
-            
-            
-        }
-        dst += dstRowSize;
-        src += srcRowSize;
-    }
-
-}
-
-void compositeCopy(TQ_INT32 pixelSize,
-           TQ_UINT8 *dst, 
-           TQ_INT32 dstRowSize,
-           const TQ_UINT8 *src, 
-           TQ_INT32 srcRowSize,
-           TQ_INT32 rows, 
-           TQ_INT32 cols, 
-           TQ_UINT8 /*opacity*/ = OPACITY_OPAQUE)
-{
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-    d = dst;
-    s = src;
-    TQ_UINT32 len = cols * pixelSize;
-    
-    while (rows-- > 0) {
-        memcpy(d, s, len);
-        d += dstRowSize;
-        s += srcRowSize;
-    }
-}
-
-void compositeCopyChannel(TQ_UINT8 pixel, 
-               TQ_INT32 pixelSize,
-               TQ_UINT8 *dst, 
-               TQ_INT32 dstRowSize,
-               const TQ_UINT8 *src, 
-               TQ_INT32 srcRowSize,
-               TQ_INT32 rows, 
-               TQ_INT32 cols, 
-              TQ_UINT8 /*opacity*/ = OPACITY_OPAQUE)
-{
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-    TQ_INT32 i;
-
-    while (rows-- > 0) {
-        d = dst;
-        s = src;
-        
-        for (i = cols; i > 0; i--, d += pixelSize, s += pixelSize) {
-            d[pixel] = s[pixel];
-        }
-        
-        dst += dstRowSize;
-        src += srcRowSize;
-    }
-
-}
-
-void compositeCopyRed(TQ_INT32 pixelSize,
-              TQ_UINT8 *dst, 
-              TQ_INT32 dstRowSize,
-              const TQ_UINT8 *src, 
-              TQ_INT32 srcRowSize,
-              TQ_INT32 rows, 
-              TQ_INT32 cols, 
-              TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    compositeCopyChannel(PIXEL_RED, pixelSize, dst, dstRowSize, src, srcRowSize, rows, cols, opacity);
-}
-
-void compositeCopyGreen(TQ_INT32 pixelSize,
-            TQ_UINT8 *dst, 
-            TQ_INT32 dstRowSize,
-            const TQ_UINT8 *src, 
-            TQ_INT32 srcRowSize,
-            TQ_INT32 rows, 
-            TQ_INT32 cols, 
-            TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    compositeCopyChannel(PIXEL_GREEN, pixelSize, dst, dstRowSize, src, srcRowSize, rows, cols, opacity);
-}
-
-void compositeCopyBlue(TQ_INT32 pixelSize,
-               TQ_UINT8 *dst, 
-               TQ_INT32 dstRowSize,
-               const TQ_UINT8 *src, 
-               TQ_INT32 srcRowSize,
-               TQ_INT32 rows, 
-               TQ_INT32 cols, 
-               TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    compositeCopyChannel(PIXEL_BLUE, pixelSize, dst, dstRowSize, src, srcRowSize, rows, cols, opacity);
-}
-
-
-void compositeCopyOpacity(TQ_INT32 pixelSize,
-              TQ_UINT8 *dst, 
-              TQ_INT32 dstRowSize,
-              const TQ_UINT8 *src, 
-              TQ_INT32 srcRowSize,
-              TQ_INT32 rows, 
-              TQ_INT32 cols, 
-              TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-
-    // XXX: mess with intensity if there isn't an alpha channel, according to GM.
-    compositeCopyChannel(PIXEL_ALPHA, pixelSize, dst, dstRowSize, src, srcRowSize, rows, cols, opacity);
-
-}
-
-
-void compositeClear(TQ_INT32 pixelSize,
-            TQ_UINT8 *dst, 
-            TQ_INT32 dstRowSize,
-            const TQ_UINT8 *src, 
-            TQ_INT32 /*srcRowSize*/,
-            TQ_INT32 rows, 
-            TQ_INT32 cols,
-            TQ_UINT8 /*opacity*/ = OPACITY_OPAQUE)
-{
-
-    TQ_INT32 linesize = pixelSize * sizeof(TQ_UINT8) * cols;
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    d = dst;
-    s = src;
-    
-    while (rows-- > 0) {
-        memset(d, 0, linesize);
-        d += dstRowSize;
-    }
-    
-}
-
-
-void compositeDissolve(TQ_INT32 pixelSize,
-               TQ_UINT8 *dst, 
-               TQ_INT32 dstRowSize,
-               const TQ_UINT8 *src, 
-               TQ_INT32 srcRowSize,
-               TQ_INT32 rows, 
-               TQ_INT32 cols, 
-               TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    if (opacity == OPACITY_TRANSPARENT) 
-        return;
-
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    TQ_INT32 i;
-
-    double sAlpha, dAlpha;
-
-    while (rows-- > 0) {
-        d = dst;
-        s = src;
-        for (i = cols; i > 0; i--, d += pixelSize, s += pixelSize) {
-            // XXX: correct?
-            if (s[PIXEL_ALPHA] == OPACITY_TRANSPARENT) continue;
-
-            sAlpha = UINT8_MAX - s[PIXEL_ALPHA];
-            dAlpha = UINT8_MAX - d[PIXEL_ALPHA];
-            
-            d[PIXEL_RED]=(TQ_UINT8) (((double) sAlpha*s[PIXEL_RED]+
-                          (UINT8_MAX -sAlpha)*d[PIXEL_RED])/UINT8_MAX +0.5);
-            d[PIXEL_GREEN]= (TQ_UINT8) (((double) sAlpha*s[PIXEL_GREEN]+
-                           (UINT8_MAX -sAlpha)*d[PIXEL_GREEN])/UINT8_MAX +0.5);
-            d[PIXEL_BLUE] = (TQ_UINT8) (((double) sAlpha*s[PIXEL_BLUE]+
-                          (UINT8_MAX -sAlpha)*d[PIXEL_BLUE])/UINT8_MAX +0.5);
-            d[PIXEL_ALPHA] = OPACITY_OPAQUE;
-        }
-        dst += dstRowSize;
-        src += srcRowSize;
-    }
-
-}
-
-
-void compositeDisplace(TQ_INT32 pixelSize,
-               TQ_UINT8 *dst, 
-               TQ_INT32 dstRowSize,
-               const TQ_UINT8 *src, 
-               TQ_INT32 srcRowSize,
-               TQ_INT32 rows, 
-               TQ_INT32 cols, 
-               TQ_UINT8 /*opacity*/ = OPACITY_OPAQUE)
-{
-    TQ_INT32 linesize = pixelSize * sizeof(TQ_UINT8) * cols;
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-    d = dst;
-    s = src;
-    
-    while (rows-- > 0) {
-        memcpy(d, s, linesize);
-        d += dstRowSize;
-        s += srcRowSize;
-    }
-
-}
-
-#if 0
-void compositeModulate(TQ_INT32 pixelSize,
-               TQ_UINT8 *dst, 
-               TQ_INT32 dstRowSize,
-               const TQ_UINT8 *src, 
-               TQ_INT32 srcRowSize,
-               TQ_INT32 rows, 
-               TQ_INT32 cols, 
-               TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    if (opacity == OPACITY_TRANSPARENT) 
-        return;
-
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    TQ_INT32 i;
-
-    double sAlpha, dAlpha;
-    long offset;
-
-    while (rows-- > 0) {
-        d = dst;
-        s = src;
-        for (i = cols; i > 0; i--, d += pixelSize, s += pixelSize) {
-            // XXX: correct?
-            if (s[PIXEL_ALPHA] == OPACITY_TRANSPARENT) continue;
-
-            sAlpha = UINT8_MAX - s[PIXEL_ALPHA];
-            dAlpha = UINT8_MAX - d[PIXEL_ALPHA];
-            
-
-            offset=(long) (PixelIntensityToQuantum(&source)-midpoint);
-            if (offset == 0)
-                continue;
-            TransformHSL(d[PIXEL_RED],d[PIXEL_GREEN],d[PIXEL_BLUE],
-                     &hue,&saturation,&brightness);
-            brightness+=(percent_brightness*offset)/midpoint;
-            if (brightness < 0.0)
-                brightness=0.0;
-            else
-                if (brightness > 1.0)
-                    brightness=1.0;
-            HSLTransform(hue,saturation,brightness,&d[PIXEL_RED],
-                     &d[PIXEL_GREEN],&d[PIXEL_BLUE]);
-            
-            
-        }
-        dst += dstRowSize;
-        src += srcRowSize;
-    }
-
-
-}
-
-
-void compositeThreshold(TQ_INT32 pixelSize,
-            TQ_UINT8 *dst, 
-            TQ_INT32 dstRowSize,
-            const TQ_UINT8 *src, 
-            TQ_INT32 srcRowSize,
-            TQ_INT32 rows, 
-            TQ_INT32 cols, 
-            TQ_UINT8 opacity = OPACITY_OPAQUE)
-{
-    TQ_INT32 linesize = pixelSize * sizeof(TQ_UINT8) * cols;
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-    TQ_UINT8 alpha;
-    TQ_UINT8 invAlpha;
-    TQ_INT32 i;
-
-}
-
-#endif
-
-void compositeColorize(TQ_INT32,
-               TQ_UINT8 *, 
-               TQ_INT32 ,
-               const TQ_UINT8 *, 
-               TQ_INT32 ,
-               TQ_INT32 , 
-               TQ_INT32 , 
-               TQ_UINT8 )
-{
-}
-
-
-void compositeLuminize(TQ_INT32 ,
-               TQ_UINT8 *, 
-               TQ_INT32 ,
-               const TQ_UINT8 *, 
-               TQ_INT32 ,
-               TQ_INT32 , 
-               TQ_INT32 , 
-               TQ_UINT8 )
-{
-
-}
-
-#endif
-
diff --git a/krita/colorspaces/rgb_u8/kis_rgb_colorspace.cc b/krita/colorspaces/rgb_u8/kis_rgb_colorspace.cc
deleted file mode 100644
index 34ab79fc1..000000000
--- a/krita/colorspaces/rgb_u8/kis_rgb_colorspace.cc
+++ /dev/null
@@ -1,1501 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien  <freak@codepimps.org>
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <config.h>
-#include <limits.h>
-#include <stdlib.h>
-#include LCMS_HEADER
-
-#include <tqimage.h>
-#include <tqcolor.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include "kis_rgb_colorspace.h"
-#include "kis_u8_base_colorspace.h"
-#include "kis_color_conversions.h"
-#include "kis_integer_maths.h"
-#include "kis_colorspace_factory_registry.h"
-
-#include "composite.h"
-
-#define downscale(quantum)  (quantum) //((unsigned char) ((quantum)/257UL))
-#define upscale(value)  (value) // ((TQ_UINT8) (257UL*(value)))
-
-namespace {
-    const TQ_INT32 MAX_CHANNEL_RGB = 3;
-    const TQ_INT32 MAX_CHANNEL_RGBA = 4;
-}
-
-KisRgbColorSpace::KisRgbColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) :
-    KisU8BaseColorSpace(KisID("RGBA", i18n("RGB (8-bit integer/channel)")), TYPE_BGRA_8, icSigRgbData, tqparent, p)
-{
-    m_channels.push_back(new KisChannelInfo(i18n("Red"), i18n("R"), 2, KisChannelInfo::COLOR, KisChannelInfo::UINT8, 1, TQColor(255,0,0)));
-    m_channels.push_back(new KisChannelInfo(i18n("Green"), i18n("G"), 1, KisChannelInfo::COLOR, KisChannelInfo::UINT8, 1, TQColor(0,255,0)));
-    m_channels.push_back(new KisChannelInfo(i18n("Blue"), i18n("B"), 0, KisChannelInfo::COLOR, KisChannelInfo::UINT8, 1, TQColor(0,0,255)));
-    m_channels.push_back(new KisChannelInfo(i18n("Alpha"), i18n("A"), 3, KisChannelInfo::ALPHA, KisChannelInfo::UINT8));
-
-    m_alphaPos = PIXEL_ALPHA;
-    init();
-}
-
-KisRgbColorSpace::~KisRgbColorSpace()
-{
-}
-
-void KisRgbColorSpace::setPixel(TQ_UINT8 *pixel, TQ_UINT8 red, TQ_UINT8 green, TQ_UINT8 blue, TQ_UINT8 alpha) const
-{
-    pixel[PIXEL_RED] = red;
-    pixel[PIXEL_GREEN] = green;
-    pixel[PIXEL_BLUE] = blue;
-    pixel[PIXEL_ALPHA] = alpha;
-}
-
-void KisRgbColorSpace::getPixel(const TQ_UINT8 *pixel, TQ_UINT8 *red, TQ_UINT8 *green, TQ_UINT8 *blue, TQ_UINT8 *alpha) const
-{
-    *red = pixel[PIXEL_RED];
-    *green = pixel[PIXEL_GREEN];
-    *blue = pixel[PIXEL_BLUE];
-    *alpha = pixel[PIXEL_ALPHA];
-}
-
-void KisRgbColorSpace::mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const
-{
-    TQ_UINT32 totalRed = 0, totalGreen = 0, totalBlue = 0, totalAlpha = 0;
-
-    while (nColors--)
-    {
-        TQ_UINT32 alpha = (*colors)[PIXEL_ALPHA];
-        // although we only mult by weight and not by weight*256/255
-        // we divide by the same amount later, so there is no need
-        TQ_UINT32 alphaTimesWeight = alpha * *weights;
-
-        totalRed += (*colors)[PIXEL_RED] * alphaTimesWeight;
-        totalGreen += (*colors)[PIXEL_GREEN] * alphaTimesWeight;
-        totalBlue += (*colors)[PIXEL_BLUE] * alphaTimesWeight;
-        totalAlpha += alphaTimesWeight;
-
-        weights++;
-        colors++;
-    }
-
-    // note this is correct - if you look at the above calculation
-    if (totalAlpha > 255*255) totalAlpha = 255*255;
-
-    // Divide by 255.
-    dst[PIXEL_ALPHA] =(((totalAlpha + 0x80)>>8)+totalAlpha + 0x80) >>8;
-
-    if (totalAlpha > 0) {
-        totalRed = totalRed / totalAlpha;
-        totalGreen = totalGreen / totalAlpha;
-        totalBlue = totalBlue / totalAlpha;
-    } // else the values are already 0 too
-
-    TQ_UINT32 dstRed = totalRed;
-    //Q_ASSERT(dstRed <= 255);
-    if (dstRed > 255) dstRed = 255;
-    dst[PIXEL_RED] = dstRed;
-
-    TQ_UINT32 dstGreen = totalGreen;
-    //Q_ASSERT(dstGreen <= 255);
-    if (dstGreen > 255) dstGreen = 255;
-    dst[PIXEL_GREEN] = dstGreen;
-
-    TQ_UINT32 dstBlue = totalBlue;
-    //Q_ASSERT(dstBlue <= 255);
-    if (dstBlue > 255) dstBlue = 255;
-    dst[PIXEL_BLUE] = dstBlue;
-}
-
-void KisRgbColorSpace::convolveColors(TQ_UINT8** colors, TQ_INT32* kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const
-{
-    TQ_INT64 totalRed = 0, totalGreen = 0, totalBlue = 0, totalAlpha = 0;
-    TQ_INT32 totalWeight = 0, totalWeightTransparent = 0;
-    while (nColors--)
-    {
-        TQ_INT32 weight = *kernelValues;
-
-        if (weight != 0) {
-            if((*colors)[PIXEL_ALPHA] == 0)
-            {
-              totalWeightTransparent += weight;
-            } else {
-              totalRed += (*colors)[PIXEL_RED] * weight;
-              totalGreen += (*colors)[PIXEL_GREEN] * weight;
-              totalBlue += (*colors)[PIXEL_BLUE] * weight;
-            }
-            totalAlpha += (*colors)[PIXEL_ALPHA] * weight;
-            totalWeight += weight;
-        }
-        colors++;
-        kernelValues++;
-    }
-    if(totalWeightTransparent == 0)
-    {
-      if (channelFlags & KisChannelInfo::FLAG_COLOR) {
-          dst[PIXEL_RED] = CLAMP((totalRed / factor) + offset, 0, TQ_UINT8_MAX);
-          dst[PIXEL_GREEN] = CLAMP((totalGreen / factor) + offset, 0, TQ_UINT8_MAX);
-          dst[PIXEL_BLUE] =  CLAMP((totalBlue / factor) + offset, 0, TQ_UINT8_MAX);
-      }
-      if (channelFlags & KisChannelInfo::FLAG_ALPHA) {
-          dst[PIXEL_ALPHA] = CLAMP((totalAlpha/ factor) + offset, 0, TQ_UINT8_MAX);
-      }
-    } else if(totalWeightTransparent != totalWeight && (channelFlags & KisChannelInfo::FLAG_COLOR)) {
-      if(totalWeight == factor)
-      {
-        TQ_INT64 a = ( totalWeight - totalWeightTransparent );
-        dst[PIXEL_RED] = CLAMP((totalRed / a) + offset, 0, TQ_UINT8_MAX);
-        dst[PIXEL_GREEN] = CLAMP((totalGreen / a) + offset, 0, TQ_UINT8_MAX);
-        dst[PIXEL_BLUE] =  CLAMP((totalBlue / a) + offset, 0, TQ_UINT8_MAX);
-      } else {
-        double a = totalWeight / ( factor * ( totalWeight - totalWeightTransparent ) ); // use double as it can saturate
-        dst[PIXEL_RED] = CLAMP( (TQ_UINT8)(totalRed * a) + offset, 0, TQ_UINT8_MAX);
-        dst[PIXEL_GREEN] = CLAMP( (TQ_UINT8)(totalGreen * a) + offset, 0, TQ_UINT8_MAX);
-        dst[PIXEL_BLUE] =  CLAMP( (TQ_UINT8)(totalBlue * a) + offset, 0, TQ_UINT8_MAX);
-      }
-    }
-    if (channelFlags & KisChannelInfo::FLAG_ALPHA) {
-        dst[PIXEL_ALPHA] = CLAMP((totalAlpha/ factor) + offset, 0, TQ_UINT8_MAX);
-    }
-}
-
-
-void KisRgbColorSpace::invertColor(TQ_UINT8 * src, TQ_INT32 nPixels)
-{
-    TQ_UINT32 psize = pixelSize();
-
-    while (nPixels--)
-    {
-        src[PIXEL_RED] = TQ_UINT8_MAX - src[PIXEL_RED];
-        src[PIXEL_GREEN] = TQ_UINT8_MAX - src[PIXEL_GREEN];
-        src[PIXEL_BLUE] = TQ_UINT8_MAX - src[PIXEL_BLUE];
-
-        src += psize;
-    }
-}
-
-
-void KisRgbColorSpace::darken(const TQ_UINT8 * src, TQ_UINT8 * dst, TQ_INT32 shade, bool compensate, double compensation, TQ_INT32 nPixels) const
-{
-    TQ_UINT32 pSize = pixelSize();
-
-    while (nPixels--) {
-        if (compensate) {
-            dst[PIXEL_RED]  = (TQ_INT8) TQMIN(255,((src[PIXEL_RED] * shade) / (compensation * 255)));
-            dst[PIXEL_GREEN]  = (TQ_INT8) TQMIN(255,((src[PIXEL_GREEN] * shade) / (compensation * 255)));
-            dst[PIXEL_BLUE]  = (TQ_INT8) TQMIN(255,((src[PIXEL_BLUE] * shade) / (compensation * 255)));
-        }
-        else {
-            dst[PIXEL_RED]  = (TQ_INT8) TQMIN(255, (src[PIXEL_RED] * shade / 255));
-            dst[PIXEL_BLUE]  = (TQ_INT8) TQMIN(255, (src[PIXEL_BLUE] * shade / 255));
-            dst[PIXEL_GREEN]  = (TQ_INT8) TQMIN(255, (src[PIXEL_GREEN] * shade / 255));
-        }
-        dst += pSize;
-        src += pSize;
-    }
-}
-
-TQ_UINT8 KisRgbColorSpace::intensity8(const TQ_UINT8 * src) const
-{
-    return (TQ_UINT8)((src[PIXEL_RED] * 0.30 + src[PIXEL_GREEN] * 0.59 + src[PIXEL_BLUE] * 0.11) + 0.5);
-}
-
-TQValueVector<KisChannelInfo *> KisRgbColorSpace::channels() const
-{
-    return m_channels;
-}
-
-TQ_UINT32 KisRgbColorSpace::nChannels() const
-{
-    return MAX_CHANNEL_RGBA;
-}
-
-TQ_UINT32 KisRgbColorSpace::nColorChannels() const
-{
-    return MAX_CHANNEL_RGB;
-}
-
-TQ_UINT32 KisRgbColorSpace::pixelSize() const
-{
-    return MAX_CHANNEL_RGBA;
-}
-
-TQImage KisRgbColorSpace::convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width, TQ_INT32 height,
-                                         KisProfile *  dstProfile,
-                                         TQ_INT32 renderingIntent, float /*exposure*/)
-
-{
-    Q_ASSERT(data);
-    TQImage img = TQImage(const_cast<TQ_UINT8 *>(data), width, height, 32, 0, 0, TQImage::LittleEndian);
-    img.setAlphaBuffer(true);
-    // XXX: The previous version of this code used the quantum data directly
-    // as an optimisation. We're introducing a copy overhead here which could
-    // be factored out again if needed.
-    img = img.copy();
-
-    if (dstProfile != 0) {
-        KisColorSpace *dstCS = m_parent->getColorSpace(KisID("RGBA",""),  dstProfile->productName());
-        convertPixelsTo(img.bits(),
-                        img.bits(), dstCS,
-                        width * height, renderingIntent);
-    }
-
-    return img;
-}
-
-
-
-
-void KisRgbColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride,
-                                     const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride,
-                                     const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride,
-                                     TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-        TQ_INT32 columns = numColumns;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(srcAlpha, opacity);
-                }
-
-                if (srcAlpha == OPACITY_OPAQUE) {
-                    memcpy(dst, src, MAX_CHANNEL_RGBA * sizeof(TQ_UINT8));
-                } else {
-                    TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-                    TQ_UINT8 srcBlend;
-
-                    if (dstAlpha == OPACITY_OPAQUE) {
-                        srcBlend = srcAlpha;
-                    } else {
-                        TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                        dst[PIXEL_ALPHA] = newAlpha;
-
-                        if (newAlpha != 0) {
-                            srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                        } else {
-                            srcBlend = srcAlpha;
-                        }
-                    }
-
-                    if (srcBlend == OPACITY_OPAQUE) {
-                        memcpy(dst, src, MAX_CHANNEL_RGB * sizeof(TQ_UINT8));
-                    } else {
-                        dst[PIXEL_RED] = UINT8_BLEND(src[PIXEL_RED], dst[PIXEL_RED], srcBlend);
-                        dst[PIXEL_GREEN] = UINT8_BLEND(src[PIXEL_GREEN], dst[PIXEL_GREEN], srcBlend);
-                        dst[PIXEL_BLUE] = UINT8_BLEND(src[PIXEL_BLUE], dst[PIXEL_BLUE], srcBlend);
-                    }
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-
-void KisRgbColorSpace::compositeAlphaDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride,
-                                     const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride,
-                                     const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride,
-                                     TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-        TQ_INT32 columns = numColumns;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (opacity != OPACITY_OPAQUE) {
-                srcAlpha = UINT8_MULT(srcAlpha, opacity);
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT && srcAlpha >= dstAlpha) {
-                dst[PIXEL_ALPHA] = srcAlpha;
-                memcpy(dst, src, MAX_CHANNEL_RGB * sizeof(TQ_UINT8));
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-
-void KisRgbColorSpace::compositeMultiply(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                TQ_UINT8 srcColor = src[PIXEL_RED];
-                TQ_UINT8 dstColor = dst[PIXEL_RED];
-
-                srcColor = UINT8_MULT(srcColor, dstColor);
-
-                dst[PIXEL_RED] = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                srcColor = src[PIXEL_GREEN];
-                dstColor = dst[PIXEL_GREEN];
-
-                srcColor = UINT8_MULT(srcColor, dstColor);
-
-                dst[PIXEL_GREEN] = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                srcColor = src[PIXEL_BLUE];
-                dstColor = dst[PIXEL_BLUE];
-
-                srcColor = UINT8_MULT(srcColor, dstColor);
-
-                dst[PIXEL_BLUE] = UINT8_BLEND(srcColor, dstColor, srcBlend);
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisRgbColorSpace::compositeDivide(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = TQMIN((dstColor * (UINT8_MAX + 1u) + (srcColor / 2u)) / (1u + srcColor), UINT8_MAX);
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisRgbColorSpace::compositeScreen(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = UINT8_MAX - UINT8_MULT(UINT8_MAX - dstColor, UINT8_MAX - srcColor);
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisRgbColorSpace::compositeOverlay(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = UINT8_MULT(dstColor, dstColor + UINT8_MULT(2 * srcColor, UINT8_MAX - dstColor));
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisRgbColorSpace::compositeDodge(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = TQMIN((dstColor * (UINT8_MAX + 1)) / (UINT8_MAX + 1 - srcColor), UINT8_MAX);
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisRgbColorSpace::compositeBurn(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = TQMIN(((UINT8_MAX - dstColor) * (UINT8_MAX + 1)) / (srcColor + 1), UINT8_MAX);
-                    if (UINT8_MAX - srcColor > UINT8_MAX) srcColor = UINT8_MAX;
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisRgbColorSpace::compositeDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = TQMIN(srcColor, dstColor);
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisRgbColorSpace::compositeLighten(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                for (int channel = 0; channel < MAX_CHANNEL_RGB; channel++) {
-
-                    TQ_UINT8 srcColor = src[channel];
-                    TQ_UINT8 dstColor = dst[channel];
-
-                    srcColor = TQMAX(srcColor, dstColor);
-
-                    TQ_UINT8 newColor = UINT8_BLEND(srcColor, dstColor, srcBlend);
-
-                    dst[channel] = newColor;
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisRgbColorSpace::compositeHue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                int dstRed = dst[PIXEL_RED];
-                int dstGreen = dst[PIXEL_GREEN];
-                int dstBlue = dst[PIXEL_BLUE];
-
-                int srcHue;
-                int srcSaturation;
-                int srcValue;
-                int dstHue;
-                int dstSaturation;
-                int dstValue;
-
-                rgb_to_hsv(src[PIXEL_RED], src[PIXEL_GREEN], src[PIXEL_BLUE], &srcHue, &srcSaturation, &srcValue);
-                rgb_to_hsv(dstRed, dstGreen, dstBlue, &dstHue, &dstSaturation, &dstValue);
-
-                int srcRed;
-                int srcGreen;
-                int srcBlue;
-
-                hsv_to_rgb(srcHue, dstSaturation, dstValue, &srcRed, &srcGreen, &srcBlue);
-
-                dst[PIXEL_RED] = UINT8_BLEND(srcRed, dstRed, srcBlend);
-                dst[PIXEL_GREEN] = UINT8_BLEND(srcGreen, dstGreen, srcBlend);
-                dst[PIXEL_BLUE] = UINT8_BLEND(srcBlue, dstBlue, srcBlend);
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisRgbColorSpace::compositeSaturation(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                int dstRed = dst[PIXEL_RED];
-                int dstGreen = dst[PIXEL_GREEN];
-                int dstBlue = dst[PIXEL_BLUE];
-
-                int srcHue;
-                int srcSaturation;
-                int srcValue;
-                int dstHue;
-                int dstSaturation;
-                int dstValue;
-
-                rgb_to_hsv(src[PIXEL_RED], src[PIXEL_GREEN], src[PIXEL_BLUE], &srcHue, &srcSaturation, &srcValue);
-                rgb_to_hsv(dstRed, dstGreen, dstBlue, &dstHue, &dstSaturation, &dstValue);
-
-                int srcRed;
-                int srcGreen;
-                int srcBlue;
-
-                hsv_to_rgb(dstHue, srcSaturation, dstValue, &srcRed, &srcGreen, &srcBlue);
-
-                dst[PIXEL_RED] = UINT8_BLEND(srcRed, dstRed, srcBlend);
-                dst[PIXEL_GREEN] = UINT8_BLEND(srcGreen, dstGreen, srcBlend);
-                dst[PIXEL_BLUE] = UINT8_BLEND(srcBlue, dstBlue, srcBlend);
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisRgbColorSpace::compositeValue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                int dstRed = dst[PIXEL_RED];
-                int dstGreen = dst[PIXEL_GREEN];
-                int dstBlue = dst[PIXEL_BLUE];
-
-                int srcHue;
-                int srcSaturation;
-                int srcValue;
-                int dstHue;
-                int dstSaturation;
-                int dstValue;
-
-                rgb_to_hsv(src[PIXEL_RED], src[PIXEL_GREEN], src[PIXEL_BLUE], &srcHue, &srcSaturation, &srcValue);
-                rgb_to_hsv(dstRed, dstGreen, dstBlue, &dstHue, &dstSaturation, &dstValue);
-
-                int srcRed;
-                int srcGreen;
-                int srcBlue;
-
-                hsv_to_rgb(dstHue, dstSaturation, srcValue, &srcRed, &srcGreen, &srcBlue);
-
-                dst[PIXEL_RED] = UINT8_BLEND(srcRed, dstRed, srcBlend);
-                dst[PIXEL_GREEN] = UINT8_BLEND(srcGreen, dstGreen, srcBlend);
-                dst[PIXEL_BLUE] = UINT8_BLEND(srcBlue, dstBlue, srcBlend);
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisRgbColorSpace::compositeColor(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        TQ_INT32 columns = numColumns;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-            TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-            srcAlpha = TQMIN(srcAlpha, dstAlpha);
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(src[PIXEL_ALPHA], opacity);
-                }
-
-                TQ_UINT8 srcBlend;
-
-                if (dstAlpha == OPACITY_OPAQUE) {
-                    srcBlend = srcAlpha;
-                } else {
-                    TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                    dst[PIXEL_ALPHA] = newAlpha;
-
-                    if (newAlpha != 0) {
-                        srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                    } else {
-                        srcBlend = srcAlpha;
-                    }
-                }
-
-                int dstRed = dst[PIXEL_RED];
-                int dstGreen = dst[PIXEL_GREEN];
-                int dstBlue = dst[PIXEL_BLUE];
-
-                int srcHue;
-                int srcSaturation;
-                int srcLightness;
-                int dstHue;
-                int dstSaturation;
-                int dstLightness;
-
-                rgb_to_hls(src[PIXEL_RED], src[PIXEL_GREEN], src[PIXEL_BLUE], &srcHue, &srcLightness, &srcSaturation);
-                rgb_to_hls(dstRed, dstGreen, dstBlue, &dstHue, &dstLightness, &dstSaturation);
-
-                TQ_UINT8 srcRed;
-                TQ_UINT8 srcGreen;
-                TQ_UINT8 srcBlue;
-
-                hls_to_rgb(srcHue, dstLightness, srcSaturation, &srcRed, &srcGreen, &srcBlue);
-
-                dst[PIXEL_RED] = UINT8_BLEND(srcRed, dstRed, srcBlend);
-                dst[PIXEL_GREEN] = UINT8_BLEND(srcGreen, dstGreen, srcBlend);
-                dst[PIXEL_BLUE] = UINT8_BLEND(srcBlue, dstBlue, srcBlend);
-            }
-
-            columns--;
-            src += MAX_CHANNEL_RGBA;
-            dst += MAX_CHANNEL_RGBA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-}
-
-void KisRgbColorSpace::compositeErase(TQ_UINT8 *dst,
-            TQ_INT32 dstRowSize,
-            const TQ_UINT8 *src,
-            TQ_INT32 srcRowSize,
-            const TQ_UINT8 *srcAlphaMask,
-            TQ_INT32 tqmaskRowStride,
-            TQ_INT32 rows,
-            TQ_INT32 cols,
-            TQ_UINT8 /*opacity*/)
-{
-    TQ_INT32 i;
-    TQ_UINT8 srcAlpha;
-
-    while (rows-- > 0)
-    {
-        const TQ_UINT8 *s = src;
-        TQ_UINT8 *d = dst;
-        const TQ_UINT8 *tqmask = srcAlphaMask;
-
-        for (i = cols; i > 0; i--, s+=MAX_CHANNEL_RGBA, d+=MAX_CHANNEL_RGBA)
-        {
-            srcAlpha = s[PIXEL_ALPHA];
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_BLEND(srcAlpha, OPACITY_OPAQUE, *tqmask);
-                tqmask++;
-            }
-            d[PIXEL_ALPHA] = UINT8_MULT(srcAlpha, d[PIXEL_ALPHA]);
-        }
-
-        dst += dstRowSize;
-        if(srcAlphaMask)
-            srcAlphaMask += tqmaskRowStride;
-        src += srcRowSize;
-    }
-}
-
-void KisRgbColorSpace::bitBlt(TQ_UINT8 *dst,
-                      TQ_INT32 dstRowStride,
-                      const TQ_UINT8 *src,
-                      TQ_INT32 srcRowStride,
-                      const TQ_UINT8 *tqmask,
-                      TQ_INT32 tqmaskRowStride,
-                      TQ_UINT8 opacity,
-                      TQ_INT32 rows,
-                      TQ_INT32 cols,
-                      const KisCompositeOp& op)
-{
-
-    switch (op.op()) {
-    case COMPOSITE_UNDEF:
-        // Undefined == no composition
-        break;
-    case COMPOSITE_OVER:
-        compositeOver(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ALPHA_DARKEN:
-        compositeAlphaDarken(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_IN:
-        compositeIn(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_OUT:
-        compositeOut(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ATOP:
-        compositeAtop(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_XOR:
-        compositeXor(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_PLUS:
-        compositePlus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_MINUS:
-        compositeMinus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ADD:
-        compositeAdd(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SUBTRACT:
-        compositeSubtract(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DIFF:
-        compositeDiff(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_MULT:
-        compositeMultiply(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DIVIDE:
-        compositeDivide(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_BUMPMAP:
-        compositeBumpmap(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY:
-        compositeCopy(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_RED:
-        compositeCopyRed(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_GREEN:
-        compositeCopyGreen(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_BLUE:
-        compositeCopyBlue(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY_OPACITY:
-        compositeCopyOpacity(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_CLEAR:
-        compositeClear(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DISSOLVE:
-        compositeDissolve(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DISPLACE:
-        compositeDisplace(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-#if 0
-    case COMPOSITE_MODULATE:
-        compositeModulate(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_THRESHOLD:
-        compositeThreshold(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-#endif
-    case COMPOSITE_NO:
-        // No composition.
-        break;
-    case COMPOSITE_DARKEN:
-        compositeDarken(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_LIGHTEN:
-        compositeLighten(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_HUE:
-        compositeHue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SATURATION:
-        compositeSaturation(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_VALUE:
-        compositeValue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COLOR:
-        compositeColor(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COLORIZE:
-        compositeColorize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_LUMINIZE:
-        compositeLuminize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_SCREEN:
-        compositeScreen(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_OVERLAY:
-        compositeOverlay(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_ERASE:
-        compositeErase(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_DODGE:
-        compositeDodge(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_BURN:
-        compositeBurn(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    default:
-        break;
-    }
-}
-
-KisCompositeOpList KisRgbColorSpace::userVisiblecompositeOps() const
-{
-    KisCompositeOpList list;
-
-    list.append(KisCompositeOp(COMPOSITE_OVER));
-    list.append(KisCompositeOp(COMPOSITE_ALPHA_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_MULT));
-    list.append(KisCompositeOp(COMPOSITE_BURN));
-    list.append(KisCompositeOp(COMPOSITE_DODGE));
-    list.append(KisCompositeOp(COMPOSITE_DIVIDE));
-    list.append(KisCompositeOp(COMPOSITE_SCREEN));
-    list.append(KisCompositeOp(COMPOSITE_OVERLAY));
-    list.append(KisCompositeOp(COMPOSITE_DARKEN));
-    list.append(KisCompositeOp(COMPOSITE_LIGHTEN));
-    list.append(KisCompositeOp(COMPOSITE_HUE));
-    list.append(KisCompositeOp(COMPOSITE_SATURATION));
-    list.append(KisCompositeOp(COMPOSITE_VALUE));
-    list.append(KisCompositeOp(COMPOSITE_COLOR));
-    list.append(KisCompositeOp(COMPOSITE_PLUS));
-    list.append(KisCompositeOp(COMPOSITE_MINUS));
-    list.append(KisCompositeOp(COMPOSITE_SUBTRACT));
-    list.append(KisCompositeOp(COMPOSITE_ADD));
-
-    return list;
-}
diff --git a/krita/colorspaces/rgb_u8/kis_rgb_colorspace.h b/krita/colorspaces/rgb_u8/kis_rgb_colorspace.h
deleted file mode 100644
index 37c54d7fa..000000000
--- a/krita/colorspaces/rgb_u8/kis_rgb_colorspace.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien  <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_STRATEGY_COLORSPACE_RGB_H_
-#define KIS_STRATEGY_COLORSPACE_RGB_H_
-
-#include "klocale.h"
-
-#include "kis_global.h"
-#include "kis_u8_base_colorspace.h"
-#include "koffice_export.h"
-
-const TQ_UINT8 PIXEL_BLUE = 0;
-const TQ_UINT8 PIXEL_GREEN = 1;
-const TQ_UINT8 PIXEL_RED = 2;
-const TQ_UINT8 PIXEL_ALPHA = 3;
-
-class KRITATOOL_EXPORT KisRgbColorSpace : public KisU8BaseColorSpace {
-public:
-    KisRgbColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p);
-    virtual ~KisRgbColorSpace();
-
-    virtual bool willDegrade(ColorSpaceIndependence)
-        {
-            return false;
-        };
-
-
-public:
-    void setPixel(TQ_UINT8 *pixel, TQ_UINT8 red, TQ_UINT8 green, TQ_UINT8 blue, TQ_UINT8 alpha) const;
-    void getPixel(const TQ_UINT8 *pixel, TQ_UINT8 *red, TQ_UINT8 *green, TQ_UINT8 *blue, TQ_UINT8 *alpha) const;
-
-    virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const;
-    virtual void convolveColors(TQ_UINT8** colors, TQ_INT32* kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const;
-    virtual void invertColor(TQ_UINT8 * src, TQ_INT32 nPixels);
-    virtual void darken(const TQ_UINT8 * src, TQ_UINT8 * dst, TQ_INT32 shade, bool compensate, double compensation, TQ_INT32 nPixels) const;
-    virtual TQ_UINT8 intensity8(const TQ_UINT8 * src) const;
-
-    virtual TQValueVector<KisChannelInfo *> channels() const;
-    virtual TQ_UINT32 nChannels() const;
-    virtual TQ_UINT32 nColorChannels() const;
-    virtual TQ_UINT32 pixelSize() const;
-
-    virtual TQImage convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width, TQ_INT32 height,
-                       KisProfile *  dstProfile = 0,
-                       TQ_INT32 renderingIntent = INTENT_PERCEPTUAL,
-                       float exposure = 0.0f);
-
-    virtual KisCompositeOpList userVisiblecompositeOps() const;
-
-protected:
-
-    virtual void bitBlt(TQ_UINT8 *dst,
-                TQ_INT32 dstRowStride,
-                const TQ_UINT8 *src,
-                TQ_INT32 srcRowStride,
-                const TQ_UINT8 *srcAlphaMask,
-                TQ_INT32 tqmaskRowStride,
-                TQ_UINT8 opacity,
-                TQ_INT32 rows,
-                TQ_INT32 cols,
-                const KisCompositeOp& op);
-
-    void compositeOver(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeAlphaDarken(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeMultiply(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeDivide(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeScreen(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeOverlay(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeDodge(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeBurn(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeDarken(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeLighten(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeHue(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeSaturation(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeValue(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeColor(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-};
-
-class KisRgbColorSpaceFactory : public KisColorSpaceFactory
-{
-public:
-    /**
-     * Krita definition for use in .kra files and internally: unchanging name +
-     * i18n'able description.
-     */
-    virtual KisID id() const { return KisID("RGBA", i18n("RGB (8-bit integer/channel)")); };
-
-    /**
-     * lcms colorspace type definition.
-     */
-    virtual TQ_UINT32 colorSpaceType() { return TYPE_BGRA_8; };
-
-    virtual icColorSpaceSignature colorSpaceSignature() { return icSigRgbData; };
-
-    virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile * p) { return new KisRgbColorSpace(tqparent, p); };
-
-    virtual TQString defaultProfile() { return "sRGB built-in - (lcms internal)"; };
-};
-
-#endif // KIS_STRATEGY_COLORSPACE_RGB_H_
diff --git a/krita/colorspaces/rgb_u8/kritargbplugin.desktop b/krita/colorspaces/rgb_u8/kritargbplugin.desktop
deleted file mode 100644
index a8f5c30d2..000000000
--- a/krita/colorspaces/rgb_u8/kritargbplugin.desktop
+++ /dev/null
@@ -1,99 +0,0 @@
-[Desktop Entry]
-Name=RGB Color Model
-Name[bg]=Цветови модел RGB
-Name[br]=Gobari al livioù RGB
-Name[ca]=Model de color RGB
-Name[cy]=Model Lliw RGB
-Name[da]=RGB-farvemodel
-Name[de]=RGB-Farbmodell
-Name[el]=Χρωματικό μοντέλο RGB
-Name[en_GB]=RGB Colour Model
-Name[eo]=RGB-kolormodelo
-Name[es]=Modelo de color RGB
-Name[et]=RGB värvimudel
-Name[eu]=RGB kolore-eredua
-Name[fa]=مدل رنگ RGB
-Name[fi]=RGB-värimalli
-Name[fr]=Modèle de couleurs RVB
-Name[fy]=RGB-kleurmodel
-Name[gl]=Modelo de Cores RGB
-Name[he]=מודל צבעים RGB
-Name[hi]=आरजीबी रंग नमूना
-Name[hu]=RGB színmodell
-Name[is]=RGB litategund
-Name[it]=Modello di colore RGB
-Name[ja]=RGB カラーモデル
-Name[km]=គំរូ​ពណ៌ RGB
-Name[lt]=RGB spalvų modelis
-Name[lv]=RGB krāsu modelis
-Name[ms]=Model Warna RGB
-Name[nb]=RGB-fargemodell
-Name[nds]=RGB-Klöörmodell
-Name[ne]=RGB रङ मोडेल
-Name[nl]=RGB-kleurmodel
-Name[nn]=RGB-fargemodell
-Name[pl]=Przestrzeń barw RGB
-Name[pt]=Modelo de Cor RGB
-Name[pt_BR]=Modelo de Cor RGB
-Name[ru]=RGB
-Name[se]=RGB-ivdnemálle
-Name[sk]=Model farieb RGB
-Name[sl]=Barvni model RGB
-Name[sr]=RGB модел боја
-Name[sr@Latn]=RGB model boja
-Name[sv]=RGB-färgmodell
-Name[ta]=RGB வண்ண மாதிரி
-Name[tr]=RGB Renk Modeli
-Name[uk]=Модель кольору RGB
-Name[uz]=RGB rang usuli
-Name[uz@cyrillic]=RGB ранг усули
-Name[zh_CN]=RGB 色彩模型
-Name[zh_TW]=RGB 色彩模型
-Comment=Color model for 8-bit/channel RGB images
-Comment[bg]=Цветови модел за 8 битови изображения RGB
-Comment[ca]=Model de color per a 8 bits/canal d'imatges RGB
-Comment[cy]=Model lliw ar gyfer delweddau RGB 8-did/sianel
-Comment[da]=Farvemodel for 8-bit/kanal RGB-billeder
-Comment[de]=Farbmodell für 8-bit pro Kanal RGB-Bilder
-Comment[el]=Χρωματικό μοντέλο για 8-bit/κανάλι RGB εικόνες
-Comment[en_GB]=Colour model for 8-bit/channel RGB images
-Comment[es]=Modelo de color para imágenes de 8 bits/canal RGB
-Comment[et]=8-bitiste kanalitega RGB-piltide värvimudel
-Comment[eu]=8-bit/kanaleko RGB irudien kolore-eredua
-Comment[fa]=مدل رنگ برای تصاویر ۸ بیتی/RGB مجرا
-Comment[fi]=Värimalli 8-bittisille/kanavaisille RGB-kuville
-Comment[fr]=Modèle de couleurs pour des images RVB en 8 bits/plage
-Comment[fy]=Kleurmodel foar 8-bit/kanaal RGB-ôfbyldings
-Comment[gl]=Modelo de Cores para imaxe RGB de 8-bit/canal
-Comment[he]=מודל צבעים עבור תמונות RGB של 8 סיביות/ערוצים
-Comment[hi]=8-बिट/चैनल आरजीबी छवियों के लिए रंग नमूना
-Comment[hu]=Színmodell 8 bit/csatorna RGB képekhez
-Comment[is]=Litategund fyrir 8-bita/rás RGB myndir
-Comment[it]=Modello di colore per immagini RGB a canale di 8 bit
-Comment[ja]=8 ビット/チャンネル RGB 画像のためのカラーモデル
-Comment[km]=គំរូ​ពណ៌​សម្រាប់​រូបភាព RGB ៨ ប៊ីត/មួយ​ឆានែល
-Comment[ms]=Model warna imej RGB 8-bit/saluran
-Comment[nb]=Fargemodell for RGB-bilde med 8 bit per kanal
-Comment[nds]=Klöörmodell för RGB-Biller mit 8-Bit per Kanaal
-Comment[ne]=८-बिट/च्यानल RGB छविहरूका लागि रङ मोडेल
-Comment[nl]=Kleurmodel voor 8-bit/kanaal RGB-afbeeldingen
-Comment[nn]=Fargemodell for RGB-bilete med 8 bit per kanal
-Comment[pl]=Przestrzeń barw dla obrazków RGB 8-bitów/kanał
-Comment[pt]=Modelo de cor para imagens RGB com 8 bits por canal
-Comment[pt_BR]=Modelo de cor para imagens com 8-bits de canal RGB
-Comment[ru]=Цветовое пространство RGB (8-бит/канал)
-Comment[sk]=Model farieb pre RGB obrázky s 8-bitovými číslami na kanál
-Comment[sl]=Barvni model za slike RGB z 8 biti/kanal
-Comment[sr]=Модел боја за RGB слике са 8 битова/каналу
-Comment[sr@Latn]=Model boja za RGB slike sa 8 bitova/kanalu
-Comment[sv]=Färgmodell för 8-bitar/kanal RGB-bilder
-Comment[ta]=8/பிட்/வழி RGB பிம்பங்களுக்கான வண்ண முறை
-Comment[tg]=Mодели ранга барои 8-бит /канал тасвирҳои RGB
-Comment[tr]=8-bit/kanal RGB görüntüler için renk modeli.
-Comment[uk]=Модель кольорів для зображень RGB з 8-бітами/канал
-Comment[zh_CN]=8 位/通道 RGB 图像的色彩模型
-Comment[zh_TW]=8-bit/色頻 RGB 圖片的色彩模型
-ServiceTypes=Krita/ColorSpace
-Type=Service
-X-KDE-Library=kritargbplugin
-X-Krita-Version=2
diff --git a/krita/colorspaces/rgb_u8/rgb_plugin.cc b/krita/colorspaces/rgb_u8/rgb_plugin.cc
deleted file mode 100644
index 613846323..000000000
--- a/krita/colorspaces/rgb_u8/rgb_plugin.cc
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-* rgb_plugin.cc -- Part of Krita
-*
-* Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org)
-*
-*  This program is free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  This program is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  You should have received a copy of the GNU General Public License
-*  along with this program; if not, write to the Free Software
-*  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-#include <stdlib.h>
-#include <vector>
-
-#include <tqpoint.h>
-
-#include <klocale.h>
-#include <kiconloader.h>
-#include <kinstance.h>
-#include <kmessagebox.h>
-#include <kstandarddirs.h>
-#include <ktempfile.h>
-#include <kdebug.h>
-#include <kgenericfactory.h>
-#include <kis_debug_areas.h>
-
-#include <kis_debug_areas.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_basic_histogram_producers.h>
-
-#include "rgb_plugin.h"
-#include "kis_rgb_colorspace.h"
-
-typedef KGenericFactory<RGBPlugin> RGBPluginFactory;
-K_EXPORT_COMPONENT_FACTORY( kritargbplugin, RGBPluginFactory( "krita" ) )
-
-
-RGBPlugin::RGBPlugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-    setInstance(RGBPluginFactory::instance());
-
-    if ( tqparent->inherits("KisColorSpaceFactoryRegistry") )
-    {
-	KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>(tqparent);
-
-        KisProfile *defProfile = new KisProfile(cmsCreate_sRGBProfile());
-        f->addProfile(defProfile);
-
-
-        KisColorSpaceFactory * csFactory = new KisRgbColorSpaceFactory();
-        f->add(csFactory);
-
-        KisColorSpace * colorSpaceRGBA = new KisRgbColorSpace(f, 0);
-        KisHistogramProducerFactoryRegistry::instance()->add(
-                new KisBasicHistogramProducerFactory<KisBasicU8HistogramProducer>
-                (KisID("RGB8HISTO", i18n("RGB8")), colorSpaceRGBA) );
-    }
-
-}
-
-RGBPlugin::~RGBPlugin()
-{
-}
-
-#include "rgb_plugin.moc"
diff --git a/krita/colorspaces/rgb_u8/rgb_plugin.h b/krita/colorspaces/rgb_u8/rgb_plugin.h
deleted file mode 100644
index 08ccd8908..000000000
--- a/krita/colorspaces/rgb_u8/rgb_plugin.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef RGB_PLUGIN_H_
-#define RGB_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-/**
- * A plugin wrapper around the RGB colour space strategy.
- */
-class RGBPlugin : public KParts::Plugin
-{
-    Q_OBJECT
-  TQ_OBJECT
-public:
-    RGBPlugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~RGBPlugin();
-
-};
-
-
-#endif // RGB_PLUGIN_H_
diff --git a/krita/colorspaces/rgb_u8/rgbplugin.rc b/krita/colorspaces/rgb_u8/rgbplugin.rc
deleted file mode 100644
index cc6181642..000000000
--- a/krita/colorspaces/rgb_u8/rgbplugin.rc
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui library="kritargbplugin" version="1">
-<Menu name="Image"><text>&amp;Image</text>
-    <Menu name="Mode"><text>&amp;Mode</text>
-            <Action name="convert to RGB(A)"/>
-    </Menu>
-</Menu>
-
-</kpartgui>
diff --git a/krita/colorspaces/rgb_u8/templates/.directory b/krita/colorspaces/rgb_u8/templates/.directory
deleted file mode 100644
index 4b475643a..000000000
--- a/krita/colorspaces/rgb_u8/templates/.directory
+++ /dev/null
@@ -1,6 +0,0 @@
-[Desktop Entry]
-Name=RGB
-Name[cy]=CGwGl (RGB)
-Name[fr]=RVB
-Name[hi]=आरजीबी
-X-KDE-DefaultTab=true
diff --git a/krita/colorspaces/rgb_u8/templates/Makefile.am b/krita/colorspaces/rgb_u8/templates/Makefile.am
deleted file mode 100644
index 29c87939b..000000000
--- a/krita/colorspaces/rgb_u8/templates/Makefile.am
+++ /dev/null
@@ -1,8 +0,0 @@
-templates_DATA = .directory transparent_1024x768.desktop transparent_1280x1024.desktop transparent_1600x1200.desktop transparent_640x480.desktop white_1024x768.desktop white_1280x1024.desktop white_1600x1200.desktop white_640x480.desktop
-templatesdir = $(kde_datadir)/krita/templates/rgb
-
-templatesrc_DATA = transparent_1024x768.kra transparent_1280x1024.kra transparent_1600x1200.kra transparent_640x480.kra white_1024x768.kra white_1280x1024.kra white_1600x1200.kra white_640x480.kra
-templatesrcdir = $(kde_datadir)/krita/templates/rgb/.source
-
-templatesicon_ICON = AUTO
-templatesicondir = $(kde_datadir)/krita/icons
diff --git a/krita/colorspaces/rgb_u8/templates/cr48-action-template_rgb_empty.png b/krita/colorspaces/rgb_u8/templates/cr48-action-template_rgb_empty.png
deleted file mode 100644
index e31085563..000000000
Binary files a/krita/colorspaces/rgb_u8/templates/cr48-action-template_rgb_empty.png and /dev/null differ
diff --git a/krita/colorspaces/rgb_u8/templates/crsc-action-template_rgb_empty.svgz b/krita/colorspaces/rgb_u8/templates/crsc-action-template_rgb_empty.svgz
deleted file mode 100644
index 3ea7b8546..000000000
Binary files a/krita/colorspaces/rgb_u8/templates/crsc-action-template_rgb_empty.svgz and /dev/null differ
diff --git a/krita/colorspaces/rgb_u8/templates/transparent_1024x768.desktop b/krita/colorspaces/rgb_u8/templates/transparent_1024x768.desktop
deleted file mode 100644
index d22ad3e34..000000000
--- a/krita/colorspaces/rgb_u8/templates/transparent_1024x768.desktop
+++ /dev/null
@@ -1,91 +0,0 @@
-[Desktop Entry]
-Type=Link
-URL=.source/transparent_1024x768.kra
-Icon=template_rgb_empty
-Name=Transparent 1024 x 768
-Name[bg]=Прозрачно 1024x768
-Name[br]=Treuzwelus 1024 x 768
-Name[cy]=Tryloyw 1024 x 768
-Name[da]=Gennemsigtig 1024 x 768
-Name[el]=Διαφανής 1024 x 768
-Name[es]=1024 x 768 transparente
-Name[et]=Läbipaistev 1024 x 768
-Name[eu]=Gardena 1024 x 768
-Name[fa]=شفاف ۷۶۸ × ۱۰۲۴
-Name[fi]=Läpinäkyvä 1024x768
-Name[fr]=Image transparente 1024 x 768
-Name[fy]=Trochsichtich 1024 x 768
-Name[gl]=Transparente 1024 x 768
-Name[he]=‏1024‎ x 768 שקוף
-Name[hu]=Áttetsző 1024 x 768
-Name[is]=Gegnsæ 1024 x 768
-Name[it]=Trasparente 1024 × 768
-Name[ja]=透明 1024 x 768
-Name[km]=ថ្លា 1024 x 768
-Name[lt]=Permatomas 1024 x 768
-Name[lv]=Caurspīdīgs 1024 x 768
-Name[ms]=Lutsinar 1024 x 768
-Name[nb]=Gjennomsiktig 1024 × 768
-Name[nds]=Dörsichtig 1024 x 768
-Name[ne]=पारदर्शी १०२४ x ७६८
-Name[nn]=Gjennomsiktig 1024 × 768
-Name[pl]=Przezroczysty 1024 x 768
-Name[pt]=Transparente 1024 x 768
-Name[pt_BR]=Transparente de 1024 x 768
-Name[ru]=Рисунок 1024x768, прозрачный фон
-Name[se]=Čađačuovgi 1024 × 768
-Name[sk]=Priehľadný 1024 x 768
-Name[sl]=Prosojna 1024 x 768
-Name[sr]=Провидна 1024 x 768
-Name[sr@Latn]=Providna 1024 x 768
-Name[sv]=Genomskinlig 1024 x 768
-Name[uk]=Прозоре 1024 x 768
-Name[uz]=Shaffof 1024 x 768
-Name[uz@cyrillic]=Шаффоф 1024 x 768
-Name[zh_CN]=透明 1024 x 768
-Name[zh_TW]=透明 1024 x 768
-Comment=Creates a transparent image of 1024 x 768 pixels.
-Comment[bg]=Създава прозрачно изображение с размери 1024x768 пиксела.
-Comment[ca]=Crea una imatge transparent de 1024 x 768 píxels.
-Comment[cy]=Creu delwedd dryloyw o 1024 x 768 picsel.
-Comment[da]=Laver et gennemsigtigt billede på 1024 x 768 billedpunkter.
-Comment[de]=Erstellt ein transparentes Bild mit 1024 x 768 Pixeln.
-Comment[el]=Δημιουργεί μία διαφανή εικόνα μεγέθους 1024 x 768 εικονοστοιχείων.
-Comment[eo]=Kreas travideblan bildon el 1024 x 768 rastrumeroj.
-Comment[es]=Crea una imagen transparente de 1024 x 768 píxeles.
-Comment[et]=Loob läbipaistva pildi mõõtmetega 1024 x 768 pikslit.
-Comment[eu]=1024 x 768 pixeleko irudi garden bat sortzen du.
-Comment[fa]=یک تصویر شفاف ۷۶۸ × ۱۰۲۴ تصویردانه‌ای ایجاد می‌کند.
-Comment[fi]=Luo läpinäkyvän 1024x768 pikselin kuvan.
-Comment[fr]=Crée une image transparente de 1024 x 768 pixels.
-Comment[fy]=Makket in trochsichtige ôfbylding oan fan 1024 x 768 byldpunten.
-Comment[gl]=Cria unha imaxe transparente de 1024 x 768 pixels.
-Comment[he]=יצירת תמונה שקופה בגודל ‎1024 x 768 פיקסלים
-Comment[hu]=Létrehoz egy 1024 x 768 képpontos áttetsző képet.
-Comment[is]=Býr til gegnsæja mynd í hlutföllunum 1024 x 768 punktar.
-Comment[it]=Crea un'immagine trasparente di 1024 × 768 pixel.
-Comment[ja]=1024 x 768 ピクセルの透視画像を作成
-Comment[km]=បង្កើត​រូបភាព​ថ្លា​ទំហំ 1024 x 768 ភីកសែល ។
-Comment[lt]=Sukuria permatomą 1024 x 768 pikselių paveiksliuką.
-Comment[ms]=Cipta imej lutsinar 1024 x 768 piksel.
-Comment[nb]=Lager et gjennomsiktig bilde på 1024 x 768 piksler.
-Comment[nds]=Stellt en dörsichtig Bild mit 1024 x 768 Pixels op.
-Comment[ne]=१०२४ x ७६८ पिक्सेलको पारदर्शी छवि सिर्जना गर्दछ ।
-Comment[nl]=Maakt een transparante afbeelding aan van 1024 x 768 pixels.
-Comment[nn]=Lagar eit gjennomsiktig bilete på 1024 × 768 pikslar.
-Comment[pl]=Tworzy przezroczysty obrazek o rozmiarach 1024 x 768 pikseli.
-Comment[pt]=Cria uma imagem transparente com 1024 x 768 pontos.
-Comment[pt_BR]=Cria uma imagem transparente de 1024 x 768 pixels.
-Comment[ru]=Рисунок 1024x768, прозрачный фон
-Comment[se]=Ráhkada čađačuovgi gova mas t 1024 × 768 govvačuoggá
-Comment[sk]=Vytvorí obrázok s rozmermi 1024 x 768 pixelov a priehľadným pozadím.
-Comment[sl]=Ustvari prosojno sliko velikosti 1024 x 768 pik.
-Comment[sr]=Прави провидну слику са 1024 x 768 пиксела.
-Comment[sr@Latn]=Pravi providnu sliku sa 1024 x 768 piksela.
-Comment[sv]=Skapar en genomskinlig bild med 1024 x 768 bildpunkter.
-Comment[uk]=Створює прозоре зображення 1024 x 768 пікселів.
-Comment[uz]=Oʻlchami 1024 x 768 nuqta boʻlgan shaffof rasmni yaratish.
-Comment[uz@cyrillic]=Ўлчами 1024 x 768 нуқта бўлган шаффоф расмни яратиш.
-Comment[zh_CN]=创建 1024 x 768 像素的透明图像。
-Comment[zh_TW]=建立一個 1024 x 768 像素的透明圖片。
-X-Krita-Version=2
diff --git a/krita/colorspaces/rgb_u8/templates/transparent_1024x768.kra b/krita/colorspaces/rgb_u8/templates/transparent_1024x768.kra
deleted file mode 100644
index eb0265882..000000000
Binary files a/krita/colorspaces/rgb_u8/templates/transparent_1024x768.kra and /dev/null differ
diff --git a/krita/colorspaces/rgb_u8/templates/transparent_1280x1024.desktop b/krita/colorspaces/rgb_u8/templates/transparent_1280x1024.desktop
deleted file mode 100644
index 58469cc6f..000000000
--- a/krita/colorspaces/rgb_u8/templates/transparent_1280x1024.desktop
+++ /dev/null
@@ -1,92 +0,0 @@
-[Desktop Entry]
-Type=Link
-URL=.source/transparent_1280x1024.kra
-Icon=template_rgb_empty
-Name=Transparent 1280 x 1024
-Name[bg]=Прозрачно 1280x1204
-Name[br]=Treuzwelus 1280 x 1024
-Name[cy]=Tryloyw 1280 x 1024
-Name[da]=Gennemsigtig 1280 x 1024
-Name[el]=Διαφανής 1280 x 1024
-Name[eo]=Travidebla 1280 x 1024
-Name[es]=1280 x 1024 transparente
-Name[et]=Läbipaistev 1280 x 1024
-Name[eu]=Gardena 1280 x 1024
-Name[fa]=شفاف ۱۰۲۴ × ۱۲۸۰
-Name[fi]=Läpinäkyvä 1280x1024
-Name[fr]=Image transparente 1280 x 1024
-Name[fy]=Trochsichtich  1280 x 1024
-Name[gl]=Transparente 1280 x 1024
-Name[he]=‏1280‎ x 1024 שקוף
-Name[hu]=Áttetsző 1280 x 1024
-Name[is]=Gegnsæ 1280 x 1024
-Name[it]=Trasparente 1280 × 1024
-Name[ja]=透明 1280 x 1024
-Name[km]=ថ្លា 1280 x 1024
-Name[lt]=Permatomas 1280 x 1024
-Name[lv]=Caurspīdīgs 1280 x 1024
-Name[ms]=Lutsinar 1280 x 1024
-Name[nb]=Gjennomsiktig 1280 x 1024
-Name[nds]=Dörsichtig 1280 x 1024
-Name[ne]=पारदर्शी १२८० x १०२४
-Name[nn]=Gjennomsiktig 1280 × 1024
-Name[pl]=Przezroczysty 1280 x 1024
-Name[pt]=Transparente 1280 x 1024
-Name[pt_BR]=Transparente de 1280 x 1024
-Name[ru]=Рисунок 1280x1024, прозрачный фон
-Name[se]=Čađačuovgi 1280 × 1024
-Name[sk]=Priehľadný 1280 x 1024
-Name[sl]=Prosojna 1280 x 1024
-Name[sr]=Провидна 1280 x 1024
-Name[sr@Latn]=Providna 1280 x 1024
-Name[sv]=Genomskinlig 1280 x 1024
-Name[uk]=Прозоре 1280 x 1024
-Name[uz]=Shaffof 1280 x 1024
-Name[uz@cyrillic]=Шаффоф 1280 x 1024
-Name[zh_CN]=透明 1280 x 1024
-Name[zh_TW]=透明 1280 x 1024
-Comment=Creates a transparent image of 1280 x 1024 pixels.
-Comment[bg]=Създава прозрачно изображение с размери 1280x1024 пиксела.
-Comment[ca]=Crea una imatge transparent de 1280 x 1024 píxels.
-Comment[cy]=Creu delwedd dryloyw o 1280 x 1024 picsel.
-Comment[da]=Laver et gennemsigtigt billede på 1280 x 1024 billedpunkter.
-Comment[de]=Erstellt ein transparentes Bild mit 1280 x 1024 Pixeln.
-Comment[el]=Δημιουργεί μία διαφανή εικόνα μεγέθους 1280 x 1024 εικονοστοιχείων.
-Comment[eo]=Kreas travideblan bildon el 1280 x 1024 rastrumeroj.
-Comment[es]=Crea una imagen transparente de 1280 x 1024 píxeles.
-Comment[et]=Loob läbipaistva pildi mõõtmetega 1280 x 1024 pikslit.
-Comment[eu]=1280 x 1024 pixeleko irudi garden bat sortzen du.
-Comment[fa]=یک تصویر شفاف ۱۰۲۴ × ۱۲۸۰ تصویردانه‌ای ایجاد می‌کند.
-Comment[fi]=Luo läpinäkyvän 1280x1024 pikselin kuvan.
-Comment[fr]=Crée une image transparente de 1280 x 1024 pixels.
-Comment[fy]=Makket in trochsichtige ôfbylding oan fan 1280 x 1024 byldpunten.
-Comment[gl]=Cria unha imaxe transparente de 1280 x 1024 pixels.
-Comment[he]=יצירת תמונה שקופה בגודל ‎1280 x 1024 פיקסלים
-Comment[hu]=Létrehoz egy 1280 x 1024 képpontos áttetsző képet.
-Comment[is]=Býr til gegnsæja mynd í hlutföllunum 1280 x 1024 punktar.
-Comment[it]=Crea un'immagine trasparente di 1280 × 1024 pixel.
-Comment[ja]=1280 x 1024 ピクセルの透視画像を作成
-Comment[km]=បង្កើត​រូបភាព​ថ្លា​ទំហំ 1280 x 1024 ភីកសែល ។
-Comment[lt]=Sukuria permatomą 1280 x 1024 pikselių paveiksliuką.
-Comment[ms]=Cipta imej lutsinar 1280 x 1024 piksel.
-Comment[nb]=Lager et gjennomsiktig bilde på 1280 x 1024 piksler.
-Comment[nds]=Stellt en dörsichtig Bild mit 1280 x 1024 Pixels op.
-Comment[ne]=१२८० x १०२४ पिक्सेलको पारदर्शी छवि सिर्जना गर्दछ ।
-Comment[nl]=Maakt een transparante afbeelding aan van 1280 x 1024 pixels.
-Comment[nn]=Lagar eit gjennomsiktig bilete på 1280 × 1024 pikslar.
-Comment[pl]=Tworzy przezroczysty obrazek o rozmiarach 1280 x 1024 pikseli.
-Comment[pt]=Cria uma imagem transparente com 1280 x 1024 pontos.
-Comment[pt_BR]=Cria uma imagem transparente de 1280 x 1024 pixels.
-Comment[ru]=Рисунок 1280x1024, прозрачный фон
-Comment[se]=Ráhkada čađačuovgi gova mas lea 1280 × 1024 govvačuoggá
-Comment[sk]=Vytvorí obrázok s rozmermi 1280 x 1024 pixelov a priehľadným pozadím.
-Comment[sl]=Ustvari prosojno sliko velikosti 1280 x 1024 pik.
-Comment[sr]=Прави провидну слику са 1280 x 1024 пиксела.
-Comment[sr@Latn]=Pravi providnu sliku sa 1280 x 1024 piksela.
-Comment[sv]=Skapar en genomskinlig bild med 1280 x 1024 bildpunkter.
-Comment[uk]=Створює прозоре зображення 1280 x 1024 пікселів.
-Comment[uz]=Oʻlchami 1280 x 1024 nuqta boʻlgan shaffof rasmni yaratish.
-Comment[uz@cyrillic]=Ўлчами 1280 x 1024 нуқта бўлган шаффоф расмни яратиш.
-Comment[zh_CN]=创建 1280x 1024 像素的透明图像。
-Comment[zh_TW]=建立一個 1280 x 1024 像素的透明圖片。
-X-Krita-Version=2
diff --git a/krita/colorspaces/rgb_u8/templates/transparent_1280x1024.kra b/krita/colorspaces/rgb_u8/templates/transparent_1280x1024.kra
deleted file mode 100644
index be96fb231..000000000
Binary files a/krita/colorspaces/rgb_u8/templates/transparent_1280x1024.kra and /dev/null differ
diff --git a/krita/colorspaces/rgb_u8/templates/transparent_1600x1200.desktop b/krita/colorspaces/rgb_u8/templates/transparent_1600x1200.desktop
deleted file mode 100644
index c49378056..000000000
--- a/krita/colorspaces/rgb_u8/templates/transparent_1600x1200.desktop
+++ /dev/null
@@ -1,97 +0,0 @@
-[Desktop Entry]
-Type=Link
-URL=.source/transparent_1600x1200.kra
-Icon=template_rgb_empty
-Name=Transparent 1600 x 1200
-Name[bg]=Прозрачно 1600x1200
-Name[br]=Treuzwelus 1600 x 1200
-Name[cy]=Tryloyw 1600 x 1200
-Name[da]=Gennemsigtig 1600 x 1200
-Name[el]=Διαφανής 1600 x 1200
-Name[es]=1600 x 1200 transparente
-Name[et]=Läbipaistev 1600 x 1200
-Name[eu]=Gardena 1600 x 1200
-Name[fa]=شفاف ۱۲۰۰ × ۱۶۰۰
-Name[fi]=Läpinäkyvä 1600x1200
-Name[fr]=Image transparente 1600 x 1200
-Name[fy]=Trochsichtich  1600 x 1200
-Name[gl]=Transparente 1600 x 1200
-Name[he]=‏1600‎ x 1200 שקוף
-Name[hi]=पारदर्शी 1600 x 1200
-Name[hu]=Áttetsző 1600 x 1200
-Name[is]=Gegnsæ 1600 x 1200
-Name[it]=Trasparente 1600 × 1200
-Name[ja]=透明 1600 x 1200
-Name[km]=ថ្លា 1600 x 1200
-Name[lt]=Permatomas 1600 x 1200
-Name[lv]=Caurspīdīgs 1600 x 1200
-Name[ms]=Lutsinar 1600 x 1200
-Name[nb]=Gjennomsiktig 1600 × 1200
-Name[nds]=Dörsichtig 1600 x 1200
-Name[ne]=पारदर्शी १६०० x १२००
-Name[nl]=Transparant 1600 x 1200
-Name[nn]=Gjennomsiktig 1600 × 1200
-Name[pl]=Przezroczysty 1600 x 1200
-Name[pt]=Transparente 1600 x 1200
-Name[pt_BR]=Transparente de 1600 x 1200
-Name[ru]=Рисунок 1600x1200, прозрачный фон
-Name[se]=Čađačuovgi 1600 × 1200
-Name[sk]=Priehľadný 1600 x 1200
-Name[sl]=Prosojna 1600 x 1200
-Name[sr]=Провидна 1600 x 1200
-Name[sr@Latn]=Providna 1600 x 1200
-Name[sv]=Genomskinlig 1600 x 1200
-Name[ta]=தெரியக்கூடிய 1600 x 1200
-Name[tr]=Saydam 1600 x 1200
-Name[uk]=Прозоре 1600 x 1200
-Name[uz]=Shaffof 1600 x 1200
-Name[uz@cyrillic]=Шаффоф 1600 x 1200
-Name[zh_CN]=透明 1600 x 1200
-Name[zh_TW]=透明 1600 x 1200
-Comment=Creates a transparent image of 1600 x 1200 pixels.
-Comment[bg]=Създаване на прозрачно изображение с размери 1600x1200 пиксела.
-Comment[ca]=Crea una imatge transparent de 1600 x 1200 píxels.
-Comment[cy]=Creu delwedd dryloyw o 1600 x 1200 picsel.
-Comment[da]=Laver et gennemsigtigt billede på 1600 x 1200 billedpunkter.
-Comment[de]=Erstellt ein transparentes Bild mit 1600 x 1200 Pixeln.
-Comment[el]=Δημιουργεί μία διαφανή εικόνα μεγέθους 1600 x 1200 εικονοστοιχείων.
-Comment[es]=Crea una imagen transparente de 1600 x 1200 píxeles.
-Comment[et]=Loob läbipaistva pildi mõõtmetega 1600 x 1200 pikslit.
-Comment[eu]=1600 x 1200 pixeleko irudi garden bat sortzen du.
-Comment[fa]=یک تصویر شفاف ۱۲۰۰ × ۱۶۰۰ تصویردانه‌ای ایجاد می‌کند.
-Comment[fi]=Luo läpinäkyvän 1600x1200 pikselin kuvan.
-Comment[fr]=Crée une image transparente de 1600 x 1200 pixels.
-Comment[fy]=Makket in trochsichtige ôfbylding oan fan 11600 x 1200 byldpunten.
-Comment[gl]=Cria unha imaxe transparente de 1600 x 1200 pixels.
-Comment[he]=יצירת תמונה שקופה בגודל ‎1600 x 1200 פיקסלים
-Comment[hi]=1600 x 1200 पिक्सेल की पारदर्शी छवि बनाता है.
-Comment[hu]=Létrehoz egy 1600 x 1200 képpontos áttetsző képet.
-Comment[is]=Býr til gegnsæja mynd í hlutföllunum 1600 x 1200 punktar.
-Comment[it]=Crea un'immagine trasparente di 1600 × 1200 pixel.
-Comment[ja]=1600 x 1200 ピクセルの透視画像を作成
-Comment[km]=បង្កើត​រូបភាព​ថ្លា​ទំហំ 1600 x 1200 ភីកសែល ។
-Comment[lt]=Sukuria permatomą 1600 x 1200 pikselių paveiksliuką.
-Comment[ms]=Cipta imej lutsinar 1600 x 1200 piksel.
-Comment[nb]=Lager et gjennomsiktig bilde på 1600 x 1200 piksler.
-Comment[nds]=Stellt en dörsichtig Bild mit 1600 x 1200 Pixels op.
-Comment[ne]=१६०० x १२०० पिक्सेलको पारदर्शी छवि सिर्जना गर्दछ।
-Comment[nl]=Maakt een transparante afbeelding aan van 1600 x 1200 pixels.
-Comment[nn]=Lagar eit gjennomsiktig bilete på 1600 × 1200 pikslar.
-Comment[pl]=Tworzy przezroczysty obrazek o rozmiarach 1600 x 1200 pikseli.
-Comment[pt]=Cria uma imagem transparente com 1600 x 1200 pontos.
-Comment[pt_BR]=Cria uma imagem transparente de 1600 x 1200 pixéis.
-Comment[ru]=Рисунок 1600x1200, прозрачный фон
-Comment[se]=Ráhkada čađačuovgi gova mas lea 1600 × 1200 govvačuoggá.
-Comment[sk]=Vytvorí obrázok s rozmermi 1600 x 1200 pixelov a priehľadným pozadím.
-Comment[sl]=Ustvari prosojno sliko velikosti 1600 x 1200 pik.
-Comment[sr]=Прави провидну слику са 1600 x 1200 пиксела.
-Comment[sr@Latn]=Pravi providnu sliku sa 1600 x 1200 piksela.
-Comment[sv]=Skapar en genomskinlig bild med 1600 x 1200 bildpunkter.
-Comment[ta]=1600 x 1200 படத்துணுக்குகளில் ஒரு தெரியக்கூடிய பிம்பத்தை உருவாக்குகிறது.
-Comment[tr]=1600 x 1200 piksel ebadında transparan bir görüntü oluşturur.
-Comment[uk]=Створює прозоре зображення 1600 x 1200 пікселів.
-Comment[uz]=Oʻlchami 1600 x 1200 nuqta boʻlgan shaffof rasmni yaratish.
-Comment[uz@cyrillic]=Ўлчами 1600 x 1200 нуқта бўлган шаффоф расмни яратиш.
-Comment[zh_CN]=创建 1600 x 1200 像素的透明图像。
-Comment[zh_TW]=建立一個 1600 x 1200 像素的透明圖片。
-X-Krita-Version=2
diff --git a/krita/colorspaces/rgb_u8/templates/transparent_1600x1200.kra b/krita/colorspaces/rgb_u8/templates/transparent_1600x1200.kra
deleted file mode 100644
index b01685a9c..000000000
Binary files a/krita/colorspaces/rgb_u8/templates/transparent_1600x1200.kra and /dev/null differ
diff --git a/krita/colorspaces/rgb_u8/templates/transparent_640x480.desktop b/krita/colorspaces/rgb_u8/templates/transparent_640x480.desktop
deleted file mode 100644
index 7dec238a1..000000000
--- a/krita/colorspaces/rgb_u8/templates/transparent_640x480.desktop
+++ /dev/null
@@ -1,92 +0,0 @@
-[Desktop Entry]
-Type=Link
-URL=.source/transparent_640x480.kra
-Icon=template_rgb_empty
-Name=Transparent 640 x 480
-Name[bg]=Прозрачно 640x480
-Name[br]=Treuzwelus 640 x 480
-Name[cy]=Tryloyw 640 x 480
-Name[da]=Gennemsigtig 640 x 480
-Name[el]=Διαφανής 640 x 480
-Name[eo]=Travidebla 640 x 480
-Name[es]=640 x 480 transparente
-Name[et]=Läbipaistev 640 x 480
-Name[eu]=Gardena 640 x 480
-Name[fa]=شفاف ۴۸۰ × ۶۴۰
-Name[fi]=Läpinäkyvä 640x480
-Name[fr]=Image transparente 640 x 480
-Name[fy]=Trochsichtich  640 x 480
-Name[gl]=Transparente 640 x 480
-Name[he]=‏640 x 480 שקוף
-Name[hu]=Áttetsző 640 x 480
-Name[is]=Gegnsæ 640 x 480
-Name[it]=Trasparente 640 × 480
-Name[ja]=透明 640 x 480
-Name[km]=ថ្លា 640 x 480
-Name[lt]=Permatomas 640 x 480
-Name[lv]=Caurspīdīgs 640 x 480
-Name[ms]=Lutsinar 640 x 480
-Name[nb]=Gjennomsiktig 640 x 480
-Name[nds]=Dörsichtig 640 x 480
-Name[ne]=पारदर्शी ६४० x ४८०
-Name[nn]=Gjennomsiktig 640 × 480
-Name[pl]=Przezroczysty 640 x 480
-Name[pt]=Transparente 640 x 480
-Name[pt_BR]=Transparente de 640 x 480
-Name[ru]=Рисунок 640x480, прозрачный фон
-Name[se]=Čađačuovgi 640 × 480
-Name[sk]=Priehľadný 640 x 480
-Name[sl]=Prosojna 640 x 480
-Name[sr]=Провидна 640 x 480
-Name[sr@Latn]=Providna 640 x 480
-Name[sv]=Genomskinlig 640 x 480
-Name[uk]=Прозоре 640 x 480
-Name[uz]=Shaffof 640 x 480
-Name[uz@cyrillic]=Шаффоф 640 x 480
-Name[zh_CN]=透明 640 x 480
-Name[zh_TW]=透明 640 x 480
-Comment=Creates a transparent image of 640 x 480 pixels.
-Comment[bg]=Създаване на прозрачно изображение с размери 640x480 пиксела.
-Comment[ca]=Crea una imatge transparent de 640 x 480 píxels.
-Comment[cy]=Creu delwedd dryloyw o 640 x 480 picsel.
-Comment[da]=Laver et gennemsigtigt billede på 640 x 480 billedpunkter.
-Comment[de]=Erstellt ein transparentes Bild mit 640 x 480 Pixeln.
-Comment[el]=Δημιουργεί μία διαφανή εικόνα μεγέθους 640 x 480 εικονοστοιχείων.
-Comment[eo]=Kreas travideblan bildon el 640 x 480 rastrumeroj.
-Comment[es]=Crea una imagen transparente de 640 x 480 píxeles.
-Comment[et]=Loob läbipaistva pildi mõõtmetega 640 x 480 pikslit.
-Comment[eu]=640 x 480 pixeleko irudi garden bat sortzen du.
-Comment[fa]=یک تصویر شفاف ۴۸۰ × ۶۴۰ تصویردانه‌ای ایجاد می‌کند.
-Comment[fi]=Luo läpinäkyvän 640x480 pikselin kuvan.
-Comment[fr]=Crée une image transparente de 640 x 480 pixels.
-Comment[fy]=Makket in trochsichtige ôfbylding oan fan 640 x 480 byldpunten.
-Comment[gl]=Cria unha imaxe transparente de 640 x 480 pixels.
-Comment[he]=יצירת תמונה שקופה בגודל ‎640 x 480 פיקסלים
-Comment[hu]=Létrehoz egy 640 x 480 képpontos áttetsző képet.
-Comment[is]=Býr til gegnsæja mynd í hlutföllunum 640 x 480 punktar.
-Comment[it]=Crea un'immagine trasparente di 640 × 480 pixel.
-Comment[ja]=640 x 480 ピクセルの透視画像を作成
-Comment[km]=បង្កើត​រូបភាព​ថ្លា​ទំហំ 640 x 480 ភីកសែល ។
-Comment[lt]=Sukuria permatomą 640 x 480 pikselių paveiksliuką.
-Comment[ms]=Cipta imej lutsinar 640 x 480 piksel.
-Comment[nb]=Lager et gjennomsiktig bilde på 640 x 480 piksler.
-Comment[nds]=Stellt en dörsichtig Bild mit 640 x 480 Pixels op.
-Comment[ne]=६४० x ४८० पिक्सेलको पारदर्शी सिर्जना गर्दछ ।
-Comment[nl]=Maakt een transparante afbeelding aan van 640 x 480 pixels.
-Comment[nn]=Lagar eit gjennomsiktig bilete på 640 × 480 pikslar.
-Comment[pl]=Tworzy przezroczysty obrazek o rozmiarach 640 x 480 pikseli.
-Comment[pt]=Cria uma imagem transparente com 640 x 480 pontos.
-Comment[pt_BR]=Cria uma imagem transparente de 640 x 480 pixels.
-Comment[ru]=Рисунок 640x480, прозрачный фон
-Comment[se]=Ráhkada čađačuovgi gova mas lea 640 × 480 govvačuoggá.
-Comment[sk]=Vytvorí obrázok s rozmermi 640 x 480 pixelov a priehľadným pozadím.
-Comment[sl]=Ustvari prosojno sliko velikosti 640 x 480 pik.
-Comment[sr]=Прави провидну слику са 640 x 480 пиксела.
-Comment[sr@Latn]=Pravi providnu sliku sa 640 x 480 piksela.
-Comment[sv]=Skapar en genomskinlig bild med 640 x 480 bildpunkter.
-Comment[uk]=Створює прозоре зображення 640 x 480 пікселів.
-Comment[uz]=Oʻlchami 640 x 480 nuqta boʻlgan shaffof rasmni yaratish.
-Comment[uz@cyrillic]=Ўлчами 640 x 480 нуқта бўлган шаффоф расмни яратиш.
-Comment[zh_CN]=创建 640 x 480 像素的透明图像。
-Comment[zh_TW]=建立一個 640 x 480 像素的透明圖片。
-X-Krita-Version=2
diff --git a/krita/colorspaces/rgb_u8/templates/transparent_640x480.kra b/krita/colorspaces/rgb_u8/templates/transparent_640x480.kra
deleted file mode 100644
index 59777c920..000000000
Binary files a/krita/colorspaces/rgb_u8/templates/transparent_640x480.kra and /dev/null differ
diff --git a/krita/colorspaces/rgb_u8/templates/white_1024x768.desktop b/krita/colorspaces/rgb_u8/templates/white_1024x768.desktop
deleted file mode 100644
index 57f097bf0..000000000
--- a/krita/colorspaces/rgb_u8/templates/white_1024x768.desktop
+++ /dev/null
@@ -1,102 +0,0 @@
-[Desktop Entry]
-Type=Link
-URL=.source/white_1024x768.kra
-Icon=template_rgb_empty
-Name=White 1024 x 768
-Name[bg]=Бяло 1024x768
-Name[br]=Gwenn 1024 x 768
-Name[ca]=Blanc 1024 x 768
-Name[cy]=Gwyn 1024 x 768
-Name[da]=Hvidt 1024 x 768
-Name[de]=Weiß 1024 x 768
-Name[el]=Λευκή 1024 x 768
-Name[eo]=Blanka 1024 x 768
-Name[es]=1024 x 768 blanco
-Name[et]=Valge 1024 x 768
-Name[eu]=Zuria 1024 x 768
-Name[fa]=سفید ۷۶۸ × ۱۰۲۴
-Name[fi]=Valkoinen 1024x768
-Name[fr]=Image blanche 1024 x 768
-Name[fy]=Wyt 1024 x 768
-Name[ga]=Bán 1024×768
-Name[gl]=Branca 1024 x 768
-Name[he]=לבן ‎1024 x 768
-Name[hi]=सफेद 1024 x 768
-Name[hu]=Fehér 1024 x 768
-Name[is]=Hvít 1024 x 768
-Name[it]=Bianco 1024 × 768
-Name[ja]=白 1024 x 768
-Name[km]=ពណ៌ស 1024 x 768
-Name[lt]=Baltas 1024 x 768
-Name[lv]=Balts 1024 x 768
-Name[ms]=Putih 1024 x 768
-Name[nb]=Hvitt 1024 x 768
-Name[nds]=Witt 1024 x 768
-Name[ne]=सेतो १०२४ x ७६८
-Name[nl]=Wit 1024 x 768
-Name[nn]=Kvitt 1024 × 768
-Name[pl]=Biały 1024 x 768
-Name[pt]=Branca 1024 x 768
-Name[pt_BR]=1024 x 768 em Branco
-Name[ru]=Рисунок 1024x768, белый фон
-Name[se]=Vilges 1024 × 768
-Name[sk]=Biely 1024 x 768
-Name[sl]=Bela 1024 x 768
-Name[sr]=Бела 1024 x 768
-Name[sr@Latn]=Bela 1024 x 768
-Name[sv]=Vit 1024 x 768
-Name[ta]=வெள்ளை 1024 x 768
-Name[tr]=Beyaz 1024 x 768
-Name[uk]=Біле 1024 x 768
-Name[uz]=Oq 1024 x 768
-Name[uz@cyrillic]=Оқ 1024 x 768
-Name[zh_CN]=白色 1024 x 768
-Name[zh_TW]=白色 1024 x 768
-Comment=Creates a white RGB image of 1024 x 768 pixels.
-Comment[bg]=Създаване на бяло изображение RGB с размери 1024x768 пиксела.
-Comment[ca]=Crea una imatge blanca RGB de 1024 x 768 píxels.
-Comment[cy]=Creu delwedd RGB wen o 1024 x 768 picsel.
-Comment[da]=Laver et hvidt RGB-billede på 1024 x 768 billedpunkter.
-Comment[de]=Erstellt ein weißes RGB-Bild mit 1024 x 768 Pixeln.
-Comment[el]=Δημιουργεί μία λευκή RGB εικόνα μεγέθους 1024 x 768 εικονοστοιχείων.
-Comment[eo]=Kreas blankan RGB-bildon el 1024 x 768 rastrumeroj.
-Comment[es]=Crea una imagen RGB de 1024 x 768 píxeles.
-Comment[et]=Loob valge RGB-pildi mõõtmetega 1024 x 768 pikslit.
-Comment[eu]=1024 x 768 pixeleko RGB irudi zuri bat sortzen du.
-Comment[fa]=یک تصویر RGB سفید ۷۶۸ × ۱۰۲۴ تصویردانه‌ای ایجاد می‌کند.
-Comment[fi]=Luo valkoisen 1024x768 pikselin RGB-kuvan.
-Comment[fr]=Crée une image blanche RVB de 1024 x 768 pixels.
-Comment[fy]=Makket in wite RGB-ôfbylding oan fan 1024 x 768 byldpunten.
-Comment[gl]=Cria unha imaxe RGB branca de 1024 x 768 pixels.
-Comment[he]=יצירת תמונת RGB לבנה בגודל ‎1024 x 768 פיקסלים
-Comment[hi]=1024 x 768 पिक्सेल की सफेद आरजीबी छवि बनाता है.
-Comment[hu]=Létrehoz egy 1024 x 768 képpontos fehér RGB képet.
-Comment[is]=Býr til hvíta RGB mynd í hlutföllunum 1024 x 768 punktar.
-Comment[it]=Crea un'immagine RGB bianca di 1024 × 768 pixel.
-Comment[ja]=1024 x 768 ピクセルの RGB 画像を作成
-Comment[km]=បង្កើត​រូបភាព RGB ពណ៌​ស​ទំហំ 1024 x 768 ភីកសែល ។
-Comment[lt]=Sukuria baltą 1024 x 768 pikselių RGB paveiksliuką.
-Comment[ms]=Cipta imej RGB putih 1024 x 768 piksel.
-Comment[nb]=Lager et hvitt RGB-bilde på 1024 x 768 piksler.
-Comment[nds]=Stellt en witt RGB-Bild mit 1024 x 768 Pixels op.
-Comment[ne]=१०२४ x ७६८ पिक्सेलको सेतो RGB छवि सिर्जना गर्दछ ।
-Comment[nl]=Maakt een witte RGB-afbeelding aan van 1024 x 768 pixels.
-Comment[nn]=Lagar eit kvitt RGB-bilete på 1024 × 768 pikslar.
-Comment[pl]=Tworzy biały obrazek RGB o rozmiarach 1024 x 768 pikseli.
-Comment[pt]=Cria uma imagem RGB branca com 1024 x 768 pontos.
-Comment[pt_BR]=Cria uma imagem RGB em branco de 1024 x 768 pixéis.
-Comment[ru]=Рисунок RGB 1024x768, белый фон
-Comment[se]=Ráhkada vilges RGB-gova mas lea 1024 × 768 govvačuoggá.
-Comment[sk]=Vytvorí RGB obrázok s rozmermi 1024 x 768 pixelov a bielym pozadím.
-Comment[sl]=Ustvari belo sliko RGB velikosti 1024 x 768 pik.
-Comment[sr]=Прави белу RGB слику са 1024 x 768 пиксела.
-Comment[sr@Latn]=Pravi belu RGB sliku sa 1024 x 768 piksela.
-Comment[sv]=Skapar en vit RGB-bild med 1024 x 768 bildpunkter.
-Comment[ta]=1024 x 768 படத்துணுக்குகளில் ஒரு வெள்ளை RGB பிம்பத்தை உருவாக்குகிறது.
-Comment[tr]=1024 x 768 piksel ebadında beyaz bir RGB görüntü oluşturur.
-Comment[uk]=Створює біле зображення у форматі RGB, 640 x 480 пікселів.
-Comment[uz]=Oʻlchami 1024 x 768 nuqta boʻlgan oq RGB rasmni yaratish.
-Comment[uz@cyrillic]=Ўлчами 1024 x 768 нуқта бўлган оқ RGB расмни яратиш.
-Comment[zh_CN]=创建 1024 x 768 像素的 RGB 白色背景图像。
-Comment[zh_TW]=建立一個 1024 x 768 像素的白色 RGB 圖片。
-X-Krita-Version=2
diff --git a/krita/colorspaces/rgb_u8/templates/white_1024x768.kra b/krita/colorspaces/rgb_u8/templates/white_1024x768.kra
deleted file mode 100644
index 0a7702ad9..000000000
Binary files a/krita/colorspaces/rgb_u8/templates/white_1024x768.kra and /dev/null differ
diff --git a/krita/colorspaces/rgb_u8/templates/white_1280x1024.desktop b/krita/colorspaces/rgb_u8/templates/white_1280x1024.desktop
deleted file mode 100644
index a6363424b..000000000
--- a/krita/colorspaces/rgb_u8/templates/white_1280x1024.desktop
+++ /dev/null
@@ -1,95 +0,0 @@
-[Desktop Entry]
-Type=Link
-URL=.source/white_1280x1024.kra
-Icon=template_rgb_empty
-Name=White 1280 x 1024
-Name[bg]=Бяло 1280x1024
-Name[br]=Gwenn 1280 x 1024
-Name[ca]=Blanc 1280 x 1024
-Name[cy]=Gwyn 1280 x 1024
-Name[da]=Hvidt 1280 x 1024
-Name[de]=Weiß 1280 x 1024
-Name[el]=Λευκή 1280 x 1024
-Name[eo]=Blanka 1280 x 1024
-Name[es]=1280 x 1024 blanco
-Name[et]=Valge 1280 x 1024
-Name[eu]=Zuria 1280 x 1024
-Name[fa]=سفید ۱۰۲۴ × ۱۲۸۰
-Name[fi]=Valkoinen 1280x1024
-Name[fr]=Image blanche 1280 x 1024
-Name[fy]=Wyt 1280 x 1024
-Name[ga]=Bán 1280×1024
-Name[gl]=Branca 1280 x 1024
-Name[he]=לבן ‎1280 x 1024
-Name[hu]=Fehér 1280 x 1024
-Name[is]=Hvít 1280 x 1024
-Name[it]=Bianco 1280 × 1024
-Name[ja]=白 1280 x 1024
-Name[km]=ពណ៌ស 1280 x 1024
-Name[lt]=Baltas 1280 x 1024
-Name[lv]=Balts 1280 x 1024
-Name[ms]=Putih 1280 x 1024
-Name[nb]=Hvit 1280 x 1024
-Name[nds]=Witt 1280 x 1024
-Name[ne]=सेतो १२८० x १०२४
-Name[nn]=Kvitt 1280 × 1024
-Name[pl]=Biały 1280 x 1024
-Name[pt]=Branca 1280 x 1024
-Name[pt_BR]=1280 x 1024 em Branco
-Name[ru]=Рисунок 1280x1024, белый фон
-Name[se]=Vilges 1280 × 1024
-Name[sk]=Biely 1280 x 1024
-Name[sl]=Bela 1280 x 1024
-Name[sr]=Бела 1280 x 1024
-Name[sr@Latn]=Bela 1280 x 1024
-Name[sv]=Vit 1280 x 1024
-Name[uk]=Біле 1280 x 1024
-Name[uz]=Oq 1280 x 1024
-Name[uz@cyrillic]=Оқ 1280 x 1024
-Name[zh_CN]=白色 1280 x 1024
-Name[zh_TW]=白色 1280 x 1024
-Comment=Creates a white RGB image of 1280 x 1024 pixels.
-Comment[bg]=Създаване на бяло изображение RGB с размери 1280x1024 пиксела.
-Comment[ca]=Crea una imatge blanca RGB de 1280 x 1024 píxels.
-Comment[cy]=Creu delwedd RGB wen o 1280 x 1024 picsel.
-Comment[da]=Laver et hvidt RGB-billede på 1280 x 1024 billedpunkter.
-Comment[de]=Erstellt ein weißes RGB-Bild mit 1280 x 1024 Pixeln.
-Comment[el]=Δημιουργεί μία λευκή RGB εικόνα μεγέθους 1280 x 1024 εικονοστοιχείων.
-Comment[eo]=Kreas blankan RGB-bildon el 1280 x 1024 rastrumeroj.
-Comment[es]=Crea una imagen RGB de 1280 x 1024 píxeles.
-Comment[et]=Loob valge RGB-pildi mõõtmetega 61280 x 1024 pikslit.
-Comment[eu]=1280 x 1024 pixeleko RGB irudi zuri bat sortzen du.
-Comment[fa]=یک تصویر RGB سفید ۱۰۲۴ × ۱۲۸۰ تصویردانه‌ای ایجاد می‌کند.
-Comment[fi]=Luo valkoisen 1280x1024 pikselin RGB-kuvan.
-Comment[fr]=Crée une image blanche RVB de 1280 x 1024 pixels.
-Comment[fy]=Makket in wite RGB-ôfbylding oan fan 1280 x 768 byldpunten.
-Comment[gl]=Cria unha imaxe RGB branca de 1280 x 1024 pixels.
-Comment[he]=יצירת תמונת RGB לבנה בגודל ‎1280 x 1024 פיקסלים
-Comment[hu]=Létrehoz egy 1280 x 1024 képpontos fehér RGB képet.
-Comment[is]=Býr til hvíta RGB mynd í hlutföllunum 1280 x 1024 punktar.
-Comment[it]=Crea un'immagine RGB bianca di 1280 × 1024 pixel.
-Comment[ja]=1280 x 1024 ピクセルの RGB 画像を作成
-Comment[km]=បង្កើត​រូបភាព RGB ពណ៌ស​ទំហំ 1280 x 1024 ភីកសែល ។
-Comment[lt]=Sukuria baltą 1280 x 1024 pikselių RGB paveiksliuką.
-Comment[ms]=Cipta imej RGB putih 1280 x 1024 piksel.
-Comment[nb]=Lager et hvitt bilde på 1280 x 1024 piksler.
-Comment[nds]=Stellt en witt RGB-Bild mit 1280 x 1024 Pixels op.
-Comment[ne]=१२८० x १०२४ पिक्सेलको सेतो RGB छवि सिर्जना गर्दछ ।
-Comment[nl]=Maakt een witte RGB-afbeelding aan van 1280 x 1024 pixels.
-Comment[nn]=Lagar eit kvitt RGB-bilete på 1280 × 1024 pikslar.
-Comment[pl]=Tworzy biały obrazek RGB o rozmiarach 1280 x 1024 pikseli.
-Comment[pt]=Cria uma imagem RGB branca com 1280 x 1024 pontos.
-Comment[pt_BR]=Cria uma imagem RGB em branco de 1280 x 1024 pixels.
-Comment[ru]=Рисунок RGB 1280x1024, белый фон
-Comment[se]=Ráhkada vilges RGB-gova mas lea 1280 × 1024 govvačuoggá.
-Comment[sk]=Vytvorí RGB obrázok s rozmermi 1280 x 1024 pixelov a bielym pozadím.
-Comment[sl]=Ustvari belo sliko RGB velikosti 1280 x 1024 pik.
-Comment[sr]=Прави белу RGB слику са 1280 x 1024 пиксела.
-Comment[sr@Latn]=Pravi belu RGB sliku sa 1280 x 1024 piksela.
-Comment[sv]=Skapar en vit RGB-bild med 1280 x 1024 bildpunkter.
-Comment[uk]=Створює біле зображення у форматі RGB, 1280 x 1024 пікселів.
-Comment[uz]=Oʻlchami 1280 x 1024 nuqta boʻlgan oq RGB rasmni yaratish.
-Comment[uz@cyrillic]=Ўлчами 1280 x 1024 нуқта бўлган оқ RGB расмни яратиш.
-Comment[zh_CN]=创建 1080 x 1024 像素的 RGB 白色背景图像。
-Comment[zh_TW]=建立一個 1280 x 1024 像素的白色 RGB 圖片。
-X-Krita-Version=2
diff --git a/krita/colorspaces/rgb_u8/templates/white_1280x1024.kra b/krita/colorspaces/rgb_u8/templates/white_1280x1024.kra
deleted file mode 100644
index 8d552419d..000000000
Binary files a/krita/colorspaces/rgb_u8/templates/white_1280x1024.kra and /dev/null differ
diff --git a/krita/colorspaces/rgb_u8/templates/white_1600x1200.desktop b/krita/colorspaces/rgb_u8/templates/white_1600x1200.desktop
deleted file mode 100644
index bb43573f5..000000000
--- a/krita/colorspaces/rgb_u8/templates/white_1600x1200.desktop
+++ /dev/null
@@ -1,95 +0,0 @@
-[Desktop Entry]
-Type=Link
-URL=.source/white_1600x1200.kra
-Icon=template_rgb_empty
-Name=White 1600 x 1200
-Name[bg]=Бяло 1600x1200
-Name[br]=Gwenn 1600 x 1200
-Name[ca]=Blanc 1600 x 1200
-Name[cy]=Gwyn 1600 x 1200
-Name[da]=Hvidt 1600 x 1200
-Name[de]=Weiß 1600 x 1200
-Name[el]=Λευκή 1600 x 1200
-Name[eo]=Blanka 1600 x 1200
-Name[es]=1600 x 1200 blanco
-Name[et]=Valge 1600 x 1200
-Name[eu]=Zuria 1600 x 1200
-Name[fa]=سفید ۱۲۰۰ × ۱۶۰۰
-Name[fi]=Valkoinen 1600x1200
-Name[fr]=Image blanche 1600 x 1200
-Name[fy]=Wyt 1600 x 1200
-Name[ga]=Bán 1600×1200
-Name[gl]=Branca 1600 x 1200
-Name[he]=לבן ‎1600 x 1200
-Name[hu]=Fehér 1600 x 1200
-Name[is]=Hvít 1600 x 1200
-Name[it]=Bianco 1600 × 1200
-Name[ja]=白 1600 x 1200
-Name[km]=ពណ៌ស 1600 x 1200
-Name[lt]=Baltas 1600 x 1200
-Name[lv]=Balts 1600 x 1200
-Name[ms]=Putih 1600 x 1200
-Name[nb]=Hvit 1600 x 1200
-Name[nds]=Witt 1600 x 1200
-Name[ne]=सेतो १६०० x १२००
-Name[nn]=Kvitt 1600 × 1200
-Name[pl]=Biały 1600 x 1200
-Name[pt]=Branca 1600 x 1200
-Name[pt_BR]=1600 x 1200 em Branco
-Name[ru]=Рисунок 1600x1200, белый фон
-Name[se]=Vilges 1600 × 1200
-Name[sk]=Biely 1600 x 1200
-Name[sl]=Bela 1600 x 1200
-Name[sr]=Бела 1600 x 1200
-Name[sr@Latn]=Bela 1600 x 1200
-Name[sv]=Vit 1600 x 1200
-Name[uk]=Біле 1600 x 1200
-Name[uz]=Oq 1600 x 1200
-Name[uz@cyrillic]=Оқ 1600 x 1200
-Name[zh_CN]=白色 1600 x 1200
-Name[zh_TW]=白色 1600 x 1200
-Comment=Creates a white RGB image of 1600 x 1200 pixels.
-Comment[bg]=Създаване на бяло изображение RGB с размери 1600x1200 пиксела.
-Comment[ca]=Crea una imatge blanca RGB de 1600 x 1200 píxels.
-Comment[cy]=Creu delwedd RGB wen o 1600 x 1200 picsel.
-Comment[da]=Laver et hvidt RGB-billede på 1600 x 1200 billedpunkter.
-Comment[de]=Erstellt ein weißes RGB-Bild mit 1600 x 1200 Pixeln.
-Comment[el]=Δημιουργεί μία λευκή RGB εικόνα μεγέθους 1600 x 1200 εικονοστοιχείων.
-Comment[eo]=Kreas blankan RGB-bildon el 1600 x 1200 rastrumeroj.
-Comment[es]=Crea una imagen RGB de 1600 x 1200 píxeles.
-Comment[et]=Loob valge RGB-pildi mõõtmetega 1600 x 1200 pikslit.
-Comment[eu]=1600 x 1200 pixeleko RGB irudi zuri bat sortzen du.
-Comment[fa]=یک تصویر RGB سفید ۱۲۰۰ × ۱۶۰۰ تصویردانه‌ای ایجاد می‌کند.
-Comment[fi]=Luo valkoisen 1600x1200 pikselin RGB-kuvan.
-Comment[fr]=Crée une image blanche RVB de 1600 x 1200 pixels.
-Comment[fy]=Makket in wite RGB-ôfbylding oan fan 1600 x 1200 byldpunten.
-Comment[gl]=Cria unha imaxe RGB branca de 1600 x 1200 pixels.
-Comment[he]=יצירת תמונת RGB לבנה בגודל ‎1600 x 1200 פיקסלים
-Comment[hu]=Létrehoz egy 1600 x 1200 képpontos fehér RGB képet.
-Comment[is]=Býr til hvíta RGB mynd í hlutföllunum 1600 x 1200 punktar.
-Comment[it]=Crea un'immagine RGB bianca di 1600 × 1200 pixel.
-Comment[ja]=1600 x 1200 ピクセルの RGB 画像を作成
-Comment[km]=បង្កើត​រូបភាព RGB ពណ៌ស​ទំហំ 1600 x 1200 ភីកសែល ។
-Comment[lt]=Sukuria baltą 1600 x 1200 pikselių RGB paveiksliuką.
-Comment[ms]=Cipta imej RGB putih 1600 x 1200 piksel.
-Comment[nb]=Lager et hvitt bilde på 1600 x 1200 piksler.
-Comment[nds]=Stellt en witt RGB-Bild mit 1600 x 1200 Pixels op
-Comment[ne]=१६०० x १२०० पिक्सेलको सेतो RGB छवि सिर्जना गर्दछ ।
-Comment[nl]=Maakt een witte RGB-afbeelding aan van 1600 x 1200 pixels.
-Comment[nn]=Lagar eit kvitt RGB-bilete på 1600 × 1200 pikslar.
-Comment[pl]=Tworzy biały obrazek RGB o rozmiarach 1600 x1200 pikseli.
-Comment[pt]=Cria uma imagem RGB branca com 1600 x 1200 pontos.
-Comment[pt_BR]=Cria uma imagem RGB em branco de 1600 x 1200 pixels.
-Comment[ru]=Рисунок RGB 1600x1200, белый фон
-Comment[se]=Ráhkada vilges RGB-gova mas lea 1600 × 1200 govvačuoggá.
-Comment[sk]=Vytvorí RGB obrázok s rozmermi 1600 x 1200 pixelov a bielym pozadím.
-Comment[sl]=Ustvari belo sliko RGB velikosti 1600 x 1200 pik.
-Comment[sr]=Прави белу RGB слику са 1600 x 1200 пиксела.
-Comment[sr@Latn]=Pravi belu RGB sliku sa 1600 x 1200 piksela.
-Comment[sv]=Skapar en vit RGB-bild med 1600 x 1200 bildpunkter.
-Comment[uk]=Створює біле зображення у форматі RGB, 1600 x 1200 пікселів.
-Comment[uz]=Oʻlchami 1600 x 1200 nuqta boʻlgan oq RGB rasmni yaratish.
-Comment[uz@cyrillic]=Ўлчами 1600 x 1200 нуқта бўлган оқ RGB расмни яратиш.
-Comment[zh_CN]=创建 1600 x 1200 像素的 RGB 白色背景图像。
-Comment[zh_TW]=建立一個 1600 x 1200 像素的白色 RGB 圖片。
-X-Krita-Version=2
diff --git a/krita/colorspaces/rgb_u8/templates/white_1600x1200.kra b/krita/colorspaces/rgb_u8/templates/white_1600x1200.kra
deleted file mode 100644
index 7c037d9e5..000000000
Binary files a/krita/colorspaces/rgb_u8/templates/white_1600x1200.kra and /dev/null differ
diff --git a/krita/colorspaces/rgb_u8/templates/white_640x480.desktop b/krita/colorspaces/rgb_u8/templates/white_640x480.desktop
deleted file mode 100644
index 2babefbf1..000000000
--- a/krita/colorspaces/rgb_u8/templates/white_640x480.desktop
+++ /dev/null
@@ -1,102 +0,0 @@
-[Desktop Entry]
-Type=Link
-URL=.source/white_640x480.kra
-Icon=template_rgb_empty
-Name=White 640x480
-Name[bg]=Бяло 640x480
-Name[br]=Gwenn 640x480
-Name[ca]=Blanc 640x480
-Name[cy]=Gwyn 640 x 480
-Name[da]=Hvidt 640x480
-Name[de]=Weiß 640x480
-Name[el]=Λευκή 640x480
-Name[eo]=Blanka 640x480
-Name[es]=640x480 blanco
-Name[et]=Valge 640x480
-Name[eu]=Zuria 640x480
-Name[fa]=سفید ۴۸۰ × ۶۴۰
-Name[fi]=Valkoinen 640x480
-Name[fr]=Image blanche 640 x 480
-Name[fy]=Wyt 640x480
-Name[ga]=Bán 640×480
-Name[gl]=Branca 640x480
-Name[he]=לבן 640x480
-Name[hi]=सफेद 640x480
-Name[hu]=Fehér 640 x 480
-Name[is]=Hvít 640x480
-Name[it]=Bianco 640×480
-Name[ja]=白 640 x 480
-Name[km]=ពណ៌​ស​640 x 480
-Name[lt]=Baltas 640x480
-Name[lv]=Balts 640x480
-Name[ms]=Putih 640x480
-Name[nb]=Hvitt 640 x 480
-Name[nds]=Witt 640x480
-Name[ne]=सेतो ६४०x४८०
-Name[nl]=Wit 640 x 480
-Name[nn]=Kvitt 640 × 480
-Name[pl]=Biały 640x480
-Name[pt]=Branca 640x480
-Name[pt_BR]=640x480 em Branco
-Name[ru]=Рисунок 640x480, белый фон
-Name[se]=Vilges 640 × 480
-Name[sk]=Biely 640x480
-Name[sl]=Bela 640x480
-Name[sr]=Бела 640x480
-Name[sr@Latn]=Bela 640x480
-Name[sv]=Vit 640x480
-Name[ta]=வெள்ளை 640x480
-Name[tr]=Beyaz 640x480
-Name[uk]=Біле 640x480
-Name[uz]=Oq 640 x 480
-Name[uz@cyrillic]=Оқ 640 x 480
-Name[zh_CN]=白色 640 x 480
-Name[zh_TW]=白色 640x480
-Comment=Creates a white RGB image of 640 x 480 pixels.
-Comment[bg]=Създаване на бяло изображение RGB с размери 640x480 пиксела.
-Comment[ca]=Crea una imatge blanca RGB de 640 x 480 píxels.
-Comment[cy]=Creu delwedd RGB wen o 640 x 480 picsel.
-Comment[da]=Laver et hvidt RGB-billede på 640 x 480 billedpunkter.
-Comment[de]=Erstellt ein weißes RGB-Bild mit 640 x 480 Pixeln.
-Comment[el]=Δημιουργεί μία λευκή RGB εικόνα μεγέθους 640 x 480 εικονοστοιχείων.
-Comment[eo]=Kreas blankan RGB-bildon el 640 x 480 rastrumeroj.
-Comment[es]=Crea una imagen RGB de 640 x 480 píxeles.
-Comment[et]=Loob valge RGB pildi mõõtmetega 640 x 480 pikslit.
-Comment[eu]=640 x 480 pixeleko RGB irudi zuri bat sortzen du.
-Comment[fa]=یک تصویر RGB سفید ۴۸۰ × ۶۴۰ تصویردانه‌ای ایجاد می‌کند.
-Comment[fi]=Luo valkoisen 640x480 pikselin RGB-kuvan.
-Comment[fr]=Crée une image blanche RVB de 640 x 480 pixels.
-Comment[fy]=Makket in wite RGB-ôfbylding oan fan 640 x 480 byldpunten.
-Comment[gl]=Cria unha imaxe RGB branca de 640 x 480 pixels.
-Comment[he]=יצירת תמונת RGB לבנה בגודל ‎640 x 480 פיקסלים
-Comment[hi]=640 x 480 पिक्सेल का, सफेद आरजीबी छवि बनाता है
-Comment[hu]=Létrehoz egy 640 x 480 képpontos fehér RGB képet.
-Comment[is]=Býr til hvíta RGB mynd í hlutföllunum 640 x 480 punktar.
-Comment[it]=Crea un'immagine RGB bianca di 640 × 480 pixel.
-Comment[ja]=640 x 480 ピクセルの RGB 画像を作成
-Comment[km]=បង្កើត​រូបភាព RGB ពណ៌ស​ទំហំ 640 x 480 ភីកសែល ។
-Comment[lt]=Sukuria baltą 640 x 480 pikselių RGB paveiksliuką.
-Comment[ms]=Cipta imej RGB putih 640 x 480 piksel.
-Comment[nb]=Lager et hvitt bilde på 640 x 480 piksler.
-Comment[nds]=Stellt en witt RGB-Bild mit 640 x 480 Pixels op.
-Comment[ne]=६४० x ४८० पिक्सेलको सेतो RGB छवि सिर्जना गर्दछ ।
-Comment[nl]=Maakt een witte RGB-afbeelding aan van 640 x 480 pixels.
-Comment[nn]=Lagar eit kvitt RGB-bilete på 640 × 480 pikslar.
-Comment[pl]=Tworzy biały obrazek RGB o rozmiarach 640 x 480 pikseli.
-Comment[pt]=Cria uma imagem RGB branca com 640 x 480 pontos.
-Comment[pt_BR]=Cria uma imagem RGB em branco de 640 x 480 pixéis.
-Comment[ru]=Рисунок RGB 640x480, белый фон
-Comment[se]=Ráhkada vilges RGB-gova mas lea 640 × 480 govvačuoggá.
-Comment[sk]=Vytvorí RGB obrázok s rozmermi 640 x 480 pixelov a bielym pozadím.
-Comment[sl]=Ustvari belo sliko RGB velikosti 640 x 480 pik.
-Comment[sr]=Прави белу RGB слику са 640 x 480 пиксела.
-Comment[sr@Latn]=Pravi belu RGB sliku sa 640 x 480 piksela.
-Comment[sv]=Skapar en vit RGB-bild med 640 x 480 bildpunkter.
-Comment[ta]=640 x 480 படத்துணுக்குகளில் ஒரு வெள்ளை RGB பிம்பத்தை உருவாக்குகிறது.
-Comment[tr]=640 x 480 piksel ebadında beyaz bir RGB görüntü oluşturur.
-Comment[uk]=Створює біле зображення у форматі RGB, 640 x 480 пікселів.
-Comment[uz]=Oʻlchami 640 x 480 nuqta boʻlgan oq RGB rasmni yaratish.
-Comment[uz@cyrillic]=Ўлчами 640 x 480 нуқта бўлган оқ RGB расмни яратиш.
-Comment[zh_CN]=创建 640 x 480 像素的 RGB 白色背景图像。
-Comment[zh_TW]=建立一個 640 x 480 像素的白色 RGB 圖片。
-X-Krita-Version=2
diff --git a/krita/colorspaces/rgb_u8/templates/white_640x480.kra b/krita/colorspaces/rgb_u8/templates/white_640x480.kra
deleted file mode 100644
index 2a0265d0c..000000000
Binary files a/krita/colorspaces/rgb_u8/templates/white_640x480.kra and /dev/null differ
diff --git a/krita/colorspaces/rgb_u8/tests/Makefile.am b/krita/colorspaces/rgb_u8/tests/Makefile.am
deleted file mode 100644
index 658328962..000000000
--- a/krita/colorspaces/rgb_u8/tests/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-AM_CPPFLAGS =  -I$(srcdir)/../../../sdk \
-	 -I$(srcdir)/.. \
-	-I$(srcdir)/../../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../../color_strategy/ \
-	$(all_includes)
-
-# The check_ target makes sure we don't install the modules,
-# $(KDE_CHECK_PLUGIN) assures a shared library is created.
-check_LTLIBRARIES = kunittest_kis_strategy_colorspace_rgb_tester.la
-
-kunittest_kis_strategy_colorspace_rgb_tester_la_SOURCES = kis_strategy_colorspace_rgb_tester.cpp
-kunittest_kis_strategy_colorspace_rgb_tester_la_LIBADD = -lkunittest ../libkritargb.la
-kunittest_kis_strategy_colorspace_rgb_tester_la_LDFLAGS = -module $(KDE_CHECK_PLUGIN) $(all_libraries)
-
-check-local: kunittest_kis_strategy_colorspace_rgb_tester.la
-	kunittestmodrunner
-
diff --git a/krita/colorspaces/rgb_u8/tests/kis_strategy_colorspace_rgb_tester.cpp b/krita/colorspaces/rgb_u8/tests/kis_strategy_colorspace_rgb_tester.cpp
deleted file mode 100644
index 1d3526f41..000000000
--- a/krita/colorspaces/rgb_u8/tests/kis_strategy_colorspace_rgb_tester.cpp
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <kunittest/runner.h>
-#include <kunittest/module.h>
-
-#include "kis_factory.h"
-#include "kis_strategy_colorspace_rgb_tester.h"
-#include "kis_rgb_colorspace.h"
-
-using namespace KUnitTest;
-
-KUNITTEST_MODULE( kunittest_kis_strategy_colorspace_rgb_tester, "RGB ColorSpace Tester" );
-KUNITTEST_MODULE_REGISTER_TESTER( KisRgbColorSpaceTester );
-
-void KisRgbColorSpaceTester::allTests()
-{
-    // We need this so that the colour profile loading can operate without crashing.
-    KisFactory *factory = new KisFactory();
-
-    testBasics();
-    testMixColors();
-
-    delete factory;
-}
-
-#define NUM_CHANNELS 4
-
-#define RED_CHANNEL 0
-#define GREEN_CHANNEL 1
-#define BLUE_CHANNEL 2
-#define ALPHA_CHANNEL 3
-
-void KisRgbColorSpaceTester::testBasics()
-{
-    KisProfile *defProfile = new KisProfile(cmsCreate_sRGBProfile());  
-    KisRgbColorSpace *cs = new KisRgbColorSpace(defProfile);
-
-    TQ_UINT8 pixel[NUM_CHANNELS];
-
-    pixel[PIXEL_RED] = 255;
-    pixel[PIXEL_GREEN] = 128;
-    pixel[PIXEL_BLUE] = 64;
-    pixel[PIXEL_ALPHA] = 0;
-
-    TQString valueText = cs->channelValueText(pixel, RED_CHANNEL);
-    CHECK(valueText, TQString("255"));
-
-    valueText = cs->channelValueText(pixel, GREEN_CHANNEL);
-    CHECK(valueText, TQString("128"));
-
-    valueText = cs->channelValueText(pixel, BLUE_CHANNEL);
-    CHECK(valueText, TQString("64"));
-
-    valueText = cs->channelValueText(pixel, ALPHA_CHANNEL);
-    CHECK(valueText, TQString("0"));
-
-    valueText = cs->normalisedChannelValueText(pixel, RED_CHANNEL);
-    CHECK(valueText, TQString().setNum(1.0));
-
-    valueText = cs->normalisedChannelValueText(pixel, GREEN_CHANNEL);
-    CHECK(valueText, TQString().setNum(128.0 / 255.0));
-
-    valueText = cs->normalisedChannelValueText(pixel, BLUE_CHANNEL);
-    CHECK(valueText, TQString().setNum(64.0 / 255.0));
-
-    valueText = cs->normalisedChannelValueText(pixel, ALPHA_CHANNEL);
-    CHECK(valueText, TQString().setNum(0.0));
-
-    cs->setPixel(pixel, 128, 192, 64, 99);
-    CHECK((uint)pixel[PIXEL_RED], 128u);
-    CHECK((uint)pixel[PIXEL_GREEN], 192u);
-    CHECK((uint)pixel[PIXEL_BLUE], 64u);
-    CHECK((uint)pixel[PIXEL_ALPHA], 99u);
-
-    TQ_UINT8 red;
-    TQ_UINT8 green;
-    TQ_UINT8 blue;
-    TQ_UINT8 alpha;
-
-    cs->getPixel(pixel, &red, &green, &blue, &alpha);
-    CHECK((uint)red, 128u);
-    CHECK((uint)green, 192u);
-    CHECK((uint)blue, 64u);
-    CHECK((uint)alpha, 99u);
-}
-
-void KisRgbColorSpaceTester::testMixColors()
-{
-    KisProfile *defProfile = new KisProfile(cmsCreate_sRGBProfile());
-    KisRgbColorSpace *cs = new KisRgbColorSpace(defProfile);
-
-
-    // Test mixColors.
-    TQ_UINT8 pixel1[4];
-    TQ_UINT8 pixel2[4];
-    TQ_UINT8 outputPixel[4];
-
-    pixel1[PIXEL_RED] = 255;
-    pixel1[PIXEL_GREEN] = 255;
-    pixel1[PIXEL_BLUE] = 255;
-    pixel1[PIXEL_ALPHA] = 255;
-
-    pixel2[PIXEL_RED] = 0;
-    pixel2[PIXEL_GREEN] = 0;
-    pixel2[PIXEL_BLUE] = 0;
-    pixel2[PIXEL_ALPHA] = 0;
-
-    const TQ_UINT8 *pixelPtrs[2];
-    TQ_UINT8 weights[2];
-
-    pixelPtrs[0] = pixel1;
-    pixelPtrs[1] = pixel2;
-
-    weights[0] = 255;
-    weights[1] = 0;
-
-    cs->mixColors(pixelPtrs, weights, 2, outputPixel);
-
-    CHECK((int)outputPixel[PIXEL_RED], 255);
-    CHECK((int)outputPixel[PIXEL_GREEN], 255);
-    CHECK((int)outputPixel[PIXEL_BLUE], 255);
-    CHECK((int)outputPixel[PIXEL_ALPHA], 255);
-
-    weights[0] = 0;
-    weights[1] = 255;
-
-    cs->mixColors(pixelPtrs, weights, 2, outputPixel);
-
-    CHECK((int)outputPixel[PIXEL_RED], 0);
-    CHECK((int)outputPixel[PIXEL_GREEN], 0);
-    CHECK((int)outputPixel[PIXEL_BLUE], 0);
-    CHECK((int)outputPixel[PIXEL_ALPHA], 0);
-
-    weights[0] = 128;
-    weights[1] = 127;
-
-    cs->mixColors(pixelPtrs, weights, 2, outputPixel);
-     
-    CHECK((int)outputPixel[PIXEL_RED], 255);
-    CHECK((int)outputPixel[PIXEL_GREEN], 255);
-    CHECK((int)outputPixel[PIXEL_BLUE], 255);
-    CHECK((int)outputPixel[PIXEL_ALPHA], 128);
-
-    pixel1[PIXEL_RED] = 200;
-    pixel1[PIXEL_GREEN] = 100;
-    pixel1[PIXEL_BLUE] = 50;
-    pixel1[PIXEL_ALPHA] = 255;
-
-    pixel2[PIXEL_RED] = 100;
-    pixel2[PIXEL_GREEN] = 200;
-    pixel2[PIXEL_BLUE] = 20;
-    pixel2[PIXEL_ALPHA] = 255;
-
-    cs->mixColors(pixelPtrs, weights, 2, outputPixel);
-
-    CHECK((int)outputPixel[PIXEL_RED], 150);
-    CHECK((int)outputPixel[PIXEL_GREEN], 150);
-    CHECK((int)outputPixel[PIXEL_BLUE], 35);
-    CHECK((int)outputPixel[PIXEL_ALPHA], 255);
-
-    pixel1[PIXEL_RED] = 0;
-    pixel1[PIXEL_GREEN] = 0;
-    pixel1[PIXEL_BLUE] = 0;
-    pixel1[PIXEL_ALPHA] = 0;
-
-    pixel2[PIXEL_RED] = 255;
-    pixel2[PIXEL_GREEN] = 255;
-    pixel2[PIXEL_BLUE] = 255;
-    pixel2[PIXEL_ALPHA] = 254;
-
-    weights[0] = 89;
-    weights[1] = 166;
-
-    cs->mixColors(pixelPtrs, weights, 2, outputPixel);
-
-    CHECK((int)outputPixel[PIXEL_RED], 255);
-    CHECK((int)outputPixel[PIXEL_GREEN], 255);
-    CHECK((int)outputPixel[PIXEL_BLUE], 255);
-    CHECK((int)outputPixel[PIXEL_ALPHA], 165);
-}
-
diff --git a/krita/colorspaces/rgb_u8/tests/kis_strategy_colorspace_rgb_tester.h b/krita/colorspaces/rgb_u8/tests/kis_strategy_colorspace_rgb_tester.h
deleted file mode 100644
index 16fc4e837..000000000
--- a/krita/colorspaces/rgb_u8/tests/kis_strategy_colorspace_rgb_tester.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-
-#ifndef KIS_STRATEGY_COLORSPACE_RGB_TESTER_H
-#define KIS_STRATEGY_COLORSPACE_RGB_TESTER_H
-
-#include <kunittest/tester.h>
-
-class KisRgbColorSpaceTester : public KUnitTest::Tester
-{
-public:
-        void allTests();
-    void testBasics();
-    void testMixColors();
-};
-
-#endif
-
diff --git a/krita/colorspaces/wet/Makefile.am b/krita/colorspaces/wet/Makefile.am
deleted file mode 100644
index fcbcafc9b..000000000
--- a/krita/colorspaces/wet/Makefile.am
+++ /dev/null
@@ -1,28 +0,0 @@
-kritarcdir = $(kde_datadir)/kritaplugins
-kritarc_DATA = wetplugin.rc
-kde_services_DATA = kritawetplugin.desktop
-
-EXTRA_DIST = $(kritarc_DATA)
-
-INCLUDES  = -I$(srcdir)/../../sdk \
-	-I$(srcdir)/../../core \
-	-I$(srcdir)/../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../kritacolor/ \
-	-I$(srcdir)/../../ui \
-	-I$(srcdir)/../../kopalette \
-	$(KOFFICE_INCLUDES) \
-	-I$(interfacedir) \
-	$(KOPAINTER_INCLUDES) \
-	$(all_includes)
-
-kde_module_LTLIBRARIES = kritawetplugin.la
-
-kritawetplugin_la_SOURCES = kis_wet_colorspace.cc wet_plugin.cc kis_wetop.cc kis_wet_palette_widget.cc kis_wetness_visualisation_filter.cc kis_texture_painter.cc kis_texture_filter.cc wetphysicsfilter.cc wdgpressure.ui
-noinst_HEADERS = kis_wet_colorspace.h wet_plugin.h wetphysicsfilter.h kis_wetop.cc kis_wet_palette_widget.h kis_texture_painter.h kis_wetness_visualisation_filter.h kis_texture_filter.h wetphysicsfilter.h
-
-kritawetplugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -llcms -L../../../krita/kritacolor/.libs -lkritacolor -L../../../krita/core/.libs -lkritaimage \
-	-L../../../krita/ui/.libs -lkritaui
-kritawetplugin_la_LIBADD =  ../../libkritacommon.la $(LIB_KOPAINTER) $(LIB_KOFFICECORE)
-
-kritawetplugin_la_METASOURCES = AUTO
-
diff --git a/krita/colorspaces/wet/kis_texture_filter.cc b/krita/colorspaces/wet/kis_texture_filter.cc
deleted file mode 100644
index 57ff1db0d..000000000
--- a/krita/colorspaces/wet/kis_texture_filter.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * kis_texture_filter.cc -- Part of Krita
- *
- * Copyright (c) 2005 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <kdebug.h>
-#include <kis_view.h>
-#include <kis_image.h>
-#include <kis_debug_areas.h>
-#include "kis_texture_painter.h"
-#include "kis_texture_filter.h"
-
-void WetPaintDevAction::act(KisPaintDeviceSP device,  TQ_INT32 w,  TQ_INT32 h) const {
-    KisColorSpace * cs = device->colorSpace();
-
-    if (cs->id() != KisID("WET","")) {
-        kdDebug(DBG_AREA_CMS) << "You set this kind of texture on non-wet layers!.\n";
-        return;
-    } else {
-        kdDebug(DBG_AREA_CMS) << "Wet Paint Action activated!\n";
-    }
-
-    // XXX if params of the painter get configurable, make them here configurable as well?
-    KisTexturePainter painter(device);
-    painter.createTexture(0, 0, w, h);
-    painter.end();
-}
-
diff --git a/krita/colorspaces/wet/kis_texture_filter.h b/krita/colorspaces/wet/kis_texture_filter.h
deleted file mode 100644
index b4b32825b..000000000
--- a/krita/colorspaces/wet/kis_texture_filter.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* 
- * kis_texture_filter.h -- Part of Krita
- *
- * Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef _TEXTURE_FILTER_H
-#define _TEXTURE_FILTER_H
-
-#include <tqstring.h>
-#include <klocale.h>
-#include <kis_paint_device_action.h>
-
-/// Initializes a wet paint device with a texture
-class WetPaintDevAction : public KisPaintDeviceAction {
-public:
-    virtual ~WetPaintDevAction() {}
-
-    virtual void act(KisPaintDeviceSP device,  TQ_INT32 w = 0,  TQ_INT32 h = 0) const;
-    virtual TQString name() const { return i18n("Wet Texture"); }
-    virtual TQString description() const { return i18n("Add a texture to the wet canvas"); }
-};
-
-#endif // _TEXTURE_FILTER_H
diff --git a/krita/colorspaces/wet/kis_texture_painter.cc b/krita/colorspaces/wet/kis_texture_painter.cc
deleted file mode 100644
index 4b11b9899..000000000
--- a/krita/colorspaces/wet/kis_texture_painter.cc
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <math.h>
-
-#include <kdebug.h>
-
-#include <kis_global.h>
-#include <kis_image.h>
-#include <kis_iterators_pixel.h>
-#include <kis_layer.h>
-#include <kis_paint_device.h>
-#include <kis_painter.h>
-#include <kis_types.h>
-
-#include "kis_wet_colorspace.h"
-#include "kis_texture_painter.h"
-
-KisTexturePainter::KisTexturePainter()
-    : super()
-{
-    // XXX make at least one of these configurable, probably blurh
-    m_height = 1;
-    m_blurh = 0.7;
-}
-
-KisTexturePainter::KisTexturePainter(KisPaintDeviceSP device) : super(device)
-{
-    m_height = 1;
-    m_blurh = 0.7;
-}
-
-void KisTexturePainter::createTexture( TQ_INT32 x,  TQ_INT32 y,  TQ_INT32 w,  TQ_INT32 h)
-{
-    double hscale = 128 * m_height / RAND_MAX;
-
-    int ibh = (int) floor(256 * m_blurh + 0.5);
-
-    // initialize with random data
-    for (int y2 = 0; y2 < h; y2++) {
-        KisHLineIterator i = m_device->createHLineIterator(x, y + y2, w, true);
-        while (!i.isDone()) {
-            WetPack* pack = reinterpret_cast<WetPack*>(i.rawData());
-            WetPix* w = &(pack->adsorb);
-            w->h = ( TQ_UINT16)floor(128 + hscale * rand());
-            ++i;
-        }
-    }
-
-    int lh;
-
-    // Blur horizontally
-    for (int y2 = 0; y2 < h; y2++) {
-        KisHLineIterator i = m_device->createHLineIterator(x, y + y2, w, true);
-
-        WetPack* pack = reinterpret_cast<WetPack*>(i.rawData());
-        WetPix* w = &(pack->adsorb);
-        lh = w->h;
-        ++i;
-
-        while (!i.isDone()) {
-            pack = reinterpret_cast<WetPack*>(i.rawData());
-            w = &(pack->adsorb);
-            w->h += ((lh - w->h) * ibh + 128) >> 8;
-            lh = w->h;
-            // XXX to make it easier for us later on, we store the height data in paint
-            // as well!
-            w = &(pack->paint);
-            w->h = lh;
-            ++i;
-        }
-    }
-
-    //Qt::Vertical blurring was commented out in wetdreams, the effect seems to be achievable
-    // without this.
-    // I think this is because with blur in one direction, you get more the effect of
-    // having 'fibers' in your paper
-}
diff --git a/krita/colorspaces/wet/kis_texture_painter.h b/krita/colorspaces/wet/kis_texture_painter.h
deleted file mode 100644
index 00bcd135a..000000000
--- a/krita/colorspaces/wet/kis_texture_painter.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_TEXTURE_PAINTER_H_
-#define KIS_TEXTURE_PAINTER_H_
-
-#include "kis_types.h"
-#include "kis_painter.h"
-
-class KisTexturePainter : public KisPainter
-{
-
-    typedef KisPainter super;
-
-public:
-
-    KisTexturePainter();
-    KisTexturePainter(KisPaintDeviceSP device);
-
-    void createTexture( TQ_INT32 x,  TQ_INT32 y,  TQ_INT32 w,  TQ_INT32 h);
-
-private:
-    double m_blurh, m_height;
-
-};
-#endif //KIS_TEXTURE_PAINTER_H_
diff --git a/krita/colorspaces/wet/kis_wet_colorspace.cc b/krita/colorspaces/wet/kis_wet_colorspace.cc
deleted file mode 100644
index 7d6f0d678..000000000
--- a/krita/colorspaces/wet/kis_wet_colorspace.cc
+++ /dev/null
@@ -1,514 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <limits.h>
-#include <stdlib.h>
-
-#include <config.h>
-#include LCMS_HEADER
-
-#include <tqimage.h>
-
-#include <klocale.h>
-#include <kdebug.h>
-#include <kis_debug_areas.h>
-#include "kis_abstract_colorspace.h"
-#include "kis_colorspace_factory_registry.h"
-#include "kis_image.h"
-#include "kis_wet_colorspace.h"
-#include "wetphysicsfilter.h"
-#include "kis_integer_maths.h"
-
-namespace {
-    static const WetPix m_paint = { 707, 0, 707, 0, 707, 0, 240, 0 };
-
-    /* colors from Curtis et al, Siggraph 97 */
-
-    static const WetPix m_paintbox[] = {
-        {496, 0, 16992, 0, 3808, 0, 0, 0},
-        {16992, 9744, 21712, 6400, 25024, 3296, 0, 0},
-        {6512, 6512, 6512, 4880, 11312, 0, 0, 0},
-        {16002, 0, 2848, 0, 16992, 0, 0, 0},
-        {22672, 0, 5328, 2272, 4288, 2640, 0, 0},
-        {8000, 0, 16992, 0, 28352, 0, 0, 0},
-        {5696, 5696, 12416, 2496, 28352, 0, 0, 0},
-        {0, 0, 5136, 0, 28352, 0, 0, 0},
-        {2320, 1760, 7344, 4656, 28352, 0, 0, 0},
-        {8000, 0, 3312, 0, 5504, 0, 0, 0},
-        {13680, 0, 16992, 0, 3312, 0, 0, 0},
-        {5264, 5136, 1056, 544, 6448, 6304, 0, 0},
-        {11440, 11440, 11440, 11440, 11440, 11440, 0, 0},
-        {11312, 0, 11312, 0, 11312, 0, 0, 0},
-        {0, 0, 0, 0, 0, 0, 0, 0} };
-
-    static const int m_nPaints = 15;
-}
-
-void wetPixToDouble(WetPixDbl * dst, WetPix *src)
-{
-    dst->rd = (1.0 / 8192.0) * src->rd;
-    dst->rw = (1.0 / 8192.0) * src->rw;
-    dst->gd = (1.0 / 8192.0) * src->gd;
-    dst->gw = (1.0 / 8192.0) * src->gw;
-    dst->bd = (1.0 / 8192.0) * src->bd;
-    dst->bw = (1.0 / 8192.0) * src->bw;
-    dst->w = (1.0 / 8192.0) * src->w;
-    dst->h = (1.0 / 8192.0) * src->h;
-}
-
-void wetPixFromDouble(WetPix * dst, WetPixDbl *src)
-{
-    int v;
-
-    v = (int)floor (8192.0 * src->rd + 0.5);
-    dst->rd = CLAMP(v, 0, 65535);
-
-    v = (int)floor (8192.0 * src->rw + 0.5);
-    dst->rw = CLAMP(v, 0, 65535);
-
-    v = (int)floor (8192.0 * src->gd + 0.5);
-    dst->gd = CLAMP(v, 0, 65535);
-
-    v = (int)floor (8192.0 * src->gw + 0.5);
-    dst->gw = CLAMP(v, 0, 65535);
-
-    v = (int)floor (8192.0 * src->bd + 0.5);
-    dst->bd = CLAMP(v, 0, 65535);
-
-    v = (int)floor (8192.0 * src->bw + 0.5);
-    dst->bw = CLAMP(v, 0, 65535);
-
-    v = (int)floor (8192.0 * src->w + 0.5);
-    dst->w = CLAMP(v, 0, 511);
-
-    v = (int)floor (8192.0 * src->h + 0.5);
-    dst->h = CLAMP(v, 0, 511);
-
-}
-
-int getH(int r, int g, int b)
-{
-    int h, s, v;
-    TQColor c(r,g, b);
-    c.getHsv(&h, &s, &v);
-    return h;
-}
-
-KisWetColorSpace::KisWetColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) :
-    KisAbstractColorSpace(KisID("WET", i18n("Watercolors")), 0, icMaxEnumData, tqparent, p)
-{
-    wet_init_render_tab();
-
-    m_paintNames << i18n("Quinacridone Rose")
-        << i18n("Indian Red")
-        << i18n("Cadmium Yellow")
-        << i18n("Hookers Green")
-        << i18n("Cerulean Blue")
-        << i18n("Burnt Umber")
-        << i18n("Cadmium Red")
-        << i18n("Brilliant Orange")
-        << i18n("Hansa Yellow")
-        << i18n("Phthalo Green")
-        << i18n("French Ultramarine")
-        << i18n("Interference Lilac")
-        << i18n("Titanium White")
-        << i18n("Ivory Black")
-        << i18n("Pure Water");
-
-    m_channels.push_back(new KisChannelInfo(i18n("Red Concentration"), "Rc", 0, KisChannelInfo::COLOR, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Myth Red"), "Rm", 1, KisChannelInfo::COLOR, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Green Concentration"), "Gc", 2, KisChannelInfo::COLOR, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Myth Green"), "Gm", 3, KisChannelInfo::COLOR, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Blue Concentration"), "Bc", 4, KisChannelInfo::COLOR, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Myth Blue"), "Bm", 5, KisChannelInfo::COLOR, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Water Volume"), "W", 6, KisChannelInfo::SUBSTANCE, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Paper Height"), "H", 7, KisChannelInfo::SUBSTANCE, KisChannelInfo::UINT16));
-
-    m_channels.push_back(new KisChannelInfo(i18n("Adsorbed Red Concentration"), "Rc", 8, KisChannelInfo::COLOR, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Adsorbed Myth Red"), "Rm", 9, KisChannelInfo::COLOR, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Adsorbed Green Concentration"), "Gc", 10, KisChannelInfo::COLOR, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Adsorbed Myth Green"), "Gm", 11, KisChannelInfo::COLOR, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Adsorbed Blue Concentration"), "Bc", 12, KisChannelInfo::COLOR, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Adsorbed Myth Blue"), "Bm", 13, KisChannelInfo::COLOR, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Adsorbed Water Volume"), "W", 14, KisChannelInfo::SUBSTANCE, KisChannelInfo::UINT16));
-    m_channels.push_back(new KisChannelInfo(i18n("Adsorbed Paper Height"), "H", 15, KisChannelInfo::SUBSTANCE, KisChannelInfo::UINT16));
-
-    // Store the hue; we'll pick the paintbox color that closest to the given TQColor's hue.
-    m_conversionMap[getH(240, 32, 160)] = m_paintbox[0]; // Quinacridone Rose
-    m_conversionMap[getH(159, 88, 43)] = m_paintbox[1]; // Indian Red
-    m_conversionMap[getH(254, 220, 64)] = m_paintbox[2]; // Cadmium Yellow
-    m_conversionMap[getH(36, 180, 32)] = m_paintbox[3]; // Hookers Green
-    m_conversionMap[getH(16, 185, 215)] = m_paintbox[4]; // Cerulean Blue
-    m_conversionMap[getH(96, 32, 8)] = m_paintbox[5]; // Burnt Umber
-    m_conversionMap[getH(254, 96, 8)] = m_paintbox[6]; // Cadmium Red
-    m_conversionMap[getH(255, 136, 8)] = m_paintbox[7]; // Brilliant Orange
-    m_conversionMap[getH(240, 199, 8)] = m_paintbox[8]; // Hansa Yellow
-    m_conversionMap[getH(96, 170, 130)] = m_paintbox[9]; // Phthalo Green
-    m_conversionMap[getH(48, 32, 170)] = m_paintbox[10]; // French Ultramarine
-    m_conversionMap[getH(118, 16, 135)] = m_paintbox[11]; // Interference Lilac
-    m_conversionMap[getH(254, 254, 254)] = m_paintbox[12]; // Titanium White
-    m_conversionMap[getH(64, 64, 74)] = m_paintbox[13]; // Ivory Black
-
-    m_paintwetness = false;
-    phasebig = 0;
-}
-
-
-KisWetColorSpace::~KisWetColorSpace()
-{
-}
-
-void KisWetColorSpace::fromTQColor(const TQColor& c, TQ_UINT8 *dst, KisProfile * /*profile*/)
-{
-    WetPack* p = reinterpret_cast<WetPack*>(dst);
-
-    int h = getH(c.red(), c.green(), c.blue());
-    int delta = 256;
-    int key = 0;
-    TQMap<int, WetPix>::Iterator it;
-    TQMap<int, WetPix>::Iterator end = m_conversionMap.end();
-    for (it = m_conversionMap.begin(); it != end; ++it) {
-        if (abs(it.key() - h) < delta) {
-            delta = abs(it.key() - h);
-            key = it.key();
-        }
-    }
-
-    // Translate the special TQCOlors from our paintbox to wetpaint paints.
-    if (m_conversionMap.tqcontains(key)) {
-        (*p).paint = m_conversionMap[key];
-        (*p).adsorb = m_conversionMap[key]; // or maybe best add water here?
-    } else {
-        // water
-        (*p).paint = m_paintbox[14];
-        (*p).adsorb = m_paintbox[14];
-    }
-}
-
-void KisWetColorSpace::fromTQColor(const TQColor& c, TQ_UINT8  /*opacity*/, TQ_UINT8 *dst, KisProfile * /*profile*/)
-{
-    fromTQColor(c, dst);
-}
-
- TQ_UINT8 KisWetColorSpace::getAlpha(const TQ_UINT8 */*pixel*/) const
-{
-    return OPACITY_OPAQUE;
-}
-
-void KisWetColorSpace::setAlpha( TQ_UINT8 * /*pixels*/, TQ_UINT8 /*alpha*/, TQ_INT32 /*nPixels*/) const
-{
-}
-
-void KisWetColorSpace::multiplyAlpha( TQ_UINT8 * /*pixels*/, TQ_UINT8 /*alpha*/, TQ_INT32 /*nPixels*/)
-{
-}
-
-void KisWetColorSpace::applyAlphaU8Mask( TQ_UINT8 * /*pixels*/, TQ_UINT8 * /*alpha*/, TQ_INT32 /*nPixels*/)
-{
-}
-
-void KisWetColorSpace::applyInverseAlphaU8Mask( TQ_UINT8 * /*pixels*/, TQ_UINT8 * /*alpha*/, TQ_INT32 /*nPixels*/)
-{
-}
-
- TQ_UINT8 KisWetColorSpace::scaleToU8(const TQ_UINT8 * /*srcPixel*/, TQ_INT32 /*channelPos*/)
-{
-    return 0;
-}
-
-TQ_UINT16 KisWetColorSpace::scaleToU16(const TQ_UINT8 * /*srcPixel*/, TQ_INT32 /*channelPos*/)
-{
-    return 0;
-}
-
-
-void KisWetColorSpace::toTQColor(const TQ_UINT8 *src, TQColor *c, KisProfile * /*profile*/)
-{
-    TQ_UINT8 * rgb = new TQ_UINT8[3];
-    Q_CHECK_PTR(rgb);
-
-    memset(rgb, 255, 3);
-
-    // Composite the two layers in each pixelSize
-
-    WetPack * wp = (WetPack*)src;
-
-    // First the adsorption layer
-    wet_composite(RGB, rgb, &wp->adsorb);
-
-    // Then the paint layer (which comes first in our double-packed pixel)
-    wet_composite(RGB, rgb,  &wp->paint);
-
-    c->setRgb(rgb[0], rgb[1], rgb[2]);
-
-    delete[]rgb;
-}
-
-void KisWetColorSpace::toTQColor(const TQ_UINT8 *src, TQColor *c, TQ_UINT8 */*opacity*/, KisProfile * /*profile*/)
-{
-    toTQColor(src, c);
-}
-
-void KisWetColorSpace::mixColors(const TQ_UINT8 **/*colors*/, const TQ_UINT8 */*weights*/,  TQ_UINT32 /*nColors*/, TQ_UINT8 */*dst*/) const
-{
-}
-
-TQValueVector<KisChannelInfo *> KisWetColorSpace::channels() const
-{
-    return m_channels;
-}
-
- TQ_UINT32 KisWetColorSpace::nChannels() const
-{
-    return 16;
-}
-
- TQ_UINT32 KisWetColorSpace::nColorChannels() const
-{
-    return 12;
-}
-
- TQ_UINT32 KisWetColorSpace::nSubstanceChannels() const
-{
-    return 4;
-}
-
-
- TQ_UINT32 KisWetColorSpace::pixelSize() const
-{
-    return 32; // This color strategy wants an unsigned short for each
-           // channel, and every pixel consists of two wetpix structs
-           // -- even though for many purposes we need only one wetpix
-           // struct.
-}
-
-
-
-// XXX: use profiles to display correctly on calibrated displays.
-TQImage KisWetColorSpace::convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width, TQ_INT32 height,
-                         KisProfile *  /*dstProfile*/,
-                         TQ_INT32 /*renderingIntent*/, float /*exposure*/)
-{
-
-    TQImage img(width, height, 32);
-
-    TQ_UINT8 *rgb = (TQ_UINT8*) img.bits();
-    const WetPack* wetData = reinterpret_cast<const WetPack*>(data);
-
-    // Clear to white -- the following code actually composits the contents of the
-    // wet pixels with the contents of the image buffer, so they need to be
-    // prepared
-    memset(rgb, 255, width * height * 4);
-    // Composite the two layers in each pixelSize
-
-    TQ_INT32 i = 0;
-    while ( i < width * height) {
-        // First the adsorption layers
-        WetPack* wp = const_cast<WetPack*>(&wetData[i]); // XXX don't do these things!
-        // XXX Probably won't work on MSB archs!
-        wet_composite(BGR, rgb, &(wp->adsorb));
-        // Then the paint layer (which comes first in our double-packed pixel)
-        wet_composite(BGR, rgb, &(wp->paint));
-
-        // XXX pay attention to this comment!!
-        // Display the wet stripes -- this only works if we have at least three scanlines in height,
-        // because otherwise the phase trick won't work.
-
-        // Because we work in a stateless thing, and we can't just draw this wetness
-        // indication AFTER this (e.g. like the selection), we have to do un nice things:
-        // Because we (hopefully atm!) don't use the height of the paint wetpix, we abuse
-        // that to store a state. It's not perfect, but it works for now...
-        if (m_paintwetness) {
-            wet_render_wetness(rgb, wp);
-        }
-
-        i++;
-        rgb += sizeof( TQ_UINT32); // Because the TQImage is 4 bytes deep.
-
-    }
-
-    return img;
-}
-
-void KisWetColorSpace::bitBlt( TQ_UINT8 *dst,
-                  TQ_INT32 dstRowSize,
-                  const TQ_UINT8 *src,
-                  TQ_INT32 srcRowStride,
-                  const TQ_UINT8 */*srcAlphaMask*/,
-                  TQ_INT32 /*tqmaskRowStride*/,
-                  TQ_UINT8 /*opacity*/,
-                  TQ_INT32 rows,
-                  TQ_INT32 cols,
-                  const KisCompositeOp& op)
-{
-    if (rows <= 0 || cols <= 0)
-        return;
-
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-
-    TQ_INT32 linesize = pixelSize() * cols;
-    d = dst;
-    s = src;
-
-    // Do as if we 'stack' them atop of each other
-    if (op == COMPOSITE_OVER) {
-        while (rows-- > 0) {
-            for (int i = 0; i < cols; i++) {
-                WetPack* dstPack = &(reinterpret_cast<WetPack*>(d))[i];
-                const WetPack* srcPack = &(reinterpret_cast<const WetPack*>(s))[i];
-                combinePixels(&(dstPack->paint), &(dstPack->paint), &(srcPack->paint));
-                combinePixels(&(dstPack->adsorb), &(dstPack->adsorb), &(srcPack->adsorb));
-            }
-            d += dstRowSize; // size??
-            s += srcRowStride;
-        }
-
-        return;
-    }
-
-    // Just copy the src onto the dst, we don't do fancy things here,
-    // we do those in the paint op, because we need pressure to determine
-    // paint deposition.
-
-    while (rows-- > 0) {
-        memcpy(d, s, linesize);
-        d += dstRowSize; // size??
-        s += srcRowStride;
-    }
-}
-
-void KisWetColorSpace::wet_init_render_tab()
-{
-    int i;
-
-    double d;
-    int a, b;
-
-    wet_render_tab = new  TQ_UINT32[4096];
-    Q_CHECK_PTR(wet_render_tab);
-
-    for (i = 0; i < 4096; i++)
-    {
-        d = i * (1.0 / 512.0);
-
-        if (i == 0)
-            a = 0;
-        else
-            a = (int) floor (0xff00 / i + 0.5);
-
-        b = (int) floor (0x8000 * exp (-d) + 0.5);
-        wet_render_tab[i] = (a << 16) | b;
-    }
-
-}
-
-void KisWetColorSpace::wet_composite(RGBMode m, TQ_UINT8 *rgb, WetPix * wet)
-{
-    int r, g, b;
-    int d, w;
-    int ab;
-    int wa;
-
-    if (m == RGB)
-        r = rgb[0];
-    else
-        r = rgb[2];
-    w = wet[0].rw >> 4;
-    d = wet[0].rd >> 4;
-
-    ab = wet_render_tab[d];
-
-    wa = (w * (ab >> 16) + 0x80) >> 8;
-    r = wa + (((r - wa) * (ab & 0xffff) + 0x4000) >> 15);
-    if (m == RGB)
-        rgb[0] = r;
-    else
-        rgb[2] = r;
-
-    // Green is 1 both in RGB as BGR
-    g = rgb[1];
-    w = wet[0].gw >> 4;
-    d = wet[0].gd >> 4;
-    d = d >= 4096 ? 4095 : d;
-    ab = wet_render_tab[d];
-    wa = (w * (ab >> 16) + 0x80) >> 8;
-    g = wa + (((g - wa) * (ab & 0xffff) + 0x4000) >> 15);
-    rgb[1] = g;
-
-    if (m == RGB)
-        b = rgb[2];
-    else
-        b = rgb[0];
-    w = wet[0].bw >> 4;
-    d = wet[0].bd >> 4;
-    d = d >= 4096 ? 4095 : d;
-    ab = wet_render_tab[d];
-    wa = (w * (ab >> 16) + 0x80) >> 8;
-    b = wa + (((b - wa) * (ab & 0xffff) + 0x4000) >> 15);
-    if (m == RGB)
-        rgb[2] = b;
-    else
-        rgb[0] = b;
-}
-
-void KisWetColorSpace::wet_render_wetness( TQ_UINT8 * rgb, WetPack * pack)
-{
-    int highlight = 255 - (pack->paint.w >> 1);
-
-    if (highlight < 255 && ((phase++) % 3 == 0)) {
-        for (int i = 0; i < 3; i++)
-            rgb[i] = 255 - (((255 - rgb[i]) * highlight) >> 8);
-    }
-    phase &= 3;
-}
-
-KisCompositeOpList KisWetColorSpace::userVisiblecompositeOps() const
-{
-    KisCompositeOpList list;
-
-    list.append(KisCompositeOp(COMPOSITE_OVER));
-
-    return list;
-}
-
-TQString KisWetColorSpace::channelValueText(const TQ_UINT8 *U8_pixel,  TQ_UINT32 channelIndex) const
-{
-    Q_ASSERT(channelIndex < nChannels());
-    const TQ_UINT16 *pixel = reinterpret_cast<const TQ_UINT16 *>(U8_pixel);
-     TQ_UINT32 channelPosition = m_channels[channelIndex]->pos();
-
-    return TQString().setNum(pixel[channelPosition]);
-}
-
-TQString KisWetColorSpace::normalisedChannelValueText(const TQ_UINT8 *U8_pixel,  TQ_UINT32 channelIndex) const
-{
-    Q_ASSERT(channelIndex < nChannels());
-    const TQ_UINT16 *pixel = reinterpret_cast<const TQ_UINT16 *>(U8_pixel);
-     TQ_UINT32 channelPosition = m_channels[channelIndex]->pos();
-
-    return TQString().setNum(static_cast<float>(pixel[channelPosition]) / UINT16_MAX);
-}
-
-TQValueList<KisFilter *> KisWetColorSpace::createBackgroundFilters()
-{
-    TQValueList<KisFilter *> filterList;
-    KisFilter * f = new WetPhysicsFilter();
-    filterList << f;
-    return filterList;
-}
diff --git a/krita/colorspaces/wet/kis_wet_colorspace.h b/krita/colorspaces/wet/kis_wet_colorspace.h
deleted file mode 100644
index 3d6c6e579..000000000
--- a/krita/colorspaces/wet/kis_wet_colorspace.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_STRATEGY_COLORSPACE_WET_H_
-#define KIS_STRATEGY_COLORSPACE_WET_H_
-
-#include <tqcolor.h>
-#include <tqstringlist.h>
-#include <tqvaluelist.h>
-#include <tqmap.h>
-
-#include "kis_global.h"
-#include "kis_abstract_colorspace.h"
-
-class KisFilter;
-
-/**
- * The wet colourspace is one of the more complicated colour spaces. Every
- * pixel actually consists of two pixels: the paint pixel and the adsorbtion
- * pixel. This corresponds to the two layers of the wetpack structure in the
- * original wetdreams code by Raph Levien.
- */
-
-// XXX: This should really be in a namespace.
-
-typedef struct _WetPix WetPix;
-typedef struct _WetPixDbl WetPixDbl;
-typedef struct _WetPack WetPack;
-
-/*
-    * White is made up of myth-red, myth-green, and myth-blue. Myth-red
-    * looks red when viewed reflectively, but cyan when viewed
-    * transmissively (thus, it vaguely resembles a dichroic
-    * filter). Myth-red over black is red, and myth-red over white is
-    * white.
-    *
-    * Total red channel concentration is myth-red concentration plus
-    * cyan concentration.
-    */
-
-struct _WetPix {
-    TQ_UINT16 rd;  /*  Total red channel concentration */
-    TQ_UINT16 rw;  /*  Myth-red concentration */
-
-    TQ_UINT16 gd;  /*  Total green channel concentration */
-    TQ_UINT16 gw;  /*  Myth-green concentration */
-
-    TQ_UINT16 bd;  /*  Total blue channel concentration */
-    TQ_UINT16 bw;  /*  Myth-blue concentration */
-
-    TQ_UINT16 w;   /*  Water volume */
-    TQ_UINT16 h;   /*  Height of paper surface XXX: This might just as well be a single
-                      channel in our colour model that has two of
-                      these wetpix structs for every paint device pixels*/
-};
-
-struct _WetPack {
-    WetPix paint;  /* Paint layer */
-    WetPix adsorb; /* Adsorbtion layer */
-};
-
-struct _WetPixDbl {
-    double rd;  /*  Total red channel concentration */
-    double rw;  /*  Myth-red concentration */
-    double gd;  /*  Total green channel concentration */
-    double gw;  /*  Myth-green concentration */
-    double bd;  /*  Total blue channel concentration */
-    double bw;  /*  Myth-blue concentration */
-    double w;   /*  Water volume */
-    double h;   /*  Height of paper surface */
-};
-
-
-
-void wetPixToDouble(WetPixDbl * dst, WetPix *src);
-void wetPixFromDouble(WetPix * dst, WetPixDbl *src);
-
-
-class KisWetColorSpace : public KisAbstractColorSpace {
-public:
-    KisWetColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p);
-    virtual ~KisWetColorSpace();
-
-
-    virtual bool willDegrade(ColorSpaceIndependence independence)
-        {
-            if (independence == TO_RGBA8 || independence == TO_LAB16)
-                return true;
-            else
-                return false;
-        };
-
-
-
-
-public:
-
-    // Semi-clever: we have only fifteen wet paint colors that are mapped to the
-    // qcolors that are put in the painter by the special wet paint palette. Other
-    // TQColors are mapped to plain water...
-    virtual void fromTQColor(const TQColor& c, TQ_UINT8 *dst, KisProfile * profile = 0);
-    virtual void fromTQColor(const TQColor& c, TQ_UINT8 opacity, TQ_UINT8 *dst, KisProfile * profile = 0);
-
-    virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, KisProfile * profile = 0);
-    virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, TQ_UINT8 *opacity, KisProfile * profile = 0);
-
-    virtual TQ_UINT8 getAlpha(const TQ_UINT8 * pixel) const;
-    virtual void setAlpha( TQ_UINT8 * pixels, TQ_UINT8 alpha, TQ_INT32 nPixels) const;
-    virtual void multiplyAlpha( TQ_UINT8 * pixels, TQ_UINT8 alpha, TQ_INT32 nPixels);
-
-    virtual void applyAlphaU8Mask( TQ_UINT8 * pixels, TQ_UINT8 * alpha, TQ_INT32 nPixels);
-    virtual void applyInverseAlphaU8Mask( TQ_UINT8 * pixels, TQ_UINT8 * alpha, TQ_INT32 nPixels);
-
-    virtual TQ_UINT8 scaleToU8(const TQ_UINT8 * srcPixel, TQ_INT32 channelPos);
-    virtual TQ_UINT16 scaleToU16(const TQ_UINT8 * srcPixel, TQ_INT32 channelPos);
-
-    virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights,  TQ_UINT32 nColors, TQ_UINT8 *dst) const;
-
-    virtual TQValueVector<KisChannelInfo *> channels() const;
-    virtual  TQ_UINT32 nChannels() const;
-    virtual  TQ_UINT32 nColorChannels() const;
-    virtual  TQ_UINT32 nSubstanceChannels() const;
-    virtual  TQ_UINT32 pixelSize() const;
-
-    virtual TQString channelValueText(const TQ_UINT8 *pixel,  TQ_UINT32 channelIndex) const;
-    virtual TQString normalisedChannelValueText(const TQ_UINT8 *pixel,  TQ_UINT32 channelIndex) const;
-
-    virtual TQImage convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width, TQ_INT32 height,
-                       KisProfile *  dstProfile,
-                       TQ_INT32 renderingIntent = INTENT_PERCEPTUAL,
-                       float exposure = 0.0f);
-
-    virtual TQValueList<KisFilter*> createBackgroundFilters();
-    
-    virtual KisCompositeOpList userVisiblecompositeOps() const;
-
-    void setPaintWetness(bool b) { m_paintwetness = b; } // XXX this needs better design!
-    bool paintWetness() { return m_paintwetness; }
-    void resetPhase() { phase = phasebig++; phasebig &= 3; }
-
-    void combinePixels(WetPix* dst, WetPix const* src1, WetPix const* src2) const {
-        dst->rd = src1->rd + src2->rd;
-        dst->rw = src1->rw + src2->rw;
-        dst->gd = src1->gd + src2->gd;
-        dst->gw = src1->gw + src2->gw;
-        dst->bd = src1->bd + src2->bd;
-        dst->bw = src1->bw + src2->bw;
-        dst->w = src1->w + src2->w;
-    }
-protected:
-    virtual void bitBlt( TQ_UINT8 *dst,
-            TQ_INT32 dstRowSize,
-            const TQ_UINT8 *src,
-            TQ_INT32 srcRowStride,
-            const TQ_UINT8 *srcAlphaMask,
-            TQ_INT32 tqmaskRowStride,
-            TQ_UINT8 opacity,
-            TQ_INT32 rows,
-            TQ_INT32 cols,
-            const KisCompositeOp& op);
-private:
-
-    // This was static, but since we have only one instance of the color strategy,
-    // it can be just as well a private member variable.
-    void wet_init_render_tab();
-
-    /// Convert a single pixel from its wet representation to rgb: internal rgb: rgb[0] = R, etc
-    typedef enum { RGB, BGR } RGBMode;
-    void wet_composite(RGBMode m, TQ_UINT8 *rgb, WetPix * wet);
-
-    void wet_render_wetness( TQ_UINT8 * rgb, WetPack * pack);
-
-private:
-     TQ_UINT32 * wet_render_tab;
-
-    TQStringList m_paintNames;
-    TQMap<int, WetPix> m_conversionMap;
-
-    bool m_paintwetness;
-    int phase, phasebig;
-
-};
-
-class KisWetColorSpaceFactory : public KisColorSpaceFactory
-{
-public:
-    /**
-     * Krita definition for use in .kra files and internally: unchanging name +
-     * i18n'able description.
-     */
-    virtual KisID id() const { return KisID("WET", i18n("Watercolors")); };
-
-    /**
-     * lcms colorspace type definition.
-     */
-    virtual  TQ_UINT32 colorSpaceType() { return 0; };
-
-    virtual icColorSpaceSignature colorSpaceSignature() { return icMaxEnumData; };
-
-    virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) { return new KisWetColorSpace(tqparent, p); };
-
-    virtual TQString defaultProfile() { return ""; };
-};
-
-#endif // KIS_STRATEGY_COLORSPACE_WET_H_
diff --git a/krita/colorspaces/wet/kis_wet_palette_widget.cc b/krita/colorspaces/wet/kis_wet_palette_widget.cc
deleted file mode 100644
index 21876a395..000000000
--- a/krita/colorspaces/wet/kis_wet_palette_widget.cc
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * This file is part of Krita
- *
- * Copyright (c) 1999 Matthias Elter (me@kde.org)
- * Copyright (c) 2001-2002 Igor Jansen (rm@kde.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <tqpushbutton.h>
-#include <tqapplication.h>
-#include <tqclipboard.h>
-#include <tqcolor.h>
-#include <tqdrawutil.h>
-#include <tqhbox.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqpainter.h>
-#include <tqspinbox.h>
-#include <tqstyle.h>
-#include <tqtooltip.h>
-
-#include <klocale.h>
-#include <knuminput.h>
-#include <koFrameButton.h>
-
-#include <kis_meta_registry.h>
-#include <kis_factory.h>
-#include <kis_canvas_subject.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_color.h>
-#include <kis_color_cup.h>
-
-#include "kis_wet_colorspace.h"
-#include "kis_wet_palette_widget.h"
-
-KisWetPaletteWidget::KisWetPaletteWidget(TQWidget *tqparent, const char *name) : super(tqparent, name)
-{
-    m_subject = 0;
-
-    TQVBoxLayout * vl = new TQVBoxLayout(this, 0, -1, "main tqlayout");
-
-    TQGridLayout * l = new TQGridLayout(vl, 2, 8, 2, "color wells grid");
-
-    KisColorCup * b;
-    int WIDTH = 24;
-    int HEIGHT = 24;
-
-    b = new KisColorCup(this);
-    b->setColor( TQColor(240, 32, 160) );
-    l->addWidget(b, 0, 0);
-    TQToolTip::add(b, i18n("Quinacridone Rose"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor(TQColor(159, 88, 43));
-    l->addWidget(b, 0, 1);
-    TQToolTip::add(b,i18n("Indian Red"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor( TQColor(254, 220, 64) );
-    l->addWidget(b, 0, 2);
-    TQToolTip::add(b,i18n("Cadmium Yellow"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor(TQColor(36, 180, 32));
-    l->addWidget(b, 0, 3);
-    TQToolTip::add(b,i18n("Hookers Green"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor(TQColor(16, 185, 215));
-    l->addWidget(b, 0, 4);
-    TQToolTip::add(b,i18n("Cerulean Blue"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor(TQColor(96, 32, 8));
-    l->addWidget(b, 0, 5);
-    TQToolTip::add(b,i18n("Burnt Umber"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor(TQColor(254, 96, 8));
-    l->addWidget(b, 0, 6);
-    TQToolTip::add(b,i18n("Cadmium Red"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor(TQColor(255, 136, 8));
-    l->addWidget(b, 0, 7);
-    TQToolTip::add(b,i18n("Brilliant Orange"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor(TQColor(240, 199, 8));
-    l->addWidget(b, 1, 0);
-    TQToolTip::add(b,i18n("Hansa Yellow"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor(TQColor(96, 170, 130));
-    l->addWidget(b, 1, 1);
-    TQToolTip::add(b,i18n("Phthalo Green"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor(TQColor(48, 32, 170));
-    l->addWidget(b, 1, 2);
-    TQToolTip::add(b,i18n("French Ultramarine"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor(TQColor(118, 16, 135));
-    l->addWidget(b, 1, 3);
-    TQToolTip::add(b,i18n("Interference Lilac"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor(TQColor(254, 254, 254));
-    l->addWidget(b, 1, 4);
-    TQToolTip::add(b,i18n("Titanium White"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor(TQColor(64, 64, 74));
-    l->addWidget(b, 1, 5);
-    TQToolTip::add(b,i18n("Ivory Black"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    b = new KisColorCup(this);
-    b->setColor(TQColor(255, 255, 255));
-    l->addWidget(b, 1, 6);
-    TQToolTip::add(b,i18n("Pure Water"));
-    b->setFixedSize(WIDTH, HEIGHT);
-    connect(b, TQT_SIGNAL(changed(const TQColor &)), TQT_SLOT(slotFGColorSelected(const TQColor &)));
-
-    TQGridLayout * g2 = new TQGridLayout(vl, 2, 2);
-    
-    TQLabel * label = new TQLabel(i18n("Paint strength:"), this);
-    g2->addWidget(label, 0, 0);
-    m_strength = new KDoubleNumInput(0.0, 2.0, 1.0, 0.1, 1, this);
-    m_strength->setRange(0.0, 2.0, 0.1, true);
-    connect(m_strength, TQT_SIGNAL(valueChanged(double)), this,  TQT_SLOT(slotStrengthChanged(double)));
-    g2->addWidget(m_strength, 0, 1);
-
-    label = new TQLabel(i18n("Wetness:"), this);
-    g2->addWidget(label, 1, 0);
-    m_wetness = new KIntNumInput(16, this);
-    connect(m_wetness, TQT_SIGNAL(valueChanged(int)), this, TQT_SLOT(slotWetnessChanged(int)));
-    m_wetness->setRange(0, 16, true);
-    g2->addWidget(m_wetness, 1, 1);
-
-    g2->addItem(new TQSpacerItem(1, 1, TQSizePolicy::Expanding, TQSizePolicy::Minimum));
-
-}
-
-void KisWetPaletteWidget::update(KisCanvasSubject *subject)
-{
-    m_subject = subject;
-
-}
-
-void KisWetPaletteWidget::slotFGColorSelected(const TQColor& c)
-{
-    KisWetColorSpace* cs = dynamic_cast<KisWetColorSpace*>(KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID("WET", ""), ""));
-     Q_ASSERT(cs);
-
-    WetPack pack;
-    TQ_UINT8* data = reinterpret_cast< TQ_UINT8*>(&pack);
-    cs->fromTQColor(c, data);
-    pack.paint.w = 15 * m_wetness->value();
-    // upscale from double to uint16:
-    pack.paint.h = static_cast< TQ_UINT16>(m_strength->value() * (double)(0xffff/2));
-    KisColor color(data, cs);
-
-    if(m_subject)
-        m_subject->setFGColor(color);
-}
-
-void KisWetPaletteWidget::slotWetnessChanged(int n)
-{
-    if (!m_subject)
-        return;
-
-    KisWetColorSpace* cs = dynamic_cast<KisWetColorSpace*>(KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID("WET", ""), ""));
-     Q_ASSERT(cs);
-
-    KisColor color = m_subject->fgColor();
-    color.convertTo(cs);
-    WetPack pack = *(reinterpret_cast<WetPack*>(color.data()));
-    pack.paint.w = 15 * n;
-
-    color.setColor(reinterpret_cast<  TQ_UINT8*>(&pack), cs);
-    m_subject->setFGColor(color);
-}
-
-void KisWetPaletteWidget::slotStrengthChanged(double n)
-{
-    if (!m_subject)
-        return;
-
-    KisWetColorSpace* cs = dynamic_cast<KisWetColorSpace*>(
-            KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID("WET", ""), ""));
-     Q_ASSERT(cs);
-
-    KisColor color = m_subject->fgColor();
-    color.convertTo(cs);
-    WetPack pack = *(reinterpret_cast<WetPack*>(color.data()));
-    pack.paint.h = static_cast< TQ_UINT16>(n * (double)(0xffff/2)); // upscale from double to uint16
-
-    color.setColor(reinterpret_cast<  TQ_UINT8*>(&pack), cs);
-    m_subject->setFGColor(color);
-}
-
-
-#include "kis_wet_palette_widget.moc"
diff --git a/krita/colorspaces/wet/kis_wet_palette_widget.h b/krita/colorspaces/wet/kis_wet_palette_widget.h
deleted file mode 100644
index 10c177e6a..000000000
--- a/krita/colorspaces/wet/kis_wet_palette_widget.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* This file is part of the KDE project
- *
- * Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_WET_PALETTE_WIDGET_H
-#define KIS_WET_PALETTE_WIDGET_H
-
-#include "tqwidget.h"
-#include "tqpushbutton.h"
-
-#include "kis_canvas_subject.h"
-#include "kis_canvas_observer.h"
-
-#include <koffice_export.h>
-
-class KoFrameButton;
-class TQGridLayout;
-class TQColor;
-class TQLabel;
-class TQSpinBox;
-class TQColor;
-class KIntNumInput;
-class KDoubleNumInput;
-
-class KRITAUI_EXPORT KisWetPaletteWidget
-     : public TQWidget,
-       public KisCanvasObserver
-{
-     Q_OBJECT
-  TQ_OBJECT
-    typedef TQWidget super;
-
-public:
-    KisWetPaletteWidget(TQWidget *tqparent = 0L, const char *name = 0);
-    virtual ~KisWetPaletteWidget() {}
-
-protected slots:
-
-    void slotFGColorSelected(const TQColor& c);
-    void slotWetnessChanged(int);
-    void slotStrengthChanged(double);
-
-private:
-    void update(KisCanvasSubject*);
-
-private:
-    KisCanvasSubject *m_subject;
-    KDoubleNumInput* m_strength;
-    KIntNumInput* m_wetness;
-
-
-};
-
-#endif
diff --git a/krita/colorspaces/wet/kis_wetness_visualisation_filter.cc b/krita/colorspaces/wet/kis_wetness_visualisation_filter.cc
deleted file mode 100644
index 53bff69e3..000000000
--- a/krita/colorspaces/wet/kis_wetness_visualisation_filter.cc
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * kis_wetness_visualisation_filter.cc -- Part of Krita
- *
- * Copyright (c) 2005 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <kdebug.h>
-
-#include <klocale.h>
-#include "kis_meta_registry.h"
-#include <kis_view.h>
-#include <kis_image.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_factory.h>
-#include "kis_wet_colorspace.h"
-#include <kis_debug_areas.h>
-#include "kis_wetness_visualisation_filter.h"
-
-WetnessVisualisationFilter::WetnessVisualisationFilter(KisView* view)
-    : m_view(view), m_action(0) {
-    connect(&m_timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotTimeout()));
-}
-
-// XXX this needs to work on a per-layer basis!
-
-void WetnessVisualisationFilter::setAction(KToggleAction* action) {
-    m_action = action;
-    if (!m_action)
-        return;
-    KisWetColorSpace* cs = dynamic_cast<KisWetColorSpace*>(
-            KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID("WET", ""),"") );
-     Q_ASSERT(cs);
-    m_action->setChecked(cs->paintWetness());
-}
-
-void WetnessVisualisationFilter::slotActivated() {
-    kdDebug(DBG_AREA_CMS) << "activated" << endl;
-    if (!m_action) {
-        kdDebug(DBG_AREA_CMS) << "no action" << endl;
-        return;
-    }
-    KisWetColorSpace* cs = dynamic_cast<KisWetColorSpace*>(
-            KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID("WET", ""),"") );
-     Q_ASSERT(cs);
-    if (!m_action->isChecked()) {
-        m_timer.stop();
-        cs->setPaintWetness(false);
-    } else {
-        m_timer.start(500);
-        cs->setPaintWetness(true);
-    }
-}
-
-void WetnessVisualisationFilter::slotTimeout() {
-    KisWetColorSpace* cs = dynamic_cast<KisWetColorSpace*>(
-            KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID("WET", ""),"") );
-     Q_ASSERT(cs);
-    if (!cs) return;
-    cs->resetPhase();
-
-}
-
-#include "kis_wetness_visualisation_filter.moc"
diff --git a/krita/colorspaces/wet/kis_wetness_visualisation_filter.h b/krita/colorspaces/wet/kis_wetness_visualisation_filter.h
deleted file mode 100644
index 55c1e817c..000000000
--- a/krita/colorspaces/wet/kis_wetness_visualisation_filter.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* 
- * kis_wetness_visualisation_filter.h -- Part of Krita
- *
- * Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef _WETNESS_VISUALISATION_FILTER_H
-#define _WETNESS_VISUALISATION_FILTER_H
-
-#include <tqobject.h>
-#include <tqtimer.h>
-#include <kactionclasses.h>
-
-class KisView;
-
-class WetnessVisualisationFilter : public TQObject
-{
- Q_OBJECT
-  TQ_OBJECT
-public:
-    WetnessVisualisationFilter(KisView* view);
-    virtual ~WetnessVisualisationFilter() {}
-    void setAction(KToggleAction* action);
-    // XXX: Figure out a way to match a filter exactly to a colorspace
-    virtual ColorSpaceIndependence colorSpaceIndependence() { return FULLY_INDEPENDENT; };
-    virtual bool workWith(KisColorSpace* cs) { return (cs->id() == KisID("WET")); };
-private slots:
-    void slotActivated();
-    void slotTimeout();
-
-private:
-    KisView * m_view;
-    KToggleAction * m_action;
-    TQTimer m_timer;
-};
-
-#endif // _WETNESS_VISUALISATION_FILTER_H
diff --git a/krita/colorspaces/wet/kis_wetop.cc b/krita/colorspaces/wet/kis_wetop.cc
deleted file mode 100644
index 70e072809..000000000
--- a/krita/colorspaces/wet/kis_wetop.cc
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <tqrect.h>
-#include <tqcheckbox.h>
-
-#include <kdebug.h>
-
-#include <kis_brush.h>
-#include <kis_debug_areas.h>
-#include <kis_paint_device.h>
-#include <kis_painter.h>
-#include <kis_types.h>
-#include <kis_paintop.h>
-#include <kis_iterators_pixel.h>
-#include <kis_layer.h>
-#include <kis_meta_registry.h>
-#include <kis_colorspace_factory_registry.h>
-#include "kis_input_device.h"
-
-#include "kis_wetop.h"
-#include "kis_wet_colorspace.h"
-
-KisWetOpSettings::KisWetOpSettings(TQWidget *tqparent)
-    : super(tqparent)
-{
-    m_options = new WetPaintOptions(tqparent, "wet option widget");
-}
-
-bool KisWetOpSettings::varySize() const
-{
-    return m_options->checkSize->isChecked();
-}
-
-bool KisWetOpSettings::varyWetness() const
-{
-    return m_options->checkWetness->isChecked();
-}
-
-bool KisWetOpSettings::varyStrength() const
-{
-    return m_options->checkStrength->isChecked();
-}
-
-KisPaintOp * KisWetOpFactory::createOp(const KisPaintOpSettings *settings, KisPainter * painter)
-{
-    const KisWetOpSettings *wetopSettings = dynamic_cast<const KisWetOpSettings *>(settings);
-     Q_ASSERT(settings == 0 || wetopSettings != 0);
-
-    KisPaintOp * op = new KisWetOp(wetopSettings, painter);
-     Q_CHECK_PTR(op);
-    return op;
-}
-
-KisPaintOpSettings* KisWetOpFactory::settings(TQWidget * tqparent, const KisInputDevice& inputDevice)
-{
-    if (inputDevice == KisInputDevice::mouse()) {
-        // No options for mouse, only tablet devices
-        return 0;
-    } else {
-        return new KisWetOpSettings(tqparent);
-    }
-}
-
-KisWetOp::KisWetOp(const KisWetOpSettings * settings, KisPainter * painter)
-    : super(painter)
-{
-    if (settings) {
-        m_size = settings->varySize();
-        m_wetness = settings->varyWetness();
-        m_strength = settings->varyStrength();
-    } else {
-        m_size = false;
-        m_wetness = false;
-        m_strength = false;
-    }
-}
-
-KisWetOp::~KisWetOp()
-{
-}
-
-void KisWetOp::paintAt(const KisPoint &pos, const KisPaintInformation& info)
-{
-    if (!m_painter) return;
-
-    if (!m_painter->device()) return;
-    KisPaintDeviceSP device = m_painter->device();
-    if (!m_painter->device()) return;
-
-    KisBrush *brush = m_painter->brush();
-     Q_ASSERT(brush);
-
-    if (! brush->canPaintFor(info) )
-        return;
-
-    KisPaintInformation inf(info);
-
-    if (!m_size)
-        inf.pressure = PRESSURE_DEFAULT;
-
-    KisPaintDeviceSP dab = 0;
-
-    if (brush->brushType() == IMAGE || brush->brushType() == PIPE_IMAGE) {
-        dab = brush->image(KisMetaRegistry::instance()->csRegistry()->getAlpha8(), inf);
-    }
-    else {
-        KisAlphaMaskSP tqmask = brush->tqmask(inf);
-        dab = computeDab(tqmask, KisMetaRegistry::instance()->csRegistry()->getAlpha8());
-    }
-
-    KisColorSpace * cs = device->colorSpace();
-
-    if (cs->id() != KisID("WET","")) {
-        kdDebug(DBG_AREA_CMS) << "You cannot paint wet paint on dry pixels.\n";
-        return;
-    }
-
-    KisColor paintColor = m_painter->paintColor();
-    paintColor.convertTo(cs);
-    // hopefully this does
-    // nothing, conversions are bad ( wet->rgb->wet gives horrible mismatches, due to
-    // the conversion to rgb actually rendering the paint above white
-
-    WetPack* paintPack = reinterpret_cast<WetPack*>(paintColor.data());
-    WetPix paint = paintPack->paint;
-
-    // Get the paint info (we store the strength in the otherwise unused (?) height field of
-    // the paint
-    // double wetness = paint.w; // XXX: Was unused
-    // strength is a double in the 0 - 2 range, but upscaled to TQ_UINT16:
-    //kdDebug() << "Original strength as in paint.h: " << paint.h << endl;
-
-    double strength = 2.0 * static_cast<double>(paint.h) / (double)(0xffff);
-
-    //kdDebug() << "Before strength: " << strength << endl;
-
-    if (m_strength)
-        strength = strength * (strength + info.pressure) * 0.5;
-    else
-        strength = strength * (strength + PRESSURE_DEFAULT) * 0.5;
-
-    double pressure = 0.75 + 0.25 * info.pressure;
-
-    //kdDebug() << "info.pressure " << info.pressure << ", local pressure: " << pressure << ", strength: " << strength << endl;
-
-    WetPack currentPack;
-    WetPix currentPix;
-    double eff_height;
-    double press, contact;
-
-    int tqmaskW = brush->tqmaskWidth(inf);
-    int tqmaskH = brush->tqmaskHeight(inf);
-    KoPoint dest = (pos - (brush->hotSpot(inf)));
-    int xStart = (int)dest.x();
-    int yStart = (int)dest.y();
-
-    for (int y = 0; y < tqmaskH; y++) {
-        KisHLineIteratorPixel dabIt = dab->createHLineIterator(0, y, tqmaskW, false);
-        KisHLineIteratorPixel it = device->createHLineIterator(xStart, yStart+y, tqmaskW, true);
-
-        while (!dabIt.isDone()) {
-            // This only does something with .paint, and not with adsorb.
-            currentPack = *(reinterpret_cast<WetPack*>(it.rawData()));
-            WetPix currentData = currentPack.adsorb;
-            currentPix = currentPack.paint;
-
-            // Hardcoded threshold for the dab 'strength': above it, it will get painted
-            if (*dabIt.rawData() > 125)
-                press = pressure * 0.25;
-            else
-                press = -1;
-            //kdDebug() << "After mysterious line, press becomes: " << press << ", this is the same as in the orignal. Good" << endl;
-            // XXX - 192 is probably only useful for paper with a texture...
-            eff_height = (currentData.h + currentData.w - 192.0) * (1.0 / 255.0);
-            contact = (press + eff_height) * 0.2;
-            double old_contact = contact;
-            if (contact > 0.5)
-                contact = 1.0 - 0.5 * exp(-2.0 * contact - 1.0);
-
-            //kdDebug() << "Contact was " << old_contact << " and has become: " << contact << endl;
-            if (contact > 0.0001) {
-                int v;
-                double rnd = rand() * (1.0 / RAND_MAX);
-
-                v = currentPix.rd;
-                currentPix.rd = floor(v + (paint.rd * strength - v) * contact + rnd);
-                //kdDebug() << "Rd was " << v << " and has become " << currentPix.rd << endl;
-                v = currentPix.rw;
-                currentPix.rw = floor(v + (paint.rw * strength - v) * contact + rnd);
-                v = currentPix.gd;
-                currentPix.gd = floor(v + (paint.gd * strength - v) * contact + rnd);
-                v = currentPix.gw;
-                currentPix.gw = floor(v + (paint.gw * strength - v) * contact + rnd);
-                v = currentPix.bd;
-                currentPix.bd = floor(v + (paint.bd * strength - v) * contact + rnd);
-                v = currentPix.bw;
-                currentPix.bw = floor(v + (paint.bw * strength - v) * contact + rnd);
-                v = currentPix.w;
-                if (m_wetness)
-                    currentPix.w = (CLAMP(floor(
-                          v + (paint.w * (0.5 + pressure) - v) * contact + rnd), 0, 512));
-                else
-                    currentPix.w = floor(v + (paint.w - v) * contact + rnd);
-
-                currentPack.paint = currentPix;
-                *(reinterpret_cast<WetPack*>(it.rawData())) = currentPack;
-            }
-            ++dabIt;
-            ++it;
-        }
-    }
-
-    m_painter->addDirtyRect(TQRect(xStart, yStart, tqmaskW, tqmaskH));
-}
diff --git a/krita/colorspaces/wet/kis_wetop.h b/krita/colorspaces/wet/kis_wetop.h
deleted file mode 100644
index 37cd594aa..000000000
--- a/krita/colorspaces/wet/kis_wetop.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_WETOP_H_
-#define KIS_WETOP_H_
-
-#include "kis_paintop.h"
-#include "kis_types.h"
-#include "kis_colorspace.h"
-#include "wdgpressure.h"
-
-class KisPoint;
-class KisPainter;
-class KisInputDevice;
-
-class KisWetOpFactory : public KisPaintOpFactory  {
-public:
-    KisWetOpFactory() {}
-    virtual ~KisWetOpFactory() {}
-
-    virtual KisPaintOp * createOp(const KisPaintOpSettings *settings, KisPainter * painter);
-    virtual KisID id() { return KisID("wetbrush", i18n("Watercolor Brush")); }
-    virtual bool userVisible(KisColorSpace* cs) { return cs->id() == KisID("WET", ""); }
-    virtual KisPaintOpSettings *settings(TQWidget * tqparent, const KisInputDevice& inputDevice);
-};
-
-class KisWetOpSettings : public KisPaintOpSettings {
-    typedef KisPaintOpSettings super;
-public:
-    KisWetOpSettings(TQWidget *tqparent);
-
-    bool varySize() const;
-    bool varyWetness() const;
-    bool varyStrength() const;
-
-    virtual TQWidget *widget() const { return m_options; }
-
-private:
-    WetPaintOptions *m_options;
-};
-
-class KisWetOp : public KisPaintOp {
-
-    typedef KisPaintOp super;
-    bool m_size;
-    bool m_wetness;
-    bool m_strength;
-
-public:
-
-    KisWetOp(const KisWetOpSettings *settings, KisPainter * painter);
-    virtual ~KisWetOp();
-
-    void paintAt(const KisPoint &pos, const KisPaintInformation& info);
-
-};
-
-#endif // KIS_WETOP_H_
diff --git a/krita/colorspaces/wet/kritawetplugin.desktop b/krita/colorspaces/wet/kritawetplugin.desktop
deleted file mode 100644
index b6b20e844..000000000
--- a/krita/colorspaces/wet/kritawetplugin.desktop
+++ /dev/null
@@ -1,86 +0,0 @@
-[Desktop Entry]
-Name=Watercolor Paint Plugin
-Name[bg]=Приставка акварелни бои
-Name[ca]=Connector de pintura aquarel·la
-Name[cy]=Ategyn Paent Dyfrlliw
-Name[da]=Plugin for vandfarvemaling
-Name[de]=Modul für Wasserfarben-Effekte
-Name[el]=Πρόσθετο υδατογραφίας
-Name[eo]=Akvokolorpentrada kromaĵo
-Name[es]=Complemento de pintura de acuarela
-Name[et]=Vesivärvijoonistuse plugin
-Name[eu]=Akuarelazko margoen plugina
-Name[fa]=وصلۀ رنگ‌آمیزی آبرنگ
-Name[fi]=Vesivärikuvaliitännäinen
-Name[fr]=Module de dessin à l'aquarelle
-Name[fy]=Wetter skilderplugin
-Name[gl]=Plugin de Pintura con Cores de Auga
-Name[he]=תוסף צביעה בצבעי מים
-Name[hu]=Vízfesték modul
-Name[is]=Vatnslita íforrit
-Name[it]=Plugin per la pittura ad acquerello
-Name[ja]=水彩プラグイン
-Name[km]=កម្មវិធី​ជំនួយ​សម្រាប់​គូរ​គំនូរ​ពណ៌​ទឹក
-Name[lv]=Zīmēšanas ar ūdenskrāsām spraudnis
-Name[ms]=Plugin Warna Cat Air 
-Name[nb]=Paint-programtillegg for vannfarger
-Name[nds]=Waterklöör-Effektmoduul
-Name[ne]=पानी रङ पेन्ट प्लगइन
-Name[nl]=Waterkleur schilderplugin
-Name[nn]=Programtillegg for vassfargar
-Name[pl]=Wtyczka malowania akwarelami
-Name[pt]='Plugin' de Pintura a Água
-Name[pt_BR]=Plug-in de Marca D'água
-Name[ru]=Акварель
-Name[sk]=Modul pre vodové farby
-Name[sl]=Vstavek za slikanje z vodnimi barvami
-Name[sr]=Прикључак за сликање воденим бојама
-Name[sr@Latn]=Priključak za slikanje vodenim bojama
-Name[sv]=Insticksprogram för vattenfärgsmålning
-Name[uk]=Втулок малювання акварельними фарбами
-Name[zh_CN]=水彩绘画插件
-Name[zh_TW]=水色繪畫外掛程式
-Comment=Color model and tools for painting with simulated watercolors
-Comment[bg]=Цветови модел и инструменти за рисуване със симулирани акварелни бои
-Comment[ca]=Model de color i eines per a pintar amb aquarel·les simulades
-Comment[cy]=Model lliw ac offer ar gyfer paentio efo dyfrliwiau wedi'u hefelychu
-Comment[da]=Farvemodel og værktøjer til at male med simulerede vandfarver
-Comment[de]=Farbmodell und Werkzeuge zum Malen mit simulierten Wasserfarben
-Comment[el]=Χρωματικό μοντέλο και εργαλεία για τη ζωγραφική με εξομοίωση χρωμάτων υδατογραφίας
-Comment[en_GB]=Colour model and tools for painting with simulated watercolours
-Comment[es]=Modelo de color y herramientas para pintar con acuarelas simuladas
-Comment[et]=Vesivärvijoonistuse simulatsiooni värvimudel ja tööriistad
-Comment[eu]=Akuarelen itxuraz margotzeko tresnak eta kolore-eredua
-Comment[fa]=مدل رنگ و ابزارها برای رنگ‌آمیزی با آبرنگهای شبیه‌سازی شده
-Comment[fi]=Värimalli ja työkalut simuloiduille vesiväreille
-Comment[fr]=Modèle de couleurs et outils pour dessiner avec des couleurs simulées d'aquarelle
-Comment[fy]=Kleurmodel en -ark foar it skilderjen mei simulearre wetterkleuren
-Comment[gl]=Modelo de cores e ferramentas para pintar con cores de auga simulados
-Comment[he]=מודל צבעים וכלים לצביעה תוך הדמיה של צבעי מים
-Comment[hu]=Színmodell és eszközök szimulált vízfestékes képekhez
-Comment[is]=Litategundir og tól til að teikna með vatnslitum
-Comment[it]=Modello di colore e strumenti per il disegno con acquerelli simulati
-Comment[ja]=水彩画をシミュレートして描画するためのカラーモデルとツール
-Comment[km]=គំរូពណ៌ និង​ឧបករណ៍​សម្រាប់​គូរ​គំនូរ​ដែល​មាន​ពណ៌​ស្រដៀង​ទឹក
-Comment[ms]=Model warna dan alat lukisan dengan cat air tiruan
-Comment[nb]=Fargemodell og verktøy for maling med simulerte vannfarger
-Comment[nds]=Klöörmodell un Warktüüch för't Malen mit Waterklöreneffekten
-Comment[ne]=बनावटी पानीरङहरू सँग पेन्टीङ्गका लागि रङ मोडेल
-Comment[nl]=Kleurmodel en -gereedschappen voor het schilderen met gesimuleerde waterkleuren
-Comment[nn]=Fargemodell og verktøy for måling med simulerte vassfargar
-Comment[pl]=Przestrzeń barw oraz narzędzia do symulacji malowania farbami akwarelowymi
-Comment[pt]=Modelo de cor e ferramentas para pintar com cores aquosas simuladas
-Comment[pt_BR]=Modelo de cor e ferramentas para pintura  de cores simuladas de água
-Comment[ru]=Цветовое пространство и инструменты рисования акварелью
-Comment[sk]=Model farieb a nástroje na kreslenie vodovými farbami
-Comment[sl]=Barvni model in orodja za slikanje s similiranimi vodnimi barvami
-Comment[sr]=Модел боја и алати за сликање симулираним воденим бојама
-Comment[sr@Latn]=Model boja i alati za slikanje simuliranim vodenim bojama
-Comment[sv]=Färgmodell och verktyg för att måla med simulerade vattenfärger
-Comment[uk]=Модель кольорів та засобів для малювання з симулюванням акварелі
-Comment[zh_CN]=模拟水彩绘画的色彩模型和工具
-Comment[zh_TW]=以模擬水色繪製的色彩模型與工具
-ServiceTypes=Krita/ColorSpace,Krita/ViewPlugin
-Type=Service
-X-KDE-Library=kritawetplugin
-X-Krita-Version=2
diff --git a/krita/colorspaces/wet/todo b/krita/colorspaces/wet/todo
deleted file mode 100644
index 2f6d358b7..000000000
--- a/krita/colorspaces/wet/todo
+++ /dev/null
@@ -1,24 +0,0 @@
-* Implement wet model
-* Implement wet paintop
-* Implement dry filter
-* Enable/disable all relevant gui bits on switching to/from a wet layer
-* Create something that can periodically call the dry filter
-* A palette with the special colour for wet painting: a docker tab for the colour docker.
-
-Perhaps: a special layer type or paint device, with an extensible option widget.
-
-When to create the height field? Ideally, the height field should be visualized in subtle shades
-of grey before painting.
-
-How to hack into the creation of paint devices? We need initializers, extra options, status
-widgets and thread or timer based continuous running filters.
-
--> Maybe add an initializePaintDevice(rect) method to the color strategy that is called with the image
-rect on creation. Then, for uninitialized rects (because of autolayers extension) call the method again.
-
-A wet layer is equivalent to the wetpack; two layers, i.e., stacked pixels, per pixel.
-
-The filter will contain the physics model: paint flow, drying and adsorbing onto the lower "layer"
-
-
-
diff --git a/krita/colorspaces/wet/wdgpressure.ui b/krita/colorspaces/wet/wdgpressure.ui
deleted file mode 100644
index 96727ff19..000000000
--- a/krita/colorspaces/wet/wdgpressure.ui
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>WetPaintOptions</class>
-<widget class="TQWidget">
-    <property name="name">
-        <cstring>WetPaintOptions</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>382</width>
-            <height>31</height>
-        </rect>
-    </property>
-    <hbox>
-        <property name="name">
-            <cstring>unnamed</cstring>
-        </property>
-        <property name="margin">
-            <number>0</number>
-        </property>
-        <widget class="TQLabel">
-            <property name="name">
-                <cstring>textLabel1</cstring>
-            </property>
-            <property name="text">
-                <string>Pressure effects:</string>
-            </property>
-        </widget>
-        <widget class="TQCheckBox">
-            <property name="name">
-                <cstring>checkSize</cstring>
-            </property>
-            <property name="text">
-                <string>Size</string>
-            </property>
-            <property name="checked">
-                <bool>true</bool>
-            </property>
-        </widget>
-        <widget class="TQCheckBox">
-            <property name="name">
-                <cstring>checkWetness</cstring>
-            </property>
-            <property name="text">
-                <string>Wetness</string>
-            </property>
-        </widget>
-        <widget class="TQCheckBox">
-            <property name="name">
-                <cstring>checkStrength</cstring>
-            </property>
-            <property name="text">
-                <string>Strength</string>
-            </property>
-        </widget>
-    </hbox>
-</widget>
-<tqlayoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/krita/colorspaces/wet/wet_plugin.cc b/krita/colorspaces/wet/wet_plugin.cc
deleted file mode 100644
index 764d104ed..000000000
--- a/krita/colorspaces/wet/wet_plugin.cc
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * wet_plugin.cc -- Part of Krita
- *
- * Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <stdlib.h>
-#include <vector>
-
-#include <tqobject.h>
-#include <tqapplication.h>
-#include <tqclipboard.h>
-#include <tqdockwindow.h>
-#include <tqpoint.h>
-#include <tqlabel.h>
-#include <tqwidget.h>
-
-#include <kactionclasses.h>
-#include <klocale.h>
-#include <kiconloader.h>
-#include <kinstance.h>
-#include <kmessagebox.h>
-#include <kstandarddirs.h>
-#include <ktempfile.h>
-#include <kdebug.h>
-#include <kgenericfactory.h>
-
-#include <kopalettemanager.h>
-#include <KoMainWindow.h>
-
-#include <kis_debug_areas.h>
-#include "kis_meta_registry.h"
-#include <kis_factory.h>
-#include <kis_image.h>
-#include <kis_debug_areas.h>
-#include <kis_types.h>
-#include <kis_view.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_tool_registry.h>
-#include <kis_paintop_registry.h>
-#include <kis_canvas_subject.h>
-#include <kis_basic_histogram_producers.h>
-
-#include "wet_plugin.h"
-#include "kis_wet_palette_widget.h"
-#include "kis_wet_colorspace.h"
-#include "kis_wetop.h"
-#include "kis_wetness_visualisation_filter.h"
-#include "kis_texture_filter.h"
-#include "wetphysicsfilter.h"
-
-typedef KGenericFactory<WetPlugin> WetPluginFactory;
-K_EXPORT_COMPONENT_FACTORY( kritawetplugin, WetPluginFactory( "kritacore" ) )
-
-
-WetPlugin::WetPlugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-    setInstance(WetPluginFactory::instance());
-
-    // This is not a gui plugin; only load it when the doc is created.
-    if ( tqparent->inherits("KisColorSpaceFactoryRegistry") ) {
-        KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>(tqparent);
-
-        KisColorSpace* colorSpaceWet = new KisWetColorSpace(f, 0);
-
-        KisColorSpaceFactory * csf = new KisWetColorSpaceFactory();
-         Q_CHECK_PTR(colorSpaceWet);
-
-        // colorspace
-        f->add(csf);
-
-        // histogram producer
-        KisHistogramProducerFactoryRegistry::instance()->add(
-                new KisBasicHistogramProducerFactory<KisBasicU16HistogramProducer>
-                (KisID("WETHISTO", i18n("Wet")), colorSpaceWet) );
-
-        // wet brush op
-        KisPaintOpRegistry::instance()->add(new KisWetOpFactory);
-
-        // Dry filter
-        KisFilterRegistry::instance()->add( new WetPhysicsFilter() );
-
-        // Texture Action:
-        f->addPaintDeviceAction(colorSpaceWet, new WetPaintDevAction);
-    }
-    else if (tqparent->inherits("KisView"))
-    {
-        setInstance(WetPluginFactory::instance());
-        setXMLFile(locate("data","kritaplugins/wetplugin.rc"), true);
-
-        m_view = dynamic_cast<KisView*>(tqparent);
-        // Wetness visualisation
-        WetnessVisualisationFilter * wf = new WetnessVisualisationFilter(m_view);
-        wf->setAction(new KToggleAction(i18n("Wetness Visualisation"), 0, 0, wf,
-                        TQT_SLOT(slotActivated()), actionCollection(), "wetnessvisualisation"));
-
-        // Create the wet palette
-        KisWetPaletteWidget * w = new KisWetPaletteWidget(m_view);
-         Q_CHECK_PTR(w);
-
-        w->setCaption(i18n("Watercolors"));
-
-        m_view->canvasSubject()->paletteManager()->addWidget(w, "watercolor docker", krita::COLORBOX, INT_MAX, PALETTE_DOCKER,  false);
-        m_view->canvasSubject()->attach(w);
-    }
-
-
-}
-
-WetPlugin::~WetPlugin()
-{
-}
-
-#include "wet_plugin.moc"
diff --git a/krita/colorspaces/wet/wet_plugin.h b/krita/colorspaces/wet/wet_plugin.h
deleted file mode 100644
index d2fdc0837..000000000
--- a/krita/colorspaces/wet/wet_plugin.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef WET_PLUGIN_H_
-#define WET_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-#include "kis_types.h"
-
-class KisView;
-class KisWetColorSpace;
-
-/**
- * A plugin wrapper around the WET colour space strategy.
- */
-class WetPlugin : public KParts::Plugin
-{
-     Q_OBJECT
-  TQ_OBJECT
-public:
-    WetPlugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~WetPlugin();
-
-private:
-
-    KisView* m_view;
-
-};
-
-#endif // WET_PLUGIN_H_
diff --git a/krita/colorspaces/wet/wetdreams/Makefile b/krita/colorspaces/wet/wetdreams/Makefile
deleted file mode 100644
index 3daf4d767..000000000
--- a/krita/colorspaces/wet/wetdreams/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-CFLAGS = -O3 `gtk-config --cflags` -Wall -ansi -pedantic
-LDFLAGS = -O3 `gtk-config --libs` -Wall -ansi -pedantic
-
-all:	wetmain
-
-wetmain:	wetmain.o wetpix.o wetpaint.o wettexture.o wetphysics.o
diff --git a/krita/colorspaces/wet/wetdreams/wetmain.c b/krita/colorspaces/wet/wetdreams/wetmain.c
deleted file mode 100644
index 151385f5f..000000000
--- a/krita/colorspaces/wet/wetdreams/wetmain.c
+++ /dev/null
@@ -1,517 +0,0 @@
-#include <gtk/gtk.h>
-#include <stdlib.h>
-#include <math.h>
-#include "wetpix.h"
-#include "wetpaint.h"
-#include "wettexture.h"
-#include "wetphysics.h"
-WetPack *pack;			/* The global wet pack */
-
-double lastx, lasty;
-double dist;
-double spacing = 2;
-
-WetPix paint = { 707, 0, 707, 0, 707, 0, 240, 0 };
-
-/* colors from Curtis et al, Siggraph 97 */
-
-WetPix paintbox[] = {
-	{496, 0, 16992, 0, 3808, 0, 0, 0},
-	{16992, 9744, 21712, 6400, 25024, 3296, 0, 0},
-	{6512, 6512, 6512, 4880, 11312, 0, 0, 0},
-	{16002, 0, 2848, 0, 16992, 0, 0, 0},
-	{22672, 0, 5328, 2272, 4288, 2640, 0, 0},
-	{8000, 0, 16992, 0, 28352, 0, 0, 0},
-	{5696, 5696, 12416, 2496, 28352, 0, 0, 0},
-	{0, 0, 5136, 0, 28352, 0, 0, 0},
-	{2320, 1760, 7344, 4656, 28352, 0, 0, 0},
-	{8000, 0, 3312, 0, 5504, 0, 0, 0},
-	{13680, 0, 16992, 0, 3312, 0, 0, 0},
-	{5264, 5136, 1056, 544, 6448, 6304, 0, 0},
-	{11440, 11440, 11440, 11440, 11440, 11440, 0, 0},
-	{11312, 0, 11312, 0, 11312, 0, 0, 0},
-	{0, 0, 0, 0, 0, 0, 0, 0}
-};
-
-int n_paints = 15;
-
-char *paintstr = "select paint";
-
-GtkWidget *paintname;
-
-char *paintnames[] = {
-	"Quinacridone Rose",
-	"Indian Red",
-	"Cadmium Yellow",
-	"Hookers Green",
-	"Cerulean Blue",
-	"Burnt Umber",
-	"Cadmium Red",
-	"Brilliant Orange",
-	"Hansa Yellow",
-	"Phthalo Green",
-	"French Ultramarine",
-	"Interference Lilac",
-	"Titanium White",
-	"Ivory Black",
-	"Pure Water"
-};
-
-GtkWidget *autodryb;
-int timo = 0;
-int adsorb_cnt;
-
-GtkObject *brushsize_adjust;
-
-GtkObject *wetness_adjust;
-
-GtkObject *strength_adjust;
-
-static void stop_drying(void)
-{
-	timo = 0;
-	gtk_label_set_text(GTK_LABEL(paintname), paintstr);
-}
-
-static double strength_func(double strength, double pressure)
-{
-	return strength * (strength + pressure) * 0.5;
-}
-
-static gint wet_button_press(GtkWidget * widget, GdkEventButton * event)
-{
-#define noVERBOSE
-#ifdef VERBOSE
-	g_print("button press %f %f %f\n", event->x, event->y,
-		event->pressure);
-
-#endif
-	wet_dab(pack->layers[1],
-		&paint,
-		event->x,
-		event->y,
-		((GtkAdjustment *) brushsize_adjust)->value *
-		event->pressure, 0.75 + 0.25 * event->pressure,
-		strength_func(((GtkAdjustment *) strength_adjust)->value,
-			      event->pressure));
-
-	lastx = event->x;
-	lasty = event->y;
-	dist = 0;
-
-	stop_drying();
-
-	gtk_widget_queue_draw(widget);
-	return TRUE;
-}
-
-static gint wet_motion(GtkWidget * widget, GdkEventMotion * event)
-{
-	double delta;
-#ifdef VERBOSE
-	g_print("motion %f %f %f %d\n", event->x, event->y,
-		event->pressure, event->state);
-
-#endif
-	stop_drying();
-
-	if (!(event->state & 256))
-		return TRUE;
-
-	delta = sqrt((event->x - lastx) * (event->x - lastx) +
-		     (event->y - lasty) * (event->y - lasty));
-
-	dist += delta;
-
-	if (dist >= spacing) {
-		/* todo: interpolate position and pressure of the dab */
-		wet_dab(pack->layers[1],
-			&paint,
-			event->x,
-			event->y,
-			((GtkAdjustment *) brushsize_adjust)->value *
-			event->pressure, 0.75 + 0.25 * event->pressure,
-			strength_func(((GtkAdjustment *) strength_adjust)->
-				      value, event->pressure));
-		gtk_widget_queue_draw(widget);
-		dist -= spacing;
-	}
-
-	lastx = event->x;
-	lasty = event->y;
-
-	return TRUE;
-}
-
-static void dry(GtkWidget * da)
-{
-	g_print("drying...");
-	gtk_label_set_text(GTK_LABEL(paintname), "drying...");
-	gtk_widget_draw(paintname, NULL);
-	gdk_flush();
-	wet_flow(pack->layers[1]);
-	adsorb_cnt++;
-	if (adsorb_cnt == 2) {
-		wet_adsorb(pack->layers[1], pack->layers[0]);
-		wet_dry(pack->layers[1]);
-		adsorb_cnt = 0;
-	}
-
-	gtk_widget_draw(da, NULL);
-#if 0
-	gtk_label_set_text(GTK_LABEL(paintname), paintstr);
-#endif
-	g_print("done\n");
-}
-
-static gint wet_dry_button_press(GtkWidget * widget, GtkWidget * da)
-{
-	dry(da);
-
-	timo = 0;
-
-	return TRUE;
-}
-
-static gint clear_button_press(GtkWidget * widget, GtkWidget * da)
-{
-	wet_layer_clear(pack->layers[0]);
-	wet_layer_clone_texture(pack->layers[0], pack->layers[1]);
-	wet_layer_clear(pack->layers[1]);
-	wet_layer_clone_texture(pack->layers[1], pack->layers[0]);
-
-	gtk_widget_draw(da, NULL);
-
-	stop_drying();
-
-	return TRUE;
-}
-
-static gint dry_timer(gpointer * dummy)
-{
-	GtkWidget *da = (GtkWidget *) dummy;
-
-	timo++;
-	if (timo >= 10) {
-		if (gtk_toggle_button_get_active
-		    (GTK_TOGGLE_BUTTON(autodryb))) {
-			dry(da);
-		}
-
-		timo -= 2;
-	}
-	return TRUE;
-}
-
-static gint
-wet_expose(GtkWidget * widget, GdkEventExpose * event, WetPack * pack)
-{
-	byte *rgb;
-	int rowstride;
-
-#ifdef VERBOSE
-	g_print("expose: %d layers\n", pack->n_layers);
-#endif
-
-	rowstride = event->area.width * 3;
-	rowstride = (rowstride + 3) & -4;	/* align to 4-byte boundary */
-	rgb = g_new(byte, event->area.height * rowstride);
-
-	wet_pack_render(rgb, rowstride,
-			pack,
-			event->area.x, event->area.y,
-			event->area.width, event->area.height);
-
-	gdk_draw_rgb_image(widget->window,
-			   widget->style->black_gc,
-			   event->area.x, event->area.y,
-			   event->area.width, event->area.height,
-			   GDK_RGB_DITHER_MAX, rgb, rowstride);
-
-	g_free(rgb);
-	return FALSE;
-}
-
-
-static void init_input(void)
-{
-	GList *tmp_list;
-	GdkDeviceInfo *info;
-
-	tmp_list = gdk_input_list_devices();
-
-	info = NULL;
-	while (tmp_list) {
-		info = (GdkDeviceInfo *) tmp_list->data;
-#ifdef VERBOSE
-		g_print("device: %s\n", info->name);
-#endif
-		if (!g_strcasecmp(info->name, "wacom") ||
-		    !g_strcasecmp(info->name, "stylus") ||
-		    !g_strcasecmp(info->name, "eraser")) {
-			gdk_input_set_mode(info->deviceid,
-					   GDK_MODE_SCREEN);
-		}
-		tmp_list = tmp_list->next;
-	}
-	if (!info)
-		return;
-}
-
-static gint
-pselect_expose(GtkWidget * widget, GdkEventExpose * event, WetPack * pack)
-{
-	byte *rgb;
-	int x;
-	int paint_quad, paint_num;
-	int last_pn;
-	int bg;
-
-#ifdef VERBOSE
-	g_print("expose: %d layers\n", pack->n_layers);
-#endif
-
-	rgb = g_new(byte, pack->layers[0]->width * 3);
-
-	last_pn = 0;
-	for (x = 0; x < pack->layers[0]->width; x++) {
-		paint_quad =
-		    floor(4 * x * n_paints / pack->layers[0]->width + 0.5);
-		paint_num = paint_quad >> 2;
-		if (last_pn != paint_num) {
-			rgb[x * 3] = 255;
-			rgb[x * 3 + 1] = 255;
-			rgb[x * 3 + 2] = 255;
-			last_pn = paint_num;
-		} else {
-			if ((paint_quad & 3) > 0 && (paint_quad & 3) < 3)
-				bg = 0;
-			else
-				bg = 255;
-			rgb[x * 3] = bg;
-			rgb[x * 3 + 1] = bg;
-			rgb[x * 3 + 2] = bg;
-			wet_composite(&rgb[x * 3], 0, &paintbox[paint_num],
-				      0, 1, 1);
-		}
-	}
-
-	gdk_draw_rgb_image(widget->window,
-			   widget->style->black_gc,
-			   event->area.x, event->area.y,
-			   event->area.width, event->area.height,
-			   GDK_RGB_DITHER_MAX,
-			   rgb + (event->area.x) * 3, 0);
-
-	g_free(rgb);
-	return FALSE;
-}
-
-static gint
-pselect_button_press(GtkWidget * widget, GdkEventButton * event)
-{
-	int paint_num;
-	int wet;
-
-#ifdef VERBOSE
-	g_print("pselect button press %f %f %f\n", event->x, event->y,
-		event->pressure);
-
-#endif
-	paint_num = floor((event->x * n_paints) / pack->layers[0]->width);
-
-	/* preserve wetness */
-	wet = paint.w;
-	paint = paintbox[paint_num];
-	paint.w = wet;
-	paintstr = paintnames[paint_num];
-	/*
-	   gtk_adjustment_set_value (GTK_ADJUSTMENT (wetness_adjust), paint.w);
-	 */
-	gtk_label_set_text(GTK_LABEL(paintname), paintstr);
-
-	stop_drying();
-
-	return TRUE;
-}
-
-static void wetness_update(GtkAdjustment * adj, gpointer data)
-{
-	paint.w = floor(15 * adj->value + 0.5);
-}
-
-int main(int argc, char **argv)
-{
-	GtkWidget *w;
-	GtkWidget *v;
-	GtkWidget *eb;
-	GtkWidget *da;
-	GtkWidget *peb;
-	GtkWidget *pda;
-	GtkWidget *h;
-	GtkWidget *b;
-	GtkWidget *db;
-	GtkWidget *h2;
-	GtkWidget *l;
-	GtkWidget *brushsize;
-	GtkWidget *wetness;
-	GtkWidget *strength;
-	int xs = 512;
-	int ys = 512;
-
-	gtk_init(&argc, &argv);
-
-	if (argc >= 3) {
-		xs = atoi(argv[1]);
-		ys = atoi(argv[2]);
-		if (xs == 0)
-			xs = 512;
-		if (ys == 0)
-			ys = 512;
-	}
-
-
-	init_input();
-
-	gdk_rgb_init();
-
-	gtk_widget_set_default_colormap(gdk_rgb_get_cmap());
-	gtk_widget_set_default_visual(gdk_rgb_get_visual());
-
-	pack = wet_pack_new(xs, ys);
-
-	wet_pack_maketexture(pack, 1, 0.7, 0.5);
-
-	w = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-	gtk_signal_connect(GTK_OBJECT(w), "destroy",
-			   (GtkSignalFunc) gtk_main_quit, NULL);
-
-	v = gtk_vbox_new(FALSE, 2);
-	gtk_container_add(GTK_CONTAINER(w), v);
-	gtk_widget_show(v);
-
-	eb = gtk_event_box_new();
-	gtk_container_add(GTK_CONTAINER(v), eb);
-	gtk_widget_show(eb);
-
-	gtk_widget_set_extension_events(eb, GDK_EXTENSION_EVENTS_ALL);
-
-	gtk_widget_set_events(eb, GDK_EXPOSURE_MASK
-			      | GDK_LEAVE_NOTIFY_MASK
-			      | GDK_BUTTON_PRESS_MASK
-			      | GDK_KEY_PRESS_MASK
-			      | GDK_POINTER_MOTION_MASK
-			      | GDK_PROXIMITY_OUT_MASK);
-
-	gtk_signal_connect(GTK_OBJECT(eb), "button_press_event",
-			   (GtkSignalFunc) wet_button_press, NULL);
-	gtk_signal_connect(GTK_OBJECT(eb), "motion_notify_event",
-			   (GtkSignalFunc) wet_motion, NULL);
-
-	da = gtk_drawing_area_new();
-	gtk_drawing_area_size(GTK_DRAWING_AREA(da), xs, ys);
-	gtk_container_add(GTK_CONTAINER(eb), da);
-	gtk_widget_show(da);
-
-	gtk_signal_connect(GTK_OBJECT(da), "expose_event",
-			   (GtkSignalFunc) wet_expose, pack);
-
-	peb = gtk_event_box_new();
-	gtk_container_add(GTK_CONTAINER(v), peb);
-	gtk_widget_show(peb);
-
-	gtk_widget_set_extension_events(peb, GDK_EXTENSION_EVENTS_ALL);
-
-	gtk_widget_set_events(peb, GDK_EXPOSURE_MASK
-			      | GDK_LEAVE_NOTIFY_MASK
-			      | GDK_BUTTON_PRESS_MASK
-			      | GDK_KEY_PRESS_MASK
-			      | GDK_PROXIMITY_OUT_MASK);
-
-	gtk_signal_connect(GTK_OBJECT(peb), "button_press_event",
-			   (GtkSignalFunc) pselect_button_press, NULL);
-
-	pda = gtk_drawing_area_new();
-	gtk_drawing_area_size(GTK_DRAWING_AREA(pda), xs, 16);
-	gtk_container_add(GTK_CONTAINER(peb), pda);
-	gtk_widget_show(pda);
-
-	gtk_signal_connect(GTK_OBJECT(pda), "expose_event",
-			   (GtkSignalFunc) pselect_expose, pack);
-
-	paintname = gtk_label_new(paintstr);
-	gtk_container_add(GTK_CONTAINER(v), paintname);
-	gtk_widget_show(paintname);
-
-	h = gtk_hbox_new(TRUE, 5);
-	gtk_container_add(GTK_CONTAINER(v), h);
-	gtk_widget_show(h);
-
-	b = gtk_button_new_with_label("Dry");
-	gtk_container_add(GTK_CONTAINER(h), b);
-	gtk_widget_show(b);
-
-	gtk_signal_connect(GTK_OBJECT(b), "clicked",
-			   (GtkSignalFunc) wet_dry_button_press, da);
-
-	autodryb = gtk_toggle_button_new_with_label("Auto Dry");
-	gtk_container_add(GTK_CONTAINER(h), autodryb);
-	gtk_widget_show(autodryb);
-
-	db = gtk_button_new_with_label("Clear");
-	gtk_container_add(GTK_CONTAINER(h), db);
-	gtk_widget_show(db);
-
-	gtk_signal_connect(GTK_OBJECT(db), "clicked",
-			   (GtkSignalFunc) clear_button_press, da);
-
-	h2 = gtk_hbox_new(FALSE, 5);
-	gtk_container_add(GTK_CONTAINER(v), h2);
-	gtk_widget_show(h2);
-
-	l = gtk_label_new("Brush size: ");
-	gtk_container_add(GTK_CONTAINER(h2), l);
-	gtk_widget_show(l);
-
-	brushsize_adjust = gtk_adjustment_new(10, 0, 32, 0.1, 0.1, 0);
-	brushsize = gtk_hscale_new(GTK_ADJUSTMENT(brushsize_adjust));
-	gtk_container_add(GTK_CONTAINER(h2), brushsize);
-	gtk_widget_show(brushsize);
-
-	h2 = gtk_hbox_new(FALSE, 5);
-	gtk_container_add(GTK_CONTAINER(v), h2);
-	gtk_widget_show(h2);
-
-	l = gtk_label_new("Wetness: ");
-	gtk_container_add(GTK_CONTAINER(h2), l);
-	gtk_widget_show(l);
-
-	wetness_adjust = gtk_adjustment_new(16, 0, 16, 1.0, 1.0, 0);
-	wetness = gtk_hscale_new(GTK_ADJUSTMENT(wetness_adjust));
-	gtk_container_add(GTK_CONTAINER(h2), wetness);
-	gtk_widget_show(wetness);
-	gtk_signal_connect(GTK_OBJECT(wetness_adjust), "value_changed",
-			   (GtkSignalFunc) wetness_update, NULL);
-
-	h2 = gtk_hbox_new(FALSE, 5);
-	gtk_container_add(GTK_CONTAINER(v), h2);
-	gtk_widget_show(h2);
-
-	l = gtk_label_new("Strength: ");
-	gtk_container_add(GTK_CONTAINER(h2), l);
-	gtk_widget_show(l);
-
-	strength_adjust = gtk_adjustment_new(1, 0, 2, 0.1, 0.1, 0);
-	strength = gtk_hscale_new(GTK_ADJUSTMENT(strength_adjust));
-	gtk_scale_set_digits(GTK_SCALE(strength), 2);
-	gtk_container_add(GTK_CONTAINER(h2), strength);
-	gtk_widget_show(strength);
-
-	gtk_widget_show(w);
-
-	gtk_timeout_add(50, (GtkFunction) dry_timer, da);
-
-	gtk_main();
-
-	return 0;
-}
diff --git a/krita/colorspaces/wet/wetdreams/wetpaint.c b/krita/colorspaces/wet/wetdreams/wetpaint.c
deleted file mode 100644
index c1ac0d0c2..000000000
--- a/krita/colorspaces/wet/wetdreams/wetpaint.c
+++ /dev/null
@@ -1,101 +0,0 @@
-
-#include <stdlib.h>
-#include <math.h>
-#include "wetpix.h"
-#include "wetphysics.h"
-#include "wetpaint.h"
-
-/* This function is not entirely satisfactory - the compositing is basically
-   opaque, and it really should do wet compositing. */
-void
-wet_dab(WetLayer * layer,
-	WetPix * paint,
-	double x, double y, double r, double pressure, double strength)
-{
-	double r_fringe;
-	int x0, y0;
-	int x1, y1;
-	WetPix *wet_line;
-	int xp, yp;
-	double xx, yy, rr;
-	double eff_height;
-	double press, contact;
-	WetPixDbl wet_tmp, wet_tmp2;
-
-	r_fringe = r + 1;
-	x0 = floor(x - r_fringe);
-	y0 = floor(y - r_fringe);
-	x1 = ceil(x + r_fringe);
-	y1 = ceil(y + r_fringe);
-	if (x0 < 0)
-		x0 = 0;
-	if (y0 < 0)
-		y0 = 0;
-	if (x1 >= layer->width)
-		x1 = layer->width;
-	if (y1 >= layer->height)
-		y1 = layer->height;
-
-	wet_line = layer->buf + y0 * layer->rowstride;
-	for (yp = y0; yp < y1; yp++) {
-		yy = (yp + 0.5 - y);
-		yy *= yy;
-		for (xp = x0; xp < x1; xp++) {
-			xx = (xp + 0.5 - x);
-			xx *= xx;
-			rr = yy + xx;
-			if (rr < r * r)
-				press = pressure * 0.25;
-			else
-				press = -1;
-			eff_height =
-			    (wet_line[xp].h + wet_line[xp].w -
-			     192) * (1.0 / 255);
-			contact = (press + eff_height) * 0.2;
-			if (contact > 0.5)
-				contact =
-				    1 - 0.5 * exp(-2.0 * contact - 1);
-			if (contact > 0.0001) {
-				int v;
-				double rnd = rand() * (1.0 / RAND_MAX);
-
-				v = wet_line[xp].rd;
-				wet_line[xp].rd =
-				    floor(v +
-					  (paint->rd * strength -
-					   v) * contact + rnd);
-				v = wet_line[xp].rw;
-				wet_line[xp].rw =
-				    floor(v +
-					  (paint->rw * strength -
-					   v) * contact + rnd);
-				v = wet_line[xp].gd;
-				wet_line[xp].gd =
-				    floor(v +
-					  (paint->gd * strength -
-					   v) * contact + rnd);
-				v = wet_line[xp].gw;
-				wet_line[xp].gw =
-				    floor(v +
-					  (paint->gw * strength -
-					   v) * contact + rnd);
-				v = wet_line[xp].bd;
-				wet_line[xp].bd =
-				    floor(v +
-					  (paint->bd * strength -
-					   v) * contact + rnd);
-				v = wet_line[xp].bw;
-				wet_line[xp].bw =
-				    floor(v +
-					  (paint->bw * strength -
-					   v) * contact + rnd);
-				v = wet_line[xp].w;
-				wet_line[xp].w =
-				    floor(v + (paint->w - v) * contact +
-					  rnd);
-
-			}
-		}
-		wet_line += layer->rowstride;
-	}
-}
diff --git a/krita/colorspaces/wet/wetdreams/wetpaint.h b/krita/colorspaces/wet/wetdreams/wetpaint.h
deleted file mode 100644
index 5cec2659e..000000000
--- a/krita/colorspaces/wet/wetdreams/wetpaint.h
+++ /dev/null
@@ -1,4 +0,0 @@
-void wet_dab(WetLayer * layer,
-         WetPix * paint,
-         double x, double y,
-         double r, double pressure, double strength);
diff --git a/krita/colorspaces/wet/wetdreams/wetphysics.c b/krita/colorspaces/wet/wetdreams/wetphysics.c
deleted file mode 100644
index d8b321a8c..000000000
--- a/krita/colorspaces/wet/wetdreams/wetphysics.c
+++ /dev/null
@@ -1,334 +0,0 @@
-/* Cool physics functions for wet paint */
-
-#include <gtk/gtk.h>
-#include <math.h>
-#include "wetpix.h"
-#include "wetphysics.h"
-
-/* symmetric combine, i.e. wet mixing.
-
-   This does not set the dst h field.
-*/
-void wet_pix_combine(WetPixDbl * dst, WetPixDbl * src1, WetPixDbl * src2)
-{
-	dst->rd = src1->rd + src2->rd;
-	dst->rw = src1->rw + src2->rw;
-#if 0
-	g_print("rd %f rw %f\n", dst->rd, dst->rw);
-#endif
-	dst->gd = src1->gd + src2->gd;
-	dst->gw = src1->gw + src2->gw;
-	dst->bd = src1->bd + src2->bd;
-	dst->bw = src1->bw + src2->bw;
-	dst->w = src1->w + src2->w;
-#if 0
-	g_print("%f + %f -> %f\n", src1->w, src2->w, dst->w);
-#endif
-}
-
-void wet_pix_dilute(WetPixDbl * dst, WetPix * src, double dilution)
-{
-	double scale = dilution * (1.0 / 8192.0);
-
-
-	dst->rd = src->rd * scale;
-#if 0
-	g_print("dilution %f scale %f rd %f\n", dilution, scale, dst->rd);
-#endif
-	dst->rw = src->rw * scale;
-	dst->gd = src->gd * scale;
-	dst->gw = src->gw * scale;
-	dst->bd = src->bd * scale;
-	dst->bw = src->bw * scale;
-	dst->w = src->w * (1.0 / 8192.0);
-	dst->h = src->h * (1.0 / 8192.0);
-}
-
-void wet_pix_reduce(WetPixDbl * dst, WetPix * src, double dilution)
-{
-	wet_pix_dilute(dst, src, dilution);
-	dst->w *= dilution;
-}
-
-/* allows visualization of adsorption by rotating the hue 120 degrees */
-/* layer-merge combining. src1 is the top layer
-
-   This does not set the dst h or w fields.
-*/
-void
-wet_pix_merge(WetPixDbl * dst, WetPixDbl * src1, double dilution1,
-	      WetPixDbl * src2)
-{
-	double d1, w1, d2, w2;
-	double ed1, ed2;
-
-	if (src1->rd < 1e-4) {
-		dst->rd = src2->rd;
-		dst->rw = src2->rw;
-	} else if (src2->rd < 1e-4) {
-		dst->rd = src1->rd * dilution1;
-		dst->rw = src1->rw * dilution1;
-	} else {
-		d1 = src1->rd;
-		w1 = src1->rw;
-		d2 = src2->rd;
-		w2 = src2->rw;
-		dst->rd = d1 * dilution1 + d2;
-		ed1 = exp(-d1 * dilution1);
-		ed2 = exp(-d2);
-		dst->rw = dst->rd * ((1 - ed1) * w1 / d1 +
-				     ed1 * (1 - ed2) * w2 / d2) /
-		    (1 - ed1 * ed2);
-	}
-
-	if (src1->gd < 1e-4) {
-		dst->gd = src2->gd;
-		dst->gw = src2->gw;
-	} else if (src2->gd < 1e-4) {
-		dst->gd = src1->gd * dilution1;
-		dst->gw = src1->gw * dilution1;
-	} else {
-		d1 = src1->gd;
-		w1 = src1->gw;
-		d2 = src2->gd;
-		w2 = src2->gw;
-		dst->gd = d1 * dilution1 + d2;
-		ed1 = exp(-d1 * dilution1);
-		ed2 = exp(-d2);
-		dst->gw = dst->gd * ((1 - ed1) * w1 / d1 +
-				     ed1 * (1 - ed2) * w2 / d2) /
-		    (1 - ed1 * ed2);
-	}
-
-	if (src1->bd < 1e-4) {
-		dst->bd = src2->bd;
-		dst->bw = src2->bw;
-	} else if (src2->bd < 1e-4) {
-		dst->bd = src1->bd * dilution1;
-		dst->bw = src1->bw * dilution1;
-	} else {
-		d1 = src1->bd;
-		w1 = src1->bw;
-		d2 = src2->bd;
-		w2 = src2->bw;
-		dst->bd = d1 * dilution1 + d2;
-		ed1 = exp(-d1 * dilution1);
-		ed2 = exp(-d2);
-		dst->bw = dst->bd * ((1 - ed1) * w1 / d1 +
-				     ed1 * (1 - ed2) * w2 / d2) /
-		    (1 - ed1 * ed2);
-	}
-
-}
-
-void wet_flow(WetLayer * layer)
-{
-	/* XXX: Is this like a convolution operation? BSAR */
-	int x, y;
-	int width = layer->width;
-	int height = layer->height;
-	int rs = layer->rowstride;
-	double *flow_t, *flow_b, *flow_l, *flow_r;
-	double *fluid, *outflow;
-	WetPix *wet_line = layer->buf;
-	WetPix *wet_old;
-	int my_height;
-	int ix;
-	double ft, fb, fl, fr; /* top, bottom, left, right */
-	WetPixDbl wet_mix, wet_tmp;
-	
-	flow_t = g_new(double, width * height);
-	flow_b = g_new(double, width * height);
-	flow_l = g_new(double, width * height);
-	flow_r = g_new(double, width * height);
-	fluid = g_new(double, width * height);
-	outflow = g_new(double, width * height);
-	wet_old = g_new(WetPix, width * height);
-
-	/* assumes rowstride == width */
-	memcpy(wet_old, layer->buf, sizeof(WetPix) * width * height);
-
-	ix = width + 1;
-	for (y = 1; y < height - 1; y++) {
-		wet_line += rs;
-		for (x = 1; x < width - 1; x++) {
-			if (wet_line[x].w > 0) {
-				my_height = wet_line[x].h + wet_line[x].w;
-				ft = (wet_line[x - rs].h +
-				      wet_line[x - rs].w) - my_height;
-				fb = (wet_line[x + rs].h +
-				      wet_line[x + rs].w) - my_height;
-				fl = (wet_line[x - 1].h +
-				      wet_line[x - 1].w) - my_height;
-				fr = (wet_line[x + 1].h +
-				      wet_line[x + 1].w) - my_height;
-
-				fluid[ix] =
-				    0.4 * sqrt(wet_line[x].w * 1.0 /
-					       255.0);
-
-				/* smooth out the flow a bit */
-				flow_t[ix] =
-				    0.1 * (10 + ft * 0.75 - fb * 0.25);
-				if (flow_t[ix] > 1)
-					flow_t[ix] = 1;
-				if (flow_t[ix] < 0)
-					flow_t[ix] = 0;
-				flow_b[ix] =
-				    0.1 * (10 + fb * 0.75 - ft * 0.25);
-				if (flow_b[ix] > 1)
-					flow_b[ix] = 1;
-				if (flow_b[ix] < 0)
-					flow_b[ix] = 0;
-				flow_l[ix] =
-				    0.1 * (10 + fl * 0.75 - fr * 0.25);
-				if (flow_l[ix] > 1)
-					flow_l[ix] = 1;
-				if (flow_l[ix] < 0)
-					flow_l[ix] = 0;
-				flow_r[ix] =
-				    0.1 * (10 + fr * 0.75 - fl * 0.25);
-				if (flow_r[ix] > 1)
-					flow_r[ix] = 1;
-				if (flow_r[ix] < 0)
-					flow_r[ix] = 0;
-
-				outflow[ix] = 0;
-			}
-			ix++;
-		}
-		ix += 2;
-	}
-
-	ix = width + 1;
-	wet_line = layer->buf;
-	for (y = 1; y < height - 1; y++) {
-		wet_line += rs;
-		for (x = 1; x < width - 1; x++) {
-			if (wet_line[x].w > 0) {
-				/* reduce flow in dry areas */
-				flow_t[ix] *= fluid[ix] * fluid[ix - rs];
-				outflow[ix - rs] += flow_t[ix];
-				flow_b[ix] *= fluid[ix] * fluid[ix + rs];
-				outflow[ix + rs] += flow_b[ix];
-				flow_l[ix] *= fluid[ix] * fluid[ix - 1];
-				outflow[ix - 1] += flow_l[ix];
-				flow_r[ix] *= fluid[ix] * fluid[ix + 1];
-				outflow[ix + 1] += flow_r[ix];
-			}
-			ix++;
-		}
-		ix += 2;
-	}
-
-	wet_line = layer->buf;
-	ix = width + 1;
-	for (y = 1; y < height - 1; y++) {
-		wet_line += rs;
-		for (x = 1; x < width - 1; x++) {
-			if (wet_line[x].w > 0) {
-				wet_pix_reduce(&wet_mix, &wet_old[ix],
-					       1 - outflow[ix]);
-
-				wet_pix_reduce(&wet_tmp, &wet_old[ix - rs],
-					       flow_t[ix]);
-				wet_pix_combine(&wet_mix, &wet_mix,
-						&wet_tmp);
-				wet_pix_reduce(&wet_tmp, &wet_old[ix + rs],
-					       flow_b[ix]);
-				wet_pix_combine(&wet_mix, &wet_mix,
-						&wet_tmp);
-				wet_pix_reduce(&wet_tmp, &wet_old[ix - 1],
-					       flow_l[ix]);
-				wet_pix_combine(&wet_mix, &wet_mix,
-						&wet_tmp);
-				wet_pix_reduce(&wet_tmp, &wet_old[ix + 1],
-					       flow_r[ix]);
-				wet_pix_combine(&wet_mix, &wet_mix,
-						&wet_tmp);
-
-				wet_pix_from_double(&wet_line[x],
-						    &wet_mix);
-
-#if 0
-				if (ix % 3201 == 0)
-					g_print("%f %f %f %f %f %f\n",
-						outflow[ix],
-						flow_t[ix],
-						flow_b[ix],
-						flow_l[ix],
-						flow_r[ix], fluid[ix]);
-#endif
-			}
-			ix++;
-		}
-		ix += 2;
-	}
-
-	g_free(flow_t);
-	g_free(flow_b);
-	g_free(flow_l);
-	g_free(flow_r);
-	g_free(fluid);
-	g_free(outflow);
-	g_free(wet_old);
-}
-
-void wet_dry(WetLayer * layer)
-{
-	int x, y;
-	WetPix *wet_line = layer->buf;
-	int width = layer->width;
-	int height = layer->height;
-	int rs = layer->rowstride;
-	int w;
-
-	for (y = 0; y < height; y++) {
-		for (x = 0; x < width; x++) {
-			w = wet_line[x].w;
-			w -= 1;
-			if (w > 0)
-				wet_line[x].w = w;
-			else
-				wet_line[x].w = 0;
-
-		}
-		wet_line += rs;
-	}
-}
-
-/* Move stuff from the upperlayer to the lower layer. This is filter-level stuff*/
-void wet_adsorb(WetLayer * layer, WetLayer * adsorb)
-{
-	int x, y;
-	WetPix *wet_line = layer->buf;
-	WetPix *ads_line = adsorb->buf;
-	int width = layer->width;
-	int height = layer->height;
-	int rs = layer->rowstride;
-	double ads;
-	WetPixDbl wet_top;
-	WetPixDbl wet_bot;
-
-	for (y = 0; y < height; y++) {
-		for (x = 0; x < width; x++) {
-			/* do adsorption */
-			if (wet_line[x].w == 0)
-				continue;
-			ads = 0.5 / MAX(wet_line[x].w, 1);
-
-			wet_pix_to_double(&wet_top, &wet_line[x]);
-			wet_pix_to_double(&wet_bot, &ads_line[x]);
-			wet_pix_merge(&wet_bot, &wet_top, ads, &wet_bot);
-			wet_pix_from_double(&ads_line[x], &wet_bot);
-			wet_line[x].rd = wet_line[x].rd * (1 - ads);
-			wet_line[x].rw = wet_line[x].rw * (1 - ads);
-			wet_line[x].gd = wet_line[x].gd * (1 - ads);
-			wet_line[x].gw = wet_line[x].gw * (1 - ads);
-			wet_line[x].bd = wet_line[x].bd * (1 - ads);
-			wet_line[x].bw = wet_line[x].bw * (1 - ads);
-		}
-		wet_line += rs;
-		ads_line += rs;
-	}
-}
diff --git a/krita/colorspaces/wet/wetdreams/wetphysics.h b/krita/colorspaces/wet/wetdreams/wetphysics.h
deleted file mode 100644
index 25140956b..000000000
--- a/krita/colorspaces/wet/wetdreams/wetphysics.h
+++ /dev/null
@@ -1,9 +0,0 @@
-void wet_pix_combine(WetPixDbl * dst, WetPixDbl * src1, WetPixDbl * src2);
-
-void wet_pix_dilute(WetPixDbl * dst, WetPix * src, double dilution);
-
-void wet_flow(WetLayer * layer);
-
-void wet_dry(WetLayer * layer);
-
-void wet_adsorb(WetLayer * layer, WetLayer * adsorb);
diff --git a/krita/colorspaces/wet/wetdreams/wetpix.c b/krita/colorspaces/wet/wetdreams/wetpix.c
deleted file mode 100644
index 812a038de..000000000
--- a/krita/colorspaces/wet/wetdreams/wetpix.c
+++ /dev/null
@@ -1,332 +0,0 @@
-/* Routines for manipulating wet pixels.
-
-   Copyright 1999 Raph Levien <raph@gimp.org>
-
-   Released under GPL.
-
-   A wet pixel is a sequence of eight bytes, arranged as follows:
-
-   Red value when composited over black
-   Green value when composited over black
-   Blue value when composited over black
-   Volume of water
-   Red value when composited over white
-   Green value when composited over white
-   Blue value when composited over white
-   Height of paper surface
-
-*/
-
-#include <gtk/gtk.h>
-#include <string.h>
-#include <math.h>
-#include "wetpix.h"
-
-u32 *wet_render_tab = NULL;
-
-static void wet_init_render_tab(void)
-{
-	int i;
-	double d;
-	int a, b;
-
-	wet_render_tab = g_new(u32, 4096);
-	for (i = 0; i < 4096; i++) {
-		d = i * (1.0 / 512.0);
-		if (i == 0)
-			a = 0;
-		else
-			a = floor(0xff00 / i + 0.5);
-		b = floor(0x8000 * exp(-d) + 0.5);
-#if 0
-		g_print("%d: %x %x\n", i, a, b);
-#endif
-		wet_render_tab[i] = (a << 16) | b;
-	}
-}
-
-void
-wet_composite(byte * rgb, int rgb_rowstride,
-	      WetPix * wet, int wet_rowstride,
-	      int width, int height)
-{
-	int x, y;
-	byte *rgb_line = rgb;
-	WetPix *wet_line = wet;
-
-	if (wet_render_tab == NULL)
-		wet_init_render_tab();
-
-	for (y = 0; y < height; y++) {
-		byte *rgb_ptr = rgb_line;
-		WetPix *wet_ptr = wet_line;
-		for (x = 0; x < width; x++) {
-			int r, g, b;
-			int d, w;
-			int ab;
-			int wa;
-
-			r = rgb_ptr[0];
-			w = wet_ptr[0].rw >> 4;
-			d = wet_ptr[0].rd >> 4;
-			/*
-			   d = d >= 4096 ? 4095 : d;
-			 */
-			ab = wet_render_tab[d];
-			wa = (w * (ab >> 16) + 0x80) >> 8;
-			r = wa +
-			    (((r - wa) * (ab & 0xffff) + 0x4000) >> 15);
-			rgb_ptr[0] = r;
-
-#if 0
-			if (x == 128 && y == 128) {
-				g_print("w %d d %d r %d\n", w, d, r);
-			}
-#endif
-
-			g = rgb_ptr[1];
-			w = wet_ptr[0].gw >> 4;
-			d = wet_ptr[0].gd >> 4;
-			d = d >= 4096 ? 4095 : d;
-			ab = wet_render_tab[d];
-			wa = (w * (ab >> 16) + 0x80) >> 8;
-			g = wa +
-			    (((g - wa) * (ab & 0xffff) + 0x4000) >> 15);
-			rgb_ptr[1] = g;
-
-			b = rgb_ptr[2];
-			w = wet_ptr[0].bw >> 4;
-			d = wet_ptr[0].bd >> 4;
-			d = d >= 4096 ? 4095 : d;
-			ab = wet_render_tab[d];
-			wa = (w * (ab >> 16) + 0x80) >> 8;
-			b = wa +
-			    (((b - wa) * (ab & 0xffff) + 0x4000) >> 15);
-			rgb_ptr[2] = b;
-
-			rgb_ptr += 3;
-			wet_ptr++;
-		}
-		rgb_line += rgb_rowstride;
-		wet_line += wet_rowstride;
-	}
-}
-
-void
-wet_render_wetness(byte * rgb, int rgb_rowstride,
-		   WetLayer * layer, int x0, int y0, int width, int height)
-{
-	static int wet_phase = 0;
-	int x, y;
-	byte *rgb_line = rgb;
-	WetPix *wet_line = layer->buf + (y0 * layer->rowstride) + x0;
-	int highlight;
-
-	for (y = 0; y < height; y++) {
-		byte *rgb_ptr = rgb_line;
-		WetPix *wet_ptr = wet_line;
-		for (x = 0; x < width; x++) {
-			if (((x + y) & 3) == wet_phase) {
-				highlight = 255 - (wet_ptr[0].w >> 1);
-				if (highlight < 255) {
-					rgb_ptr[0] =
-					    255 -
-					    (((255 -
-					       rgb_ptr[0]) *
-					      highlight) >> 8);
-					rgb_ptr[1] =
-					    255 -
-					    (((255 -
-					       rgb_ptr[1]) *
-					      highlight) >> 8);
-					rgb_ptr[2] =
-					    255 -
-					    (((255 -
-					       rgb_ptr[2]) *
-					      highlight) >> 8);
-				}
-			}
-			rgb_ptr += 3;
-			wet_ptr++;
-		}
-		rgb_line += rgb_rowstride;
-		wet_line += layer->rowstride;
-	}
-	wet_phase += 1;
-	wet_phase &= 3;
-}
-
-void
-wet_composite_layer(byte * rgb, int rgb_rowstride,
-		    WetLayer * layer,
-		    int x0, int y0, int width, int height)
-{
-	/* todo: sanitycheck bounds */
-	wet_composite(rgb, rgb_rowstride,
-		      layer->buf + (y0 * layer->rowstride) + x0,
-		      layer->rowstride, width, height);
-}
-
-void
-wet_pack_render(byte * rgb, int rgb_rowstride,
-		WetPack * pack, int x0, int y0, int width, int height)
-{
-	int y;
-	byte *rgb_line = rgb;
-	int i;
-
-	/* clear rgb buffer to white */
-	for (y = 0; y < height; y++) {
-		memset(rgb_line, 255, width * 3);
-		rgb_line += rgb_rowstride;
-	}
-
-	/* black stripe */
-/*  rgb_line = rgb;
-  for (y = y0; y < 8 && y < y0 + height; y++)
-    {
-      memset (rgb_line, 0, width * 3);
-      rgb_line += rgb_rowstride;
-    }
-*/
-
-	for (i = 0; i < pack->n_layers; i++)
-		wet_composite_layer(rgb, rgb_rowstride,
-				    pack->layers[i],
-				    x0, y0, width, height);
-
-	wet_render_wetness(rgb, rgb_rowstride,
-			   pack->layers[pack->n_layers - 1],
-			   x0, y0, width, height);
-}
-
-WetLayer *wet_layer_new(int width, int height)
-{
-	WetLayer *layer;
-
-	layer = g_new(WetLayer, 1);
-
-	layer->buf = g_new(WetPix, width * height);
-	layer->width = width;
-	layer->height = height;
-	layer->rowstride = width;
-
-	return layer;
-}
-
-void wet_layer_clear(WetLayer * layer)
-{
-	int x, y;
-	WetPix *wet_line = layer->buf;
-	int width = layer->width;
-
-	for (y = 0; y < layer->height; y++) {
-		for (x = 0; x < width; x++) {
-			/* transparent, dry, smooth */
-			wet_line[x].rd = 0;
-			wet_line[x].rw = 0;
-			wet_line[x].gd = 0;
-			wet_line[x].gw = 0;
-			wet_line[x].bd = 0;
-			wet_line[x].bw = 0;
-			wet_line[x].w = 0;
-			wet_line[x].h = 128;
-		}
-		wet_line += layer->rowstride;
-	}
-}
-
-WetPack *wet_pack_new(int width, int height)
-{
-	WetPack *pack;
-
-	pack = g_new(WetPack, 1);
-
-	pack->n_layers = 2;
-	pack->layers = g_new(WetLayer *, pack->n_layers);
-	pack->layers[0] = wet_layer_new(width, height);
-	wet_layer_clear(pack->layers[0]);
-	pack->layers[1] = wet_layer_new(width, height);
-	wet_layer_clear(pack->layers[1]);
-
-	return pack;
-}
-
-void wet_pix_to_double(WetPixDbl * dst, WetPix * src)
-{
-	dst->rd = (1.0 / 8192.0) * src->rd;
-	dst->rw = (1.0 / 8192.0) * src->rw;
-	dst->gd = (1.0 / 8192.0) * src->gd;
-	dst->gw = (1.0 / 8192.0) * src->gw;
-	dst->bd = (1.0 / 8192.0) * src->bd;
-	dst->bw = (1.0 / 8192.0) * src->bw;
-	dst->w = (1.0 / 8192.0) * src->w;
-	dst->h = (1.0 / 8192.0) * src->h;
-}
-
-void wet_pix_from_double(WetPix * dst, WetPixDbl * src)
-{
-	int v;
-
-	v = floor(8192.0 * src->rd + 0.5);
-	if (v < 0)
-		v = 0;
-	if (v > 65535)
-		v = 65535;
-	dst->rd = v;
-
-	g_print("src->rd = %f, dst->rd = %d\n", src->rd, dst->rd);
-
-	v = floor(8192.0 * src->rw + 0.5);
-	if (v < 0)
-		v = 0;
-	if (v > 65535)
-		v = 65535;
-	dst->rw = v;
-
-	v = floor(8192.0 * src->gd + 0.5);
-	if (v < 0)
-		v = 0;
-	if (v > 65535)
-		v = 65535;
-	dst->gd = v;
-
-	v = floor(8192.0 * src->gw + 0.5);
-	if (v < 0)
-		v = 0;
-	if (v > 65535)
-		v = 65535;
-	dst->gw = v;
-
-	v = floor(8192.0 * src->bd + 0.5);
-	if (v < 0)
-		v = 0;
-	if (v > 65535)
-		v = 65535;
-	dst->bd = v;
-
-	v = floor(8192.0 * src->bw + 0.5);
-	if (v < 0)
-		v = 0;
-	if (v > 65535)
-		v = 65535;
-	dst->bw = v;
-
-	v = floor(8192.0 * src->w + 0.5);
-	if (v < 0)
-		v = 0;
-	if (v > 511)
-		v = 511;
-	dst->w = v;
-#if 0
-	g_print("src->w = %f, dst->w = %d\n", src->w, dst->w);
-#endif
-
-	v = floor(8192.0 * src->h + 0.5);
-	if (v < 0)
-		v = 0;
-	if (v > 511)
-		v = 511;
-	dst->h = v;
-
-}
diff --git a/krita/colorspaces/wet/wetdreams/wetpix.h b/krita/colorspaces/wet/wetdreams/wetpix.h
deleted file mode 100644
index 3dc7913f1..000000000
--- a/krita/colorspaces/wet/wetdreams/wetpix.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Routines for manipulating wet pixels.
-
-   Copyright 1999 Raph Levien <raph@gimp.org>
-
-   Released under GPL.
-
-   A wet pixel is an eight word sequence, representing partially
-   transparent wet paint on a paper surface.
-
-*/
-
-typedef unsigned char byte;
-typedef unsigned short u16;
-typedef unsigned int u32;
-
-typedef struct _WetPix WetPix;
-typedef struct _WetLayer WetLayer;
-typedef struct _WetPack WetPack;
-
-typedef struct _WetPixDbl WetPixDbl;
-
-/* White is made up of myth-red, myth-green, and myth-blue. Myth-red
-   looks red when viewed reflectively, but cyan when viewed
-   transmissively (thus, it vaguely resembles a dichroic
-   filter). Myth-red over black is red, and myth-red over white is
-   white.
-
-   Total red channel concentration is myth-red concentration plus
-   cyan concentration.
-
-*/
-
-struct _WetPix {
-    u16 rd;            /*  Total red channel concentration */
-    u16 rw;            /*  Myth-red concentration */
-    u16 gd;            /*  Total green channel concentration */
-    u16 gw;            /*  Myth-green concentration */
-    u16 bd;            /*  Total blue channel concentration */
-    u16 bw;            /*  Myth-blue concentration */
-    u16 w;            /*  Water volume */
-    u16 h;            /*  Height of paper surface */
-};
-
-struct _WetLayer {
-    WetPix *buf;
-    int width;
-    int height;
-    int rowstride;
-};
-
-struct _WetPack {
-    int n_layers;
-    WetLayer **layers;
-};
-
-struct _WetPixDbl {
-    double rd;        /*  Total red channel concentration */
-    double rw;        /*  Myth-red concentration */
-    double gd;        /*  Total green channel concentration */
-    double gw;        /*  Myth-green concentration */
-    double bd;        /*  Total blue channel concentration */
-    double bw;        /*  Myth-blue concentration */
-    double w;        /*  Water volume */
-    double h;        /*  Height of paper surface */
-};
-
-void wet_composite(byte * rgb, int rgb_rowstride,
-           WetPix * wet, int wet_rowstride,
-           int width, int height);
-
-void wet_composite_layer(byte * rgb, int rgb_rowstride,
-             WetLayer * layer,
-             int x0, int y0, int width, int height);
-
-void wet_pack_render(byte * rgb, int rgb_rowstride,
-             WetPack * pack,
-             int x0, int y0, int width, int height);
-
-WetLayer *wet_layer_new(int width, int height);
-
-void wet_layer_clear(WetLayer * layer);
-
-WetPack *wet_pack_new(int width, int height);
-
-void wet_pix_to_double(WetPixDbl * dst, WetPix * src);
-
-void wet_pix_from_double(WetPix * dst, WetPixDbl * src);
diff --git a/krita/colorspaces/wet/wetdreams/wettexture.c b/krita/colorspaces/wet/wetdreams/wettexture.c
deleted file mode 100644
index 620ad8b55..000000000
--- a/krita/colorspaces/wet/wetdreams/wettexture.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* synthesize a surface texture */
-
-#include <stdlib.h>
-#include <math.h>
-#include "wetpix.h"
-
-void
-wet_layer_maketexture(WetLayer * layer,
-		      double height, double blurh, double blurv)
-{
-	int x, y;
-	int width = layer->width;
-	int lheight = layer->height;
-	int rowstride = layer->rowstride;
-	WetPix *wet_line = layer->buf;
-	double hscale = 128 * height / RAND_MAX;
-	int lh;
-	int ibh, ibv;
-
-	ibh = floor(256 * blurh + 0.5);
-#ifdef VERBOSE
-	g_print("ibh = %d\n", ibh);
-#endif
-	ibv = floor(256 * blurv + 0.5);
-
-	for (y = 0; y < lheight; y++) {
-		for (x = 0; x < width; x++) {
-			wet_line[x].h = floor(128 + hscale * rand());
-		}
-		/*      g_print ("%d\n", wet_line[0].h); */
-		wet_line += rowstride;
-	}
-
-	wet_line = layer->buf;
-	for (y = 0; y < lheight; y++) {
-		lh = wet_line[0].h;
-		for (x = 1; x < width; x++) {
-			wet_line[x].h +=
-			    ((lh - wet_line[x].h) * ibh + 128) >> 8;
-			lh = wet_line[x].h;
-		}
-		wet_line += rowstride;
-	}
-
-#if 0
-	for (x = 0; x < width; x++) {
-		wet_line = layer->buf + x;
-		lh = wet_line[0].h;
-		for (y = 1; y < lheight; y++) {
-			wet_line += rowstride;
-			wet_line[0].h +=
-			    ((lh - wet_line[0].h) * ibv + 128) >> 8;
-			lh = wet_line[0].h;
-		}
-	}
-#endif
-}
-
-void wet_layer_clone_texture(WetLayer * dst, WetLayer * src)
-{
-	int x, y;
-	int width = src->width;
-	WetPix *dst_line = dst->buf;
-	WetPix *src_line = src->buf;
-
-	for (y = 0; y < src->height; y++) {
-		for (x = 0; x < width; x++) {
-			dst_line[x].h = src_line[x].h;
-		}
-		dst_line += dst->rowstride;
-		src_line += src->rowstride;
-	}
-}
-
-void
-wet_pack_maketexture(WetPack * pack,
-		     double height, double blurh, double blurv)
-{
-	int i;
-
-	wet_layer_maketexture(pack->layers[0], height, blurh, blurv);
-	for (i = 1; i < pack->n_layers; i++)
-		wet_layer_clone_texture(pack->layers[i], pack->layers[0]);
-}
diff --git a/krita/colorspaces/wet/wetdreams/wettexture.h b/krita/colorspaces/wet/wetdreams/wettexture.h
deleted file mode 100644
index c3cbc0d2a..000000000
--- a/krita/colorspaces/wet/wetdreams/wettexture.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* synthesize a surface texture */
-
-void wet_layer_maketexture(WetLayer * layer,
-               double height, double blurh, double blurv);
-
-void wet_layer_clone_texture(WetLayer * dst, WetLayer * src);
-
-void wet_pack_maketexture(WetPack * pack,
-              double height, double blurh, double blurv);
diff --git a/krita/colorspaces/wet/wetphysicsfilter.cc b/krita/colorspaces/wet/wetphysicsfilter.cc
deleted file mode 100644
index d63574fda..000000000
--- a/krita/colorspaces/wet/wetphysicsfilter.cc
+++ /dev/null
@@ -1,424 +0,0 @@
-/*
- * This file is part of the KDE project
- *
- * Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <stdlib.h>
-#include <vector>
-
-#include <klocale.h>
-#include <kdebug.h>
-
-#include <kis_iterators_pixel.h>
-#include <kis_filter_registry.h>
-#include <kis_debug_areas.h>
-#include <kis_types.h>
-#include <kis_paint_device.h>
-#include <kis_debug_areas.h>
-#include "wetphysicsfilter.h"
-
-/*
- * [11:14] <boud> CyrilleB: I think I know why watercolor drying creates that funny pattern (you can see it if you have a very wet canvas with lots of paint and leave it drying for a while): our dry filter must have an off-by-one error to the right and bottom, which is also why the buggy drying didn't remove all of previously applied paint but left a fringe.
- * [11:14] <pippin> does the drying behave kind of like an error diffusion?
- * [11:14] <pippin> (it sounds like error diffusion artifacts,.)
- * [11:15] <boud> pippin: not sure what error diffusion is...
- * [11:15] <pippin> used for digital halftoning
- * [11:15] <pippin> take a greyscale image,.. you want to end up with binary (could be less, but let's use 1bit result)
- * [11:15] <CyrilleB> boud: the funny pattern is also in wetdreams when you disable wetness visualisation
- * [11:15] <boud> CyrilleB: I don't mean the checkerboard pattern
- * [11:16] <pippin> then for each pixel you calculate the difference between the current value and the desired value (0 or 255)
- * [11:16] <CyrilleB> boud: which one then ?
- * [11:16] <pippin> the error is distributed to the neighbour pixels (to the right, down and down to the left in pixels which have not yet been processed
- * [11:16] <pippin> )
- * [11:16] <boud> CyrilleB: it's only aptqparent when you let something dry for some time, it looks like meandering snakes (like the old game "snake")
- * [11:16] <CyrilleB> pippin: somehow yes
- * [11:16] <boud> pippin: that is possible
- * [11:17] <pippin> boud: this leads to "bleeding" of data to the right and down,..
- * [11:17] <boud> pippin: but on the other hand, when the filter worked on the old tiles (empty ones)  it also left a fringe of color.
- * [11:17] <pippin> having the "error" spread in different directions on each iteration might fix something like this,.
- * [11:18] <boud> Which leads me to think it's an off-by one.
- * [11:25] <boud> No, it isn't off by one. Then pippin must be right.
- * [11:26] <pippin> if I am, this is a fun debug session, not even having the code or the visual results available,. just hanging around on irc :)
- * [11:27] <boud> Well, I don't have time to investigate right now, but it sounds very plausible.
- * [11:27] <CyrilleB> pippin: :)
- * [11:28] <boud> of course, the code _is_ available :-)
- * [11:28] <pippin> if there is some form of diffusion matrix that is directional around the current pixel,. having that tqmask rotate depending on the modulus of the current iteration # should cancel such an effect out
- */
-WetPhysicsFilter::WetPhysicsFilter()
-    : KisFilter(id(), "artistic", i18n("Dry the Paint"))
-{
-    m_adsorbCount = 0;
-}
-
-void WetPhysicsFilter::process(KisPaintDeviceSP src, KisPaintDeviceSP dst, KisFilterConfiguration* /*config*/, const TQRect& rect)
-{
-    kdDebug() << "Physics processing " << src->name() << m_adsorbCount << endl;
-    // XXX: It would be nice be able to interleave this, instead of
-    // having the same loop over  our pixels three times.
-    flow(src, dst, rect);
-    if (m_adsorbCount++ == 2) {
-//         XXX I think we could combine dry and adsorb, yes
-        adsorb(src, dst, rect);
-        dry(src, dst, rect);
-        m_adsorbCount = 0;
-    }
-    setProgressDone(); // Must be called even if you don't really support progression
-}
-
-
-void WetPhysicsFilter::flow(KisPaintDeviceSP src, KisPaintDeviceSP /*dst*/, const TQRect & r)
-{
-    /* XXX: Is this like a convolution operation? BSAR */
-    int width = r.width();
-    int height = r.height();
-
-    kdDebug() << "Flowing: " << r << endl;
-
-    /* width of a line in a layer in pixel units, not in bytes -- used to move to the next
-       line in the fluid tqmasks below */
-    int rs = width; // rowstride
-
-    double * flow_t  = new double[width * height];
-    Q_CHECK_PTR(flow_t);
-
-    double * flow_b  = new double[width * height];
-    Q_CHECK_PTR(flow_b);
-
-    double * flow_l  = new double[width * height];
-    Q_CHECK_PTR(flow_l);
-
-    double * flow_r  = new double[width * height];
-    Q_CHECK_PTR(flow_r);
-
-    double * fluid   = new double[width * height];
-    Q_CHECK_PTR(fluid);
-
-    double * outflow = new double[width * height];
-    Q_CHECK_PTR(outflow);
-
-    // Height of the paper surface. Do we also increase height because of paint deposits?
-    int my_height;
-
-    // Flow to the top, bottom, left, right of the currentpixel
-    double ft, fb, fl, fr;
-
-    // Temporary pixel constructs
-    WetPixDbl wet_mix, wet_tmp;
-
-    // XXX If the flow touches areas that have not been initialized with a height field yet,
-    // create a heigth field.
-
-    // We need three iterators, because we're working on a five-point convolution kernel (no corner pixels are being used)
-
-    // First iteration: compute fluid deposits around the paper.
-    TQ_INT32 dx, dy;
-    dx = r.x();
-    dy = r.y();
-
-    int ix = width + 1; // keeps track where we are in the one-dimensional arrays
-
-    for (TQ_INT32 y2 = 1; y2 < height - 1; ++y2) {
-        KisHLineIteratorPixel srcIt = src->createHLineIterator(dx, dy + y2, width, false);
-        KisHLineIteratorPixel upIt = src->createHLineIterator(dx + 1, dy + y2 - 1, width - 2, false);
-        KisHLineIteratorPixel downIt = src->createHLineIterator(dx + 1, dy + y2 + 1, width - 2, false);
-
-        // .paint is the first field in our wetpack, so this is ok (even though not nice)
-        WetPix left = *(reinterpret_cast<WetPix*>(srcIt.rawData()));
-        ++srcIt;
-        WetPix current = *(reinterpret_cast<WetPix*>(srcIt.rawData()));
-        ++srcIt;
-        WetPix right = *(reinterpret_cast<WetPix*>(srcIt.rawData()));
-        WetPix up, down;
-
-        while (!srcIt.isDone()) {
-            up = *(reinterpret_cast<WetPix*>(upIt.rawData()));
-            down = *(reinterpret_cast<WetPix*>(downIt.rawData()));
-
-            if (current.w > 0) {
-                my_height = current.h + current.w;
-                ft = (up.h + up.w) - my_height;
-                fb = (down.h + down.w) - my_height;
-                fl = (left.h + left.w) - my_height;
-                fr = (right.h + right.w) - my_height;
-
-                fluid[ix] = 0.4 * sqrt(current.w * 1.0 / 255.0);
-
-                /* smooth out the flow a bit */
-                flow_t[ix] = CLAMP(0.1 * (10 + ft * 0.75 - fb * 0.25), 0, 1);
-
-                flow_b[ix] = CLAMP(0.1 * (10 + fb * 0.75 - ft * 0.25), 0, 1);
-
-                flow_l[ix] = CLAMP(0.1 * (10 + fl * 0.75 - fr * 0.25), 0, 1);
-
-                flow_r[ix] = CLAMP(0.1 * (10 + fr * 0.75 - fl * 0.25), 0, 1);
-
-                outflow[ix] = 0;
-            }
-
-            ++srcIt;
-            ++upIt;
-            ++downIt;
-            ix++;
-            left = current;
-            current = right;
-            right = *(reinterpret_cast<WetPix*>(srcIt.rawData()));
-        }
-        ix+=2; // one for the last pixel on the line, and one for the first of the next line
-    }
-    // Second iteration: Reduce flow in dry areas
-    ix = width + 1;
-
-    for (TQ_INT32 y2 = 1; y2 < height - 1; ++y2) {
-        KisHLineIteratorPixel srcIt = src->createHLineIterator(dx + 1, dy + y2, width - 2, false);
-        while (!srcIt.isDone()) {
-            if ((reinterpret_cast<WetPix*>(srcIt.rawData()))->w > 0) {
-                /* reduce flow in dry areas */
-                flow_t[ix] *= fluid[ix] * fluid[ix - rs];
-                outflow[ix - rs] += flow_t[ix];
-                flow_b[ix] *= fluid[ix] * fluid[ix + rs];
-                outflow[ix + rs] += flow_b[ix];
-                flow_l[ix] *= fluid[ix] * fluid[ix - 1];
-                outflow[ix - 1] += flow_l[ix];
-                flow_r[ix] *= fluid[ix] * fluid[ix + 1];
-                outflow[ix + 1] += flow_r[ix];
-            }
-            ++srcIt;
-            ix++;
-        }
-        ix += 2;
-    }
-
-    // Third iteration: Combine the paint from the flow areas.
-    ix = width + 1;
-    for (TQ_INT32 y2 = 1; y2 < height - 1; ++y2) {
-        KisHLineIteratorPixel srcIt = src->createHLineIterator(dx, dy + y2, width, false);
-        KisHLineIteratorPixel upIt = src->createHLineIterator(dx + 1, dy + y2 - 1, width - 2, false);
-        KisHLineIteratorPixel downIt = src->createHLineIterator(dx + 1, dy + y2 + 1, width - 2, false);
-
-        KisHLineIteratorPixel dstIt = src->createHLineIterator(dx + 1, dy + y2, width - 2, true);
-
-        WetPix left = *(reinterpret_cast<const WetPix*>(srcIt.oldRawData()));
-        ++srcIt;
-        WetPix current = *(reinterpret_cast<const WetPix*>(srcIt.oldRawData()));
-        ++srcIt;
-        WetPix right = *(reinterpret_cast<const WetPix*>(srcIt.oldRawData()));
-        WetPix up, down;
-
-        while (!srcIt.isDone()) {
-            up = *(reinterpret_cast<const WetPix*>(upIt.oldRawData()));
-            down = *(reinterpret_cast<const WetPix*>(downIt.oldRawData()));
-
-            if ((reinterpret_cast<WetPix*>(srcIt.rawData()))->w > 0) {
-                reducePixel(&wet_mix, &current, 1 - outflow[ix]);
-                reducePixel(&wet_tmp, &up, flow_t[ix]);
-                combinePixels(&wet_mix, &wet_mix, &wet_tmp);
-                reducePixel(&wet_tmp, &down, flow_b[ix]);
-                combinePixels(&wet_mix, &wet_mix, &wet_tmp);
-                reducePixel(&wet_tmp, &left, flow_l[ix]);
-                combinePixels(&wet_mix, &wet_mix, &wet_tmp);
-                reducePixel(&wet_tmp, &right, flow_r[ix]);
-                combinePixels(&wet_mix, &wet_mix, &wet_tmp);
-                WetPix* target = reinterpret_cast<WetPix*>(dstIt.rawData());
-                wetPixFromDouble(target, &wet_mix);
-            }
-            ++srcIt;
-            ++dstIt;
-            ++upIt;
-            ++downIt;
-            ix++;
-
-            left = current;
-            current = right;
-            right = *(reinterpret_cast<const WetPix*>(srcIt.oldRawData()));
-        }
-        ix += 2;
-    }
-
-    delete[] flow_t;
-    delete[] flow_b;
-    delete[] flow_l;
-    delete[] flow_r;
-    delete[] fluid;
-    delete[] outflow;
-}
-
-void WetPhysicsFilter::dry(KisPaintDeviceSP src, KisPaintDeviceSP dst, const TQRect & r)
-{
-    kdDebug () << "Drying " << r << endl;
-    for (TQ_INT32 y = 0; y < r.height(); y++) {
-        KisHLineIteratorPixel srcIt = src->createHLineIterator(r.x(), r.y() + y, r.width(), false);
-        KisHLineIteratorPixel dstIt = dst->createHLineIterator(r.x(), r.y() + y, r.width(), true);
-
-        TQ_UINT16 w;
-        while (!srcIt.isDone()) {
-            // Two wet pixels in one KisWetColorSpace pixels.
-
-            WetPack pack = *(reinterpret_cast<WetPack*>(srcIt.rawData()));
-            WetPix* p = &(pack.paint);
-
-            w = p->w; // no -1 here because we work on unsigned ints!
-
-            if (w > 0)
-                p->w = w - 1;
-            else
-                p->w = 0;
-
-            *(reinterpret_cast<WetPack*>(dstIt.rawData())) = pack;
-
-            ++dstIt;
-            ++srcIt;
-        }
-    }
-}
-
-void WetPhysicsFilter::adsorb(KisPaintDeviceSP src, KisPaintDeviceSP /*dst*/, const TQRect & r)
-{
-    kdDebug() << "Adsorbing " << r << endl;
-    for (TQ_INT32 y = 0; y < r.height(); y++) {
-        KisHLineIteratorPixel srcIt = src->createHLineIterator(r.x(), r.y() + y, r.width(), true);
-
-        double ads;
-
-        WetPixDbl wet_top;
-        WetPixDbl wet_bot;
-
-        WetPack * pack;
-        TQ_UINT16 w;
-
-        while (!srcIt.isDone()) {
-            // Two wet pixels in one KisWetColorSpace pixels.
-            pack = reinterpret_cast<WetPack*>(srcIt.rawData());
-            WetPix* paint = &pack->paint;
-            WetPix* adsorb = &pack->adsorb;
-
-            /* do adsorption */
-            w = paint->w;
-
-            if (w == 0) {
-                ++srcIt;
-            }
-            else {
-
-                ads = 0.5 / TQMAX(w, 1);
-
-                wetPixToDouble(&wet_top, paint);
-                wetPixToDouble(&wet_bot, adsorb);
-
-                mergePixel(&wet_bot, &wet_top, ads, &wet_bot);
-                wetPixFromDouble(adsorb, &wet_bot);
-
-                paint->rd = (TQ_UINT16) (paint->rd*(1 - ads));
-                paint->rw = (TQ_UINT16) (paint->rw*(1 - ads));
-                paint->gd = (TQ_UINT16) (paint->gd*(1 - ads));
-                paint->gw = (TQ_UINT16) (paint->gw*(1 - ads));
-                paint->bd = (TQ_UINT16) (paint->bd*(1 - ads));
-                paint->bw = (TQ_UINT16) (paint->bw*(1 - ads));
-
-                ++srcIt;
-            }
-        }
-    }
-}
-
-void WetPhysicsFilter::combinePixels (WetPixDbl *dst, WetPixDbl *src1, WetPixDbl *src2)
-{
-    dst->rd = src1->rd + src2->rd;
-    dst->rw = src1->rw + src2->rw;
-    dst->gd = src1->gd + src2->gd;
-    dst->gw = src1->gw + src2->gw;
-    dst->bd = src1->bd + src2->bd;
-    dst->bw = src1->bw + src2->bw;
-    dst->w = src1->w + src2->w;
-}
-
-void WetPhysicsFilter::dilutePixel (WetPixDbl *dst, WetPix *src, double dilution)
-{
-    double scale = dilution * (1.0 / 8192.0);
-
-    dst->rd = src->rd * scale;
-    dst->rw = src->rw * scale;
-    dst->gd = src->gd * scale;
-    dst->gw = src->gw * scale;
-    dst->bd = src->bd * scale;
-    dst->bw = src->bw * scale;
-    dst->w = src->w * (1.0 / 8192.0);
-    dst->h = src->h * (1.0 / 8192.0);
-}
-
-
-void WetPhysicsFilter::reducePixel (WetPixDbl *dst, WetPix *src, double dilution)
-{
-    dilutePixel(dst, src, dilution);
-    dst->w *= dilution;
-}
-
-void WetPhysicsFilter::mergePixel (WetPixDbl *dst, WetPixDbl *src1, double dilution1,
-                                   WetPixDbl *src2)
-{
-    double d1, w1, d2, w2;
-    double ed1, ed2;
-
-    if (src1->rd < 1e-4) {
-        dst->rd = src2->rd;
-        dst->rw = src2->rw;
-    } else if (src2->rd < 1e-4) {
-        dst->rd = src1->rd * dilution1;
-        dst->rw = src1->rw * dilution1;
-    } else {
-        d1 = src1->rd;
-        w1 = src1->rw;
-        d2 = src2->rd;
-        w2 = src2->rw;
-        dst->rd = d1 * dilution1 + d2;
-        ed1 = exp(-d1 * dilution1);
-        ed2 = exp(-d2);
-        dst->rw = dst->rd * ((1 - ed1) * w1 / d1 + ed1 * (1 - ed2) * w2 / d2) /  (1 - ed1 * ed2);
-    }
-
-    if (src1->gd < 1e-4) {
-        dst->gd = src2->gd;
-        dst->gw = src2->gw;
-    } else if (src2->gd < 1e-4) {
-        dst->gd = src1->gd * dilution1;
-        dst->gw = src1->gw * dilution1;
-    } else {
-        d1 = src1->gd;
-        w1 = src1->gw;
-        d2 = src2->gd;
-        w2 = src2->gw;
-        dst->gd = d1 * dilution1 + d2;
-        ed1 = exp(-d1 * dilution1);
-        ed2 = exp(-d2);
-        dst->gw = dst->gd * ((1 - ed1) * w1 / d1 + ed1 * (1 - ed2) * w2 / d2) / (1 - ed1 * ed2);
-    }
-
-    if (src1->bd < 1e-4) {
-        dst->bd = src2->bd;
-        dst->bw = src2->bw;
-    } else if (src2->bd < 1e-4) {
-        dst->bd = src1->bd * dilution1;
-        dst->bw = src1->bw * dilution1;
-    } else {
-        d1 = src1->bd;
-        w1 = src1->bw;
-        d2 = src2->bd;
-        w2 = src2->bw;
-        dst->bd = d1 * dilution1 + d2;
-        ed1 = exp(-d1 * dilution1);
-        ed2 = exp(-d2);
-        dst->bw = dst->bd * ((1 - ed1) * w1 / d1 + ed1 * (1 - ed2) * w2 / d2) / (1 - ed1 * ed2);
-    }
-}
diff --git a/krita/colorspaces/wet/wetphysicsfilter.h b/krita/colorspaces/wet/wetphysicsfilter.h
deleted file mode 100644
index a461ab18c..000000000
--- a/krita/colorspaces/wet/wetphysicsfilter.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * This file is part of Krita
- *
- * Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef WET_PHYSICS_FILTER_H
-#define WET_PHYSICS_FILTER_H
-
-#include <klocale.h>
-
-#include <kis_filter.h>
-#include <kis_types.h>
-
-#include "kis_wet_colorspace.h"
-
-class KisID;
-class TQRect;
-
-
-/**
- * The wet physics filter must be run regularly from a timer
- * or preferably from a thread. Every time the filter is processed
- * the paint flows; every third time, the paint is adsorbed unto the
- * lower pixel and dried.
- *
- * Note: this might also be implemented as three separate filters.
- *       That might even be better.
- */
-class WetPhysicsFilter: public KisFilter
-{
-public:
-    WetPhysicsFilter();
-public:
-    virtual void process(KisPaintDeviceSP src, KisPaintDeviceSP dst, KisFilterConfiguration*, const TQRect& r);
-
-    static inline KisID id() { return KisID("wetphysics", i18n("Watercolor Physics Simulation Filter")); };
-
-    virtual bool supportsPainting() { return false; }
-    virtual bool supportsPreview() { return false; }
-    virtual ColorSpaceIndependence colorSpaceIndependence() { return FULLY_INDEPENDENT; };
-    virtual bool workWith(KisColorSpace* cs) { return (cs->id() == KisID("WET")); };
-    
-private:
-
-    void flow(KisPaintDeviceSP src, KisPaintDeviceSP dst, const TQRect & r);
-    void dry(KisPaintDeviceSP src, KisPaintDeviceSP dst, const TQRect & r);
-
-    // Move stuff from the upperlayer to the lower layer. This is filter-level stuff.
-    void adsorb(KisPaintDeviceSP src, KisPaintDeviceSP dst, const TQRect & r);
-
-    // NOTE: this does not set the height fields
-    void combinePixels (WetPixDbl *dst, WetPixDbl *src1, WetPixDbl *src2);
-    void dilutePixel (WetPixDbl *dst, WetPix *src, double dilution);
-    void reducePixel (WetPixDbl *dst, WetPix *src, double dilution);
-
-    /*
-     * Allows visualization of adsorption by rotating the hue 120 degrees
-     * layer-merge combining. src1 is the top layer
-     *
-     * This does not set the dst h or w fields.
-     */
-    void mergePixel (WetPixDbl *dst, WetPixDbl *src1, double dilution1, WetPixDbl *src2);
-
-
-private:
-
-    TQ_INT32 m_adsorbCount;
-
-
-};
-
-#endif
diff --git a/krita/colorspaces/wet/wetplugin.rc b/krita/colorspaces/wet/wetplugin.rc
deleted file mode 100644
index 39cb6f81c..000000000
--- a/krita/colorspaces/wet/wetplugin.rc
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui library="kritawetplugin" version="1">
-<MenuBar>
-<Menu name="View"><text>&amp;View</text>
-	<Action name="wetnessvisualisation"/>
-</Menu>
-</MenuBar>
-</kpartgui>
diff --git a/krita/colorspaces/wetsticky/Makefile.am b/krita/colorspaces/wetsticky/Makefile.am
deleted file mode 100644
index 70eeb06d0..000000000
--- a/krita/colorspaces/wetsticky/Makefile.am
+++ /dev/null
@@ -1,25 +0,0 @@
-kde_services_DATA = kritawsplugin.desktop
-INCLUDES  =  -I$(srcdir)/../../sdk \
-	 -I$(srcdir)/../../core \
-	-I$(srcdir)/../../core/color_strategy \
-	-I$(srcdir)/../../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../../color_strategy/ \
-	-I$(srcdir)/../../ui \
-	$(KOFFICE_INCLUDES) \
-	-I$(interfacedir) \
-	$(KOPAINTER_INCLUDES) \
-	$(all_includes)
-
-kde_module_LTLIBRARIES = kritawsplugin.la
-
-kritawsplugin_la_SOURCES = wet_sticky_plugin.cc kis_wet_sticky_colorspace.cc kis_ws_engine_filter.cc
-noinst_HEADERS = wet_sticky_plugin.h kis_wet_sticky_colorspace.h kis_ws_engine_filter.h
-
-kritawsplugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
-kritawsplugin_la_LIBADD =  ../../kritacolor/libkritacolor.la
-
-kritawsplugin_la_METASOURCES = AUTO
-
-SUBDIRS=brushop
-
-
diff --git a/krita/colorspaces/wetsticky/README b/krita/colorspaces/wetsticky/README
deleted file mode 100644
index 79a105d45..000000000
--- a/krita/colorspaces/wetsticky/README
+++ /dev/null
@@ -1,42 +0,0 @@
-Wet & Sticky
-
-The Krita Wet & Sticky module is derived from the seminal dissertation
-"Wet & Stick: A Novel Model for Computer-Based Painting" by Malcom Tunde
-Cockshott, and the implementation of that model by Tunde Cockshott,
-David England and Kevin Waite. The complete source code to the first
-implementation is included in the module_ws/ws and is released under
-the terms of the GPL. 
-
-The W&S model is implemented in the following components:
-
-* A color strategy
-* A paint op
-* A filter
-
-The color strategy implements the canvas; the paint op implements the
-application of paint and the filter implements the paint simulation
-engine.
-
-This system adds the following interesting capabilities to Krita:
-
-* Extending the tool options dialog with a widget describing the 
-  paint op.
-
-* Extending the paint op class with properties beyond opacity and
-  color to a more generic structure with can contain the many different
-  properties needed by more complex color models to calculate bitBlt's.
-
-  All the ordinary paint ops still work, but they act as if they are
-  applying dry, thin paint, conforming to Cockshott's analysis of the
-  Shoup model (which Krita implemented in the first instance) as a subset
-  of the W&S model.
-
-* Adding continuously running filters (either in separate threads or 
-  called by a timer) to a particular paint device.
-
-* Adding a new way to mix colour; the older colour selection widgets
-  still work, but only give completely dry, infinitely thin paint.
-
-* Creating a layer with a fill of 'substrate' cells -- i.e, filling not just
-  with colour, but also with certain calculated amounts of height,
-  gravity and absorbency.
diff --git a/krita/colorspaces/wetsticky/TODO b/krita/colorspaces/wetsticky/TODO
deleted file mode 100644
index 513df2ffa..000000000
--- a/krita/colorspaces/wetsticky/TODO
+++ /dev/null
@@ -1,7 +0,0 @@
-* Add paintopbox to toolbox
-* Make all paint tools use the paintop from the paintop box
-* Add paintop properties palette
-* Add continuously running filters
-* Add filler objects that can fill a given area computationally
-* Add extensible properties for paint devices (to control things like drying)
-* Add default fill hook dependent on colorspace
diff --git a/krita/colorspaces/wetsticky/brushop/Makefile.am b/krita/colorspaces/wetsticky/brushop/Makefile.am
deleted file mode 100644
index 48edd999e..000000000
--- a/krita/colorspaces/wetsticky/brushop/Makefile.am
+++ /dev/null
@@ -1,28 +0,0 @@
-kde_services_DATA = kritawsbrushpaintop.desktop
-
-kritaimagesdir = $(prefix)/share/apps/krita/images
-kritaimages_DATA = wetpaintbrush.png
-
-# all_includes must remain last!
-INCLUDES =  -I$(srcdir)/../../../sdk \
-	-I$(srcdir)/../../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../../color_strategy/ \
-	-I$(srcdir)/../../../core/ \
-	-I$(srcdir)/../../../ui \
-	$(KOFFICE_INCLUDES) $(KOPAINTER_INCLUDES) $(all_includes)
-
-
-kritawsbrushpaintop_la_SOURCES = \
-	wsbrushpaintop_plugin.cc \
-	kis_wsbrushop.cc
-
-noinst_HEADERS= \
-	wsbrushpaintop_plugin.h \
-	kis_wsbrushop.h
-
-kde_module_LTLIBRARIES = kritawsbrushpaintop.la
-
-kritawsbrushpaintop_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
-kritawsbrushpaintop_la_LIBADD =  ../../..//libkritacommon.la $(LIB_KOPAINTER) $(LIB_KOFFICECORE)
-
-kritawsbrushpaintop_la_METASOURCES = AUTO
diff --git a/krita/colorspaces/wetsticky/brushop/README b/krita/colorspaces/wetsticky/brushop/README
deleted file mode 100644
index 81156a89e..000000000
--- a/krita/colorspaces/wetsticky/brushop/README
+++ /dev/null
@@ -1,2 +0,0 @@
-Template for plugin paintops. Paint tools use the paintop to determine how
-to deposit their paint on the canvas, exactly.
diff --git a/krita/colorspaces/wetsticky/brushop/kis_wsbrushop.cc b/krita/colorspaces/wetsticky/brushop/kis_wsbrushop.cc
deleted file mode 100644
index 8b182e08d..000000000
--- a/krita/colorspaces/wetsticky/brushop/kis_wsbrushop.cc
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <tqrect.h>
-
-#include <kdebug.h>
-
-#include "kis_brush.h"
-#include "kis_global.h"
-#include "kis_paint_device.h"
-#include "kis_painter.h"
-#include "kis_types.h"
-#include "kis_paintop.h"
-
-#include "kis_wsbrushop.h"
-
-KisPaintOp * KisWSBrushOpFactory::createOp(const KisPaintOpSettings */*settings*/, KisPainter * painter)
-{
-    KisPaintOp * op = new KisWSBrushOp(painter);
-    Q_CHECK_PTR(op);
-    return op;
-}
-
-KisWSBrushOp::KisWSBrushOp(KisPainter * painter)
-    : super(painter)
-{
-}
-
-KisWSBrushOp::~KisWSBrushOp()
-{
-}
-
-void KisWSBrushOp::paintAt(const KisPoint &pos,
-             const double pressure,
-             const double /*xTilt*/,
-             const double /*yTilt*/)
-{
-    // Painting should be implemented according to the following algorithm:
-    // retrieve brush
-    // if brush == tqmask
-    //          retrieve tqmask
-    // else if brush == image
-    //          retrieve image
-    // subsample (tqmask | image) for position -- pos should be double!
-    // apply filters to tqmask (colour | gradient | pattern | etc.
-    // composite filtered tqmask into temporary layer
-    // composite temporary layer into target layer
-    // @see: doc/brush.txt
-
-    if (!m_painter -> device()) return;
-
-    KisBrush *brush = m_painter -> brush();
-    
-    Q_ASSERT(brush);
-    if (!brush) return;
-    
-    KisPaintDeviceSP device = m_painter -> device();
-
-    KisPoint hotSpot = brush -> hotSpot(pressure);
-    KisPoint pt = pos - hotSpot;
-
-    // Split the coordinates into integer plus fractional parts. The integer
-    // is where the dab will be positioned and the fractional part determines
-    // the sub-pixel positioning.
-    TQ_INT32 x;
-    double xFraction;
-    TQ_INT32 y;
-    double yFraction;
-
-    splitCoordinate(pt.x(), &x, &xFraction);
-    splitCoordinate(pt.y(), &y, &yFraction);
-
-    KisLayerSP dab = 0;
-
-    if (brush -> brushType() == IMAGE || brush -> brushType() == PIPE_IMAGE) {
-        dab = brush -> image(device -> colorSpace(), pressure, xFraction, yFraction);
-    }
-    else {
-        KisAlphaMaskSP tqmask = brush -> tqmask(pressure, xFraction, yFraction);
-        dab = computeDab(tqmask);
-    }
-    m_painter -> setPressure(pressure);
-
-    TQRect dabRect = TQRect(0, 0, brush -> tqmaskWidth(pressure), brush -> tqmaskHeight(pressure));
-    TQRect dstRect = TQRect(x, y, dabRect.width(), dabRect.height());
-
-    KisImage * image = device -> image();
-    
-    if (image != 0) {
-        dstRect &= image -> bounds();
-    }
-    
-    if (dstRect.isNull() || dstRect.isEmpty() || !dstRect.isValid()) return;
-
-    TQ_INT32 sx = dstRect.x() - x;
-    TQ_INT32 sy = dstRect.y() - y;
-    TQ_INT32 sw = dstRect.width();
-    TQ_INT32 sh = dstRect.height();
-
-    m_painter -> bltSelection(dstRect.x(), dstRect.y(), m_painter -> compositeOp(), dab.data(), m_painter -> opacity(), sx, sy, sw, sh);
-    m_painter -> addDirtyRect(dstRect);
-}
diff --git a/krita/colorspaces/wetsticky/brushop/kis_wsbrushop.h b/krita/colorspaces/wetsticky/brushop/kis_wsbrushop.h
deleted file mode 100644
index 65f5fb6c0..000000000
--- a/krita/colorspaces/wetsticky/brushop/kis_wsbrushop.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_WSBRUSHOP_H_
-#define KIS_WSBRUSHOP_H_
-
-#include "kis_paintop.h"
-#include "kis_types.h"
-
-class KisPoint;
-class KisPainter;
-
-
-class KisWSBrushOpFactory : public KisPaintOpFactory  {
-
-public:
-    KisWSBrushOpFactory() {}
-    virtual ~KisWSBrushOpFactory() {}
-
-    virtual KisPaintOp * createOp(const KisPaintOpSettings *settings, KisPainter * painter);
-    virtual KisID id() { return KisID("wsbrush", i18n("Wet & Sticky Paintbrush")); }
-    virtual TQString pixmap() { return "wetpaintbrush.png"; }
-};
-
-class KisWSBrushOp : public KisPaintOp {
-
-    typedef KisPaintOp super;
-
-public:
-
-    KisWSBrushOp(KisPainter * painter);
-    virtual ~KisWSBrushOp();
-
-    void paintAt(const KisPoint &pos,
-             const double pressure,
-             const double /*xTilt*/,
-             const double /*yTilt*/);
-
-};
-
-#endif // KIS_WSBRUSHOP_H_
diff --git a/krita/colorspaces/wetsticky/brushop/kritawsbrushpaintop.desktop b/krita/colorspaces/wetsticky/brushop/kritawsbrushpaintop.desktop
deleted file mode 100644
index d8afc3ed7..000000000
--- a/krita/colorspaces/wetsticky/brushop/kritawsbrushpaintop.desktop
+++ /dev/null
@@ -1,73 +0,0 @@
-[Desktop Entry]
-Name=Wet & Sticky Paintbrush Paintop
-Name[bg]=Мокра и лепкава четка
-Name[ca]=Pinzell humit i viscós de Paintop
-Name[cy]=Brws paent gwlyb gludiog
-Name[da]=Maleoperation med våd og klæbrig malerpensel
-Name[de]=Maloperation mit feuchtem & klebrigem Farbpinsel
-Name[el]=Βούρτσα υγρής και κολλώδους μπογιάς
-Name[eo]=KDED-testmodulo
-Name[es]=Pincel mojado y pegajoso para pintar
-Name[et]=Märja lõuendi joonistamistoiming
-Name[fa]=Paintop قلم‌موی چسبناک و مرطوب
-Name[fr]=Pinceau paintop mouillé et gluant
-Name[fy]=Kwasten foar wiete en kliemske ferfhannelings
-Name[gl]=Pintado Mollado e Pegoñento
-Name[hu]=Nedves és ragadós ecset
-Name[is]=Blautur & klístraður pensill
-Name[it]=Operazione con pennello bagnato e appiccicoso
-Name[km]=ជក់​ទឹក & ស្អិត Paintop
-Name[nb]=Fargemodell for våt og klissete pensel
-Name[nds]=Malen mit en natten backigen Pinsel
-Name[ne]=ओसिलो र टाँसिने पेन्टब्रस पेन्टप
-Name[nl]=Kwasten voor natte en kleverige verfverrichtingen
-Name[pl]=Mokre i lepkie włosie pędzla
-Name[pt]=Modelo de Cores Molhado e Pegajoso
-Name[pt_BR]=Modelo de Cores Molhado e Pegajoso
-Name[ru]=Кисть с параметрами влажности и прилипания
-Name[sk]=Mokrý a lepkavý štetec Paintop
-Name[sl]=Slikanje z mokrim in lepljivim čopičem
-Name[sr]=Модел боја мокре и лепљиве четкице
-Name[sr@Latn]=Model boja mokre i lepljive četkice
-Name[sv]=Målningsoperation med våt och klibbig målarpensel
-Name[uk]=Пензель з параметрами вогкості і клейкості
-Name[zh_CN]=湿性和粘性画布
-Name[zh_TW]=濕 & 黏的筆刷頭
-Comment=Wet & Sticky paintbrush
-Comment[bg]=Мокра и лепкава четка
-Comment[ca]=Pinzell humit i viscós
-Comment[cy]=Brws paent gwlyb gludiog
-Comment[da]=Våd og klæbrig malerpensel
-Comment[de]=Feuchter & klebriger Farbpinsel
-Comment[el]=Βούρτσα υγρής και κολλώδους μπογιάς
-Comment[eo]=Malseka & Glueca peniko
-Comment[es]=Pincel mojado y pegajoso
-Comment[et]=Märja lõuendi pintsel
-Comment[fa]=قلم‌موی چسبناک و مرطوب
-Comment[fr]=Pinceau mouillé et gluant
-Comment[fy]=Kwast foar wiete en kliemske ferfhannelings
-Comment[gl]=Un pincel mollado e pegaxoso
-Comment[hu]=Nedves és ragadós ecset
-Comment[is]=Blautur og klístraður pensill
-Comment[it]=Pennello bagnato e appiccicoso
-Comment[ja]=Wet & Sticky ペイントブラシ
-Comment[km]=ជក់​ទឹក & ស្អិត
-Comment[nb]=Våt og klissete pensel
-Comment[nds]=Natt un backig Pinsel
-Comment[ne]=ओसिलो र टाँसिने पेन्टब्रस
-Comment[nl]=Kwast voor nat en kleverige verfverichtingen
-Comment[pl]=Mokry i lepki pędzel
-Comment[pt]=Um pincel molhado e pegajoso
-Comment[pt_BR]=Modelo de cores de tela Molhada & Pegajosa
-Comment[ru]=Кисть с параметрами влажности и прилипания
-Comment[sk]=Mokrý a lepkavý štetec
-Comment[sl]=Moker in lepljiv čopič
-Comment[sr]=Мокра и лепљива четкица
-Comment[sr@Latn]=Mokra i lepljiva četkica
-Comment[sv]=Våt och klibbig målarpensel
-Comment[uk]=Пензель з параметрами вогкості і клейкості
-Comment[zh_TW]=濕 & 黏的筆刷
-ServiceTypes=Krita/ColorSpace
-Type=Service
-X-KDE-Library=kritawsbrushpaintop
-X-Krita-Version=2
diff --git a/krita/colorspaces/wetsticky/brushop/wetpaintbrush.png b/krita/colorspaces/wetsticky/brushop/wetpaintbrush.png
deleted file mode 100644
index 8b681ec18..000000000
Binary files a/krita/colorspaces/wetsticky/brushop/wetpaintbrush.png and /dev/null differ
diff --git a/krita/colorspaces/wetsticky/brushop/wsbrushpaintop_plugin.cc b/krita/colorspaces/wetsticky/brushop/wsbrushpaintop_plugin.cc
deleted file mode 100644
index 83129296b..000000000
--- a/krita/colorspaces/wetsticky/brushop/wsbrushpaintop_plugin.cc
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * wsbrushpaintop_plugin.cc -- Part of Krita
- *
- * Copyright (c) 2005 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <klocale.h>
-#include <kiconloader.h>
-#include <kinstance.h>
-#include <kmessagebox.h>
-#include <kstandarddirs.h>
-#include <ktempfile.h>
-#include <kdebug.h>
-#include <kgenericfactory.h>
-
-#include <kis_paintop_registry.h>
-#include <kis_debug_areas.h>
-#include "kis_wsbrushop.h"
-
-#include "wsbrushpaintop_plugin.h"
-
-typedef KGenericFactory<WSBrushPaintOpPlugin> WSBrushPaintOpPluginFactory;
-K_EXPORT_COMPONENT_FACTORY( kritawsbrushpaintop, WSBrushPaintOpPluginFactory( "kritacore" ) )
-
-
-WSBrushPaintOpPlugin::WSBrushPaintOpPlugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-    setInstance(WSBrushPaintOpPluginFactory::instance());
-
-    // This is not a gui plugin; only load it when the doc is created.
-    if ( tqparent->inherits("KisFactory") )
-    {
-        KisPaintOpRegistry::instance() -> add ( new KisWSBrushOpFactory );
-    }
-
-}
-
-WSBrushPaintOpPlugin::~WSBrushPaintOpPlugin()
-{
-}
-
-#include "wsbrushpaintop_plugin.moc"
diff --git a/krita/colorspaces/wetsticky/brushop/wsbrushpaintop_plugin.h b/krita/colorspaces/wetsticky/brushop/wsbrushpaintop_plugin.h
deleted file mode 100644
index 7e77afec1..000000000
--- a/krita/colorspaces/wetsticky/brushop/wsbrushpaintop_plugin.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef WSBRUSH_PAINTOP_PLUGIN_H_
-#define WSBRUSH_PAINTOP_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-#include "kis_types.h"
-
-class KisView;
-
-/**
- * A plugin wrapper that adds the paintop factories to the paintop registry.
- */
-class WSBrushPaintOpPlugin : public KParts::Plugin
-{
-    Q_OBJECT
-  TQ_OBJECT
-public:
-    WSBrushPaintOpPlugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~WSBrushPaintOpPlugin();
-
-private:
-
-    KisView* m_view;
-};
-
-#endif // WSBRUSH_PAINTOP_PLUGIN_H_
diff --git a/krita/colorspaces/wetsticky/kis_wet_sticky_colorspace.cc b/krita/colorspaces/wetsticky/kis_wet_sticky_colorspace.cc
deleted file mode 100644
index 44426382e..000000000
--- a/krita/colorspaces/wetsticky/kis_wet_sticky_colorspace.cc
+++ /dev/null
@@ -1,605 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <limits.h>
-#include <stdlib.h>
-
-#include <config.h>
-#include LCMS_HEADER
-
-#include <tqimage.h>
-
-#include <klocale.h>
-#include <kdebug.h>
-
-#include "kis_color_conversions.h"
-#include "kis_abstract_colorspace.h"
-#include "kis_colorspace_registry.h"
-#include "kis_image.h"
-#include "kis_wet_sticky_colorspace.h"
-#include "kis_integer_maths.h"
-#include "kis_types.h"
-#include "kis_channelinfo.h"
-
-#define NOWSDEBUG
-
-using namespace WetAndSticky;
-
-enum WetStickyChannelIndex {
-    BLUE_CHANNEL_INDEX,
-    GREEN_CHANNEL_INDEX,
-    RED_CHANNEL_INDEX,
-    ALPHA_CHANNEL_INDEX,
-    HUE_CHANNEL_INDEX,
-    SATURATION_CHANNEL_INDEX,
-    LIGHTNESS_CHANNEL_INDEX,
-    LITQUID_CONTENT_CHANNEL_INDEX,
-    DRYING_RATE_CHANNEL_INDEX,
-    MISCIBILITY_CHANNEL_INDEX,
-    GRAVITATIONAL_DIRECTION_INDEX,
-    GRAVITATIONAL_STRENGTH_CHANNEL_INDEX,
-    ABSORBANCY_CHANNEL_INDEX,
-    PAINT_VOLUME_CHANNEL_INDEX
-};
-
-KisWetStickyColorSpace::KisWetStickyColorSpace() :
-    KisAbstractColorSpace(KisID("W&S", i18n("Wet & Sticky")), 0, icMaxEnumData)
-{
-    TQ_INT32 pos = 0;
-
-    // Basic representational definition
-    m_channels.push_back(new KisChannelInfo(i18n("Blue"), "B", pos, COLOR, 1));
-    m_channels.push_back(new KisChannelInfo(i18n("Green"), "G", ++pos, COLOR, 1));
-    m_channels.push_back(new KisChannelInfo(i18n("Red"), "R", ++pos, COLOR, 1));
-    m_channels.push_back(new KisChannelInfo(i18n("Alpha"), "A", ++pos, ALPHA, 1));
-
-    // Paint definition
-    m_channels.push_back(new KisChannelInfo(i18n("Hue"), "H", ++pos, COLOR, sizeof(float)));
-    m_channels.push_back(new KisChannelInfo(i18n("Saturation"), "S", pos+=sizeof(float) , COLOR, sizeof(float)));
-    m_channels.push_back(new KisChannelInfo(i18n("Lightness"), "L", pos+=sizeof(float), COLOR, sizeof(float)));
-
-    m_channels.push_back(new KisChannelInfo(i18n("Liquid Content"), "Q", pos+=sizeof(float), SUBSTANCE, 1));
-    m_channels.push_back(new KisChannelInfo(i18n("Drying Rate"), "D", ++pos, SUBSTANCE, 1));
-    m_channels.push_back(new KisChannelInfo(i18n("Miscibility"), "M", ++pos, SUBSTANCE, 1));
-
-    // Substrate definition
-    m_channels.push_back(new KisChannelInfo(i18n("Gravitational Direction"), "Gd", ++pos, SUBSTRATE, sizeof(enumDirection)));
-    m_channels.push_back(new KisChannelInfo(i18n("Gravitational Strength"), "Gs", pos+=sizeof(enumDirection), SUBSTRATE, 1));
-
-    m_channels.push_back(new KisChannelInfo(i18n("Absorbency"), "Ad", ++pos, SUBSTRATE, 1));
-    m_channels.push_back(new KisChannelInfo(i18n("Paint Volume"), "V", ++pos, SUBSTANCE, 1));
-
-    m_alphaPos = 3;
-    m_alphaSize = 1;
-    setDefaultProfile( 0 );
-
-#ifdef WSDEBUG
-    TQValueVector<KisChannelInfo *>_it it;
-    int i = 0;
-    for (it = m_channels.begin(); it != m_channels.end(); ++it)
-    {
-        KisChannelInfo * ch = (*it);
-        kdDebug(DBG_AREA_CMS) << "Channel: " << ch->name() << ", " << ch->pos() << ", " << i << "\n";
-        ++i;
-    }
-
-    kdDebug(DBG_AREA_CMS) << "Size of cell: " << sizeof(CELL) << "\n";
-#endif
-}
-
-
-KisWetStickyColorSpace::~KisWetStickyColorSpace()
-{
-}
-
-void KisWetStickyColorSpace::fromTQColor(const TQColor& c, TQ_UINT8 *dst, KisProfile *  profile)
-{
-    CELL_PTR p = (CELL_PTR) dst;
-    TQ_UINT8 r, g, b;
-
-    r = c.red();
-    g = c.green();
-    b = c.blue();
-
-    p -> red = r;
-    p -> green = g;
-    p -> blue = b;
-    p -> alpha = OPACITY_OPAQUE;
-
-    rgb_to_hls(r, g, b, &p->hue, &p->lightness, &p->saturation);
-
-    p -> liquid_content = 0;
-    p -> drying_rate = 0;
-    p -> miscibility = 0;
-
-    p -> direction = DOWN;
-    p -> strength = 10;
-
-    p -> absorbancy = 10;
-    p -> volume = 0;
-
-#ifdef WSDEBUG
-    kdDebug(DBG_AREA_CMS) << "qcolor: "
-        << " r: " << c.red() << " b: " << c.blue() << " g: " << c.red()
-        << " native color: (" << TQString().setNum(p->red) << ", "
-                              << TQString().setNum(p->green) << ", "
-                              << TQString().setNum(p->blue) << ", "
-                              << TQString().setNum(p->alpha) << ") "
-        << ", hls: (" << p->hue << ", "
-                      << p->lightness << ", "
-                      << p->saturation << ")\n";
-#endif
-}
-
-void KisWetStickyColorSpace::fromTQColor(const TQColor& c, TQ_UINT8 opacity, TQ_UINT8 *dst, KisProfile *  profile)
-{
-    CELL_PTR p = (CELL_PTR) dst;
-    TQ_UINT8 r, g, b;
-
-    r = c.red();
-    g = c.green();
-    b = c.blue();
-
-    p -> red = r;
-    p -> green = g;
-    p -> blue = b;
-    p -> alpha = opacity;
-    rgb_to_hls(r, g, b, &p -> hue, &p -> lightness, &p -> saturation);
-
-    p ->liquid_content = 0;
-    p ->drying_rate = 0;
-    p ->miscibility = 0;
-
-    p -> direction = DOWN;
-    p -> strength = 10;
-
-    p -> absorbancy = 10;
-    p -> volume = 0;
-
-#ifdef WSDEBUG
-    kdDebug(DBG_AREA_CMS) << "qcolor: "
-        << " r: " << c.red() << " b: " << c.blue() << " g: " << c.red() << " opacity: " << opacity
-        << " native color: (" << TQString().setNum(p->red) << ", "
-                              << TQString().setNum(p->green) << ", "
-                              << TQString().setNum(p->blue) << ", "
-                              << TQString().setNum(p->alpha) << ") "
-        << ", hls: (" << p->hue << ", "
-                      << p->lightness << ", "
-                      << p->saturation << ")\n";
-#endif
-}
-
-void KisWetStickyColorSpace::toTQColor(const TQ_UINT8 *src, TQColor *c, KisProfile *  profile)
-{
-    CELL_PTR p = (CELL_PTR) src;
-
-    c -> setRgb(p -> red,
-            p -> green,
-            p -> blue);
-#ifdef WSDEBUG
-    kdDebug(DBG_AREA_CMS) << "Created qcolor from wet & sticky: " << " r: " << c->red() << " b: " << c->blue() << " g: " << c->red() << "\n";
-#endif
-}
-
-void KisWetStickyColorSpace::toTQColor(const TQ_UINT8 *src, TQColor *c, TQ_UINT8 *opacity, KisProfile *  profile)
-{
-
-    CELL_PTR p = (CELL_PTR) src;
-
-    c -> setRgb(p -> red,
-            p -> green,
-            p -> blue);
-
-    *opacity = p -> alpha;
-#ifdef WSDEBUG
-    kdDebug(DBG_AREA_CMS) << "Created qcolor from wet & sticky: " << " r: " << c->red() << " b: " << c->blue() << " g: " << c->red() << "\n";
-#endif
-}
-
-
-
-KisPixelRO KisWetStickyColorSpace::toKisPixelRO(const TQ_UINT8 *src, KisProfile *  profile)
-{
-    return KisPixelRO (src, src, this, profile);
-}
-
-KisPixel KisWetStickyColorSpace::toKisPixel(TQ_UINT8 *src, KisProfile *  profile)
-{
-    return KisPixel (src, src, this, profile);
-}
-
-void KisWetStickyColorSpace::mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const
-{
-}
-
-TQ_UINT8 KisWetStickyColorSpace::getAlpha(const TQ_UINT8 *pixel) const
-{
-    return ((CELL_PTR)pixel)->alpha;
-}
-
-void KisWetStickyColorSpace::setAlpha(TQ_UINT8 * pixels, TQ_UINT8 alpha, TQ_INT32 nPixels) const
-{
-    while (nPixels > 0) {
-        ((CELL_PTR)pixels)->alpha = alpha;
-        --nPixels;
-        pixels+=pixelSize();
-    }
-}
-
-void KisWetStickyColorSpace::applyAlphaU8Mask(TQ_UINT8 * pixels, TQ_UINT8 * alpha, TQ_INT32 nPixels)
-{
-}
-
-void KisWetStickyColorSpace::applyInverseAlphaU8Mask(TQ_UINT8 * pixels, TQ_UINT8 * alpha, TQ_INT32 nPixels)
-{
-}
-
-TQ_UINT8 KisWetStickyColorSpace::scaleToU8(const TQ_UINT8 * srcPixel, TQ_INT32 channelPos)
-{
-    return 0;
-}
-
-TQ_UINT16 KisWetStickyColorSpace::scaleToU16(const TQ_UINT8 * srcPixel, TQ_INT32 channelPos)
-{
-    return 0;
-}
-
-
-TQValueVector<KisChannelInfo *> KisWetStickyColorSpace::channels() const
-{
-    return m_channels;
-}
-
-bool KisWetStickyColorSpace::hasAlpha() const
-{
-    return true;
-}
-
-TQ_INT32 KisWetStickyColorSpace::nChannels() const
-{
-    return 14;
-}
-
-TQ_INT32 KisWetStickyColorSpace::nColorChannels() const
-{
-    return 3;
-}
-
-TQ_INT32 KisWetStickyColorSpace::nSubstanceChannels() const
-{
-    return 4;
-
-}
-
-TQ_INT32 KisWetStickyColorSpace::pixelSize() const
-{
-    return sizeof(CELL);
-}
-
-
-TQImage KisWetStickyColorSpace::convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width, TQ_INT32 height,
-                           KisProfile *  /*srcProfile*/, KisProfile *  /*dstProfile*/,
-                           TQ_INT32 /*renderingIntent*/, float /*exposure*/)
-{
-
-    TQImage img(width, height, 32, 0, TQImage::LittleEndian);
-
-    TQ_INT32 i = 0;
-    uchar *j = img.bits();
-
-    CELL_PTR p = (CELL_PTR) data;
-
-    while ( i < width * height) {
-
-        const TQ_UINT8 PIXEL_BLUE = 0;
-        const TQ_UINT8 PIXEL_GREEN = 1;
-        const TQ_UINT8 PIXEL_RED = 2;
-        const TQ_UINT8 PIXEL_ALPHA = 3;
-
-        *( j + PIXEL_ALPHA ) = p -> alpha;
-        *( j + PIXEL_RED )   = p -> red;
-        *( j + PIXEL_GREEN ) = p -> green;
-        *( j + PIXEL_BLUE )  = p -> blue;
-
-        p++;
-        i++;
-        j += 4; // Because we're hard-coded 32 bits deep, 4 bytes
-    }
-    return img;
-}
-
-bool KisWetStickyColorSpace::convertPixelsTo(const TQ_UINT8 * src, KisProfile *  /*srcProfile*/,
-                         TQ_UINT8 * dst, KisAbstractColorSpace * dstColorSpace, KisProfile *  dstProfile,
-                         TQ_UINT32 numPixels,
-                         TQ_INT32 /*renderingIntent*/)
-{
-    TQ_INT32 dSize = dstColorSpace -> pixelSize();
-    TQ_INT32 sSize = pixelSize();
-
-    TQ_UINT32 j = 0;
-    TQ_UINT32 i = 0;
-    TQColor c;
-    CELL_PTR cp;
-    while ( i < numPixels ) {
-        cp = (CELL_PTR) (src + i);
-
-        c.setRgb(cp -> red,
-             cp -> green,
-             cp -> blue);
-
-        dstColorSpace -> fromTQColor(c, cp -> alpha, (dst + j), dstProfile);
-
-        i += sSize;
-        j += dSize;
-
-    }
-    return true;
-
-}
-
-void KisWetStickyColorSpace::bitBlt(TQ_UINT8 *dst,
-                      TQ_INT32 dstRowStride,
-                      const TQ_UINT8 *src,
-                      TQ_INT32 srcRowStride,
-                      const TQ_UINT8 *tqmask,
-                      TQ_INT32 tqmaskRowStride,
-                      TQ_UINT8 opacity,
-                      TQ_INT32 rows,
-                      TQ_INT32 cols,
-                      const KisCompositeOp& op)
-{
-    switch (op.op()) {
-    case COMPOSITE_UNDEF:
-        // Undefined == no composition
-        break;
-    case COMPOSITE_OVER:
-        compositeOver(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    case COMPOSITE_COPY:
-    default:
-        compositeCopy(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
-        break;
-    }
-
-}
-
-
-void KisWetStickyColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    // XXX: This is basically the same as with rgb and used to composite layers for  Composition for
-    //      painting works differently
-
-
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-
-        TQ_INT32 columns = numColumns;
-
-        while (columns > 0) {
-
-            CELL_PTR dstCell = (CELL_PTR) dst;
-            CELL_PTR srcCell = (CELL_PTR) src;
-
-#ifdef WSDEBUG
-            kdDebug(DBG_AREA_CMS) << "Source: " << rows << ", " << columns << " color: " <<
-                srcCell->red << ", " << srcCell->blue << ", " << srcCell->green << ", " << srcCell->alpha << ", " << srcCell->volume << "\n";
-
-
-            kdDebug(DBG_AREA_CMS) << "Destination: "  << rows << ", " << columns << " color: " <<
-                dstCell->red << ", " << dstCell->blue << ", " << dstCell->green << ", " << dstCell->alpha << ", " << dstCell->volume << "\n";
-
-#endif
-
-            TQ_UINT8 srcAlpha = srcCell->alpha;
-
-            // apply the alphatqmask
-            if(tqmask != 0)
-            {
-                if(*tqmask != OPACITY_OPAQUE)
-                    srcAlpha = UINT8_MULT(srcAlpha, *tqmask);
-                tqmask++;
-            }
-
-            if (srcAlpha != OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT8_MULT(srcCell->alpha, opacity);
-                }
-
-                if (srcAlpha == OPACITY_OPAQUE) {
-                    memcpy(dst, src, 3); // XXX: First three bytes for rgb?
-                } else {
-                    TQ_UINT8 dstAlpha = dstCell->alpha;
-
-                    TQ_UINT8 srcBlend;
-
-                    if (dstAlpha == OPACITY_OPAQUE) {
-                        srcBlend = srcAlpha;
-                    } else {
-                        TQ_UINT8 newAlpha = dstAlpha + UINT8_MULT(OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                        dstCell->alpha = newAlpha;
-
-                        if (newAlpha != 0) {
-                            srcBlend = UINT8_DIVIDE(srcAlpha, newAlpha);
-                        } else {
-                            srcBlend = srcAlpha;
-                        }
-                    }
-
-                    if (srcBlend == OPACITY_OPAQUE) {
-                        memcpy(dst, src, 3); //XXX: First three bytes for rgb?
-                    } else {
-                        dstCell->red = UINT8_BLEND(srcCell->red, dstCell->red, srcBlend);
-                        dstCell->green = UINT8_BLEND(srcCell->green, dstCell->green, srcBlend);
-                        dstCell->blue = UINT8_BLEND(srcCell->blue, dstCell->blue, srcBlend);
-                    }
-                }
-            }
-            columns--;
-            src += sizeof(CELL);
-            dst += sizeof(CELL);
-        }
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-
-        if(tqmaskRowStart)
-            tqmaskRowStart += tqmaskRowStride;
-    }
-
-}
-
-void KisWetStickyColorSpace::compositeCopy(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity)
-{
-    TQ_INT32 linesize = sizeof(CELL) * columns;
-    TQ_UINT8 *d;
-    const TQ_UINT8 *s;
-    d = dst;
-    s = src;
-
-    while (rows-- > 0) {
-        memcpy(d, s, linesize);
-        d += dstRowStride;
-        s += srcRowStride;
-    }
-
-}
-
-
-KisCompositeOpList KisWetStickyColorSpace::userVisiblecompositeOps() const
-{
-    KisCompositeOpList list;
-
-    list.append(KisCompositeOp(COMPOSITE_OVER));
-
-    return list;
-}
-
-TQString KisWetStickyColorSpace::channelValueText(const TQ_UINT8 *U8_pixel, TQ_UINT32 channelIndex) const
-{
-    Q_ASSERT(channelIndex < nChannels());
-    const CELL *pixel = reinterpret_cast<const CELL *>(U8_pixel);
-
-    switch (channelIndex) {
-    case BLUE_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> blue);
-    case GREEN_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> green);
-    case RED_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> red);
-    case ALPHA_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> alpha);
-    case HUE_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> hue);
-    case SATURATION_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> saturation);
-    case LIGHTNESS_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> lightness);
-    case LITQUID_CONTENT_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> liquid_content);
-    case DRYING_RATE_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> drying_rate);
-    case MISCIBILITY_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> miscibility);
-    case GRAVITATIONAL_DIRECTION_INDEX:
-        {
-            switch (pixel -> direction) {
-            case UP:
-                return i18n("Up");
-            case DOWN:
-                return i18n("Down");
-            case LEFT:
-                return i18n("Left");
-            case RIGHT:
-                return i18n("Right");
-            default:
-                Q_ASSERT(false);
-                return TQString();
-            }
-        }
-    case GRAVITATIONAL_STRENGTH_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> strength);
-    case ABSORBANCY_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> absorbancy);
-    case PAINT_VOLUME_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> volume);
-    default:
-        Q_ASSERT(false);
-        return TQString();
-    }
-}
-
-TQString KisWetStickyColorSpace::normalisedChannelValueText(const TQ_UINT8 *U8_pixel, TQ_UINT32 channelIndex) const
-{
-    Q_ASSERT(channelIndex < nChannels());
-    const CELL *pixel = reinterpret_cast<const CELL *>(U8_pixel);
-
-    //XXX: Are these right?
-
-    switch (channelIndex) {
-    case BLUE_CHANNEL_INDEX:
-        return TQString().setNum(static_cast<float>(pixel -> blue) / UINT8_MAX);
-    case GREEN_CHANNEL_INDEX:
-        return TQString().setNum(static_cast<float>(pixel -> green) / UINT8_MAX);
-    case RED_CHANNEL_INDEX:
-        return TQString().setNum(static_cast<float>(pixel -> red) / UINT8_MAX);
-    case ALPHA_CHANNEL_INDEX:
-        return TQString().setNum(static_cast<float>(pixel -> alpha) / UINT8_MAX);
-    case HUE_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> hue);
-    case SATURATION_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> saturation);
-    case LIGHTNESS_CHANNEL_INDEX:
-        return TQString().setNum(pixel -> lightness);
-    case LITQUID_CONTENT_CHANNEL_INDEX:
-        return TQString().setNum(static_cast<float>(pixel -> liquid_content) / UINT8_MAX);
-    case DRYING_RATE_CHANNEL_INDEX:
-        return TQString().setNum(static_cast<float>(pixel -> drying_rate) / UINT8_MAX);
-    case MISCIBILITY_CHANNEL_INDEX:
-        return TQString().setNum(static_cast<float>(pixel -> miscibility) / UINT8_MAX);
-    case GRAVITATIONAL_DIRECTION_INDEX:
-        {
-            switch (pixel -> direction) {
-            case UP:
-                return i18n("Up");
-            case DOWN:
-                return i18n("Down");
-            case LEFT:
-                return i18n("Left");
-            case RIGHT:
-                return i18n("Right");
-            default:
-                Q_ASSERT(false);
-                return TQString();
-            }
-        }
-    case GRAVITATIONAL_STRENGTH_CHANNEL_INDEX:
-        return TQString().setNum(static_cast<float>(pixel -> strength) / UINT8_MAX);
-    case ABSORBANCY_CHANNEL_INDEX:
-        return TQString().setNum(static_cast<float>(pixel -> absorbancy) / UINT8_MAX);
-    case PAINT_VOLUME_CHANNEL_INDEX:
-        return TQString().setNum(static_cast<float>(pixel -> volume) / UINT8_MAX);
-    default:
-        Q_ASSERT(false);
-        return TQString();
-    }
-}
-
diff --git a/krita/colorspaces/wetsticky/kis_wet_sticky_colorspace.h b/krita/colorspaces/wetsticky/kis_wet_sticky_colorspace.h
deleted file mode 100644
index 57f3ac70b..000000000
--- a/krita/colorspaces/wetsticky/kis_wet_sticky_colorspace.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.o>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_COLORSPACE_WET_STICKY_H_
-#define KIS_COLORSPACE_WET_STICKY_H_
-
-#include <tqcolor.h>
-
-#include "kis_global.h"
-#include "kis_abstract_colorspace.h"
-
-namespace WetAndSticky {
-
-    /**
-         * A color is specified as a vector in HLS space.  Hue is a value
-     * in the range 0..360 degrees with 0 degrees being red.  Saturation
-         * and Lightness are both in the range [0,1].  A lightness of 0 means
-     * black, with 1 being white.  A totally saturated color has saturation
-     * of 1.
-     */
-
-    enum enumDirection {
-        UP,
-        DOWN,
-        LEFT,
-        RIGHT
-    };
-
-    /**
-     * Defines the contents and attributes of a cell on the canvas.
-     */
-    typedef struct cell {
-        TQ_UINT8 blue;
-        TQ_UINT8 green;
-        TQ_UINT8 red;
-        TQ_UINT8 alpha;
-
-        float   hue;
-        float   saturation;
-        float   lightness;
-
-        TQ_UINT8 liquid_content;
-        TQ_UINT8 drying_rate;
-        TQ_UINT8 miscibility;
-
-        enumDirection direction;
-        TQ_UINT8 strength;
-
-        TQ_UINT8  absorbancy;  /* How much paint can this cell hold? */
-        TQ_UINT8  volume;      /* The volume of paint. */
-
-    } CELL, *CELL_PTR;
-
-
-}
-
-
-
-class KisWetStickyColorSpace : public KisAbstractColorSpace {
-public:
-    KisWetStickyColorSpace();
-    virtual ~KisWetStickyColorSpace();
-
-public:
-
-
-
-    virtual void fromTQColor(const TQColor& c, TQ_UINT8 *dst, KisProfile *  profile = 0);
-    virtual void fromTQColor(const TQColor& c, TQ_UINT8 opacity, TQ_UINT8 *dst, KisProfile *  profile = 0);
-
-    virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, KisProfile *  profile = 0);
-    virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, TQ_UINT8 *opacity, KisProfile *  profile = 0);
-
-    virtual TQ_UINT8 getAlpha(const TQ_UINT8 *pixel) const;
-    virtual void setAlpha(TQ_UINT8 * pixels, TQ_UINT8 alpha, TQ_INT32 nPixels) const;
-
-    virtual void applyAlphaU8Mask(TQ_UINT8 * pixels, TQ_UINT8 * alpha, TQ_INT32 nPixels);
-    virtual void applyInverseAlphaU8Mask(TQ_UINT8 * pixels, TQ_UINT8 * alpha, TQ_INT32 nPixels);
-
-    virtual TQ_UINT8 scaleToU8(const TQ_UINT8 * srcPixel, TQ_INT32 channelPos);
-    virtual TQ_UINT16 scaleToU16(const TQ_UINT8 * srcPixel, TQ_INT32 channelPos);
-
-    virtual TQValueVector<KisChannelInfo *> channels() const;
-    virtual bool hasAlpha() const;
-    virtual TQ_INT32 nChannels() const;
-    virtual TQ_INT32 nColorChannels() const;
-    virtual TQ_INT32 nSubstanceChannels() const;
-    virtual TQ_INT32 pixelSize() const;
-
-    virtual TQString channelValueText(const TQ_UINT8 *pixel, TQ_UINT32 channelIndex) const;
-    virtual TQString normalisedChannelValueText(const TQ_UINT8 *pixel, TQ_UINT32 channelIndex) const;
-
-    virtual TQImage convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width, TQ_INT32 height,
-                       KisProfile *  srcProfile, KisProfile *  dstProfile,
-                       TQ_INT32 renderingIntent = INTENT_PERCEPTUAL,
-                       float exposure = 0.0f);
-
-
-    virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const;
-    virtual void convolveColors(TQ_UINT8** colors, TQ_INT32* kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const;
-    virtual void invertColor(TQ_UINT8 * src, TQ_INT32 nPixels);
-    virtual void darken(const TQ_UINT8 * src, TQ_UINT8 * dst, TQ_INT32 shade, bool compensate, double compensation, TQ_INT32 nPixels) const;
-
-    virtual KisCompositeOpList userVisiblecompositeOps() const;
-
-protected:
-
-    virtual void bitBlt(TQ_UINT8 *dst,
-                TQ_INT32 dstRowSize,
-                const TQ_UINT8 *src,
-                TQ_INT32 srcRowStride,
-                const TQ_UINT8 *srcAlphaMask,
-                TQ_INT32 tqmaskRowStride,
-                TQ_UINT8 opacity,
-                TQ_INT32 rows,
-                TQ_INT32 cols,
-                const KisCompositeOp& op);
-
-
-    virtual bool convertPixelsTo(const TQ_UINT8 * src, KisProfile *  srcProfile,
-                     TQ_UINT8 * dst, KisAbstractColorSpace * dstColorSpace, KisProfile *  dstProfile,
-                     TQ_UINT32 numPixels,
-                     TQ_INT32 renderingIntent = INTENT_PERCEPTUAL);
-
-
-private:
-
-    void compositeOver(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeClear(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-    void compositeCopy(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-
-};
-
-#endif // KIS_COLORSPACE_WET_STICKY_H_
diff --git a/krita/colorspaces/wetsticky/kis_ws_engine_filter.cc b/krita/colorspaces/wetsticky/kis_ws_engine_filter.cc
deleted file mode 100644
index 040d30023..000000000
--- a/krita/colorspaces/wetsticky/kis_ws_engine_filter.cc
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <stdlib.h>
-#include <vector>
-#include <math.h>
-
-#include <tqpoint.h>
-#include <tqspinbox.h>
-#include <tqrect.h>
-#include <tqcolor.h>
-
-#include <klocale.h>
-#include <kiconloader.h>
-#include <kinstance.h>
-#include <kmessagebox.h>
-#include <kstandarddirs.h>
-#include <ktempfile.h>
-#include <kdebug.h>
-#include <kgenericfactory.h>
-#include <knuminput.h>
-
-#include <kis_debug_areas.h>
-#include <kis_image.h>
-#include <kis_iterators_pixel.h>
-#include <kis_layer.h>
-#include <kis_filter_registry.h>
-#include <kis_debug_areas.h>
-#include <kis_types.h>
-#include <kis_paint_device.h>
-#include <kis_colorspace_registry.h>
-
-#include "kis_ws_engine_filter.h"
-#include "kis_wet_sticky_colorspace.h"
-
-/**
- * The Wet & Sticky Engine filter is based on the wet & sticky model
- * for computer painting designed by Tunde Cockshott and implemented
- * by David England and Kevin Waite.
- *
- * The filter implements the engine that moves the paint according to
- * gravity, viscosity and absorbency.
- *
- */
-KisWSEngineFilter::KisWSEngineFilter() : KisFilter(id(), "", i18n("&Wet & Sticky paint engine..."))
-{
-}
-
-
-/**
- * Sets the POINT giving the coordinate location of the next
- * cell on the canvas to be visited.  There is an even probability
- * of each cell being visited.
- */
-TQPoint next_cell(TQ_UINT32 width, TQ_UINT32 height)
-{
-    return TQPoint(random() * width,  random() * height);
-}
-
-void single_step(KisColorSpace * cs, KisPaintDeviceSP src,  KisPaintDeviceSP dst, const TQRect & rect, bool native)
-{
-    using namespace WetAndSticky;
-
-
-    TQPoint p = next_cell( rect.width(),  rect.height() );
-
-    // XXX: We could optimize by randomly doing lines of 64 pixels
-    // -- maybe that would be enough to avoid the windscreen wiper
-    // effect.
-    KisHLineIterator iter = src -> createHLineIterator(p.x(), p.y(), 1,  false);
-
-    TQ_UINT8 *orig = iter.rawData();
-    TQ_UINT8 *pix = orig;
-
-     if (!orig) return;
-
-    if (!native ) {
-        TQColor c;
-        TQ_UINT8 opacity;
-
-        src -> colorSpace() -> toTQColor(pix, &c, &opacity);
-        TQ_UINT8 *pix = new TQ_UINT8[sizeof( cell )];
-        Q_CHECK_PTR(pix);
-
-        cs -> fromTQColor(c, opacity, pix);
-    }
-
-    // Process
-
-    CELL_PTR c = ( CELL_PTR )pix;
-
-
-    if ( !native ) {
-        // Set RGBA back
-    }
-
-}
-
-void KisWSEngineFilter::process(KisPaintDeviceSP src, KisPaintDeviceSP dst, KisFilterConfiguration* configuration, const TQRect& rect)
-{
-
-    m_src = src;
-    m_dst = dst;
-    m_cfg = ( KisWSEngineFilterConfiguration * )configuration;
-    m_rect = rect;
-
-
-    kdDebug(DBG_AREA_FILTERS) << "WSEnginefilter called!\n";
-    TQTime t;
-    t.restart();
-
-    // Two possibilities: we have our own, cool w&s pixel, and
-    // then we have real data to mess with, or we're filtering a
-    // boring shoup-model paint device and we can only work by
-    // synthesizing w&s pixels.
-    bool native = false;
-    // XXX: We need a better way to ID color strategies
-    if ( src -> colorSpace() -> id() == KisID("W&S","") ) native = true;
-
-    // XXX: We need a better way to ID color strategies
-    KisColorSpace * cs = KisColorSpaceRegistry::instance()->get("W&S");
-
-    TQ_UINT32 pixels = 400; //m_cfg -> pixels();
-
-    kdDebug(DBG_AREA_FILTERS) << "Going to singlestep " << pixels << " pixels.\n";
-
-    // Determine whether we want an infinite loop
-    if ( pixels == 0 ) {
-        while ( true )
-            single_step (cs, src, dst, rect, native);
-    }
-    // Or not.
-    else {
-        for ( TQ_UINT32 i = 0; i < pixels; ++i ) {
-            single_step (cs, src, dst, rect, native);
-        }
-    }
-    kdDebug(DBG_AREA_FILTERS) << "Done in " << t.elapsed() << " ms\n";
-
-}
-
-KisFilterConfigWidget * KisWSEngineFilter::createConfigurationWidget(TQWidget* tqparent, KisPaintDeviceSP dev)
-{
-//     KisWSEngineFilterConfigurationWidget* kefcw = new KisWSEngineFilterConfigurationWidget(this,tqparent, "");
-//     kdDebug(DBG_AREA_FILTERS) << kefcw << endl;
-//     return kefcw  ;
-    return 0;
-}
-
-KisFilterConfiguration* KisWSEngineFilter::configuration(TQWidget* nwidget, KisPaintDeviceSP dev)
-{
-//     KisWSEngineFilterConfigurationWidget* widget = (KisWSEngineFilterConfigurationWidget*) nwidget;
-
-//     if( widget == 0 )
-//     {
-//         return new KisWSEngineFilterConfiguration(30);
-//     } else {
-//                 TQ_UINT32 depth = widget -> baseWidget() -> depthSpinBox -> value();
-
-//                 return new KisWSEngineFilterConfiguration(depth);
-//         }
-
-
-    return new KisWSEngineFilterConfiguration( m_rect.height() * m_rect.width() );
-}
-
diff --git a/krita/colorspaces/wetsticky/kis_ws_engine_filter.h b/krita/colorspaces/wetsticky/kis_ws_engine_filter.h
deleted file mode 100644
index d1c23810c..000000000
--- a/krita/colorspaces/wetsticky/kis_ws_engine_filter.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef _KIS_WS_ENGINE_FILTER_H_
-#define _KIS_WS_ENGINE_FILTER_H_
-
-#include <kdebug.h>
-
-#include <kis_view.h>
-#include <kis_filter.h>
-#include <kis_id.h>
-
-class KisWSEngineFilterConfiguration : public KisFilterConfiguration
-{
-
-public:
-
-    KisWSEngineFilterConfiguration() { m_pixels = 10000; }
-
-    KisWSEngineFilterConfiguration(TQ_UINT32 pixels = 0) { m_pixels = pixels; }
-
-    TQ_UINT32 pixels() { return m_pixels; }
-
-private:
-
-    TQ_UINT32 m_pixels; // The number of pixels the filter should
-               // move. 0 means keep running indefinitely
-
-
-
-};
-
-class KisWSEngineFilter : public KisFilter
-{
-
-public:
-
-    KisWSEngineFilter();
-
-    virtual void process(KisPaintDeviceSP src, KisPaintDeviceSP dst, KisFilterConfiguration* cfg, const TQRect& rc);
-
-    static inline KisID id() { return KisID("Wet & Sticky Engine", i18n("Wet & Sticky")); };
-    virtual bool supportsPainting() { return false; }
-    virtual bool supportsPreview() { return false; }
-    virtual bool supportsIncrementalPainting() { return false; }
-
-public:
-    virtual KisFilterConfigWidget * createConfigurationWidget(TQWidget* tqparent, KisPaintDeviceSP dev);
-    virtual KisFilterConfiguration* configuration(TQWidget*, KisPaintDeviceSP dev);
-
-
-private:
-
-private:
-
-    KisWSEngineFilterConfiguration * m_cfg;
-    KisPaintDeviceSP m_src;
-    KisPaintDeviceSP m_dst;
-    TQRect m_rect;
-
-};
-
-#endif // _KIS_WS_ENGINE_FILTER_H_
diff --git a/krita/colorspaces/wetsticky/kritawsplugin.desktop b/krita/colorspaces/wetsticky/kritawsplugin.desktop
deleted file mode 100644
index 0f6b67914..000000000
--- a/krita/colorspaces/wetsticky/kritawsplugin.desktop
+++ /dev/null
@@ -1,46 +0,0 @@
-[Desktop Entry]
-Name=Wet & Sticky Canvas Color Model
-Name[bg]=Цветови модел за мокро и лепкаво платно
-Name[ca]=Model de color de llenç humit i viscós
-Name[cy]=Model Lliw Cynfas Gwlyb a Gludiog
-Name[da]=Våd & klæbrig kanvasfarve-model
-Name[de]=Farbmodell feuchte & klebrige Leinwand
-Name[el]=Μοντέλο καμβά υγρής και κολλώδους μπογιάς
-Name[en_GB]=Wet & Sticky Canvas Colour Model
-Name[eo]=Kolormodelo por Malseka & Glueca Kanvaso
-Name[es]=Modelo de color de lienzo mojado y pegajoso
-Name[et]=Märja lõuendi värvimudel
-Name[eu]=Oihal heze eta itsaskorraren kolore-eredua
-Name[fa]=مدل رنگ صفحه مجازی چسبناک و مرطوب
-Name[fi]=Märkä ja tahmea kangasvärimalli
-Name[fr]=Modèle de couleurs gluantes et mouillées
-Name[fy]=wiete en kliemske canvasmodel
-Name[gl]=Modelo de Cores de Tea Mollado e Pegoñento
-Name[hu]=Nedves és ragadós vászon színmodell
-Name[is]=Blaut & klístruð litategund
-Name[it]=Modello di colore per tela bagnata
-Name[ja]=Wet & Sticky キャンバスカラーモデル
-Name[km]=ម៉ូដែល​ពណ៌​ទឹក & ស្អិត
-Name[ms]=Model Warna Kanvas Basah & Lekit
-Name[nb]=Fargemodell for vått og klissete lerret
-Name[nds]=Klöörmodell natt un backig Lienwand
-Name[ne]=ओसिलो र टाँसिने चित्रपट रङ मोडेल
-Name[nl]=Nat en kleverig canvasmodel
-Name[nn]=Fargemodell for vått lerret
-Name[pl]=Przestrzeń barw mokrego i lepkiego płótna
-Name[pt]=Modelo de Cores de Tela Molhado e Pegajoso
-Name[pt_BR]=Modelo de cores de tela Molhada & Pegajosa
-Name[ru]=Цветовое пространство с параметрами влажности и прилипания
-Name[sk]=Model farieb pre mokré a lepkavé plátno
-Name[sl]=Barvni model z mokrim in lepljivim platnom
-Name[sr]=Модел боја мокрог и лепљивог платна
-Name[sr@Latn]=Model boja mokrog i lepljivog platna
-Name[sv]=Våt och klibbig dukfärgmodell
-Name[uk]=Канва моделі кольорів з параметрами вогкості і клейкості
-Name[zh_CN]=湿性/粘性画布色彩模型
-Name[zh_TW]=濕 & 黏的畫布色彩模型
-ServiceTypes=Krita/ColorSpace
-Type=Service
-X-KDE-Library=kritawsplugin
-X-Krita-Version=2
-
diff --git a/krita/colorspaces/wetsticky/wet_sticky_plugin.cc b/krita/colorspaces/wetsticky/wet_sticky_plugin.cc
deleted file mode 100644
index 197524650..000000000
--- a/krita/colorspaces/wetsticky/wet_sticky_plugin.cc
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * wet_sticky_plugin.cc -- Part of Krita
- *
- * Copyright (c) 2005 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <klocale.h>
-#include <kiconloader.h>
-#include <kinstance.h>
-#include <kmessagebox.h>
-#include <kstandarddirs.h>
-#include <ktempfile.h>
-#include <kdebug.h>
-#include <kgenericfactory.h>
-
-#include <kis_colorspace_registry.h>
-#include <kis_debug_areas.h>
-#include "wet_sticky_plugin.h"
-
-#include "kis_wet_sticky_colorspace.h"
-#include "kis_ws_engine_filter.h"
-
-typedef KGenericFactory<WetStickyPlugin> WetStickyPluginFactory;
-K_EXPORT_COMPONENT_FACTORY( kritawsplugin, WetStickyPluginFactory( "kritacore" ) )
-
-
-WetStickyPlugin::WetStickyPlugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-           setInstance(WetStickyPluginFactory::instance());
-
-    // This is not a gui plugin; only load it when the doc is created.
-    if ( tqparent->inherits("KisFactory") )
-    {
-        KisColorSpace * colorSpaceWS = new KisWetStickyColorSpace();
-        Q_CHECK_PTR(colorSpaceWS);
-        KisColorSpaceRegistry::instance() -> add(colorSpaceWS);
-        KisFilterRegistry::instance()->add(new KisWSEngineFilter());
-    }
-
-}
-
-WetStickyPlugin::~WetStickyPlugin()
-{
-}
-
-#include "wet_sticky_plugin.moc"
diff --git a/krita/colorspaces/wetsticky/wet_sticky_plugin.h b/krita/colorspaces/wetsticky/wet_sticky_plugin.h
deleted file mode 100644
index fe981a59b..000000000
--- a/krita/colorspaces/wetsticky/wet_sticky_plugin.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef WET_STICKY_PLUGIN_H_
-#define WET_STICKY_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-/**
- * A plugin wrapper around the Wet & Sticky colour space strategy.
- *
- * The Wet & Sticky paint system was first designed in 1991 by Tunde Cockshott
- * and was further developed by David England and Kevin Waite. It was released
- * under the GPL in 2005.
- *
- */
-class WetStickyPlugin : public KParts::Plugin
-{
-    Q_OBJECT
-  TQ_OBJECT
-public:
-    WetStickyPlugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~WetStickyPlugin();
-
-};
-
-#endif // WET_STICKY_PLUGIN_H_
diff --git a/krita/colorspaces/wetsticky/ws/GNU b/krita/colorspaces/wetsticky/ws/GNU
deleted file mode 100644
index e69de29bb..000000000
diff --git a/krita/colorspaces/wetsticky/ws/GNU Public Licence.txt b/krita/colorspaces/wetsticky/ws/GNU Public Licence.txt
deleted file mode 100644
index 5e79907b0..000000000
--- a/krita/colorspaces/wetsticky/ws/GNU Public Licence.txt	
+++ /dev/null
@@ -1,341 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which tqcontains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it tqcontains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
diff --git a/krita/colorspaces/wetsticky/ws/README b/krita/colorspaces/wetsticky/ws/README
deleted file mode 100644
index 15f55e77d..000000000
--- a/krita/colorspaces/wetsticky/ws/README
+++ /dev/null
@@ -1,4 +0,0 @@
-
-The gear example
-
-This example program demonstrates how to use OpenGL display lists.
diff --git a/krita/colorspaces/wetsticky/ws/TODO b/krita/colorspaces/wetsticky/ws/TODO
deleted file mode 100644
index 91c48a03b..000000000
--- a/krita/colorspaces/wetsticky/ws/TODO
+++ /dev/null
@@ -1,24 +0,0 @@
-1/ Load in portable pixmaps (PPM). Set an arbitrary paint attribute
-map for each different colour. Otherwise load in a paint attribute
-map definition file.
-2/ Input from "brush". Incremental development of brush input.
-First simple mixing then
-empty brush moving paint
-paint on top of paint
-attribute application.
-3/ Animation 
-1000000 = 1 fps
-500000  = 2 fps
-250000  = 4 fps
-125000  = 8 fps
-62500   = 16 fps
-41660   = 24 fps
-
-4/ NK times    178.9 real        49.4 user        13.3 sys
-   Orig times  636.6 real       111.1 user        43.6 sys
-
-5/ Cross section through volume 
-
-6/ Separate Colour scale window
-
-7/ Transparency
diff --git a/krita/colorspaces/wetsticky/ws/after.jpg b/krita/colorspaces/wetsticky/ws/after.jpg
deleted file mode 100644
index 5116efdbd..000000000
Binary files a/krita/colorspaces/wetsticky/ws/after.jpg and /dev/null differ
diff --git a/krita/colorspaces/wetsticky/ws/anim.c b/krita/colorspaces/wetsticky/ws/anim.c
deleted file mode 100644
index 995a3dffc..000000000
--- a/krita/colorspaces/wetsticky/ws/anim.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-        FILE:           x_interface.c
-        PURPOSE:        Creation and access to an X windows interface
-                        to wet+sticky using Athena Widgets
-        AUTHOR:         David England
-        VERSION:        1.00  (13-May-91)
-
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-Wet and Sticky is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Wet and Sticky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wet and Sticky; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 
-
-*/
-
-#define FRAME_LIMIT  36
-
-#include <X11/Xos.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/Intrinsic.h>
-
-#include <X11/cursorfont.h>
-#include <X11/StringDefs.h>
-
-#include <X11/Shell.h>
-#include <X11/Xaw/Box.h>
-#include <X11/Xaw/Label.h>
-#include <stdio.h>
-
-#include "constants.h"
-#include "types.h"
-
-#include "engine.h"
-#include "canvas.h"
-
-/* Window Heirarchy -
-        Three shell widgets, one for colour output, two for attributes
-output
-        plus a back_up pixmap for redrawing
-*/
-
-static Widget top_level;
-static Widget       colour_shell;
-static Widget            colour_box;
-static Widget                   colour_canvas;
-static Pixmap    colour_pm[FRAME_LIMIT];
-
-static GC gc;
-static GC tmp_gc;
-static long tqmask;
-static XGCValues values;
-
-Display *display;
-char pix_file[32];
-unsigned int delay;
-
-main(argc, argv)
-int argc;
-char *argv[];
-{
-    static Arg args[]={
-        {XtNwidth, (XtArgVal) 0},
-        {XtNheight, (XtArgVal)0} };
-
-	XEvent event;
-        int i, width, height;
-	int ret;
-	int c;
-
-	extern char *optarg;
-       extern int optind;
-
-	width = 300;
-	height = 300;
-
-        args[0].value = (XtArgVal)width;
-
-        args[1].value = (XtArgVal)height;
-
-        top_level =  XtInitialize("wet+sticky", "Wet+Sticky", NULL,
-                                                 0, &argc, argv);
-
-	delay = 100000; /*default delay in microseconds between frames */
-
-	 while ((c = getopt(argc, argv, "D:")) != -1)
-                    switch (c) {
-                    case 'D':
-			delay = atoi(optarg);
-			delay = delay * 1000000;
-			break;
-		   }
-
-
-        display = XtDisplay(top_level);
-
-        colour_shell = XtCreateApplicationShell("colour_frame",
-                        topLevelShellWidgetClass, NULL, 0);
-
-        colour_box = XtCreateManagedWidget("colour_box", boxWidgetClass,
-                                                colour_shell, NULL, 0);
-
-
-        colour_canvas = XtCreateManagedWidget("", labelWidgetClass,
-                                        colour_box, args, XtNumber(args));
-
-
-        /*XtAddEventHandler(colour_canvas, ExposureMask, False,
-	expose_event, 0);*/
-
-        XtRealizeWidget(colour_shell);
-
-	XSynchronize(display, True);
-
-	tqmask = GCBackground| GCForeground|  GCFunction;
-
-        values.function = GXcopy;
-        values.background = 0;
-        values.foreground = 1;
-
-
-        gc = XtGetGC(colour_canvas, tqmask, &values);
-
-	
-
-	fprintf(stderr,"Read files ...");
-	for (i=0; i < FRAME_LIMIT; i++) {
-		sprintf(pix_file,"pixmap.%d",i);
-		if ((XReadBitmapFile(display, XtWindow(colour_shell), pix_file,
-			&width, &height, &colour_pm[i], &ret, &ret)) != 
-			BitmapSuccess)
-		perror("bad bitmap");
-	}
-	fprintf(stderr,"done.\nBegin Animation\n");
-
-
-	for (;;) {
-		 for (i=0; i < FRAME_LIMIT; i++) {
-			XCopyPlane(display, colour_pm[i], 
-				XtWindow(colour_canvas),gc,
-				0, 0, 300, 300, 0, 0, 1);
-			fprintf(stderr,"pre sleep\n");
-			usleep(delay);
-		}
-		
-
-           } /* End for loop */
-}xk
-
diff --git a/krita/colorspaces/wetsticky/ws/before.jpg b/krita/colorspaces/wetsticky/ws/before.jpg
deleted file mode 100644
index fc26b9898..000000000
Binary files a/krita/colorspaces/wetsticky/ws/before.jpg and /dev/null differ
diff --git a/krita/colorspaces/wetsticky/ws/canvas.c b/krita/colorspaces/wetsticky/ws/canvas.c
deleted file mode 100644
index 77cfa17dc..000000000
--- a/krita/colorspaces/wetsticky/ws/canvas.c
+++ /dev/null
@@ -1,514 +0,0 @@
-/*
-	FILE:		canvas.c
-	PURPOSE:	Hides the canvas and provides its access and 
-			manipuation routines.
-	AUTHOR:		Kevin Waite 
-	VERSION:	1.00  (10-May-91)
-
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-Wet and Sticky is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Wet and Sticky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wet and Sticky; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 
-
-*/
-
-#include "constants.h"
-#include "types.h"
-#include "canvas.h"
-#include <stdio.h>
-
-/*  Declare the canvas data structure local to this module.  It can
-    only be accessed via routines given in the header file for this module.  
-    The (0,0) location for the canvas is at the top-left.  */
-
-CELL canvas[CANVAS_WIDTH][CANVAS_HEIGHT];
-
-/*  This module maintains a list of the addresses of cells that have
-    been modified since the last redraw and therefore need updating.
-    Points are added to this list by the need_to_tqrepaint() routine
-    and are removed by the next_cell_for_tqrepaint() function.  The
-    pointer to the current tail of the list is updated by side-effect. */
-
-static POINT need_tqrepainting[REDRAW_LIMIT];
-static int   next_free = 0;
-static int   next_to_tqrepaint = 0;
-
-/* *********************************************************************** */
-
-int number_of_tqrepaints_needed()
-/*  Returns the number of cells that need to be tqrepainted. */
-
-{
-   return (next_free);
-}
-
-/* *********************************************************************** */
-
-void need_to_tqrepaint(point)
-/*  The cell at this location needs to be redrawn since it has
-    been altered.   Scan the list to see if it is already
-    scheduled for a tqrepainting operation and only add it if
-    it is not there.   */
-
-POINT point;
-
-{
-   int k;
-
-
-   /*  If the list is already full then simply ignore the tqrepaint
-       request - it will get done eventually anyway.  */
-
-   if (next_free == REDRAW_LIMIT) return;
-
-   /* Check whether this point is already on the list. */
-
-   for (k=0; k < next_free; k++) {
-      if ((need_tqrepainting[k].x == point.x) &&
-          (need_tqrepainting[k].y == point.y)) break;
-   }
-
-   if (k < next_free) return; /* Already in the list. */
-
-   /*  Add this new cell address to the end of the list. */
-
-   need_tqrepainting[next_free].x = point.x;
-   need_tqrepainting[next_free].y = point.y;
-   next_free++;
-}
-
-/* *********************************************************************** */
-
-void next_cell_for_tqrepaint(cell, locus)
-/*  This routine returns the next cell to be tqrepainted, together with its
-    location on the canvas.  This is determined by taking the next point 
-    from the need_tqrepainting list and accessing its cell.  If the list is 
-    empty then return NIL. 
-    Note that the tqrepainting operation will clear out the list before
-    any other new positions are added.  */ 
-
-   CELL_PTR *cell;
-   POINT_PTR locus;
-
-{
-   if (next_to_tqrepaint >= next_free) {
-      next_to_tqrepaint = next_free = 0;
-      *(cell) = NIL;
-      return;
-   }
-
-   *(cell) = get_cell(need_tqrepainting[next_to_tqrepaint]);
-   locus->x = need_tqrepainting[next_to_tqrepaint].x;
-   locus->y = need_tqrepainting[next_to_tqrepaint].y;
-   next_to_tqrepaint++;
-}
-
-/* *********************************************************************** */
-
-void next_cell_point (address)
-/*  Sets the POINT giving the coordinate location of the next
-    cell on the canvas to be visited.  There is an even probability
-    of each cell being visited.  */
-
-POINT_PTR address;
-{
-   extern long random();
-
-   address->x = random() % CANVAS_WIDTH;
-   address->y = random() % CANVAS_HEIGHT;
-}
-
-
-/* *********************************************************************** */
-
-CELL_PTR get_cell (point)
-/*  This function returns a pointer to the cell at the
-    given address on the canvas.  */
-
-POINT point;
-
-{
-   return (&canvas[point.x][point.y]);
-}
-
-/* *********************************************************************** */
-
-DIRECTION anti_clockwise_from (arrow)
-/*  Returns the direction found going anti-clockwise from the
-    given direction.  */
-
-DIRECTION arrow;
-
-{
-   switch (arrow) {
-  
-      case NORTH:  return(WEST);
-      case EAST:   return(NORTH);
-      case SOUTH:  return(EAST);
-      case WEST:   ;
-
-   }
-   return(SOUTH);
-}
-
-/* *********************************************************************** */
-
-DIRECTION clockwise_from (arrow)
-/*  Returns the direction found going clockwise from the
-    given direction.  */
-
-DIRECTION arrow;
-
-{
-   switch (arrow) {
-  
-      case NORTH:  return(EAST);
-      case EAST:   return(SOUTH);
-      case SOUTH:  return(WEST);
-      case WEST:   ;
-
-   }
-   return(NORTH);
-}
-
-/* *********************************************************************** */
-
-BOOLEAN neighbour (aPoint, direction, bPoint)
-/*  Set bPoint to the coordinate of the point that can
-    be found by going one place in the given direction 
-    from aPoint.  The direction can be NORTH, EAST, WEST
-    or SOUTH.  If bPoint will be off the canvas then the
-    function returns FALSE otherwise TRUE.  */
-
-POINT     aPoint;
-POINT_PTR bPoint;
-DIRECTION direction;
-
-{
-    int x, y;
-
-    switch (direction) {
-
-       case NORTH:  x = 0; y = -1; break;
-       case EAST:   x = 1; y = 0;  break;
-       case SOUTH:  x = 0; y = 1;  break;
-       case WEST:   x = -1; y = 0; break;
-    }
-
-    bPoint->x = aPoint.x + x;
-    bPoint->y = aPoint.y + y;
-
-    if ((bPoint->x >= CANVAS_WIDTH) || (bPoint->x < 0) ||
-       (bPoint->y >= CANVAS_HEIGHT) || (bPoint->y < 0)) return(FALSE);
-
-    return(TRUE);
-}
-
-/* *********************************************************************** */
-
-void initialise_paint (paint)
-/*  Set this paint to be a dry, unmixing white. */
-
-PAINT_PTR paint;
-
-{
-   paint->colour.hue = 255;
-   paint->colour.saturation = 0.0;
-   paint->colour.lightness = 1.0;
-   paint->liquid_content = 0;
-   paint->drying_rate = 0;
-   paint->miscibility = 0;
-}
-
-/* *********************************************************************** */
-
-void initialise_cell(cell)
-/*  Reset the given cell to a default value.  */
-
-CELL_PTR cell;
-
-{
-   initialise_paint (&cell->contents);
-
-   cell->volume = UNFILLED;  /* Indicates that no paint has yet been applied.  
-*/
-   cell->absorbancy = 10;
-   cell->gravity.direction = SOUTH;
-   cell->gravity.strength = DEFAULT_GRAVITY_STRENGTH;
-}
-
-
-/* *********************************************************************** */
-
-void split_gravity()
-/*  This routine is for test purposes only.  It causes the right
-    half of the canvas to have gravity going NORTH with the left
-    half having gravity going SOUTH.   */
-
-{
-   POINT p;
-   CELL_PTR cell;
-
-   /*for (p.x=CANVAS_WIDTH/2; p.x < CANVAS_WIDTH; p.x++) {*/
-   for (p.x=165; p.x < CANVAS_WIDTH; p.x++) {
-      for (p.y=0; p.y < CANVAS_HEIGHT; p.y++) {
-	 cell = get_cell (p);
-         cell->gravity.direction = NORTH;
-      }
-   }
-}
-
-/* *********************************************************************** */
-
-void initialise_canvas()
-/*  Before it can be used the canvas needs to be initialised to 
-    a default state.  This involves setting each of the cells to
-    have no paint and for gravity to be uniformly down.  Each cell
-    has the default absorbancy value.  */
-
-{
-   POINT p;
-   CELL_PTR cell;
-
-   for (p.x=0; p.x < CANVAS_WIDTH; p.x++) {
-      for (p.y=0; p.y < CANVAS_HEIGHT; p.y++) {
-	 cell = get_cell (p);
-         initialise_cell (cell);
-      }
-   }
-}
-
-/* *********************************************************************** */
-
-void print_cell_attributes(cell)
-CELL_PTR cell;
-{
-   printf("Volume         = %d\n", cell->volume);
-
-   printf("Liquid content = %d%%\n", cell->contents.liquid_content);
-   printf("Drying rate    = %d%%\n", cell->contents.drying_rate);
-   printf("Miscibility    = %d%%\n\n", cell->contents.miscibility);
-
-   printf("Saturation = %2f\n", cell->contents.colour.saturation);
-   printf("Lightness  = %2f\n", cell->contents.colour.lightness);
-   printf("Hue        = %d\n", cell->contents.colour.hue);
-   printf ("------------------------------\n\n");
-}
-
-/* *********************************************************************** */
-
-void blob_cell_alpha (cell)
-CELL_PTR cell;
-
-{
-   cell->contents.liquid_content = 100;
-   cell->contents.drying_rate = 10;
-   cell->contents.miscibility = 80;
-   
-   cell->contents.colour.hue = 20;
-   cell->contents.colour.saturation = 1.0;
-   cell->contents.colour.lightness = 0.0;
-
-   cell->volume = 50;
-
-}
-
-/* *********************************************************************** */
-
-void blob_cell_beta (cell)
-CELL_PTR cell;
-
-{
-   cell->contents.liquid_content = 80;
-   cell->contents.drying_rate = 20;
-   cell->contents.miscibility = 90;
-   
-   cell->contents.colour.hue = 70;
-   cell->contents.colour.saturation = 1.0;
-   cell->contents.colour.lightness = 0.7;
-
-   cell->volume = 30;
-
-}
-/* *********************************************************************** */
-
-void blob_cell_gamma (cell)
-CELL_PTR cell;
-
-{
-   cell->contents.liquid_content = 80;
-   cell->contents.drying_rate = 40;
-   cell->contents.miscibility = 80;
-   
-   cell->contents.colour.hue = 100;
-   cell->contents.colour.saturation = 0.5;
-   cell->contents.colour.lightness = 0.4;
-
-   cell->volume = 50;
-
-}
-
-/* *********************************************************************** */
-
-void old_blob(width)
-/* This routine puts a square blob of various paints
-   of the given side length centred on the canvas.
-   This is used for test purposes.  */
-
-int width;
-
-{
-   int count, lump, startx, starty, x, y;
-
-   width = (width > CANVAS_WIDTH) ? CANVAS_WIDTH : width;
-   width = (width > CANVAS_HEIGHT) ? CANVAS_HEIGHT : width;
-
-   printf("This run used a square blob of side %d pixels\n", width);
-   printf ("centred on the canvas.  The blob was split into three equal\n");
-   printf ("vertical strips with the following paint attributes:\n\n");
-
-   startx = (CANVAS_WIDTH - width) / 2;
-   starty = (CANVAS_HEIGHT - width) / 2;
-   lump = width / 3;
-
-   count=0;
-   for (x = startx; x < startx + width; x++) {
-      for (y = starty; y < starty + width; y++) {
-         switch (count / lump) {
-    
-             case 0:  blob_cell_alpha (&canvas[x][y]);  break;
-             case 1:  blob_cell_beta (&canvas[x][y]);   break;
-             default: blob_cell_gamma (&canvas[x][y]);  break;
-
-         }
-      }
-      count++;
-   }
-   split_gravity();
-
-   print_cell_attributes (&canvas[startx][starty]);
-   print_cell_attributes (&canvas[startx + lump][starty]);
-   print_cell_attributes (&canvas[startx + (2*lump)][starty]);
-}
-
-gravity_set(x,y,x1,y1,attr)
-int x;
-int y;
-int x1;
-int y1;
-int attr;
-{
-	/* set the canavs absorbancy and gravity to various test values
-		in the region (x,y),(x1,y1)
-	*/
-
-	int i,j;
-
-	for (i=x; i < x1; i++ )
-            for (j=y; j < y1; j++) {
-		canvas[i][j].absorbancy = 10; /* default 10 */
-		   canvas[i][j].gravity.direction = SOUTH;
-		   canvas[i][j].gravity.strength =  DEFAULT_GRAVITY_STRENGTH;
-					/*DEFAULT_GRAVITY_STRENGTH*/
-	    }
-}
-
-blob_set(x, y, x1, y1, attr)
-int x;
-int y;
-int x1;
-int y1;
-int attr;
-{
-	/* Set a blob of paint in the rectangle (x,y),(x1,y1) with
-		the attribute, attr (can be volume, liquidity or dryness*/
-	int i,j;
-	float colour;
-
-	colour = (3.6 * 122);
-	colour = 64;
-	fprintf(stderr, "attribute value %d %d\n", attr, (int)colour);
-
-
-	for (i=x; i < x1; i++ )
-	    for (j=y; j < y1; j++) {
-		canvas[i][j].contents.liquid_content = 80;
-		   canvas[i][j].contents.drying_rate = 50;
-		   canvas[i][j].contents.miscibility = 80;
-
-		   canvas[i][j].contents.colour.hue = (int)colour;
-		   canvas[i][j].contents.colour.saturation = 1.0;
-		   canvas[i][j].contents.colour.lightness = 0.7;
-
-		   canvas[i][j].volume = attr;
-	}
-		
-
-}
-
-void blob(type)
-int type;
-{
-
-	/* paint nine test blobs on the canvas */
-
-	/* X Example 1 All attributes at 80% except vol 0 - 100%*/
-
-	/* X Example 2 All attributes at 80% except liq 0 - 100% */
-
-        /* X Example 3 All attributes at 80% except dry 0 - 100% */
-
-	/* X Example 4 All attributes at 80% except absorp 100 - 0% */
-
-	/* X Example 5 All attributes at 80% except gravity 0 - 100% */
-
-	/* X Example 6 All attributes at 80% except direction N,S,E & W */
-
-	blob_set(20, 20, 80, 80, 0);
-	gravity_set(0, 0, 100, 100, SOUTH);
-
-	blob_set(120,20, 180, 80, 22);
-	gravity_set(150, 0, 300, 150, EAST);
-	
-	blob_set(220,20,280,80,33);
-	gravity_set(0, 150, 150, 300, NORTH);
-
-	blob_set(20,120,80,180,44);
-	gravity_set(150, 150, 300, 300, WEST);
-	
-	blob_set(120,120,180,180,55);
-	gravity_set(100, 100, 200, 200, 55);
-
-	blob_set(220,120, 280,180, 66);
-	gravity_set(200, 100, 300, 200, 66);
-	
-	blob_set(20,220,80,280,77);
-	gravity_set(0, 200, 100, 300, 77);
-
-	blob_set(120,220,180,280,88);
-	gravity_set(100, 200, 200, 300, 88);
-
-	blob_set(220,220,280,280, 100);
-	gravity_set(200, 200, 300, 300, 100);
-	
-}
-
-void
-load_file(filename, width, height)
-char *filename;
-int *width;
-int *height;
-{
-
-	/* Load in a file using the load_ppm_format() function
-	 This loads in a file in Portable Pixmap format 
-	*/
-
-	load_ppm_format(filename, canvas, width, height);
-}	
diff --git a/krita/colorspaces/wetsticky/ws/canvas.h b/krita/colorspaces/wetsticky/ws/canvas.h
deleted file mode 100644
index c2f2bcbf6..000000000
--- a/krita/colorspaces/wetsticky/ws/canvas.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-    FILE:        canvas.h
-    PURPOSE:    Defines the public routines for manipulating the canvas.
-    AUTHOR:        Kevin Waite 
-    VERSION:    1.00  (10-May-91)
-
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-Wet and Sticky is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Wet and Sticky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wet and Sticky; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA 
-
-*/
-
-
-extern int number_of_tqrepaints_needed();
-/*  Returns the number of cells needing to tqrepainted.  */
-
-extern void need_to_tqrepaint (/* POINT */);
-/*  Requests that the cell at the given point be tqrepainted
-    at the next update as it has been modified.  */
-
-extern void next_cell_for_tqrepaint (/* *CELL_PTR, POINT_PTR  */);
-/*  Returns a pointer to a cell that needs to be updated as well
-    as the location of that cell on the canvas.   If there are
-    no more cells to be redrawn then the pointer will be NIL.  */
-
-extern void next_cell_point (/* POINT_PTR */);
-/*  Sets the POINT giving the coordinate location of the next
-    cell on the canvas to be visited.  There is an even probability
-    of each cell being visited.  */
-
-extern CELL_PTR get_cell (/* POINT */);
-/*  This function returns a pointer to the cell at the
-    given address on the canvas.  */
-
-extern DIRECTION anti_clockwise_from (/*  DIRECTION  */);
-/*  Returns the direction found going clockwise from the
-    given direction.  */ 
-
-extern DIRECTION clockwise_from (/*  DIRECTION  */);
-/*  Returns the direction found going clockwise from the
-    given direction.  */ 
-
-extern BOOLEAN neighbour (/* POINT, DIRECTION, POINT_PTR */);
-/*  Set bPoint to the coordinate of the point that can
-    be found by going one place in the given direction 
-    from aPoint.  The direction can be NORTH, EAST, WEST
-    or SOUTH.  If bPoint will be off the canvas then the
-    function returns FALSE otherwise TRUE.  */
-
-extern void initialise_canvas();
-/*  Before it can be used the canvas needs to be initialised to 
-    a default state.  This involves setting each of the cells to
-    have no paint and for gravity to be uniformly down.  Each cell
-    has the default absorbancy value.  */
-
-extern void blob( /* int */);
-/* This routine puts a square blob of black paint
-   of the given side length centred on the canvas.
-   This is used for test purposes.  */
-
-extern void load_file(/*char *, int *, int * */);
-/* Load a file from a portable pixmap into the canvas */
diff --git a/krita/colorspaces/wetsticky/ws/cmap.c b/krita/colorspaces/wetsticky/ws/cmap.c
deleted file mode 100644
index 0f11eaf7a..000000000
--- a/krita/colorspaces/wetsticky/ws/cmap.c
+++ /dev/null
@@ -1,681 +0,0 @@
-/*
-        FILE:           x_interface.c
-        PURPOSE:        Creation and access to an X windows interface
-			to wet+sticky using Athena Widgets
-        AUTHOR:         David England
-        VERSION:        1.00  (13-May-91)
-
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-Wet and Sticky is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Wet and Sticky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wet and Sticky; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 
-
-*/
-
-#include <X11/Xos.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/Intrinsic.h>
-
-#include <X11/cursorfont.h>
-#include <X11/StringDefs.h>
-
-#include <X11/Shell.h>
-#include <X11/Xaw/Box.h>
-#include <X11/Xaw/Label.h>
-#include <stdio.h>
-
-#include "constants.h"
-#include "types.h"
-#include "engine.h"
-#include "canvas.h"
-
-/* Window Heirarchy - 
-	Three shell widgets, one for colour output, two for attributes output
-	plus a back_up pixmap for redrawing
-*/
-
-static Widget top_level;
-static Widget 	    colour_shell;
-static Widget            colour_box;
-static Widget		        colour_canvas;
-static Pixmap		        colour_pm;
-
-static Widget      volume_shell;
-static Widget            volume_box;
-static Widget                  volume_canvas;
-static Pixmap		        volume_pm;
-
-static Widget      dryness_shell;
-static Widget            dryness_box;
-static Widget                  dryness_canvas;
-static Pixmap		        dryness_pm;
-
-static GC gc;
-static GC tmp_gc;
-static long tqmask;
-static XGCValues values;
-
-static Colormap cmap;
-static XColor colours[256];
-void stroke();
-void stroke_motion();
-
-Display *display;
-int screen;
-Screen          *screen_ptr;
-Window root;
-
-static int count=0;
-static int frame_count=0;
-char pix_file[64];
-
-void StartWindow();
-void StartUpWindows();
-
-static XtEventHandler
-expose_event(w, event)
-Widget          w;
-XEvent          *event;
-{
-/* Re-display the colour window if an exposure event is received */
-int width, height;
-
-	width = height = 300;
-
-        XCopyArea(XtDisplay(colour_canvas), colour_pm, 
-		XtWindow(colour_canvas), gc, 0, 0, width, height, 0,0);
-
-}
-
-
-static void
-expose_volume(w, event)
-Widget          w;
-XEvent          *event;
-{
-/* Re-display the volume window if an exposure event is received */
-int width, height;
-
-	width = height = 300;
-
-      XCopyArea(XtDisplay(volume_canvas), volume_pm,
-	      XtWindow(volume_canvas), gc, 0, 0, width, height, 0,0);
-      
-
-}
-
-static void
-expose_dryness(w, event)
-Widget          w;
-XEvent          *event;
-{
-/* Re-display the dryness window if an exposure event is received */
-int width, height;
-
-        width = height = 300;
-
-      XCopyArea(XtDisplay(dryness_canvas), dryness_pm,
-              XtWindow(dryness_canvas), gc, 0, 0, width, height, 0,0);
-
-
-}
-
-int 
-GetHueValue(red, green, blue)
-int red;
-int green;
-int blue;
-{
-	XColor colour;
-
-	colour.red = red * 257;
-	colour.green = green * 257;
-	colour.blue = blue * 257;
-	colour.flags = DoRed | DoGreen | DoBlue;
-
-	if (XAllocColor(display, cmap, &colour) == 0)
-		fprintf(stderr,"colour allocation failed\n");
-
-	return (colour.pixel);	
-}
-
-
-void
-DrawPoint(x,y,colour)
-int x;
-int y;
-int colour;
-/* Draw a point on the window and the back-up Pixmap */
-{
-	XSetForeground(XtDisplay(top_level), gc, colours[colour].pixel);
-
-	XDrawPoint(XtDisplay(top_level), XtWindow(colour_canvas), gc, x, y);
-	XDrawPoint(XtDisplay(top_level), colour_pm, gc, x, y);
-}
-
-int
-DrawVolumePoint(x,y,attr)
-int x;
-int y;
-int attr;
-/* Draw a point on the window and the back-up Pixmap */
-{
-	/* later - use the range of the volume to affect the colour
-		value
-	*/
-
-	if (XtWindow(volume_canvas) == NULL)
-		return (-1);
-
-	XSetForeground(XtDisplay(top_level), gc, colours[attr].pixel);
-
-	XDrawPoint(XtDisplay(top_level), XtWindow(volume_canvas), gc, x, y);
-	XDrawPoint(XtDisplay(top_level), volume_pm, gc, x, y);
-
-	return(0);
-}
-
-int
-DrawDrynessPoint(x,y,attr)
-int x;
-int y;
-int attr;
-/* Draw a point on the window and the back-up Pixmap */
-{
-        /* later - use the range of the dryness to affect the colour
-                value
-        */
-
-        if (XtWindow(dryness_canvas) == NULL)
-                return (-1);
-
-        XSetForeground(XtDisplay(top_level), gc, colours[attr].pixel);
-
-        XDrawPoint(XtDisplay(top_level), XtWindow(dryness_canvas), gc, x, y);
-        XDrawPoint(XtDisplay(top_level), dryness_pm, gc, x, y);
-
-        return(0);
-}
-
-void
-ClearWindow()
-{
-	XClearWindow(XtDisplay(top_level), XtWindow(colour_canvas));
-}
-
-static void
-CleanWindow(win)
-Drawable win;
-/* Fill a window with a solid, white rectangle */
-{
-XGCValues values;
-long tqmask;
-
-	values.background = colours[0].pixel;
-        values.foreground = colours[255].pixel;;
-        values.fill_style = FillSolid;
-        values.function   = GXclear;
-
-
-         tqmask = GCBackground| GCForeground| GCFillStyle | GCFunction;
-
-         tmp_gc = XtGetGC(top_level,  tqmask, &values);
-
-        XFillRectangle(XtDisplay(top_level), win, tmp_gc, 0,  0, 300, 300);
-
-}
-
-void SetupCmap()
-{
-int i;
-
-        for (i=0;i<256;i++) {
-                colours[i].red = i*257;
-                colours[i].flags = DoRed | DoBlue | DoGreen;
-	}
-
-     /*   for (i=0;i<=127;i++)
-                colours[i].green = i*2*257;
-
-        for (i=128;i>0;i--)
-                colours[255-i].green = (i-1)*2*257;*/
-
-       for (i=0;i<64;i++)
-                colours[i].green = i*4*257;
-
-        for (i=64;i<128;i++)
-                colours[i].green = 65536-i*4*257;
- 
-         for (i=128;i<192;i++)
-                colours[i].green = (i-128)*2*257;
- 
-         for (i=192;i<255;i++)
-                colours[i].green = 65536-(i-128)*2*257;
-
-
-        for (i=0;i<256;i++)
-                colours[i].blue = 65536 - i*257;
-
-	colours[0].red = 65535;
-	colours[0].green = 65535;
-	colours[0].blue = 65535;
-}
-
-void
-SetupGreyMap()
-{
-int i;
-
-	 for (i=0;i<256;i++) {
-                colours[i].red = i*257;
-                colours[255 - i].flags = DoRed | DoBlue | DoGreen;
-	}
-
-
-         for (i=0;i<256;i++)
-                colours[i].green =  i*257;
-
-         for (i=0;i<256;i++)
-                colours[i].blue =  i*257;
-
-	colours[255].red = 255*257;
-	colours[255].green = 255*257;
-	colours[255].blue = 255*257;
-
-}
-
-
-main(argc, argv)
-int argc;
-char **argv;
-/* Create colour window heirarchy and add event handlers */
-{
-	
-    static Arg args[]={
-        {XtNwidth, (XtArgVal) 0},
-        {XtNheight, (XtArgVal)0} };	
-
-int width;
-int height;
-	int i;
-
-	
-	width = 300;
-	height = 300;
-
-	args[0].value = (XtArgVal)width;
-
-	args[1].value = (XtArgVal)height;
-
-	top_level =  XtInitialize("wet+sticky", "Wet+Sticky", NULL,
-                                                 0, &argc, argv);
-
-
-	display = XtDisplay(top_level);
-        screen = DefaultScreen(display);
-	screen_ptr = ScreenOfDisplay(display, DefaultScreen(display));
-
-	root = RootWindow(display, screen);
-
-	colour_shell = XtCreateApplicationShell("colour_frame", 
-			topLevelShellWidgetClass, NULL, 0);
-
-
-
-        colour_box = XtCreateManagedWidget("colour_box", boxWidgetClass,
-                                                colour_shell, NULL, 0);
-
-
-        colour_canvas = XtCreateManagedWidget("", labelWidgetClass,
-                                        colour_box, args, XtNumber(args));
-
-
-	XtAddEventHandler(colour_canvas, ExposureMask, False, expose_event, 0);
-
-	XtAddEventHandler(colour_canvas, ButtonPressMask, False, stroke, 0);
-
-	XtAddEventHandler(colour_canvas, Button1MotionMask, 
-		False, stroke_motion, 0);
-
-	XtRealizeWidget(colour_shell);
-
-	cmap = XCreateColormap( display, XtWindow(colour_shell),
-                        XDefaultVisualOfScreen(screen_ptr), AllocAll);
-
-        for (i=0; i <= 255; i++)
-                colours[i].pixel = i;
-
-        XQueryColors(display, DefaultColormapOfScreen(screen_ptr),colours, 256);
-
-        /*SetupCmap();*/
-
-	SetupGreyMap();
-
-        XStoreColors(display, cmap, colours, 256);
-
-        i=0;
-        while( XAllocColorCells( display, DefaultColormapOfScreen(screen_ptr),
-                 True, NULL, 0, &colours[i].pixel, 1 ) ) {
-                        colours[i].pixel = i;
-                        i++;
-          }
-
-	XSetWindowColormap(display, XtWindow(colour_shell), cmap);
-
-        XInstallColormap(display, cmap);
-
-	tqmask = GCBackground| GCForeground|  GCFunction; 
-
-	values.function = GXcopy;
-	values.background = colours[0].pixel;
-	values.foreground = colours[255].pixel;
-
-
-	gc = XtGetGC(colour_canvas, tqmask, &values);
-
-	colour_pm = XCreatePixmap(XtDisplay(top_level), 
-			XtWindow(colour_shell), width, height,
-                            XDefaultDepth(XtDisplay(top_level), 0));
-
-	CleanWindow(colour_pm);
-
-	StartWindow (CANVAS_WIDTH, CANVAS_HEIGHT);
-
-	StartUpWindows();
-}
-
-
-void StartWindow(width, height)
-int width;
-int height;
-/* Create Volume heirarchy and add event handlers */
-{
-	static Arg args[]={
-	{XtNwidth, (XtArgVal) 0},
-	{XtNheight, (XtArgVal)0} };
-
-	args[0].value = (XtArgVal)width;
-
-	args[1].value = (XtArgVal)height;
-
-	volume_shell = XtCreateApplicationShell("volume_frame",
-			topLevelShellWidgetClass, NULL, 0);
-
-	volume_box = XtCreateManagedWidget("volume_box", boxWidgetClass,
-				volume_shell, NULL, 0);
-											
-	volume_canvas = XtCreateManagedWidget("", labelWidgetClass,
-				volume_box, args, XtNumber(args));
-
-	XtAddEventHandler(volume_canvas, ExposureMask, False, 
-				expose_volume, 0);
-
-	XtRealizeWidget(volume_shell);
-
-	XSetWindowColormap(display, XtWindow(volume_shell), cmap);
-
-	volume_pm = XCreatePixmap(XtDisplay(top_level), 
-			XtWindow(colour_shell), width, height,
-                            XDefaultDepth(XtDisplay(top_level), 0));
-
-	CleanWindow(volume_pm);
-
-
-}
-
-void StartDrynessWindow(width, height)
-int width;
-int height;
-/* Create dryness heirarchy and add event handlers */
-{
-	static Arg args[]={
-	{XtNwidth, (XtArgVal) 0},
-	{XtNheight, (XtArgVal)0} };
-
-	args[0].value = (XtArgVal)width;
-
-	args[1].value = (XtArgVal)height;
-
-	dryness_shell = XtCreateApplicationShell("dryness_frame",
-			topLevelShellWidgetClass, NULL, 0);
-
-	dryness_box = XtCreateManagedWidget("dryness_box", boxWidgetClass,
-				dryness_shell, NULL, 0);
-											dryness_canvas 
-= XtCreateManagedWidget("", labelWidgetClass,
-				dryness_box, args, XtNumber(args));
-
-	XtAddEventHandler(dryness_canvas, ExposureMask, False, 
-				expose_dryness, 0);
-
-	XtRealizeWidget(dryness_shell);
-
-	XSetWindowColormap(display, XtWindow(dryness_shell), cmap);
-
-	dryness_pm = XCreatePixmap(XtDisplay(top_level), 
-			XtWindow(colour_shell), width, height,
-                            XDefaultDepth(XtDisplay(top_level), 0));
-
-	CleanWindow(dryness_pm);
-
-}
-
-static void
-draw_labels()
-{
-	XSetForeground(XtDisplay(colour_shell), gc, colours[1].pixel);
-
-	XDrawString(XtDisplay(colour_shell), XtWindow(colour_canvas), gc, 10, 10, 
-			"Colour", strlen("Colour"));
-	XDrawString(XtDisplay(colour_shell), colour_pm, gc, 10, 10, 
-			"Colour", strlen("Colour")); 
-
-	XSetForeground(XtDisplay(colour_shell), gc, colours[128].pixel);
-
-	XDrawString(XtDisplay(colour_shell), XtWindow(volume_canvas), gc, 10, 10, 
-			"Volume", strlen("Volume")); 
-	XDrawString(XtDisplay(colour_shell), volume_pm, gc, 10, 10, 
-			"Volume", strlen("Volume"));
-
-        XSetForeground(XtDisplay(colour_shell), gc, colours[255].pixel);
-
-	XDrawString(XtDisplay(colour_shell), XtWindow(dryness_canvas), gc, 10, 10, 
-			"Bump Map", strlen("Bump Map"));
-	XDrawString(XtDisplay(colour_shell), dryness_pm, gc, 10, 10, 
-			"Bump Map", strlen("Bump Map"));
-}
-
-void paint_cell(cell, x, y)
-CELL_PTR cell;
-int x, y;
-
-{
-    int colour, volColour, dryness;
-    POINT p;
-
-    p.x = x;
-    p.y = y;
-
-    /*  The current display simply maps hue onto the indices of the colour
-        table.  This involves some scaling since hues are in the range [0,360)
-        with the colour table being [0,256).  */
-
-    colour = (int) (cell->contents.colour.hue * 
-			((float) MAX_COLOUR_INDEX / 360.0));
-
-    /*DrawPoint(x,y,colour);   */
-
-    /*  volColour is an index into the colour table in the range [0,255].
-        It is used to give a false colour image of the canvas's volume.  */
-
-    /*if (x < SCALE_WIDTH) return;    Don't draw over colour scale.  */
-
-    volColour = MIN(cell->volume * 2, 255);
-    volColour = MAX(volColour, 0);        
-				/* Make unfilled cells have a zero vol.  */
-
-    /*DrawVolumePoint(x,y,volColour);*/
-
-    /*  Dryness will be in the range [0,255].  */
-    dryness = (cell->contents.liquid_content * 255) / 100;
-
-    /*DrawDrynessPoint(x,y,dryness);*/
-}
-
-
-
-void draw_false_colour_scale()
-/*  This routine places a scale along the top of the volume window
-    showing the colours being used.   Low is at the left edge. 
-    The colour palette has indices 0..255.    */
-{
-    int x, y;
-
-    /*for (x=0; x < 255; x++) 
-       for (y=0; y < SCALE_WIDTH; y++) DrawVolumePoint(x,y,MIN(x, 255));*/
-}
-
-
-void draw_full_canvas()
-{
-   int x, y;
-   CELL_PTR cell;
-   POINT p;
- 
-  if (DEBUG) {
-     printf ("Starting to paint full canvas...");
-     fflush(stdout);
-   }
-
-   for (x=0; x < CANVAS_WIDTH; x++) {
-     for (y=0; y < CANVAS_HEIGHT; y++) {
-        p.x = x;
-        p.y = y;
-        /*cell = get_cell(p);*/
-        paint_cell(cell, x, y);
-     }
-  }
-  draw_false_colour_scale();
-  if (DEBUG) printf ("done.\n");
-}
-
-void
-bump_map()
-{
-	POINT p;
-	CELL_PTR cell;
-	register int x, y;
-	register int colour;
-
-
-   for (x=0; x < CANVAS_WIDTH; x++) {
-     for (y=0; y < CANVAS_HEIGHT; y++) {
-        p.x = x;
-        p.y = y;
-        /*cell = get_cell(p);*/
-	/*colour = (int) new_intensity_value(p);*/
-
-/*	colour = (int) (cell->contents.colour.hue *
-                        ((float) MAX_COLOUR_INDEX / 360.0));*/
-	DrawDrynessPoint(x,y,colour);
-     }
-  }
-
-}
-
-
-void evolve_paint()
-{
-      
-}
-
-
-
-void StartUpWindows()
-{
-/* Start the X windows event loop and paint processing */
-XEvent event;
-
-
-
-	for (;;) {
-	   if (XtPending()) {
-		XtNextEvent(&event);
-		XtDispatchEvent(&event);
-	   }
-	   else {
-		/* Evolve paint and re-display*/
-		evolve_paint();
-	        }
-		
-	   } /* End for loop */
-
-
-}
-
-void
-stroke(w, client_data, event)
-Widget w;
-caddr_t client_data;
-XEvent *event;
-{
-/*	brush_stroke(event->xbutton.x, event->xbutton.y);*/
-
-
-	/*if ((XEvent *)event != (XEvent *)NULL)
-	else
-		printf("Null event\n"); */
-
-/*	DrawPoint(event->xbutton.x, event->xbutton.y, 128);
-        DrawVolumePoint(event->xbutton.x, event->xbutton.y, 128);
-        DrawDrynessPoint(event->xbutton.x, event->xbutton.y, 128);*/
-
-	
-        XSetForeground(XtDisplay(top_level), gc, colours[128].pixel);
-
-        XFillRectangle(XtDisplay(top_level), XtWindow(colour_canvas), gc,
-			 event->xmotion.x, event->xmotion.y ,1, 1);
-
-        XFillRectangle(XtDisplay(top_level), XtWindow(volume_canvas), gc,
-			 event->xmotion.x, event->xmotion.y ,1, 1);
-
-        /*XFillRectangle(XtDisplay(top_level), XtWindow(dryness_canvas), gc,
-			 event->xmotion.x, event->xmotion.y ,1, 1);*/
-
-	/*brush_stroke(event->xbutton.x, event->xbutton.y);*/
-}
-
-
-void
-stroke_motion(w, client_data, event)
-Widget w;
-caddr_t client_data;
-XEvent *event;
-{
-
-
-        /*if ((XEvent *)event != (XEvent *)NULL)
-        else
-                printf("Null event\n"); */
-
-
-        XSetForeground(XtDisplay(top_level), gc, colours[128].pixel);
-
-        XFillRectangle(XtDisplay(top_level), XtWindow(colour_canvas), gc,
-			 event->xmotion.x, event->xmotion.y ,1, 1);
-        XFillRectangle(XtDisplay(top_level), XtWindow(volume_canvas), gc,
-			 event->xmotion.x, event->xmotion.y ,1, 1);
-
-        XFillRectangle(XtDisplay(top_level), XtWindow(dryness_canvas), gc,
-			 event->xmotion.x, event->xmotion.y ,1, 1);
-
-      /*brush_stroke(event->xbutton.x, event->xbutton.y);*/
-}
-
diff --git a/krita/colorspaces/wetsticky/ws/constants.h b/krita/colorspaces/wetsticky/ws/constants.h
deleted file mode 100644
index fa72bc925..000000000
--- a/krita/colorspaces/wetsticky/ws/constants.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-    FILE:        constants.h
-    PURPOSE:    Constains all the #DEFINES for Wet&Sticky.
-    AUTHORS:    Kevin Waite and David England
-    VERSION:    1.00  (10-May-91)
-
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-Wet and Sticky is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Wet and Sticky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wet and Sticky; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA 
-
-*/
-
-/*  Some utility constants.  */
-
-#define  TRUE    1
-#define  FALSE   0
-#define  YES     1
-#define  NO      0
-#define  NIL     0
-#define  DEBUG   1
-#define  VERSION "1.0" 
-
-/*  Define the constants for colours in the HLS space.  */
-
-#define  UNFILLED           -1
-#define  MAX_COLOUR_INDEX  255
-
-
-/*  Define the dimensions of the intelligent canvas. */
-
-#define  CANVAS_WIDTH  300
-#define  CANVAS_HEIGHT 300
-#define  SCALE_WIDTH    30
-
-
-/*  Define constants that control the evolution of the paint. */
-
-#define  STEP_LIMIT    200
-#define  REDRAW_LIMIT  500
-
-
-/*  Define some constants used in testing the system. */
-
-#define  DEFAULT_BLOB_SIZE (CANVAS_WIDTH / 3)
-#define  BLOB_NAME         "-blob"
-
-
-/*  Constants used in modelling gravity.  */
-
-#define NORTH 0
-#define EAST  1
-#define SOUTH 2
-#define WEST  3
-
-#define DEFAULT_GRAVITY_STRENGTH  10
-
-
-/*  Define some macros.  */
-
-#define MAX(A,B) ((A) > (B) ? (A) : (B))
-#define MIN(A,B) ((A) < (B) ? (A) : (B))
diff --git a/krita/colorspaces/wetsticky/ws/engine.c b/krita/colorspaces/wetsticky/ws/engine.c
deleted file mode 100644
index 2fb4917e3..000000000
--- a/krita/colorspaces/wetsticky/ws/engine.c
+++ /dev/null
@@ -1,802 +0,0 @@
-/*
-	FILE:		engine.c
-	PURPOSE:	Defines the routines for the Paint Engine.
-	AUTHOR:		Kevin Waite 
-	VERSION:	1.00  (10-May-91)
-
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-Wet and Sticky is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Wet and Sticky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wet and Sticky; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 
-
-*/
-
-#include "constants.h"
-#include "types.h"
-#include "canvas.h"
-#include <math.h>
-
-extern double HEIGHT_SCALE;
-
-/* *********************************************************************** */
-
-int random_percent()
-/*  This function returns a random number in the range [0,100].  */
-{
-   extern long random();
-
-   return (random() % 101);
-}
-
-/* *********************************************************************** */
-
-BOOLEAN allow_event_based_on(value)
-/*  The given value is a percentage.  Compare this value
-    with a randomly generated percentage and if it is larger
-    then allow the event to happen (i.e. return TRUE) other-
-    wise return FALSE.  */
-
-int value;
-
-{
-   if (value > random_percent()) return(TRUE);
-   return(FALSE);
-}
-
-/* *********************************************************************** */
-
-BOOLEAN age_paint(cell)
-/*  Make the paint in the given cell older, i.e. let
-    if dry out a bit if it isn't already dry.  This
-    function returns TRUE if the paint was already
-    dry or becomes so, and FALSE otherwise.  */
-
-CELL_PTR cell;
-
-{
-  if (cell->volume == 0) return(TRUE);
-  if (cell->contents.liquid_content == 0) return(TRUE);
-  if (allow_event_based_on(cell->contents.drying_rate) == TRUE) 
-     cell->contents.liquid_content--;
-
-  if (cell->contents.liquid_content == 0) return(TRUE);
-  return(FALSE);
-}
-
-/* *********************************************************************** */
-
-BOOLEAN similar_paint(aPaint, bPaint)
-/* Determine whether the two paints are similar.  It is
-   assumed that aPaint has come from the host cell (and
-   so it is its miscibility value that is used).  The
-   function returns TRUE if the paints are similar and
-   FALSE otherwise.   */
-
-PAINT aPaint, bPaint;
-
-{
-   int delta;
-
-   delta = abs(aPaint.liquid_content - bPaint.liquid_content);
-   if (delta <= aPaint.miscibility) return(TRUE);
-   return(FALSE);
-}
-
-/* *********************************************************************** */
-
-int surplus_paint(cell)
-/*  Returns the amount of paint held by this cell greater than its
-    absorbancy value.  This is the amount of paint that can flow.  */
-
-CELL_PTR cell;
-
-{
-   return (MAX(cell->volume - cell->absorbancy, 0));
-}
-
-/* *********************************************************************** */
-
-BOOLEAN has_surplus_paint(cell)
-/*  Does the given cell have excess paint, i.e. can paint flow out
-    of this cell.  Return TRUE if it can and FALSE otherwise.  */
-
-CELL_PTR cell;
-
-{
-   if (surplus_paint(cell) > 0) return(TRUE);
-   return(FALSE);
-}
-
-/* *********************************************************************** */
-
-void stop() {  /*  Used for breakpointing.  */ }
-
-void donate_paint(source, srcLocus, amount, dest, destLocus)
-/* The source cell is donating the specified volume of its paint
-   to the destination cell.  The destination cell must mix this 
-   new paint with its existing paint to yield a new paint.
-   This routine is also responsible for recording which cells
-   have been updated and so need tqrepainting.
-   
-   A special case is recognised where the destination has not yet
-   had any paint applied.  This causes the donated paint to become
-   to new contents of this cell.   
-
-*/
-
-CELL_PTR source, dest;
-POINT    srcLocus, destLocus;
-int      amount;
-
-{
-   float delta, ratio;
-   int   iDelta;
-
-   source->volume -= amount;
-
-   if (dest->volume == UNFILLED) {
-
-      /*  The donated paint is going into an unfilled cell.  
-          Copy the source's attributes into the destination.  */
-
-      dest->volume = amount;
-      dest->contents.colour.hue = source->contents.colour.hue;
-      dest->contents.colour.lightness = source->contents.colour.lightness;
-      dest->contents.colour.saturation = source->contents.colour.saturation;
-      dest->contents.liquid_content = source->contents.liquid_content;
-      dest->contents.miscibility = source->contents.miscibility;
-      dest->contents.drying_rate = source->contents.drying_rate;
-
-   } else {
-
-   /*  Need to mix the existing paint in the dest with this amount
-       of new paint from the source.  This is done using a linear
-       interpolation mechanism using the relative amounts of the
-       paint as the control.  */
-
-	if (dest->volume != 0)
-	      ratio = amount / (float)(dest->volume);
-   
-      iDelta = source->contents.colour.hue - dest->contents.colour.hue;
-      if (iDelta != 0) {
-         dest->contents.colour.hue += (int)(ratio * iDelta); 
-         if (dest->contents.colour.hue >= 360)
-            dest->contents.colour.hue -= 360; 
-      }
-
-      iDelta = source->contents.drying_rate - dest->contents.drying_rate;
-      dest->contents.drying_rate += (int)((int)ratio * iDelta);
-      dest->contents.drying_rate %= 101;
-
-      iDelta = source->contents.liquid_content - dest->contents.liquid_content;
-      dest->contents.liquid_content += (int)(ratio * iDelta);
-      dest->contents.liquid_content %= 101;
-
-      iDelta = source->contents.miscibility - dest -> contents.miscibility;
-      dest->contents.miscibility += (int)(ratio * iDelta);
-      dest->contents.miscibility %= 101;
-
-      delta = source -> contents.colour.saturation - dest -> contents.colour.saturation;
-      dest -> contents.colour.saturation += ratio * delta;
-
-      delta = source->contents.colour.lightness - dest->contents.colour.lightness;
-      dest->contents.colour.lightness += ratio * delta;
-
-      dest->volume += amount;   /* The new volume of paint in dest. */
-
-   }
-
-   need_to_tqrepaint(destLocus);
-}
-
-/* *********************************************************************** */
-
-void handle_surface_tension(cell, locus)
-/*  This routine handles the surface tension around the given cell.
-*/
-
-CELL_PTR cell;
-POINT    locus;
-
-{
-   DIRECTION direction[3];
-   POINT     loci[3];
-   CELL_PTR  buddy[3];
-   BOOLEAN   ok, similar[3];
-   int       weakCount, weak[3], count[3], excess, chosen, side, start, finish, 
-k, lowest;
-
-   if (has_surplus_paint(cell) == FALSE) return;
-
-   direction[0] = cell->gravity.direction;
-   direction[1] = clockwise_from(direction[0]);
-   direction[2] = anti_clockwise_from(direction[0]);
-
-   for (k=0; k < 3; k++) {
-      ok = neighbour(locus, direction[k], &loci[k]);
-      if (ok == TRUE) {
-         buddy[k] = get_cell(loci[k]);
-         count[k] = 0;
-      } else count[k] = -1;
-   }
-
-   for (k=0; k < 3; k++) 
-      similar[k] = (count[k] == -1) 
-                      ? FALSE 
-                      : similar_paint(cell->contents, buddy[k]->contents); 
-
-   for (k=0; k < 3; k++) {
-      if ((count[k] != -1) && (similar[k] == FALSE)) {
-         count[k] = 0;
-         start = MAX(k-1, 0);
-         finish = MIN(k+1, 2);
-         for (side=start; side <= finish; side++) 
-            if ((count[side] != -1) && (similar[side] == FALSE)) count[k]++;
-          
-      }
-   }
-
-   lowest = 4;
-   for (k=0; k < 3; k++) if (count[k] >= 0) lowest = MIN(count[k], lowest);
-
-   weakCount = 0;
-   for (k=0; k < 3; k++) if (count[k] == lowest) weak[weakCount++] = k;
-
-   /*  The weak array now holds weakCount indices of those sides that have
-       the lowest surface tension and therefore where any paint would flow over.
-       Now it is necessary to see whether paint will actually flow based on
-       a probability level using the liquidity and volume of the paint in the
-       cell as parameters.   Paint will flow over only one of the weakest sides
-       with the side chosen at random.    */
-
-   if (random_percent() > cell->contents.liquid_content) return;  /*  Too 
-viscous.  */
-
-   excess = surplus_paint(cell);
-   if (random_percent() > excess * 3) return;   
-   /*  The '3' in the previous statement is an empirically-derived multiplier.  
-*/
-
-   /*  The paint will flow.  Pick one of the weakest sides at random.  */
-
-   chosen = weak[random_percent() % weakCount];
-   donate_paint(cell, locus, (excess / 2), buddy[chosen], loci[chosen]);
-}
-
-/* *********************************************************************** */
-
-BOOLEAN diffuse_paint(cell, locus)
-/* Diffuse paint among the neighbours of the given cell.
-   If this cell does not have surplus paint then return
-   TRUE otherwise return FALSE.  */
-
-CELL_PTR cell;
-POINT locus;
-
-{
-   extern long random();
-   DIRECTION down, direction;
-   CELL_PTR buddy;
-   POINT nlocus;
-   BOOLEAN ok;
-   int excess;
-
-   if (has_surplus_paint(cell) == FALSE) return(TRUE);
-
-   down = cell->gravity.direction;
-   direction = ((random() & 01) == 0) 
-               ? clockwise_from(down) 
-               : anti_clockwise_from(down);
-
-   ok = neighbour(locus, direction, &nlocus);
-   if (ok == FALSE) return(TRUE);
-
-   buddy = get_cell(nlocus);
-
-   if (similar_paint(cell->contents, buddy->contents) == FALSE) {
-      handle_surface_tension(cell, locus);
-      return(FALSE);
-   }
-
-   if (buddy->volume >= cell->volume) return(FALSE);
-
-   if (allow_event_based_on(cell->contents.liquid_content) == FALSE)
-      return(FALSE);
-
-   /* Transfer one particle of paint from cell to its buddy. */
-
-   excess = (cell->volume - buddy->volume) / 2;
-   donate_paint(cell, locus, excess, buddy, nlocus);
-   return(FALSE);
-}
-
-/* *********************************************************************** */
-
-BOOLEAN apply_gravity(cell, locus)
-/*  Subject the contents of the given cell to the effects
-    of gravity.  Note that the direction of gravity is local
-    to the given cell.   Locus is the address of this cell.
-    This function returns TRUE if the paint in this cell
-    cannot flow and FALSE otherwise.
-*/
-
-CELL_PTR cell;
-POINT    locus;
-
-{
-   extern long random();
-   POINT downhill;
-   CELL_PTR down;
-   BOOLEAN ok, can_flow;
-   int barrier, excess;
-
-   ok = neighbour(locus, cell->gravity.direction, &downhill);
-   if (ok == FALSE) return(TRUE);  /* At bottom of canvas. */
-
-   down = get_cell(downhill);
-
-   can_flow = down->volume < (cell->volume + cell->gravity.strength)
-	      ? TRUE : FALSE;
-
-   if (can_flow == FALSE) return(TRUE);
-
-   /*  Although this paint can flow introduce a random value that
-       uses the viscosity of the paint to determine whether it does
-       actually flow.  */
-
-   barrier = random() % 10;
-   if (cell->contents.liquid_content > barrier) { 
-     /* Paint is actually moving.  Move half of the excess downward. */
-
-     excess = (cell->volume - cell->absorbancy) / 2;
-     donate_paint(cell, locus, excess, down, downhill);
-   }
-
-   return(FALSE);
-}
-
-
-float  lx, ly, lz;
-
-void
-compute_shade_vectors()
-{
-	extern  float lx, ly, lz;
-	float D;
-	
-	lx = 1.0;  ly = -1.0;  lz = 3.0;
-
-	D = sqrt ( lx * lx + ly * ly + lz * lz );
-
-	lx = lx/D; ly = ly/D; lz = lz/D;
-
-}
-
-/* *********************************************************************** **	
-								**
-** 	new_intensity_value						**
-**									**
-**	calculates shade value for a pixel from surface characteristics ** **	
-								**
-**	Revision History						**
-**									**
-**	Rev	Date	By	Description				**
-**	1.0 1/12/91	DE Original				**
-**	1.1 1/04/92	DE Include Phong Shading			**
-**	1.2 11/08/92	 JWP Parameterized Specular Component 	** **		
-							**
-*********************************************************************** */ 
-
-float calc_d();
-float calc_g();
-float calc_f();
-float sqr();
-void printvector();
-void vectscale();
-void vectadd();
-float magnitude();
-
-float
-normalize (x, y, z)
- float x, y, z; /*vector x, y, z components*/
-{
-	float result;
-
-        /* function calculates the amount to divide each vector component
-           to normalize it to a unit vector. The parameters are the x,y,z
-           components and the result is the amount to divide by */
-
- result = sqrt (x*x + y*y + z*z);
- return (result);
-
- }
-
-
-
-float Newnormalize(V, W)
-float *V;
-float *W;
-{
-	float temp;
-
-	temp = normalize(V[0], V[1], V[2]);
-
-	W[0] = V[0]/temp;
-	W[1] = V[1]/temp;
-	W[2] = V[2]/temp;
-
-	return temp;
-}
-
-float dot(V, W)
-	float V[3];
-	float W[3];
-{	
-
-	return ( (V[0])*(W[0]) + (V[1])*(W[1]) + (V[2])*(W[2]) );
-
-}
-
-float Phong (Nv, Lv, Ev, shine)
-float Nv[3];
-float Lv[3];
-float Ev[3];
-float shine;
-{
-	float Hv[3];
- 
-	Newnormalize(Ev, Ev);
- 
-	Hv[0] = Ev[0] + Lv[0];
-	Hv[1] = Ev[1] + Lv[1];
-	Hv[2] = Ev[2] + Lv[2];
- 
-	Newnormalize (Hv, Hv);
- 
-	shine = abs(shine);
-	return( pow(dot(Nv, Hv), shine) );
-}
-
-
-/******************* Auxillary functions *****************************/ 
-
-/* Function : calc_c
-* Returns : the microfacet distribution function */
-
-float calc_d(cos_alpha,c3)
-float cos_alpha;
-float c3;
-{
-float d;
-d=sqr( sqr(c3) / ( sqr(cos_alpha)*(sqr(c3) -1) +1)); return d;
-}
-
-/*
-* Function : calc_g
-* Returns : the geometrical attenuation factor. *
-* This function should return values between 0.0 and 1.0, so if it's  * negative I will return 0.0 Anyway it does not seem to make any difference  * at all whether I return 0.0, the negative value or the minimum of the  * absolute values of (temp1,temp2,temp3) */
-
-float calc_g(N,H,L,V)
-float N[3];		/* Normal vector 	*/
-float H[3];		/* Half-way vector 	*/
-float L[3];		/* Light vector		*/
-float V[3];		/* View vector		*/
-{
-	float temp1,temp2,temp3,ret;
-	float NdotH,NdotV,NdotL,VdotH;
-	NdotH=dot(N,H);
-	NdotV=dot(N,V);
-	NdotL=dot(N,L);
-	VdotH=dot(V,H);
-	temp1=1.0;
-	temp2=(2*NdotH*NdotV)/VdotH;
-	temp3=(2*NdotH*NdotL)/VdotH;
-	/* Find minimum value */
-	if (temp1 < temp2)
-		if (temp1 < temp3)
-			ret=temp1;
-		else
-		ret=temp3;
-	else
-		if (temp2 < temp3)
-			ret=temp2;
-		else
-			ret=temp3;
-	if (ret < 0.0)
-		ret=0.0;
-	return ret;
-}
-
-/* Function : calc_f
-* Returns : the Fresnel term
-*/
-
-float calc_f(L,H,mu)
-float L[3];
-float H[3];
-float mu;
-{
-	float temp1,temp2;
-	float c,g;
-	c=dot(L,H);
-	g=sqrt(sqr(mu)+sqr(c) -1);
-	temp1 = (sqr(g-c)/sqr(g+c))*0.5;
-	temp2 = 1+(sqr( c*(g+c)-1 ) / sqr( c*(g-c)+1)); return (temp1*temp2);
-}
-
-/* Function : sqr
-* Returns : the square of its argument
-*/
-
-float sqr(x)
-float x;
-{
-	return (x*x);
-}
-
-/* Function : printvector
-* prints the contents of a vector with 3 elements */
-
-void printvector(v)
-float v[3];
-{
-	printf("[%f,%f,%f] ",v[0],v[1],v[2]);
-}
-
-void vectscale(v1, k, vout, n)
-float *v1;
-float k;
-float *vout;
-int n;
-{  	vout[0] = v1[0]*k;
-	vout[1] = v1[1]*k;
-	vout[2] = v1[2]*k;
-}
-
-void vectadd(v1, v2, vout, n)
-float *v1, *v2, *vout;
-int n;
-{  	vout[0] = v1[0] + v2[0];
-	vout[1] = v1[1] + v2[1];
-	vout[2] = v1[2] + v2[2];
-}
-
-float magnitude(v)
-float *v;
-{  		return( normalize(v[0], v[1], v[2]) );
-}
-
-float T_S(Nv, Lv, Ev, shine)
-float Nv[3];    /* Normalized Normal vector */
-float Lv[3];                    /* Normalized Light-source vector */
-float Ev[3];                    /* Un-normalized Eye vector */
-float shine;                    /* parameter to absorb Phong coeff */
-{
-	float Hv[3];                 /* Half-way vector H            */
-	float cos_alpha;
-	float t;
-	float mdf;                /* Micro facet distribtuion function */
-	float gaf;                     /* Geometrical attenuation factor*/  	float ft;                   /* The Fresnel term             */
-	float c3;
-	float mu;                      /* Refractive index             */
-
-        /*initialize appearance constants*/
-        c3 = shine;
-        mu = 200.0;
- 
-        /*normalize eye vector*/
- 
-        Newnormalize(Ev, Ev);
- 
-/* Calculate the half-way vector H, between the light vector and the
-view vector */
- 
-        vectadd(Ev,Lv,Hv,3);
-        t = magnitude(Hv,3);
-
-        vectscale(Hv,(1/t),Hv,3);
- 
-        /* Calculate the micro-facet distribution function D */
- 
-        cos_alpha=dot(Nv,Hv);
-        mdf=calc_d(cos_alpha,c3);
- 
- 
-        /* Calculate the geometrical attenuation factor */
- 
-        gaf=calc_g(Nv,Hv,Lv,Ev);
- 
-        /* Calculate the Fresnel Term */
- 
-        ft=calc_f(Lv,Hv,mu);
- 
-        /* Calculate specular component */
- 
-        return( (mdf*gaf*ft) / dot(Nv,Lv) );
-}
- 
-
-
-
-float
-new_intensity_value(a_pnt)
-POINT a_pnt;
-/* Calculate the new intensity value of a pixel 
-in order to construct a bump map of the paint surface
-*/
-{
-float h, h1, h2, h3, h4;
-	float shininess;
-float Ka, Kd, Ks;
-	float wetmax, degree, norm, distance;
-	float g;
-float Nv[3];
-	float Ev[3];
-	float Hv[3];
-	float Lv[3];
-	extern float lx, ly, lz;
-float intensity, light_intensity;
-int liquid;
-POINT b_pnt;
-CELL_PTR cell;
-CELL_PTR next_cell;
-	int x_cntr, y_cntr;
-
-	Ka = 0.0;
-	Kd = 0.5;
-	Ks = 0.5;
-
-	wetmax = 100.0;
-	distance = 2500.0;
-	light_intensity = 2.0;
-	shininess = 0.3;
-
-	cell = get_cell(a_pnt);
-
-	h = (float)cell->volume;
-
-	if (neighbour(a_pnt, NORTH, &b_pnt)) {
-		next_cell = get_cell(b_pnt);
-		h1 = (float)next_cell->volume;
-	} else
-		h1 = h;
-
-	if (neighbour(a_pnt, EAST, &b_pnt)) {
-		next_cell = get_cell(b_pnt);
-		h2 = (float)next_cell->volume;
-	} else
-		h2 = h;
-
-	if (neighbour(a_pnt, SOUTH, &b_pnt)) {
-		next_cell = get_cell(b_pnt);
-		h3 = (float)next_cell->volume;
-	} else
-		h3 = h;
-
-	if (neighbour(a_pnt, WEST, &b_pnt)) {
-		next_cell = get_cell(b_pnt);
-		h4 = (float)next_cell->volume;
-	} else
-		h4 = h;
-
-	h1 = h1/HEIGHT_SCALE;
-	h2 = h2/HEIGHT_SCALE;
-	h3 = h3/HEIGHT_SCALE;
-	h4 = h4/HEIGHT_SCALE;
-
-	/* test fix for "disappearing" paint */
-
-	if (cell->contents.liquid_content == 0) 
-		liquid = 1;
-	else
-		liquid = cell->contents.liquid_content;
-
-	degree = (float)abs(liquid)/wetmax; 
-
-	x_cntr= 150 - a_pnt.x;
-	y_cntr= 150 - a_pnt.y;
-
-	Ks = light_intensity * Ks /* * degree*/ ;
-
-	Kd = light_intensity * Kd;
-
-/*	shininess = shininess/degree; */
-
-
-	Nv[1] = h3 - h1;
-	Nv[0] = h4 - h2;
-	Nv[2] = 4.0;
-
-	Newnormalize (Nv, Nv);
-
-	Lv[0] = lx;
-	Lv[1] = ly;
-	Lv[2] = lz;
-
-	g = dot(Lv, Nv)*Kd + Ka;
-
-        g = g * (float)cell->contents.colour.hue;
-
-	Ev[0] = (float)x_cntr;
-	Ev[1] = (float)y_cntr;
-	Ev[2] = distance;
-
-        intensity = g + Ks*T_S(Nv, Lv, Ev, shininess);
-
-        if ( intensity > 255.0 ) {
-                intensity = 0.0;
-        } else {
-                if (intensity < 0.0)
-                        intensity = 255.0;
-                else
-                        intensity = 255.0 - intensity;
-        }
-        
-        
-        /*printf("wetness %d colour %d intensity %f guraud %f phong %f\n",
-                        cell->contents.liquid_content,
-                                cell->contents.colour.hue,
-                                intensity,
-                                g,
-                                intensity - g);*/
- 
- 
-return (intensity);
-}
-
-
-/* *********************************************************************** */
-
-void single_step()
-/*  This routine defines the paint steps involved in the
-    basic cycle of the painting engine.  */
-
-{
-   POINT     locus;
-   CELL_PTR  cell;
-   BOOLEAN   done;
-
-   next_cell_point(&locus);
-   cell = get_cell(locus);
-   
-   done = age_paint(cell);
-   if (done == TRUE) return;
-
-   done = diffuse_paint(cell, locus);
-   if (done == TRUE) return;
-
-   done = apply_gravity(cell, locus);
-}
-
-brush_stroke(x,y)
-int x;
-int y;
-{
-   POINT pnt;
-   CELL_PTR cell;
-
-
-	pnt.x = x;
-	pnt.y = y;
-
-	cell = get_cell(pnt);
-
-         cell->contents.liquid_content = 100;
-	   cell->contents.drying_rate = 10;
-	   cell->contents.miscibility = 80;
-
-	   cell->contents.colour.hue = 128;
-	   cell->contents.colour.saturation = 1.0;
-	   cell->contents.colour.lightness = 0.0;
-
-	   cell->volume = 50;
-	
-}
-
-
diff --git a/krita/colorspaces/wetsticky/ws/engine.h b/krita/colorspaces/wetsticky/ws/engine.h
deleted file mode 100644
index b6072b0a4..000000000
--- a/krita/colorspaces/wetsticky/ws/engine.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-    FILE:        engine.h
-    PURPOSE:    Defines the routines for the Paint Engine.
-    AUTHOR:        Kevin Waite 
-    VERSION:    1.00  (10-May-91)
-
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-Wet and Sticky is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Wet and Sticky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wet and Sticky; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA 
-
-*/
-
-extern void single_step();
-/*  This routine defines the paint steps involved in the
-    basic cycle of the painting engine.  */
-
-extern brush_stroke();
-
-extern float intensity_value( /* POINT */);
-
-extern float new_intensity_value( /* POINT */);
-
-extern void compute_shade_vectors();
-
-
diff --git a/krita/colorspaces/wetsticky/ws/engine3.c b/krita/colorspaces/wetsticky/ws/engine3.c
deleted file mode 100644
index 9fd274cdd..000000000
--- a/krita/colorspaces/wetsticky/ws/engine3.c
+++ /dev/null
@@ -1,617 +0,0 @@
-/*
-	FILE:		engine.c
-	PURPOSE:	Defines the routines for the Paint Engine.
-	AUTHOR:		Kevin Waite 
-	VERSION:	1.00  (10-May-91)
-
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-Wet and Sticky is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Wet and Sticky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wet and Sticky; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 
-
-*/
-
-#include "constants.h"
-#include "types.h"
-#include "canvas.h"
-#include <math.h>
-
-#define HEIGHT_SCALE 1.0
-
-/* *********************************************************************** */
-
-int random_percent()
-/*  This function returns a random number in the range [0,100].  */
-{
-   extern long random();
-
-   return (random() % 101);
-}
-
-/* *********************************************************************** */
-
-BOOLEAN allow_event_based_on(value)
-/*  The given value is a percentage.  Compare this value
-    with a randomly generated percentage and if it is larger
-    then allow the event to happen (i.e. return TRUE) other-
-    wise return FALSE.  */
-
-int value;
-
-{
-   if (value > random_percent()) return(TRUE);
-   return(FALSE);
-}
-
-/* *********************************************************************** */
-
-BOOLEAN age_paint(cell)
-/*  Make the paint in the given cell older, i.e. let
-    if dry out a bit if it isn't already dry.  This
-    function returns TRUE if the paint was already
-    dry or becomes so, and FALSE otherwise.  */
-
-CELL_PTR cell;
-
-{
-  if (cell->volume == 0) return(TRUE);
-  if (cell->contents.liquid_content == 0) return(TRUE);
-  if (allow_event_based_on(cell->contents.drying_rate) == TRUE) 
-     cell->contents.liquid_content--;
-
-  if (cell->contents.liquid_content == 0) return(TRUE);
-  return(FALSE);
-}
-
-/* *********************************************************************** */
-
-BOOLEAN similar_paint(aPaint, bPaint)
-/* Determine whether the two paints are similar.  It is
-   assumed that aPaint has come from the host cell (and
-   so it is its miscibility value that is used).  The
-   function returns TRUE if the paints are similar and
-   FALSE otherwise.   */
-
-PAINT aPaint, bPaint;
-
-{
-   int delta;
-
-   delta = abs(aPaint.liquid_content - bPaint.liquid_content);
-   if (delta <= aPaint.miscibility) return(TRUE);
-   return(FALSE);
-}
-
-/* *********************************************************************** */
-
-int surplus_paint(cell)
-/*  Returns the amount of paint held by this cell greater than its
-    absorbancy value.  This is the amount of paint that can flow.  */
-
-CELL_PTR cell;
-
-{
-   return (MAX(cell->volume - cell->absorbancy, 0));
-}
-
-/* *********************************************************************** */
-
-BOOLEAN has_surplus_paint(cell)
-/*  Does the given cell have excess paint, i.e. can paint flow out
-    of this cell.  Return TRUE if it can and FALSE otherwise.  */
-
-CELL_PTR cell;
-
-{
-   if (surplus_paint(cell) > 0) return(TRUE);
-   return(FALSE);
-}
-
-/* *********************************************************************** */
-
-void stop() {  /*  Used for breakpointing.  */ }
-
-void donate_paint(source, srcLocus, amount, dest, destLocus)
-/* The source cell is donating the specified volume of its paint
-   to the destination cell.  The destination cell must mix this 
-   new paint with its existing paint to yield a new paint.
-   This routine is also responsible for recording which cells
-   have been updated and so need tqrepainting.
-   
-   A special case is recognised where the destination has not yet
-   had any paint applied.  This causes the donated paint to become
-   to new contents of this cell.   
-
-*/
-
-CELL_PTR source, dest;
-POINT    srcLocus, destLocus;
-int      amount;
-
-{
-   float delta, ratio;
-   int   iDelta;
-
-   source->volume -= amount;
-
-   if (dest->volume == UNFILLED) {
-
-      /*  The donated paint is going into an unfilled cell.  
-          Copy the source's attributes into the destination.  */
-
-      dest->volume = amount;
-      dest->contents.colour.hue = source->contents.colour.hue;
-      dest->contents.colour.lightness = source->contents.colour.lightness;
-      dest->contents.colour.saturation = source->contents.colour.saturation;
-      dest->contents.liquid_content = source->contents.liquid_content;
-      dest->contents.miscibility = source->contents.miscibility;
-      dest->contents.drying_rate = source->contents.drying_rate;
-
-   } else {
-
-   /*  Need to mix the existing paint in the dest with this amount
-       of new paint from the source.  This is done using a linear
-       interpolation mechanism using the relative amounts of the
-       paint as the control.  */
-
-      ratio = amount / (float)(dest->volume);
-   
-      iDelta = source->contents.colour.hue - dest->contents.colour.hue;
-      if (iDelta != 0) {
-         dest->contents.colour.hue += (int)(ratio * iDelta); 
-         if (dest->contents.colour.hue >= 360)
-            dest->contents.colour.hue -= 360; 
-      }
-
-      iDelta = source->contents.drying_rate - dest->contents.drying_rate;
-      dest->contents.drying_rate += (int)(ratio * iDelta);
-      dest->contents.drying_rate %= 101;
-
-      iDelta = source->contents.liquid_content - dest->contents.liquid_content;
-      dest->contents.liquid_content += (int)(ratio * iDelta);
-      dest->contents.liquid_content %= 101;
-
-      iDelta = source->contents.miscibility - dest->contents.miscibility;
-      dest->contents.miscibility += (int)(ratio * iDelta);
-      dest->contents.miscibility %= 101;
-
-      delta = source->contents.colour.saturation - dest->contents.colour.saturation;
-      dest->contents.colour.saturation += ratio * delta;
-
-      delta = source->contents.colour.lightness - dest->contents.colour.lightness;
-      dest->contents.colour.lightness += ratio * delta;
-
-      dest->volume += amount;   /* The new volume of paint in dest. */
-
-   }
-
-   need_to_tqrepaint(destLocus);
-}
-
-/* *********************************************************************** */
-
-void handle_surface_tension(cell, locus)
-/*  This routine handles the surface tension around the given cell.
-*/
-
-CELL_PTR cell;
-POINT    locus;
-
-{
-   DIRECTION direction[3];
-   POINT     loci[3];
-   CELL_PTR  buddy[3];
-   BOOLEAN   ok, similar[3];
-   int       weakCount, weak[3], count[3], excess, chosen, side, start, finish, k, lowest;
-
-   if (has_surplus_paint(cell) == FALSE) return;
-
-   direction[0] = cell->gravity.direction;
-   direction[1] = clockwise_from(direction[0]);
-   direction[2] = anti_clockwise_from(direction[0]);
-
-   for (k=0; k < 3; k++) {
-      ok = neighbour(locus, direction[k], &loci[k]);
-      if (ok == TRUE) {
-         buddy[k] = get_cell(loci[k]);
-         count[k] = 0;
-      } else count[k] = -1;
-   }
-
-   for (k=0; k < 3; k++) 
-      similar[k] = (count[k] == -1) 
-                      ? FALSE 
-                      : similar_paint(cell->contents, buddy[k]->contents); 
-
-   for (k=0; k < 3; k++) {
-      if ((count[k] != -1) && (similar[k] == FALSE)) {
-         count[k] = 0;
-         start = MAX(k-1, 0);
-         finish = MIN(k+1, 2);
-         for (side=start; side <= finish; side++) 
-            if ((count[side] != -1) && (similar[side] == FALSE)) count[k]++;
-          
-      }
-   }
-
-   lowest = 4;
-   for (k=0; k < 3; k++) if (count[k] >= 0) lowest = MIN(count[k], lowest);
-
-   weakCount = 0;
-   for (k=0; k < 3; k++) if (count[k] == lowest) weak[weakCount++] = k;
-
-   /*  The weak array now holds weakCount indices of those sides that have
-       the lowest surface tension and therefore where any paint would flow over.
-       Now it is necessary to see whether paint will actually flow based on
-       a probability level using the liquidity and volume of the paint in the
-       cell as parameters.   Paint will flow over only one of the weakest sides
-       with the side chosen at random.    */
-
-   if (random_percent() > cell->contents.liquid_content) return;  /*  Too viscous.  */
-
-   excess = surplus_paint(cell);
-   if (random_percent() > excess * 3) return;   
-   /*  The '3' in the previous statement is an empirically-derived multiplier.  */
-
-   /*  The paint will flow.  Pick one of the weakest sides at random.  */
-
-   chosen = weak[random_percent() % weakCount];
-   donate_paint(cell, locus, (excess / 2), buddy[chosen], loci[chosen]);
-}
-
-/* *********************************************************************** */
-
-BOOLEAN diffuse_paint(cell, locus)
-/* Diffuse paint among the neighbours of the given cell.
-   If this cell does not have surplus paint then return
-   TRUE otherwise return FALSE.  */
-
-CELL_PTR cell;
-POINT locus;
-
-{
-   extern long random();
-   DIRECTION down, direction;
-   CELL_PTR buddy;
-   POINT nlocus;
-   BOOLEAN ok;
-   int excess;
-
-   if (has_surplus_paint(cell) == FALSE) return(TRUE);
-
-   down = cell->gravity.direction;
-   direction = ((random() & 01) == 0) 
-               ? clockwise_from(down) 
-               : anti_clockwise_from(down);
-
-   ok = neighbour(locus, direction, &nlocus);
-   if (ok == FALSE) return(TRUE);
-
-   buddy = get_cell(nlocus);
-
-   if (similar_paint(cell->contents, buddy->contents) == FALSE) {
-      handle_surface_tension(cell, locus);
-      return(FALSE);
-   }
-
-   if (buddy->volume >= cell->volume) return(FALSE);
-
-   if (allow_event_based_on(cell->contents.liquid_content) == FALSE)
-      return(FALSE);
-
-   /* Transfer one particle of paint from cell to its buddy. */
-
-   excess = (cell->volume - buddy->volume) / 2;
-   donate_paint(cell, locus, excess, buddy, nlocus);
-   return(FALSE);
-}
-
-/* *********************************************************************** */
-
-BOOLEAN apply_gravity(cell, locus)
-/*  Subject the contents of the given cell to the effects
-    of gravity.  Note that the direction of gravity is local
-    to the given cell.   Locus is the address of this cell.
-    This function returns TRUE if the paint in this cell
-    cannot flow and FALSE otherwise.
-*/
-
-CELL_PTR cell;
-POINT    locus;
-
-{
-   extern long random();
-   POINT downhill;
-   CELL_PTR down;
-   BOOLEAN ok, can_flow;
-   int barrier, excess;
-
-   ok = neighbour(locus, cell->gravity.direction, &downhill);
-   if (ok == FALSE) return(TRUE);  /* At bottom of canvas. */
-
-   down = get_cell(downhill);
-
-   can_flow = down->volume < (cell->volume + cell->gravity.strength)
-	      ? TRUE : FALSE;
-
-   if (can_flow == FALSE) return(TRUE);
-
-   /*  Although this paint can flow introduce a random value that
-       uses the viscosity of the paint to determine whether it does
-       actually flow.  */
-
-   barrier = random() % 10;
-   if (cell->contents.liquid_content > barrier) { 
-     /* Paint is actually moving.  Move half of the excess downward. */
-
-     excess = (cell->volume - cell->absorbancy) / 2;
-     donate_paint(cell, locus, excess, down, downhill);
-   }
-
-   return(FALSE);
-}
-
-
-float  lx, ly, lz;
-
-void
-compute_shade_vectors()
-{
-	extern  float lx, ly, lz;
-	float D;
-	
-	lx = -1.0;  ly = 1.0;  lz = 2.0;
-
-	D = sqrt ( lx * lx + ly * ly + lz * lz );
-
-	lx = lx/D; ly = ly/D; lz = lz/D;
-
-}
-
-/* *********************************************************************** **									**
-** 	new_intensity_value						**
-**									**
-**	calculates shade value for a pixel from surface characteristics ** **									**
-**	Revision History						**
-**									**
-**	Rev	Date	By	Description				**
-**	1.0 1/12/91	DE Original				**
-**	1.1 1/04/92	DE Include Phong Shading			**
-**	1.2 11/08/92	 JWP Parameterized Specular Component 	** **									**
-*********************************************************************** */ 
-float
-normalize (x, y, z)
- float x, y, z; /*vector x, y, z components*/
-{
- float result;
-
-        /* function calculates the amount to divide each vector component
-           to normalize it to a unit vector. The parameters are the x, y,
-z
-           components and the result is the amount to divide by */
-
- result = sqrt (x*x + y*y + z*z);
- return (result);
-
- }
-
-
-
-float Newnormalize(V, W)
-float *V;
-float *W;
-{
-float temp;
-
-temp = normalize(V[0], V[1], V[2]);
-
-W[0] = V[0]/temp;
-W[1] = V[1]/temp;
-W[2] = V[2]/temp;
-
-return temp;
-}
-
-float dot(V, W)
-float V[3];
-float W[3];
-{
-
-return ( (V[0])*(W[0]) + (V[1])*(W[1]) + (V[2])*(W[2]) );
-
-}
-
-float Phong (Nv, Lv, Ev, shine)
-float Nv[3];
-float Lv[3];
-float Ev[3];
-float shine;
-{
-float Hv[3];
- 
-Newnormalize(Ev, Ev);
- 
-Hv[0] = Ev[0] + Lv[0];
-Hv[1] = Ev[1] + Lv[1];
-Hv[2] = Ev[2] + Lv[2];
- 
-Newnormalize (Hv, Hv);
- 
-shine = abs(shine);
-return( pow(dot(Nv, Hv), shine) );
-}
-
-
-float
-new_intensity_value(a_pnt)
-POINT a_pnt;
-/* Calculate the new intensity value of a pixel 
-in order to construct a bump map of the paint surface
-*/
-{
-float h, h1, h2, h3, h4;
-	int shininess;
-float Ka, Kd, Ks;
-	float wetmax, degree, norm, distance;
-	float g;
-float Nv[3];
-	float Ev[3];
-	float Hv[3];
-	float Lv[3];
-	extern float lx, ly, lz;
-float intensity, light_intensity;
-POINT b_pnt;
-CELL_PTR cell;
-CELL_PTR next_cell;
-	int x_cntr, y_cntr;
-
-Ka = 0.1;
-Kd = 0.6;
-	Ks = 0.4;
-
-	wetmax = 100.0;
-	distance = 2500.0;
-	light_intensity = 2.0;
-	shininess = 200;
-
-cell = get_cell(a_pnt);
-
-h = (float)cell->volume;
-
-if (neighbour(a_pnt, NORTH, &b_pnt)) {
-next_cell = get_cell(b_pnt);
-h1 = (float)next_cell->volume;
-} else
-h1 = h;
-
-if (neighbour(a_pnt, EAST, &b_pnt)) {
-next_cell = get_cell(b_pnt);
-h2 = (float)next_cell->volume;
-} else
-h2 = h;
-
-if (neighbour(a_pnt, SOUTH, &b_pnt)) {
-next_cell = get_cell(b_pnt);
-h3 = (float)next_cell->volume;
-} else
-h3 = h;
-
-if (neighbour(a_pnt, WEST, &b_pnt)) {
-next_cell = get_cell(b_pnt);
-h4 = (float)next_cell->volume;
-} else
-h4 = h;
-
-h1 = h1/HEIGHT_SCALE;
-h2 = h2/HEIGHT_SCALE;
-h3 = h3/HEIGHT_SCALE;
-h4 = h4/HEIGHT_SCALE;
-
-	degree = (float)abs(cell->contents.liquid_content)/wetmax; 
-
-	x_cntr= 150 - a_pnt.x;
-	y_cntr= 150 - a_pnt.y;
-
-	Ks = light_intensity * Ks * degree;
-
-	Kd = light_intensity * Kd;
-
-	shininess = (int)degree * shininess + 1; 
-
-
-	Nv[1] = h3 - h1;
-	Nv[0] = h4 - h2;
-Nv[2] = 4.0;
-
-	Newnormalize (Nv, Nv);
-
-	Lv[0] = lx;
-Lv[1] = ly;
-	Lv[2] = lz;
-
-	g = dot(Lv, Nv)*Kd + Ka;
-
-        g = g * (float)cell->contents.colour.hue;
-
-Ev[0] = (float)x_cntr;
-Ev[1] = (float)y_cntr;
-Ev[2] = distance;
-
-        intensity = g + Ks*Phong(Nv, Lv, Ev, (float)shininess);
-
-        if ( intensity > 255.0 ) {
-                intensity = 0.0;
-        } else {
-                if (intensity < 0.0)
-                        intensity = 255.0;
-                else
-                        intensity = 255.0 - intensity;
-        }
-        
-        
-        /*printf("wetness %d colour %d intensity %f guraud %f phong %f\n",
-                        cell->contents.liquid_content,
-                                cell->contents.colour.hue,
-                                intensity,
-                                g,
-                                intensity - g);*/
- 
- 
-return (intensity);
-}
-
-
-/* *********************************************************************** */
-
-void single_step()
-/*  This routine defines the paint steps involved in the
-    basic cycle of the painting engine.  */
-
-{
-   POINT     locus;
-   CELL_PTR  cell;
-   BOOLEAN   done;
-
-   next_cell_point(&locus);
-   cell = get_cell(locus);
-   
-   done = age_paint(cell);
-   if (done == TRUE) return;
-
-   done = diffuse_paint(cell, locus);
-   if (done == TRUE) return;
-
-   done = apply_gravity(cell, locus);
-}
-
-brush_stroke(x,y)
-int x;
-int y;
-{
-   POINT pnt;
-   CELL_PTR cell;
-
-
-	pnt.x = x;
-	pnt.y = y;
-
-	cell = get_cell(pnt);
-
-         cell->contents.liquid_content = 100;
-	   cell->contents.drying_rate = 10;
-	   cell->contents.miscibility = 80;
-
-	   cell->contents.colour.hue = 128;
-	   cell->contents.colour.saturation = 1.0;
-	   cell->contents.colour.lightness = 0.0;
-
-	   cell->volume = 50;
-	
-}
-
diff --git a/krita/colorspaces/wetsticky/ws/load_ppm.c b/krita/colorspaces/wetsticky/ws/load_ppm.c
deleted file mode 100644
index 6368ee083..000000000
--- a/krita/colorspaces/wetsticky/ws/load_ppm.c
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
-	FILE:		load_ppm.c
-	PURPOSE:	Defines the routines to load a PPM portable pixmap image file.
-	AUTHOR:		David England
-	VERSION:	1.00  (10-May-91)
-
-
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-Wet and Sticky is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Wet and Sticky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wet and Sticky; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 
-
-*/
-
-#include "constants.h"
-#include "types.h"
-#include "canvas.h"
-
-#include <ctype.h>
-#include <ppm.h>
-#include <ppmcmap.h>
-
-/* Max number of colors allowed in ppm input. */
-#define MAXCOLORS 256
-
-extern CELL canvas[CANVAS_WIDTH][CANVAS_HEIGHT];
-
-float
-max_rgb(r,g,b)
-float r;
-float g;
-float b;
-{
-	if ((r > g) && (r > b))
-		return (r);
-
-	if ((b > g) && (b > r))
-		return (b);
-
-	if ((g > b) && (g > r))
-		return (g);
-
-	return(0);
-}
-
-float 
-min_rgb(r,g,b) 
-float r; 
-float g; 
-float b;
-{ 
-        if ((r < g) && (b < g)) 
-                return (r); 
- 
-        if ((b < g) && (b < r))
-                return (b); 
-
-        if ((g < b) && (g < r)) 
-                return (g); 
-
-	return(0);
-}
-
-
-int
-GetHue(red, green, blue) /* rgb to hls */
-int red;
-int green;
-int blue;
-{
-	float min_col, max_col;
-	float h,s,l;
-	float rc, gc, bc;
-	float r, g, b;
-
-	r =  (float)red/255.0;
-	b =  (float)green/255.0;
-	g =  (float)blue/255.0;
-
-	max_col = (float)max_rgb(r, g, b);
-	min_col = (float)min_rgb(r, g, b);
-
-	l = (max_col + min_col)/2.0 ;
-
-	if ( max_col == min_col) {
-		s = 0.0;
-		h = 0.0;
-	} else  {
-		if ( l < 0.5) {
-			s = (max_col - min_col)/(max_col + min_col);
-		} else  s = (max_col - min_col)/(2 - max_col - min_col);
-
-		rc = (max_col -r)/( max_col - min_col);
-		gc = (max_col -g)/(max_col - min_col);
-		bc = (max_col -b)/(max_col - min_col);
-
-		if (r == max_col)
-			h = bc - gc;
-		else if (g == max_col )
-			h = 2 + rc - bc;
-			else if (b == max_col)
-				h = 4  + gc -rc;
-		
-		h = h * 60;
-
-		if ( h < 0.0)
-			h = h + 360;
-	}
-
-	return ((int)h);
-
-
-}
-
-GetHuePaint(r,g,b)
-int r;
-int g;
-int b;
-{
-
-	/*if ((r == 0) && (g == 0) && (b ==0)) {
-		canvas[i][j].contents.liquid_content = 0;
-		   canvas[i][j].contents.drying_rate = 0;
-		   canvas[i][j].contents.miscibility = 0;
-
-		   canvas[i][j].contents.colour.hue = 0;
-		   canvas[i][j].contents.colour.saturation = 1.0;
-		   canvas[i][j].contents.colour.lightness = 0.0;
-		   canvas[i][j].volume = 80;
-		return (0);
-	}
-
-	if ((r == 255) && (g == 255) && ( b == 255)) {
-		canvas[i][j].contents.liquid_content = 0;
-                   canvas[i][j].contents.drying_rate = 0;
-                   canvas[i][j].contents.miscibility = 0;
-
-                   canvas[i][j].contents.colour.hue = 128;
-                   canvas[i][j].contents.colour.saturation = 1.0;
-                   canvas[i][j].contents.colour.lightness = 0.0;
-                   canvas[i][j].volume = 80;
-		return (128);
-	}*/
-}
-
-load_ppm_format(filename, width, height)
-char *filename;
-int *width;
-int *height;
-{
-
-    FILE* ifp;
-    pixel **pixels;
-    int rows, cols, i, j;
-    pixval maxval;
-	int red, green, blue;
-	int hue;
-
-    /*ppm_init( &argc, argv );*/
-
-
-
-   ifp = pm_openr( filename);
-
-    pixels = ppm_readppm( ifp, &cols, &rows, &maxval );
-
-	*(width) = cols;
-	*(height) = rows;
-
-	fprintf(stderr,"Loading file %s, %dx%d. Please wait ", filename, rows, 
-cols);
-
-	if (rows > CANVAS_HEIGHT)
-		rows = CANVAS_HEIGHT;
-
-	if (cols > CANVAS_WIDTH)
-		cols = CANVAS_WIDTH;
-
-	for (i=0; i< rows; i++)  {
-		for (j=0; j< cols; j++) {
-			red = PPM_GETR(pixels[i][j]);
-			green = PPM_GETG(pixels[i][j]);
-			blue = PPM_GETB(pixels[i][j]);
-			
-			/*hue = GetHue(red, green, blue);*/
-
-			/* For gray scale only */
-
-			hue = 255 - red;
-
-
-			/*fprintf(stderr,"hue %d ", hue);*/
-			/*GetHuePaint(red, green, blue, i, j);*/
-
-			canvas[i][j].contents.liquid_content = 80;
-			   canvas[i][j].contents.drying_rate = 80;
-			   canvas[i][j].contents.miscibility = 80;
-
-			   canvas[i][j].contents.colour.hue = hue;
-			   canvas[i][j].contents.colour.saturation = 1.0;
-			   canvas[i][j].contents.colour.lightness = 0.0;
-			   canvas[i][j].volume = (float)hue/2.5;
-
-			if (red == 0) 
-			  if  (green == 0) 
-			   if  ( blue == 0) {
-				canvas[i][j].contents.liquid_content = 0;
-				canvas[i][j].contents.drying_rate = 0;
-                           canvas[i][j].contents.miscibility = 0;
-				canvas[i][j].contents.colour.hue = 0;
-				   canvas[i][j].volume = 0;
-			}
-
-			if (red == 255) 
-			   if (green == 255) 
-			      if ( blue == 255) {
-                                canvas[i][j].contents.liquid_content = 0;
-				canvas[i][j].contents.drying_rate = 0;
-                                canvas[i][j].contents.miscibility = 0;
-                                canvas[i][j].contents.colour.hue = 360;
-				   canvas[i][j].volume = 0;
-                        }
-
-
-		}		
-		if (( i %10) == 0){
-			fprintf(stderr,".");
-			fflush(stderr);
-		}
-	}
-
-	printf(" done\n");
-
-    pm_close( ifp );
-
-    /*exit(0);*/
-
-}
diff --git a/krita/colorspaces/wetsticky/ws/main.c b/krita/colorspaces/wetsticky/ws/main.c
deleted file mode 100644
index 8185557aa..000000000
--- a/krita/colorspaces/wetsticky/ws/main.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
-	FILE:		main.c
-	PURPOSE:	The top-level program for Wet&Sticky
-	AUTHOR:		Kevin Waite and David England
-	VERSION:	1.00  (10-May-91)
-
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-
-Wet and Sticky is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Wet and Sticky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wet and Sticky; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 
-
-*/
-
-#include "constants.h"
-#include "types.h"
-#include "canvas.h"
-#include "win_interface.h"
-#include <stdio.h>
-#include <string.h>
-#include <math.h>
-
-double HEIGHT_SCALE;
-
-void main(argc, argv) 
-int argc;
-char *argv[];
-
-/*
-   The Wet&Sticky program can be executed with optional parameters.
-   Those parameters used by the X graphics system are stripped out.
-   If no parameters are given then the program runs as a purely
-   interactive system.  This requires input handling which is not
-   yet implemented.  If the argument is the string '-blob' then the
-   program uses a square blob as the starting image.  Otherwise the
-   program assumes the argument is a filename containing a previously
-   stored canvas.  This is then loaded into the canvas as a starting
-   point.
-*/
-
-{
-   char *filename;
-   extern void exit();
-   int width;
-   int height;
-   extern int optind, opterr;
-   extern char *optarg;
-   int c,i;
-   int blob_flag;
-
-
-   fprintf(stdout, "Wet&Sticky Version %s\n", VERSION);
-   fprintf(stdout, "Implemented by K.Waite and D.England, 1991\n");
-   fprintf(stdout, "Based on ideas by Tunde Cockshott\n\n");
-
-
-   initialise_canvas();
-   if (DEBUG) fprintf (stdout, "Finished initialising the canvas\n");
-
-   CreateWindows (&argc, argv, CANVAS_WIDTH , CANVAS_HEIGHT);
-
-   filename = argv[1];
-
-   blob_flag = 1;
-   HEIGHT_SCALE = 20.0;
-
-  opterr = 0;
-    fprintf(stderr, "HEIGHT %g\n", HEIGHT_SCALE);
-
-  while ((c = getopt(argc, argv, "f:s:")) != EOF)
-                    switch (c) {
-                case 'f':
-                        filename = optarg;
-			load_file(filename, &width, &height);
-			blob_flag = 0;
-                        break;
-                case 's':
-                        fprintf(stderr, "HEIGHT string %s \n",optarg);
-                        HEIGHT_SCALE = atof(optarg);
-                        break;
-		case '?':
-                        break;
-                }
-
-   if (blob_flag)
-	blob (DEFAULT_BLOB_SIZE);
-
-    fprintf(stderr, "HEIGHT %g\n", HEIGHT_SCALE);
-
-   StartVolumeWindow (CANVAS_WIDTH, CANVAS_HEIGHT);
-   StartDrynessWindow (CANVAS_WIDTH, CANVAS_HEIGHT);
-
-   if (DEBUG) fprintf (stdout, "Finished preparing X\n");
-
-   if (DEBUG) fprintf (stdout, "Passing control to window manager\n");
-   StartWindows();
-   exit(0);
-
-}
diff --git a/krita/colorspaces/wetsticky/ws/makefile b/krita/colorspaces/wetsticky/ws/makefile
deleted file mode 100644
index a14beb9a3..000000000
--- a/krita/colorspaces/wetsticky/ws/makefile
+++ /dev/null
@@ -1,55 +0,0 @@
-CFLAGS = -O3
-#CFLAGS =  -g #-std
-LINT_FLAGS = -bchxu
-
-SOURCES = load_ppm.c canvas.c engine.c x_interface.c main.c 
-OBJECTS = x_interface.o load_ppm.o engine.o canvas.o
-OBJECTS2= ogl_interface.o load_ppm.o engine.o canvas.o
-
-GFX_LIB=-L/usr/X11R6/lib \
-	-lXaw -lXmu -lXt -lX11 -lm  -lppm -lpgm -lpbm
-
-#PPM_LIBS = ppm/libppm.a  ppm/libpgm.a  ppm/libpbm.a
-
-OGL_LIBS=-L/usr/X11R6/lib \
-	 -laux -lGLU -lGL -lXext -lX11 -limp -lm -lppm -lpgm -lpbm
-
-OGL_INCS=-I/usr2/share/src/OpenGL/libaux
-
-CC=cc
-
-wet+sticky:  constants.h canvas.h engine.h $(OBJECTS) main.c
-	${CC} -o wet+sticky  $(CFLAGS) main.c $(OBJECTS) $(GFX_LIB)
-
-wet+sticky2: constants.h canvas.h engine.h $(OBJECTS2) main.c
-	${CC} -o wet+sticky2  $(CFLAGS) main.c $(OBJECTS2) $(OGL_LIBS) 
-
-cmap: cmap.o
-	${CC} -g -o cmap  cmap.o $(GFX_LIB)
-
-anim:  constants.h canvas.h engine.h anim.c
-	${CC} -o anim $(CFLAGS) anim.c $(GFX_LIB)
-
-engine.o:  types.h constants.h canvas.h engine.h
-	${CC} -c  $(CFLAGS)  engine3.c
-
-canvas.o:  types.h constants.h canvas.h
-	${CC} -c  $(CFLAGS)  canvas.c
-
-x_interface.o: constants.h types.h canvas.h engine.h x_interface.c
-	${CC} -c $(CFLAGS)  x_interface.c
-
-ogl_interface.o:  constants.h types.h canvas.h engine.h ogl_interface.c
-	${CC} -c $(CFLAGS) ${OGL_INCS} ogl_interface.c
-
-load_ppm.o: constants.h types.h canvas.h engine.h load_ppm.c
-	${CC} -c $(CFLAGS) load_ppm.c
-
-cmap.o: cmap.c
-	${CC} -c -g cmap.c
-
-clean:
-	/bin/rm -f core
-	/bin/rm -f *.o
-
-lint:	alint $(LINT_FLAGS) $(SOURCES)
diff --git a/krita/colorspaces/wetsticky/ws/mona.pgm b/krita/colorspaces/wetsticky/ws/mona.pgm
deleted file mode 100644
index 2060ee909..000000000
Binary files a/krita/colorspaces/wetsticky/ws/mona.pgm and /dev/null differ
diff --git a/krita/colorspaces/wetsticky/ws/ogl_interface.c b/krita/colorspaces/wetsticky/ws/ogl_interface.c
deleted file mode 100644
index 953b10c8a..000000000
--- a/krita/colorspaces/wetsticky/ws/ogl_interface.c
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
-        FILE:           xgl_interface.c
-        PURPOSE:        Creation and access to a OpenGL window
-			to wet+sticky using OpenGL
-        AUTHOR:         David England
-        VERSION:        1.00  (21-June-96)
-
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-
-Wet and Sticky is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Wet and Sticky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wet and Sticky; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 
-
-*/
-
-#include <GL/gl.h>
-#include <GL/glu.h>
-/*#include <imp.h>*/
-/*#include "aux.h"*/
-
-#include <stdio.h>
-
-#include "constants.h"
-#include "types.h"
-#include "engine.h"
-#include "canvas.h"
-
-static int count=0;
-
-
-void nullProc()
-{
-}
-
-void SetupCmap()
-{
-}
-
-float Value(n1, n2, hue)
-float n1, n2, hue;
-{
-	if (hue > 360 )
-		hue = hue -360;
-	else if (hue < 0 )
-		hue = hue +360;
-	if (hue < 60  )
-		return n1+(n2-n1)*hue/60;
-	else if (hue < 180 )
-		return n2;
-	else if (hue < 240 )
-		return n1+(n2-n1)*(240-hue)/60;
-	else return n1;
-}
-
-
-RGB_COLOUR hls_to_rgb(h, l, s)
-int h;
-float l;
-float s;
-{
-RGB_COLOUR rgb_colour;
-float m1, m2;
-
-if (l <= 0.5 )
-	m2 = l*(1+s);
-else 
-	m2 = l+s -  l*s;
-m1 = 2*l-m2;
-
-rgb_colour.r = Value(m1, m2, h+120);
-rgb_colour.g = Value(m1,m2, h);
-rgb_colour.b = Value(m1,m2, h-120);
-
-return (rgb_colour);
-}
-
-void
-DrawPoint(x,y,hls_col)
-int x;
-int y;
-HLS_COLOUR hls_col;
-/* Draw a point on the window and the back-up Pixmap */
-{
-RGB_COLOUR rgb_colour;
-
-	rgb_colour = hls_to_rgb(hls_col.hue,
-				hls_col.lightness,
-				hls_col.saturation);
-
-
-	printf("h %.2f l %.2f s %.2f\n", hls_col.hue, hls_col.lightness,
-				hls_col.saturation);
-
-	printf( "r %.2f g %.2f b %.2f\n", rgb_colour.r, rgb_colour.g,
-                                rgb_colour.b);
-
-	glColor3f(rgb_colour.r, rgb_colour.g, rgb_colour.b);
-
-	glBegin(GL_POINTS);
-		glVertex2s(x,y);
-		glVertex2s(x+1,y+1);
-	glEnd();
-
-}
-
-void
-DrawVolumePoint(x,y,attr)
-int x;
-int y;
-int attr;
-{
-/*set colour, draw point at offset */	
-}
-
-void
-DrawDrynessPoint(x,y,attr)
-int x;
-int y;
-int attr;
-/* Draw a point on the window and the back-up Pixmap */
-{
-
-}
-
-void
-ClearWindow()
-{
-
-}
-
-static void
-CleanWindow()
-/* Fill a window with a solid, white rectangle */
-{
-}
-
-
-void CreateWindows(argc, argv, width, height)
-int *argc;
-char **argv;
-int width;
-int height;
-
-{
-
-	auxInitDisplayMode( AUX_RGBA);
-
-	auxInitPosition(50,50, width*3, height);
-
-	auxInitWindow(argv[0]);
-
-	glClearColor(1.0, 1.0, 1.0, 0.0);
-
-	glClear(GL_COLOR_BUFFER_BIT);
-
-}
-
-
-static void
-draw_labels()
-{
-}
-
-void paint_cell(cell, x, y)
-CELL_PTR cell;
-int x, y;
-
-{
-    DrawPoint(x,y, cell->contents.colour);
-
-    /*  volColour is an index into the colour table in the range [0,255].
-        It is used to give a false colour image of the canvas's volume.  */
-
-    /*DrawVolumePoint(x,y,volColour);*/
-
-
-    /*DrawDrynessPoint(x,y,dryness);*/
-}
-
-
-
-
-void draw_full_canvas()
-{
-   int x, y;
-   CELL_PTR cell;
-   POINT p;
- 
-          glClear(GL_COLOR_BUFFER_BIT);
-
-  if (DEBUG) {
-     printf ("Starting to paint full canvas...");
-     fflush(stdout);
-   }
-
-   for (y=0; y < CANVAS_HEIGHT; y++) 
-     for (x=0; x < CANVAS_WIDTH; x++) {
-        p.x = x;
-        p.y = y;
-        cell = get_cell(p);
-        paint_cell(cell, x, y);
-     }
-
-   glFlush();
-	sleep(10);
-  
-  if (DEBUG) printf ("done.\n");
-}
-
-void
-bump_map()
-{
-	POINT p;
-	CELL_PTR cell;
-	register int x, y;
-	register int colour;
-
-
-   for (y=0; y < CANVAS_HEIGHT; y++) {
-     for (x=0; x < CANVAS_WIDTH; x++) {
-        p.x = x;
-        p.y = y;
-        cell = get_cell(p);
-	colour = (int) new_intensity_value(p);
-
-/*	colour = (int) (cell->contents.colour.hue *
-                        ((float) MAX_COLOUR_INDEX / 360.0));*/
-	DrawDrynessPoint(x,y,colour);
-     }
-  }
-
-}
-
-
-void evolve_paint()
-{
-   int k;
-   POINT p;
-   CELL_PTR cell;
-   int  new_x, new_y;
-   extern int count;
-
-	/*count++;
-	if (count > 500) {
-		fprintf(stderr,".");
-		fflush(stderr);
-		bump_map();
-	}*/
-
-   for (k=0; k < STEP_LIMIT; k++) single_step();
-   while (TRUE) {
-      next_cell_for_tqrepaint(&cell, &p);
-      if (cell == NIL) return;
-      paint_cell(cell, p.x, p.y);     
-	   glFlush();
-   } 
-      
-
-}
-
-void StartVolumeWindow()
-{
-}
-
-void StartDrynessWindow()
-{
-}
-
-void StartWindows()
-{
-
-
-        draw_full_canvas();
-	compute_shade_vectors(); /* Set vectors for shading */
-	draw_labels();
-
-	/*auxIdleFunc(evolve_paint);
-	
-	auxMainLoop(draw_full_canvas);*/
-
-
-}
-
-void
-stroke()
-{
-	
-}
-
-
-void
-stroke_motion()
-{
-
-}
-
diff --git a/krita/colorspaces/wetsticky/ws/test2.jpg b/krita/colorspaces/wetsticky/ws/test2.jpg
deleted file mode 100644
index 4254264f2..000000000
Binary files a/krita/colorspaces/wetsticky/ws/test2.jpg and /dev/null differ
diff --git a/krita/colorspaces/wetsticky/ws/test3.jpg b/krita/colorspaces/wetsticky/ws/test3.jpg
deleted file mode 100644
index 2b25a0d55..000000000
Binary files a/krita/colorspaces/wetsticky/ws/test3.jpg and /dev/null differ
diff --git a/krita/colorspaces/wetsticky/ws/types.h b/krita/colorspaces/wetsticky/ws/types.h
deleted file mode 100644
index af671f536..000000000
--- a/krita/colorspaces/wetsticky/ws/types.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-    FILE:        types.h
-    PURPOSE:    Defines all the main types used in Wet&Sticky.
-    AUTHORS:    Kevin Waite and David England
-    VERSION:    1.00  (10-May-91)
-
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-Wet and Sticky is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Wet and Sticky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wet and Sticky; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA 
-
-
-*/
-
-
-/*  A colour is specified as a vector in HLS space.  Hue is a value
-    in the range 0..360 degrees with 0 degrees being red.  Saturation
-    and Lightness are both in the range [0,1].  A lightness of 0 means
-    black, with 1 being white.  A totally saturated colour has saturation
-    of 1.
-*/
-
-typedef struct hls_colour { short int hue; float saturation, lightness; }
-HLS_COLOUR;
-
-typedef struct rgb_colour {float r; float g; float b;}
-RGB_COLOUR;
-
-
-/* The address of a cell on the canvas. */
-
-typedef struct point { int x, y; } POINT, *POINT_PTR;  
-
-
-/*  A direction can be NORTH, EAST, SOUTH or WEST. */
-
-typedef short int DIRECTION;  
-
-typedef short int BOOLEAN;  /*  FALSE or TRUE  */
-
-
-typedef struct paint {
-   HLS_COLOUR colour;
-   int        liquid_content;  /*  [0,100].  */
-   int        drying_rate;     /*  [0,100].  */
-   int        miscibility;     /*  [0,inf].  */
-} PAINT, *PAINT_PTR;
-
-
-/*  Defines the strength and direction of gravity for a cell.  */
-
-typedef struct gravity {
-   DIRECTION  direction;    
-   int        strength;     /*  [0,Infinity). */
-} GRAVITY, *GRAVITY_PTR;
-
-
-/*  Defines the contents and attributes of a cell on the canvas. */
-
-typedef struct cell {
-   PAINT       contents;    /* The paint in this cell. */
-   GRAVITY     gravity;     /* This cell's gravity.  */
-   short int   absorbancy;  /* How much paint can this cell hold? */
-   short int   volume;      /* The volume of paint. */
-} CELL, *CELL_PTR;
diff --git a/krita/colorspaces/wetsticky/ws/win_interface.h b/krita/colorspaces/wetsticky/ws/win_interface.h
deleted file mode 100644
index ee7a064b2..000000000
--- a/krita/colorspaces/wetsticky/ws/win_interface.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-Wet and Sticky is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Wet and Sticky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wet and Sticky; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA 
-
-
-*/
-
-extern void DrawPoint(/* int x, int y; int colour*/);
-extern int DrawVolumePoint(/* int x, int y; int attr*/);
-extern int DrawDrynessPoint(/* int x, int y; int attr*/);
-extern void ClearWindow();
-extern void CreateWindows(/* int *argc, char *argv[], int width, int height*/);
-extern void StartWindows(); /* enter infinite loop */
-extern void StartVolumeWindow(/*int width, int height*/); 
-                    /* display attribute window */
-extern void StartDrynessWindow(/*int width, int height*/); 
-                    /* display attribute window */
-
-
diff --git a/krita/colorspaces/wetsticky/ws/x_interface.c b/krita/colorspaces/wetsticky/ws/x_interface.c
deleted file mode 100644
index a8b54b3ea..000000000
--- a/krita/colorspaces/wetsticky/ws/x_interface.c
+++ /dev/null
@@ -1,795 +0,0 @@
-/*
-        FILE:           x_interface.c
-        PURPOSE:        Creation and access to an X windows interface
-			to wet+sticky using Athena Widgets
-        AUTHOR:         David England
-        VERSION:        1.00  (13-May-91)
-
-Copyright 1991, 1992, 2002, 2003 Tunde Cockshott, Kevin Waite, David England. 
-Contact David England d.england@livjm.ac.uk
-School of Computing and Maths Sciences,
-Liverpool John Moores University 
-Liverpool L3 3AF
-United Kingdom
-Phone +44 151 231 2271
-
-
-Wet and Sticky is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version. Wet and Sticky is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE. See the GNU General Public License for more details. You
-should have received a copy of the GNU General Public License along
-with Wet and Sticky; if not, write to the Free Software Foundation,
-Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-*/
-
-#include <X11/Xos.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/Intrinsic.h>
-
-#include <X11/cursorfont.h>
-#include <X11/StringDefs.h>
-
-#include <X11/Shell.h>
-#include <X11/Xaw/Box.h>
-#include <X11/Xaw/Label.h>
-#include <stdio.h>
-
-#include "constants.h"
-#include "types.h"
-#include "engine.h"
-#include "canvas.h"
-
-/* Window Heirarchy - 
-	Three shell widgets, one for colour output, two for attributes output
-	plus a back_up pixmap for redrawing
-*/
-
-static Widget top_level;
-static Widget 	    colour_shell;
-static Widget            colour_box;
-static Widget		        colour_canvas;
-static Pixmap		        colour_pm;
-
-static Widget      volume_shell;
-static Widget            volume_box;
-static Widget                  volume_canvas;
-static Pixmap		        volume_pm;
-
-static Widget      dryness_shell;
-static Widget            dryness_box;
-static Widget                  dryness_canvas;
-static Pixmap		        dryness_pm;
-
-static GC gc;
-static GC tmp_gc;
-static long tqmask;
-static XGCValues values;
-
-static Colormap cmap;
-static XColor colours[256];
-void stroke();
-void stroke_motion();
-
-Display *display;
-int screen;
-Screen          *screen_ptr;
-Window root;
-
-static int count=0;
-static int frame_count=0;
-char pix_file[64];
-
-static void
-expose_event(w, event)
-Widget          w;
-XEvent          *event;
-{
-/* Re-display the colour window if an exposure event is received */
-int width, height;
-
-	width = height = 300;
-
-        XCopyArea(XtDisplay(colour_canvas), colour_pm, 
-		XtWindow(colour_canvas), gc, 0, 0, width, height, 0,0);
-
-}
-
-
-static void
-expose_volume(w, event)
-Widget          w;
-XEvent          *event;
-{
-/* Re-display the volume window if an exposure event is received */
-int width, height;
-
-	width = 300;
-	height = 300;
-
-      XCopyArea(XtDisplay(volume_canvas), volume_pm,
-	      XtWindow(volume_canvas), gc, 0, 0, width, height, 0,0);
-      
-
-}
-
-static void
-expose_dryness(w, event)
-Widget          w;
-XEvent          *event;
-{
-/* Re-display the dryness window if an exposure event is received */
-int width, height;
-
-        width = height = 300;
-
-      XCopyArea(XtDisplay(dryness_canvas), dryness_pm,
-              XtWindow(dryness_canvas), gc, 0, 0, width, height, 0,0);
-
-
-}
-
-void expose_canvases()
-{
-int width, height;
-
-width = height = 300;
-
-	XCopyArea(XtDisplay(colour_canvas), colour_pm,
-                XtWindow(colour_canvas), gc, 0, 0, width, height, 0,0);
-
-      XCopyArea(XtDisplay(dryness_canvas), dryness_pm,
-              XtWindow(dryness_canvas), gc, 0, 0, width, height, 0,0);
-
-	XCopyArea(XtDisplay(dryness_canvas), dryness_pm,
-                      XtWindow(dryness_canvas), gc, 0, 0, 300, 300, 0,0);
-
-}
-
-int 
-GetHueValue(red, green, blue)
-int red;
-int green;
-int blue;
-{
-	XColor colour;
-
-	colour.red = red * 257;
-	colour.green = green * 257;
-	colour.blue = blue * 257;
-	colour.flags = DoRed | DoGreen | DoBlue;
-
-	if (XAllocColor(display, cmap, &colour) == 0)
-		fprintf(stderr,"colour allocation failed\n");
-
-	return (colour.pixel);	
-}
-
-
-void
-DrawPoint(x,y,colour)
-int x;
-int y;
-int colour;
-/* Draw a point on the window and the back-up Pixmap */
-{
-	/* PROBS ? */
-
-	XSetForeground(XtDisplay(top_level), gc, colours[colour].pixel);
-
-	XDrawPoint(XtDisplay(top_level), XtWindow(colour_canvas), gc, x, y);
-	XDrawPoint(XtDisplay(top_level), colour_pm, gc, x, y);
-}
-
-void
-DrawBackgroundPoint(x,y,colour)
-int x;
-int y;
-int colour;
-/* Draw a point on the window and the back-up Pixmap */
-{
-        /* PROBS ? */
-
-        XSetForeground(XtDisplay(top_level), gc, colours[colour].pixel);
-
-        XDrawPoint(XtDisplay(top_level), colour_pm, gc, x, y);
-}
-
-
-int
-DrawVolumePoint(x,y,attr)
-int x;
-int y;
-int attr;
-/* Draw a point on the window and the back-up Pixmap */
-{
-	if (XtWindow(volume_canvas) == NULL)
-		return (-1);
-
-	XSetForeground(XtDisplay(top_level), gc, colours[attr].pixel);
-
-	XDrawPoint(XtDisplay(top_level), XtWindow(volume_canvas), gc, x, y);
-	XDrawPoint(XtDisplay(top_level), volume_pm, gc, x, y);
-
-	return(0);
-}
-
-int
-DrawBackgroundVolumePoint(x,y,attr)
-int x;
-int y;
-int attr;
-/* Draw a point on the window and the back-up Pixmap */
-{
-        if (XtWindow(volume_canvas) == NULL)
-                return (-1);
-
-        XSetForeground(XtDisplay(top_level), gc, colours[attr].pixel);
-
-        XDrawPoint(XtDisplay(top_level), volume_pm, gc, x, y);
-
-        return(0);
-}
-
-
-int
-DrawDrynessPoint(x,y,attr)
-int x;
-int y;
-int attr;
-/* Draw a point on the window and the back-up Pixmap */
-{
-        /* later - use the range of the dryness to affect the colour
-                value
-        */
-
-        if (XtWindow(dryness_canvas) == NULL)
-                return (-1);
-
-        XSetForeground(XtDisplay(top_level), gc, colours[attr].pixel);
-
-/*        XDrawPoint(XtDisplay(top_level), XtWindow(dryness_canvas), gc, x, y);
-*/
-        XDrawPoint(XtDisplay(top_level), dryness_pm, gc, x, y);
-
-        return(0);
-}
-
-void
-ClearWindow()
-{
-	XClearWindow(XtDisplay(top_level), XtWindow(colour_canvas));
-}
-
-static void
-CleanWindow(win)
-Drawable win;
-/* Fill a window with a solid, white rectangle */
-{
-XGCValues values;
-long tqmask;
-
-	values.background = colours[0].pixel;
-        values.foreground = colours[255].pixel;;
-        values.fill_style = FillSolid;
-        values.function   = GXclear;
-
-
-         tqmask = GCBackground| GCForeground| GCFillStyle | GCFunction;
-
-         tmp_gc = XtGetGC(top_level,  tqmask, &values);
-
-        XFillRectangle(XtDisplay(top_level), win, tmp_gc, 0,  0, 300, 300);
-
-}
-
-void SetupCmap()
-{
-int i;
-
-        for (i=0;i<256;i++) {
-                colours[i].red = i*257;
-                colours[i].flags = DoRed | DoBlue | DoGreen;
-	}
-
-     /*   for (i=0;i<=127;i++)
-                colours[i].green = i*2*257;
-
-        for (i=128;i>0;i--)
-                colours[255-i].green = (i-1)*2*257;*/
-
-       for (i=0;i<64;i++)
-                colours[i].green = i*4*257;
-
-        for (i=64;i<128;i++)
-                colours[i].green = 65536-i*4*257;
- 
-         for (i=128;i<192;i++)
-                colours[i].green = (i-128)*2*257;
- 
-         for (i=192;i<255;i++)
-                colours[i].green = 65536-(i-128)*2*257;
-
-
-        for (i=0;i<256;i++)
-                colours[i].blue = 65536 - i*257;
-
-	colours[0].red = 65535;
-	colours[0].green = 65535;
-	colours[0].blue = 65535;
-}
-
-void
-SetupGreyMap()
-{
-int i;
-
-	 for (i=0;i<256;i++) {
-                colours[i].red = i*257;
-                colours[255 - i].flags = DoRed | DoBlue | DoGreen;
-	}
-
-
-         for (i=0;i<256;i++)
-                colours[i].green =  i*257;
-
-         for (i=0;i<256;i++)
-                colours[i].blue =  i*257;
-
-	colours[255].red = 255*257;
-	colours[255].green = 255*257;
-	colours[255].blue = 255*257;
-
-}
-
-
-void CreateWindows(argc, argv, width, height)
-int *argc;
-char **argv;
-int width;
-int height;
-/* Create colour window heirarchy and add event handlers */
-{
-	
-    static Arg args[]={
-        {XtNwidth, (XtArgVal) 0},
-        {XtNheight, (XtArgVal)0} };	
-
-	int i;
-
-	args[0].value = (XtArgVal)width;
-
-	args[1].value = (XtArgVal)height;
-
-	top_level =  XtInitialize("wet+sticky", "Wet+Sticky", NULL,
-                                                 0, argc, argv);
-
-
-	display = XtDisplay(top_level);
-        screen = DefaultScreen(display);
-	screen_ptr = ScreenOfDisplay(display, DefaultScreen(display));
-
-	root = RootWindow(display, screen);
-
-	colour_shell = XtCreateApplicationShell("colour_frame", 
-			topLevelShellWidgetClass, NULL, 0);
-
-
-
-        colour_box = XtCreateManagedWidget("colour_box", boxWidgetClass,
-                                                colour_shell, NULL, 0);
-
-
-        colour_canvas = XtCreateManagedWidget("", labelWidgetClass,
-                                        colour_box, args, XtNumber(args));
-
-
-	XtAddEventHandler(colour_canvas, ExposureMask, False, expose_event, 0);
-
-	XtAddEventHandler(colour_canvas, ButtonPressMask, False, stroke, 0);
-
-	XtAddEventHandler(colour_canvas, Button1MotionMask, 
-		False, stroke_motion, 0);
-
-	XtRealizeWidget(colour_shell);
-
-	cmap = XCreateColormap( display, XtWindow(colour_shell),
-                        XDefaultVisualOfScreen(screen_ptr), AllocAll);
-
-        for (i=0; i <= 255; i++)
-                colours[i].pixel = i;
-
-        XQueryColors(display, DefaultColormapOfScreen(screen_ptr),colours, 256);
-
-        SetupCmap();
-
-	/*SetupGreyMap();*/
-
-        XStoreColors(display, cmap, colours, 256);
-
-        i=0;
-        while( XAllocColorCells( display, DefaultColormapOfScreen(screen_ptr),
-                 True, NULL, 0, &colours[i].pixel, 1 ) ) {
-                        colours[i].pixel = i;
-                        i++;
-          }
-
-	XSetWindowColormap(display, XtWindow(colour_shell), cmap);
-
-        XInstallColormap(display, cmap);
-
-	tqmask = GCBackground| GCForeground|  GCFunction; 
-
-	values.function = GXcopy;
-	values.background = colours[0].pixel;
-	values.foreground = colours[255].pixel;
-
-
-	gc = XtGetGC(colour_canvas, tqmask, &values);
-
-	colour_pm = XCreatePixmap(XtDisplay(top_level), 
-			XtWindow(colour_shell), width, height,
-                            XDefaultDepth(XtDisplay(top_level), 0));
-
-	CleanWindow(colour_pm);
-
-}
-
-
-void StartVolumeWindow(width, height)
-int width;
-int height;
-/* Create Volume heirarchy and add event handlers */
-{
-	static Arg args[]={
-	{XtNwidth, (XtArgVal) 0},
-	{XtNheight, (XtArgVal)0} };
-
-	args[0].value = (XtArgVal)width;
-
-	args[1].value = (XtArgVal)height;
-
-	volume_shell = XtCreateApplicationShell("volume_frame",
-			topLevelShellWidgetClass, NULL, 0);
-
-	volume_box = XtCreateManagedWidget("volume_box", boxWidgetClass,
-				volume_shell, NULL, 0);
-											
-	volume_canvas = XtCreateManagedWidget("", labelWidgetClass,
-				volume_box, args, XtNumber(args));
-
-	XtAddEventHandler(volume_canvas, ExposureMask, False, 
-				expose_volume, 0);
-
-	XtRealizeWidget(volume_shell);
-
-	XSetWindowColormap(display, XtWindow(volume_shell), cmap);
-
-	volume_pm = XCreatePixmap(XtDisplay(top_level), 
-			XtWindow(colour_shell), width, height,
-                            XDefaultDepth(XtDisplay(top_level), 0));
-
-	CleanWindow(volume_pm);
-
-
-}
-
-void StartDrynessWindow(width, height)
-int width;
-int height;
-/* Create dryness heirarchy and add event handlers */
-{
-	static Arg args[]={
-	{XtNwidth, (XtArgVal) 0},
-	{XtNheight, (XtArgVal)0} };
-
-	char name[32];
-
-	args[0].value = (XtArgVal)width;
-
-	args[1].value = (XtArgVal)height;
-
-	dryness_shell = XtCreateApplicationShell("dryness_frame",
-			topLevelShellWidgetClass, NULL, 0);
-
-	dryness_box = XtCreateManagedWidget("dryness_box", boxWidgetClass,
-				dryness_shell, NULL, 0);
-	dryness_canvas = XtCreateManagedWidget("Name", labelWidgetClass,
-				dryness_box, args, XtNumber(args));
-
-	fprintf(stderr,"Bumps %d\n",(int)dryness_canvas);
-
-	XtAddEventHandler(dryness_canvas, ExposureMask, False, 
-				expose_dryness, 0);
-
-	XtRealizeWidget(dryness_shell);
-
-	XSetWindowColormap(display, XtWindow(dryness_shell), cmap);
-
-	dryness_pm = XCreatePixmap(XtDisplay(top_level), 
-			XtWindow(colour_shell), width, height,
-                            XDefaultDepth(XtDisplay(top_level), 0));
-
-	XStoreName(display, XtWindow(dryness_shell), "bumps");
-
-	CleanWindow(dryness_pm);
-
-}
-
-static void
-draw_labels()
-{
-	XSetForeground(XtDisplay(colour_shell), gc, colours[1].pixel);
-
-	XDrawString(XtDisplay(colour_shell), XtWindow(colour_canvas), gc, 10, 10, 
-			"Colour", strlen("Colour"));
-	XDrawString(XtDisplay(colour_shell), colour_pm, gc, 10, 10, 
-			"Colour", strlen("Colour")); 
-
-	XSetForeground(XtDisplay(colour_shell), gc, colours[128].pixel);
-
-	XDrawString(XtDisplay(colour_shell), XtWindow(volume_canvas), gc, 10, 10, 
-			"Volume", strlen("Volume")); 
-	XDrawString(XtDisplay(colour_shell), volume_pm, gc, 10, 10, 
-			"Volume", strlen("Volume"));
-
-        XSetForeground(XtDisplay(colour_shell), gc, colours[255].pixel);
-
-	XDrawString(XtDisplay(colour_shell), XtWindow(dryness_canvas), gc, 10, 10, 
-			"Bump Map", strlen("Bump Map"));
-	XDrawString(XtDisplay(colour_shell), dryness_pm, gc, 10, 10, 
-			"Bump Map", strlen("Bump Map"));
-}
-
-void paint_cell(cell, x, y)
-CELL_PTR cell;
-int x, y;
-
-{
-    int colour, volColour, dryness;
-    POINT p;
-
-    p.x = x;
-    p.y = y;
-
-    /*  The current display simply maps hue onto the indices of the colour
-        table.  This involves some scaling since hues are in the range [0,360)
-        with the colour table being [0,256).  */
-
-    colour = (int) (cell->contents.colour.hue * 
-			((float) MAX_COLOUR_INDEX / 360.0));
-
-    DrawBackgroundPoint(x,y,colour);   
-
-    /*  volColour is an index into the colour table in the range [0,255].
-        It is used to give a false colour image of the canvas's volume.  */
-
-    /*if (x < SCALE_WIDTH) return;    Don't draw over colour scale.  */
-
-    volColour = MIN(cell->volume * 2, 255);
-    volColour = MAX(volColour, 0);        
-				/* Make unfilled cells have a zero vol.  */
-
-    DrawBackgroundVolumePoint(x,y,volColour);
-
-    /*  Dryness will be in the range [0,255].  */
-    dryness = (cell->contents.liquid_content * 255) / 100;
-
-    /*DrawDrynessPoint(x,y,dryness);*/
-}
-
-
-
-void draw_false_colour_scale()
-/*  This routine places a scale along the top of the volume window
-    showing the colours being used.   Low is at the left edge. 
-    The colour palette has indices 0..255.    */
-{
-    int x, y;
-
-    /*for (x=0; x < 255; x++) 
-       for (y=0; y < SCALE_WIDTH; y++) DrawVolumePoint(x,y,MIN(x, 255));*/
-}
-
-
-void draw_full_canvas()
-{
-   int x, y;
-   CELL_PTR cell;
-   POINT p;
- 
-  if (DEBUG) {
-     printf ("Starting to paint full canvas...");
-     fflush(stdout);
-   }
-
-   for (y=0; y < CANVAS_HEIGHT; y++) 
-     for (x=0; x < CANVAS_WIDTH; x++) {
-        p.x = x;
-        p.y = y;
-        cell = get_cell(p);
-        paint_cell(cell, x, y);
-     }
-
-  expose_canvases();
-  
-  draw_false_colour_scale();
-  if (DEBUG) printf ("done.\n");
-}
-
-void
-bump_map()
-{
-	POINT p;
-	CELL_PTR cell;
-	register int x, y;
-	register int colour;
-
-
-   for (y=0; y < CANVAS_HEIGHT; y++) {
-     for (x=0; x < CANVAS_WIDTH; x++) {
-        p.x = x;
-        p.y = y;
-        cell = get_cell(p);
-	colour = (int) new_intensity_value(p);
-
-/*	colour = (int) (cell->contents.colour.hue *
-                        ((float) MAX_COLOUR_INDEX / 360.0));*/
-	DrawDrynessPoint(x,y,colour);
-     }
-  }
-
-}
-
-draw_cmap_line()
-
-{
-
-int i;
-
-	for (i=0; i< 255; i++) {
-	  DrawDrynessPoint(0,i,i);
-	}
-}
-
-void evolve_paint()
-{
-   int k;
-   POINT p;
-   CELL_PTR cell;
-   int  new_x, new_y;
-   Window tempChild;
-   extern Window root;
-   extern int count;
-   extern int frame_count;
-
-	count++;
-	if (count > 5000) {
-		fprintf(stderr,".");
-		fflush(stderr);
-		bump_map();
-		expose_canvases();
-
-		/*XTranslateCoordinates(display,XtWindow(dryness_canvas), root,
-			0,0, &new_x, &new_y, &tempChild);*/
-	/*if (frame_count < 10) 
-	sprintf(pix_file,"xwd -name bumps -out pixmap0%d.xwd &" ,frame_count);
-	else
-	sprintf(pix_file,"xwd -name bumps -out pixmap%d.xwd &" ,frame_count);
-	*/
-	
-
-		/*system(pix_file);*/
-	/*XWriteBitmapFile(display, pix_file,dryness_pm, 300, 300,-1,-1 );*/
-		count = 0;
-		frame_count++;	
-		/*if (frame_count > 250) {
-			fprintf(stderr,"Done\n");
-			sleep(2); 
-			exit(0);
-		} */
-		/*exit(0)*/;
-	} 
-
-
-
-   for (k=0; k < STEP_LIMIT; k++) single_step();
-   while (TRUE) {
-      next_cell_for_tqrepaint(&cell, &p);
-      if (cell == NIL) return;
-      paint_cell(cell, p.x, p.y);     
-   } 
-      
-}
-
-
-
-void StartWindows()
-{
-/* Start the X windows event loop and paint processing */
-XEvent event;
-
-
-        draw_full_canvas();
-	compute_shade_vectors(); /* Set vectors for shading */
-	draw_labels();
-
-	for (;;) {
-	   if (XtPending()) {
-		XtNextEvent(&event);
-		XtDispatchEvent(&event);
-	   }
-	   else {
-		/* Evolve paint and re-display*/
-		evolve_paint();
-	        }
-		
-	   } /* End for loop */
-
-
-}
-
-void
-stroke(w, client_data, event)
-Widget w;
-caddr_t client_data;
-XEvent *event;
-{
-/*	brush_stroke(event->xbutton.x, event->xbutton.y);*/
-
-
-	/*if ((XEvent *)event != (XEvent *)NULL)
-	else
-		printf("Null event\n"); */
-
-/*	DrawPoint(event->xbutton.x, event->xbutton.y, 128);
-        DrawVolumePoint(event->xbutton.x, event->xbutton.y, 128);
-        DrawDrynessPoint(event->xbutton.x, event->xbutton.y, 128);*/
-
-	
-        XSetForeground(XtDisplay(top_level), gc, colours[128].pixel);
-
-        XFillRectangle(XtDisplay(top_level), XtWindow(colour_canvas), gc,
-			 event->xmotion.x, event->xmotion.y ,1, 1);
-
-        XFillRectangle(XtDisplay(top_level), XtWindow(volume_canvas), gc,
-			 event->xmotion.x, event->xmotion.y ,1, 1);
-
-        XFillRectangle(XtDisplay(top_level), XtWindow(dryness_canvas), gc,
-			 event->xmotion.x, event->xmotion.y ,1, 1);
-
-	brush_stroke(event->xbutton.x, event->xbutton.y);
-}
-
-
-void
-stroke_motion(w, client_data, event)
-Widget w;
-caddr_t client_data;
-XEvent *event;
-{
-
-
-        /*if ((XEvent *)event != (XEvent *)NULL)
-        else
-                printf("Null event\n"); */
-
-
-        XSetForeground(XtDisplay(top_level), gc, colours[128].pixel);
-
-        XFillRectangle(XtDisplay(top_level), XtWindow(colour_canvas), gc,
-			 event->xmotion.x, event->xmotion.y ,1, 1);
-        XFillRectangle(XtDisplay(top_level), XtWindow(volume_canvas), gc,
-			 event->xmotion.x, event->xmotion.y ,1, 1);
-
-        XFillRectangle(XtDisplay(top_level), XtWindow(dryness_canvas), gc,
-			 event->xmotion.x, event->xmotion.y ,1, 1);
-
-      brush_stroke(event->xbutton.x, event->xbutton.y);
-}
-
diff --git a/krita/colorspaces/wetsticky/wstool.ui b/krita/colorspaces/wetsticky/wstool.ui
deleted file mode 100644
index 2f95d18b2..000000000
--- a/krita/colorspaces/wetsticky/wstool.ui
+++ /dev/null
@@ -1,262 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>WdgWSPaintOp</class>
-<widget class="TQWidget">
-    <property name="name">
-        <cstring>WdgWSPaintOp</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>582</width>
-            <height>359</height>
-        </rect>
-    </property>
-    <grid>
-        <property name="name">
-            <cstring>unnamed</cstring>
-        </property>
-        <widget class="TQGroupBox" row="0" column="0">
-            <property name="name">
-                <cstring>grpGravity</cstring>
-            </property>
-            <property name="title">
-                <string>&amp;Gravity</string>
-            </property>
-            <grid>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="TQCheckBox" row="0" column="0" rowspan="1" colspan="2">
-                    <property name="name">
-                        <cstring>chkGravity</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Paint &amp;gravity</string>
-                    </property>
-                </widget>
-                <widget class="TQLabel" row="1" column="0">
-                    <property name="name">
-                        <cstring>lblDirection</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Direction:</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>intDryingRate</cstring>
-                    </property>
-                </widget>
-                <widget class="TQComboBox" row="1" column="1">
-                    <item>
-                        <property name="text">
-                            <string>Up</string>
-                        </property>
-                    </item>
-                    <item>
-                        <property name="text">
-                            <string>Right</string>
-                        </property>
-                    </item>
-                    <item>
-                        <property name="text">
-                            <string>Down</string>
-                        </property>
-                    </item>
-                    <item>
-                        <property name="text">
-                            <string>Left</string>
-                        </property>
-                    </item>
-                    <property name="name">
-                        <cstring>cmbGravitationalDirection</cstring>
-                    </property>
-                </widget>
-                <widget class="TQLabel" row="2" column="0">
-                    <property name="name">
-                        <cstring>lblStrength</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Strength:</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>intGravitationalStrength</cstring>
-                    </property>
-                </widget>
-                <widget class="KIntNumInput" row="2" column="1">
-                    <property name="name">
-                        <cstring>intGravitationalStrength</cstring>
-                    </property>
-                    <property name="minValue">
-                        <number>0</number>
-                    </property>
-                </widget>
-            </grid>
-        </widget>
-        <widget class="TQGroupBox" row="1" column="0" rowspan="1" colspan="2">
-            <property name="name">
-                <cstring>grpPaint</cstring>
-            </property>
-            <property name="title">
-                <string>&amp;Paint</string>
-            </property>
-            <grid>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="TQLabel" row="0" column="0">
-                    <property name="name">
-                        <cstring>lblDryingRate</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Drying rate:</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>intDryingRate</cstring>
-                    </property>
-                </widget>
-                <widget class="TQCheckBox" row="1" column="0" rowspan="2" colspan="4">
-                    <property name="name">
-                        <cstring>chkLiquid</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Liquid content:</string>
-                    </property>
-                    <property name="checked">
-                        <bool>true</bool>
-                    </property>
-                </widget>
-                <widget class="KIntNumInput" row="0" column="1" rowspan="1" colspan="3">
-                    <property name="name">
-                        <cstring>intDryingRate</cstring>
-                    </property>
-                    <property name="minValue">
-                        <number>0</number>
-                    </property>
-                    <property name="maxValue">
-                        <number>100</number>
-                    </property>
-                </widget>
-                <widget class="KIntNumInput" row="2" column="2" rowspan="1" colspan="2">
-                    <property name="name">
-                        <cstring>intMiscibility</cstring>
-                    </property>
-                </widget>
-                <widget class="KIntNumInput" row="3" column="3">
-                    <property name="name">
-                        <cstring>intLiquidContent</cstring>
-                    </property>
-                    <property name="minValue">
-                        <number>0</number>
-                    </property>
-                    <property name="maxValue">
-                        <number>100</number>
-                    </property>
-                </widget>
-                <widget class="TQLabel" row="3" column="0" rowspan="1" colspan="3">
-                    <property name="name">
-                        <cstring>lblMiscibility</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Miscibility:</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>intMiscibility</cstring>
-                    </property>
-                </widget>
-            </grid>
-        </widget>
-        <widget class="TQGroupBox" row="0" column="1">
-            <property name="name">
-                <cstring>grpSubstrate</cstring>
-            </property>
-            <property name="title">
-                <string>&amp;Canvas</string>
-            </property>
-            <grid>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="KIntNumInput" row="3" column="1">
-                    <property name="name">
-                        <cstring>intHeight</cstring>
-                    </property>
-                </widget>
-                <widget class="TQLabel" row="3" column="0">
-                    <property name="name">
-                        <cstring>lblHeight</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Height:</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>intHeight</cstring>
-                    </property>
-                </widget>
-                <widget class="KIntNumInput" row="2" column="1">
-                    <property name="name">
-                        <cstring>intAbsorbency</cstring>
-                    </property>
-                    <property name="minValue">
-                        <number>0</number>
-                    </property>
-                    <property name="maxValue">
-                        <number>100</number>
-                    </property>
-                </widget>
-                <widget class="TQLabel" row="2" column="0">
-                    <property name="name">
-                        <cstring>lblAbsorbency</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Absorbency:</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>intAbsorbency</cstring>
-                    </property>
-                </widget>
-                <widget class="TQLabel" row="1" column="0">
-                    <property name="name">
-                        <cstring>lblColor</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Color:</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>bnCanvasColor</cstring>
-                    </property>
-                </widget>
-                <widget class="TQCheckBox" row="0" column="0" rowspan="1" colspan="2">
-                    <property name="name">
-                        <cstring>chkCanvas</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Paint canvas attributes</string>
-                    </property>
-                    <property name="accel">
-                        <string></string>
-                    </property>
-                </widget>
-                <widget class="KColorButton" row="1" column="1">
-                    <property name="name">
-                        <cstring>bnCanvasColor</cstring>
-                    </property>
-                    <property name="text">
-                        <string></string>
-                    </property>
-                </widget>
-            </grid>
-        </widget>
-    </grid>
-</widget>
-<customwidgets>
-</customwidgets>
-<tqlayoutdefaults spacing="6" margin="11"/>
-<includehints>
-    <includehint>knuminput.h</includehint>
-    <includehint>knuminput.h</includehint>
-    <includehint>knuminput.h</includehint>
-    <includehint>knuminput.h</includehint>
-    <includehint>knuminput.h</includehint>
-    <includehint>knuminput.h</includehint>
-</includehints>
-</UI>
diff --git a/krita/colorspaces/ycbcr_u16/Makefile.am b/krita/colorspaces/ycbcr_u16/Makefile.am
deleted file mode 100644
index d8759b34f..000000000
--- a/krita/colorspaces/ycbcr_u16/Makefile.am
+++ /dev/null
@@ -1,27 +0,0 @@
-# Install the desktop file needed to detect the plugin
-kde_services_DATA = krita_ycbcr_u16_plugin.desktop
-
-INCLUDES  =  -I$(srcdir)/../../sdk \
-	-I$(srcdir)/../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../kritacolor/ \
-	$(KOFFICE_INCLUDES) \
-	$(all_includes)
-
-lib_LTLIBRARIES = libkrita_ycbcr_u16.la
-
-libkrita_ycbcr_u16_la_LDFLAGS = $(all_libraries)
-libkrita_ycbcr_u16_la_LIBADD =  ../../kritacolor/libkritacolor.la
-
-# Install this plugin in the KDE modules directory
-kde_module_LTLIBRARIES = krita_ycbcr_u16_plugin.la
-
-# Srcs for the plugin
-krita_ycbcr_u16_plugin_la_SOURCES = ycbcr_u16_plugin.cc
-noinst_HEADERS = ycbcr_u16_plugin.h kis_ycbcr_u16_colorspace.h
-
-krita_ycbcr_u16_plugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -llcms
-krita_ycbcr_u16_plugin_la_LIBADD =  libkrita_ycbcr_u16.la ../../kritacolor/libkritacolor.la
-
-METASOURCES = AUTO
-
-libkrita_ycbcr_u16_la_SOURCES = kis_ycbcr_u16_colorspace.cc
diff --git a/krita/colorspaces/ycbcr_u16/kis_ycbcr_u16_colorspace.cc b/krita/colorspaces/ycbcr_u16/kis_ycbcr_u16_colorspace.cc
deleted file mode 100644
index d8ea896bc..000000000
--- a/krita/colorspaces/ycbcr_u16/kis_ycbcr_u16_colorspace.cc
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_ycbcr_u16_colorspace.h"
-
-#include <tqimage.h>
-
-#include <kis_integer_maths.h>
-
-const TQ_INT32 MAX_CHANNEL_YCbCr = 3;
-const TQ_INT32 MAX_CHANNEL_YCbCrA = 4;
-
-KisYCbCrU16ColorSpace::KisYCbCrU16ColorSpace(KisColorSpaceFactoryRegistry* tqparent, KisProfile* /*p*/)
-    : KisU16BaseColorSpace(KisID("YCbCrAU16", i18n("YCbCr (16-bit integer/channel)")), TYPE_YCbCr_16, icSigYCbCrData, tqparent, 0)
-{
-    m_channels.push_back(new KisChannelInfo(i18n("Y"), "Y", PIXEL_Y * sizeof(TQ_UINT16), KisChannelInfo::COLOR, KisChannelInfo::UINT16, sizeof(TQ_UINT16)));
-    m_channels.push_back(new KisChannelInfo(i18n("Cb"), "Cb", PIXEL_Cb * sizeof(TQ_UINT16), KisChannelInfo::COLOR, KisChannelInfo::UINT16, sizeof(TQ_UINT16)));
-    m_channels.push_back(new KisChannelInfo(i18n("Cr"), "Cr", PIXEL_Cr * sizeof(TQ_UINT16), KisChannelInfo::COLOR, KisChannelInfo::UINT16, sizeof(TQ_UINT16)));
-    m_channels.push_back(new KisChannelInfo(i18n("Alpha"), "A", PIXEL_ALPHA * sizeof(TQ_UINT16), KisChannelInfo::ALPHA, KisChannelInfo::UINT16, sizeof(TQ_UINT16)));
-
-    m_alphaPos = PIXEL_ALPHA * sizeof(TQ_UINT16);
-    KisAbstractColorSpace::init();
-}
-
-
-KisYCbCrU16ColorSpace::~KisYCbCrU16ColorSpace()
-{
-}
-
-void KisYCbCrU16ColorSpace::setPixel(TQ_UINT8 *dst, TQ_UINT16 Y, TQ_UINT16 Cb, TQ_UINT16 Cr, TQ_UINT16 alpha) const
-{
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->Y = Y;
-    dstPixel->Cb = Cb;
-    dstPixel->Cr = Cr;
-    dstPixel->alpha = alpha;
-}
-
-void KisYCbCrU16ColorSpace::getPixel(const TQ_UINT8 *src, TQ_UINT16 *Y, TQ_UINT16 *Cb, TQ_UINT16 *Cr, TQ_UINT16 *alpha) const
-{
-    const Pixel *srcPixel = reinterpret_cast<const Pixel *>(src);
-
-    *Y = srcPixel->Y;
-    *Cb = srcPixel->Cb;
-    *Cr = srcPixel->Cr;
-    *alpha = srcPixel->alpha;
-
-}
-
-void KisYCbCrU16ColorSpace::fromTQColor(const TQColor& c, TQ_UINT8 *dstU8, KisProfile * profile )
-{
-    if(getProfile())
-    {
-        KisU16BaseColorSpace::fromTQColor(c, dstU8, profile);
-    } else {
-        Pixel *dst = reinterpret_cast<Pixel *>(dstU8);
-        dst->Y = computeY( c.red(), c.green(), c.blue());
-        dst->Cb = computeCb( c.red(), c.green(), c.blue());
-        dst->Cr = computeCr( c.red(), c.green(), c.blue());
-    }
-}
-
-void KisYCbCrU16ColorSpace::fromTQColor(const TQColor& c, TQ_UINT8 opacity, TQ_UINT8 *dstU8, KisProfile * profile )
-{
-    if(getProfile())
-    {
-        KisU16BaseColorSpace::fromTQColor(c, opacity, dstU8, profile);
-    } else {
-        Pixel *dst = reinterpret_cast<Pixel *>(dstU8);
-        dst->Y = computeY( c.red(), c.green(), c.blue());
-        dst->Cb = computeCb( c.red(), c.green(), c.blue());
-        dst->Cr = computeCr( c.red(), c.green(), c.blue());
-        dst->alpha = opacity;
-    }
-}
-
-void KisYCbCrU16ColorSpace::toTQColor(const TQ_UINT8 *srcU8, TQColor *c, KisProfile * profile)
-{
-    if(getProfile())
-    {
-        KisU16BaseColorSpace::toTQColor(srcU8, c, profile);
-        
-    } else {
-        const Pixel *src = reinterpret_cast<const Pixel *>(srcU8);
-        c->setRgb(computeRed(src->Y,src->Cb,src->Cr) >> 8, computeGreen(src->Y,src->Cb,src->Cr) >> 8, computeBlue(src->Y,src->Cb,src->Cr) >> 8);
-    }
-}
-
-void KisYCbCrU16ColorSpace::toTQColor(const TQ_UINT8 *srcU8, TQColor *c, TQ_UINT8 *opacity, KisProfile * profile)
-{
-    if(getProfile())
-    {
-        KisU16BaseColorSpace::toTQColor(srcU8, c, opacity, profile);
-    } else {
-        const Pixel *src = reinterpret_cast<const Pixel *>(srcU8);
-        c->setRgb(computeRed(src->Y,src->Cb,src->Cr) >> 8, computeGreen(src->Y,src->Cb,src->Cr) >> 8, computeBlue(src->Y,src->Cb,src->Cr) >> 8);
-        *opacity = src->alpha;
-    }
-}
-
-TQ_UINT8 KisYCbCrU16ColorSpace::difference(const TQ_UINT8 *src1U8, const TQ_UINT8 *src2U8)
-{
-    if(getProfile())
-        return KisU16BaseColorSpace::difference(src1U8, src2U8);
-    const Pixel *src1 = reinterpret_cast<const Pixel *>(src1U8);
-    const Pixel *src2 = reinterpret_cast<const Pixel *>(src2U8);
-
-    return TQMAX(TQABS(src2->Y - src1->Y), TQMAX(TQABS(src2->Cb - src1->Cb), TQABS(src2->Cr - src1->Cr))) >> 8;
-
-}
-
-void KisYCbCrU16ColorSpace::mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const
-{
-    TQ_UINT16 totalY = 0, totalCb = 0, totalCr = 0, newAlpha = 0;
-
-    while (nColors--)
-    {
-        const Pixel *pixel = reinterpret_cast<const Pixel *>(*colors);
-
-        TQ_UINT16 alpha = pixel->alpha;
-        float alphaTimesWeight = alpha * *weights;
-
-        totalY += (TQ_UINT16)(pixel->Y * alphaTimesWeight);
-        totalCb += (TQ_UINT16)(pixel->Cb * alphaTimesWeight);
-        totalCr += (TQ_UINT16)(pixel->Cr * alphaTimesWeight);
-        newAlpha += (TQ_UINT16)(alphaTimesWeight);
-
-        weights++;
-        colors++;
-    }
-
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->alpha = newAlpha;
-
-    if (newAlpha > 0) {
-        totalY = totalY / newAlpha;
-        totalCb = totalCb / newAlpha;
-        totalCr = totalCr / newAlpha;
-    }
-
-    dstPixel->Y = totalY;
-    dstPixel->Cb = totalCb;
-    dstPixel->Cr = totalCr;
-}
-
-TQValueVector<KisChannelInfo *> KisYCbCrU16ColorSpace::channels() const {
-    return m_channels;
-}
-
-TQ_UINT32 KisYCbCrU16ColorSpace::nChannels() const {
-    return MAX_CHANNEL_YCbCrA;
-}
-
-TQ_UINT32 KisYCbCrU16ColorSpace::nColorChannels() const {
-    return MAX_CHANNEL_YCbCr;
-}
-
-TQ_UINT32 KisYCbCrU16ColorSpace::pixelSize() const {
-    return MAX_CHANNEL_YCbCrA * sizeof(TQ_UINT16);
-}
-
-
-TQImage KisYCbCrU16ColorSpace::convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width, TQ_INT32 height, KisProfile *  dstProfile, TQ_INT32 renderingIntent, float exposure )
-{
-    if(getProfile())
-        return KisU16BaseColorSpace::convertToTQImage( data, width, height, dstProfile, renderingIntent, exposure);
-    
-    TQImage img = TQImage(width, height, 32, 0, TQImage::LittleEndian);
-    img.setAlphaBuffer(true);
-
-    TQ_INT32 i = 0;
-    uchar *j = img.bits();
-
-    while ( i < width * height * MAX_CHANNEL_YCbCrA) {
-        TQ_UINT16 Y = *( data + i + PIXEL_Y );
-        TQ_UINT16 Cb = *( data + i + PIXEL_Cb );
-        TQ_UINT16 Cr = *( data + i + PIXEL_Cr );
-        *( j + 3)  = *( data + i + PIXEL_ALPHA ) >> 8;
-        *( j + 2 ) = computeRed(Y,Cb,Cr) >> 8;
-        *( j + 1 ) = computeGreen(Y,Cb,Cr) >> 8;
-        *( j + 0 ) = computeBlue(Y,Cb,Cr) >> 8;
-        i += MAX_CHANNEL_YCbCrA;
-        j += 4;
-    }
-    return img;
-}
-
-
-void KisYCbCrU16ColorSpace::bitBlt(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *srcAlphaMask, TQ_INT32 tqmaskRowStride, TQ_UINT8 opacity, TQ_INT32 rows, TQ_INT32 cols, const KisCompositeOp& op)
-{
-    switch (op.op()) {
-        case COMPOSITE_UNDEF:
-        // Undefined == no composition
-            break;
-        case COMPOSITE_OVER:
-            compositeOver(dst, dstRowStride, src, srcRowStride, srcAlphaMask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_COPY:
-            compositeCopy(dst, dstRowStride, src, srcRowStride, srcAlphaMask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_ERASE:
-            compositeErase(dst, dstRowStride, src, srcRowStride, srcAlphaMask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        default:
-            break;
-    }
-}
-
-void KisYCbCrU16ColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT16 *src = reinterpret_cast<const TQ_UINT16 *>(srcRowStart);
-        TQ_UINT16 *dst = reinterpret_cast<TQ_UINT16 *>(dstRowStart);
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-        TQ_INT32 columns = numColumns;
-
-        while (columns > 0) {
-
-            TQ_UINT16 srcAlpha = src[PIXEL_ALPHA];
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = UINT16_MULT(srcAlpha, UINT8_TO_UINT16(U8_tqmask));
-                }
-                tqmask++;
-            }
-
-            if (srcAlpha != U16_OPACITY_TRANSPARENT) {
-
-                if (opacity != OPACITY_OPAQUE) {
-                    srcAlpha = UINT16_MULT(srcAlpha, opacity);
-                }
-
-                if (srcAlpha == U16_OPACITY_OPAQUE) {
-                    memcpy(dst, src, MAX_CHANNEL_YCbCrA * sizeof(TQ_UINT16));
-                } else {
-                    TQ_UINT16 dstAlpha = dst[PIXEL_ALPHA];
-
-                    TQ_UINT16 srcBlend;
-
-                    if (dstAlpha == U16_OPACITY_OPAQUE) {
-                        srcBlend = srcAlpha;
-                    } else {
-                        TQ_UINT16 newAlpha = dstAlpha + UINT16_MULT(U16_OPACITY_OPAQUE - dstAlpha, srcAlpha);
-                        dst[PIXEL_ALPHA] = newAlpha;
-
-                        if (newAlpha != 0) {
-                            srcBlend = UINT16_DIVIDE(srcAlpha, newAlpha);
-                        } else {
-                            srcBlend = srcAlpha;
-                        }
-                    }
-
-                    if (srcBlend == U16_OPACITY_OPAQUE) {
-                        memcpy(dst, src, MAX_CHANNEL_YCbCr * sizeof(TQ_UINT16));
-                    } else {
-                        dst[PIXEL_Y] = UINT16_BLEND(src[PIXEL_Y], dst[PIXEL_Y], srcBlend);
-                        dst[PIXEL_Cb] = UINT16_BLEND(src[PIXEL_Cb], dst[PIXEL_Cb], srcBlend);
-                        dst[PIXEL_Cr] = UINT16_BLEND(src[PIXEL_Cr], dst[PIXEL_Cr], srcBlend);
-                    }
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_YCbCrA;
-            dst += MAX_CHANNEL_YCbCrA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart) {
-            tqmaskRowStart += tqmaskRowStride;
-        }
-    }
-}
-
-void KisYCbCrU16ColorSpace::compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowSize, const TQ_UINT8 *src, TQ_INT32 srcRowSize, const TQ_UINT8 *srcAlphaMask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 cols, TQ_UINT8 /*opacity*/)
-{
-    while (rows-- > 0)
-    {
-        const Pixel *s = reinterpret_cast<const Pixel *>(src);
-        Pixel *d = reinterpret_cast<Pixel *>(dst);
-        const TQ_UINT8 *tqmask = srcAlphaMask;
-    
-        for (TQ_INT32 i = cols; i > 0; i--, s++, d++)
-        {
-            TQ_UINT16 srcAlpha = s->alpha;
-    
-                // apply the alphatqmask
-            if (tqmask != 0) {
-                TQ_UINT8 U8_tqmask = *tqmask;
-    
-                if (U8_tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = UINT16_BLEND(srcAlpha, U16_OPACITY_OPAQUE, UINT8_TO_UINT16(U8_tqmask));
-                }
-                tqmask++;
-            }
-            d->alpha = UINT16_MULT(srcAlpha, d->alpha);
-        }
-    
-        dst += dstRowSize;
-        src += srcRowSize;
-        if(srcAlphaMask) {
-            srcAlphaMask += tqmaskRowStride;
-        }
-    }
-}
-
-KisCompositeOpList KisYCbCrU16ColorSpace::userVisiblecompositeOps() const
-{
-    KisCompositeOpList list;
-
-    list.append(KisCompositeOp(COMPOSITE_OVER));
-    return list;
-}
diff --git a/krita/colorspaces/ycbcr_u16/kis_ycbcr_u16_colorspace.h b/krita/colorspaces/ycbcr_u16/kis_ycbcr_u16_colorspace.h
deleted file mode 100644
index 9ee173def..000000000
--- a/krita/colorspaces/ycbcr_u16/kis_ycbcr_u16_colorspace.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_YCBCR_U16_COLORSPACE_H
-#define KIS_YCBCR_U16_COLORSPACE_H
-
-#include <kis_u16_base_colorspace.h>
-
-#include <klocale.h>
-
-#define LUMA_RED 0.2989
-#define LUMA_GREEN 0.587
-#define LUMA_BLUE 0.114
-
-class KisYCbCrU16ColorSpace : public KisU16BaseColorSpace
-{
-    public:
-        KisYCbCrU16ColorSpace(KisColorSpaceFactoryRegistry* tqparent, KisProfile* p);
-        ~KisYCbCrU16ColorSpace();
-        virtual bool willDegrade(ColorSpaceIndependence )
-        {
-            return false;
-        };
-    public:
-        void setPixel(TQ_UINT8 *pixel, TQ_UINT16 Y, TQ_UINT16 Cb, TQ_UINT16 Cr, TQ_UINT16 alpha) const;
-        void getPixel(const TQ_UINT8 *pixel, TQ_UINT16 *Y, TQ_UINT16 *Cb, TQ_UINT16 *Cr, TQ_UINT16 *alpha) const;
-
-        virtual void fromTQColor(const TQColor& c, TQ_UINT8 *dst, KisProfile * profile = 0);
-        virtual void fromTQColor(const TQColor& c, TQ_UINT8 opacity, TQ_UINT8 *dst, KisProfile * profile = 0);
-
-        virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, KisProfile * profile = 0);
-        virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, TQ_UINT8 *opacity, KisProfile * profile = 0);
-
-        virtual TQ_UINT8 difference(const TQ_UINT8 *src1, const TQ_UINT8 *src2);
-        virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const;
-
-        virtual TQValueVector<KisChannelInfo *> channels() const;
-        virtual TQ_UINT32 nChannels() const;
-        virtual TQ_UINT32 nColorChannels() const;
-        virtual TQ_UINT32 pixelSize() const;
-
-        virtual TQImage convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width, TQ_INT32 height,
-                                       KisProfile *  dstProfile,
-                                       TQ_INT32 renderingIntent,
-                                       float exposure = 0.0f);
-
-        virtual KisCompositeOpList userVisiblecompositeOps() const;
-
-    protected:
-
-        virtual void bitBlt(TQ_UINT8 *dst,
-                            TQ_INT32 dstRowStride,
-                            const TQ_UINT8 *src,
-                            TQ_INT32 srcRowStride,
-                            const TQ_UINT8 *srcAlphaMask,
-                            TQ_INT32 tqmaskRowStride,
-                            TQ_UINT8 opacity,
-                            TQ_INT32 rows,
-                            TQ_INT32 cols,
-                            const KisCompositeOp& op);
-
-        void compositeOver(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-        void compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-
-    private:
-#define CLAMP_TO_16BITCHANNEL(a) CLAMP(a, 0, TQ_UINT16_MAX)
-        inline TQ_UINT16 computeRed(TQ_UINT16 Y, TQ_UINT16 /*Cb*/, TQ_UINT16 Cr)
-        {
-            return (TQ_UINT16)( CLAMP_TO_16BITCHANNEL( (Cr - 32768)* (2-2*LUMA_RED) + Y )  );
-        }
-        inline TQ_UINT16 computeGreen(TQ_UINT16 Y, TQ_UINT16 Cb, TQ_UINT16 Cr)
-        {
-            return (TQ_UINT16)( CLAMP_TO_16BITCHANNEL( (Y - LUMA_BLUE * computeBlue(Y,Cb,Cr) - LUMA_RED * computeRed(Y,Cb,Cr) ) / LUMA_GREEN ) );
-        }
-        inline TQ_UINT16 computeBlue(TQ_UINT16 Y, TQ_UINT16 Cb, TQ_UINT16 /*Cr*/)
-        {
-            return (TQ_UINT16)( CLAMP_TO_16BITCHANNEL( (Cb - 32768)*(2 - 2 * LUMA_BLUE) + Y) );
-        }
-        inline TQ_UINT16 computeY( TQ_UINT16 r, TQ_UINT16 b, TQ_UINT16 g)
-        {
-            return (TQ_UINT16)( CLAMP_TO_16BITCHANNEL( LUMA_RED*r + LUMA_GREEN*g + LUMA_BLUE*b ) );
-        }
-        inline TQ_UINT16 computeCb( TQ_UINT16 r, TQ_UINT16 b, TQ_UINT16 g)
-        {
-            return (TQ_UINT16)( CLAMP_TO_16BITCHANNEL( (b - computeY(r,g,b))/(2-2*LUMA_BLUE) + 32768) );
-        }
-        inline TQ_UINT16 computeCr( TQ_UINT16 r, TQ_UINT16 b, TQ_UINT16 g)
-        {
-            return (TQ_UINT8)( CLAMP_TO_16BITCHANNEL( (r - computeY(r,g,b))/(2-2*LUMA_RED) + 32768) );
-        }
-#undef CLAMP_TO_16BITCHANNEL
-        
-        static const TQ_UINT8 PIXEL_Y = 0;
-        static const TQ_UINT8 PIXEL_Cb = 1;
-        static const TQ_UINT8 PIXEL_Cr = 2;
-        static const TQ_UINT8 PIXEL_ALPHA = 3;
-
-        struct Pixel {
-            TQ_UINT16 Y;
-            TQ_UINT16 Cb;
-            TQ_UINT16 Cr;
-            TQ_UINT16 alpha;
-        };
-};
-
-class KisYCbCrU16ColorSpaceFactory : public KisColorSpaceFactory
-{
-    public:
-    /**
-     * Krita definition for use in .kra files and internally: unchanging name +
-     * i18n'able description.
-     */
-        virtual KisID id() const { return KisID("YCbCrAU16", i18n("YCbCr (16-bit integer/channel)")); };
-
-    /**
-         * lcms colorspace type definition.
-     */
-        virtual TQ_UINT32 colorSpaceType() { return TYPE_YCbCr_16; };
-
-        virtual icColorSpaceSignature colorSpaceSignature() { return icSigYCbCrData; };
-
-        virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) { return new KisYCbCrU16ColorSpace(tqparent, p); };
-
-        virtual TQString defaultProfile() { return ""; };
-};
-
-
-#endif
diff --git a/krita/colorspaces/ycbcr_u16/krita_ycbcr_u16_plugin.desktop b/krita/colorspaces/ycbcr_u16/krita_ycbcr_u16_plugin.desktop
deleted file mode 100644
index 3581582d2..000000000
--- a/krita/colorspaces/ycbcr_u16/krita_ycbcr_u16_plugin.desktop
+++ /dev/null
@@ -1,71 +0,0 @@
-[Desktop Entry]
-Name=YCbCr Color Model (16-bit integer)
-Name[bg]=Цветови модел YCbCr (16 бита)
-Name[ca]=Model de color YCbCr (enters de 16 bits)
-Name[da]=YCbCr-farvemodel (16-bit heltal)
-Name[de]=YCbCr-Farbmodell (16-bit Ganzzahl)
-Name[el]=Χρωματικό μοντέλο YCbCr (16-bit ακέραιοι)
-Name[eo]=YCbCr-Kolormodelo (16-bita entjero)
-Name[es]=Modelo de color YCbCr (entero de 16 bits)
-Name[et]=YCbCr värvimudel (16-bitine täisarv)
-Name[fa]=مدل رنگ YCbCr )عدد صحیح ۱۶ بیتی(
-Name[fr]=Modèle de couleurs YCbCr (entiers 16 bits)
-Name[fy]=YCbCr-kleurmodel (16-bit integer)
-Name[gl]=Modelo de Cores YCbCr (inteiro de 16-bit)
-Name[hu]=YCbCr színmodell (16 bites egész)
-Name[it]=Modello di colore YCbCr (intero a 16 bit)
-Name[ja]=YCbCr カラーモデル (16 ビット整数)
-Name[km]=គំរូ​ពណ៌ CMYK (ចំនួន​គត់ ១៦ ប៊ីត)
-Name[lt]=YCbCr spalvų modelis (16-bitų sveikasis)
-Name[nb]=YCbCr-fargemodell (16-bit heltall)
-Name[nds]=YCbCr-Klöörmodell (16-Bit Heeltall)
-Name[ne]=वाईसी ी ी आर रङ मोडेल (१६-बिट इन्टिजर)
-Name[nl]=YCbCr-kleurmodel (16-bit integer)
-Name[pl]=Przestrzeń barw YCbCr (16-bitowa liczbowa całkowita)
-Name[pt]=Modelo de Cor YCbCr (inteiros de 16 bits)
-Name[pt_BR]=Modelo de Cor YCbCr (inteiros de 16 bits)
-Name[ru]=YCbCr (целое 16-бит)
-Name[sk]=Model farieb YCbCr (16-biové čísla)
-Name[sl]=Barvni model YCbCr (16-bitno celo število)
-Name[sr]=YCbCr модел боја (16-битно целобројно)
-Name[sr@Latn]=YCbCr model boja (16-bitno celobrojno)
-Name[sv]=YCbCr-färgmodell (16-bitars heltal)
-Name[uk]=Модель кольорів YCbCr (16-бітне ціле)
-Name[uz]=YCbCr rang usuli (16-bit butun)
-Name[uz@cyrillic]=YCbCr ранг усули (16-бит бутун)
-Name[zh_TW]=YCbCr 色彩模型 (16-bit 整數)
-Comment=Color model for 16-bit integer per channel YCbCr images
-Comment[bg]=Цветови модел за 16 битови YCbCr изображения
-Comment[ca]=Model de color d'enters de 16 bits per a canal d'imatges YCbCr
-Comment[da]=Farvemodel for 16-bit heltal pr kanal YCbCr-billeder
-Comment[de]=Farbmodell für 16-bit pro Kanal YCbCr-Bilder
-Comment[el]=Χρωματικό μοντέλο για 16-bit ακεραίους ανά κανάλι YCbCr εικόνες
-Comment[es]=Modelo de color de entero de 16 bits por canal para imágenes YCbCr
-Comment[et]=16-bitiste täisarvuliste kanalitega YCbCr-piltide värvimudel
-Comment[fa]=مدل رنگ برای عدد صحیح ۱۶ بیتی برای هر تصویر YCbCr مجرا
-Comment[fr]=Modèle de couleurs pour des images YCbCr à 16 bits par canal
-Comment[fy]=Kleurmodel foar16-bit/kanaal fan YCbCr-ôfbyldings
-Comment[gl]=Modelo de Cores para imaxes YCbCr de inteiro de 16-bit por canal
-Comment[hu]=Színmodell 16 bit/csatorna YCbCr képekhez
-Comment[it]=Modello di colore per immagini YCbCr a canale di 16 bit interi
-Comment[ja]=16 ビット整数/チャンネル YCbCr 画像のためのカラーモデル
-Comment[km]=គំរូ​ពណ៌​សម្រាប់​រូបភាព CMYK ចំនួនគត់ ១៦ ប៊ីត​ក្នុង​មួយ​ឆានែល
-Comment[nb]=Fargemodell for YCbCr-bilder med 16-bit heltall per kanal
-Comment[nds]=Klöörmodell för YCbCr-Biller mit 16-Bit Heeltall pro Kanaal
-Comment[ne]=प्रति च्यानल वाईसीबीसीआर छविहरूको १६-बिट इन्टिजरका लागि रङ मोडेल
-Comment[nl]=Kleurmodel voor 16-bit/kanaal van YCbCr-afbeeldingen
-Comment[pl]=Przestrzeń barw dla obrazków YCbCr z 16-bitowymi liczbami całkowitymi na kanał
-Comment[pt]=Modelo de cor para imagens YCbCr com 16 bits por canal
-Comment[pt_BR]=Modelo de cor para imagens YCbCr com 16 bits por canal
-Comment[ru]=Цветовое пространство YCbCr (целое 16-бит/канал)
-Comment[sk]=Model farieb pre YCbCr obrázky so 16 bitmi na kanál
-Comment[sl]=Barvni model za slike YCbCr s 16 biti/kanal
-Comment[sr]=Модел боја за YCbCr слике, 16-битно целобројно по каналу
-Comment[sr@Latn]=Model boja za YCbCr slike, 16-bitno celobrojno po kanalu
-Comment[sv]=Färgmodell för YCbCr-bilder med 16-bitars heltal per kanal
-Comment[uk]=Модель кольорів для зображень YCbCr з цілим 16-біт/канал
-Comment[zh_TW]=每色頻為 16-bit 的 YCbCr 圖片色彩模型
-ServiceTypes=Krita/ColorSpace
-Type=Service
-X-KDE-Library=krita_ycbcr_u16_plugin
-X-Krita-Version=2
diff --git a/krita/colorspaces/ycbcr_u16/ycbcr_u16_plugin.cc b/krita/colorspaces/ycbcr_u16/ycbcr_u16_plugin.cc
deleted file mode 100644
index f29f5603a..000000000
--- a/krita/colorspaces/ycbcr_u16/ycbcr_u16_plugin.cc
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * ycbcr_u16_plugin.cc -- Part of Krita
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <kinstance.h>
-#include <kgenericfactory.h>
-#include <kdebug.h>
-
-#include <kis_debug_areas.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_basic_histogram_producers.h>
-#include <kis_debug_areas.h>
-#include "ycbcr_u16_plugin.h"
-#include "kis_ycbcr_u16_colorspace.h"
-
-typedef KGenericFactory<YCbCrU16Plugin> YCbCrU16PluginFactory;
-K_EXPORT_COMPONENT_FACTORY( krita_ycbcr_u16_plugin, YCbCrU16PluginFactory( "krita" ) )
-
-
-YCbCrU16Plugin::YCbCrU16Plugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-    setInstance(YCbCrU16PluginFactory::instance());
-
-    if ( tqparent->inherits("KisColorSpaceFactoryRegistry") )
-    {
-        KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>( tqparent );
-
-        KisColorSpace * colorSpaceYCbCrU16 = new KisYCbCrU16ColorSpace(f, 0);
-        KisColorSpaceFactory * csf = new KisYCbCrU16ColorSpaceFactory();
-        Q_CHECK_PTR(colorSpaceYCbCrU16);
-        f->add(csf);
-        KisHistogramProducerFactoryRegistry::instance()->add(
-                new KisBasicHistogramProducerFactory<KisBasicU16HistogramProducer>
-                (KisID("YCbCr16HISTO", i18n("YCbCr16")), colorSpaceYCbCrU16) );
-    }
-
-}
-
-YCbCrU16Plugin::~YCbCrU16Plugin()
-{
-}
-
-#include "ycbcr_u16_plugin.moc"
diff --git a/krita/colorspaces/ycbcr_u16/ycbcr_u16_plugin.h b/krita/colorspaces/ycbcr_u16/ycbcr_u16_plugin.h
deleted file mode 100644
index ceb8ec6f4..000000000
--- a/krita/colorspaces/ycbcr_u16/ycbcr_u16_plugin.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef YCBCR_U16_PLUGIN_H_
-#define YCBCR_U16_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-/**
- * A plugin wrapper around the YCbCr U16 colour space strategy.
- */
-class YCbCrU16Plugin : public KParts::Plugin
-{
-    Q_OBJECT
-  TQ_OBJECT
-public:
-    YCbCrU16Plugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~YCbCrU16Plugin();
-
-};
-
-
-#endif // YCBCR_U16_PLUGIN_H_
diff --git a/krita/colorspaces/ycbcr_u8/Makefile.am b/krita/colorspaces/ycbcr_u8/Makefile.am
deleted file mode 100644
index 4016824f9..000000000
--- a/krita/colorspaces/ycbcr_u8/Makefile.am
+++ /dev/null
@@ -1,29 +0,0 @@
-# Install the desktop file needed to detect the plugin
-
-
-INCLUDES  =  -I$(srcdir)/../../sdk \
-	-I$(srcdir)/../../kritacolor/color_strategy/ \
-	-I$(srcdir)/../../kritacolor/ \
-	$(KOFFICE_INCLUDES) \
-	$(all_includes)
-
-lib_LTLIBRARIES = libkrita_ycbcr_u8.la
-
-libkrita_ycbcr_u8_la_LDFLAGS = $(all_libraries)
-libkrita_ycbcr_u8_la_LIBADD =  ../../kritacolor/libkritacolor.la
-
-# Install this plugin in the KDE modules directory
-kde_module_LTLIBRARIES = krita_ycbcr_u8_plugin.la
-
-# Srcs for the plugin
-krita_ycbcr_u8_plugin_la_SOURCES = ycbcr_u8_plugin.cc
-noinst_HEADERS = ycbcr_u8_plugin.h kis_ycbcr_u8_colorspace.h
-
-krita_ycbcr_u8_plugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -llcms
-krita_ycbcr_u8_plugin_la_LIBADD =  libkrita_ycbcr_u8.la ../../kritacolor/libkritacolor.la
-
-METASOURCES = AUTO
-
-
-libkrita_ycbcr_u8_la_SOURCES = kis_ycbcr_u8_colorspace.cc
-kde_services_DATA = krita_ycbcr_u8_plugin.desktop
diff --git a/krita/colorspaces/ycbcr_u8/kis_ycbcr_u8_colorspace.cc b/krita/colorspaces/ycbcr_u8/kis_ycbcr_u8_colorspace.cc
deleted file mode 100644
index 9c7548bfb..000000000
--- a/krita/colorspaces/ycbcr_u8/kis_ycbcr_u8_colorspace.cc
+++ /dev/null
@@ -1,344 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kis_ycbcr_u8_colorspace.h"
-
-#include <tqimage.h>
-
-#include <kis_integer_maths.h>
-
-const TQ_INT32 MAX_CHANNEL_YCbCr = 3;
-const TQ_INT32 MAX_CHANNEL_YCbCrA = 4;
-
-KisYCbCrU8ColorSpace::KisYCbCrU8ColorSpace(KisColorSpaceFactoryRegistry* tqparent, KisProfile* /*p*/)
-    : KisU8BaseColorSpace(KisID("YCbCrAU8", i18n("YCbCr (8-bit integer/channel)")), TYPE_YCbCr_8, icSigYCbCrData, tqparent, 0)
-{
-    m_channels.push_back(new KisChannelInfo(i18n("Y"), "Y", PIXEL_Y * sizeof(TQ_UINT8), KisChannelInfo::COLOR, KisChannelInfo::UINT8, sizeof(TQ_UINT8)));
-    m_channels.push_back(new KisChannelInfo(i18n("Cb"), "Cb", PIXEL_Cb * sizeof(TQ_UINT8), KisChannelInfo::COLOR, KisChannelInfo::UINT8, sizeof(TQ_UINT8)));
-    m_channels.push_back(new KisChannelInfo(i18n("Cr"), "Cr", PIXEL_Cr * sizeof(TQ_UINT8), KisChannelInfo::COLOR, KisChannelInfo::UINT8, sizeof(TQ_UINT8)));
-    m_channels.push_back(new KisChannelInfo(i18n("Alpha"), "A", PIXEL_ALPHA * sizeof(TQ_UINT8), KisChannelInfo::ALPHA, KisChannelInfo::UINT8, sizeof(TQ_UINT8)));
-
-    m_alphaPos = PIXEL_ALPHA * sizeof(TQ_UINT8);
-    KisAbstractColorSpace::init();
-}
-
-
-KisYCbCrU8ColorSpace::~KisYCbCrU8ColorSpace()
-{
-}
-
-void KisYCbCrU8ColorSpace::setPixel(TQ_UINT8 *dst, TQ_UINT8 Y, TQ_UINT8 Cb, TQ_UINT8 Cr, TQ_UINT8 alpha) const
-{
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->Y = Y;
-    dstPixel->Cb = Cb;
-    dstPixel->Cr = Cr;
-    dstPixel->alpha = alpha;
-}
-
-void KisYCbCrU8ColorSpace::getPixel(const TQ_UINT8 *src, TQ_UINT8 *Y, TQ_UINT8 *Cb, TQ_UINT8 *Cr, TQ_UINT8 *alpha) const
-{
-    const Pixel *srcPixel = reinterpret_cast<const Pixel *>(src);
-
-    *Y = srcPixel->Y;
-    *Cb = srcPixel->Cb;
-    *Cr = srcPixel->Cr;
-    *alpha = srcPixel->alpha;
-
-}
-
-void KisYCbCrU8ColorSpace::fromTQColor(const TQColor& c, TQ_UINT8 *dstU8, KisProfile * profile )
-{
-    if(getProfile())
-    {
-        KisU8BaseColorSpace::fromTQColor(c, dstU8, profile);
-    } else {
-        Pixel *dst = reinterpret_cast<Pixel *>(dstU8);
-        dst->Y = computeY( c.red(), c.green(), c.blue());
-        dst->Cb = computeCb( c.red(), c.green(), c.blue());
-        dst->Cr = computeCr( c.red(), c.green(), c.blue());
-    }
-}
-
-void KisYCbCrU8ColorSpace::fromTQColor(const TQColor& c, TQ_UINT8 opacity, TQ_UINT8 *dstU8, KisProfile * profile )
-{
-    if(getProfile())
-    {
-        KisU8BaseColorSpace::fromTQColor(c, opacity, dstU8, profile);
-    } else {
-        Pixel *dst = reinterpret_cast<Pixel *>(dstU8);
-        dst->Y = computeY( c.red(), c.green(), c.blue());
-        dst->Cb = computeCb( c.red(), c.green(), c.blue());
-        dst->Cr = computeCr( c.red(), c.green(), c.blue());
-        dst->alpha = opacity;
-    }
-}
-
-void KisYCbCrU8ColorSpace::toTQColor(const TQ_UINT8 *srcU8, TQColor *c, KisProfile * profile)
-{
-    if(getProfile())
-    {
-        KisU8BaseColorSpace::toTQColor(srcU8, c, profile);
-        
-    } else {
-        const Pixel *src = reinterpret_cast<const Pixel *>(srcU8);
-        c->setRgb(computeRed(src->Y,src->Cb,src->Cr), computeGreen(src->Y,src->Cb,src->Cr),     computeBlue(src->Y,src->Cb,src->Cr));
-    }
-}
-
-void KisYCbCrU8ColorSpace::toTQColor(const TQ_UINT8 *srcU8, TQColor *c, TQ_UINT8 *opacity, KisProfile * profile)
-{
-    if(getProfile())
-    {
-        KisU8BaseColorSpace::toTQColor(srcU8, c, opacity, profile);
-    } else {
-        const Pixel *src = reinterpret_cast<const Pixel *>(srcU8);
-        c->setRgb(computeRed(src->Y,src->Cb,src->Cr), computeGreen(src->Y,src->Cb,src->Cr), computeBlue(src->Y,src->Cb,src->Cr));
-        *opacity = src->alpha;
-    }
-}
-
-TQ_UINT8 KisYCbCrU8ColorSpace::difference(const TQ_UINT8 *src1U8, const TQ_UINT8 *src2U8)
-{
-    if(getProfile())
-        return KisU8BaseColorSpace::difference(src1U8, src2U8);
-    const Pixel *src1 = reinterpret_cast<const Pixel *>(src1U8);
-    const Pixel *src2 = reinterpret_cast<const Pixel *>(src2U8);
-
-    return TQMAX(TQABS(src2->Y - src1->Y), TQMAX(TQABS(src2->Cb - src1->Cb), TQABS(src2->Cr - src1->Cr)));
-
-}
-
-void KisYCbCrU8ColorSpace::mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const
-{
-    TQ_UINT8 totalY = 0, totalCb = 0, totalCr = 0, newAlpha = 0;
-
-    while (nColors--)
-    {
-        const Pixel *pixel = reinterpret_cast<const Pixel *>(*colors);
-
-        TQ_UINT8 alpha = pixel->alpha;
-        float alphaTimesWeight = alpha * *weights;
-
-        totalY += (TQ_UINT8)(pixel->Y * alphaTimesWeight);
-        totalCb += (TQ_UINT8)(pixel->Cb * alphaTimesWeight);
-        totalCr += (TQ_UINT8)(pixel->Cr * alphaTimesWeight);
-        newAlpha += (TQ_UINT8)(alphaTimesWeight);
-
-        weights++;
-        colors++;
-    }
-
-    Pixel *dstPixel = reinterpret_cast<Pixel *>(dst);
-
-    dstPixel->alpha = newAlpha;
-
-    if (newAlpha > 0) {
-        totalY = totalY / newAlpha;
-        totalCb = totalCb / newAlpha;
-        totalCr = totalCr / newAlpha;
-    }
-
-    dstPixel->Y = totalY;
-    dstPixel->Cb = totalCb;
-    dstPixel->Cr = totalCr;
-}
-
-TQValueVector<KisChannelInfo *> KisYCbCrU8ColorSpace::channels() const {
-    return m_channels;
-}
-
-TQ_UINT32 KisYCbCrU8ColorSpace::nChannels() const {
-    return MAX_CHANNEL_YCbCrA;
-}
-
-TQ_UINT32 KisYCbCrU8ColorSpace::nColorChannels() const {
-    return MAX_CHANNEL_YCbCr;
-}
-
-TQ_UINT32 KisYCbCrU8ColorSpace::pixelSize() const {
-    return MAX_CHANNEL_YCbCrA*sizeof(TQ_UINT8);
-}
-
-
-TQImage KisYCbCrU8ColorSpace::convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width, TQ_INT32 height, KisProfile *  dstProfile, TQ_INT32 renderingIntent, float exposure )
-{
-    if(getProfile())
-        return KisU8BaseColorSpace::convertToTQImage( data, width, height, dstProfile, renderingIntent, exposure);
-    
-    TQImage img = TQImage(width, height, 32, 0, TQImage::LittleEndian);
-    img.setAlphaBuffer(true);
-
-    TQ_INT32 i = 0;
-    uchar *j = img.bits();
-
-    while ( i < width * height * MAX_CHANNEL_YCbCrA) {
-        TQ_UINT8 Y = *( data + i + PIXEL_Y );
-        TQ_UINT8 Cb = *( data + i + PIXEL_Cb );
-        TQ_UINT8 Cr = *( data + i + PIXEL_Cr );
-        *( j + 3)  = *( data + i + PIXEL_ALPHA );
-        *( j + 2 ) = computeRed(Y,Cb,Cr);
-        *( j + 1 ) = computeGreen(Y,Cb,Cr);
-        *( j + 0 ) = computeBlue(Y,Cb,Cr);
-        i += MAX_CHANNEL_YCbCrA;
-        j += 4;
-    }
-    return img;
-}
-
-
-void KisYCbCrU8ColorSpace::bitBlt(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *srcAlphaMask, TQ_INT32 tqmaskRowStride, TQ_UINT8 opacity, TQ_INT32 rows, TQ_INT32 cols, const KisCompositeOp& op)
-{
-    switch (op.op()) {
-        case COMPOSITE_UNDEF:
-        // Undefined == no composition
-            break;
-        case COMPOSITE_OVER:
-            compositeOver(dst, dstRowStride, src, srcRowStride, srcAlphaMask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_COPY:
-            compositeCopy(dst, dstRowStride, src, srcRowStride, srcAlphaMask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        case COMPOSITE_ERASE:
-            compositeErase(dst, dstRowStride, src, srcRowStride, srcAlphaMask, tqmaskRowStride, rows, cols, opacity);
-            break;
-        default:
-            break;
-    }
-}
-
-void KisYCbCrU8ColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
-{
-    while (rows > 0) {
-
-        const TQ_UINT8 *src = srcRowStart;
-        TQ_UINT8 *dst = dstRowStart;
-        const TQ_UINT8 *tqmask = tqmaskRowStart;
-        TQ_INT32 columns = numColumns;
-
-        while (columns > 0) {
-
-            TQ_UINT8 srcAlpha = src[PIXEL_ALPHA];
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                if (*tqmask != OPACITY_OPAQUE) {
-                    srcAlpha *= *tqmask;
-                }
-                tqmask++;
-            }
-
-            if (srcAlpha > OPACITY_TRANSPARENT) {
-
-                if (opacity < OPACITY_OPAQUE) {
-                    srcAlpha *= opacity;
-                }
-
-                if (srcAlpha == OPACITY_OPAQUE) {
-                    memcpy(dst, src, MAX_CHANNEL_YCbCrA * sizeof(TQ_UINT8));
-                } else {
-                    TQ_UINT8 dstAlpha = dst[PIXEL_ALPHA];
-
-                    TQ_UINT8 srcBlend;
-
-                    if (dstAlpha == OPACITY_OPAQUE ) {
-                        srcBlend = srcAlpha;
-                    } else {
-                        TQ_UINT8 newAlpha = dstAlpha + (OPACITY_OPAQUE - dstAlpha) * srcAlpha;
-                        dst[PIXEL_ALPHA] = newAlpha;
-
-                        if (newAlpha > 0) {
-                            srcBlend = srcAlpha / newAlpha;
-                        } else {
-                            srcBlend = srcAlpha;
-                        }
-                    }
-
-                    if (srcBlend == OPACITY_OPAQUE) {
-                        memcpy(dst, src, MAX_CHANNEL_YCbCr * sizeof(TQ_UINT8));
-                    } else {
-                        dst[PIXEL_Y] = UINT8_BLEND(src[PIXEL_Y], dst[PIXEL_Y], srcBlend);
-                        dst[PIXEL_Cb] = UINT8_BLEND(src[PIXEL_Cb], dst[PIXEL_Cb], srcBlend);
-                        dst[PIXEL_Cr] = UINT8_BLEND(src[PIXEL_Cr], dst[PIXEL_Cr], srcBlend);
-                    }
-                }
-            }
-
-            columns--;
-            src += MAX_CHANNEL_YCbCrA;
-            dst += MAX_CHANNEL_YCbCrA;
-        }
-
-        rows--;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-        if(tqmaskRowStart) {
-            tqmaskRowStart += tqmaskRowStride;
-        }
-    }
-}
-
-void KisYCbCrU8ColorSpace::compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowSize, const TQ_UINT8 *src, TQ_INT32 srcRowSize, const TQ_UINT8 *srcAlphaMask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 cols, TQ_UINT8 /*opacity*/)
-{
-    while (rows-- > 0)
-    {
-        const Pixel *s = reinterpret_cast<const Pixel *>(src);
-        Pixel *d = reinterpret_cast<Pixel *>(dst);
-        const TQ_UINT8 *tqmask = srcAlphaMask;
-
-        for (TQ_INT32 i = cols; i > 0; i--, s++, d++)
-        {
-            TQ_UINT8 srcAlpha = s -> alpha;
-
-            // apply the alphatqmask
-            if (tqmask != 0) {
-                if (*tqmask != OPACITY_OPAQUE) {
-                    srcAlpha = *tqmask;
-                }
-                tqmask++;
-            }
-            d -> alpha = srcAlpha * d -> alpha;
-        }
-
-        dst += dstRowSize;
-        src += srcRowSize;
-        if(srcAlphaMask) {
-            srcAlphaMask += tqmaskRowStride;
-        }
-    }
-}
-
-void KisYCbCrU8ColorSpace::compositeCopy(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 */*tqmask*/, TQ_INT32 /*tqmaskRowStride*/, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 /*opacity*/)
-{
-    while (rows > 0) {
-        memcpy(dstRowStart, srcRowStart, numColumns * sizeof(Pixel));
-        --rows;
-        srcRowStart += srcRowStride;
-        dstRowStart += dstRowStride;
-    }
-}
-
-KisCompositeOpList KisYCbCrU8ColorSpace::userVisiblecompositeOps() const
-{
-    KisCompositeOpList list;
-
-    list.append(KisCompositeOp(COMPOSITE_OVER));
-    return list;
-}
diff --git a/krita/colorspaces/ycbcr_u8/kis_ycbcr_u8_colorspace.h b/krita/colorspaces/ycbcr_u8/kis_ycbcr_u8_colorspace.h
deleted file mode 100644
index 479a7179c..000000000
--- a/krita/colorspaces/ycbcr_u8/kis_ycbcr_u8_colorspace.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_YCBCR_U8_COLORSPACE_H
-#define KIS_YCBCR_U8_COLORSPACE_H
-
-#include <kis_u8_base_colorspace.h>
-
-#include <klocale.h>
-
-#define LUMA_RED 0.2989
-#define LUMA_GREEN 0.587
-#define LUMA_BLUE 0.114
-
-class KisYCbCrU8ColorSpace : public KisU8BaseColorSpace
-{
-    public:
-        KisYCbCrU8ColorSpace(KisColorSpaceFactoryRegistry* tqparent, KisProfile* p);
-        ~KisYCbCrU8ColorSpace();
-        virtual bool willDegrade(ColorSpaceIndependence )
-        {
-            return false;
-        };
-    public:
-        void setPixel(TQ_UINT8 *pixel, TQ_UINT8 Y, TQ_UINT8 Cb, TQ_UINT8 Cr, TQ_UINT8 alpha) const;
-        void getPixel(const TQ_UINT8 *pixel, TQ_UINT8 *Y, TQ_UINT8 *Cb, TQ_UINT8 *Cr, TQ_UINT8 *alpha) const;
-
-        virtual void fromTQColor(const TQColor& c, TQ_UINT8 *dst, KisProfile * profile = 0);
-        virtual void fromTQColor(const TQColor& c, TQ_UINT8 opacity, TQ_UINT8 *dst, KisProfile * profile = 0);
-
-        virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, KisProfile * profile = 0);
-        virtual void toTQColor(const TQ_UINT8 *src, TQColor *c, TQ_UINT8 *opacity, KisProfile * profile = 0);
-
-        virtual TQ_UINT8 difference(const TQ_UINT8 *src1, const TQ_UINT8 *src2);
-        virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const;
-
-        virtual TQValueVector<KisChannelInfo *> channels() const;
-        virtual TQ_UINT32 nChannels() const;
-        virtual TQ_UINT32 nColorChannels() const;
-        virtual TQ_UINT32 pixelSize() const;
-
-        virtual TQImage convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width, TQ_INT32 height,
-                                       KisProfile *  dstProfile,
-                                       TQ_INT32 renderingIntent,
-                                       float exposure = 0.0f);
-
-        virtual KisCompositeOpList userVisiblecompositeOps() const;
-
-    protected:
-
-        virtual void bitBlt(TQ_UINT8 *dst,
-                            TQ_INT32 dstRowStride,
-                            const TQ_UINT8 *src,
-                            TQ_INT32 srcRowStride,
-                            const TQ_UINT8 *srcAlphaMask,
-                            TQ_INT32 tqmaskRowStride,
-                            TQ_UINT8 opacity,
-                            TQ_INT32 rows,
-                            TQ_INT32 cols,
-                            const KisCompositeOp& op);
-
-        void compositeOver(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-        void compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-        void compositeCopy(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT8 opacity);
-
-    private:
-#define CLAMP_TO_8BITCHANNEL(a) CLAMP(a, 0, TQ_UINT8_MAX)
-        inline TQ_UINT8 computeRed(TQ_UINT8 Y, TQ_UINT8 /*Cb*/, TQ_UINT8 Cr)
-        {
-            return (TQ_UINT8)( CLAMP_TO_8BITCHANNEL( (Cr - 128)* (2-2*LUMA_RED) + Y )  );
-        }
-        inline TQ_UINT8 computeGreen(TQ_UINT8 Y, TQ_UINT8 Cb, TQ_UINT8 Cr)
-        {
-            return (TQ_UINT8)( CLAMP_TO_8BITCHANNEL( (Y - LUMA_BLUE * computeBlue(Y,Cb,Cr) - LUMA_RED * computeRed(Y,Cb,Cr) ) / LUMA_GREEN ) );
-        }
-        inline TQ_UINT8 computeBlue(TQ_UINT8 Y, TQ_UINT8 Cb, TQ_UINT8 /*Cr*/)
-        {
-            return (TQ_UINT8)( CLAMP_TO_8BITCHANNEL( (Cb - 128)*(2 - 2 * LUMA_BLUE) + Y) );
-        }
-        inline TQ_UINT8 computeY( TQ_UINT8 r, TQ_UINT8 b, TQ_UINT8 g)
-        {
-            return (TQ_UINT8)( CLAMP_TO_8BITCHANNEL( LUMA_RED*r + LUMA_GREEN*g + LUMA_BLUE*b ) );
-        }
-        inline TQ_UINT8 computeCb( TQ_UINT8 r, TQ_UINT8 b, TQ_UINT8 g)
-        {
-            return (TQ_UINT8)( CLAMP_TO_8BITCHANNEL( (b - computeY(r,g,b))/(2-2*LUMA_BLUE) + 128) );
-        }
-        inline TQ_UINT8 computeCr( TQ_UINT8 r, TQ_UINT8 b, TQ_UINT8 g)
-        {
-            return (TQ_UINT8)( CLAMP_TO_8BITCHANNEL( (r - computeY(r,g,b))/(2-2*LUMA_RED) + 128) );
-        }
-#undef CLAMP_TO_8BITCHANNEL
-
-        static const TQ_UINT8 PIXEL_Y = 0;
-        static const TQ_UINT8 PIXEL_Cb = 1;
-        static const TQ_UINT8 PIXEL_Cr = 2;
-        static const TQ_UINT8 PIXEL_ALPHA = 3;
-
-        struct Pixel {
-            TQ_UINT8 Y;
-            TQ_UINT8 Cb;
-            TQ_UINT8 Cr;
-            TQ_UINT8 alpha;
-        };
-};
-
-class KisYCbCrU8ColorSpaceFactory : public KisColorSpaceFactory
-{
-    public:
-    /**
-     * Krita definition for use in .kra files and internally: unchanging name +
-     * i18n'able description.
-     */
-        virtual KisID id() const { return KisID("YCbCrAU8", i18n("YCbCr (8-bit integer/channel)")); };
-
-    /**
-         * lcms colorspace type definition.
-     */
-        virtual TQ_UINT32 colorSpaceType() { return TYPE_YCbCr_8; };
-
-        virtual icColorSpaceSignature colorSpaceSignature() { return icSigYCbCrData; };
-
-        virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) { return new KisYCbCrU8ColorSpace(tqparent, p); };
-
-        virtual TQString defaultProfile() { return ""; };
-};
-
-#endif
diff --git a/krita/colorspaces/ycbcr_u8/krita_ycbcr_u8_plugin.desktop b/krita/colorspaces/ycbcr_u8/krita_ycbcr_u8_plugin.desktop
deleted file mode 100644
index 2c29e9729..000000000
--- a/krita/colorspaces/ycbcr_u8/krita_ycbcr_u8_plugin.desktop
+++ /dev/null
@@ -1,71 +0,0 @@
-[Desktop Entry]
-Name=YCbCr Color Model (8-bit integer)
-Name[bg]=Цветови модел YCbCr (16 бита)
-Name[ca]=Model de color YCbCr (enters de 16 bits)
-Name[da]=YCbCr-farvemodel (8-bit heltal)
-Name[de]=YCbCr-Farbmodell (8-bit Ganzzahl)
-Name[el]=Χρωματικό μοντέλο YCbCr (16-bit ακέραιοι)
-Name[eo]=YCbCr-Kolormodelo (8-bita entjero)
-Name[es]=Modelo de color YCbCr (entero de 8 bits)
-Name[et]=YCbCr värvimudel (8-bitine täisarv)
-Name[fa]=مدل رنگ YCbCr )عدد صحیح ۸ بیتی(
-Name[fr]=Modèle de couleurs YCbCr (entiers 8 bits)
-Name[fy]=YCbCr-kleurmodel (8-bit integer)
-Name[gl]=Modelo de Cores YCbCr (inteiro de 8-bit)
-Name[hu]=YCbCr színmodell (8 bites egész)
-Name[it]=Modello di colore YCbCr (intero a 8 bit)
-Name[ja]=YCbCr カラーモデル (8 ビット整数)
-Name[km]=គំរូ​ពណ៌ CMYK (ចំនួនគត់ ១៦ ប៊ីត)
-Name[lt]=YCbCr spalvų modelis (8-bitų sveikasis)
-Name[nb]=YCbCr fargemodell (8-bit heltall)
-Name[nds]=YCbCr-Klöörmodell (8-Bit Heeltall)
-Name[ne]=वाईसीबीसीआर रङ मोडेल (८-बिट इन्टिजर)
-Name[nl]=YCbCr-kleurmodel (8-bit integer)
-Name[pl]=Przestrzeń barw YCbCr (8-bitowa liczbowa całkowita)
-Name[pt]=Modelo de Cor YCbCr (inteiros de 8 bits)
-Name[pt_BR]=Modelo de Cor YCbCr (inteiros de 8 bits)
-Name[ru]=YCbCr (целое 8-бит)
-Name[sk]=Model farieb YCbCr (8-biové čísla)
-Name[sl]=Barvni model YCbCr (8-bitno celo število)
-Name[sr]=YCbCr модел боја (8-битно целобројно)
-Name[sr@Latn]=YCbCr model boja (8-bitno celobrojno)
-Name[sv]=YCbCr-färgmodell (8-bitars heltal)
-Name[uk]=Модель кольорів YCbCr (ціле 8-біт)
-Name[uz]=YCbCr rang usuli (8-bit butun)
-Name[uz@cyrillic]=YCbCr ранг усули (8-бит бутун)
-Name[zh_TW]=YCbCr 色彩模型 (16-bit 整數)
-Comment=Color model for 8-bit integer per channel YCbCr images
-Comment[bg]=Цветови модел за 16 битови YCbCr изображения
-Comment[ca]=Model de color d'enters de 16 bits per a canal d'imatges YCbCr
-Comment[da]=Farvemodel for 8-bit heltal pr kanal YCbCr-billeder
-Comment[de]=Farbmodell für 8-bit pro Kanal YCbCr-Bilder
-Comment[el]=Χρωματικό μοντέλο για 8-bit ακεραίους ανά κανάλι YCbCr εικόνες
-Comment[es]=Modelo de color de entero de 16 bits por canal para imágenes YCbCr
-Comment[et]=8-bitiste täisarvuliste kanalitega YCbCr-piltide värvimudel
-Comment[fa]=مدل رنگ برای عدد صحیح ۸ بیتی برای هر تصویر YCbCr مجرا
-Comment[fr]=Modèle de couleurs pour des images YCbCr à 8 bits par canal
-Comment[fy]=Kleurmodel foar 8-bit/kanaal fan YCbCr-ôfbyldings
-Comment[gl]=Modelo de Cores para imaxes YCbCr de inteiro de 8-bit por canal
-Comment[hu]=Színmodell 8 bit/csatorna YCbCr képekhez
-Comment[it]=Modello di colore per immagini YCbCr a canale di 8 bit interi
-Comment[ja]=8 ビット整数/チャンネル YCbCr 画像のためのカラーモデル
-Comment[km]=ម៉ូដែល​ពណ៌​សម្រាប់​ចំនួន​គត់ 8-bit ក្នុង​ឆានែល​រូបភាព YCbCr
-Comment[nb]=Fargemodell for YCbCr-bilder med 8 bit heltall per kanal
-Comment[nds]=Klöörmodell för YCbCr-Biller mit 8-Bit Heeltall pro Kanaal
-Comment[ne]=प्रति वाईसीबीसीआर छविहरूको ८-बिट इन्टिजरका लागि रङ मोडेल
-Comment[nl]=Kleurmodel voor 8-bit/kanaal van YCbCr-afbeeldingen
-Comment[pl]=Przestrzeń barw dla obrazków YCbCr z 8-bitowymi liczbami całkowitymi na kanał
-Comment[pt]=Modelo de cor para imagens YCbCr com 8 bits por canal
-Comment[pt_BR]=Modelo de cor para imagens YCbCr com 8 bits por canal
-Comment[ru]=Цветовое пространство YCbCr (целое 8-бит/канал)
-Comment[sk]=Model farieb pre YCbCr obrázky s 8 bitmi na kanál
-Comment[sl]=Barvni model za slike YCbCr z 8 biti/kanal
-Comment[sr]=Модел боја за YCbCr слике, 8-битно целобројно по каналу
-Comment[sr@Latn]=Model boja za YCbCr slike, 8-bitno celobrojno po kanalu
-Comment[sv]=Färgmodell för YCbCr-bilder med 8-bitars heltal per kanal
-Comment[uk]=Модель кольорів для зображень YCbCr з цілим 8-біт/канал
-Comment[zh_TW]=每色頻為 16-bit 的 YCbCr 圖片色彩模型
-ServiceTypes=Krita/ColorSpace
-Type=Service
-X-KDE-Library=krita_ycbcr_u8_plugin
-X-Krita-Version=2
diff --git a/krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.cc b/krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.cc
deleted file mode 100644
index 471b203e8..000000000
--- a/krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.cc
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * ycbcr_u8_plugin.cc -- Part of Krita
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "ycbcr_u8_plugin.h"
-
-#include <kinstance.h>
-#include <kgenericfactory.h>
-#include <kdebug.h>
-
-#include <kis_debug_areas.h>
-#include <kis_colorspace_factory_registry.h>
-#include <kis_basic_histogram_producers.h>
-#include <kis_debug_areas.h>
-
-#include "kis_ycbcr_u8_colorspace.h"
-
-typedef KGenericFactory<YCbCrU8Plugin> YCbCrU8PluginFactory;
-K_EXPORT_COMPONENT_FACTORY( krita_ycbcr_u8_plugin, YCbCrU8PluginFactory( "krita" ) )
-
-
-YCbCrU8Plugin::YCbCrU8Plugin(TQObject *tqparent, const char *name, const TQStringList &)
-    : KParts::Plugin(tqparent, name)
-{
-    setInstance(YCbCrU8PluginFactory::instance());
-
-    if ( tqparent->inherits("KisColorSpaceFactoryRegistry") )
-    {
-        KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>( tqparent );
-
-        KisColorSpace * colorSpaceYCbCrU8 = new KisYCbCrU8ColorSpace(f, 0);
-        KisColorSpaceFactory * csf = new KisYCbCrU8ColorSpaceFactory();
-        Q_CHECK_PTR(colorSpaceYCbCrU8);
-        f->add(csf);
-        KisHistogramProducerFactoryRegistry::instance()->add(
-                new KisBasicHistogramProducerFactory<KisBasicU16HistogramProducer>
-                (KisID("YCBR8HISTO", i18n("YCBR8")), colorSpaceYCbCrU8) );
-    }
-
-}
-
-YCbCrU8Plugin::~YCbCrU8Plugin()
-{
-}
-
-#include "ycbcr_u8_plugin.moc"
diff --git a/krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.h b/krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.h
deleted file mode 100644
index 982746144..000000000
--- a/krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef YCBCR_U8_PLUGIN_H_
-#define YCBCR_U8_PLUGIN_H_
-
-#include <kparts/plugin.h>
-
-/**
- * A plugin wrapper around the YCbCr U8 colour space strategy.
- */
-class YCbCrU8Plugin : public KParts::Plugin
-{
-    Q_OBJECT
-  TQ_OBJECT
-public:
-    YCbCrU8Plugin(TQObject *tqparent, const char *name, const TQStringList &);
-    virtual ~YCbCrU8Plugin();
-
-};
-
-
-#endif // YCBCR_U8_PLUGIN_H_
diff --git a/krita/configure.in.bot b/krita/configure.in.bot
deleted file mode 100644
index 402346945..000000000
--- a/krita/configure.in.bot
+++ /dev/null
@@ -1,19 +0,0 @@
-if test -z "$LCMS_LIBS"; then
-  echo ""
-  echo "LittleCMS is missing, Krita will not be built."
-  echo ""
-  echo "If you want to compile Krita you should install:"
-  echo "  * lcms 1.15 or newer (http://www.littlecms.com/)"
-  echo ""
-  all_tests=bad
-else
-  if test -z "$GLLIB"; then
-    echo ""
-    echo "You're missing OpenGL libraries. krita will"
-    echo "not be able to use OpenGL for hardware"
-    echo "accelerated rendering."
-    echo ""
-  fi
-fi
-
-
diff --git a/krita/configure.in.in b/krita/configure.in.in
deleted file mode 100644
index 2cb413b51..000000000
--- a/krita/configure.in.in
+++ /dev/null
@@ -1,110 +0,0 @@
-KDE_CHECK_LIB(Xi, XOpenDisplay, [
-	LIB_XINPUTEXT="-lXi"
-	AC_DEFINE(HAVE_XINPUTEXT, 1, [Define if you have the X11 Input Extension])
-	])
-AC_SUBST(LIB_XINPUTEXT)
-
-# Check for lcms
-AC_MSG_CHECKING([for lcms >= 1.15])
-
-have_lcms_header='no'
-KDE_CHECK_HEADER(lcms/lcms.h,have_lcms_header='yes',,)
-if test "$have_lcms_header" = 'yes'
-then
-        AC_DEFINE(LCMS_HEADER, <lcms/lcms.h>, [The correct header])
-
-	echo "#include <lcms/lcms.h>" > conftest.$ac_ext
-	echo "#if LCMS_VERSION < 115" >> conftest.$ac_ext
-	echo "#error Need lcms >= 1.15" >> conftest.$ac_ext
-	echo "#endif" >> conftest.$ac_ext
-	echo "int main() {}" >> conftest.$ac_ext
-
-else
-        # Alternative! Debian does it this way...
-	KDE_CHECK_HEADER(lcms.h,have_lcms_header='yes',,)
-
-    if test "$have_lcms_header" = 'yes'
-    then
-       	AC_DEFINE(LCMS_HEADER, <lcms.h>, [The correct header])
-
-	   echo "#include <lcms.h>" > conftest.$ac_ext
-	   echo "#if LCMS_VERSION < 115" >> conftest.$ac_ext
-	   echo "#error Need lcms >= 1.15" >> conftest.$ac_ext
-	   echo "#endif" >> conftest.$ac_ext
-	   echo "int main() {}" >> conftest.$ac_ext
-    else
-        KDE_CHECK_HEADER(lcms.h,have_lcms_header='yes',,)
-        # and now debian also does it this way... can't they decide for one way of doing stuff ?
-        
-       AC_DEFINE(LCMS_HEADER, <liblcms1/lcms.h>, [The correct header])
-
-       echo "#include <liblcms1/lcms.h>" > conftest.$ac_ext
-       echo "#if LCMS_VERSION < 115" >> conftest.$ac_ext
-       echo "#error Need lcms >= 1.15" >> conftest.$ac_ext
-       echo "#endif" >> conftest.$ac_ext
-       echo "int main() {}" >> conftest.$ac_ext
-
-   fi
-fi
-
-
-ac_link='$LIBTOOL_SHELL --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext -llcms 1>&5'
-
-if AC_TRY_EVAL(ac_link) && test -s conftest; then
-    	AC_MSG_RESULT(yes)
-        HAVELCMS="yes"
-        LCMS_LIBS="-llcms"
-else
-	AC_MSG_RESULT(no)
-	HAVELCMS="no"
-	LCMS_LIBS=""
-        DO_NOT_COMPILE="$DO_NOT_COMPILE krita"
-fi
-
-AC_SUBST(LCMS_LIBS)
-
-# IM 6.1.3 changed the number of arguments to GetMagickInfoList
-
-AC_MSG_CHECKING(if GetMagickInfoList has only 2 arguments)
-CPPFLAGS_TMP="$CPPFLAGS"   # Save preprocessor flags
-CPPFLAGS="$LIBMAGICK_CPPFLAGS"
-
-AC_TRY_COMPILE(
-	[#include <stdio.h>
-	#if HAVE_SYS_TYPES_H
-	#include <sys/types.h>
-	#endif
-	#include "magick/api.h"],
-	[const char *pattern; unsigned long ncolors; (void)GetMagickInfoList(pattern, &ncolors)],
-	magick_info_list='yes',
-	magick_info_list='no')
-
-CPPFLAGS="$CPPFLAGS_TMP"  # Restore preprocessor flags
-
-if test "$magick_info_list" = 'yes'; then
-	AC_MSG_RESULT(yes)
-  AC_DEFINE([HAVE_OLD_GETMAGICKINFOLIST], 1, [GetMagickInfoList has different number of arguments with versions >= 6.1.3])
-else
-	AC_MSG_RESULT(no)
-fi
-
-# Check for kunittest
-AC_MSG_CHECKING([for kunittest])
-
-have_kunittest_header="no"
-KDE_CHECK_HEADER(kunittest/tester.h, have_kunittest_header="yes", , )
-AM_CONDITIONAL(include_kunittest_tests, test "$have_kunittest_header" = "yes")
-
-# --- OpenGL check ---
-
-AC_HAVE_GL( [], [] )
-
-# --- End of OpenGL check ---
-
-# Check for powf.
-
-AC_CHECK_FUNC(powf, [have_powf="yes"], [AC_CHECK_LIB(m, powf, [have_powf="yes"], [have_powf="no"])])
-
-if test "$have_powf" = 'yes'; then
-  AC_DEFINE([HAVE_POWF], 1, [Define to 1 if your system has powf in <maths.h>])
-fi\
diff --git a/krita/core/Makefile.am b/krita/core/Makefile.am
deleted file mode 100644
index 56a0865e7..000000000
--- a/krita/core/Makefile.am
+++ /dev/null
@@ -1,59 +0,0 @@
-# all_includes must remain last!
-INCLUDES  = \
-	-I$(srcdir)/../sdk \
-	-I$(srcdir)/tiles \
-	-I$(srcdir)/../kritacolor \
-	$(KOFFICE_INCLUDES) \
-    $(KOPAINTER_INCLUDES) \
-    $(OPENEXR_CFLAGS) \
-	$(all_includes)
-
-#CXXFLAGS = -shared -fPIC
-
-lib_LTLIBRARIES = libkritaimage.la
-
-libkritaimage_la_SOURCES = kis_adjustment_layer.cc kis_alpha_mask.cc \
-				kis_autobrush_resource.cc kis_autogradient_resource.cc kis_background.cc kis_boundary.cc \
-				kis_brush.cc kis_command.cc kis_convolution_painter.cc kis_fill_painter.cc \
-				kis_filter.cc kis_filter_registry.cc kis_filter_strategy.cc \
-				kis_filter_configuration.cc kis_filter_config_widget.cc kis_gradient.cc kis_gradient_painter.cc \
-				kis_histogram.cc kis_image.cc kis_imagepipe_brush.cc kis_iterator.cc \
-				kis_iterators_pixel.cc kis_layer.cc kis_group_layer.cc kis_paint_layer.cc kis_meta_registry.cc \
-				kis_nameserver.cc kis_painter.cc kis_paintop.cc kis_paintop_registry.cc kis_palette.cc \
-				kis_pattern.cc kis_rect.cc kis_resource.cc kis_rotate_visitor.cc \
-				kis_selected_transaction.cc kis_selection.cc kis_strategy_move.cc kis_transaction.cc \
-				kis_transform_worker.cc kis_vec.cc kis_paint_device.cc kis_paint_device_iface.cc \
-				kis_paint_device_iface.skel kis_image_iface.cc kis_image_iface.skel kis_basic_math_toolbox.cpp \
-				kis_math_toolbox.cpp kis_exif_info.cc kis_thread_pool.cc kis_exif_value.cc \
-				kis_filter_strategy.h kis_random_accessor.cpp kis_random_sub_accessor.cpp \
-			kis_perspective_grid.cpp kis_perspectivetransform_worker.cpp kis_perspective_math.cpp kis_scale_visitor.cc
-
-noinst_HEADERS = kis_rotate_visitor.h kis_selected_transaction.h \
-			kis_strategy_move.h kis_transform_worker.h kis_datamanager.h kis_iteratorpixeltrait.h \
-			kis_merge_visitor.h kis_thread.h kis_thread_pool.h kis_change_profile_visitor.h \
-		kis_perspective_grid.h kis_perspectivetransform_worker.h
-
-include_HEADERS = kis_adjustment_layer.h kis_alpha_mask.h \
-		kis_autobrush_resource.h kis_autogradient_resource.h kis_background.h kis_boundary.h kis_brush.h \
-		kis_command.h kis_convolution_painter.h kis_fill_painter.h kis_filter.h \
-		kis_filter_registry.h kis_gradient.h kis_gradient_painter.h kis_histogram.h kis_image.h \
-		kis_image_iface.h kis_imagepipe_brush.h kis_iterator.h kis_iterators_pixel.h \
-		kis_iteratorpixeltrait.h kis_layer.h kis_meta_registry.h kis_nameserver.h \
-		kis_paint_device_iface.h kis_paint_device.h kis_painter.h kis_paintop.h kis_paintop_registry.h \
-		kis_palette.h kis_pattern.h kis_point.h kis_rect.h kis_resource.h kis_selection.h \
-		kis_transaction.h kis_types.h kis_vec.h kis_filter_config_widget.h \
-		kis_filter_configuration.h kis_exif_info.h kis_exif_value.h kis_substrate.h kis_perspective_math.h kis_scale_visitor.h kis_paint_layer.h kis_layer_visitor.h kis_filter_strategy.h kis_transform_worker.h
-
-libkritaimage_la_LDFLAGS = -version-info 1:0:0 -no-undefined $(all_libraries)
-libkritaimage_la_LIBADD = ../sdk/libkritasdk.la ../kritacolor/libkritacolor.la tiles/libkritatile.la $(OPENEXR_LIBS) $(LCMS_LIBS) $(LIB_KOFFICECORE) $(LIB_KOPAINTER) $(LIB_KDECORE) $(LIB_QT) $(OPENEXR_LIBS) 
-
-if include_kunittest_tests
-TESTSDIR = tests
-endif
-
-SUBDIRS = tiles . $(TESTSDIR)
-
-libkritaimage_la_METASOURCES = AUTO
-
-KDE_OPTIONS = nofinal
-
diff --git a/krita/core/createdcop.py b/krita/core/createdcop.py
deleted file mode 100755
index bac48f333..000000000
--- a/krita/core/createdcop.py
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/usr/bin/env python
-
-import os, sys
-
-dcopiface_header = """/* This file is part of the KDE project
- *  Copyright (C) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef %(classname_upper)sIFACE_H
-#define %(classname_upper)sIFACE_H
-
-#include <dcopref.h>
-#include <dcopobj.h>
-
-#include <qstring.h>
-
-class %(classname)s;
-
-class %(classname)sIface : virtual public DCOPObject
-{
-	K_DCOP
-public:
-	%(classname)sIface( %(classname)s * tqparent );
-k_dcop:
-
-private:
-
-	%(classname)s *m_parent;
-};
-
-#endif
-"""
-
-dcopiface_template = """/*
- *  This file is part of the KDE project
- *
- *  Copyright (C) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-#include <kapplication.h>
-
-
-#include "%(ifaceheader)s"
-
-#include "%(classheader)s"
-
-#include <dcopclient.h>
-
-%(classname)sIface::%(classname)sIface( %(classname)s * tqparent )
-	: DCOPObject()
-{
-	m_parent = tqparent;
-}
-
-"""
-
-def parseHeader(headerfile, classname):
-	# parse the source class header to get a list of functions we're going to wrap
-	functions = []
-	if (headerfile.tqfind("private:") > -1):
-		lines = headerfile[headerfile.tqfind(classname):headerfile.tqfind("private")].splitlines()
-	else:
-		lines = headerfile[headerfile.tqfind(classname):headerfile.tqfind("#endif")].splitlines()
-	i = 0
-	while i < len(lines):
-		line = lines[i].strip()
-		if (line.startswith("/") or 
-			line.startswith("public:") or 
-			line.startswith("*") or 
-			line.startswith(classname) or
-			line.startswith("class") or
-			line.startswith("Q_OBJECT") or
-			line.startswith("#") or
-			line.startswith("}") or
-			line.startswith("public Q_SLOTS:") or
-			line.tqfind("~")  != -1 or
-			len(line) == 0
-			):
-			i+=1	
-			continue
-		if (line.startswith("protected")):
-			return functions
-		# by now we are reasonable sure that this is a function. We need to find the end of the function definition, and then 
-		# if the return type is not primitive, replace it with dcopref.
-		function = line
-		complete = 0
-		# strip the inline implementation
-		if (line.tqfind("{") > -1):
-			function = line[:line.tqfind("{")]
-			if function.tqfind("}") > -1:
-				function += line[line.tqfind("}") + 1:]
-				complete = 1
-			else:
-				i += 1
-				# search for the missing } on the next lines
-				while i < len(lines):
-					if (lines[i].tqfind("}") > -1):
-						function += lines[i][lines[i].tqfind("}") + 1:]
-						complete = 1
-					i += 1
-		else:
-			complete = 1
-
-		if complete == 0:
-			i+=1
-			continue
-
-		if (function.endswith("= 0;")):
-			function = function[:-4] + ";"
-		print "\t", function
-		i+=1
-			
-
-def createDCOP(header):
-
-	# Determine filenames and classnames
-
-	implementation = header[:-1] + "cc"
-	classname = ""	
-	classname_upper ="_"
-	for part in header[:-2].split("_"):
-		classname = classname + part.capitalize()
-		classname_upper = classname_upper + part.upper() + "_"
-	ifaceheader = header[:-2] + "_iface.h"
-	ifaceimplementation = header[:-2] + "_iface.cc"
-	ifaceclass = classname + "Iface"
-
-	#print "with: ", implementation, classname, classname_upper, ifaceheader, ifaceimplementation, ifaceclass
-	file(ifaceheader, "w+").write(dcopiface_header % { "classname_upper" : classname_upper,
-							   "classname" : classname})
-	file(ifaceimplementation, "w+").write(dcopiface_template % {"ifaceheader" : ifaceheader,
-								    "classheader" : header,
-								    "classname" : classname })
-	functions = parseHeader(open(header).read(), classname)
-
-def main(args):
-	for line in args[1:]:
-		print "Going to create a dcop interface for:", line[:-1]
-		createDCOP(line.strip())
-
-if __name__=="__main__":
-    main(sys.argv)
-
-
diff --git a/krita/core/kis_adjustment_layer.cc b/krita/core/kis_adjustment_layer.cc
deleted file mode 100644
index 69e8b9398..000000000
--- a/krita/core/kis_adjustment_layer.cc
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-
-#include <kdebug.h>
-#include <tqimage.h>
-
-#include "kis_debug_areas.h"
-#include "kis_group_layer.h"
-#include "kis_image.h"
-#include "kis_layer.h"
-#include "kis_adjustment_layer.h"
-#include "kis_painter.h"
-#include "kis_undo_adapter.h"
-#include "kis_selection.h"
-#include "kis_fill_painter.h"
-
-KisAdjustmentLayer::KisAdjustmentLayer(KisImageSP img, const TQString &name, KisFilterConfiguration * kfc, KisSelectionSP selection)
-    : KisLayer (img, name, OPACITY_OPAQUE)
-{
-    m_filterConfig = kfc;
-    setSelection( selection );
-    m_cachedPaintDev = new KisPaintDevice( img->colorSpace(), name.latin1());
-    m_showSelection = true;
-    Q_ASSERT(m_cachedPaintDev);
-    connect(img, TQT_SIGNAL(sigSelectionChanged(KisImageSP)),
-            this, TQT_SLOT(slotSelectionChanged(KisImageSP)));
-}
-
-KisAdjustmentLayer::KisAdjustmentLayer(const KisAdjustmentLayer& rhs)
-    : KisLayer(rhs), KisLayerSupportsIndirectPainting(rhs)
-{
-    m_filterConfig = new KisFilterConfiguration(*rhs.m_filterConfig);
-    if (rhs.m_selection) {
-        m_selection = new KisSelection( *rhs.m_selection.data() );
-        m_selection->setParentLayer(this);
-        m_selection->setInterestedInDirtyness(true);
-        connect(rhs.image(), TQT_SIGNAL(sigSelectionChanged(KisImageSP)),
-                this, TQT_SLOT(slotSelectionChanged(KisImageSP)));
-    }
-    m_cachedPaintDev = new KisPaintDevice( *rhs.m_cachedPaintDev.data() );
-    m_showSelection = false;
-}
-
-
-KisAdjustmentLayer::~KisAdjustmentLayer()
-{
-    delete m_filterConfig;
-}
-
-
-KisLayerSP KisAdjustmentLayer::clone() const
-{
-    return new KisAdjustmentLayer(*this);
-}
-
-
-void KisAdjustmentLayer::resetCache()
-{
-    m_cachedPaintDev = new KisPaintDevice(image()->colorSpace(), name().latin1());
-}
-
-KisFilterConfiguration * KisAdjustmentLayer::filter()
-{
-    Q_ASSERT(m_filterConfig);
-    return m_filterConfig;
-}
-
-
-void KisAdjustmentLayer::setFilter(KisFilterConfiguration * filterConfig)
-{
-    Q_ASSERT(filterConfig);
-    m_filterConfig = filterConfig;
-}
-
-
-KisSelectionSP KisAdjustmentLayer::selection()
-{
-    return m_selection;
-}
-
-void KisAdjustmentLayer::setSelection(KisSelectionSP selection)
-{
-    m_selection = new KisSelection();
-    KisFillPainter gc(m_selection.data());
-    KisColorSpace * cs = KisMetaRegistry::instance()->csRegistry()->getRGB8();
-
-    if (selection) {
-        gc.bitBlt(0, 0, COMPOSITE_COPY, selection.data(),
-                  0, 0, image()->bounds().width(), image()->bounds().height());
-    } else {
-        gc.fillRect(image()->bounds(), KisColor(TQt::white, cs), MAX_SELECTED);
-    }
-
-    gc.end();
-
-    m_selection->setParentLayer(this);
-    m_selection->setInterestedInDirtyness(true);
-}
-
-void KisAdjustmentLayer::clearSelection()
-{
-    KisFillPainter gc(m_selection.data());
-    KisColorSpace * cs = KisMetaRegistry::instance()->csRegistry()->getRGB8();
-
-    TQRect bounds = extent();
-    bounds |= image()->bounds();
-    gc.fillRect(bounds, KisColor(TQt::white, cs), MIN_SELECTED);
-    gc.end();
-}
-
-
-TQ_INT32 KisAdjustmentLayer::x() const
-{
-    if (m_selection)
-        return m_selection->getX();
-    else
-        return 0;
-}
-
-void KisAdjustmentLayer::setX(TQ_INT32 x)
-{
-    if (m_selection) {
-        m_selection->setX(x);
-        resetCache();
-    }
-
-}
-
-TQ_INT32 KisAdjustmentLayer::y() const
-{
-    if (m_selection)
-        return m_selection->getY();
-    else
-        return 0;
-}
-
-void KisAdjustmentLayer::setY(TQ_INT32 y)
-{
-    if (m_selection) {
-        m_selection->setY(y);
-        resetCache();
-    }
-}
-
-TQRect KisAdjustmentLayer::extent() const
-{
-    if (m_selection)
-        return m_selection->selectedRect();
-    else if (image())
-        return image()->bounds();
-    else
-        return TQRect();
-}
-
-TQRect KisAdjustmentLayer::exactBounds() const
-{
-    if (m_selection)
-        return m_selection->selectedRect();
-    else if (image())
-        return image()->bounds();
-    else
-        return TQRect();
-}
-
-bool KisAdjustmentLayer::accept(KisLayerVisitor & v)
-{
-    return v.visit( this );
-}
-
-void KisAdjustmentLayer::paintSelection(TQImage &img, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h)
-{
-    if (showSelection() && selection())
-        selection()->paintSelection(img, x, y, w, h);
-}
-
-void KisAdjustmentLayer::paintSelection(TQImage &img, const TQRect& scaledImageRect, const TQSize& scaledImageSize, const TQSize& imageSize)
-{
-    if (showSelection() && selection())
-        selection()->paintSelection(img, scaledImageRect, scaledImageSize, imageSize);
-}
-
-TQImage KisAdjustmentLayer::createThumbnail(TQ_INT32 w, TQ_INT32 h)
-{
-    if (!selection())
-        return TQImage();
-
-    int srcw, srch;
-    if( image() )
-    {
-        srcw = image()->width();
-        srch = image()->height();
-    }
-    else
-    {
-        const TQRect e = extent();
-        srcw = e.width();
-        srch = e.height();
-    }
-
-    if (w > srcw)
-    {
-        w = srcw;
-        h = TQ_INT32(double(srcw) / w * h);
-    }
-    if (h > srch)
-    {
-        h = srch;
-        w = TQ_INT32(double(srch) / h * w);
-    }
-
-    if (srcw > srch)
-        h = TQ_INT32(double(srch) / srcw * w);
-    else if (srch > srcw)
-        w = TQ_INT32(double(srcw) / srch * h);
-
-    TQColor c;
-    TQ_UINT8 opacity;
-    TQImage img(w,h,32);
-
-    for (TQ_INT32 y=0; y < h; ++y) {
-        TQ_INT32 iY = (y * srch ) / h;
-        for (TQ_INT32 x=0; x < w; ++x) {
-            TQ_INT32 iX = (x * srcw ) / w;
-            m_selection->pixel(iX, iY, &c, &opacity);
-            img.setPixel(x, y, tqRgb(opacity, opacity, opacity));
-        }
-    }
-
-    return img;
-}
-
-void KisAdjustmentLayer::slotSelectionChanged(KisImageSP image) {
-    image->setModified();
-}
-
-#include "kis_adjustment_layer.moc"
diff --git a/krita/core/kis_adjustment_layer.h b/krita/core/kis_adjustment_layer.h
deleted file mode 100644
index b8b76437f..000000000
--- a/krita/core/kis_adjustment_layer.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- *  Copyright (c) 2006 Boudewijn Rempt
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-#ifndef KIS_ADJUSTMENT_LAYER_H_
-#define KIS_ADJUSTMENT_LAYER_H_
-
-#include <tqobject.h>
-#include "kis_types.h"
-#include "kis_layer_visitor.h"
-#include "kis_composite_op.h"
-#include <koffice_export.h>
-
-class KNamedCommand;
-class TQPainter;
-class KisUndoAdapter;
-class KisGroupLayer;
-class KisFilterConfiguration;
-
-/**
- * Class that contains a KisFilter and optionally a KisSelection. The combination
- * is used by to influence the rendering of the layers under this layer in the
- * layerstack
- **/
-class KRITACORE_EXPORT KisAdjustmentLayer : public KisLayer, public KisLayerSupportsIndirectPainting
-{
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    /**
-     * Create a new adjustment layer with the given configuration and selection.
-     * Note that the selection will be _copied_. 
-     */
-    KisAdjustmentLayer(KisImageSP img, const TQString &name, KisFilterConfiguration * kfc, KisSelectionSP selection);
-    KisAdjustmentLayer(const KisAdjustmentLayer& rhs);
-    virtual ~KisAdjustmentLayer();
-
-    /// Return a copy of this layer
-    virtual KisLayerSP clone() const;
-
-public:
-    
-    KisFilterConfiguration * filter();
-    void setFilter(KisFilterConfiguration * filterConfig);
-
-    KisSelectionSP selection();
-    
-    /// Set the selction of this adjustment layer to a copy of selection.
-    void setSelection(KisSelectionSP selection);
-
-    /// Clears the selection (doesn't call any of the update or dirty methods)
-    void clearSelection();
-
-    virtual void paintSelection(TQImage &img, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
-    virtual void paintSelection(TQImage &img, const TQRect& scaledImageRect, const TQSize& scaledImageSize, const TQSize& imageSize);
-public:
-    
-    virtual TQ_INT32 x() const;
-    virtual void setX(TQ_INT32);
-
-    virtual TQ_INT32 y() const;
-    virtual void setY(TQ_INT32);
-
-    /// Returns an approximation of where the bounds on actual data are in this layer
-    virtual TQRect extent() const;
-    
-    /// Returns the exact bounds of where the actual data resides in this layer
-    virtual TQRect exactBounds() const;
-
-    virtual bool accept(KisLayerVisitor &);
-
-    virtual void resetCache();
-    virtual KisPaintDeviceSP cachedPaintDevice() { return m_cachedPaintDev; }
-
-    bool showSelection() const { return m_showSelection; }
-    void setSelection(bool b) { m_showSelection = b; }
-
-    virtual TQImage createThumbnail(TQ_INT32 w, TQ_INT32 h);
-
-    // KisLayerSupportsIndirectPainting
-    virtual KisLayer* layer() { return this; }
-private:
-    bool m_showSelection;
-    KisFilterConfiguration * m_filterConfig;
-    KisSelectionSP m_selection;
-    KisPaintDeviceSP m_cachedPaintDev;
-private slots:
-    void slotSelectionChanged(KisImageSP image);
-};
-
-#endif // KIS_ADJUSTMENT_LAYER_H_
-
diff --git a/krita/core/kis_alpha_mask.cc b/krita/core/kis_alpha_mask.cc
deleted file mode 100644
index 6409cfc69..000000000
--- a/krita/core/kis_alpha_mask.cc
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <cfloat>
-#include <tqimage.h>
-#include <tqvaluevector.h>
-
-#include <kdebug.h>
-
-#include "kis_global.h"
-#include "kis_alpha_tqmask.h"
-
-KisAlphaMask::KisAlphaMask(const TQImage& img, bool hasColor)
-{
-    m_width = img.width();
-    m_height = img.height();
-
-    if (hasColor) {
-        copyAlpha(img);
-    }
-    else {
-        computeAlpha(img);
-    }
-}
-
-KisAlphaMask::KisAlphaMask(const TQImage& img)
-{
-    m_width = img.width();
-    m_height = img.height();
-
-    if (!img.allGray()) {
-        copyAlpha(img);
-    }
-    else {
-        computeAlpha(img);
-    }
-}
-
-KisAlphaMask::KisAlphaMask(TQ_INT32 width, TQ_INT32 height)
-{
-    m_width = width;
-    m_height = height;
-
-    m_data.resize(width * height, OPACITY_TRANSPARENT);
-}
-
-KisAlphaMask::~KisAlphaMask()
-{
-}
-
-TQ_INT32 KisAlphaMask::width() const
-{
-    return m_width;
-}
-
-TQ_INT32 KisAlphaMask::height() const
-{
-    return m_height;
-}
-
-void KisAlphaMask::setAlphaAt(TQ_INT32 x, TQ_INT32 y, TQ_UINT8 alpha)
-{
-    if (y >= 0 && y < m_height && x >= 0 && x < m_width) {
-        m_data[(y * m_width) + x] = alpha;
-    }
-}
-
-void KisAlphaMask::copyAlpha(const TQImage& img)
-{
-    for (int y = 0; y < img.height(); y++) {
-        for (int x = 0; x < img.width(); x++) {
-                        TQRgb c = img.pixel(x,y);
-                        TQ_UINT8 a = (tqGray(c) * tqAlpha(c)) / 255;
-            m_data.push_back(a);
-
-        }
-    }
-}
-
-void KisAlphaMask::computeAlpha(const TQImage& img)
-{
-    // The brushes are mostly grayscale on a white background,
-    // although some do have a colors. The alpha channel is seldom
-    // used, so we take the average gray value of this pixel of
-    // the brush as the setting for the opacitiy. We need to
-    // invert it, because 255, 255, 255 is white, which is
-    // completely transparent, but 255 corresponds to
-    // OPACITY_OPAQUE.
-
-    for (int y = 0; y < img.height(); y++) {
-        for (int x = 0; x < img.width(); x++) {
-            m_data.push_back(255 - tqRed(img.pixel(x, y)));
-        }
-    }
-}
-
-KisAlphaMaskSP KisAlphaMask::interpolate(KisAlphaMaskSP tqmask1, KisAlphaMaskSP tqmask2, double t)
-{
-    Q_ASSERT((tqmask1->width() == tqmask2->width()) && (tqmask1->height() == tqmask2->height()));
-    Q_ASSERT(t > -DBL_EPSILON && t < 1 + DBL_EPSILON);
-
-    int width = tqmask1->width();
-    int height = tqmask1->height();
-    KisAlphaMaskSP outputMask = new KisAlphaMask(width, height);
-    Q_CHECK_PTR(outputMask);
-
-    for (int x = 0; x < width; x++) {
-        for (int y = 0; y < height; y++) {
-            TQ_UINT8 d = static_cast<TQ_UINT8>((1 - t) * tqmask1->alphaAt(x, y) + t * tqmask2->alphaAt(x, y));
-            outputMask->setAlphaAt(x, y, d);
-        }
-    }
-
-    return outputMask;
-}
-
-
diff --git a/krita/core/kis_alpha_mask.h b/krita/core/kis_alpha_mask.h
deleted file mode 100644
index 4665857e3..000000000
--- a/krita/core/kis_alpha_mask.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_ALPHA_MASK_
-#define KIS_ALPHA_MASK_
-
-#include <tqimage.h>
-#include <tqvaluevector.h>
-
-#include <ksharedptr.h>
-
-#include "kis_global.h"
-#include "kis_types.h"
-
-/**
- * KisAlphaMask is intended to create alpha values from a TQImage for use
- * in brush creation. It is not a generic alpha tqmask that can be used with
- * KisPaintDevices: use a KisSelection for that.
- */
-class KisAlphaMask : public KShared {
-    
- public:
-    /**
-       Create an alpha tqmask based on the specified TQImage. If the image is
-       not a grayscale, the tqmask value is calculated from the effective grey
-       level and alpha value.
-    */
-    KisAlphaMask(const TQImage& img);
-
-    /**
-       As above except quicker as the image does not need to be scanned
-       to see if it has any colour pixels.
-    */
-    KisAlphaMask(const TQImage& img, bool hasColor);
-
-    /**
-       Create a transparent tqmask.
-    */
-    KisAlphaMask(TQ_INT32 width, TQ_INT32 height);
-
-    virtual ~KisAlphaMask();
-
-    /**
-       @return the number of alpha values in a scanline.
-    */
-    TQ_INT32 height() const;
-
-    /**
-       @return the number of lines in the tqmask.
-     */
-       TQ_INT32 width() const;
-
-    /**
-       @return the alpha value at the specified position.
-
-       Returns TQ_UINT8 OPACITY_TRANSPARENT if the value is
-       outside the bounds of the tqmask.
-
-       XXX: this is, of course, not the best way of tqmasking.
-       Better would be to let KisAlphaMask fill a chunk of memory
-       with the alpha values at the right position, something like
-       void applyMask(TQ_UINT8 *pixeldata, TQ_INT32 pixelWidth,
-       TQ_INT32 alphaPos). That would be fastest, or we could
-       provide an iterator over the tqmask, that would be nice, too.
-    */
-    inline TQ_UINT8 alphaAt(TQ_INT32 x, TQ_INT32 y) const
-    {
-	if (y >= 0 && y < m_height && x >= 0 && x < m_width) {
-	    return m_data[(y * m_width) + x];
-	}
-	else {
-	    return OPACITY_TRANSPARENT;
-	}
-    }
-
-    void setAlphaAt(TQ_INT32 x, TQ_INT32 y, TQ_UINT8 alpha);
-
-    // Create a new tqmask by interpolating between tqmask1 and tqmask2 as t
-    // goes from 0 to 1.
-    static KisAlphaMaskSP interpolate(KisAlphaMaskSP tqmask1, KisAlphaMaskSP tqmask2, double t);
-
-private:
-    void computeAlpha(const TQImage& img);
-    void copyAlpha(const TQImage& img);
-
-    TQValueVector<TQ_UINT8> m_data;
-    TQ_INT32 m_width;
-    TQ_INT32 m_height;
-};
-
-#endif // KIS_ALPHA_MASK_
-
diff --git a/krita/core/kis_autobrush_resource.cc b/krita/core/kis_autobrush_resource.cc
deleted file mode 100644
index 9a09fe788..000000000
--- a/krita/core/kis_autobrush_resource.cc
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
- 
-#include "kis_autobrush_resource.h"
-#include <kdebug.h>
-
-void KisAutobrushShape::createBrush( TQImage* img)
-{
-    img->create(m_w, m_h, 32);
-    for(int j = 0; j < m_h; j++)
-    {
-        for(int i = 0; i < m_w; i++)
-        {
-            TQ_INT8 v = valueAt(i,j);
-            img->setPixel( i, j, tqRgb(v,v,v));
-        }
-    }
-}
-
-KisAutobrushCircleShape::KisAutobrushCircleShape(TQ_INT32 w, TQ_INT32 h, double fh, double fv)
-    : KisAutobrushShape( w, h, w / 2.0 - fh, h / 2.0 - fv),
-        m_xcentre ( w / 2.0 ),
-        m_ycentre ( h / 2.0 ),
-        m_xcoef ( 2.0 / w ),
-        m_ycoef ( 2.0 / h ),
-        m_xfadecoef ( (m_fh == 0) ? 1 : ( 1.0 / m_fh)),
-        m_yfadecoef ( (m_fv == 0) ? 1 : ( 1.0 / m_fv))
-{
-}
-TQ_INT8 KisAutobrushCircleShape::valueAt(TQ_INT32 x, TQ_INT32 y)
-{
-    double xr = (x - m_xcentre) + 0.5;
-    double yr = (y - m_ycentre) + 0.5;
-    double n = norme( xr * m_xcoef, yr * m_ycoef);
-    if( n > 1 )
-    {
-        return 255;
-    }
-    else
-    {
-        double normeFade = norme( xr * m_xfadecoef, yr * m_yfadecoef );
-        if( normeFade > 1)
-        {
-            double xle, yle;
-            // xle stands for x-coordinate limit exterior
-            // yle stands for y-coordinate limit exterior
-            // we are computing the coordinate on the external ellipse in order to compute
-            // the fade value
-            if( xr == 0 )
-            {
-                xle = 0;
-                yle = yr > 0 ? 1/m_ycoef : -1/m_ycoef;
-            } else {
-                double c = yr / (double)xr;
-                xle = sqrt(1 / norme( m_xcoef, c * m_ycoef ));
-                xle = xr > 0 ? xle : -xle;
-                yle = xle * c;
-            }
-            // On the internal limit of the fade area, normeFade is equal to 1
-            double normeFadeLimitE = norme( xle * m_xfadecoef, yle * m_yfadecoef );
-            return (uchar)(255 * ( normeFade - 1 ) / ( normeFadeLimitE - 1 ));
-        } else {
-            return 0;
-        }
-    }
-}
-
-KisAutobrushRectShape::KisAutobrushRectShape(TQ_INT32 w, TQ_INT32 h, double fh, double fv)
-    : KisAutobrushShape( w, h, w / 2.0 - fh, h / 2.0 - fv),
-        m_xcentre ( w / 2.0 ),
-        m_ycentre ( h / 2.0 ),
-        m_c( fv/fh)
-{
-}
-TQ_INT8 KisAutobrushRectShape::valueAt(TQ_INT32 x, TQ_INT32 y)
-{
-    double xr = TQABS(x - m_xcentre);
-    double yr = TQABS(y - m_ycentre);
-    if( xr > m_fh || yr > m_fv )
-    {
-        if( yr <= ((xr - m_fh) * m_c + m_fv )  )
-        {
-            return (uchar)(255 * (xr - m_fh) / (m_w - m_fh));
-        } else {
-            return (uchar)(255 * (yr - m_fv) / (m_w - m_fv));
-        }
-    }
-    else {
-        return 0;
-    }
-}
diff --git a/krita/core/kis_autobrush_resource.h b/krita/core/kis_autobrush_resource.h
deleted file mode 100644
index 44708efa9..000000000
--- a/krita/core/kis_autobrush_resource.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef _KIS_AUTOBRUSH_RESOURCE_H_
-#define _KIS_AUTOBRUSH_RESOURCE_H_
-
-#include "kis_brush.h"
-
-class KisAutobrushShape {
-    public:
-        KisAutobrushShape(TQ_INT32 w, TQ_INT32 h, double fh, double fv) : m_w(w), m_h(h), m_fh(fh), m_fv(fv)
-        { };
-        void createBrush( TQImage* img);
-    protected:
-        virtual TQ_INT8 valueAt(TQ_INT32 x, TQ_INT32 y) =0;
-        TQ_INT32 m_w, m_h;
-        double m_fh, m_fv;
-};
-
-class KisAutobrushCircleShape : public KisAutobrushShape {
-    public:
-        KisAutobrushCircleShape(TQ_INT32 w, TQ_INT32 h, double fh, double fv);
-    public:
-        virtual TQ_INT8 valueAt(TQ_INT32 x, TQ_INT32 y);
-    private:
-        double norme(double a, double b)
-        {
-            return a*a + b * b;
-        }
-    private:
-        double m_xcentre, m_ycentre;
-        double m_xcoef, m_ycoef;
-        double m_xfadecoef, m_yfadecoef;
-};
-
-class KisAutobrushRectShape : public KisAutobrushShape {
-    public:
-        KisAutobrushRectShape(TQ_INT32 w, TQ_INT32 h, double fh, double fv);
-    protected:
-        virtual TQ_INT8 valueAt(TQ_INT32 x, TQ_INT32 y);
-    private:
-        double m_xcentre, m_ycentre, m_c;
-};
-
-class KisAutobrushResource : public KisBrush
-{
-    public:
-        KisAutobrushResource(TQImage& img) : KisBrush("")
-        {
-            setImage(img);
-            setBrushType(MASK);
-        };
-    public:
-        virtual bool load() { return false; };
-};
-#endif // _KIS_AUTOBRUSH_RESOURCE_H_
diff --git a/krita/core/kis_autogradient_resource.cc b/krita/core/kis_autogradient_resource.cc
deleted file mode 100644
index 671e8fc2f..000000000
--- a/krita/core/kis_autogradient_resource.cc
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *                2004 Sven Langkamp <longamp@reallygood.de>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "kis_gradient.h"
-#include "kis_autogradient_resource.h"
-
-// FIXME: use the same #define as in kis_gradient.cc, probably best customizable?
-#define PREVIEW_WIDTH 64
-#define PREVIEW_HEIGHT 64
-
-
-void KisAutogradientResource::createSegment( int interpolation, int colorInterpolation, double startOffset, double endOffset, double middleOffset, TQColor left, TQColor right )
-{
-    pushSegment(new KisGradientSegment(interpolation, colorInterpolation, startOffset, middleOffset, endOffset, Color( left, 1 ), Color( right, 1 )));
-
-}
-
-const TQValueVector<double> KisAutogradientResource::getHandlePositions() const
-{
-    TQValueVector<double> handlePositions;
-
-    handlePositions.push_back(m_segments[0]->startOffset());
-    for (uint i = 0; i < m_segments.count(); i++)
-    {
-        handlePositions.push_back(m_segments[i]->endOffset());
-    }
-    return handlePositions;
-}
-
-const TQValueVector<double> KisAutogradientResource::getMiddleHandlePositions() const
-{
-    TQValueVector<double> middleHandlePositions;
-
-    for (uint i = 0; i < m_segments.count(); i++)
-    {
-        middleHandlePositions.push_back(m_segments[i]->middleOffset());
-    }
-    return middleHandlePositions;
-}
-
-void KisAutogradientResource::moveSegmentStartOffset( KisGradientSegment* segment, double t)
-{
-    TQValueVector<KisGradientSegment*>::iterator it = tqFind( m_segments.begin(), m_segments.end(), segment );
-    if ( it != m_segments.end() )
-    {
-        if ( it == m_segments.begin() )
-        {
-            segment->setStartOffset( 0.0 );
-            return;
-        }
-        KisGradientSegment* previousSegment = (*(it-1));
-        if ( t > segment->startOffset()  )
-        {
-            if( t > segment->middleOffset() )
-                t = segment->middleOffset();
-        }
-        else {
-            if( t < previousSegment->middleOffset() )
-                t = previousSegment->middleOffset();
-        }
-        previousSegment->setEndOffset( t );
-        segment->setStartOffset( t );
-    }
-}
-
-void KisAutogradientResource::moveSegmentEndOffset( KisGradientSegment* segment, double t)
-{
-    TQValueVector<KisGradientSegment*>::iterator it = tqFind( m_segments.begin(), m_segments.end(), segment );
-    if ( it != m_segments.end() )
-    {
-        if ( it+1 == m_segments.end() )
-        {
-            segment->setEndOffset( 1.0 );
-            return;
-        }
-        KisGradientSegment* followingSegment = (*(it+1));
-        if ( t < segment->endOffset() )
-        {
-            if( t < segment->middleOffset() )
-                t = segment->middleOffset();
-        }
-        else {
-            if( t > followingSegment->middleOffset() )
-                t = followingSegment->middleOffset();
-        }
-        followingSegment->setStartOffset( t );
-        segment->setEndOffset( t );
-    }
-}
-
-void KisAutogradientResource::moveSegmentMiddleOffset( KisGradientSegment* segment, double t)
-{
-    if( segment )
-    {
-        if( t > segment->endOffset() )
-            segment->setMiddleOffset( segment->endOffset() );
-        else if( t < segment->startOffset() )
-            segment->setMiddleOffset( segment->startOffset() );
-        else
-            segment->setMiddleOffset( t );
-    }
-}
-
-void KisAutogradientResource::splitSegment( KisGradientSegment* segment )
-{
-    Q_ASSERT(segment != 0);
-    TQValueVector<KisGradientSegment*>::iterator it = tqFind( m_segments.begin(), m_segments.end(), segment );
-    if ( it != m_segments.end() )
-    {
-        KisGradientSegment* newSegment = new KisGradientSegment(
-                segment->interpolation(), segment->colorInterpolation(),
-                segment ->startOffset(),
-                ( segment->middleOffset() - segment->startOffset() ) / 2 + segment->startOffset(),
-                segment->middleOffset(),
-                segment->startColor(),
-                segment->colorAt( segment->middleOffset() ) );
-        m_segments.insert( it, newSegment );
-        segment->setStartColor( segment->colorAt( segment->middleOffset() ) );
-        segment->setStartOffset( segment->middleOffset() );
-        segment->setMiddleOffset( ( segment->endOffset() - segment->startOffset() ) / 2 + segment->startOffset() );
-    }
-}
-
-void KisAutogradientResource::duplicateSegment( KisGradientSegment* segment )
-{
-    Q_ASSERT(segment != 0);
-    TQValueVector<KisGradientSegment*>::iterator it = tqFind( m_segments.begin(), m_segments.end(), segment );
-    if ( it != m_segments.end() )
-    {
-        double middlePostionPercentage = ( segment->middleOffset() - segment->startOffset() ) / segment->length();
-        double center = segment->startOffset() + segment->length() / 2;
-        KisGradientSegment* newSegment = new KisGradientSegment(
-                segment->interpolation(), segment->colorInterpolation(),
-                segment ->startOffset(),
-                segment->length() / 2 * middlePostionPercentage + segment->startOffset(),
-                center, segment->startColor(),
-                segment->endColor() );
-        m_segments.insert( it, newSegment );
-        segment->setStartOffset( center );
-        segment->setMiddleOffset( segment->length() * middlePostionPercentage  + segment->startOffset() );
-    }
-}
-
-void KisAutogradientResource::mirrorSegment( KisGradientSegment* segment )
-{
-    Q_ASSERT(segment != 0);
-    Color tmpColor = segment->startColor();
-    segment->setStartColor( segment->endColor() );
-    segment->setEndColor( tmpColor );
-    segment->setMiddleOffset( segment->endOffset() - ( segment->middleOffset() - segment->startOffset() ) );
-
-    if( segment->interpolation() == INTERP_SPHERE_INCREASING )
-        segment->setInterpolation( INTERP_SPHERE_DECREASING );
-    else if( segment->interpolation() == INTERP_SPHERE_DECREASING )
-        segment->setInterpolation( INTERP_SPHERE_INCREASING );
-
-    if( segment->colorInterpolation() == COLOR_INTERP_HSV_CW )
-        segment->setColorInterpolation( COLOR_INTERP_HSV_CCW );
-    else if( segment->colorInterpolation() == COLOR_INTERP_HSV_CCW )
-        segment->setColorInterpolation( COLOR_INTERP_HSV_CW );
-}
-
-KisGradientSegment* KisAutogradientResource::removeSegment( KisGradientSegment* segment )
-{
-    Q_ASSERT(segment != 0);
-    if( m_segments.count() < 2 )
-        return 0;
-    TQValueVector<KisGradientSegment*>::iterator it = tqFind( m_segments.begin(), m_segments.end(), segment );
-    if ( it != m_segments.end() )
-    {
-        double middlePostionPercentage;
-        KisGradientSegment* nextSegment;
-        if( it == m_segments.begin() )
-        {
-            nextSegment = (*(it+1));
-            middlePostionPercentage = ( nextSegment->middleOffset() - nextSegment->startOffset() ) / nextSegment->length();
-            nextSegment->setStartOffset( segment->startOffset() );
-            nextSegment->setMiddleOffset( middlePostionPercentage * nextSegment->length() + nextSegment->startOffset() );
-        }
-        else
-        {
-            nextSegment = (*(it-1));
-            middlePostionPercentage = ( nextSegment->middleOffset() - nextSegment->startOffset() ) / nextSegment->length();
-            nextSegment->setEndOffset( segment->endOffset() );
-            nextSegment->setMiddleOffset( middlePostionPercentage * nextSegment->length() + nextSegment->startOffset() );
-        }
-
-        delete segment;
-        m_segments.erase( it );
-        return nextSegment;
-    }
-    return 0;
-}
-
-bool KisAutogradientResource::removeSegmentPossible() const
-{
-    if( m_segments.count() < 2 )
-        return false;
-    return true;
-}
-
-void KisAutogradientResource::updatePreview()
-{
-    setImage( generatePreview( PREVIEW_WIDTH, PREVIEW_HEIGHT ) );
-}
diff --git a/krita/core/kis_autogradient_resource.h b/krita/core/kis_autogradient_resource.h
deleted file mode 100644
index 37546a02d..000000000
--- a/krita/core/kis_autogradient_resource.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *                2004 Sven Langkamp <longamp@reallygood.de>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef _KIS_AUTOGRADIENT_RESOURCE_H_ 
-#define _KIS_AUTOGRADIENT_RESOURCE_H_
-
-#include "kis_gradient.h"
-
-class KisAutogradientResource : public KisGradient
-{
-
-public:
-    KisAutogradientResource() : KisGradient("") {}
-
-public:
-
-    void createSegment( int interpolation, int colorInterpolation, double startOffset, double endOffset, double middleOffset, TQColor left, TQColor right );
-
-    const TQValueVector<double> getHandlePositions() const;
-    const TQValueVector<double> getMiddleHandlePositions() const;
-
-    /** 
-     * Moves the StartOffset of the specified segment to the specified value
-     * and corrects the endoffset of the previous segment.
-     * If the segment is the first Segment the startoffset will be set to 0.0 .
-     * The offset will maximally be moved till the middle of the current or the previous
-     * segment
-     */
-    void moveSegmentStartOffset( KisGradientSegment* segment, double t);
-
-    /** 
-     * Moves the endoffset of the specified segment to the specified value
-     * and corrects the startoffset of the following segment.
-     * If the segment is the last segment the endoffset will be set to 1.0 .
-     * The offset will maximally be moved till the middle of the current or the following
-     * segment
-     */
-    void moveSegmentEndOffset( KisGradientSegment* segment, double t);
-
-    /** 
-     * Moves the Middle of the specified segment to the specified value
-     * The offset will maximally be moved till the endoffset or startoffset of the segment
-     */
-    void moveSegmentMiddleOffset( KisGradientSegment* segment, double t);
-
-
-    void splitSegment( KisGradientSegment* segment );
-    void duplicateSegment( KisGradientSegment* segment );
-    void mirrorSegment( KisGradientSegment* segment );
-
-    /** 
-     * Removes the specific segment from the gradient.
-     * @return The segment which will be at the place of the old segment.
-     * 0 if the segment is not in the gradient or it is not possible to remove the segment.
-     */
-    KisGradientSegment* removeSegment( KisGradientSegment* segment );
-
-    /** 
-     * Checks if it's possible to remove an segment(at least two segments in the gradient)
-     * @return true if it's possible to remove an segment
-     */
-    bool removeSegmentPossible() const;
-        
-    /**
-     * Recreates the preview of the gradient
-     */
-    void updatePreview();
-public:
-    virtual bool load() { return false; };
-};
-
-#endif // _KIS_AUTOGRADIENT_RESOURCE_H_
diff --git a/krita/core/kis_background.cc b/krita/core/kis_background.cc
deleted file mode 100644
index 6f881d33f..000000000
--- a/krita/core/kis_background.cc
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-#include "kis_global.h"
-#include "kis_background.h"
-#include "kis_integer_maths.h"
-
-KisBackground::KisBackground()
-    : KShared()
-{
-    m_patternTile = TQImage(PATTERN_WIDTH, PATTERN_HEIGHT, 32);
-    m_patternTile.setAlphaBuffer(false);
-
-    for (int y = 0; y < PATTERN_HEIGHT; y++)
-    {
-        for (int x = 0; x < PATTERN_WIDTH; x++)
-        {
-            TQ_UINT8 v = 128 + 63 * ((x / 16 + y / 16) % 2);
-            m_patternTile.setPixel(x, y, tqRgb(v, v, v));
-        }
-    }
-}
-
-KisBackground::~KisBackground()
-{
-}
-
-const TQImage& KisBackground::patternTile() const
-{
-    return m_patternTile;
-}
-
-void KisBackground::paintBackground(TQImage image, int imageLeftX, int imageTopY)
-{
-    int patternLeftX;
-
-    if (imageLeftX >= 0) {
-        patternLeftX = imageLeftX % PATTERN_WIDTH;
-    } else {
-        patternLeftX = (PATTERN_WIDTH - (-imageLeftX % PATTERN_WIDTH)) % PATTERN_WIDTH;
-    }
-
-    int patternTopY;
-
-    if (imageTopY >= 0) {
-        patternTopY = imageTopY % PATTERN_HEIGHT;
-    } else {
-        patternTopY = (PATTERN_HEIGHT - (-imageTopY % PATTERN_HEIGHT)) % PATTERN_HEIGHT;
-    }
-
-    int imageWidth = image.width();
-    int imageHeight = image.height();
-
-    int patternY = patternTopY;
-
-    for (int y = 0; y < imageHeight; y++)
-    {
-        TQRgb *imagePixelPtr = reinterpret_cast<TQRgb *>(image.scanLine(y));
-        const TQRgb *patternScanLine = reinterpret_cast<const TQRgb *>(m_patternTile.scanLine(patternY));
-        int patternX = patternLeftX;
-
-        for (int x = 0; x < imageWidth; x++)
-        {
-            TQRgb imagePixel = *imagePixelPtr;
-            TQ_UINT8 imagePixelAlpha = tqAlpha(imagePixel);
-
-            if (imagePixelAlpha != 255) {
-
-                TQRgb patternPixel = patternScanLine[patternX];
-                TQ_UINT8 imageRed = UINT8_BLEND(tqRed(imagePixel), tqRed(patternPixel), imagePixelAlpha);
-                TQ_UINT8 imageGreen = UINT8_BLEND(tqGreen(imagePixel), tqGreen(patternPixel), imagePixelAlpha);
-                TQ_UINT8 imageBlue = UINT8_BLEND(tqBlue(imagePixel), tqBlue(patternPixel), imagePixelAlpha);
-
-                *imagePixelPtr = tqRgba(imageRed, imageGreen, imageBlue, 255);
-            }
-
-            ++imagePixelPtr;
-            ++patternX;
-
-            if (patternX == PATTERN_WIDTH) {
-                patternX = 0;
-            }
-        }
-
-        ++patternY;
-
-        if (patternY == PATTERN_HEIGHT) {
-            patternY = 0;
-        }
-    }
-}
-
-void KisBackground::paintBackground(TQImage img, const TQRect& scaledImageRect, const TQSize& scaledImageSize, const TQSize& imageSize)
-{
-    if (scaledImageRect.isEmpty() || scaledImageSize.isEmpty() || imageSize.isEmpty()) {
-        return;
-    }
-
-    Q_ASSERT(img.size() == scaledImageRect.size());
-
-    if (img.size() != scaledImageRect.size()) {
-        return;
-    }
-
-    TQ_INT32 imageWidth = imageSize.width();
-    TQ_INT32 imageHeight = imageSize.height();
-
-    for (TQ_INT32 y = 0; y < scaledImageRect.height(); ++y) {
-
-        TQ_INT32 scaledY = scaledImageRect.y() + y;
-        TQ_INT32 srcY = (scaledY * imageHeight) / scaledImageSize.height();
-        TQ_INT32 patternY = srcY % PATTERN_HEIGHT;
-
-        TQRgb *imagePixelPtr = reinterpret_cast<TQRgb *>(img.scanLine(y));
-        const TQRgb *patternScanLine = reinterpret_cast<const TQRgb *>(m_patternTile.scanLine(patternY));
-
-        for (TQ_INT32 x = 0; x < scaledImageRect.width(); ++x) {
-
-            TQRgb imagePixel = *imagePixelPtr;
-            TQ_UINT8 imagePixelAlpha = tqAlpha(imagePixel);
-
-            if (imagePixelAlpha != 255) {
-
-                TQ_INT32 scaledX = scaledImageRect.x() + x;
-                TQ_INT32 srcX = (scaledX * imageWidth) / scaledImageSize.width();
-                TQ_INT32 patternX = srcX % PATTERN_WIDTH;
-
-                TQRgb patternPixel = patternScanLine[patternX];
-                TQ_UINT8 imageRed = UINT8_BLEND(tqRed(imagePixel), tqRed(patternPixel), imagePixelAlpha);
-                TQ_UINT8 imageGreen = UINT8_BLEND(tqGreen(imagePixel), tqGreen(patternPixel), imagePixelAlpha);
-                TQ_UINT8 imageBlue = UINT8_BLEND(tqBlue(imagePixel), tqBlue(patternPixel), imagePixelAlpha);
-
-                *imagePixelPtr = tqRgba(imageRed, imageGreen, imageBlue, 255);
-            }
-
-            ++imagePixelPtr;
-        }
-    }
-}
-
-
diff --git a/krita/core/kis_background.h b/krita/core/kis_background.h
deleted file mode 100644
index f5b529031..000000000
--- a/krita/core/kis_background.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-#ifndef KIS_BACKGROUND_H_
-#define KIS_BACKGROUND_H_
-
-#include <tqimage.h>
-
-#include <ksharedptr.h>
-
-class KisBackground : public KShared {
-
-public:
-    KisBackground();
-    virtual ~KisBackground();
-
-    // Paint the background pattern into the image, 'behind' the image
-    // contents. The coordinates are for the image's top-left corner
-    // in image space.
-    void paintBackground(TQImage image, int leftX, int topY);
-
-    void paintBackground(TQImage image, const TQRect& scaledImageRect, const TQSize& scaledImageSize, const TQSize& imageSize);
-
-    // Returns the pattern tile.
-    const TQImage& patternTile() const;
-
-protected:
-    static const int PATTERN_WIDTH = 32;
-    static const int PATTERN_HEIGHT = 32;
-
-    TQImage m_patternTile;
-};
-
-#endif // KIS_BACKGROUND_H_
-
diff --git a/krita/core/kis_basic_math_toolbox.cpp b/krita/core/kis_basic_math_toolbox.cpp
deleted file mode 100644
index 1b397ab56..000000000
--- a/krita/core/kis_basic_math_toolbox.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- *  This file is part of the KDE project
- *
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "kis_basic_math_toolbox.h"
-
-KisBasicMathToolbox::KisBasicMathToolbox()
-    : KisMathToolbox(KisID("Basic"))
-{
-}
-
-
-KisBasicMathToolbox::~KisBasicMathToolbox()
-{
-}
-
-
-void KisBasicMathToolbox::wavetrans(KisMathToolbox::KisWavelet* wav, KisMathToolbox::KisWavelet* buff, uint halfsize)
-{
-    uint l = (2*halfsize)*wav->depth*sizeof(float);
-    for(uint i = 0; i < halfsize; i++)
-    {
-        float * itLL = buff->coeffs + i*buff->size*buff->depth;
-        float * itHL = buff->coeffs + (i*buff->size + halfsize)*buff->depth;
-        float * itLH = buff->coeffs + (halfsize+i)*buff->size*buff->depth;
-        float * itHH = buff->coeffs + ( (halfsize+i)*buff->size + halfsize)*buff->depth;
-        float * itS11 = wav->coeffs + 2*i*wav->size*wav->depth;
-        float * itS12 = wav->coeffs + (2*i*wav->size+1)*wav->depth;
-        float * itS21 = wav->coeffs + (2*i+1)*wav->size*wav->depth;
-        float * itS22 = wav->coeffs + ((2*i+1)*wav->size+1)*wav->depth;
-        for(uint j = 0; j < halfsize; j++)
-        {
-            for( uint k = 0; k < wav->depth; k++)
-            {
-                *(itLL++) = (*itS11 + *itS12 + *itS21 + *itS22) * M_SQRT1_2;
-                *(itHL++) = (*itS11 - *itS12 + *itS21 - *itS22) * M_SQRT1_2;
-                *(itLH++) = (*itS11 + *itS12 - *itS21 - *itS22) * M_SQRT1_2;
-                *(itHH++) = (*(itS11++) - *(itS12++) - *(itS21++) + *(itS22++)) * M_SQRT1_2;
-            }
-            itS11 += wav->depth; itS12 += wav->depth;
-            itS21 += wav->depth; itS22 += wav->depth;
-        }
-        emit nextStep();
-    }
-    for(uint i = 0; i < halfsize; i++)
-    {
-        uint p = i*wav->size*wav->depth;
-        memcpy(wav->coeffs + p, buff->coeffs + p, l);
-        p = (i + halfsize )*wav->size*wav->depth;
-        memcpy(wav->coeffs + p, buff->coeffs + p, l);
-    }
-    if(halfsize != 1)
-    {
-        wavetrans(wav, buff, halfsize/2);
-    }
-}
-
-void KisBasicMathToolbox::waveuntrans(KisMathToolbox::KisWavelet* wav, KisMathToolbox::KisWavelet* buff, uint halfsize)
-{
-    uint l = (2*halfsize)*wav->depth*sizeof(float);
-    for(uint i = 0; i < halfsize; i++)
-    {
-        float * itLL = wav->coeffs + i*buff->size*buff->depth;
-        float * itHL = wav->coeffs + (i*buff->size + halfsize)*buff->depth;
-        float * itLH = wav->coeffs + (halfsize+i)*buff->size*buff->depth;
-        float * itHH = wav->coeffs + ( (halfsize+i)*buff->size + halfsize)*buff->depth;
-        float * itS11 = buff->coeffs + 2*i*wav->size*wav->depth;
-        float * itS12 = buff->coeffs + (2*i*wav->size+1)*wav->depth;
-        float * itS21 = buff->coeffs + (2*i+1)*wav->size*wav->depth;
-        float * itS22 = buff->coeffs + ((2*i+1)*wav->size+1)*wav->depth;
-        for(uint j = 0; j < halfsize; j++)
-        {
-            for( uint k = 0; k < wav->depth; k++)
-            {
-                *(itS11++) = (*itLL + *itHL + *itLH + *itHH)*0.25*M_SQRT2;
-                *(itS12++) = (*itLL - *itHL + *itLH - *itHH)*0.25*M_SQRT2;
-                *(itS21++) = (*itLL + *itHL - *itLH - *itHH)*0.25*M_SQRT2;
-                *(itS22++) = (*(itLL++) - *(itHL++) - *(itLH++) + *(itHH++))*0.25*M_SQRT2;
-            }
-            itS11 += wav->depth; itS12 += wav->depth;
-            itS21 += wav->depth; itS22 += wav->depth;
-        }
-        emit nextStep();
-    }
-    for(uint i = 0; i < halfsize; i++)
-    {
-        uint p = i*wav->size*wav->depth;
-        memcpy(wav->coeffs + p, buff->coeffs + p, l);
-        p = (i + halfsize )*wav->size*wav->depth;
-        memcpy(wav->coeffs + p, buff->coeffs + p, l);
-    }
-    
-    if(halfsize != wav->size/2)
-    {
-        waveuntrans(wav, buff, halfsize*2);
-    }
-}
-
-KisMathToolbox::KisWavelet* KisBasicMathToolbox::fastWaveletTransformation(KisPaintDeviceSP src, const TQRect& rect,  KisWavelet* buff)
-{
-    if(buff == 0)
-    {
-        buff = initWavelet( src, rect );
-    }
-    KisWavelet* wav = initWavelet( src, rect );
-    transformToFR(src, wav, rect);
-    wavetrans(wav, buff, wav->size / 2);
-    
-    return wav;
-}
-
-void KisBasicMathToolbox::fastWaveletUntransformation(KisPaintDeviceSP dst, const TQRect& rect, KisWavelet* wav, KisWavelet* buff)
-{
-    if(buff == 0)
-    {
-        buff = initWavelet( dst, rect );
-    }
-    
-    waveuntrans(wav, buff, 1 );
-    transformFromFR(dst, wav, rect);
-}
diff --git a/krita/core/kis_basic_math_toolbox.h b/krita/core/kis_basic_math_toolbox.h
deleted file mode 100644
index e5fa66cd5..000000000
--- a/krita/core/kis_basic_math_toolbox.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *  This file is part of the KDE project
- *
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_BASIC_MATH_TOOLBOX_H
-#define KIS_BASIC_MATH_TOOLBOX_H
-
-#include "kis_math_toolbox.h"
-
-/**
- * This class implement KisMathToolbox for most colorspaces, only colorspaces with "angular"
- * channels need to reimplement the functions
- */
-class KisBasicMathToolbox : public KisMathToolbox
-{
-    public:
-        KisBasicMathToolbox();
-        ~KisBasicMathToolbox();
-    public:
-        virtual KisWavelet* fastWaveletTransformation(KisPaintDeviceSP src, const TQRect&,  KisWavelet* buff = 0);
-        virtual void fastWaveletUntransformation(KisPaintDeviceSP dst, const TQRect&, KisWavelet* wav, KisWavelet* buff = 0);
-    private:
-        void wavetrans(KisWavelet* wav, KisWavelet* buff, uint halfsize);
-        void waveuntrans(KisWavelet* wav, KisWavelet* buff, uint halfsize);
-
-};
-
-#endif
diff --git a/krita/core/kis_boundary.cc b/krita/core/kis_boundary.cc
deleted file mode 100644
index 0c9681c25..000000000
--- a/krita/core/kis_boundary.cc
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- *  Copyright (c) 2005 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <tqpixmap.h>
-#include <tqpainter.h>
-
-#include "kis_colorspace.h"
-#include "kis_iterators_pixel.h"
-#include "kis_paint_device.h"
-#include "kis_boundary.h"
-
-KisBoundary::KisBoundary(KisPaintDevice* dev) {
-    m_device = dev;
-    m_fuzzyness = 255 / 2;
-}
-
-bool KisBoundary::isDark(TQ_UINT8 val) {
-    return val < m_fuzzyness;
-}
-
-void KisBoundary::generateBoundary(int w, int h) {
-    if (!m_device)
-        return;
-
-    KisColorSpace* cs = m_device->colorSpace();
-
-    //Qt::Horizontal
-    for (int currentY = - 1; currentY < h; currentY++) {
-        KisHLineIteratorPixel topIt = m_device->createHLineIterator(0, currentY, w, false);
-        KisHLineIteratorPixel botIt = m_device->createHLineIterator(0, currentY + 1, w, false);
-        bool darkTop;
-        bool darkBot;
-
-        m_horSegments.append(TQValueList<PointPair>());
-
-        while (!topIt.isDone()) {
-            darkTop = cs->getAlpha(topIt.rawData());
-            darkBot = cs->getAlpha(botIt.rawData());
-            if (darkTop != darkBot) {
-                // detected a change
-                m_horSegments.back().append(tqMakePair(KisPoint(botIt.x(), botIt.y()), 1));
-            }
-            ++topIt;
-            ++botIt;
-        }
-    }
-
-    //Qt::Vertical
-    for (int currentX = - 1; currentX < w; currentX++) {
-        KisVLineIteratorPixel leftIt = m_device->createVLineIterator(currentX, 0, h, false);
-        KisVLineIteratorPixel rightIt = m_device->createVLineIterator(currentX + 1, 0, h, false);
-        bool darkLeft;
-        bool darkRight;
-
-        m_vertSegments.append(TQValueList<PointPair>());
-
-        while (!leftIt.isDone()) {
-            darkLeft = cs->getAlpha(leftIt.rawData());
-            darkRight = cs->getAlpha(rightIt.rawData());
-            if (darkLeft != darkRight) {
-                // detected a change
-                m_vertSegments.back().append(tqMakePair(KisPoint(rightIt.x(), rightIt.y()), 1));
-            }
-            ++leftIt;
-            ++rightIt;
-        }
-    }
-}
-
diff --git a/krita/core/kis_boundary.h b/krita/core/kis_boundary.h
deleted file mode 100644
index 6c5ce8c6e..000000000
--- a/krita/core/kis_boundary.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *  Copyright (c) 2005 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef _KIS_BOUNDARY_H_
-#define _KIS_BOUNDARY_H_
-
-#include <tqvaluelist.h>
-#include <tqpair.h>
-#include <koffice_export.h>
-
-#include "kis_point.h"
-
-class KisPaintDevice;
-
-/**
- * Generates an 'outline' for a paint device. It should look a bit like the outline of a
- * marching ants selection. You can use it to paint the outline of a KisBrush while painting.
- * It's not really optimized, so it's not recommended to do big things with it and expect
- * it to be fast.
- * Usage: construct a KisBoundary, and then run a generateBoundary(w, h) on it. After that,
- * you can use the KisBoundaryPainter::paint method to let it paint the outline, or get a pixmap.
- **/
-class KRITACORE_EXPORT KisBoundary {
-public:
-    KisBoundary(KisPaintDevice* dev);
-    void generateBoundary(int w, int h);
-
-private:
-    typedef TQPair<KisPoint, int> PointPair; // int->length
-    bool isDark(TQ_UINT8 val);
-    KisPaintDevice* m_device;
-    int m_fuzzyness;
-
-    typedef TQValueList<PointPair> PointPairList;
-    typedef TQValueList< PointPairList > PointPairListList;
-
-    PointPairListList m_horSegments;
-    PointPairListList m_vertSegments;
-
-    friend class KisBoundaryPainter;
-};
-
-#endif // _KIS_BOUNDARY_H_
diff --git a/krita/core/kis_brush.cc b/krita/core/kis_brush.cc
deleted file mode 100644
index a590248d8..000000000
--- a/krita/core/kis_brush.cc
+++ /dev/null
@@ -1,1333 +0,0 @@
-/*
- *  Copyright (c) 1999 Matthias Elter  <me@kde.org>
- *  Copyright (c) 2003 Patrick Julien  <freak@codepimps.org>
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *  Copyright (c) 2004 Adrian Page <adrian@pagenet.plus.com>
- *  Copyright (c) 2005 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#include <netinet/in.h>
-#include <limits.h>
-#include <stdlib.h>
-#include <cfloat>
-
-#include <tqfile.h>
-#include <tqimage.h>
-#include <tqpoint.h>
-#include <tqvaluevector.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include <kis_meta_registry.h>
-#include "kis_paint_device.h"
-#include "kis_global.h"
-#include "kis_brush.h"
-#include "kis_alpha_tqmask.h"
-#include "kis_colorspace_factory_registry.h"
-#include "kis_iterators_pixel.h"
-#include "kis_image.h"
-
-
-namespace {
-    struct GimpBrushV1Header {
-        TQ_UINT32 header_size;  /*  header_size = sizeof (BrushHeader) + brush name  */
-        TQ_UINT32 version;      /*  brush file version #  */
-        TQ_UINT32 width;        /*  width of brush  */
-        TQ_UINT32 height;       /*  height of brush  */
-        TQ_UINT32 bytes;        /*  depth of brush in bytes */
-    };
-
-    /// All fields are in MSB on disk!
-    struct GimpBrushHeader {
-        TQ_UINT32 header_size;  /*  header_size = sizeof (BrushHeader) + brush name  */
-        TQ_UINT32 version;      /*  brush file version #  */
-        TQ_UINT32 width;        /*  width of brush  */
-        TQ_UINT32 height;       /*  height of brush  */
-        TQ_UINT32 bytes;        /*  depth of brush in bytes */
-
-                       /*  The following are only defined in version 2 */
-        TQ_UINT32 magic_number; /*  GIMP brush magic number  */
-        TQ_UINT32 spacing;      /*  brush spacing as % of width & height, 0 - 1000 */
-    };
-
-    // Needed, or the GIMP won't open it!
-    TQ_UINT32 const GimpV2BrushMagic = ('G' << 24) + ('I' << 16) + ('M' << 8) + ('P' << 0);
-}
-
-#define DEFAULT_SPACING 0.25
-#define MAXIMUM_SCALE 2
-
-KisBrush::KisBrush(const TQString& filename) : super(filename)
-{
-    m_brushType = INVALID;
-    m_ownData = true;
-    m_useColorAsMask = false;
-    m_hasColor = false;
-    m_spacing = DEFAULT_SPACING;
-    m_boundary = 0;
-}
-
-KisBrush::KisBrush(const TQString& filename,
-           const TQByteArray& data,
-           TQ_UINT32 & dataPos) : super(filename)
-{
-    m_brushType = INVALID;
-    m_ownData = false;
-    m_useColorAsMask = false;
-    m_hasColor = false;
-    m_spacing = DEFAULT_SPACING;
-    m_boundary = 0;
-
-    m_data.setRawData(data.data() + dataPos, data.size() - dataPos);
-    init();
-    m_data.resetRawData(data.data() + dataPos, data.size() - dataPos);
-    dataPos += m_header_size + (width() * height() * m_bytes);
-}
-
-KisBrush::KisBrush(KisPaintDevice* image, int x, int y, int w, int h)
-    : super(TQString(""))
-{
-    m_brushType = INVALID;
-    m_ownData = true;
-    m_useColorAsMask = false;
-    m_hasColor = true;
-    m_spacing = DEFAULT_SPACING;
-    m_boundary = 0;
-
-    initFromPaintDev(image, x, y, w, h);
-}
-
-KisBrush::KisBrush(const TQImage& image, const TQString& name)
-    : super(TQString(""))
-{
-    m_ownData = false;
-    m_useColorAsMask = false;
-    m_hasColor = true;
-    m_spacing = DEFAULT_SPACING;
-    m_boundary = 0;
-
-    setImage(image);
-    setName(name);
-    setBrushType(IMAGE);
-}
-
-
-KisBrush::~KisBrush()
-{
-    m_scaledBrushes.clear();
-    delete m_boundary;
-}
-
-bool KisBrush::load()
-{
-    if (m_ownData) {
-        TQFile file(filename());
-        file.open(IO_ReadOnly);
-        m_data = file.readAll();
-        file.close();
-    }
-    return init();
-}
-
-bool KisBrush::init()
-{
-    GimpBrushHeader bh;
-
-    if (sizeof(GimpBrushHeader) > m_data.size()) {
-        return false;
-    }
-
-    memcpy(&bh, &m_data[0], sizeof(GimpBrushHeader));
-    bh.header_size = ntohl(bh.header_size);
-    m_header_size = bh.header_size;
-
-    bh.version = ntohl(bh.version);
-    m_version = bh.version;
-
-    bh.width = ntohl(bh.width);
-    bh.height = ntohl(bh.height);
-
-    bh.bytes = ntohl(bh.bytes);
-    m_bytes = bh.bytes;
-
-    bh.magic_number = ntohl(bh.magic_number);
-    m_magic_number = bh.magic_number;
-
-    if (bh.version == 1) {
-        // No spacing in version 1 files so use Gimp default
-        bh.spacing = static_cast<int>(DEFAULT_SPACING * 100);
-    }
-    else {
-        bh.spacing = ntohl(bh.spacing);
-
-        if (bh.spacing > 1000) {
-            return false;
-        }
-    }
-
-    setSpacing(bh.spacing / 100.0);
-
-    if (bh.header_size > m_data.size() || bh.header_size == 0) {
-        return false;
-    }
-
-    TQString name;
-
-    if (bh.version == 1) {
-        // Version 1 has no magic number or spacing, so the name
-        // is at a different offset. Character encoding is undefined.
-        const char *text = &m_data[sizeof(GimpBrushV1Header)];
-        name = TQString::fromAscii(text, bh.header_size - sizeof(GimpBrushV1Header));
-    } else {
-        // ### Version = 3->cinepaint; may be float16 data!
-        // Version >=2: UTF-8 encoding is used
-        name = TQString::fromUtf8(&m_data[sizeof(GimpBrushHeader)],
-                                  bh.header_size - sizeof(GimpBrushHeader));
-    }
-
-    setName(i18n(name.ascii())); // Ascii? And what with real UTF-8 chars?
-
-    if (bh.width == 0 || bh.height == 0 || !m_img.create(bh.width, bh.height, 32)) {
-        return false;
-    }
-
-    TQ_INT32 k = bh.header_size;
-
-    if (bh.bytes == 1) {
-        // Grayscale
-
-        if (static_cast<TQ_UINT32>(k + bh.width * bh.height) > m_data.size()) {
-            return false;
-        }
-
-        m_brushType = MASK;
-        m_hasColor = false;
-
-        for (TQ_UINT32 y = 0; y < bh.height; y++) {
-            for (TQ_UINT32 x = 0; x < bh.width; x++, k++) {
-                TQ_INT32 val = 255 - static_cast<uchar>(m_data[k]);
-                m_img.setPixel(x, y, tqRgb(val, val, val));
-            }
-        }
-    } else if (bh.bytes == 4) {
-        // RGBA
-
-        if (static_cast<TQ_UINT32>(k + (bh.width * bh.height * 4)) > m_data.size()) {
-            return false;
-        }
-
-        m_brushType = IMAGE;
-        m_img.setAlphaBuffer(true);
-        m_hasColor = true;
-
-        for (TQ_UINT32 y = 0; y < bh.height; y++) {
-            for (TQ_UINT32 x = 0; x < bh.width; x++, k += 4) {
-                m_img.setPixel(x, y, tqRgba(m_data[k],
-                               m_data[k+1],
-                               m_data[k+2],
-                               m_data[k+3]));
-            }
-        }
-    } else {
-        return false;
-    }
-
-    setWidth(m_img.width());
-    setHeight(m_img.height());
-    //createScaledBrushes();
-    if (m_ownData) {
-        m_data.resize(0); // Save some memory, we're using enough of it as it is.
-    }
-
-
-    if (m_img.width() == 0 || m_img.height() == 0)
-        setValid(false);
-    else
-        setValid(true);
-
-    return true;
-}
-
-bool KisBrush::initFromPaintDev(KisPaintDevice* image, int x, int y, int w, int h) {
-    // Forcefully convert to RGBA8
-    // XXX profile and exposure?
-    setImage(image->convertToTQImage(0, x, y, w, h));
-    setName(image->name());
-
-    m_brushType = IMAGE;
-    m_hasColor = true;
-
-    return true;
-}
-
-bool KisBrush::save()
-{
-    TQFile file(filename());
-    file.open(IO_WriteOnly | IO_Truncate);
-    bool ok = saveToDevice(&file);
-    file.close();
-    return ok;
-}
-
-bool KisBrush::saveToDevice(TQIODevice* dev) const
-{
-    GimpBrushHeader bh;
-    TQCString utf8Name = name().utf8(); // Names in v2 brushes are in UTF-8
-    char const* name = utf8Name.data();
-    int nameLength = tqstrlen(name);
-    int wrote;
-
-    bh.header_size = htonl(sizeof(GimpBrushHeader) + nameLength);
-    bh.version = htonl(2); // Only RGBA8 data needed atm, no cinepaint stuff
-    bh.width = htonl(width());
-    bh.height = htonl(height());
-    // Hardcoded, 4 bytes RGBA or 1 byte GREY
-    if (!hasColor())
-        bh.bytes = htonl(1);
-    else
-        bh.bytes = htonl(4);
-    bh.magic_number = htonl(GimpV2BrushMagic);
-    bh.spacing = htonl(static_cast<TQ_UINT32>(spacing() * 100.0));
-
-    // Write header: first bh, then the name
-    TQByteArray bytes;
-    bytes.setRawData(reinterpret_cast<char*>(&bh), sizeof(GimpBrushHeader));
-    wrote = dev->writeBlock(bytes);
-    bytes.resetRawData(reinterpret_cast<char*>(&bh), sizeof(GimpBrushHeader));
-
-    if (wrote == -1)
-        return false;
-
-    wrote = dev->writeBlock(name, nameLength); // No +1 for the trailing NULL it seems...
-    if (wrote == -1)
-        return false;
-
-    int k = 0;
-
-    if (!hasColor()) {
-        bytes.resize(width() * height());
-        for (TQ_INT32 y = 0; y < height(); y++) {
-            for (TQ_INT32 x = 0; x < width(); x++) {
-                TQRgb c = m_img.pixel(x, y);
-                bytes[k++] = static_cast<char>(255 - tqRed(c)); // red == blue == green
-            }
-        }
-    } else {
-        bytes.resize(width() * height() * 4);
-        for (TQ_INT32 y = 0; y < height(); y++) {
-            for (TQ_INT32 x = 0; x < width(); x++) {
-                // order for gimp brushes, v2 is: RGBA
-                TQRgb pixel = m_img.pixel(x,y);
-                bytes[k++] = static_cast<char>(tqRed(pixel));
-                bytes[k++] = static_cast<char>(tqGreen(pixel));
-                bytes[k++] = static_cast<char>(tqBlue(pixel));
-                bytes[k++] = static_cast<char>(tqAlpha(pixel));
-            }
-        }
-    }
-
-    wrote = dev->writeBlock(bytes);
-    if (wrote == -1)
-        return false;
-
-    return true;
-}
-
-TQImage KisBrush::img()
-{
-    TQImage image = m_img;
-
-    if (hasColor() && useColorAsMask()) {
-        image.detach();
-
-        for (int x = 0; x < image.width(); x++) {
-            for (int y = 0; y < image.height(); y++) {
-                TQRgb c = image.pixel(x, y);
-                int a = (tqGray(c) * tqAlpha(c)) / 255;
-                image.setPixel(x, y, tqRgba(a, 0, a, a));
-            }
-        }
-    }
-
-    return image;
-}
-
-KisAlphaMaskSP KisBrush::tqmask(const KisPaintInformation& info, double subPixelX, double subPixelY) const
-{
-    if (m_scaledBrushes.isEmpty()) {
-        createScaledBrushes();
-    }
-
-    double scale = scaleForPressure(info.pressure);
-
-    const ScaledBrush *aboveBrush = 0;
-    const ScaledBrush *belowBrush = 0;
-
-    findScaledBrushes(scale, &aboveBrush,  &belowBrush);
-    Q_ASSERT(aboveBrush != 0);
-
-    KisAlphaMaskSP outputMask = 0;
-
-    if (belowBrush != 0) {
-        // We're in between two tqmasks. Interpolate between them.
-
-        KisAlphaMaskSP scaledAboveMask = scaleMask(aboveBrush, scale, subPixelX, subPixelY);
-        KisAlphaMaskSP scaledBelowMask = scaleMask(belowBrush, scale, subPixelX, subPixelY);
-
-        double t = (scale - belowBrush->scale()) / (aboveBrush->scale() - belowBrush->scale());
-
-        outputMask = KisAlphaMask::interpolate(scaledBelowMask, scaledAboveMask, t);
-    } else {
-        if (fabs(scale - aboveBrush->scale()) < DBL_EPSILON) {
-            // Exact match.
-            outputMask = scaleMask(aboveBrush, scale, subPixelX, subPixelY);
-        } else {
-            // We are smaller than the smallest tqmask, which is always 1x1.
-            double s = scale / aboveBrush->scale();
-            outputMask = scaleSinglePixelMask(s, aboveBrush->tqmask()->alphaAt(0, 0), subPixelX, subPixelY);
-        }
-    }
-
-    return outputMask;
-}
-
-KisPaintDeviceSP KisBrush::image(KisColorSpace * /*colorSpace*/, const KisPaintInformation& info, double subPixelX, double subPixelY) const
-{
-    if (m_scaledBrushes.isEmpty()) {
-        createScaledBrushes();
-    }
-
-    double scale = scaleForPressure(info.pressure);
-
-    const ScaledBrush *aboveBrush = 0;
-    const ScaledBrush *belowBrush = 0;
-
-    findScaledBrushes(scale, &aboveBrush,  &belowBrush);
-    Q_ASSERT(aboveBrush != 0);
-
-    TQImage outputImage;
-
-    if (belowBrush != 0) {
-        // We're in between two brushes. Interpolate between them.
-
-        TQImage scaledAboveImage = scaleImage(aboveBrush, scale, subPixelX, subPixelY);
-        TQImage scaledBelowImage = scaleImage(belowBrush, scale, subPixelX, subPixelY);
-
-        double t = (scale - belowBrush->scale()) / (aboveBrush->scale() - belowBrush->scale());
-
-        outputImage = interpolate(scaledBelowImage, scaledAboveImage, t);
-    } else {
-        if (fabs(scale - aboveBrush->scale()) < DBL_EPSILON) {
-            // Exact match.
-            outputImage = scaleImage(aboveBrush, scale, subPixelX, subPixelY);
-        } else {
-            // We are smaller than the smallest brush, which is always 1x1.
-            double s = scale / aboveBrush->scale();
-            outputImage = scaleSinglePixelImage(s, aboveBrush->image().pixel(0, 0), subPixelX, subPixelY);
-        }
-    }
-
-    int outputWidth = outputImage.width();
-    int outputHeight = outputImage.height();
-
-    KisPaintDevice *layer = new KisPaintDevice(KisMetaRegistry::instance()->csRegistry()->getRGB8(), "brush");
-
-    Q_CHECK_PTR(layer);
-
-    for (int y = 0; y < outputHeight; y++) {
-        KisHLineIterator iter = layer->createHLineIterator( 0, y, outputWidth, true);
-        for (int x = 0; x < outputWidth; x++) {
-	    TQ_UINT8 * p = iter.rawData();
-
-            TQRgb pixel = outputImage.pixel(x, y);
-            int red = tqRed(pixel);
-            int green = tqGreen(pixel);
-            int blue = tqBlue(pixel);
-            int alpha = tqAlpha(pixel);
-
-            // Scaled images are in pre-multiplied alpha form so
-            // divide by alpha.
-	    // channel order is BGRA
-            if (alpha != 0) {
-                p[2] = (red * 255) / alpha;
-                p[1] = (green * 255) / alpha;
-		p[0] = (blue * 255) / alpha;
-		p[3] = alpha;
-            }
-
-            ++iter;
-        }
-    }
-
-    return layer;
-}
-
-void KisBrush::setHotSpot(KisPoint pt)
-{
-    double x = pt.x();
-    double y = pt.y();
-
-    if (x < 0)
-        x = 0;
-    else if (x >= width())
-        x = width() - 1;
-
-    if (y < 0)
-        y = 0;
-    else if (y >= height())
-        y = height() - 1;
-
-    m_hotSpot = KisPoint(x, y);
-}
-
-KisPoint KisBrush::hotSpot(const KisPaintInformation& info) const
-{
-    double scale = scaleForPressure(info.pressure);
-    double w = width() * scale;
-    double h = height() * scale;
-
-    // The smallest brush we can produce is a single pixel.
-    if (w < 1) {
-        w = 1;
-    }
-
-    if (h < 1) {
-        h = 1;
-    }
-
-    // XXX: This should take m_hotSpot into account, though it
-    // isn't specified by gimp brushes so it would default to the centre
-    // anyway.
-    KisPoint p(w / 2, h / 2);
-    return p;
-}
-
-enumBrushType KisBrush::brushType() const
-{
-    if (m_brushType == IMAGE && useColorAsMask()) {
-        return MASK;
-    }
-    else {
-        return m_brushType;
-    }
-}
-
-bool KisBrush::hasColor() const
-{
-    return m_hasColor;
-}
-
-void KisBrush::createScaledBrushes() const
-{
-    if (!m_scaledBrushes.isEmpty())
-        m_scaledBrushes.clear();
-
-    // Construct a series of brushes where each one's dimensions are
-    // half the size of the previous one.
-    int width = m_img.width() * MAXIMUM_SCALE;
-    int height = m_img.height() * MAXIMUM_SCALE;
-
-    TQImage scaledImage;
-
-    while (true) {
-
-        if (width >= m_img.width() && height >= m_img.height()) {
-            scaledImage = scaleImage(m_img, width, height);
-        }
-        else {
-            // Scale down the previous image once we're below 1:1.
-            scaledImage = scaleImage(scaledImage, width, height);
-        }
-
-        KisAlphaMaskSP scaledMask = new KisAlphaMask(scaledImage, hasColor());
-        Q_CHECK_PTR(scaledMask);
-
-        double xScale = static_cast<double>(width) / m_img.width();
-        double yScale = static_cast<double>(height) / m_img.height();
-        double scale = xScale;
-
-        m_scaledBrushes.append(ScaledBrush(scaledMask, hasColor() ? scaledImage : TQImage(), scale, xScale, yScale));
-
-        if (width == 1 && height == 1) {
-            break;
-        }
-
-        // Round up so that we never have to scale an image by less than 1/2.
-        width = (width + 1) / 2;
-        height = (height + 1) / 2;
-
-    }
-
-}
-
-double KisBrush::xSpacing(double pressure) const
-{
-    return width() * scaleForPressure(pressure) * m_spacing;
-}
-
-double KisBrush::ySpacing(double pressure) const
-{
-    return height() * scaleForPressure(pressure) * m_spacing;
-}
-
-double KisBrush::scaleForPressure(double pressure)
-{
-    double scale = pressure / PRESSURE_DEFAULT;
-
-    if (scale < 0) {
-        scale = 0;
-    }
-
-    if (scale > MAXIMUM_SCALE) {
-        scale = MAXIMUM_SCALE;
-    }
-
-    return scale;
-}
-
-TQ_INT32 KisBrush::tqmaskWidth(const KisPaintInformation& info) const
-{
-    // Add one for sub-pixel shift
-    return static_cast<TQ_INT32>(ceil(width() * scaleForPressure(info.pressure)) + 1);
-}
-
-TQ_INT32 KisBrush::tqmaskHeight(const KisPaintInformation& info) const
-{
-    // Add one for sub-pixel shift
-    return static_cast<TQ_INT32>(ceil(height() * scaleForPressure(info.pressure)) + 1);
-}
-
-KisAlphaMaskSP KisBrush::scaleMask(const ScaledBrush *srcBrush, double scale, double subPixelX, double subPixelY) const
-{
-    // Add one pixel for sub-pixel shifting
-    int dstWidth = static_cast<int>(ceil(scale * width())) + 1;
-    int dstHeight = static_cast<int>(ceil(scale * height())) + 1;
-
-    KisAlphaMaskSP dstMask = new KisAlphaMask(dstWidth, dstHeight);
-    Q_CHECK_PTR(dstMask);
-
-    KisAlphaMaskSP srcMask = srcBrush->tqmask();
-
-    // Compute scales to map the scaled brush onto the required scale.
-    double xScale = srcBrush->xScale() / scale;
-    double yScale = srcBrush->yScale() / scale;
-
-    int srcWidth = srcMask->width();
-    int srcHeight = srcMask->height();
-
-    for (int dstY = 0; dstY < dstHeight; dstY++) {
-        for (int dstX = 0; dstX < dstWidth; dstX++) {
-
-            double srcX = (dstX - subPixelX + 0.5) * xScale;
-            double srcY = (dstY - subPixelY + 0.5) * yScale;
-
-            srcX -= 0.5;
-            srcY -= 0.5;
-
-            int leftX = static_cast<int>(srcX);
-
-            if (srcX < 0) {
-                leftX--;
-            }
-
-            double xInterp = srcX - leftX;
-
-            int topY = static_cast<int>(srcY);
-
-            if (srcY < 0) {
-                topY--;
-            }
-
-            double yInterp = srcY - topY;
-
-            TQ_UINT8 topLeft = (leftX >= 0 && leftX < srcWidth && topY >= 0 && topY < srcHeight) ? srcMask->alphaAt(leftX, topY) : OPACITY_TRANSPARENT;
-            TQ_UINT8 bottomLeft = (leftX >= 0 && leftX < srcWidth && topY + 1 >= 0 && topY + 1 < srcHeight) ? srcMask->alphaAt(leftX, topY + 1) : OPACITY_TRANSPARENT;
-            TQ_UINT8 topRight = (leftX + 1 >= 0 && leftX + 1 < srcWidth && topY >= 0 && topY < srcHeight) ? srcMask->alphaAt(leftX + 1, topY) : OPACITY_TRANSPARENT;
-            TQ_UINT8 bottomRight = (leftX + 1 >= 0 && leftX + 1 < srcWidth && topY + 1 >= 0 && topY + 1 < srcHeight) ? srcMask->alphaAt(leftX + 1, topY + 1) : OPACITY_TRANSPARENT;
-
-            double a = 1 - xInterp;
-            double b = 1 - yInterp;
-
-            // Bi-linear interpolation
-            int d = static_cast<int>(a * b * topLeft
-                + a * (1 - b) * bottomLeft
-                + (1 - a) * b * topRight
-                + (1 - a) * (1 - b) * bottomRight + 0.5);
-
-            if (d < OPACITY_TRANSPARENT) {
-                d = OPACITY_TRANSPARENT;
-            }
-            else
-            if (d > OPACITY_OPAQUE) {
-                d = OPACITY_OPAQUE;
-            }
-
-            dstMask->setAlphaAt(dstX, dstY, static_cast<TQ_UINT8>(d));
-        }
-    }
-
-    return dstMask;
-}
-
-TQImage KisBrush::scaleImage(const ScaledBrush *srcBrush, double scale, double subPixelX, double subPixelY) const
-{
-    // Add one pixel for sub-pixel shifting
-    int dstWidth = static_cast<int>(ceil(scale * width())) + 1;
-    int dstHeight = static_cast<int>(ceil(scale * height())) + 1;
-
-    TQImage dstImage(dstWidth, dstHeight, 32);
-    dstImage.setAlphaBuffer(true);
-
-    const TQImage srcImage = srcBrush->image();
-
-    // Compute scales to map the scaled brush onto the required scale.
-    double xScale = srcBrush->xScale() / scale;
-    double yScale = srcBrush->yScale() / scale;
-
-    int srcWidth = srcImage.width();
-    int srcHeight = srcImage.height();
-
-    for (int dstY = 0; dstY < dstHeight; dstY++) {
-        for (int dstX = 0; dstX < dstWidth; dstX++) {
-
-            double srcX = (dstX - subPixelX + 0.5) * xScale;
-            double srcY = (dstY - subPixelY + 0.5) * yScale;
-
-            srcX -= 0.5;
-            srcY -= 0.5;
-
-            int leftX = static_cast<int>(srcX);
-
-            if (srcX < 0) {
-                leftX--;
-            }
-
-            double xInterp = srcX - leftX;
-
-            int topY = static_cast<int>(srcY);
-
-            if (srcY < 0) {
-                topY--;
-            }
-
-            double yInterp = srcY - topY;
-
-            TQRgb topLeft = (leftX >= 0 && leftX < srcWidth && topY >= 0 && topY < srcHeight) ? srcImage.pixel(leftX, topY) : tqRgba(0, 0, 0, 0);
-            TQRgb bottomLeft = (leftX >= 0 && leftX < srcWidth && topY + 1 >= 0 && topY + 1 < srcHeight) ? srcImage.pixel(leftX, topY + 1) : tqRgba(0, 0, 0, 0);
-            TQRgb topRight = (leftX + 1 >= 0 && leftX + 1 < srcWidth && topY >= 0 && topY < srcHeight) ? srcImage.pixel(leftX + 1, topY) : tqRgba(0, 0, 0, 0);
-            TQRgb bottomRight = (leftX + 1 >= 0 && leftX + 1 < srcWidth && topY + 1 >= 0 && topY + 1 < srcHeight) ? srcImage.pixel(leftX + 1, topY + 1) : tqRgba(0, 0, 0, 0);
-
-            double a = 1 - xInterp;
-            double b = 1 - yInterp;
-
-            // Bi-linear interpolation. Image is pre-multiplied by alpha.
-            int red = static_cast<int>(a * b * tqRed(topLeft)
-                + a * (1 - b) * tqRed(bottomLeft)
-                + (1 - a) * b * tqRed(topRight)
-                + (1 - a) * (1 - b) * tqRed(bottomRight) + 0.5);
-            int green = static_cast<int>(a * b * tqGreen(topLeft)
-                + a * (1 - b) * tqGreen(bottomLeft)
-                + (1 - a) * b * tqGreen(topRight)
-                + (1 - a) * (1 - b) * tqGreen(bottomRight) + 0.5);
-            int blue = static_cast<int>(a * b * tqBlue(topLeft)
-                + a * (1 - b) * tqBlue(bottomLeft)
-                + (1 - a) * b * tqBlue(topRight)
-                + (1 - a) * (1 - b) * tqBlue(bottomRight) + 0.5);
-            int alpha = static_cast<int>(a * b * tqAlpha(topLeft)
-                + a * (1 - b) * tqAlpha(bottomLeft)
-                + (1 - a) * b * tqAlpha(topRight)
-                + (1 - a) * (1 - b) * tqAlpha(bottomRight) + 0.5);
-
-            if (red < 0) {
-                red = 0;
-            }
-            else
-            if (red > 255) {
-                red = 255;
-            }
-
-            if (green < 0) {
-                green = 0;
-            }
-            else
-            if (green > 255) {
-                green = 255;
-            }
-
-            if (blue < 0) {
-                blue = 0;
-            }
-            else
-            if (blue > 255) {
-                blue = 255;
-            }
-
-            if (alpha < 0) {
-                alpha = 0;
-            }
-            else
-            if (alpha > 255) {
-                alpha = 255;
-            }
-
-            dstImage.setPixel(dstX, dstY, tqRgba(red, green, blue, alpha));
-        }
-    }
-
-    return dstImage;
-}
-
-TQImage KisBrush::scaleImage(const TQImage& srcImage, int width, int height)
-{
-    TQImage scaledImage;
-    //TQString filename;
-
-    int srcWidth = srcImage.width();
-    int srcHeight = srcImage.height();
-
-    double xScale = static_cast<double>(srcWidth) / width;
-    double yScale = static_cast<double>(srcHeight) / height;
-
-    if (xScale > 2 + DBL_EPSILON || yScale > 2 + DBL_EPSILON || xScale < 1 - DBL_EPSILON || yScale < 1 - DBL_EPSILON) {
-        // smoothScale gives better results when scaling an image up
-        // or scaling it to less than half size.
-        scaledImage = srcImage.smoothScale(width, height);
-
-        //filename = TQString("smoothScale_%1x%2.png").tqarg(width).tqarg(height);
-    }
-    else {
-        scaledImage.create(width, height, 32);
-        scaledImage.setAlphaBuffer(srcImage.hasAlphaBuffer());
-
-        for (int dstY = 0; dstY < height; dstY++) {
-            for (int dstX = 0; dstX < width; dstX++) {
-
-                double srcX = (dstX + 0.5) * xScale;
-                double srcY = (dstY + 0.5) * yScale;
-
-                srcX -= 0.5;
-                srcY -= 0.5;
-
-                int leftX = static_cast<int>(srcX);
-
-                if (srcX < 0) {
-                    leftX--;
-                }
-
-                double xInterp = srcX - leftX;
-
-                int topY = static_cast<int>(srcY);
-
-                if (srcY < 0) {
-                    topY--;
-                }
-
-                double yInterp = srcY - topY;
-
-                TQRgb topLeft = (leftX >= 0 && leftX < srcWidth && topY >= 0 && topY < srcHeight) ? srcImage.pixel(leftX, topY) : tqRgba(0, 0, 0, 0);
-                TQRgb bottomLeft = (leftX >= 0 && leftX < srcWidth && topY + 1 >= 0 && topY + 1 < srcHeight) ? srcImage.pixel(leftX, topY + 1) : tqRgba(0, 0, 0, 0);
-                TQRgb topRight = (leftX + 1 >= 0 && leftX + 1 < srcWidth && topY >= 0 && topY < srcHeight) ? srcImage.pixel(leftX + 1, topY) : tqRgba(0, 0, 0, 0);
-                TQRgb bottomRight = (leftX + 1 >= 0 && leftX + 1 < srcWidth && topY + 1 >= 0 && topY + 1 < srcHeight) ? srcImage.pixel(leftX + 1, topY + 1) : tqRgba(0, 0, 0, 0);
-
-                double a = 1 - xInterp;
-                double b = 1 - yInterp;
-
-                int red;
-                int green;
-                int blue;
-                int alpha;
-
-                if (srcImage.hasAlphaBuffer()) {
-                    red = static_cast<int>(a * b * tqRed(topLeft)         * tqAlpha(topLeft)
-                        + a * (1 - b) * tqRed(bottomLeft)             * tqAlpha(bottomLeft)
-                        + (1 - a) * b * tqRed(topRight)               * tqAlpha(topRight)
-                        + (1 - a) * (1 - b) * tqRed(bottomRight)      * tqAlpha(bottomRight) + 0.5);
-                    green = static_cast<int>(a * b * tqGreen(topLeft)     * tqAlpha(topLeft)
-                        + a * (1 - b) * tqGreen(bottomLeft)           * tqAlpha(bottomLeft)
-                        + (1 - a) * b * tqGreen(topRight)             * tqAlpha(topRight)
-                        + (1 - a) * (1 - b) * tqGreen(bottomRight)    * tqAlpha(bottomRight) + 0.5);
-                    blue = static_cast<int>(a * b * tqBlue(topLeft)       * tqAlpha(topLeft)
-                        + a * (1 - b) * tqBlue(bottomLeft)            * tqAlpha(bottomLeft)
-                        + (1 - a) * b * tqBlue(topRight)              * tqAlpha(topRight)
-                        + (1 - a) * (1 - b) * tqBlue(bottomRight)     * tqAlpha(bottomRight) + 0.5);
-                    alpha = static_cast<int>(a * b * tqAlpha(topLeft)
-                        + a * (1 - b) * tqAlpha(bottomLeft)
-                        + (1 - a) * b * tqAlpha(topRight)
-                        + (1 - a) * (1 - b) * tqAlpha(bottomRight) + 0.5);
-
-                    if (alpha != 0) {
-                        red /= alpha;
-                        green /= alpha;
-                        blue /= alpha;
-                    }
-                }
-                else {
-                    red = static_cast<int>(a * b * tqRed(topLeft)
-                        + a * (1 - b) * tqRed(bottomLeft)
-                        + (1 - a) * b * tqRed(topRight)
-                        + (1 - a) * (1 - b) * tqRed(bottomRight) + 0.5);
-                    green = static_cast<int>(a * b * tqGreen(topLeft)
-                        + a * (1 - b) * tqGreen(bottomLeft)
-                        + (1 - a) * b * tqGreen(topRight)
-                        + (1 - a) * (1 - b) * tqGreen(bottomRight) + 0.5);
-                    blue = static_cast<int>(a * b * tqBlue(topLeft)
-                        + a * (1 - b) * tqBlue(bottomLeft)
-                        + (1 - a) * b * tqBlue(topRight)
-                        + (1 - a) * (1 - b) * tqBlue(bottomRight) + 0.5);
-                    alpha = 255;
-                }
-
-                if (red < 0) {
-                    red = 0;
-                }
-                else
-                if (red > 255) {
-                    red = 255;
-                }
-
-                if (green < 0) {
-                    green = 0;
-                }
-                else
-                if (green > 255) {
-                    green = 255;
-                }
-
-                if (blue < 0) {
-                    blue = 0;
-                }
-                else
-                if (blue > 255) {
-                    blue = 255;
-                }
-
-                if (alpha < 0) {
-                    alpha = 0;
-                }
-                else
-                if (alpha > 255) {
-                    alpha = 255;
-                }
-
-                scaledImage.setPixel(dstX, dstY, tqRgba(red, green, blue, alpha));
-            }
-        }
-
-        //filename = TQString("bilinear_%1x%2.png").tqarg(width).tqarg(height);
-    }
-
-    //scaledImage.save(filename, "PNG");
-
-    return scaledImage;
-}
-
-void KisBrush::findScaledBrushes(double scale, const ScaledBrush **aboveBrush, const ScaledBrush **belowBrush) const
-{
-    uint current = 0;
-
-    while (true) {
-        *aboveBrush = &(m_scaledBrushes[current]);
-
-        if (fabs((*aboveBrush)->scale() - scale) < DBL_EPSILON) {
-            // Scale matches exactly
-            break;
-        }
-
-        if (current == m_scaledBrushes.count() - 1) {
-            // This is the last one
-            break;
-        }
-
-        if (scale > m_scaledBrushes[current + 1].scale() + DBL_EPSILON) {
-            // We fit in between the two.
-            *belowBrush = &(m_scaledBrushes[current + 1]);
-            break;
-        }
-
-        current++;
-    }
-}
-
-KisAlphaMaskSP KisBrush::scaleSinglePixelMask(double scale, TQ_UINT8 tqmaskValue, double subPixelX, double subPixelY)
-{
-    int srcWidth = 1;
-    int srcHeight = 1;
-    int dstWidth = 2;
-    int dstHeight = 2;
-    KisAlphaMaskSP outputMask = new KisAlphaMask(dstWidth, dstHeight);
-    Q_CHECK_PTR(outputMask);
-
-    double a = subPixelX;
-    double b = subPixelY;
-
-    for (int y = 0; y < dstHeight; y++) {
-        for (int x = 0; x < dstWidth; x++) {
-
-            TQ_UINT8 topLeft = (x > 0 && y > 0) ? tqmaskValue : OPACITY_TRANSPARENT;
-            TQ_UINT8 bottomLeft = (x > 0 && y < srcHeight) ? tqmaskValue : OPACITY_TRANSPARENT;
-            TQ_UINT8 topRight = (x < srcWidth && y > 0) ? tqmaskValue : OPACITY_TRANSPARENT;
-            TQ_UINT8 bottomRight = (x < srcWidth && y < srcHeight) ? tqmaskValue : OPACITY_TRANSPARENT;
-
-            // Bi-linear interpolation
-            int d = static_cast<int>(a * b * topLeft
-                + a * (1 - b) * bottomLeft
-                + (1 - a) * b * topRight
-                + (1 - a) * (1 - b) * bottomRight + 0.5);
-
-            // Multiply by the square of the scale because a 0.5x0.5 pixel
-            // has 0.25 the value of the 1x1.
-            d = static_cast<int>(d * scale * scale + 0.5);
-
-            if (d < OPACITY_TRANSPARENT) {
-                d = OPACITY_TRANSPARENT;
-            }
-            else
-            if (d > OPACITY_OPAQUE) {
-                d = OPACITY_OPAQUE;
-            }
-
-            outputMask->setAlphaAt(x, y, static_cast<TQ_UINT8>(d));
-        }
-    }
-
-    return outputMask;
-}
-
-TQImage KisBrush::scaleSinglePixelImage(double scale, TQRgb pixel, double subPixelX, double subPixelY)
-{
-    int srcWidth = 1;
-    int srcHeight = 1;
-    int dstWidth = 2;
-    int dstHeight = 2;
-
-    TQImage outputImage(dstWidth, dstHeight, 32);
-    outputImage.setAlphaBuffer(true);
-
-    double a = subPixelX;
-    double b = subPixelY;
-
-    for (int y = 0; y < dstHeight; y++) {
-        for (int x = 0; x < dstWidth; x++) {
-
-            TQRgb topLeft = (x > 0 && y > 0) ? pixel : tqRgba(0, 0, 0, 0);
-            TQRgb bottomLeft = (x > 0 && y < srcHeight) ? pixel : tqRgba(0, 0, 0, 0);
-            TQRgb topRight = (x < srcWidth && y > 0) ? pixel : tqRgba(0, 0, 0, 0);
-            TQRgb bottomRight = (x < srcWidth && y < srcHeight) ? pixel : tqRgba(0, 0, 0, 0);
-
-            // Bi-linear interpolation. Images are in pre-multiplied form.
-            int red = static_cast<int>(a * b * tqRed(topLeft)
-                + a * (1 - b) * tqRed(bottomLeft)
-                + (1 - a) * b * tqRed(topRight)
-                + (1 - a) * (1 - b) * tqRed(bottomRight) + 0.5);
-            int green = static_cast<int>(a * b * tqGreen(topLeft)
-                + a * (1 - b) * tqGreen(bottomLeft)
-                + (1 - a) * b * tqGreen(topRight)
-                + (1 - a) * (1 - b) * tqGreen(bottomRight) + 0.5);
-            int blue = static_cast<int>(a * b * tqBlue(topLeft)
-                + a * (1 - b) * tqBlue(bottomLeft)
-                + (1 - a) * b * tqBlue(topRight)
-                + (1 - a) * (1 - b) * tqBlue(bottomRight) + 0.5);
-            int alpha = static_cast<int>(a * b * tqAlpha(topLeft)
-                + a * (1 - b) * tqAlpha(bottomLeft)
-                + (1 - a) * b * tqAlpha(topRight)
-                + (1 - a) * (1 - b) * tqAlpha(bottomRight) + 0.5);
-
-            // Multiply by the square of the scale because a 0.5x0.5 pixel
-            // has 0.25 the value of the 1x1.
-            alpha = static_cast<int>(alpha * scale * scale + 0.5);
-
-            // Apply to the colour channels too since we are
-            // storing pre-multiplied by alpha.
-            red = static_cast<int>(red * scale * scale + 0.5);
-            green = static_cast<int>(green * scale * scale + 0.5);
-            blue = static_cast<int>(blue * scale * scale + 0.5);
-
-            if (red < 0) {
-                red = 0;
-            }
-            else
-            if (red > 255) {
-                red = 255;
-            }
-
-            if (green < 0) {
-                green = 0;
-            }
-            else
-            if (green > 255) {
-                green = 255;
-            }
-
-            if (blue < 0) {
-                blue = 0;
-            }
-            else
-            if (blue > 255) {
-                blue = 255;
-            }
-
-            if (alpha < 0) {
-                alpha = 0;
-            }
-            else
-            if (alpha > 255) {
-                alpha = 255;
-            }
-
-            outputImage.setPixel(x, y, tqRgba(red, green, blue, alpha));
-        }
-    }
-
-    return outputImage;
-}
-
-TQImage KisBrush::interpolate(const TQImage& image1, const TQImage& image2, double t)
-{
-    Q_ASSERT((image1.width() == image2.width()) && (image1.height() == image2.height()));
-    Q_ASSERT(t > -DBL_EPSILON && t < 1 + DBL_EPSILON);
-
-    int width = image1.width();
-    int height = image1.height();
-
-    TQImage outputImage(width, height, 32);
-    outputImage.setAlphaBuffer(true);
-
-    for (int x = 0; x < width; x++) {
-        for (int y = 0; y < height; y++) {
-            TQRgb image1pixel = image1.pixel(x, y);
-            TQRgb image2pixel = image2.pixel(x, y);
-
-            // Images are in pre-multiplied alpha format.
-            int red = static_cast<int>((1 - t) * tqRed(image1pixel) + t * tqRed(image2pixel) + 0.5);
-            int green = static_cast<int>((1 - t) * tqGreen(image1pixel) + t * tqGreen(image2pixel) + 0.5);
-            int blue = static_cast<int>((1 - t) * tqBlue(image1pixel) + t * tqBlue(image2pixel) + 0.5);
-            int alpha = static_cast<int>((1 - t) * tqAlpha(image1pixel) + t * tqAlpha(image2pixel) + 0.5);
-
-            if (red < 0) {
-                red = 0;
-            }
-            else
-            if (red > 255) {
-                red = 255;
-            }
-
-            if (green < 0) {
-                green = 0;
-            }
-            else
-            if (green > 255) {
-                green = 255;
-            }
-
-            if (blue < 0) {
-                blue = 0;
-            }
-            else
-            if (blue > 255) {
-                blue = 255;
-            }
-
-            if (alpha < 0) {
-                alpha = 0;
-            }
-            else
-            if (alpha > 255) {
-                alpha = 255;
-            }
-
-            outputImage.setPixel(x, y, tqRgba(red, green, blue, alpha));
-        }
-    }
-
-    return outputImage;
-}
-
-KisBrush::ScaledBrush::ScaledBrush()
-{
-    m_tqmask = 0;
-    m_image = TQImage();
-    m_scale = 1;
-    m_xScale = 1;
-    m_yScale = 1;
-}
-
-KisBrush::ScaledBrush::ScaledBrush(KisAlphaMaskSP scaledMask, const TQImage& scaledImage, double scale, double xScale, double yScale)
-{
-    m_tqmask = scaledMask;
-    m_image = scaledImage;
-    m_scale = scale;
-    m_xScale = xScale;
-    m_yScale = yScale;
-
-    if (!m_image.isNull()) {
-        // Convert image to pre-multiplied by alpha.
-
-        m_image.detach();
-
-        for (int y = 0; y < m_image.height(); y++) {
-            for (int x = 0; x < m_image.width(); x++) {
-
-                TQRgb pixel = m_image.pixel(x, y);
-
-                int red = tqRed(pixel);
-                int green = tqGreen(pixel);
-                int blue = tqBlue(pixel);
-                int alpha = tqAlpha(pixel);
-
-                red = (red * alpha) / 255;
-                green = (green * alpha) / 255;
-                blue = (blue * alpha) / 255;
-
-                m_image.setPixel(x, y, tqRgba(red, green, blue, alpha));
-            }
-        }
-    }
-}
-
-void KisBrush::setImage(const TQImage& img)
-{
-    m_img = img;
-    m_img.detach();
-
-    setWidth(img.width());
-    setHeight(img.height());
-
-    m_scaledBrushes.clear();
-
-    setValid(true);
-}
-
-TQ_INT32 KisBrush::width() const
-{
-    return m_width;
-}
-
-void KisBrush::setWidth(TQ_INT32 w)
-{
-    m_width = w;
-}
-
-TQ_INT32 KisBrush::height() const
-{
-    return m_height;
-}
-
-void KisBrush::setHeight(TQ_INT32 h)
-{
-    m_height = h;
-}
-
-/*TQImage KisBrush::outline(double pressure) {
-    KisLayerSP layer = image(KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID("RGBA",""),""),
-                             KisPaintInformation(pressure));
-    KisBoundary bounds(layer.data());
-    int w = tqmaskWidth(pressure);
-    int h = tqmaskHeight(pressure);
-
-    bounds.generateBoundary(w, h);
-    TQPixmap pix(bounds.pixmap(w, h));
-    TQImage result;
-    result = pix;
-    return result;
-}*/
-
-void KisBrush::generateBoundary() {
-    KisPaintDeviceSP dev;
-    int w = tqmaskWidth(KisPaintInformation());
-    int h = tqmaskHeight(KisPaintInformation());
-
-    if (brushType() == IMAGE || brushType() == PIPE_IMAGE) {
-        dev = image(KisMetaRegistry::instance()->csRegistry() ->getColorSpace(KisID("RGBA",""),""), KisPaintInformation());
-    } else {
-        KisAlphaMaskSP atqmask = tqmask(KisPaintInformation());
-        KisColorSpace* cs = KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID("RGBA",""),"");
-        dev = new KisPaintDevice(cs, "tmp for generateBoundary");
-        for (int y = 0; y < h; y++) {
-            KisHLineIteratorPixel it = dev->createHLineIterator(0, y, w, true);
-            int x = 0;
-
-            while(!it.isDone()) {
-                cs->setAlpha(it.rawData(), atqmask->alphaAt(x++, y), 1);
-                ++it;
-            }
-        }
-    }
-
-    m_boundary = new KisBoundary(dev);
-    m_boundary->generateBoundary(w, h);
-}
-
-KisBoundary KisBrush::boundary() {
-    if (!m_boundary)
-        generateBoundary();
-    return *m_boundary;
-}
-
-void KisBrush::makeMaskImage() {
-    if (!hasColor())
-        return;
-
-    TQImage img;
-    img.create(width(), height(), 32);
-
-    if (m_img.width() == img.width() && m_img.height() == img.height()) {
-        for (int x = 0; x < width(); x++) {
-            for (int y = 0; y < height(); y++) {
-                TQRgb c = m_img.pixel(x, y);
-                int a = (tqGray(c) * tqAlpha(c)) / 255; // tqGray(black) = 0
-                img.setPixel(x, y, tqRgba(a, a, a, 255));
-            }
-        }
-
-        m_img = img;
-    }
-
-    m_brushType = MASK;
-    m_hasColor = false;
-    m_useColorAsMask = false;
-    delete m_boundary;
-    m_boundary = 0;
-    m_scaledBrushes.clear();
-}
-
-KisBrush* KisBrush::clone() const {
-    KisBrush* c = new KisBrush("");
-    c->m_spacing = m_spacing;
-    c->m_useColorAsMask = m_useColorAsMask;
-    c->m_hasColor = m_useColorAsMask;
-    c->m_img = m_img;
-    c->m_width = m_width;
-    c->m_height = m_height;
-    c->m_ownData = false;
-    c->m_hotSpot = m_hotSpot;
-    c->m_brushType = m_brushType;
-    c->setValid(true);
-
-    return c;
-}
-
-#include "kis_brush.moc"
-
diff --git a/krita/core/kis_brush.h b/krita/core/kis_brush.h
deleted file mode 100644
index 43fc32590..000000000
--- a/krita/core/kis_brush.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- *  Copyright (c) 1999 Matthias Elter  <me@kde.org>
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_BRUSH_
-#define KIS_BRUSH_
-
-#include <tqcstring.h>
-#include <tqstring.h>
-#include <tqsize.h>
-#include <tqimage.h>
-#include <tqvaluevector.h>
-
-#include <kio/job.h>
-
-#include "kis_resource.h"
-#include "kis_types.h"
-#include "kis_point.h"
-#include "kis_alpha_tqmask.h"
-#include "koffice_export.h"
-#include "kis_boundary.h"
-#include "kis_paintop.h"
-
-class TQPoint;
-class TQPixmap;
-class KisBoundary;
-class KisColorSpace;
-class TQIODevice;
-
-enum enumBrushType {
-    INVALID,
-    MASK,
-    IMAGE,
-    PIPE_MASK,
-    PIPE_IMAGE,
-    AIRBRUSH
-};
-
-class KRITACORE_EXPORT KisBrush : public KisResource {
-    typedef KisResource super;
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    /// Construct brush to load filename later as brush
-    KisBrush(const TQString& filename);
-    /// Load brush from the specified data, at position dataPos, and set the filename
-    KisBrush(const TQString& filename,
-         const TQByteArray & data,
-         TQ_UINT32 & dataPos);
-    /// Load brush from the specified paint device, in the specified region
-    KisBrush(KisPaintDevice* image, int x, int y, int w, int h);
-    /// Load brush as a copy from the specified TQImage (handy when you need to copy a brush!)
-    KisBrush(const TQImage& image, const TQString& name = TQString(""));
-
-    virtual ~KisBrush();
-
-    virtual bool load();
-    /// synchronous, doesn't emit any signal (none defined!)
-    virtual bool save();
-    virtual TQImage img();
-    virtual bool saveToDevice(TQIODevice* dev) const;
-
-    /**
-       @return a tqmask computed from the grey-level values of the
-       pixels in the brush.
-    */
-    virtual KisAlphaMaskSP tqmask(const KisPaintInformation& info,
-                                double subPixelX = 0, double subPixelY = 0) const;
-    // XXX: return non-tiled simple buffer
-    virtual KisPaintDeviceSP image(KisColorSpace * colorSpace, const KisPaintInformation& info,
-                             double subPixelX = 0, double subPixelY = 0) const;
-
-    void setHotSpot(KisPoint);
-    KisPoint hotSpot(const KisPaintInformation& info = KisPaintInformation()) const;
-
-    void setSpacing(double s) { m_spacing = s; }
-    double spacing() const { return m_spacing; }
-    double xSpacing(double pressure = PRESSURE_DEFAULT) const;
-    double ySpacing(double pressure = PRESSURE_DEFAULT) const;
-
-    // Dimensions in pixels of the tqmask/image at a given pressure.
-    TQ_INT32 tqmaskWidth(const KisPaintInformation& info) const;
-    TQ_INT32 tqmaskHeight(const KisPaintInformation& info) const;
-
-    virtual void setUseColorAsMask(bool useColorAsMask) { m_useColorAsMask = useColorAsMask; }
-    virtual bool useColorAsMask() const { return m_useColorAsMask; }
-    virtual bool hasColor() const;
-
-    virtual void makeMaskImage();
-    TQ_INT32 width() const;
-    TQ_INT32 height() const;
-
-    virtual enumBrushType brushType() const;
-
-    //TQImage outline(double pressure = PRESSURE_DEFAULT);
-    virtual KisBoundary boundary();
-
-    /**
-     * Returns true if this brush can return something useful for the info. This is used
-     * by Pipe Brushes that can't paint sometimes
-     **/
-    virtual bool canPaintFor(const KisPaintInformation& /*info*/) { return true; }
-
-    virtual KisBrush* clone() const;
-
-protected:
-    void setWidth(TQ_INT32 w);
-    void setHeight(TQ_INT32 h);
-    void setImage(const TQImage& img);
-    void setBrushType(enumBrushType type) { m_brushType = type; };
-    static double scaleForPressure(double pressure);
-
-private:
-    class ScaledBrush {
-    public:
-        ScaledBrush();
-        ScaledBrush(KisAlphaMaskSP scaledMask, const TQImage& scaledImage, double scale, double xScale, double yScale);
-
-        double scale() const { return m_scale; }
-        double xScale() const { return m_xScale; }
-        double yScale() const { return m_yScale; }
-        KisAlphaMaskSP tqmask() const { return m_tqmask; }
-        TQImage image() const { return m_image; }
-
-    private:
-        KisAlphaMaskSP m_tqmask;
-        TQImage m_image;
-        double m_scale;
-        double m_xScale;
-        double m_yScale;
-    };
-
-
-    bool init();
-    bool initFromPaintDev(KisPaintDevice* image, int x, int y, int w, int h);
-    void createScaledBrushes() const;
-
-    KisAlphaMaskSP scaleMask(const ScaledBrush *srcBrush, double scale, double subPixelX, double subPixelY) const;
-    TQImage scaleImage(const ScaledBrush *srcBrush, double scale, double subPixelX, double subPixelY) const;
-
-    static TQImage scaleImage(const TQImage& srcImage, int width, int height);
-    static TQImage interpolate(const TQImage& image1, const TQImage& image2, double t);
-
-    static KisAlphaMaskSP scaleSinglePixelMask(double scale, TQ_UINT8 tqmaskValue, double subPixelX, double subPixelY);
-    static TQImage scaleSinglePixelImage(double scale, TQRgb pixel, double subPixelX, double subPixelY);
-
-    // Find the scaled brush(es) nearest to the given scale.
-    void findScaledBrushes(double scale, const ScaledBrush **aboveBrush, const ScaledBrush **belowBrush) const;
-
-    // Initialize our boundary
-    void generateBoundary();
-
-    TQByteArray m_data;
-    bool m_ownData;
-    KisPoint m_hotSpot;
-    double m_spacing;
-    bool m_useColorAsMask;
-    bool m_hasColor;
-    TQImage m_img;
-    mutable TQValueVector<ScaledBrush> m_scaledBrushes;
-
-    TQ_INT32 m_width;
-    TQ_INT32 m_height;
-
-    TQ_UINT32 m_header_size;  /*  header_size = sizeof (BrushHeader) + brush name  */
-    TQ_UINT32 m_version;      /*  brush file version #  */
-    TQ_UINT32 m_bytes;        /*  depth of brush in bytes */
-    TQ_UINT32 m_magic_number; /*  GIMP brush magic number  */
-
-    enumBrushType m_brushType;
-
-    KisBoundary* m_boundary;
-
-};
-#endif // KIS_BRUSH_
-
diff --git a/krita/core/kis_change_profile_visitor.h b/krita/core/kis_change_profile_visitor.h
deleted file mode 100644
index dea0eb4b1..000000000
--- a/krita/core/kis_change_profile_visitor.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- *  Copyright (c) 2006 Boudewijn Rempt <boud@valdyas.org
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_CHANGE_PROFILE_VISITOR_H_
-#define KIS_CHANGE_PROFILE_VISITOR_H_
-
-#include "kis_global.h"
-#include "kis_types.h"
-#include "kis_layer_visitor.h"
-#include "kis_paint_layer.h"
-#include "kis_paint_device.h"
-#include "kis_adjustment_layer.h"
-#include "kis_group_layer.h"
-
-/**
- * The Change Profile visitor walks over all layers and if the current
- * layer has the specified colorspace AND the specified old profile, sets
- * the colorspace to the same colorspace with the NEW profile, without doing
- * conversions. This is essential if you have loaded an image that didn't
- * have an embedded profile to which you want to attach the right profile.
- */
-class KisChangeProfileVisitor :public KisLayerVisitor {
-public:
-    KisChangeProfileVisitor(KisColorSpace *oldColorSpace, KisColorSpace *dstColorSpace);
-    virtual ~KisChangeProfileVisitor();
-
-public:
-    virtual bool visit(KisPaintLayer *layer);
-    virtual bool visit(KisGroupLayer *layer);
-    virtual bool visit(KisPartLayer *layer);
-    virtual bool visit(KisAdjustmentLayer* layer);
-    
-private:
-    KisColorSpace *m_oldColorSpace;
-    KisColorSpace *m_dstColorSpace;
-};
-
-KisChangeProfileVisitor::KisChangeProfileVisitor(KisColorSpace * oldColorSpace, 
-                                                 KisColorSpace *dstColorSpace) :
-    KisLayerVisitor(),
-    m_oldColorSpace(oldColorSpace),
-    m_dstColorSpace(dstColorSpace)
-{
-}
-
-KisChangeProfileVisitor::~KisChangeProfileVisitor()
-{
-}
-
-bool KisChangeProfileVisitor::visit(KisGroupLayer * layer)
-{
-    // Clear the projection, we will have to re-render everything.
-    layer->resetProjection();
-    
-    KisLayerSP child = layer->firstChild();
-    while (child) {
-        child->accept(*this);
-        child = child->nextSibling();
-    }
-    layer->setDirty();
-    return true;
-}
-
-bool KisChangeProfileVisitor::visit(KisPaintLayer *layer)
-{
-    if (!layer) return false;
-    if (!layer->paintDevice()) return false;
-    if (!layer->paintDevice()->colorSpace()) return false;
-
-    KisColorSpace * cs = layer->paintDevice()->colorSpace();
-
-    if (cs == m_oldColorSpace) {
-    
-        layer->paintDevice()->setProfile(m_dstColorSpace->getProfile());
-
-        layer->setDirty();
-    }
-    return true;
-}
-
-bool KisChangeProfileVisitor::visit(KisPartLayer *)
-{
-    return true;
-}
-
-
-bool KisChangeProfileVisitor::visit(KisAdjustmentLayer * layer)
-{
-    layer->resetCache();
-    layer->setDirty();
-    return true;
-}
-
-#endif // KIS_CHANGE_PROFILE_VISITOR_H_
-
diff --git a/krita/core/kis_colorspace_convert_visitor.h b/krita/core/kis_colorspace_convert_visitor.h
deleted file mode 100644
index e42c08930..000000000
--- a/krita/core/kis_colorspace_convert_visitor.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_COLORSPACE_CONVERT_VISITOR_H_
-#define KIS_COLORSPACE_CONVERT_VISITOR_H_
-
-#include "kis_global.h"
-#include "kis_types.h"
-#include "kis_layer_visitor.h"
-#include "kis_paint_layer.h"
-#include "kis_paint_device.h"
-#include "kis_adjustment_layer.h"
-#include "kis_group_layer.h"
-
-class KisColorSpaceConvertVisitor :public KisLayerVisitor {
-public:
-    KisColorSpaceConvertVisitor(KisColorSpace *dstColorSpace, TQ_INT32 renderingIntent);
-    virtual ~KisColorSpaceConvertVisitor();
-
-public:
-    virtual bool visit(KisPaintLayer *layer);
-    virtual bool visit(KisGroupLayer *layer);
-    virtual bool visit(KisPartLayer *layer);
-    virtual bool visit(KisAdjustmentLayer* layer);
-    
-private:
-    KisColorSpace *m_dstColorSpace;
-    TQ_INT32 m_renderingIntent;
-};
-
-KisColorSpaceConvertVisitor::KisColorSpaceConvertVisitor(KisColorSpace *dstColorSpace, TQ_INT32 renderingIntent) :
-    KisLayerVisitor(),
-    m_dstColorSpace(dstColorSpace),
-    m_renderingIntent(renderingIntent)
-{
-}
-
-KisColorSpaceConvertVisitor::~KisColorSpaceConvertVisitor()
-{
-}
-
-bool KisColorSpaceConvertVisitor::visit(KisGroupLayer * layer)
-{
-    // Clear the projection, we will have to re-render everything.
-    // The image is already set to the new colorspace, so this'll work.
-    layer->resetProjection();
-    
-    KisLayerSP child = layer->firstChild();
-    while (child) {
-        child->accept(*this);
-        child = child->nextSibling();
-    }
-    layer->setDirty();
-    return true;
-}
-
-bool KisColorSpaceConvertVisitor::visit(KisPaintLayer *layer)
-{
-    layer->paintDevice()->convertTo(m_dstColorSpace, m_renderingIntent);
-
-    layer->setDirty();
-    return true;
-}
-
-bool KisColorSpaceConvertVisitor::visit(KisPartLayer *)
-{
-    return true;
-}
-
-
-bool KisColorSpaceConvertVisitor::visit(KisAdjustmentLayer * layer)
-{
-    if (layer->filter()->name() == "perchannel") {
-        // Per-channel filters need to be reset because of different number
-        // of channels. This makes undo very tricky, but so be it.
-        // XXX: Make this more generic for after 1.6, when we'll have many
-        // channel-specific filters. 
-        KisFilter * f = KisFilterRegistry::instance()->get("perchannel");
-        layer->setFilter(f->configuration());
-    }
-    layer->resetCache();
-    layer->setDirty();
-    return true;
-}
-
-#endif // KIS_COLORSPACE_CONVERT_VISITOR_H_
-
diff --git a/krita/core/kis_command.cc b/krita/core/kis_command.cc
deleted file mode 100644
index 11da634b8..000000000
--- a/krita/core/kis_command.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *  Copyright (c) 1999 Michael Koch    <koch@kde.org>
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <tqstring.h>
-#include "kis_command.h"
-
-KisCommand::KisCommand(KisUndoAdapter *adapter)
-{
-    m_name = "";
-    m_undoAdapter = adapter;
-}
-
-KisCommand::KisCommand(const TQString& name, KisUndoAdapter *adapter)
-{
-    m_name = name;
-    m_undoAdapter = adapter;
-}
-
-KisCommand::~KisCommand()
-{
-}
-
-TQString KisCommand::name() const
-{
-    return m_name;
-}
-
diff --git a/krita/core/kis_command.h b/krita/core/kis_command.h
deleted file mode 100644
index bc87bc5d0..000000000
--- a/krita/core/kis_command.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- *  Copyright (c) 1999 Michael Koch    <koch@kde.org>
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_COMMAND_H_
-#define KIS_COMMAND_H_
-
-#include <tqstring.h>
-#include <kcommand.h>
-
-class KisUndoAdapter;
-
-class KisCommand : public KCommand {
-    typedef KCommand super;
-
-public:
-    KisCommand(KisUndoAdapter *undoAdapter);
-    KisCommand(const TQString& name, KisUndoAdapter *undoAdapter);
-    virtual ~KisCommand();
-
-    virtual void execute() = 0;
-    virtual void unexecute() = 0;
-    virtual TQString name() const;
-
-protected:
-    KisUndoAdapter *adapter() const;
-
-private:
-    KisUndoAdapter *m_undoAdapter;
-    TQString m_name;
-};
-
-inline
-KisUndoAdapter *KisCommand::adapter() const
-{
-    return m_undoAdapter;
-}
-
-#endif // KIS_COMMAND_H_
-
diff --git a/krita/core/kis_convolution_painter.cc b/krita/core/kis_convolution_painter.cc
deleted file mode 100644
index c9146527f..000000000
--- a/krita/core/kis_convolution_painter.cc
+++ /dev/null
@@ -1,426 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <cfloat>
-
-#include "tqbrush.h"
-#include "tqcolor.h"
-#include "tqfontinfo.h"
-#include "tqfontmetrics.h"
-#include "tqpen.h"
-#include "tqregion.h"
-#include "tqwmatrix.h"
-#include <tqimage.h>
-#include <tqmap.h>
-#include <tqpainter.h>
-#include <tqpixmap.h>
-#include <tqpointarray.h>
-#include <tqrect.h>
-#include <tqstring.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include <tqcolor.h>
-
-#include "kis_brush.h"
-#include "kis_global.h"
-#include "kis_image.h"
-#include "kis_iterators_pixel.h"
-#include "kis_layer.h"
-#include "kis_paint_device.h"
-#include "kis_painter.h"
-#include "kis_pattern.h"
-#include "kis_rect.h"
-#include "kis_colorspace.h"
-#include "kis_types.h"
-#include "kis_vec.h"
-#include "kis_selection.h"
-#include "kis_convolution_painter.h"
-
-
-KisKernelSP KisKernel::fromTQImage(const TQImage& img)
-{
-    KisKernelSP k = new KisKernel;
-    k->width = img.width();
-    k->height = img.height();
-    k->offset = 0;
-    uint count = k->width * k->height;
-    k->data = new TQ_INT32[count];
-    TQ_INT32* itData = k->data;
-    TQ_UINT8* itImg = img.bits();
-    k->factor = 0;
-    for(uint i = 0; i < count; ++i , ++itData, itImg+=4)
-    {
-        *itData = 255 - ( *itImg + *(itImg+1) + *(itImg+2) ) / 3;
-        k->factor += *itData;
-    }
-    return k;
-}
-
-
-KisConvolutionPainter::KisConvolutionPainter()
-    : super()
-{
-}
-
-KisConvolutionPainter::KisConvolutionPainter(KisPaintDeviceSP device) : super(device)
-{
-}
-
-void KisConvolutionPainter::applyMatrix(KisKernelSP kernel, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h,
-                    KisConvolutionBorderOp borderOp,
-                    KisChannelInfo::enumChannelFlags  channelFlags )
-{
-    // Make the area we cover as small as possible
-    if (m_device->hasSelection()) {
-
-        TQRect r =  m_device->selection()->selectedRect().intersect(TQRect(x, y, w, h));
-        x = r.x();
-        y = r.y();
-        w = r.width();
-        h = r.height();
-
-    }
-
-    if ( w == 0 && h == 0 ) return;
-
-    // Determine the kernel's extent from the center pixel
-    TQ_INT32 kw, kh, khalfWidth, khalfHeight, xLastMinuskhw, yLastMinuskhh;
-    kw = kernel->width;
-    kh = kernel->height;
-    khalfWidth = (kw - 1) / 2;
-    khalfHeight = (kh - 1) / 2;
-
-    xLastMinuskhw = x + (w - khalfWidth);
-    yLastMinuskhh = y + (h - khalfHeight);
-
-    // Don't try to convolve on an area smaller than the kernel, or with a kernel that is not square or has no center pixel.
-    if (w < kw || h < kh || (kw&1) == 0 || (kh&1) == 0 || kernel->factor == 0 ) return;
-
-    m_cancelRequested = false;
-    int lastProgressPercent = 0;
-    emit notifyProgress(0);
-
-    KisColorSpace * cs = m_device->colorSpace();
-
-    // Determine whether we convolve border pixels, or not.
-    switch (borderOp) {
-        case BORDER_DEFAULT_FILL :
-            break;
-        case BORDER_REPEAT:
-            applyMatrixRepeat(kernel, x, y, w, h, channelFlags);
-            return;
-        case BORDER_WRAP:
-        case BORDER_AVOID:
-        default :
-            x += khalfWidth;
-            y += khalfHeight;
-            w -= kw - 1;
-            h -= kh - 1;
-    }
-
-    // Iterate over all pixels in our rect, create a cache of pixels around the current pixel and convolve them in the colorstrategy.
-
-    int cacheSize = kw * kh;
-    int cdepth = cs -> pixelSize();
-    TQ_UINT8** pixelPtrCache = new TQ_UINT8*[cacheSize];
-    for (int i = 0; i < cacheSize; i++)
-        pixelPtrCache[i] = new TQ_UINT8[cdepth];
-//     pixelPtrCache.fill(0);
-
-    // row == the y position of the pixel we want to change in the paint device
-    int row = y;
-
-    for (; row < y + h; ++row) {
-
-        // col = the x position of the pixel we want to change
-        int col = x;
-
-        KisHLineIteratorPixel hit = m_device->createHLineIterator(x, row, w, true);
-        bool needFull = true;
-        while (!hit.isDone()) {
-
-            // Iterate over all contributing pixels that are covered by the kernel
-            // krow = the y position in the kernel matrix
-            if(needFull)
-            {
-                TQ_INT32 i = 0;
-                for (TQ_INT32 krow = 0; krow <  kh; ++krow) {
-
-                    // col - khalfWidth = the left starting point of the kernel as centered on our pixel
-                    // krow - khalfHeight = the offset for the top of the kernel as centered on our pixel
-                    // kw = the width of the kernel
-
-                    // Fill the cache with pointers to the pixels under the kernel
-                    KisHLineIteratorPixel kit = m_device->createHLineIterator(col - khalfWidth, (row - khalfHeight) + krow, kw, false);
-                    while (!kit.isDone()) {
-                        memcpy(pixelPtrCache[i], kit.oldRawData(), cdepth);
-                        ++kit;
-                        ++i;
-                    }
-                }
-                needFull = false;
-                Q_ASSERT (i==kw*kh);
-            } else {
-                for (TQ_INT32 krow = 0; krow <  kh; ++krow) { // shift the cache to the left
-                    TQ_UINT8** d = pixelPtrCache + krow * kw;
-                    //memmove( d, d + 1, (kw-1)*sizeof(TQ_UINT8*));
-                    for (int i = 0; i < (kw-1); i++) {
-                        memcpy(d[i], d[i+1], cdepth);
-                    }
-                }
-                TQ_INT32 i = kw - 1;
-                KisVLineIteratorPixel kit = m_device->createVLineIterator(col + khalfWidth, row - khalfHeight, kh, false);
-                while (!kit.isDone()) {
-                    memcpy(pixelPtrCache[i], kit.oldRawData(), cdepth);
-                    ++kit;
-                    i += kw;
-                }
-            }
-            if (hit.isSelected()) {
-                cs->convolveColors(pixelPtrCache, kernel->data, channelFlags, hit.rawData(), kernel->factor, kernel->offset, kw * kh);
-//                 pixelPtrCache.fill(0);
-            }
-            ++col;
-            ++hit;
-        }
-
-        int progressPercent = 100 - ((((y + h) - row) * 100) / h);
-
-        if (progressPercent > lastProgressPercent) {
-            emit notifyProgress(progressPercent);
-            lastProgressPercent = progressPercent;
-
-            if (m_cancelRequested) {
-                for (int i = 0; i < cacheSize; i++)
-                    delete[] pixelPtrCache[i];
-                delete[] pixelPtrCache;
-
-                return;
-            }
-        }
-
-    }
-
-    addDirtyRect(TQRect(x, y, w, h));
-
-    emit notifyProgressDone();
-
-    for (int i = 0; i < cacheSize; i++)
-        delete[] pixelPtrCache[i];
-    delete[] pixelPtrCache;
-}
-
-void KisConvolutionPainter::applyMatrixRepeat(KisKernelSP kernel, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h,
-                           KisChannelInfo::enumChannelFlags channelFlags)
-{
-    int lastProgressPercent = 0;
-    // Determine the kernel's extent from the center pixel
-    TQ_INT32 kw, kh, khalfWidth, khalfHeight, xLastMinuskhw, yLastMinuskhh;
-    kw = kernel->width;
-    kh = kernel->height;
-    khalfWidth = (kw - 1) / 2;
-    khalfHeight = (kh - 1) / 2;
-
-    xLastMinuskhw = x + (w - khalfWidth);
-    yLastMinuskhh = y + (h - khalfHeight);
-
-    KisColorSpace * cs = m_device->colorSpace();
-
-    // Iterate over all pixels in our rect, create a cache of pixels around the current pixel and convolve them in the colorstrategy.
-
-    int cacheSize = kw * kh;
-    int cdepth = cs -> pixelSize();
-    TQ_UINT8** pixelPtrCache = new TQ_UINT8*[cacheSize];
-    for (int i = 0; i < cacheSize; i++)
-        pixelPtrCache[i] = new TQ_UINT8[cdepth];
-
-    // row == the y position of the pixel we want to change in the paint device
-    int row = y;
-
-    for (; row < y + h; ++row) {
-
-        // col = the x position of the pixel we want to change
-        int col = x;
-
-        KisHLineIteratorPixel hit = m_device->createHLineIterator(x, row, w, true);
-        bool needFull = true;
-
-        TQ_INT32 itStart = row - khalfHeight;
-        TQ_INT32 itH = kh;
-        if(itStart < 0)
-        {
-            itH += itStart;
-            itStart = 0;
-        } else if(itStart + kh > yLastMinuskhh)
-        {
-            itH -= itStart + kh - yLastMinuskhh;
-        }
-        KisVLineIteratorPixel kit = m_device->createVLineIterator(col + khalfWidth, itStart, itH, false);
-        while (!hit.isDone()) {
-
-            // Iterate over all contributing pixels that are covered by the kernel
-            // krow = the y position in the kernel matrix
-            if(needFull) // The cache has not been fill, so we need to fill it
-            {
-                TQ_INT32 i = 0;
-                TQ_INT32 krow = 0;
-                if( row < khalfHeight )
-                {
-                    // We are just outside the layer, all the row in the cache will be identical
-                    // so we need to create them only once, and then to copy them
-                    if( x < khalfWidth)
-                    { // the left pixels are outside of the layer, in the corner
-                        TQ_INT32 kcol = 0;
-                        KisHLineIteratorPixel kit = m_device->createHLineIterator(0, 0, kw, false);
-                        for(; kcol < (khalfWidth - x) + 1; ++kcol)
-                        { // First copy the address of the topleft pixel
-                            memcpy(pixelPtrCache[kcol], kit.oldRawData(), cdepth);
-                        }
-                        for(; kcol < kw; ++kcol)
-                        { // Then copy the address of the rest of the line
-                            ++kit;
-                            memcpy(pixelPtrCache[kcol], kit.oldRawData(), cdepth);
-                        }
-                    } else {
-                        uint kcol = 0;
-                        KisHLineIteratorPixel kit = m_device->createHLineIterator(col - khalfWidth, 0, kw, false);
-                        while (!kit.isDone()) {
-                            memcpy(pixelPtrCache[kcol], kit.oldRawData(), cdepth);
-                            ++kit;
-                            ++kcol;
-                        }
-                    }
-                    krow = 1; // we have allready done the first krow
-                    for(;krow < (khalfHeight - row); ++krow)
-                    {
-                        //    Copy the first line in the current line
-                        for (int i = 0; i < kw; i++)
-                            memcpy(pixelPtrCache[krow * kw + i], pixelPtrCache[i], cdepth);
-                    }
-                    i = krow * kw;
-                }
-                TQ_INT32 itH = kh;
-                if(row + khalfHeight > yLastMinuskhh)
-                {
-                    itH += yLastMinuskhh - row - khalfHeight;
-                }
-                for (; krow <  itH; ++krow) {
-
-                    // col - khalfWidth = the left starting point of the kernel as centered on our pixel
-                    // krow - khalfHeight = the offset for the top of the kernel as centered on our pixel
-                    // kw = the width of the kernel
-
-                    // Fill the cache with pointers to the pixels under the kernel
-                    TQ_INT32 itHStart = col - khalfWidth;
-                    TQ_INT32 itW = kw;
-                    if(itHStart < 0)
-                    {
-                        itW += itHStart;
-                        itHStart = 0;
-                    }
-                    KisHLineIteratorPixel kit = m_device->createHLineIterator(itHStart, (row - khalfHeight) + krow, itW, false);
-                    if( col < khalfWidth )
-                    {
-                        for(; i <  krow * kw + ( kw - itW ); i+= 1)
-                        {
-                            memcpy(pixelPtrCache[i], kit.oldRawData(), cdepth);
-                        }
-                    }
-                    while (!kit.isDone()) {
-                        memcpy(pixelPtrCache[i], kit.oldRawData(), cdepth);
-                        ++kit;
-                        ++i;
-                    }
-                }
-                TQ_INT32 lastvalid = i - kw;
-                for(; krow < kh; ++krow) {
-                    // Copy the last valid line in the current line
-                    for (int i = 0; i < kw; i++)
-                        memcpy(pixelPtrCache[krow * kw + i], pixelPtrCache[lastvalid + i],
-                                cdepth);
-                }
-                needFull = false;
-            } else {
-/*                for (TQ_INT32 krow = 0; krow <  kh; ++krow) { // shift the cache to the left
-                    TQ_UINT8** d = pixelPtrCache + krow * kw;
-//                     memmove( d, d + 1, (kw-1)*sizeof(TQ_UINT8*));
-                    for (int i = 0; i < (kw-1); i++) {
-                        memcpy(d[i], d[i+1], cdepth);
-                    }
-                }*/
-                TQ_UINT8* firstincache = pixelPtrCache[0];
-                memmove(pixelPtrCache, pixelPtrCache + 1, (cacheSize - 1) * sizeof(TQ_UINT8*) );
-                pixelPtrCache[cacheSize - 1] = firstincache;
-                if(col < xLastMinuskhw)
-                {
-                    TQ_INT32 i = kw - 1;
-//                         KisVLineIteratorPixel kit = m_device->createVLineIterator(col + khalfWidth, itStart, itH, false);
-                    kit.nextCol();
-                    if( row < khalfHeight )
-                    {
-                        for(; i < (khalfHeight- row ) * kw; i+=kw)
-                        {
-                            memcpy(pixelPtrCache[i], kit.oldRawData(), cdepth);
-                        }
-                    }
-                    while (!kit.isDone()) {
-                        memcpy(pixelPtrCache[i], kit.oldRawData(), cdepth);
-                        ++kit;
-                        i += kw;
-                    }
-                    TQ_INT32 lastvalid = i - kw;
-                    for(;i < kw*kh; i+=kw)
-                    {
-                        memcpy(pixelPtrCache[i], pixelPtrCache[lastvalid], cdepth);
-                    }
-                }
-            }
-            if (hit.isSelected()) {
-                cs->convolveColors(pixelPtrCache, kernel->data, channelFlags, hit.rawData(), kernel->factor, kernel->offset, kw * kh);
-            }
-            ++col;
-            ++hit;
-        }
-
-        int progressPercent = 100 - ((((y + h) - row) * 100) / h);
-
-        if (progressPercent > lastProgressPercent) {
-            emit notifyProgress(progressPercent);
-            lastProgressPercent = progressPercent;
-
-            if (m_cancelRequested) {
-                for (int i = 0; i < cacheSize; i++)
-                    delete[] pixelPtrCache[i];
-                delete[] pixelPtrCache;
-                return;
-            }
-        }
-
-    }
-
-    addDirtyRect(TQRect(x, y, w, h));
-
-    emit notifyProgressDone();
-    for (int i = 0; i < cacheSize; i++)
-        delete[] pixelPtrCache[i];
-    delete[] pixelPtrCache;
-}
diff --git a/krita/core/kis_convolution_painter.h b/krita/core/kis_convolution_painter.h
deleted file mode 100644
index 8c0b2bbaa..000000000
--- a/krita/core/kis_convolution_painter.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_CONVOLUTION_PAINTER_H_
-#define KIS_CONVOLUTION_PAINTER_H_
-
-#include <tqimage.h>
-
-#include "ksharedptr.h"
-#include "kis_types.h"
-#include "kis_painter.h"
-
-#include "koffice_export.h"
-
-enum KisConvolutionBorderOp {
-    BORDER_DEFAULT_FILL = 0, // Use the default pixel to make up for the missing pixels on the border or the pixel that lies beyond
-                             // the rect we are convolving.
-    BORDER_WRAP = 1, // Use the pixel on the opposite side to make up for the missing pixels on the border. XXX: Not implemented yet
-    BORDER_REPEAT = 2, // Use the border for the missing pixels, too.
-    BORDER_AVOID = 3 // Skip convolving the border pixels at all.
-};
-
-class KisKernel;
-typedef KSharedPtr<KisKernel> KisKernelSP;
-
-class KisKernel : public KShared 
-{
-
-public:
-    
-    TQ_UINT32 width;
-    TQ_UINT32 height;
-    TQ_INT32 offset;
-    TQ_INT32 factor;
-    TQ_INT32 * data;
-
-    KisKernel() : width(0), height(0), offset(0), factor(0), data(0) {};
-
-    virtual ~KisKernel() { delete [] data; };
-
-    static KisKernelSP fromTQImage(const TQImage& img);
-
-};
-
-
-class KRITACORE_EXPORT KisConvolutionPainter : public KisPainter
-{
-
-    typedef KisPainter super;
-
-public:
-
-    KisConvolutionPainter();
-    KisConvolutionPainter(KisPaintDeviceSP device);
-
-    /**
-     * Convolve all channels in src using the specified kernel; there is only one kernel for all
-     * channels possible. By default the the border pixels are not convolved, that is, convolving
-     * starts with at (x + kernel.width/2, y + kernel.height/2) and stops at w - (kernel.width/2)
-     * and h - (kernel.height/2)
-     *
-     * The border op decides what to do with pixels too close to the edge of the rect as defined above.
-     *
-     * The channels flag determines which set out of color channels, alpha channels, substance or substrate
-     * channels we convolve.
-     *
-     * Note that we do not (currently) support different kernels for different channels _or_ channel types.
-     */
-    void applyMatrix(KisKernelSP kernel, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h,
-                     KisConvolutionBorderOp borderOp = BORDER_AVOID,
-                     KisChannelInfo::enumChannelFlags channelFlags = KisChannelInfo::FLAG_COLOR);
-private:
-    /**
-     * This function is called by applyMatrix when borderOp == BORDER_REPEAT
-     */
-    void applyMatrixRepeat(KisKernelSP kernel, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h,
-                           KisChannelInfo::enumChannelFlags channelFlags);
-
-
-};
-#endif //KIS_CONVOLUTION_PAINTER_H_
diff --git a/krita/core/kis_crop_visitor.h b/krita/core/kis_crop_visitor.h
deleted file mode 100644
index 0988a920f..000000000
--- a/krita/core/kis_crop_visitor.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_CROP_VISITOR_H_
-#define KIS_CROP_VISITOR_H_
-
-#include "tqrect.h"
-
-#include "klocale.h"
-
-#include "kis_layer_visitor.h"
-#include "kis_types.h"
-#include "kis_layer.h"
-#include "kis_group_layer.h"
-#include "kis_paint_layer.h"
-#include "kis_adjustment_layer.h"
-#include "kis_transaction.h"
-#include <kis_selected_transaction.h>
-
-class KisProgressDisplayInterface;
-class KisFilterStrategy;
-
-class KisCropVisitor : public KisLayerVisitor {
-
-public:
-
-    KisCropVisitor( const TQRect & rc, bool movelayers = true) 
-        : KisLayerVisitor()
-        , m_rect(rc), m_movelayers(movelayers)
-    {
-    }
-
-    virtual ~KisCropVisitor()
-    {
-    }
-
-    /**
-     * Crops the specified layer and adds the undo information to the undo adapter of the
-     * layer's image.
-     */
-    bool visit(KisPaintLayer *layer) 
-    {
-        KisPaintDeviceSP dev = layer->paintDevice();
-        KisSelectedTransaction * t = 0;
-        if (layer->undoAdapter() && layer->undoAdapter()->undo())
-            t = new KisSelectedTransaction(i18n("Crop"), dev.data());
-
-        dev->crop(m_rect);
-
-        if (layer->undoAdapter() && layer->undoAdapter()->undo()) {
-            layer->undoAdapter()->addCommand(t);
-        }
-        
-        if(m_movelayers) {
-            if(layer->undoAdapter() && layer->undoAdapter()->undo()) {
-                KNamedCommand * cmd = dev->moveCommand(layer->x() - m_rect.x(), layer->y() - m_rect.y());
-      	        layer->undoAdapter()->addCommand(cmd);
-    	    }
-        }
-        layer->setDirty(dev->image()->bounds());
-        return true;
-    };
-
-    bool visit(KisGroupLayer *layer)
-    {
-	layer->resetProjection();
-
-        KisLayerSP child = layer->firstChild();
-        while (child) {
-            child->accept(*this);
-            child = child->nextSibling();
-        }
-        layer->setDirty();
-        return true;
-    };
-
-    bool visit(KisPartLayer */*layer*/)
-    {
-        return true;
-    };
-
-    virtual bool visit(KisAdjustmentLayer* layer)
-    {
-        layer->resetCache();
-        return true;
-    }
-    
-
-private:
-    TQRect m_rect;
-    bool m_movelayers;
-};
-
-
-#endif
diff --git a/krita/core/kis_datamanager.h b/krita/core/kis_datamanager.h
deleted file mode 100644
index 79f7ddb8c..000000000
--- a/krita/core/kis_datamanager.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_DATAMANAGER_H_
-#define KIS_DATAMANAGER_H_
-
-#include <tqglobal.h>
-#include <tqvaluevector.h>
-#include <tqrect.h>
-
-class KoStore;
-
-
-// Change the following two lines to switch (at compiletime) to another datamanager
-#include "tiles/kis_tileddatamanager.h"
-#define ACTUAL_DATAMGR KisTiledDataManager
-
-/**
- * KisDataManager defines the interface that modules responsible for
- * storing and retrieving data must inmplement. Data modules, like
- * the tile manager, are responsible for:
- *
- * * Storing undo/redo data
- * * Offering ordererd and unordered iterators over rects of pixels
- * * (eventually) efficiently loading and saving data in a format
- * that may allow deferred loading.
- *
- * A datamanager knows nothing about the type of pixel data except
- * how many TQ_UINT8's a single pixel takes.
- */
-class KisDataManager : public ACTUAL_DATAMGR {
-
-public:
-    KisDataManager(TQ_UINT32 pixelSize, const TQ_UINT8 *defPixel) : ACTUAL_DATAMGR(pixelSize, defPixel) {}
-    KisDataManager(const KisDataManager& dm) : ACTUAL_DATAMGR(dm) { }
-
-public:
-    /**
-     * Sets the default pixel. Note that this might change every occurrance, and it might not, but new data
-     * well be initialised with this pixel
-     */
-    inline void setDefaultPixel(const TQ_UINT8 *defPixel) { return ACTUAL_DATAMGR::setDefaultPixel(defPixel); }
-
-    /**
-     * Gets the default pixel.
-     */
-     inline const TQ_UINT8 *defaultPixel() const { return ACTUAL_DATAMGR::defaultPixel(); }
-
-    /**
-     * Reguests a memento from the data manager. There is only one memento active
-     * at any given moment for a given paint device and all and any
-     * write actions on the datamanger builds undo data into this memento
-     * necessary to rollback the transaction.
-     */
-    inline KisMementoSP getMemento() { return ACTUAL_DATAMGR::getMemento(); }
-
-    /**
-     * Restores the image data to the state at the time of the getMemento() call.
-     *
-     * Note that rollback should be performed with mementos in the reverse order of
-     * their creation, as mementos only store incremental changes
-     */
-    inline void rollback(KisMementoSP memento) { ACTUAL_DATAMGR::rollback(memento); }
-
-    /**
-     * Restores the image data to the state at the time of the rollback call of the memento.
-     *
-     * Note that rollforward must only be called when an rollback have previously been performed, and
-     * no intermittent actions have been performed (though it's ok to rollback other mementos and
-     * roll them forward again)
-     */
-    inline void rollforward(KisMementoSP memento) { ACTUAL_DATAMGR::rollforward(memento); }
-
-public:
-    /**
-     * Reads and writes the tiles from/onto a KoStore (wich is simply a file within a zip file)
-     *
-     */
-    inline bool write(KoStore *store) { return ACTUAL_DATAMGR::write(store); }
-    inline bool read(KoStore *store) { return ACTUAL_DATAMGR::read(store); }
-
-public:
-
-    /**
-     * Returns the number of bytes a pixel takes
-     */
-    inline TQ_UINT32 pixelSize() { return ACTUAL_DATAMGR::pixelSize(); }
-
-    /**
-     * Return the extent of the data in x,y,w,h.
-     */
-    inline void extent(TQ_INT32 &x, TQ_INT32 &y, TQ_INT32 &w, TQ_INT32 &h) const
-                         { return ACTUAL_DATAMGR::extent(x, y, w, h); }
-
-     TQRect extent() const { return ACTUAL_DATAMGR::extent(); }
-
-
-public:
-
-    /**
-      * Crop or extend the data to x, y, w, h.
-      */
-    inline void setExtent(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h)
-                         { return ACTUAL_DATAMGR::setExtent(x, y, w, h); }
-
-    inline void setExtent(const TQRect & rect) { setExtent(rect.x(), rect.y(), rect.width(), rect.height()); }
-
-public:
-
-    /**
-     * Clear the specified rect to the specified value.
-     */
-    inline void clear(TQ_INT32 x, TQ_INT32 y,
-           TQ_INT32 w, TQ_INT32 h,
-           TQ_UINT8 def) { ACTUAL_DATAMGR::clear(x, y, w, h, def); }
-
-    /**
-     * Clear the specified rect to the specified pixel value.
-     */
-    inline void clear(TQ_INT32 x, TQ_INT32 y,
-           TQ_INT32 w, TQ_INT32 h,
-           const TQ_UINT8 * def) { ACTUAL_DATAMGR::clear(x, y, w, h, def); }
-
-    /**
-     * Clear all back to default values.
-     */
-    inline void clear() { ACTUAL_DATAMGR::clear(); }
-
-
-public:
-
-    /**
-     * Copy the specified rect from the specified data into this
-     * data.
-     */
-    inline void paste(KisDataManagerSP data,  TQ_INT32 sx, TQ_INT32 sy, TQ_INT32 dx, TQ_INT32 dy,
-           TQ_INT32 w, TQ_INT32 h) { ACTUAL_DATAMGR::paste(data, sx, sy, dx, dy, w, h); }
-
-public:
-    /**
-     * Get a read-only pointer to the specified pixel.
-     */
-    inline KDE_DEPRECATED const TQ_UINT8* pixel(TQ_INT32 x, TQ_INT32 y)
-          { return ACTUAL_DATAMGR::pixel(x, y); }
-
-    /**
-     * Get a read-write pointer to the specified pixel.
-     */
-    inline KDE_DEPRECATED TQ_UINT8* writablePixel(TQ_INT32 x, TQ_INT32 y)
-          { return ACTUAL_DATAMGR::writablePixel(x, y); }
-
-    /**
-     * Write the specified data to x, y. There is no checking on pixelSize!
-     */
-    inline void setPixel(TQ_INT32 x, TQ_INT32 y, const TQ_UINT8 * data)
-        { ACTUAL_DATAMGR::setPixel(x, y, data);}
-
-
-     /**
-      * Copy the bytes in the specified rect to a chunk of memory.
-      * The pixelSize in bytes is w * h * pixelSize. XXX: Better
-      * use TQValueVector?
-      */
-     inline void readBytes(TQ_UINT8 * data,
-               TQ_INT32 x, TQ_INT32 y,
-               TQ_INT32 w, TQ_INT32 h)
-        { ACTUAL_DATAMGR::readBytes(data, x, y, w, h);}
-
-     /**
-     * Copy the bytes to the specified rect. w * h * pixelSize bytes will be read, whether
-     * the caller prepared them or not. XXX: Better use TQValueVector?
-      */
-     inline void writeBytes(const TQ_UINT8 * data,
-             TQ_INT32 x, TQ_INT32 y,
-             TQ_INT32 w, TQ_INT32 h)
-        {ACTUAL_DATAMGR::writeBytes( data, x, y, w, h); }
-
-    // Get the number of contiguous columns starting at x, valid for all values
-    // of y between minY and maxY.
-    inline TQ_INT32 numContiguousColumns(TQ_INT32 x, TQ_INT32 minY, TQ_INT32 maxY)
-        { return ACTUAL_DATAMGR::numContiguousColumns(x, minY, maxY); }
-
-
-    // Get the number of contiguous rows starting at y, valid for all values
-    // of x between minX and maxX.
-    inline TQ_INT32 numContiguousRows(TQ_INT32 y, TQ_INT32 minX, TQ_INT32 maxX)
-        { return ACTUAL_DATAMGR::numContiguousRows(y, minX, maxX); }
-
-
-    // Get the row stride at pixel (x, y). This is the number of bytes to add to a
-    // pointer to pixel (x, y) to access (x, y + 1).
-    inline TQ_INT32 rowStride(TQ_INT32 x, TQ_INT32 y)
-        { return ACTUAL_DATAMGR::rowStride(x, y); }
-
-protected:
-    friend class KisRectIterator;
-    friend class KisHLineIterator;
-    friend class KisVLineIterator;
-};
-
-
-#endif // KIS_DATAMANAGER_H_
-
diff --git a/krita/core/kis_exif_info.cc b/krita/core/kis_exif_info.cc
deleted file mode 100644
index c389c7ba1..000000000
--- a/krita/core/kis_exif_info.cc
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * This file is part of Krita
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include "kis_exif_info.h"
-
-#include <stdlib.h>
-
-#include <kdebug.h>
-
-KisExifInfo::KisExifInfo()
-{}
-
-
-KisExifInfo::~KisExifInfo()
-{}
-
-
-bool KisExifInfo::load(const TQDomElement& elmt)
-{
-    if(elmt.tagName() != "ExifInfo")
-        return false;
-    for( TQDomNode node = elmt.firstChild(); !node.isNull(); node = node.nextSibling() )
-    {
-        TQDomElement e = node.toElement();
-        if ( !e.isNull() )
-        {
-            if(e.tagName() == "ExifValue")
-            {
-                TQString key = e.attribute("name");
-                ExifValue eV;
-                eV.load(e);
-                setValue(key, eV);
-            }
-        }
-    }
-    return true;
-}
-
-TQDomElement KisExifInfo::save(TQDomDocument& doc)
-{
-    TQDomElement elmt = doc.createElement("ExifInfo");
-    for( KisExifInfo::evMap::const_iterator it = begin(); it != end(); ++it)
-    {
-        ExifValue ev = it.data();
-        TQDomElement evD = ev.save( doc);
-        evD.setAttribute("name", it.key());
-        elmt.appendChild(evD);
-    }
-    return elmt;
-}
diff --git a/krita/core/kis_exif_info.h b/krita/core/kis_exif_info.h
deleted file mode 100644
index 5cc9cfeba..000000000
--- a/krita/core/kis_exif_info.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * This file is part of Krita
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_DOCUMENT_INFO_EXIF_H
-#define KIS_DOCUMENT_INFO_EXIF_H
-
-#include "kis_exif_value.h"
-
-#include <tqdom.h> 
-#include <tqmap.h>
-
-class KisExifInfo
-{
-    public:
-        KisExifInfo();
-        virtual ~KisExifInfo();
-
-        virtual bool load(const TQDomElement& elmt);
-        virtual TQDomElement save(TQDomDocument& doc);
-
-        bool getValue(TQString name, ExifValue& value)
-        {
-            if ( m_values.tqfind( name ) == m_values.end() ) {
-                return false;
-            }
-            else {
-                value = m_values[name];
-                return true;
-            }
-        }
-        void setValue(TQString name, ExifValue value)
-        {
-            m_values[name] = value;
-        }
-        typedef TQMap<TQString, ExifValue> evMap;
-        evMap::const_iterator begin() const { return m_values.begin(); }
-        evMap::const_iterator end() const { return m_values.end(); }
-    private:
-        evMap m_values;
-};
-
-#endif
diff --git a/krita/core/kis_exif_value.cc b/krita/core/kis_exif_value.cc
deleted file mode 100644
index fb1cdd03f..000000000
--- a/krita/core/kis_exif_value.cc
+++ /dev/null
@@ -1,678 +0,0 @@
-/*
- * This file is part of Krita
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "kis_exif_value.h"
-
-#include <kdebug.h>
-#include <kmdcodec.h>
-
-namespace {
-void set16Bit (unsigned char *data, ExifValue::ByteOrder order, const TQ_UINT16* value)
-{
-    switch (order) {
-        case ExifValue::BYTE_ORDER_MOTOROLA:
-            data[0] = (unsigned char) (*value >> 8);
-            data[1] = (unsigned char) *value;
-            break;
-        case ExifValue::BYTE_ORDER_INTEL:
-            data[0] = (unsigned char) *value;
-            data[1] = (unsigned char) (*value >> 8);
-            break;
-    }
-}
-
-void get16Bit (const unsigned char *data, ExifValue::ByteOrder order, TQ_UINT16* value)
-{
-    switch (order) {
-        case ExifValue::BYTE_ORDER_MOTOROLA:
-            *value = ((data[0] << 8) | data[1]);
-            break;
-        case ExifValue::BYTE_ORDER_INTEL:
-            *value = ((data[1] << 8) | data[0]);
-            break;
-    }
-}
-
-void get32Bit (const unsigned char *data, ExifValue::ByteOrder order, TQ_UINT32* value)
-{
-    switch (order) {
-        case ExifValue::BYTE_ORDER_MOTOROLA:
-            *value = ((data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3]);
-            break;
-        case ExifValue::BYTE_ORDER_INTEL:
-            *value = ((data[3] << 24) | (data[2] << 16) | (data[1] << 8) | data[0]);
-    }
-}
-
-void set32Bit(unsigned char *data, ExifValue::ByteOrder order, const TQ_UINT32* value)
-{
-    switch (order) {
-        case ExifValue::BYTE_ORDER_MOTOROLA:
-            data[0] = (unsigned char) (*value >> 24);
-            data[1] = (unsigned char) (*value >> 16);
-            data[2] = (unsigned char) (*value >> 8);
-            data[3] = (unsigned char) *value;
-            break;
-        case ExifValue::BYTE_ORDER_INTEL:
-            data[3] = (unsigned char) (*value >> 24);
-            data[2] = (unsigned char) (*value >> 16);
-            data[1] = (unsigned char) (*value >> 8);
-            data[0] = (unsigned char) *value;
-            break;
-    }
-}
-
-void get64Bit (const unsigned char *data, ExifValue::ByteOrder order, TQ_UINT64* value)
-{
-    switch (order) {
-        case ExifValue::BYTE_ORDER_MOTOROLA:
-            *value = (((TQ_UINT64)data[0] << 56) | ((TQ_UINT64)data[1] << 48) | ((TQ_UINT64)data[2] << 40) | ((TQ_UINT64)data[3] << 32) | ((TQ_UINT64)data[4] << 24) | ((TQ_UINT64)data[5] << 16) | ((TQ_UINT64)data[6] << 8) | (TQ_UINT64)data[7]);
-            break;
-        case ExifValue::BYTE_ORDER_INTEL:
-            *value = (((TQ_UINT64)data[7] << 56) | ((TQ_UINT64)data[6] << 48) | ((TQ_UINT64)data[5] << 40) | ((TQ_UINT64)data[4] << 32) | ((TQ_UINT64)data[3] << 24) | ((TQ_UINT64)data[2] << 16) | ((TQ_UINT64)data[1] << 8) | (TQ_UINT64)data[0]);
-    }
-}
-
-void set64Bit(unsigned char *data, ExifValue::ByteOrder order, const TQ_UINT64* value)
-{
-    switch (order) {
-        case ExifValue::BYTE_ORDER_MOTOROLA:
-            data[0] = (unsigned char) (*value >> 56);
-            data[1] = (unsigned char) (*value >> 48);
-            data[2] = (unsigned char) (*value >> 40);
-            data[3] = (unsigned char) (*value >> 32);
-            data[4] = (unsigned char) (*value >> 24);
-            data[5] = (unsigned char) (*value >> 16);
-            data[6] = (unsigned char) (*value >> 8);
-            data[7] = (unsigned char) *value;
-            break;
-        case ExifValue::BYTE_ORDER_INTEL:
-            data[7] = (unsigned char) (*value >> 56);
-            data[6] = (unsigned char) (*value >> 48);
-            data[5] = (unsigned char) (*value >> 40);
-            data[4] = (unsigned char) (*value >> 32);
-            data[3] = (unsigned char) (*value >> 24);
-            data[2] = (unsigned char) (*value >> 16);
-            data[1] = (unsigned char) (*value >> 8);
-            data[0] = (unsigned char) *value;
-            break;
-    }
-}
-
-
-}
-
-ExifValue::ExifValue(ExifType ntype, unsigned char *data, unsigned int size, int ifd, uint ncomponents, ExifValue::ByteOrder order ) : m_ifd(ifd), m_type(ntype), m_components(ncomponents), m_value(0)
-{
-    allocData();
-    setValue(data, size, order);
-}
-
-void ExifValue::allocData()
-{
-    if( type() != EXIF_TYPE_ASCII && type() != EXIF_TYPE_UNDEFINED)
-    {
-        m_value = new ExifNumber[components()];
-    } else if ( type() == EXIF_TYPE_ASCII )
-    {
-        m_value = new TQString();
-    } else if ( type() == EXIF_TYPE_UNDEFINED)
-    {
-        m_value = new UByteArray();
-    }
-}
-
-bool ExifValue::load(const TQDomElement& elmt)
-{
-    TQString attr;
-    if( (attr = elmt.attribute("ifd")).isNull() )
-        return false;
-    m_ifd = attr.toInt();
-    if( (attr = elmt.attribute("components")).isNull() )
-        return false;
-    m_components = attr.toInt();
-    if( (attr = elmt.attribute("type")).isNull() )
-        return false;
-    m_type = (ExifValue::ExifType)attr.toInt();
-    allocData();
-    switch(type())
-    {
-        case EXIF_TYPE_BYTE:
-            for(uint i = 0; i < components(); i++)
-            {
-                if( (attr = elmt.attribute(TQString("value%1").tqarg(i) ) ).isNull() )
-                {
-                    setValue(i, (TQ_UINT8)0);
-                } else {
-                    setValue(i, (TQ_UINT8) attr.toUInt());
-                }
-            }
-            break;
-        case EXIF_TYPE_ASCII:
-            setAsAscii( elmt.attribute("value" ) );
-            break;
-        case EXIF_TYPE_SHORT:
-            for(uint i = 0; i < components(); i++)
-            {
-                if( (attr = elmt.attribute(TQString("value%1").tqarg(i) ) ).isNull() )
-                {
-                    setValue(i, (TQ_UINT16)0);
-                } else {
-                    setValue(i, (TQ_UINT16) attr.toUInt());
-                }
-            }
-            break;
-        case EXIF_TYPE_LONG:
-            for(uint i = 0; i < components(); i++)
-            {
-                if( (attr = elmt.attribute(TQString("value%1").tqarg(i) ) ).isNull() )
-                {
-                    setValue(i, (TQ_UINT32)0);
-                } else {
-                    setValue(i, (TQ_UINT32) attr.toUInt());
-                }
-            }
-            break;
-        case EXIF_TYPE_RATIONAL:
-            for(uint i = 0; i < components(); i++)
-            {
-                KisExifRational r;
-                if( (attr = elmt.attribute(TQString("numerator%1").tqarg(i) ) ).isNull() )
-                {
-                    r.numerator = (TQ_UINT32)0;
-                } else {
-                    r.numerator = (TQ_UINT32) attr.toUInt();
-                }
-                if( (attr = elmt.attribute(TQString("denominator%1").tqarg(i) ) ).isNull() )
-                {
-                    r.denominator = (TQ_UINT32)0;
-                } else {
-                    r.denominator = (TQ_UINT32) attr.toUInt();
-                }
-                setValue(i, r);
-            }
-            break;
-        case EXIF_TYPE_SBYTE:
-            for(uint i = 0; i < components(); i++)
-            {
-                if( (attr = elmt.attribute(TQString("value%1").tqarg(i) ) ).isNull() )
-                {
-                    setValue(i, (TQ_INT8)0);
-                } else {
-                    setValue(i, (TQ_INT8) attr.toInt());
-                }
-            }
-            break;
-        case EXIF_TYPE_UNDEFINED:
-        {
-            TQString instr = elmt.attribute("value");
-            TQByteArray out;
-            TQByteArray in = instr.utf8();
-            KCodecs::base64Decode( in, out);
-            out.resize(out.size() - 2 );
-            setAsUndefined((uchar*)out.data(), out.size() );
-        }
-        break;
-        case EXIF_TYPE_SSHORT:
-            for(uint i = 0; i < components(); i++)
-            {
-                if( (attr = elmt.attribute(TQString("value%1").tqarg(i) ) ).isNull() )
-                {
-                    setValue(i, (TQ_INT16)0);
-                } else {
-                    setValue(i, (TQ_INT16) attr.toInt());
-                }
-            }
-            break;
-        case EXIF_TYPE_SLONG:
-            for(uint i = 0; i < components(); i++)
-            {
-                if( (attr = elmt.attribute(TQString("value%1").tqarg(i) ) ).isNull() )
-                {
-                    setValue(i, (TQ_INT32)0);
-                } else {
-                    setValue(i, (TQ_INT32) attr.toInt());
-                }
-            }
-            break;
-        case EXIF_TYPE_SRATIONAL:
-            for(uint i = 0; i < components(); i++)
-            {
-                KisExifSRational r;
-                if( (attr = elmt.attribute(TQString("numerator%1").tqarg(i) ) ).isNull() )
-                {
-                    r.numerator = (TQ_INT32)0;
-                } else {
-                    r.numerator = (TQ_INT32) attr.toInt();
-                }
-                if( (attr = elmt.attribute(TQString("denominator%1").tqarg(i) ) ).isNull() )
-                {
-                    r.denominator = (TQ_UINT32)0;
-                } else {
-                    r.denominator = (TQ_UINT32) attr.toInt();
-                }
-                setValue(i, r);
-            }
-            break;
-        case EXIF_TYPE_FLOAT:
-            for(uint i = 0; i < components(); i++)
-            {
-                if( (attr = elmt.attribute(TQString("value%1").tqarg(i) ) ).isNull() )
-                {
-                    setValue(i, (float)0);
-                } else {
-                    setValue(i, (float) attr.toFloat());
-                }
-            }
-            break;
-        case EXIF_TYPE_DOUBLE:
-            for(uint i = 0; i < components(); i++)
-            {
-                if( (attr = elmt.attribute(TQString("value%1").tqarg(i) ) ).isNull() )
-                {
-                    setValue(i, (double)0);
-                } else {
-                    setValue(i, (double) attr.toDouble());
-                }
-            }
-            break;
-        case EXIF_TYPE_UNKNOW:
-            break;
-
-    }
-    return true;
-}
-
-TQDomElement ExifValue::save(TQDomDocument& doc)
-{
-    TQDomElement elmt = doc.createElement("ExifValue");
-    elmt.setAttribute("ifd", ifd());
-    elmt.setAttribute("components", components() );
-    elmt.setAttribute("type", type() );
-    switch(type())
-    {
-        case EXIF_TYPE_BYTE:
-            for(uint i = 0; i < components(); i++)
-                elmt.setAttribute(TQString("value%1").tqarg(i), asByte( i ) );
-            break;
-        case EXIF_TYPE_ASCII:
-            elmt.setAttribute("value", asAscii() );
-            break;
-        case EXIF_TYPE_SHORT:
-            for(uint i = 0; i < components(); i++)
-                elmt.setAttribute(TQString("value%1").tqarg(i), asShort( i ) );
-            break;
-        case EXIF_TYPE_LONG:
-            for(uint i = 0; i < components(); i++)
-                elmt.setAttribute(TQString("value%1").tqarg(i), asLong( i ) );
-            break;
-        case EXIF_TYPE_RATIONAL:
-            for(uint i = 0; i < components(); i++)
-            {
-                KisExifRational r = asRational(i);
-                elmt.setAttribute(TQString("numerator%1").tqarg(i), r.numerator );
-                elmt.setAttribute(TQString("denominator%1").tqarg(i), r.denominator );
-            }
-            break;
-        case EXIF_TYPE_SBYTE:
-            for(uint i = 0; i < components(); i++)
-                elmt.setAttribute(TQString("value%1").tqarg(i), asSByte( i ) );
-            break;
-        case EXIF_TYPE_UNDEFINED:
-        {
-            UByteArray value = asUndefined();
-            TQByteArray data;
-            data.setRawData((char*)value.data(), value.size());
-            TQByteArray tqencodedData;
-            KCodecs::base64Encode( data, tqencodedData );
-            data.resetRawData( (char*)value.data(), value.size());
-            elmt.setAttribute("value", tqencodedData);
-        }
-            break;
-        case EXIF_TYPE_SSHORT:
-            for(uint i = 0; i < components(); i++)
-                elmt.setAttribute(TQString("value%1").tqarg(i), asSShort( i ) );
-            break;
-        case EXIF_TYPE_SLONG:
-            for(uint i = 0; i < components(); i++)
-                elmt.setAttribute(TQString("value%1").tqarg(i), asSLong( i ) );
-            break;
-        case EXIF_TYPE_SRATIONAL:
-            for(uint i = 0; i < components(); i++)
-            {
-                KisExifSRational r = asSRational(i);
-                elmt.setAttribute(TQString("numerator%1").tqarg(i), r.numerator );
-                elmt.setAttribute(TQString("denominator%1").tqarg(i), r.denominator );
-            }
-            break;
-        case EXIF_TYPE_FLOAT:
-            for(uint i = 0; i < components(); i++)
-                elmt.setAttribute(TQString("value%1").tqarg(i), asFloat( i ) );
-            break;
-        case EXIF_TYPE_DOUBLE:
-            for(uint i = 0; i < components(); i++)
-                elmt.setAttribute(TQString("value%1").tqarg(i), asDouble( i ) );
-            break;
-        case EXIF_TYPE_UNKNOW:
-            break;
-    }
-    return elmt;
-}
-
-
-void ExifValue::setValue(const unsigned char *data, unsigned int size, ExifValue::ByteOrder order)
-{
-    switch(type())
-    {
-        case EXIF_TYPE_BYTE:
-            if( size == components() )
-            {
-                ExifNumber n;
-                for(uint i = 0; i < components(); i++)
-                {
-                    n.m_byte = data[i];
-                    setAsExifNumber( i, n);
-                }
-            }
-            break;
-        case EXIF_TYPE_ASCII:
-            setAsAscii((char*) data);
-            break;
-        case EXIF_TYPE_SHORT:
-            if( size == 2*components() )
-            {
-                ExifNumber n;
-                for(uint i = 0; i < components(); i++)
-                {
-                    get16Bit( data + 2 * i, order, &n.m_short);
-                    setAsExifNumber( i, n);
-                }
-            }
-            break;
-        case EXIF_TYPE_LONG:
-            if( size == 4*components() )
-            {
-                ExifNumber n;
-                for(uint i = 0; i < components(); i++)
-                {
-                    get32Bit( data + 4 * i, order, &n.m_long);
-                    setAsExifNumber( i, n);
-                }
-            }
-            break;
-        case EXIF_TYPE_RATIONAL:
-            if( size == 8*components() )
-            {
-                ExifNumber n;
-                for(uint i = 0; i < components(); i++)
-                {
-                    get32Bit( data + 8 * i, order, &n.m_rational.numerator);
-                    get32Bit( data + 8 * i + 4, order, &n.m_rational.denominator);
-                    setAsExifNumber( i, n);
-                }
-            }
-            break;
-        case EXIF_TYPE_SBYTE:
-            if( size == components() )
-            {
-                ExifNumber n;
-                for(uint i = 0; i < components(); i++)
-                {
-                    n.m_sbyte = ((TQ_INT8*)data)[i];
-                    setAsExifNumber( i, n);
-                }
-            }
-            break;
-        case EXIF_TYPE_UNDEFINED:
-            setAsUndefined(data, size);
-            break;
-        case EXIF_TYPE_SSHORT:
-            if( size == 2*components() )
-            {
-                ExifNumber n;
-                for(uint i = 0; i < components(); i++)
-                {
-                    get16Bit( data + 2 * i, order, (TQ_UINT16*)&n.m_sshort);
-                    setAsExifNumber( i, n);
-                }
-            }
-            break;
-        case EXIF_TYPE_SLONG:
-            if( size == 4*components() )
-            {
-                ExifNumber n;
-                for(uint i = 0; i < components(); i++)
-                {
-                    get32Bit( data + 4 * i, order, (TQ_UINT32*)&n.m_slong);
-                    setAsExifNumber( i, n);
-                }
-            }
-            break;
-        case EXIF_TYPE_SRATIONAL:
-            if( size == 8*components() )
-            {
-                ExifNumber n;
-                for(uint i = 0; i < components(); i++)
-                {
-                    get32Bit( data + 8 * i, order, (TQ_UINT32*)&n.m_srational.numerator);
-                    get32Bit( data + 8 * i + 4, order, (TQ_UINT32*)&n.m_srational.denominator);
-                    setAsExifNumber( i, n);
-                }
-            }
-            break;
-        case EXIF_TYPE_FLOAT:
-            if( size == 4*components() )
-            {
-                ExifNumber n;
-                for(uint i = 0; i < components(); i++)
-                {
-                    get32Bit( data + 4 * i, order, (TQ_UINT32*)&n.m_float);
-                    setAsExifNumber( i, n);
-                }
-            }
-            break;
-        case EXIF_TYPE_DOUBLE:
-            if( size == 8*components() )
-            {
-                ExifNumber n;
-                for(uint i = 0; i < components(); i++)
-                {
-                    get64Bit( data + 8 * i, order, (TQ_UINT64*)&n.m_double);
-                    setAsExifNumber( i, n);
-                }
-            }
-            break;
-        case EXIF_TYPE_UNKNOW:
-            break;
-    }
-}
-
-void ExifValue::convertToData(unsigned char ** data, unsigned int* size, ExifValue::ByteOrder order)
-{
-    switch(type())
-    {
-        case EXIF_TYPE_BYTE:
-            *size = components();
-            *data = new uchar[*size];
-            for(uint i = 0; i < components(); i++)
-            {
-                (*data)[i] = asExifNumber(i).m_byte;
-            }
-            return;
-        case EXIF_TYPE_ASCII:
-        {
-            TQString str = asAscii();
-            *size = str.length();
-            *data = new uchar[ *size ];
-            uchar* ptr = *data;
-            memcpy(ptr, str.ascii(), (*size)*sizeof(uchar));
-        }
-        return;
-        break;
-        case EXIF_TYPE_SHORT:
-        {
-            *size = 2*components();
-            *data = new uchar[*size];
-            for(uint i = 0; i < components(); i++)
-            {
-                set16Bit( (*data) + 2 * i, order, &asExifNumber(i).m_short);
-            }
-            return;
-        }
-        case EXIF_TYPE_LONG:
-        {
-            *size = 4*components();
-            *data = new uchar[*size];
-            for(uint i = 0; i < components(); i++)
-            {
-                set32Bit( (*data) + 4 * i, order, &asExifNumber(i).m_long);
-            }
-            return;
-        }
-        case EXIF_TYPE_RATIONAL:
-            *size = 8*components();
-            *data = new uchar[*size];
-            for(uint i = 0; i < components(); i++)
-            {
-                ExifNumber n = asExifNumber(i);
-                set32Bit( (*data) + 8 * i, order, &n.m_rational.numerator);
-                set32Bit( (*data) + 8 * i + 4, order, &n.m_rational.denominator);
-            }
-            return;
-        case EXIF_TYPE_SBYTE:
-            *size = components();
-            *data = new uchar[*size];
-            for(uint i = 0; i < components(); i++)
-            {
-                *(((TQ_INT8*)*data) + i) = asExifNumber(i).m_sbyte;
-            }
-            return;
-        case EXIF_TYPE_UNDEFINED:
-        {
-            UByteArray array = asUndefined();
-            *size = array.size();
-            *data = new uchar[*size];
-            memcpy( *data, array.data(), (*size)*sizeof(unsigned char));
-        }
-        return;
-        case EXIF_TYPE_SSHORT:
-            *size = 2*components();
-            *data = new uchar[*size];
-            for(uint i = 0; i < components(); i++)
-            {
-                set16Bit( (*data) + 2 * i, order, (TQ_UINT16*)&asExifNumber(i).m_sshort);
-            }
-            return;
-        case EXIF_TYPE_SLONG:
-            *size = 4*components();
-            *data = new uchar[*size];
-            for(uint i = 0; i < components(); i++)
-            {
-                set32Bit( (*data) + 4 * i, order, (TQ_UINT32*)&asExifNumber(i).m_slong);
-            }
-            return;
-        case EXIF_TYPE_SRATIONAL:
-            *size = 8*components();
-            *data = new uchar[*size];
-            for(uint i = 0; i < components(); i++)
-            {
-                ExifNumber n = asExifNumber(i);
-                set32Bit( (*data) + 4 * i, order, (TQ_UINT32*)&asExifNumber(i).m_srational.numerator);
-                set32Bit( (*data) + 4 * i + 4, order, (TQ_UINT32*)&asExifNumber(i).m_srational.denominator);
-            }
-            return;
-        case EXIF_TYPE_FLOAT:
-            *size = 4*components();
-            *data = new uchar[*size];
-            for(uint i = 0; i < components(); i++)
-            {
-                set32Bit( (*data) + 4 * i, order, (TQ_UINT32*)&asExifNumber(i).m_float);
-            }
-            return;
-        case EXIF_TYPE_DOUBLE:
-            *size = 8*components();
-            *data = new uchar[*size];
-            for(uint i = 0; i < components(); i++)
-            {
-                set64Bit( (*data) + 4 * i, order, (TQ_UINT64*)&asExifNumber(i).m_double);
-            }
-            return;
-        case EXIF_TYPE_UNKNOW:
-            break;
-    }
-}
-
-TQString ExifValue::toString()
-{
-    switch(type())
-    {
-        case EXIF_TYPE_ASCII:
-            return asAscii();
-        case EXIF_TYPE_UNDEFINED:
-        {
-            TQString undefined = "undefined";
-            UByteArray array = asUndefined();
-            for(uint i = 0; i < components(); i++)
-            {
-                undefined += "\\" + TQString().setNum( array[i] );
-            }
-            return undefined;
-        }
-        default:
-        {
-            TQString str = "";
-            for(uint i = 0; i < components(); i++)
-            {
-                str += toString(i);
-            }
-            return str;
-        }
-    }
-}
-
-TQString ExifValue::toString(uint i)
-{
-    switch(type())
-    {
-        case EXIF_TYPE_BYTE:
-            return TQString("%1 ").tqarg( asExifNumber( i ).m_byte );
-        case EXIF_TYPE_SHORT:
-            return TQString("%1 ").tqarg( asExifNumber( i ).m_short );
-        case EXIF_TYPE_LONG:
-            return TQString("%1 ").tqarg( asExifNumber( i ).m_long );
-        case EXIF_TYPE_RATIONAL:
-            return TQString("%1 / %2 ").tqarg( asExifNumber( i ).m_rational.numerator ).tqarg( asExifNumber( i ).m_rational.denominator );
-        case EXIF_TYPE_SBYTE:
-            return TQString("%1 ").tqarg( asExifNumber( i ).m_sbyte );
-        case EXIF_TYPE_SSHORT:
-            return TQString("%1 ").tqarg( asExifNumber( i ).m_sshort );
-        case EXIF_TYPE_SLONG:
-            return TQString("%1 ").tqarg( asExifNumber( i ).m_slong );
-        case EXIF_TYPE_SRATIONAL:
-            return TQString("%1 / %2 ").tqarg( asExifNumber( i ).m_srational.numerator ).tqarg( asExifNumber( i ).m_srational.denominator );
-        case EXIF_TYPE_FLOAT:
-            return TQString("%1 ").tqarg( asExifNumber( i ).m_float );
-        case EXIF_TYPE_DOUBLE:
-            return TQString("%1 ").tqarg( asExifNumber( i ).m_double );
-        default:
-            return "unknow ";
-    }
-}
-
diff --git a/krita/core/kis_exif_value.h b/krita/core/kis_exif_value.h
deleted file mode 100644
index a61e305ac..000000000
--- a/krita/core/kis_exif_value.h
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * This file is part of Krita
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_EXIF_VALUE_H
-#define KIS_EXIF_VALUE_H
-
-#include <tqdom.h> 
-
-#include <tqcstring.h>
-#include <tqstring.h>
-
-typedef TQMemArray<TQ_UINT8> UByteArray;
-
-struct KisExifRational {
-    TQ_UINT32 numerator;
-    TQ_UINT32 denominator;
-};
-
-struct KisExifSRational {
-    TQ_INT32 numerator;
-    TQ_INT32 denominator;
-};
-
-class ExifValue {
-    typedef union {
-        TQ_UINT8 m_byte;
-        TQ_UINT16 m_short;
-        TQ_UINT32 m_long;
-        KisExifRational m_rational;
-        TQ_INT8 m_sbyte;
-        TQ_INT16 m_sshort;
-        TQ_INT32 m_slong;
-        KisExifSRational m_srational;
-        float m_float;
-        double m_double;
-    } ExifNumber;
-    public:
-        enum ExifType {
-            EXIF_TYPE_BYTE       =  1,
-            EXIF_TYPE_ASCII      =  2,
-            EXIF_TYPE_SHORT      =  3,
-            EXIF_TYPE_LONG       =  4,
-            EXIF_TYPE_RATIONAL   =  5,
-            EXIF_TYPE_SBYTE      =  6,
-            EXIF_TYPE_UNDEFINED  =  7,
-            EXIF_TYPE_SSHORT     =  8,
-            EXIF_TYPE_SLONG      =  9,
-            EXIF_TYPE_SRATIONAL  = 10,
-            EXIF_TYPE_FLOAT      = 11,
-            EXIF_TYPE_DOUBLE     = 12,
-            EXIF_TYPE_UNKNOW     = 13
-        };
-        enum ByteOrder {
-            BYTE_ORDER_MOTOROLA,
-            BYTE_ORDER_INTEL
-        };
-        ExifValue() : m_ifd(-1), m_type(EXIF_TYPE_UNKNOW), m_components(0), m_value(0) { }
-        ExifValue(ExifType type, unsigned char *data, unsigned int size, int ifd, uint components, ExifValue::ByteOrder order);
-        
-        virtual bool load(const TQDomElement& elmt);
-        virtual TQDomElement save(TQDomDocument& doc);
-
-        /**
-         * Return the type of the array
-         */
-        inline ExifType type() { return m_type; }
-        inline const UByteArray asUndefined() {
-            if(m_type == EXIF_TYPE_UNDEFINED)
-                return *(UByteArray*) m_value;
-            return UByteArray();
-        }
-        inline void setAsUndefined(const unsigned char *data, unsigned int size)
-        {
-            if(m_type == EXIF_TYPE_UNDEFINED)
-            {
-                ((UByteArray*)m_value)->duplicate(data, size);
-                m_components = size;
-            }
-        }
-        inline const TQString asAscii() {
-            if(m_type == EXIF_TYPE_ASCII)
-                return TQString(*(TQString*) m_value);
-            return TQString();
-        }
-        inline void setAsAscii(char* data)
-        {
-            if(m_type == EXIF_TYPE_ASCII)
-            {
-                TQString str = TQString((char*) data);
-                *(TQString*)m_value = str;
-                m_components = str.length();
-            }
-        }
-        inline void setAsAscii(TQString str)
-        {
-            *(TQString*)m_value = str;
-            m_components = str.length();
-        }
-        void convertToData(unsigned char ** data, unsigned int* size, ExifValue::ByteOrder order);
-        /**
-         * Return the ifd number to which this ExifValue belongs.
-         */
-        inline int ifd() { return m_ifd; }
-        /**
-         * Return the number of components of this ExifValue
-         */
-        inline uint components() { return m_components; }
-        
-        /**
-         * This function return the value of a the ExifValue as a string.
-         */
-        TQString toString();
-        
-        inline TQ_UINT8 asByte(uint i)
-        {
-            if(m_type == EXIF_TYPE_BYTE)
-                return asExifNumber(i).m_byte;
-            return 0;
-        }
-        inline void setValue(uint i, TQ_UINT8 v)
-        {
-            ((ExifNumber*)m_value)[i].m_byte = v;
-        }
-        inline TQ_UINT8 asShort(uint i)
-        {
-            if(m_type == EXIF_TYPE_SHORT)
-                return asExifNumber(i).m_short;
-            return 0;
-        }
-        inline void setValue(uint i, TQ_UINT16 v)
-        {
-            ((ExifNumber*)m_value)[i].m_short = v;
-        }
-        inline TQ_UINT8 asLong(uint i)
-        {
-            if(m_type == EXIF_TYPE_LONG)
-                return asExifNumber(i).m_long;
-            return 0;
-        }
-        inline void setValue(uint i, TQ_UINT32 v)
-        {
-            ((ExifNumber*)m_value)[i].m_long = v;
-        }
-        inline KisExifRational asRational(uint i)
-        {
-            if(m_type == EXIF_TYPE_RATIONAL)
-                return asExifNumber(i).m_rational;
-            return KisExifRational();
-        }
-        inline void setValue(uint i, TQ_UINT32 n, TQ_UINT32 d)
-        {
-            ((ExifNumber*)m_value)[i].m_rational.numerator = n;
-            ((ExifNumber*)m_value)[i].m_rational.denominator = d;
-        }
-        inline void setValue(uint i, KisExifRational r)
-        {
-            ((ExifNumber*)m_value)[i].m_rational = r;
-        }
-        inline TQ_INT8 asSByte(uint i)
-        {
-            if(m_type == EXIF_TYPE_SBYTE)
-                return asExifNumber(i).m_sbyte;
-            return 0;
-        }
-        inline void setValue(uint i, TQ_INT8 v)
-        {
-            ((ExifNumber*)m_value)[i].m_sbyte = v;
-        }
-        inline TQ_INT16 asSShort(uint i)
-        {
-            if(m_type == EXIF_TYPE_SSHORT)
-                return asExifNumber(i).m_sshort;
-            return 0;
-        }
-        inline void setValue(uint i, TQ_INT16 v)
-        {
-            ((ExifNumber*)m_value)[i].m_sshort = v;
-        }
-        inline TQ_INT32 asSLong(uint i)
-        {
-            if(m_type == EXIF_TYPE_SLONG)
-                return asExifNumber(i).m_slong;
-            return 0;
-        }
-        inline void setValue(uint i, TQ_INT32 v)
-        {
-            ((ExifNumber*)m_value)[i].m_slong = v;
-        }
-        inline KisExifSRational asSRational(uint i)
-        {
-            if(m_type == EXIF_TYPE_SRATIONAL)
-                return asExifNumber(i).m_srational;
-            return KisExifSRational();
-        }
-        inline void setValue(uint i, KisExifSRational r)
-        {
-            ((ExifNumber*)m_value)[i].m_srational = r;
-        }
-        inline void setValue(uint i, TQ_INT32 n, TQ_INT32 d)
-        {
-            ((ExifNumber*)m_value)[i].m_srational.numerator = n;
-            ((ExifNumber*)m_value)[i].m_srational.denominator = d;
-        }
-        inline float asFloat(uint i)
-        {
-            if(m_type == EXIF_TYPE_FLOAT)
-                return asExifNumber(i).m_float;
-            return 0.;
-        }
-        inline void setValue(uint i, float v)
-        {
-            ((ExifNumber*)m_value)[i].m_float = v;
-        }
-        inline double asDouble(uint i)
-        {
-            if(m_type == EXIF_TYPE_DOUBLE)
-                return asExifNumber(i).m_double;
-            return 0.;
-        }
-        inline void setValue(uint i, double v)
-        {
-            ((ExifNumber*)m_value)[i].m_double = v;
-        }
-    private:
-        /**
-         * Return the ith component as a string.
-         */
-        TQString toString(uint i);
-        void setValue(const unsigned char *data, unsigned int size, ExifValue::ByteOrder order);
-        /**
-         * Return the ExifValue as a number.
-         */
-        inline const ExifNumber asExifNumber(uint index)
-        {
-            Q_ASSERT(index < m_components);
-            return ((ExifNumber*)m_value)[index];
-        }
-        inline void setAsExifNumber(uint index, ExifNumber n)
-        {
-            Q_ASSERT(index < m_components);
-            ((ExifNumber*)m_value)[index] = n;
-        }
-        /**
-         * This function will allocate the memory used for storing the current data.
-         */
-        void allocData();
-    private:
-        int m_ifd;
-        ExifType m_type;
-        uint m_components;
-        void *m_value;
-};
-
-#endif
diff --git a/krita/core/kis_fill_painter.cc b/krita/core/kis_fill_painter.cc
deleted file mode 100644
index 5b8fdcc91..000000000
--- a/krita/core/kis_fill_painter.cc
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- *  Copyright (c) 2004 Adrian Page <adrian@pagenet.plus.com>
- *  Copyright (c) 2004 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <cfloat>
-#include <stack>
-
-#include "tqbrush.h"
-#include "tqfontinfo.h"
-#include "tqfontmetrics.h"
-#include "tqpen.h"
-#include "tqregion.h"
-#include "tqwmatrix.h"
-#include <tqimage.h>
-#include <tqmap.h>
-#include <tqpainter.h>
-#include <tqpixmap.h>
-#include <tqpointarray.h>
-#include <tqrect.h>
-#include <tqstring.h>
-
-#include <kdebug.h>
-#include <kcommand.h>
-#include <klocale.h>
-
-#include "kis_brush.h"
-#include "kis_debug_areas.h"
-#include "kis_image.h"
-#include "kis_layer.h"
-#include "kis_paint_device.h"
-#include "kis_painter.h"
-#include "kis_pattern.h"
-#include "kis_rect.h"
-#include "kis_colorspace.h"
-#include "kis_transaction.h"
-#include "kis_types.h"
-#include "kis_vec.h"
-#include "kis_selection.h"
-#include "kis_fill_painter.h"
-#include "kis_iterators_pixel.h"
-#include "kis_iterator.h"
-#include "kis_color.h"
-#include "kis_selection.h"
-
-namespace {
-}
-
-KisFillPainter::KisFillPainter()
-    : super()
-{
-    m_width = m_height = -1;
-    m_sampleMerged = false;
-    m_careForSelection = false;
-    m_fuzzy = false;
-}
-
-KisFillPainter::KisFillPainter(KisPaintDeviceSP device) : super(device)
-{
-    m_width = m_height = -1;
-    m_sampleMerged = false;
-    m_careForSelection = false;
-    m_fuzzy = false;
-}
-
-// 'regular' filling
-// XXX: This also needs renaming, since filling ought to keep the opacity and the composite op in mind,
-//      this is more eraseToColor.
-void KisFillPainter::fillRect(TQ_INT32 x1, TQ_INT32 y1, TQ_INT32 w, TQ_INT32 h, const KisColor& kc, TQ_UINT8 opacity)
-{
-    if (w > 0 && h > 0) {
-        // Make sure we're in the right colorspace
-
-        KisColor kc2(kc); // get rid of const
-        kc2.convertTo(m_device->colorSpace());
-        TQ_UINT8 * data = kc2.data();
-        m_device->colorSpace()->setAlpha(data, opacity, 1);
-
-        m_device->fill(x1, y1, w, h, data);
-
-        addDirtyRect(TQRect(x1, y1, w, h));
-    }
-}
-
-void KisFillPainter::fillRect(TQ_INT32 x1, TQ_INT32 y1, TQ_INT32 w, TQ_INT32 h, KisPattern * pattern) {
-    if (!pattern) return;
-    if (!pattern->valid()) return;
-    if (!m_device) return;
-
-
-    KisPaintDeviceSP patternLayer = pattern->image(m_device->colorSpace());
-
-    int sx, sy, sw, sh;
-
-    int y = y1;
-
-    if (y >= 0) {
-        sy = y % pattern->height();
-    } else {
-        sy = pattern->height() - (((-y - 1) % pattern->height()) + 1);
-    }
-
-    while (y < y1 + h) {
-        sh = TQMIN((y1 + h) - y, pattern->height() - sy);
-
-        int x = x1;
-
-        if (x >= 0) {
-            sx = x % pattern->width();
-        } else {
-            sx = pattern->width() - (((-x - 1) % pattern->width()) + 1);
-        }
-
-        while (x < x1 + w) {
-            sw = TQMIN((x1 + w) - x, pattern->width() - sx);
-
-            bitBlt(x, y, m_compositeOp, patternLayer.data(), m_opacity, sx, sy, sw, sh);
-            x += sw; sx = 0;
-        }
-
-        y+=sh; sy = 0;
-    }
-
-    addDirtyRect(TQRect(x1, y1, w, h));
-}
-
-// flood filling
-
-void KisFillPainter::fillColor(int startX, int startY) {
-    genericFillStart(startX, startY);
-
-    // Now create a layer and fill it
-    KisPaintDeviceSP filled = new KisPaintDevice(m_device->colorSpace(), "filled");
-    Q_CHECK_PTR(filled);
-    KisFillPainter painter(filled.data());
-    painter.fillRect(0, 0, m_width, m_height, m_paintColor);
-    painter.end();
-
-    genericFillEnd(filled);
-}
-
-void KisFillPainter::fillPattern(int startX, int startY) {
-    genericFillStart(startX, startY);
-
-    // Now create a layer and fill it
-    KisPaintDeviceSP filled = new KisPaintDevice(m_device->colorSpace(), "filled");
-    Q_CHECK_PTR(filled);
-    KisFillPainter painter(filled.data());
-    painter.fillRect(0, 0, m_width, m_height, m_pattern);
-    painter.end();
-
-    genericFillEnd(filled);
-}
-
-void KisFillPainter::genericFillStart(int startX, int startY) {
-    m_cancelRequested = false;
-
-    if (m_width < 0 || m_height < 0) {
-        if (m_device->image()) {
-            m_width = m_device->image()->width();
-            m_height = m_device->image()->height();
-        } else {
-            m_width = m_height = 500;
-        }
-    }
-
-    m_size = m_width * m_height;
-
-    // Create a selection from the surrounding area
-    m_selection = createFloodSelection(startX, startY);
-}
-
-void KisFillPainter::genericFillEnd(KisPaintDeviceSP filled) {
-    if (m_cancelRequested) {
-        m_width = m_height = -1;
-        return;
-    }
-
-    TQRect rc = m_selection->selectedRect();
-
-    bltSelection(rc.x(), rc.y(), m_compositeOp, filled, m_selection, m_opacity,
-                 rc.x(), rc.y(), rc.width(), rc.height());
-
-    emit notifyProgressDone();
-
-    m_width = m_height = -1;
-}
-
-struct FillSegment {
-    FillSegment(int x, int y/*, FillSegment* tqparent*/) : x(x), y(y)/*, tqparent(tqparent)*/ {}
-    int x;
-    int y;
-//    FillSegment* tqparent;
-};
-
-typedef enum { None = 0, Added = 1, Checked = 2 } tqStatus;
-
-KisSelectionSP KisFillPainter::createFloodSelection(int startX, int startY) {
-    if (m_width < 0 || m_height < 0) {
-        if (m_device->hasSelection() && m_careForSelection) {
-
-            TQRect rc = m_device->selection()->selectedRect();
-            m_width = rc.width() - (startX - rc.x());
-            m_height = rc.height() - (startY - rc.y());
-
-        } else if (m_device->image()) {
-
-            m_width = m_device->image()->width();
-            m_height = m_device->image()->height();
-
-        } else {
-            m_width = m_height = 500;
-        }
-    }
-
-    // Don't try to fill if we start outside the borders, just return an empty 'fill'
-    if (startX < 0 || startY < 0 || startX >= m_width || startY >= m_height)
-        return new KisSelection(m_device);
-
-    KisPaintDeviceSP sourceDevice = 0;
-
-    // sample merged?
-    if (m_sampleMerged) {
-        if (!m_device->image()) {
-            return new KisSelection(m_device);
-        }
-        sourceDevice = m_device->image()->mergedImage();
-    } else {
-        sourceDevice = m_device;
-    }
-
-    m_size = m_width * m_height;
-
-    KisSelectionSP selection = new KisSelection(m_device);
-    KisColorSpace * colorSpace = selection->colorSpace();
-    KisColorSpace * devColorSpace = sourceDevice->colorSpace();
-
-    TQ_UINT8* source = new TQ_UINT8[sourceDevice->pixelSize()];
-    KisHLineIteratorPixel pixelIt = sourceDevice->createHLineIterator(startX, startY, startX+1, false);
-
-    memcpy(source, pixelIt.rawData(), sourceDevice->pixelSize());
-
-    std::stack<FillSegment*> stack;
-
-    stack.push(new FillSegment(startX, startY/*, 0*/));
-
-    tqStatus* map = new tqStatus[m_size];
-
-    memset(map, None, m_size * sizeof(tqStatus));
-
-    int progressPercent = 0; int pixelsDone = 0; int currentPercent = 0;
-    emit notifyProgressStage(i18n("Making fill outline..."), 0);
-
-    bool hasSelection = m_careForSelection && sourceDevice->hasSelection();
-    KisSelectionSP srcSel = 0;
-    if (hasSelection)
-        srcSel = sourceDevice->selection();
-
-    while(!stack.empty()) {
-        FillSegment* segment = stack.top();
-        stack.pop();
-        if (map[m_width * segment->y + segment->x] == Checked) {
-            delete segment;
-            continue;
-        }
-        map[m_width * segment->y + segment->x] = Checked;
-
-        int x = segment->x;
-        int y = segment->y;
-
-        /* We need an iterator that is valid in the range (0,y) - (width,y). Therefore,
-        it is needed to start the iterator at the first position, and then skip to (x,y). */
-        pixelIt = sourceDevice->createHLineIterator(0, y, m_width, false);
-        pixelIt += x;
-        TQ_UINT8 diff = devColorSpace->difference(source, pixelIt.rawData());
-
-        if (diff >= m_threshold
-            || (hasSelection && srcSel->selected(pixelIt.x(), pixelIt.y()) == MIN_SELECTED)) {
-            delete segment;
-            continue;
-        }
-
-        // Here as well: start the iterator at (0,y)
-        KisHLineIteratorPixel selIt = selection->createHLineIterator(0, y, m_width, true);
-        selIt += x;
-        if (m_fuzzy)
-            colorSpace->fromTQColor(TQt::white, MAX_SELECTED - diff, selIt.rawData());
-        else
-            colorSpace->fromTQColor(TQt::white, MAX_SELECTED, selIt.rawData());
-
-        if (y > 0 && (map[m_width * (y - 1) + x] == None)) {
-            map[m_width * (y - 1) + x] = Added;
-            stack.push(new FillSegment(x, y-1));
-        }
-        if (y < (m_height - 1) && (map[m_width * (y + 1) + x] == None)) {
-            map[m_width * (y + 1) + x] = Added;
-            stack.push(new FillSegment(x, y+1));
-        }
-
-        ++pixelsDone;
-
-        bool stop = false;
-
-        --pixelIt;
-        --selIt;
-        --x;
-
-        // go to the left
-        while(!stop && x >= 0 && (map[m_width * y + x] != Checked) ) { // FIXME optimizeable?
-            map[m_width * y + x] = Checked;
-            diff = devColorSpace->difference(source, pixelIt.rawData());
-            if (diff >= m_threshold
-                || (hasSelection && srcSel->selected(pixelIt.x(), pixelIt.y()) == MIN_SELECTED)) {
-                stop = true;
-                continue;
-            }
-
-            if (m_fuzzy)
-                colorSpace->fromTQColor(TQt::white, MAX_SELECTED - diff, selIt.rawData());
-            else
-                colorSpace->fromTQColor(TQt::white, MAX_SELECTED, selIt.rawData());
-
-            if (y > 0 && (map[m_width * (y - 1) + x] == None)) {
-                map[m_width * (y - 1) + x] = Added;
-                stack.push(new FillSegment(x, y-1));
-            }
-            if (y < (m_height - 1) && (map[m_width * (y + 1) + x] == None)) {
-                map[m_width * (y + 1) + x] = Added;
-                stack.push(new FillSegment(x, y+1));
-            }
-            ++pixelsDone;
-            --pixelIt;
-            --selIt;
-            --x;
-        }
-
-        x = segment->x + 1;
-        delete segment;
-
-        if (map[m_width * y + x] == Checked)
-            continue;
-
-        // and go to the right
-        pixelIt = sourceDevice->createHLineIterator(x, y, m_width, false);
-        selIt = selection->createHLineIterator(x, y, m_width, true);
-
-        stop = false;
-        while(!stop && x < m_width && (map[m_width * y + x] != Checked) ) {
-            diff = devColorSpace->difference(source, pixelIt.rawData());
-            map[m_width * y + x] = Checked;
-
-            if (diff >= m_threshold
-                || (hasSelection && srcSel->selected(pixelIt.x(), pixelIt.y()) == MIN_SELECTED) ) {
-                stop = true;
-                continue;
-            }
-
-            if (m_fuzzy)
-                colorSpace->fromTQColor(TQt::white, MAX_SELECTED - diff, selIt.rawData());
-            else
-                colorSpace->fromTQColor(TQt::white, MAX_SELECTED, selIt.rawData());
-
-            if (y > 0 && (map[m_width * (y - 1) + x] == None)) {
-                map[m_width * (y - 1) + x] = Added;
-                stack.push(new FillSegment(x, y-1));
-            }
-            if (y < (m_height - 1) && (map[m_width * (y + 1) + x] == None)) {
-                map[m_width * (y + 1) + x] = Added;
-                stack.push(new FillSegment(x, y+1));
-            }
-            ++pixelsDone;
-            ++pixelIt;
-            ++selIt;
-            ++x;
-        }
-
-        if (m_size > 0) {
-            progressPercent = (pixelsDone * 100) / m_size;
-            if (progressPercent > currentPercent) {
-                emit notifyProgress(progressPercent);
-                currentPercent = progressPercent;
-            }
-        }
-    }
-
-
-    delete[] map;
-    delete[] source;
-
-    return selection;
-}
diff --git a/krita/core/kis_fill_painter.h b/krita/core/kis_fill_painter.h
deleted file mode 100644
index da244a67d..000000000
--- a/krita/core/kis_fill_painter.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- *  Copyright (c) 2004 Adrian Page <adrian@pagenet.plus.com>
- *  Copyright (c) 2004 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_FILL_PAINTER_H_
-#define KIS_FILL_PAINTER_H_
-
-#include <tqrect.h>
-
-#include "kis_meta_registry.h"
-#include "kis_color.h"
-#include "kis_colorspace_factory_registry.h"
-#include "kis_painter.h"
-#include "kis_types.h"
-#include <koffice_export.h>
-
-class KisPattern;
-
-// XXX: Filling should set dirty rect.
-/**
- * This painter can be used to fill paint devices in different ways. This can also be used
- * for flood filling related operations.
- */
-class KRITACORE_EXPORT KisFillPainter : public KisPainter
-{
-
-    typedef KisPainter super;
-
-public:
-
-    /**
-     * Construct an empty painter. Use the begin(KisPaintDeviceSP) method to attach
-     * to a paint device
-     */
-    KisFillPainter();
-    /**
-     * Start painting on the specified paint device
-     */
-    KisFillPainter(KisPaintDeviceSP device);
-
-    /**
-     * Fill a rectangle with black transparent pixels (0, 0, 0, 0 for RGBA).
-     */
-    void eraseRect(TQ_INT32 x1, TQ_INT32 y1, TQ_INT32 w, TQ_INT32 h);
-    /**
-     * Overloaded version of the above function.
-     */
-    void eraseRect(const TQRect& rc);
-
-    /**
-     * Fill a rectangle with a certain color.
-     */
-    void fillRect(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h, const KisColor& c);
-    /**
-     * Overloaded version of the above function.
-     */
-    void fillRect(const TQRect& rc, const KisColor& c);
-
-    /**
-     * Fill a rectangle with a certain color and opacity.
-     */
-    void fillRect(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h, const KisColor& c, TQ_UINT8 opacity);
-    /**
-     * Overloaded version of the above function.
-     */
-    void fillRect(const TQRect& rc, const KisColor& c, TQ_UINT8 opacity);
-
-    /**
-     * Fill a rectangle with a certain pattern. The pattern is repeated if it does not fit the
-     * entire rectangle.
-     */
-    void fillRect(TQ_INT32 x1, TQ_INT32 y1, TQ_INT32 w, TQ_INT32 h, KisPattern * pattern);
-    /**
-     * Overloaded version of the above function.
-     */
-    void fillRect(const TQRect& rc, KisPattern * pattern);
-
-    /**
-     * Fills the enclosed area around the point with the set color. If there is a
-     * selection, the whole selection is filled
-     **/
-    void fillColor(int startX, int startY);
-
-    /**
-     * Fills the enclosed area around the point with the set pattern. If there is a
-     * selection, the whole selection is filled
-     **/
-    void fillPattern(int startX, int startY);
-
-    /**
-     * Returns a selection tqmask for the floodfill starting at the specified position.
-     **/
-    KisSelectionSP createFloodSelection(int startX, int startY);
-
-    /**
-     * Set the threshold for floodfill. The range is 0-255: 0 means the fill will only
-     * fill parts that are the exact same color, 255 means anything will be filled
-     */
-    void setFillThreshold(int threshold);
-    /** Returns the fill threshold, see setFillThreshold for details */
-    int fillThreshold() const { return m_threshold; }
-
-    /** Sets the width of the layer */
-    void setWidth(int w) { m_width = w; }
-
-    /** Sets the height of the layer */
-    void setHeight(int h) { m_height = h; }
-
-    /** If sample merged is set to true, the paint device will get the bounds of the
-     * floodfill from the complete image instead of the layer */
-    bool sampleMerged() const { return m_sampleMerged; }
-    /** Set sample merged. See sampleMerged() for details */
-    void setSampleMerged(bool set) { m_sampleMerged = set; }
-
-    /** If true, floodfill doesn't fill outside the selected area of a layer */
-    bool careForSelection() const { return m_careForSelection; }
-    /** Set caring for selection. See careForSelection for details */
-    void setCareForSelection(bool set) { m_careForSelection = set; }
-
-    /**
-     * If true, the floodfill will be fuzzy. This means that the 'value' of selectedness
-     * will depend on the difference between the sampled color and the color at the current
-     * position.
-     */
-    bool fuzzyFill() const { return m_fuzzy; }
-    /** Sets the fuzzyfill parameter. See fuzzyFill for details */
-    void setFuzzyFill(bool set) { m_fuzzy = set; }
-
-private:
-    // for floodfill
-    void genericFillStart(int startX, int startY);
-    void genericFillEnd(KisPaintDeviceSP filled);
-
-    KisSelectionSP m_selection;
-
-    int m_threshold;
-    int m_size;
-    int m_width, m_height;
-    TQRect m_rect;
-    bool m_sampleMerged;
-    bool m_careForSelection;
-    bool m_fuzzy;
-};
-
-
-inline
-void KisFillPainter::fillRect(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h, const KisColor& c)
-{
-    fillRect(x, y, w, h, c, OPACITY_OPAQUE);
-}
-
-inline
-void KisFillPainter::fillRect(const TQRect& rc, const KisColor& c)
-{
-    fillRect(rc.x(), rc.y(), rc.width(), rc.height(), c, OPACITY_OPAQUE);
-}
-
-inline
-void KisFillPainter::eraseRect(TQ_INT32 x1, TQ_INT32 y1, TQ_INT32 w, TQ_INT32 h)
-{
-    KisColorSpace * cs = KisMetaRegistry::instance()->csRegistry()->getRGB8();
-    KisColor c(TQt::black, cs);
-    fillRect(x1, y1, w, h, c, OPACITY_TRANSPARENT);
-}
-
-inline
-void KisFillPainter::eraseRect(const TQRect& rc)
-{
-    KisColorSpace * cs = KisMetaRegistry::instance()->csRegistry()->getRGB8();
-    KisColor c(TQt::black, cs);
-    fillRect(rc.x(), rc.y(), rc.width(), rc.height(), c, OPACITY_TRANSPARENT);
-}
-
-inline
-void KisFillPainter::fillRect(const TQRect& rc, const KisColor& c, TQ_UINT8 opacity)
-{
-    fillRect(rc.x(), rc.y(), rc.width(), rc.height(), c, opacity);
-}
-
-inline
-void KisFillPainter::fillRect(const TQRect& rc, KisPattern *pattern)
-{
-    fillRect(rc.x(), rc.y(), rc.width(), rc.height(), pattern);
-}
-
-inline
-void KisFillPainter::setFillThreshold(int threshold)
-{
-    m_threshold = threshold;
-}
-
-
-#endif //KIS_FILL_PAINTER_H_
diff --git a/krita/core/kis_filter.cc b/krita/core/kis_filter.cc
deleted file mode 100644
index ee396596a..000000000
--- a/krita/core/kis_filter.cc
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include "kis_filter.h"
-
-#include <tqstring.h>
-
-#include "kis_types.h"
-#include "kis_filter_configuration.h"
-
-KisFilter::KisFilter(const KisID& id, const TQString & category, const TQString & entry)
-    : KisProgressSubject(0, id.id().latin1())
-    , m_id(id)
-    , m_progressDisplay(0)
-    , m_category(category)
-    , m_entry(entry)
-{
-}
-
-KisFilterConfiguration * KisFilter::configuration(TQWidget*)
-{
-    return new KisFilterConfiguration(m_id.id(), 0);
-}
-
-KisFilterConfiguration * KisFilter::configuration()
-{
-    return new KisFilterConfiguration(m_id.id(), 0);
-}
-
-KisFilterConfigWidget * KisFilter::createConfigurationWidget(TQWidget *, KisPaintDeviceSP)
-{
-    return 0;
-}
-
-void KisFilter::setProgressDisplay(KisProgressDisplayInterface * progressDisplay)
-{
-    m_progressDisplay = progressDisplay;
-}
-
-
-void KisFilter::enableProgress() {
-    m_progressEnabled = true;
-    m_cancelRequested = false;
-}
-
-void KisFilter::disableProgress() {
-    m_progressEnabled = false;
-    m_cancelRequested = false;
-    m_progressDisplay = 0;
-}
-
-void KisFilter::setProgressTotalSteps(TQ_INT32 totalSteps)
-{
-    if (m_progressEnabled) {
-
-        m_progressTotalSteps = totalSteps;
-        m_lastProgressPerCent = 0;
-        m_progressSteps = 0;
-        emit notifyProgress(0);
-    }
-}
-
-void KisFilter::setProgress(TQ_INT32 progress)
-{
-    if (m_progressEnabled) {
-        TQ_INT32 progressPerCent = (progress * 100) / m_progressTotalSteps;
-        m_progressSteps = progress;
-
-        if (progressPerCent != m_lastProgressPerCent) {
-
-            m_lastProgressPerCent = progressPerCent;
-            emit notifyProgress(progressPerCent);
-        }
-    }
-}
-
-void KisFilter::incProgress()
-{
-    setProgress(++m_progressSteps);
-
-}
-
-void KisFilter::setProgressStage(const TQString& stage, TQ_INT32 progress)
-{
-    if (m_progressEnabled) {
-
-        TQ_INT32 progressPerCent = (progress * 100) / m_progressTotalSteps;
-
-        m_lastProgressPerCent = progressPerCent;
-        emit notifyProgressStage(stage, progressPerCent);
-    }
-}
-
-void KisFilter::setProgressDone()
-{
-    if (m_progressEnabled) {
-        emit notifyProgressDone();
-    }
-}
-
-
-bool KisFilter::autoUpdate() {
-    return m_autoUpdate;
-}
-
-void KisFilter::setAutoUpdate(bool set) {
-    m_autoUpdate = set;
-}
-
-TQRect KisFilter::enlargeRect(TQRect rect, KisFilterConfiguration* c) const {
-    int margin = overlapMarginNeeded(c);
-    rect.rLeft() -= margin;
-    rect.rTop() -= margin;
-    rect.rRight() += margin;
-    rect.rBottom() += margin;
-    return rect;
-}
-
-#include "kis_filter.moc"
diff --git a/krita/core/kis_filter.h b/krita/core/kis_filter.h
deleted file mode 100644
index c54b40411..000000000
--- a/krita/core/kis_filter.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef _KIS_FILTER_H_
-#define _KIS_FILTER_H_
-
-#include <list>
-
-#include <tqstring.h>
-
-#include <ksharedptr.h>
-#include <klocale.h>
-
-#include "kis_types.h"
-#include "kis_filter_registry.h"
-#include "kis_id.h"
-#include "kis_paint_device.h"
-#include "kis_progress_subject.h"
-#include "kis_filter_configuration.h"
-#include "kis_colorspace.h"
-#include "koffice_export.h"
-
-class KisColorSpace;
-class KisPreviewDialog;
-class KisProgressDisplayInterface;
-class KisFilterConfigWidget;
-class TQWidget;
-
-/**
- * Basic interface of a Krita filter.
- */
-class KRITACORE_EXPORT KisFilter : public KisProgressSubject, public KShared {
-    Q_OBJECT
-  TQ_OBJECT
-public:
-
-    /**
-     * Construct a Krita filter
-     */
-    KisFilter(const KisID& id, const TQString & category, const TQString & entry);
-    virtual ~KisFilter() {}
-
-public:
-
-    virtual void setProgressDisplay(KisProgressDisplayInterface * progressDisplay);
-
-    virtual void process(KisPaintDeviceSP src, KisPaintDeviceSP dst, KisFilterConfiguration*, const TQRect&) = 0;
-
-public:
-     /**
-      * @return a new configuration derived from the widget. If the widget is NULL or not the correct type,
-      *         a default configuration object will be returned
-      */
-     virtual KisFilterConfiguration * configuration(TQWidget*);
-
-     /**
-      * @return a default configuration object
-      * Normally this doesn't need to be overriden
-      */
-    virtual KisFilterConfiguration * configuration();
-
-    /**
-         * If true, this filter can be used in painting tools as a paint operation
-         */
-    virtual bool supportsPainting() { return false; };
-
-    /// This filter can be displayed in a preview dialog
-    virtual bool supportsPreview() { return false; };
-
-    /// This filter can be used in adjustment layers
-    // XXX: This uses supportsPreview() for backwards compatibility
-    virtual bool supportsAdjustmentLayers() { return supportsPreview(); };
-
-    /**
-     * Return a list of default configuration to demonstrates the use of the filter
-     * @return a list with a null element if the filter do not use a configuration
-     */
-    virtual std::list<KisFilterConfiguration*> listOfExamplesConfiguration(KisPaintDeviceSP )
-    { std::list<KisFilterConfiguration*> list; list.insert(list.begin(), 0); return list; }
-
-    /**
-     * Can this filter work incrementally when painting, or do we need to work
-     * on the state as it was before painting started. The former is faster.
-     */
-    virtual bool supportsIncrementalPainting() { return true; };
-
-    /**
-     * This filter supports cutting up the work area and filtering
-     * each chunk in a separate thread. Filters that need access to the
-     * whole area for correct computations should return false.
-     */
-    virtual bool supportsThreading() { return true; };
-
-    /**
-     * Used when threading is used -- the overlap margin is passed to the
-     * filter to use to compute pixels, but the margin is not pasted into the
-     * resulting image.
-     */
-    virtual int overlapMarginNeeded(KisFilterConfiguration* = 0) const { return 0; };
-
-    /**
-     * Similar to overlapMarginNeeded: some filters will alter a lot of pixels that are
-     * near to each other at the same time. So when you changed a single rectangle
-     * in a device, the actual rectangle that will feel the influence of this change
-     * might be bigger. Use this function to detirmine that rect.
-     * The default implementation makes a guess using overlapMarginNeeded.
-     */
-    virtual TQRect enlargeRect(TQRect rect, KisFilterConfiguration* = 0) const;
-
-    /**
-     * Determine the colorspace independence of this filter.
-     * @see ColorSpaceIndependence
-     *
-     * @return the degree of independence
-     */
-    virtual ColorSpaceIndependence colorSpaceIndependence() { return TO_RGBA8; };
-
-    /**
-     * Determine if this filter can work with this colorSpace. For instance, some
-     * colorspaces don't depend on lcms, and cannot do certain tasks. The colorsfilters
-     * are problems here.
-     * BSAR: I'm still not convinced that this is the right approach. I think that every
-     * colorspace should implement the api fully; and that the filter should simply call
-     * that api. After all, you don't need lcms to desaturate.
-     *
-     * @param colorsSpace
-     */
-    virtual bool workWith(KisColorSpace*) { return true; }
-
-    virtual void enableProgress();
-    virtual void disableProgress();
-
-    bool autoUpdate();
-
-    // Unique identification for this filter
-    inline const KisID id() const { return m_id; };
-    // Which submenu in the filters menu does filter want to go?
-
-    inline TQString menuCategory() const { return m_category; };
-    // The i18n'ed string this filter wants to show itself in the menu
-
-    inline TQString menuEntry() const { return m_entry; };
-
-    /**
-     * Create the configuration widget for this filter.
-     *
-     * @param tqparent the TQt owner widget of this widget
-     * @param dev the paintdevice this filter will act on
-     * @return NULL if the filter does not use user-settable configuration settings.
-     *         else return a pointer to the new configuration widget
-     */
-    virtual KisFilterConfigWidget * createConfigurationWidget(TQWidget * tqparent, KisPaintDeviceSP dev);
-
-    virtual void cancel() { m_cancelRequested = true; }
-
-    virtual void setAutoUpdate(bool set);
-    bool progressEnabled() const { return m_progressEnabled; }
-    inline bool cancelRequested() const { return m_progressEnabled && m_cancelRequested; }
-
-protected slots:
-
-    // Convenience functions for progress display.
-    void setProgressTotalSteps(TQ_INT32 totalSteps);
-    void setProgress(TQ_INT32 progress);
-    void incProgress();
-    void setProgressStage(const TQString& stage, TQ_INT32 progress);
-    void setProgressDone();
-    inline TQ_INT32 progress() { return m_progressSteps; }
-private:
-    bool m_cancelRequested;
-    bool m_progressEnabled;
-    bool m_autoUpdate;
-
-protected:
-    TQ_INT32 m_progressTotalSteps;
-    TQ_INT32 m_lastProgressPerCent;
-    TQ_INT32 m_progressSteps;
-
-    KisID m_id;
-    KisProgressDisplayInterface * m_progressDisplay;
-    TQString m_category; // The category in the filter menu this filter fits
-    TQString m_entry; // the i18n'ed accelerated menu text
-
-};
-
-
-#endif
diff --git a/krita/core/kis_filter_config_widget.cc b/krita/core/kis_filter_config_widget.cc
deleted file mode 100644
index df7c13d5a..000000000
--- a/krita/core/kis_filter_config_widget.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
- 
-#include "kis_filter_config_widget.h"
-
-
-KisFilterConfigWidget::KisFilterConfigWidget(TQWidget * tqparent, const char * name, WFlags f)
-    : TQWidget(tqparent, name, f) 
-{
-}
-
-KisFilterConfigWidget::~KisFilterConfigWidget()
-{
-}
-
-#include "kis_filter_config_widget.moc"
diff --git a/krita/core/kis_filter_config_widget.h b/krita/core/kis_filter_config_widget.h
deleted file mode 100644
index ddb600ab0..000000000
--- a/krita/core/kis_filter_config_widget.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef _KIS_FILTER_CONFIG_WIDGET_H_
-#define _KIS_FILTER_CONFIG_WIDGET_H_
-
-#include <tqwidget.h>
-#include "kis_filter_configuration.h"
-
-/**
- * Empty base class. Filters can build their own configuration widgets that
- * inherit this class. The configuration widget can emit sigPleaseUpdatePreview
- * when it wants the preview in the filter dialog to be updated. 
- */
-class KisFilterConfigWidget : public TQWidget {
-
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-
-    KisFilterConfigWidget(TQWidget * tqparent, const char * name = 0, WFlags f = 0 );
-    virtual ~KisFilterConfigWidget();
-
-    virtual void setConfiguration(KisFilterConfiguration * config) = 0;
-
-signals:
-
-    /**
-     * Subclasses should emit this signal whenever the preview should be
-     * be recalculated.
-     */
-    void sigPleaseUpdatePreview();
-};
-
-#endif
diff --git a/krita/core/kis_filter_configuration.cc b/krita/core/kis_filter_configuration.cc
deleted file mode 100644
index b25dcb249..000000000
--- a/krita/core/kis_filter_configuration.cc
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- *  Copyright (c) 2006 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include "kis_filter.h"
-
-#include <kdebug.h>
-#include <tqdom.h>
-#include <tqstring.h>
-
-#include "kis_filter_registry.h"
-#include "kis_transaction.h"
-#include "kis_undo_adapter.h"
-#include "kis_painter.h"
-#include "kis_selection.h"
-#include "kis_id.h"
-#include "kis_canvas_subject.h"
-#include "kis_progress_display_interface.h"
-#include "kis_types.h"
-#include "kis_filter_config_widget.h"
-
-
-KisFilterConfiguration::KisFilterConfiguration(const KisFilterConfiguration & rhs)
-{
-    m_name = rhs.m_name;
-    m_version = rhs.m_version;
-    m_properties = rhs.m_properties;
-}
-
-void KisFilterConfiguration::fromXML(const TQString & s )
-{
-    m_properties.clear();
-
-    TQDomDocument doc;
-    doc.setContent( s );
-    TQDomElement e = doc.documentElement();
-    TQDomNode n = e.firstChild();
-
-    m_name = e.attribute("name");
-    m_version = e.attribute("version").toInt();
-
-    while (!n.isNull()) {
-        // We don't nest elements in filter configuration. For now...
-        TQDomElement e = n.toElement();
-        TQString name;
-        TQString type;
-        TQString value;
-
-        if (!e.isNull()) {
-            if (e.tagName() == "property") {
-                name = e.attribute("name");
-                type = e.attribute("type");
-                value = e.text();
-                // XXX Convert the variant pro-actively to the right type?
-                m_properties[name] = TQVariant(value);
-            }
-        }
-        n = n.nextSibling();
-    }
-    //dump();
-}
-
-TQString KisFilterConfiguration::toString()
-{
-    TQDomDocument doc = TQDomDocument("filterconfig");
-    TQDomElement root = doc.createElement( "filterconfig" );
-    root.setAttribute( "name", m_name );
-    root.setAttribute( "version", m_version );
-
-    doc.appendChild( root );
-
-    TQMap<TQString, TQVariant>::Iterator it;
-    for ( it = m_properties.begin(); it != m_properties.end(); ++it ) {
-        TQDomElement e = doc.createElement( "property" );
-        e.setAttribute( "name", it.key().latin1() );
-        TQVariant v = it.data();
-        e.setAttribute( "type", v.typeName() );
-        TQString s = v.asString();
-        TQDomText text = doc.createCDATASection(v.asString() ); // XXX: Unittest this!
-        e.appendChild(text);
-        root.appendChild(e);
-    }
-
-    return doc.toString();
-}
-
-const TQString & KisFilterConfiguration::name() const
-{
-    return m_name;
-}
-
-TQ_INT32 KisFilterConfiguration::version() const
-{
-    return m_version;
-}
-
-void KisFilterConfiguration::setProperty(const TQString & name, const TQVariant & value)
-{
-    if ( m_properties.tqfind( name ) == m_properties.end() ) {
-        m_properties.insert( name, value );
-    }
-    else {
-        m_properties[name] = value;
-    }
-}
-
-bool KisFilterConfiguration::getProperty(const TQString & name, TQVariant & value)
-{
-   if ( m_properties.tqfind( name ) == m_properties.end() ) {
-       return false;
-   }
-   else {
-       value = m_properties[name];
-       return true;
-   }
-}
-
-TQVariant KisFilterConfiguration::getProperty(const TQString & name)
-{
-    if ( m_properties.tqfind( name ) == m_properties.end() ) {
-        return TQVariant();
-    }
-    else {
-        return m_properties[name];
-    }
-}
-
-
-int KisFilterConfiguration::getInt(const TQString & name, int def)
-{
-    TQVariant v = getProperty(name);
-    if (v.isValid())
-        return v.asInt();
-    else
-        return def;
-
-}
-
-double KisFilterConfiguration::getDouble(const TQString & name, double def)
-{
-    TQVariant v = getProperty(name);
-    if (v.isValid())
-        return v.asDouble();
-    else
-        return def;
-}
-
-bool KisFilterConfiguration::getBool(const TQString & name, bool def)
-{
-    TQVariant v = getProperty(name);
-    if (v.isValid())
-        return v.asBool();
-    else
-        return def;
-}
-
-TQString KisFilterConfiguration::getString(const TQString & name, TQString def)
-{
-    TQVariant v = getProperty(name);
-    if (v.isValid())
-        return v.asString();
-    else
-        return def;
-}
-
-void KisFilterConfiguration::dump()
-{
-    TQMap<TQString, TQVariant>::Iterator it;
-    for ( it = m_properties.begin(); it != m_properties.end(); ++it ) {
-    }
-
-}
diff --git a/krita/core/kis_filter_configuration.h b/krita/core/kis_filter_configuration.h
deleted file mode 100644
index 8361861a7..000000000
--- a/krita/core/kis_filter_configuration.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *  Copyright (c) 2006 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef _KIS_FILTER_CONFIGURATION_H_
-#define _KIS_FILTER_CONFIGURATION_H_
-
-#include <tqstring.h>
-#include <tqmap.h>
-#include <tqvariant.h>
-#include <kdebug.h>
-#include "koffice_export.h"
-
-class KisPreviewDialog;
-class KisProgressDisplayInterface;
-class KisFilterConfigWidget;
-class TQWidget;
-
-/**
- * A KisFilterConfiguration is the serializable representation of
- * the filter parameters. Filters can subclass this class to implement
- * direct accessors to properties, but properties not in the map will
- * not be serialized.
- */
-class KRITACORE_EXPORT KisFilterConfiguration {
-
-public:
-
-    /**
-     * Create a new filter config.
-     */
-    KisFilterConfiguration(const TQString & name, TQ_INT32 version)
-        : m_name(name)
-        , m_version(version) {}
-
-    /**
-     * Deep copy the filter configFile
-     */
-    KisFilterConfiguration(const KisFilterConfiguration & rhs);
-            
-public:
-
-    /**
-     * Fill the filter configuration object from the XML encoded representation in s.
-     */
-    virtual void fromXML(const TQString &);
-
-    /**
-     * Create a serialized version of this filter config
-     */
-    virtual TQString toString();
-
-    /**
-     * Get the unique, language independent name of the filter.
-     */
-    const TQString & name() const;
-
-    /**
-     * Get the version of the filter that has created this config
-     */
-    TQ_INT32 version() const;
-
-    /**
-     * Set the property with name to value.
-     */
-    virtual void setProperty(const TQString & name, const TQVariant & value);
-
-    /**
-     * Set value to the value associated with property name
-     * @return false if the specified property did not exist.
-     */
-    virtual bool getProperty(const TQString & name, TQVariant & value);
-
-    virtual TQVariant getProperty(const TQString & name);
-
-    int getInt(const TQString & name, int def = 0);
-    double getDouble(const TQString & name, double def = 0.0);
-    bool getBool(const TQString & name, bool def = false);
-    TQString getString(const TQString & name, TQString def = TQString());
-    
-private:
-        void dump();
-    
-protected:
-
-    TQString m_name;
-    TQ_INT32 m_version;
-    TQMap<TQString, TQVariant> m_properties;
-    
-};
-
-#endif // _KIS_FILTER_CONFIGURATION_H_
diff --git a/krita/core/kis_filter_registry.cc b/krita/core/kis_filter_registry.cc
deleted file mode 100644
index 43d745f47..000000000
--- a/krita/core/kis_filter_registry.cc
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- *  Copyright (c) 2003 Patrick Julien  <freak@codepimps.org>
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <tqstring.h>
-#include <tqptrlist.h>
-
-#include <kaction.h>
-#include <kdebug.h>
-#include <klocale.h>
-#include <kparts/plugin.h>
-#include <kservice.h>
-#include <ktrader.h>
-#include <kparts/componentfactory.h>
-#include "kis_debug_areas.h"
-#include <math.h>
-#include "kis_types.h"
-#include "kis_filter_registry.h"
-#include "kis_paint_device.h"
-#include "kis_filter.h"
-
-KisFilterRegistry *KisFilterRegistry::m_singleton = 0;
-
-KisFilterRegistry::KisFilterRegistry()
-{
-    Q_ASSERT(KisFilterRegistry::m_singleton == 0);
-    KisFilterRegistry::m_singleton = this;
-
-    KTrader::OfferList offers = KTrader::self()->query(TQString::tqfromLatin1("Krita/Filter"),
-                                                         TQString::tqfromLatin1("(Type == 'Service') and "
-                                                                             "([X-Krita-Version] == 2)"));
-
-    KTrader::OfferList::ConstIterator iter;
-
-    for(iter = offers.begin(); iter != offers.end(); ++iter)
-    {
-        KService::Ptr service = *iter;
-        int errCode = 0;
-        KParts::Plugin* plugin =
-             KParts::ComponentFactory::createInstanceFromService<KParts::Plugin> ( service, this, 0, TQStringList(), &errCode);
-        if ( plugin )
-            kdDebug(DBG_AREA_PLUGINS) << "found plugin " << service->property("Name").toString() << "\n";
-        else {
-            kdDebug(41006) << "found plugin " << service->property("Name").toString() << ", " << errCode << "\n";
-            if( errCode == KParts::ComponentFactory::ErrNoLibrary)
-            {
-                kdWarning(41006) << " Error loading plugin was : ErrNoLibrary " << KLibLoader::self()->lastErrorMessage() << endl;
-            }
-        }
-
-    }
-
-}
-
-KisFilterRegistry::~KisFilterRegistry()
-{
-}
-
-KisFilterRegistry* KisFilterRegistry::instance()
-{
-    if(KisFilterRegistry::m_singleton == 0)
-    {
-        KisFilterRegistry::m_singleton = new KisFilterRegistry();
-    }
-    return KisFilterRegistry::m_singleton;
-}
-
-#include "kis_filter_registry.moc"
diff --git a/krita/core/kis_filter_registry.h b/krita/core/kis_filter_registry.h
deleted file mode 100644
index 9ad9901d6..000000000
--- a/krita/core/kis_filter_registry.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- *  Copyright (c) 2003 Patrick Julien  <freak@codepimps.org>
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_FILTER_REGISTRY_H_
-#define KIS_FILTER_REGISTRY_H_
-
-#include <tqobject.h>
-
-#include "kis_types.h"
-#include "kis_generic_registry.h"
-
-#include <koffice_export.h>
-
-class TQString;
-class TQStringList;
-
-class KRITACORE_EXPORT KisFilterRegistry : public TQObject, public KisGenericRegistry<KisFilterSP>
-{
-
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    virtual ~KisFilterRegistry();
-    
-    static KisFilterRegistry* instance();
-
-private:
-    KisFilterRegistry();
-    KisFilterRegistry(const KisFilterRegistry&);
-    KisFilterRegistry operator=(const KisFilterRegistry&);
-
-private:
-     static KisFilterRegistry *m_singleton;
-};
- 
-#endif // KIS_FILTERSPACE_REGISTRY_H_
diff --git a/krita/core/kis_filter_strategy.cc b/krita/core/kis_filter_strategy.cc
deleted file mode 100644
index f82e6cb5a..000000000
--- a/krita/core/kis_filter_strategy.cc
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- *  Copyright (c) 2004 Michael Thaler <michael.thaler@physik.tu-muenchen.de>
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <kdebug.h>
-#include <klocale.h>
-#include "kis_debug_areas.h"
-#include "kis_filter_strategy.h"
-#include <math.h>
-
-double KisHermiteFilterStrategy::valueAt(double t) const {
-        /* f(t) = 2|t|^3 - 3|t|^2 + 1, -1 <= t <= 1 */
-        if(t < 0.0) t = -t;
-        if(t < 1.0) return((2.0 * t - 3.0) * t * t + 1.0);
-        return(0.0);
-}
-
-TQ_UINT32 KisHermiteFilterStrategy::intValueAt(TQ_INT32 t) const {
-        /* f(t) = 2|t|^3 - 3|t|^2 + 1, -1 <= t <= 1 */
-        if(t < 0) t = -t;
-        if(t < 256)
-    {
-        t =(2 * t - 3*256) * t * t +(256<<16);
-
-        //go from .24 fixed point to .8 fixedpoint (hack only works with positve numbers, which it is)
-        t = (t + 0x8000) >> 16;
-
-        // go from .8 fixed point to 8bitscale. ie t = (t*255)/256;
-        if(t >= 128)
-            return t - 1;
-        return t;
-    }
-        return(0);
-}
-
-double KisCubicFilterStrategy::valueAt(double x) const {
-    if (x < -2.0)
-        return(0.0);
-    if (x < -1.0)
-        return((2.0+x)*(2.0+x)*(2.0+x)/6.0);
-    if (x < 0.0)
-        return((4.0+x*x*(-6.0-3.0*x))/6.0);
-    if (x < 1.0)
-        return((4.0+x*x*(-6.0+3.0*x))/6.0);
-    if (x < 2.0)
-        return((2.0-x)*(2.0-x)*(2.0-x)/6.0);
-    return(0.0);
-}
-
-TQ_UINT32 KisCubicFilterStrategy::intValueAt(TQ_INT32 x) const {
-    if (x < 2)
-        return 0;
-    if (x < -1)
-        return (2 + x) * (2 + x) * ( 2 + x) / 6;
-    if ( x < 0)
-        return (4 + x * x * ( -6 - 3 * x)) / 6;
-    if (x < 1)
-        return (4 + x * x * ( -6 + 3 * x)) / 6;
-    if (x < 2)
-        return (2 - x) * ( 2 - x) * (2 - x) / 6;    
-     return 0;   
-}
-
-double KisBoxFilterStrategy::valueAt(double t) const {
-        if((t > -0.5) && (t <= 0.5)) return(1.0);
-        return(0.0);
-}
-
-TQ_UINT32 KisBoxFilterStrategy::intValueAt(TQ_INT32 t) const {
-        /* f(t) = 1, -0.5 < t <= 0.5 */
-    if((t > -128) && (t <= 128))
-        return 255;
-    return 0;
-}
-
-double KisTriangleFilterStrategy::valueAt(double t) const {
-        if(t < 0.0) t = -t;
-        if(t < 1.0) return(1.0 - t);
-        return(0.0);
-}
-
-TQ_UINT32 KisTriangleFilterStrategy::intValueAt(TQ_INT32 t) const {
-        /* f(t) = |t|, -1 <= t <= 1 */
-        if(t < 0) t = -t;
-        if(t < 256)
-    {
-         // calc 256-1 but also go from .8 fixed point to 8bitscale. ie t = (t*255)/256; ie: if(t>=128) return t-1;
-        if(t>=128) return 256 - t;
-        return 255 - t;
-    }
-        return(0);
-}
-
-
-double KisBellFilterStrategy::valueAt(double t) const {
-        if(t < 0) t = -t;
-        if(t < .5) return(.75 - (t * t));
-        if(t < 1.5) {
-                t = (t - 1.5);
-                return(.5 * (t * t));
-        }
-        return(0.0);
-}
-
-double KisBSplineFilterStrategy::valueAt(double t) const {
-        double tt;
-
-        if(t < 0) t = -t;
-        if(t < 1) {
-                tt = t * t;
-                return((.5 * tt * t) - tt + (2.0 / 3.0));
-        } else if(t < 2) {
-                t = 2 - t;
-                return((1.0 / 6.0) * (t * t * t));
-        }
-        return(0.0);
-}
-
-double KisLanczos3FilterStrategy::valueAt(double t) const {
-        if(t < 0) t = -t;
-        if(t < 3.0) return(sinc(t) * sinc(t/3.0));
-        return(0.0);
-}
-
-double KisLanczos3FilterStrategy::sinc(double x) const {
-        const double pi=3.1415926535897932385;
-        x *= pi;
-        if(x != 0) return(sin(x) / x);
-        return(1.0);
-}
-
-double KisMitchellFilterStrategy::valueAt(double t) const {
-        const double B=1.0/3.0;
-        const double C=1.0/3.0;
-        double tt;
-
-        tt = t * t;
-        if(t < 0) t = -t;
-        if(t < 1.0) {
-                t = (((12.0 - 9.0 * B - 6.0 * C) * (t * tt)) + ((-18.0 + 12.0 * B + 6.0 * C) * tt) + (6.0 - 2 * B));
-                return(t / 6.0);
-        } else if(t < 2.0) {
-                t = (((-1.0 * B - 6.0 * C) * (t * tt)) + ((6.0 * B + 30.0 * C) * tt) + ((-12.0 * B - 48.0 * C) * t) + (8.0 * B + 24 * C));
-                return(t / 6.0);
-                }
-        return(0.0);
-}
-
-KisFilterStrategyRegistry *KisFilterStrategyRegistry::m_singleton = 0;
-
-KisFilterStrategyRegistry::KisFilterStrategyRegistry()
-{
-    Q_ASSERT(KisFilterStrategyRegistry::m_singleton == 0);
-    KisFilterStrategyRegistry::m_singleton = this;
-}
-
-KisFilterStrategyRegistry::~KisFilterStrategyRegistry()
-{
-}
-
-KisFilterStrategyRegistry* KisFilterStrategyRegistry::instance()
-{
-    if(KisFilterStrategyRegistry::m_singleton == 0)
-    {
-        KisFilterStrategyRegistry::m_singleton = new KisFilterStrategyRegistry();
-        Q_CHECK_PTR(KisFilterStrategyRegistry::m_singleton);
-        m_singleton->add(new KisHermiteFilterStrategy);
-        m_singleton->add(new KisBoxFilterStrategy);
-        m_singleton->add(new KisTriangleFilterStrategy);
-        m_singleton->add(new KisBellFilterStrategy);
-        m_singleton->add(new KisBSplineFilterStrategy);
-//         m_singleton->add(new KisLanczos3FilterStrategy);
-        m_singleton->add(new KisMitchellFilterStrategy);
-//         m_singleton->add(new KisCubicFilterStrategy);
-    }
-    return KisFilterStrategyRegistry::m_singleton;
-}
-
diff --git a/krita/core/kis_filter_strategy.h b/krita/core/kis_filter_strategy.h
deleted file mode 100644
index 55ef3d064..000000000
--- a/krita/core/kis_filter_strategy.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- *  Copyright (c) 2004 Michael Thaler <michael.thaler@physik.tu-muenchen.de>
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_FILTER_STRATEGY_H_
-#define KIS_FILTER_STRATEGY_H_
-
-#include <klocale.h>
-
-#include "kis_types.h"
-#include "kis_generic_registry.h"
-#include "kis_id.h"
-
-class KisFilterStrategy
-{
-    public:
-        KisFilterStrategy(KisID id) : m_id(id) {}
-        virtual ~KisFilterStrategy() {}
-
-        KisID id() {return m_id;};
-        virtual double valueAt(double /*t*/) const {return 0;};
-        virtual TQ_UINT32 intValueAt(TQ_INT32 t) const {return TQ_UINT32(255*valueAt(t/256.0));};
-        double support() { return supportVal;};
-        TQ_UINT32 intSupport() { return intSupportVal;};
-        virtual bool boxSpecial() { return false;};
-    protected:
-        double supportVal;
-        TQ_UINT32 intSupportVal;
-        KisID m_id;
-};
-
-class KisHermiteFilterStrategy : public KisFilterStrategy
-{
-    public:
-        KisHermiteFilterStrategy() : KisFilterStrategy(KisID("Hermite", i18n("Hermite")))
-            {supportVal = 1.0; intSupportVal = 256;}
-        virtual ~KisHermiteFilterStrategy() {}
-        
-        virtual TQ_UINT32 intValueAt(TQ_INT32 t) const;
-        virtual double valueAt(double t) const;
-};
-
-class KisCubicFilterStrategy : public KisFilterStrategy
-{
-    public:
-        KisCubicFilterStrategy() : KisFilterStrategy(KisID("Bicubic", i18n("Bicubic")))
-            {supportVal = 1.0; intSupportVal = 256;}
-        virtual ~KisCubicFilterStrategy() {}
-        
-        virtual TQ_UINT32 intValueAt(TQ_INT32 t) const;
-        virtual double valueAt(double t) const;
-};
-
-class KisBoxFilterStrategy : public KisFilterStrategy
-{
-    public:
-        KisBoxFilterStrategy() : KisFilterStrategy(KisID("Box", i18n("Box")))
-             {supportVal = 0.5; intSupportVal = 128;}
-        virtual ~KisBoxFilterStrategy() {}
-
-        virtual TQ_UINT32 intValueAt(TQ_INT32 t) const;
-        virtual double valueAt(double t) const;
-        virtual bool boxSpecial() { return true;};
-};
-
-class KisTriangleFilterStrategy : public KisFilterStrategy
-{
-    public:
-        KisTriangleFilterStrategy() : KisFilterStrategy(KisID("Triangle", i18n("Triangle aka (bi)linear")))
-            {supportVal = 1.0; intSupportVal = 256;}
-        virtual ~KisTriangleFilterStrategy() {}
-
-        virtual TQ_UINT32 intValueAt(TQ_INT32 t) const;
-        virtual double valueAt(double t) const;
-};
-
-class KisBellFilterStrategy : public KisFilterStrategy
-{
-    public:
-        KisBellFilterStrategy() : KisFilterStrategy(KisID("Bell", i18n("Bell")))
-            {supportVal = 1.5; intSupportVal = 128+256;}
-        virtual ~KisBellFilterStrategy() {}
-
-        virtual double valueAt(double t) const;
-};
-
-class KisBSplineFilterStrategy : public KisFilterStrategy
-{
-    public:
-        KisBSplineFilterStrategy() : KisFilterStrategy(KisID("BSpline", i18n("BSpline")))
-            {supportVal = 2.0; intSupportVal = 512;}
-        virtual ~KisBSplineFilterStrategy() {}
-
-        virtual double valueAt(double t) const;
-};
-
-class KisLanczos3FilterStrategy : public KisFilterStrategy
-{
-    public:
-        KisLanczos3FilterStrategy() : KisFilterStrategy(KisID("Lanczos3", i18n("Lanczos3")))
-            {supportVal = 3.0; intSupportVal = 768;}
-        virtual ~KisLanczos3FilterStrategy() {}
-
-        virtual double valueAt(double t) const;
-    private:
-        double sinc(double x) const; 
-};
-
-class KisMitchellFilterStrategy : public KisFilterStrategy
-{
-    public:
-        KisMitchellFilterStrategy() : KisFilterStrategy(KisID("Mitchell", i18n("Mitchell")))
-            {supportVal = 2.0; intSupportVal = 256;}
-        virtual ~KisMitchellFilterStrategy() {}
-
-        virtual double valueAt(double t) const;
-};
-
-class KisFilterStrategyRegistry : public KisGenericRegistry<KisFilterStrategy *>
-{
-public:
-    virtual ~KisFilterStrategyRegistry();
-    
-    static KisFilterStrategyRegistry* instance();
-
-private:
-    KisFilterStrategyRegistry();
-     KisFilterStrategyRegistry(const KisFilterStrategyRegistry&);
-     KisFilterStrategyRegistry operator=(const KisFilterStrategyRegistry&);
-
-private:
-    static KisFilterStrategyRegistry *m_singleton;
-};
-
-#endif // KIS_FILTER_STRATEGY_H_
diff --git a/krita/core/kis_gradient.cc b/krita/core/kis_gradient.cc
deleted file mode 100644
index efc370bb7..000000000
--- a/krita/core/kis_gradient.cc
+++ /dev/null
@@ -1,639 +0,0 @@
-/*
- *  kis_gradient.cc - part of Krayon
- *
- *  Copyright (c) 2000 Matthias Elter <elter@kde.org>
- *                2001 John Califf
- *                2004 Boudewijn Rempt <boud@valdyas.org>
- *                2004 Adrian Page <adrian@pagenet.plus.com>
- *                2004 Sven Langkamp <longamp@reallygood.de>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <cfloat>
-#include <cmath>
-
-#include <tqimage.h>
-#include <tqtextstream.h>
-#include <tqfile.h>
-
-#include <koColor.h>
-#include <kogradientmanager.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include "kis_gradient.h"
-
-#define PREVIEW_WIDTH 64
-#define PREVIEW_HEIGHT 64
-
-KisGradientSegment::RGBColorInterpolationStrategy *KisGradientSegment::RGBColorInterpolationStrategy::m_instance = 0;
-KisGradientSegment::HSVCWColorInterpolationStrategy *KisGradientSegment::HSVCWColorInterpolationStrategy::m_instance = 0;
-KisGradientSegment::HSVCCWColorInterpolationStrategy *KisGradientSegment::HSVCCWColorInterpolationStrategy::m_instance = 0;
-
-KisGradientSegment::LinearInterpolationStrategy *KisGradientSegment::LinearInterpolationStrategy::m_instance = 0;
-KisGradientSegment::CurvedInterpolationStrategy *KisGradientSegment::CurvedInterpolationStrategy::m_instance = 0;
-KisGradientSegment::SineInterpolationStrategy *KisGradientSegment::SineInterpolationStrategy::m_instance = 0;
-KisGradientSegment::SphereIncreasingInterpolationStrategy *KisGradientSegment::SphereIncreasingInterpolationStrategy::m_instance = 0;
-KisGradientSegment::SphereDecreasingInterpolationStrategy *KisGradientSegment::SphereDecreasingInterpolationStrategy::m_instance = 0;
-
-KisGradient::KisGradient(const TQString& file) : super(file)
-{
-}
-
-KisGradient::~KisGradient()
-{
-    for (uint i = 0; i < m_segments.count(); i++) {
-        delete m_segments[i];
-        m_segments[i] = 0;
-    }
-}
-
-bool KisGradient::load()
-{
-    return init();
-}
-
-bool KisGradient::save()
-{
-    return false;
-}
-
-TQImage KisGradient::img()
-{
-    return m_img;
-}
-
-bool KisGradient::init()
-{
-    KoGradientManager gradLoader;
-    KoGradient* grad = gradLoader.loadGradient(filename());
-
-    if( !grad )
-        return false;
-
-    m_segments.clear();
-
-    if( grad->colorStops.count() > 1 ) {
-        KoColorStop *colstop;
-        for(colstop = grad->colorStops.first(); colstop; colstop = grad->colorStops.next()) {
-            KoColorStop *colstopNext = grad->colorStops.next();
-
-            if(colstopNext) {
-                KoColor leftRgb((int)(colstop->color1 * 255 + 0.5), (int)(colstop->color2 * 255 + 0.5), (int)(colstop->color3 * 255 + 0.5));
-                KoColor rightRgb((int)(colstopNext->color1 * 255 + 0.5), (int)(colstopNext->color2 * 255 + 0.5), (int)(colstopNext->color3 * 255 + 0.5));
-
-                double midp = colstop->midpoint;
-                midp = colstop->offset + ((colstopNext->offset - colstop->offset) * midp);
-
-                Color leftColor(leftRgb.color(), colstop->opacity);
-                Color rightColor(rightRgb.color(), colstopNext->opacity);
-
-                KisGradientSegment *segment = new KisGradientSegment(colstop->interpolation, colstop->colorType, colstop->offset, midp, colstopNext->offset, leftColor, rightColor);
-                Q_CHECK_PTR(segment);
-
-                if ( !segment->isValid() ) {
-                    delete segment;
-                    return false;
-                }
-
-                m_segments.push_back(segment);
-                grad->colorStops.prev();
-            }
-            else {
-                grad->colorStops.prev();
-                break;
-            }
-        }
-    }
-    else
-        return false;
-
-    if (!m_segments.isEmpty()) {
-        m_img = generatePreview(PREVIEW_WIDTH, PREVIEW_HEIGHT);
-        setValid(true);
-        return true;
-    }
-    else {
-        return false;
-    }
-}
-
-void KisGradient::setImage(const TQImage& img)
-{
-    m_img = img;
-    m_img.detach();
-
-    setValid(true);
-}
-
-KisGradientSegment *KisGradient::segmentAt(double t) const
-{
-    Q_ASSERT(t >= 0 || t <= 1);
-    Q_ASSERT(!m_segments.empty());
-
-    for(TQValueVector<KisGradientSegment *>::const_iterator it = m_segments.begin(); it!= m_segments.end(); ++it)
-    {
-        if (t > (*it)->startOffset() - DBL_EPSILON && t < (*it)->endOffset() + DBL_EPSILON) {
-            return *it;
-        }
-    }
-
-    return 0;
-}
-
-void KisGradient::colorAt(double t, TQColor *color, TQ_UINT8 *opacity) const
-{
-    const KisGradientSegment *segment = segmentAt(t);
-    Q_ASSERT(segment != 0);
-
-    if (segment) {
-        Color col = segment->colorAt(t);
-        *color = col.color();
-        *opacity = static_cast<TQ_UINT8>(col.alpha() * OPACITY_OPAQUE + 0.5);
-    }
-}
-
-TQImage KisGradient::generatePreview(int width, int height) const
-{
-    TQImage img(width, height, 32);
-
-    for (int y = 0; y < img.height(); y++) {
-        for (int x = 0; x < img.width(); x++) {
-
-            int backgroundRed = 128 + 63 * ((x / 4 + y / 4) % 2);
-            int backgroundGreen = backgroundRed;
-            int backgroundBlue = backgroundRed;
-
-            TQColor color;
-            TQ_UINT8 opacity;
-            double t = static_cast<double>(x) / (img.width() - 1);
-
-            colorAt(t,  &color, &opacity);
-
-            double alpha = static_cast<double>(opacity) / OPACITY_OPAQUE;
-
-            int red = static_cast<int>((1 - alpha) * backgroundRed + alpha * color.red() + 0.5);
-            int green = static_cast<int>((1 - alpha) * backgroundGreen + alpha * color.green() + 0.5);
-            int blue = static_cast<int>((1 - alpha) * backgroundBlue + alpha * color.blue() + 0.5);
-
-            img.setPixel(x, y, tqRgb(red, green, blue));
-        }
-    }
-
-    return img;
-}
-
-KisGradientSegment::KisGradientSegment(int interpolationType, int colorInterpolationType, double startOffset, double middleOffset, double endOffset, const Color& startColor, const Color& endColor)
-{
-    m_interpolator = 0;
-
-    switch (interpolationType) {
-    case INTERP_LINEAR:
-        m_interpolator = LinearInterpolationStrategy::instance();
-        break;
-    case INTERP_CURVED:
-        m_interpolator = CurvedInterpolationStrategy::instance();
-        break;
-    case INTERP_SINE:
-        m_interpolator = SineInterpolationStrategy::instance();
-        break;
-    case INTERP_SPHERE_INCREASING:
-        m_interpolator = SphereIncreasingInterpolationStrategy::instance();
-        break;
-    case INTERP_SPHERE_DECREASING:
-        m_interpolator = SphereDecreasingInterpolationStrategy::instance();
-        break;
-    }
-
-    m_colorInterpolator = 0;
-
-    switch (colorInterpolationType) {
-    case COLOR_INTERP_RGB:
-        m_colorInterpolator = RGBColorInterpolationStrategy::instance();
-        break;
-    case COLOR_INTERP_HSV_CCW:
-        m_colorInterpolator = HSVCCWColorInterpolationStrategy::instance();
-        break;
-    case COLOR_INTERP_HSV_CW:
-        m_colorInterpolator = HSVCWColorInterpolationStrategy::instance();
-        break;
-    }
-
-    if (startOffset < DBL_EPSILON) {
-        m_startOffset = 0;
-    }
-    else
-    if (startOffset > 1 - DBL_EPSILON) {
-        m_startOffset = 1;
-    }
-    else {
-        m_startOffset = startOffset;
-    }
-
-    if (middleOffset < m_startOffset + DBL_EPSILON) {
-        m_middleOffset = m_startOffset;
-    }
-    else
-    if (middleOffset > 1 - DBL_EPSILON) {
-        m_middleOffset = 1;
-    }
-    else {
-        m_middleOffset = middleOffset;
-    }
-
-    if (endOffset < m_middleOffset + DBL_EPSILON) {
-        m_endOffset = m_middleOffset;
-    }
-    else
-    if (endOffset > 1 - DBL_EPSILON) {
-        m_endOffset = 1;
-    }
-    else {
-        m_endOffset = endOffset;
-    }
-
-    m_length = m_endOffset - m_startOffset;
-
-    if (m_length < DBL_EPSILON) {
-        m_middleT = 0.5;
-    }
-    else {
-        m_middleT = (m_middleOffset - m_startOffset) / m_length;
-    }
-
-    m_startColor = startColor;
-    m_endColor = endColor;
-}
-
-const Color& KisGradientSegment::startColor() const
-{
-    return m_startColor;
-}
-
-const Color& KisGradientSegment::endColor() const
-{
-    return m_endColor;
-}
-
-double KisGradientSegment::startOffset() const
-{
-    return m_startOffset;
-}
-
-double KisGradientSegment::middleOffset() const
-{
-    return m_middleOffset;
-}
-
-double KisGradientSegment::endOffset() const
-{
-    return m_endOffset;
-}
-
-void KisGradientSegment::setStartOffset(double t)
-{
-    m_startOffset = t;
-    m_length = m_endOffset - m_startOffset;
-
-    if (m_length < DBL_EPSILON) {
-        m_middleT = 0.5;
-    }
-    else {
-        m_middleT = (m_middleOffset - m_startOffset) / m_length;
-    }
-}
-void KisGradientSegment::setMiddleOffset(double t)
-{
-    m_middleOffset = t;
-
-    if (m_length < DBL_EPSILON) {
-        m_middleT = 0.5;
-    }
-    else {
-        m_middleT = (m_middleOffset - m_startOffset) / m_length;
-    }
-}
-
-void KisGradientSegment::setEndOffset(double t)
-{
-    m_endOffset = t;
-    m_length = m_endOffset - m_startOffset;
-
-    if (m_length < DBL_EPSILON) {
-        m_middleT = 0.5;
-    }
-    else {
-        m_middleT = (m_middleOffset - m_startOffset) / m_length;
-    }
-}
-
-int KisGradientSegment::interpolation() const
-{
-    return m_interpolator->type();
-}
-
-void KisGradientSegment::setInterpolation(int interpolationType)
-{
-    switch (interpolationType) {
-    case INTERP_LINEAR:
-        m_interpolator = LinearInterpolationStrategy::instance();
-        break;
-    case INTERP_CURVED:
-        m_interpolator = CurvedInterpolationStrategy::instance();
-        break;
-    case INTERP_SINE:
-        m_interpolator = SineInterpolationStrategy::instance();
-        break;
-    case INTERP_SPHERE_INCREASING:
-        m_interpolator = SphereIncreasingInterpolationStrategy::instance();
-        break;
-    case INTERP_SPHERE_DECREASING:
-        m_interpolator = SphereDecreasingInterpolationStrategy::instance();
-        break;
-    }
-}
-
-int KisGradientSegment::colorInterpolation() const
-{
-    return m_colorInterpolator->type();
-}
-
-void KisGradientSegment::setColorInterpolation(int colorInterpolationType)
-{
-    switch (colorInterpolationType) {
-    case COLOR_INTERP_RGB:
-        m_colorInterpolator = RGBColorInterpolationStrategy::instance();
-        break;
-    case COLOR_INTERP_HSV_CCW:
-        m_colorInterpolator = HSVCCWColorInterpolationStrategy::instance();
-        break;
-    case COLOR_INTERP_HSV_CW:
-        m_colorInterpolator = HSVCWColorInterpolationStrategy::instance();
-        break;
-    }
-}
-
-Color KisGradientSegment::colorAt(double t) const
-{
-    Q_ASSERT(t > m_startOffset - DBL_EPSILON && t < m_endOffset + DBL_EPSILON);
-
-    double segmentT;
-
-    if (m_length < DBL_EPSILON) {
-        segmentT = 0.5;
-    }
-    else {
-        segmentT = (t - m_startOffset) / m_length;
-    }
-
-    double colorT = m_interpolator->valueAt(segmentT, m_middleT);
-
-    Color color = m_colorInterpolator->colorAt(colorT, m_startColor, m_endColor);
-
-    return color;
-}
-
-bool KisGradientSegment::isValid() const
-{
-    if (m_interpolator == 0 || m_colorInterpolator ==0)
-        return false;
-    return true;
-}
-
-KisGradientSegment::RGBColorInterpolationStrategy *KisGradientSegment::RGBColorInterpolationStrategy::instance()
-{
-    if (m_instance == 0) {
-        m_instance = new RGBColorInterpolationStrategy();
-        Q_CHECK_PTR(m_instance);
-    }
-
-    return m_instance;
-}
-
-Color KisGradientSegment::RGBColorInterpolationStrategy::colorAt(double t, Color start, Color end) const
-{
-    int startRed = start.color().red();
-    int startGreen = start.color().green();
-    int startBlue = start.color().blue();
-    double startAlpha = start.alpha();
-    int red = static_cast<int>(startRed + t * (end.color().red() - startRed) + 0.5);
-    int green = static_cast<int>(startGreen + t * (end.color().green() - startGreen) + 0.5);
-    int blue = static_cast<int>(startBlue + t * (end.color().blue() - startBlue) + 0.5);
-    double alpha = startAlpha + t * (end.alpha() - startAlpha);
-
-    return Color(TQColor(red, green, blue), alpha);
-}
-
-KisGradientSegment::HSVCWColorInterpolationStrategy *KisGradientSegment::HSVCWColorInterpolationStrategy::instance()
-{
-    if (m_instance == 0) {
-        m_instance = new HSVCWColorInterpolationStrategy();
-        Q_CHECK_PTR(m_instance);
-    }
-
-    return m_instance;
-}
-
-Color KisGradientSegment::HSVCWColorInterpolationStrategy::colorAt(double t, Color start, Color end) const
-{
-    KoColor sc = KoColor(start.color());
-    KoColor ec = KoColor(end.color());
-    
-    int s = static_cast<int>(sc.S() + t * (ec.S() - sc.S()) + 0.5);
-    int v = static_cast<int>(sc.V() + t * (ec.V() - sc.V()) + 0.5);
-    int h;
-    
-    if (ec.H() < sc.H()) {
-        h = static_cast<int>(ec.H() + (1 - t) * (sc.H() - ec.H()) + 0.5);
-    }
-    else {
-        h = static_cast<int>(ec.H() + (1 - t) * (360 - ec.H() + sc.H()) + 0.5);
-        
-        if (h > 359) {
-            h -= 360;
-        }
-    }
-    
-    double alpha = start.alpha() + t * (end.alpha() - start.alpha());
-
-    return Color(KoColor(h, s, v, KoColor::csHSV).color(), alpha);
-}
-
-KisGradientSegment::HSVCCWColorInterpolationStrategy *KisGradientSegment::HSVCCWColorInterpolationStrategy::instance()
-{
-    if (m_instance == 0) {
-        m_instance = new HSVCCWColorInterpolationStrategy();
-        Q_CHECK_PTR(m_instance);
-    }
-
-    return m_instance;
-}
-
-Color KisGradientSegment::HSVCCWColorInterpolationStrategy::colorAt(double t, Color start, Color end) const
-{
-    KoColor sc = KoColor(start.color());
-    KoColor se = KoColor(end.color());
-
-    int s = static_cast<int>(sc.S() + t * (se.S() - sc.S()) + 0.5);
-    int v = static_cast<int>(sc.V() + t * (se.V() - sc.V()) + 0.5);
-    int h;
-
-    if (sc.H() < se.H()) {
-        h = static_cast<int>(sc.H() + t * (se.H() - sc.H()) + 0.5);
-    }
-    else {
-        h = static_cast<int>(sc.H() + t * (360 - sc.H() + se.H()) + 0.5);
-
-        if (h > 359) {
-            h -= 360;
-        }
-    }
-
-    double alpha = start.alpha() + t * (end.alpha() - start.alpha());
-
-    return Color(KoColor(h, s, v, KoColor::csHSV).color(), alpha);
-}
-
-KisGradientSegment::LinearInterpolationStrategy *KisGradientSegment::LinearInterpolationStrategy::instance()
-{
-    if (m_instance == 0) {
-        m_instance = new LinearInterpolationStrategy();
-        Q_CHECK_PTR(m_instance);
-    }
-
-    return m_instance;
-}
-
-double KisGradientSegment::LinearInterpolationStrategy::calcValueAt(double t, double middle)
-{
-    Q_ASSERT(t > -DBL_EPSILON && t < 1 + DBL_EPSILON);
-    Q_ASSERT(middle > -DBL_EPSILON && middle < 1 + DBL_EPSILON);
-
-    double value = 0;
-
-    if (t <= middle) {
-        if (middle < DBL_EPSILON) {
-            value = 0;
-        }
-        else {
-            value = (t / middle) * 0.5;
-        }
-    }
-    else {
-        if (middle > 1 - DBL_EPSILON) {
-            value = 1;
-        }
-        else {
-            value = ((t - middle) / (1 - middle)) * 0.5 + 0.5;
-        }
-    }
-
-    return value;
-}
-
-double KisGradientSegment::LinearInterpolationStrategy::valueAt(double t, double middle) const
-{
-    return calcValueAt(t, middle);
-}
-
-KisGradientSegment::CurvedInterpolationStrategy::CurvedInterpolationStrategy()
-{
-    m_logHalf = log(0.5);
-}
-
-KisGradientSegment::CurvedInterpolationStrategy *KisGradientSegment::CurvedInterpolationStrategy::instance()
-{
-    if (m_instance == 0) {
-        m_instance = new CurvedInterpolationStrategy();
-        Q_CHECK_PTR(m_instance);
-    }
-
-    return m_instance;
-}
-
-double KisGradientSegment::CurvedInterpolationStrategy::valueAt(double t, double middle) const
-{
-    Q_ASSERT(t > -DBL_EPSILON && t < 1 + DBL_EPSILON);
-    Q_ASSERT(middle > -DBL_EPSILON && middle < 1 + DBL_EPSILON);
-
-    double value = 0;
-
-    if (middle < DBL_EPSILON) {
-        middle = DBL_EPSILON;
-    }
-
-    value = pow(t, m_logHalf / log(middle));
-
-    return value;
-}
-
-KisGradientSegment::SineInterpolationStrategy *KisGradientSegment::SineInterpolationStrategy::instance()
-{
-    if (m_instance == 0) {
-        m_instance = new SineInterpolationStrategy();
-        Q_CHECK_PTR(m_instance);
-    }
-
-    return m_instance;
-}
-
-double KisGradientSegment::SineInterpolationStrategy::valueAt(double t, double middle) const
-{
-    double lt = LinearInterpolationStrategy::calcValueAt(t, middle);
-    double value = (sin(-M_PI_2 + M_PI * lt) + 1.0) / 2.0;
-
-    return value;
-}
-
-KisGradientSegment::SphereIncreasingInterpolationStrategy *KisGradientSegment::SphereIncreasingInterpolationStrategy::instance()
-{
-    if (m_instance == 0) {
-        m_instance = new SphereIncreasingInterpolationStrategy();
-        Q_CHECK_PTR(m_instance);
-    }
-
-    return m_instance;
-}
-
-double KisGradientSegment::SphereIncreasingInterpolationStrategy::valueAt(double t, double middle) const
-{
-    double lt = LinearInterpolationStrategy::calcValueAt(t, middle) - 1;
-    double value = sqrt(1 - lt * lt);
-
-    return value;
-}
-
-KisGradientSegment::SphereDecreasingInterpolationStrategy *KisGradientSegment::SphereDecreasingInterpolationStrategy::instance()
-{
-    if (m_instance == 0) {
-        m_instance = new SphereDecreasingInterpolationStrategy();
-        Q_CHECK_PTR(m_instance);
-    }
-
-    return m_instance;
-}
-
-double KisGradientSegment::SphereDecreasingInterpolationStrategy::valueAt(double t, double middle) const
-{
-    double lt = LinearInterpolationStrategy::calcValueAt(t, middle);
-    double value = 1 - sqrt(1 - lt * lt);
-
-    return value;
-}
-
-#include "kis_gradient.moc"
-
diff --git a/krita/core/kis_gradient.h b/krita/core/kis_gradient.h
deleted file mode 100644
index 50bc0fd8b..000000000
--- a/krita/core/kis_gradient.h
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- *  kis_gradient.h - part of Krayon
- *
- *  Copyright (c) 2000 Matthias Elter  <elter@kde.org>
- *                2004 Boudewijn Rempt <boud@valdyas.org>
- *                2004 Adrian Page <adrian@pagenet.plus.com>
- *                2004 Sven Langkamp <longamp@reallygood.de>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_GRADIENT_H
-#define KIS_GRADIENT_H
-
-#include <tqvaluevector.h>
-#include <tqcolor.h>
-
-#include <kio/job.h>
-
-#include "kis_resource.h"
-#include "kis_global.h"
-
-class TQImage;
-
-enum {
-    INTERP_LINEAR = 0,
-    INTERP_CURVED,
-    INTERP_SINE,
-    INTERP_SPHERE_INCREASING,
-    INTERP_SPHERE_DECREASING
-};
-
-enum {
-    COLOR_INTERP_RGB,
-    COLOR_INTERP_HSV_CCW,
-    COLOR_INTERP_HSV_CW
-};
-
-// TODO: Replace TQColor with KisColor
-class Color {
-    public:
-        Color() { m_alpha = 0; }
-        Color(const TQColor& color, double alpha) { m_color = color; m_alpha = alpha; }
-
-        const TQColor& color() const { return m_color; }
-        double alpha() const { return m_alpha; }
-
-    private:
-        TQColor m_color;
-        double m_alpha;
-};
-
-class KisGradientSegment {
-    public:
-        KisGradientSegment(int interpolationType, int colorInterpolationType, double startOffset, double middleOffset, double endOffset, const Color& startColor, const Color& endColor);
-
-        // startOffset <= t <= endOffset
-        Color colorAt(double t) const;
-
-        const Color& startColor() const;
-        const Color& endColor() const;
-
-        void setStartColor(const Color& color) { m_startColor = color; }
-        void setEndColor(const Color& color) { m_endColor = color; }
-
-        double startOffset() const;
-        double middleOffset() const;
-        double endOffset() const;
-
-        void setStartOffset(double t);
-        void setMiddleOffset(double t);
-        void setEndOffset(double t);
-
-        double length() { return m_length; }
-
-        int interpolation() const;
-        int colorInterpolation() const;
-
-        void setInterpolation(int interpolationType);
-        void setColorInterpolation(int colorInterpolationType);
-
-        bool isValid() const;
-    protected:
-
-        class ColorInterpolationStrategy {
-        public:
-            ColorInterpolationStrategy() {}
-            virtual ~ColorInterpolationStrategy() {}
-
-            virtual Color colorAt(double t, Color start, Color end) const = 0;
-            virtual int type() const = 0;
-        };
-
-        class RGBColorInterpolationStrategy : public ColorInterpolationStrategy {
-        public:
-            static RGBColorInterpolationStrategy *instance();
-
-            virtual Color colorAt(double t, Color start, Color end) const;
-            virtual int type() const { return COLOR_INTERP_RGB; }
-
-        private:
-            RGBColorInterpolationStrategy() {}
-
-            static RGBColorInterpolationStrategy *m_instance;
-        };
-
-        class HSVCWColorInterpolationStrategy : public ColorInterpolationStrategy {
-        public:
-            static HSVCWColorInterpolationStrategy *instance();
-
-            virtual Color colorAt(double t, Color start, Color end) const;
-            virtual int type() const { return COLOR_INTERP_HSV_CW; }
-        private:
-            HSVCWColorInterpolationStrategy() {}
-
-            static HSVCWColorInterpolationStrategy *m_instance;
-        };
-
-        class HSVCCWColorInterpolationStrategy : public ColorInterpolationStrategy {
-        public:
-            static HSVCCWColorInterpolationStrategy *instance();
-
-            virtual Color colorAt(double t, Color start, Color end) const;
-            virtual int type() const { return COLOR_INTERP_HSV_CCW; }
-        private:
-            HSVCCWColorInterpolationStrategy() {}
-
-            static HSVCCWColorInterpolationStrategy *m_instance;
-        };
-
-        class InterpolationStrategy {
-        public:
-            InterpolationStrategy() {}
-            virtual ~InterpolationStrategy() {}
-
-            virtual double valueAt(double t, double middle) const = 0;
-            virtual int type() const = 0;
-        };
-
-        class LinearInterpolationStrategy : public InterpolationStrategy {
-        public:
-            static LinearInterpolationStrategy *instance();
-
-            virtual double valueAt(double t, double middle) const;
-            virtual int type() const { return INTERP_LINEAR; }
-
-            // This does the actual calculation and is made
-            // static as an optimisation for the other
-            // strategies that need this for their own calculation.
-            static double calcValueAt(double t, double middle);
-
-        private:
-            LinearInterpolationStrategy() {}
-
-            static LinearInterpolationStrategy *m_instance;
-        };
-
-        class CurvedInterpolationStrategy : public InterpolationStrategy {
-        public:
-            static CurvedInterpolationStrategy *instance();
-
-            virtual double valueAt(double t, double middle) const;
-            virtual int type() const { return INTERP_CURVED; }
-        private:
-            CurvedInterpolationStrategy();
-
-            static CurvedInterpolationStrategy *m_instance;
-            double m_logHalf;
-        };
-
-        class SphereIncreasingInterpolationStrategy : public InterpolationStrategy {
-        public:
-            static SphereIncreasingInterpolationStrategy *instance();
-
-            virtual double valueAt(double t, double middle) const;
-            virtual int type() const { return INTERP_SPHERE_INCREASING; }
-        private:
-            SphereIncreasingInterpolationStrategy() {}
-
-            static SphereIncreasingInterpolationStrategy *m_instance;
-        };
-
-        class SphereDecreasingInterpolationStrategy : public InterpolationStrategy {
-        public:
-            static SphereDecreasingInterpolationStrategy *instance();
-
-            virtual double valueAt(double t, double middle) const;
-            virtual int type() const { return INTERP_SPHERE_DECREASING; }
-        private:
-            SphereDecreasingInterpolationStrategy() {}
-
-            static SphereDecreasingInterpolationStrategy *m_instance;
-        };
-
-        class SineInterpolationStrategy : public InterpolationStrategy {
-        public:
-            static SineInterpolationStrategy *instance();
-
-            virtual double valueAt(double t, double middle) const;
-            virtual int type() const { return INTERP_SINE; }
-        private:
-            SineInterpolationStrategy() {}
-
-            static SineInterpolationStrategy *m_instance;
-        };
-    private:
-        InterpolationStrategy *m_interpolator;
-        ColorInterpolationStrategy *m_colorInterpolator;
-
-        double m_startOffset;
-        double m_middleOffset;
-        double m_endOffset;
-        double m_length;
-        double m_middleT;
-
-        Color m_startColor;
-        Color m_endColor;
-};
-
-class KisGradient : public KisResource {
-    typedef KisResource super;
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    KisGradient(const TQString& file);
-    virtual ~KisGradient();
-
-    virtual bool load();
-    virtual bool save();
-    virtual TQImage img();
-    virtual TQImage generatePreview(int width, int height) const;
-
-    void colorAt(double t, TQColor *color, TQ_UINT8 *opacity) const;
-    
-    KisGradientSegment *segmentAt(double t) const;
-
-protected:
-    inline void pushSegment( KisGradientSegment* segment ) { m_segments.push_back(segment); };
-    void setImage(const TQImage& img);
-
-    TQValueVector<KisGradientSegment *> m_segments;
-
-private:
-    bool init();
-
-private:
-    TQByteArray m_data;
-    TQImage m_img;
-};
-
-#endif // KIS_GRADIENT_H
-
diff --git a/krita/core/kis_gradient_painter.cc b/krita/core/kis_gradient_painter.cc
deleted file mode 100644
index 2258d8991..000000000
--- a/krita/core/kis_gradient_painter.cc
+++ /dev/null
@@ -1,723 +0,0 @@
-/*
- *  Copyright (c) 2004 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <cfloat>
-
-#include "tqbrush.h"
-#include "tqcolor.h"
-#include "tqfontinfo.h"
-#include "tqfontmetrics.h"
-#include "tqpen.h"
-#include "tqregion.h"
-#include "tqwmatrix.h"
-#include <tqimage.h>
-#include <tqmap.h>
-#include <tqpainter.h>
-#include <tqpixmap.h>
-#include <tqpointarray.h>
-#include <tqrect.h>
-#include <tqstring.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include "kis_brush.h"
-#include "kis_debug_areas.h"
-#include "kis_gradient.h"
-#include "kis_image.h"
-#include "kis_iterators_pixel.h"
-#include "kis_layer.h"
-#include "kis_paint_device.h"
-#include "kis_pattern.h"
-#include "kis_rect.h"
-#include "kis_colorspace.h"
-#include "kis_types.h"
-#include "kis_vec.h"
-#include "kis_selection.h"
-#include "kis_gradient_painter.h"
-#include "kis_meta_registry.h"
-#include "kis_colorspace_factory_registry.h"
-
-namespace {
-
-    class GradientShapeStrategy {
-    public:
-        GradientShapeStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd);
-        virtual ~GradientShapeStrategy() {}
-
-        virtual double valueAt(double x, double y) const = 0;
-
-    protected:
-        KisPoint m_gradientVectorStart;
-        KisPoint m_gradientVectorEnd;
-    };
-
-    GradientShapeStrategy::GradientShapeStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd)
-        : m_gradientVectorStart(gradientVectorStart), m_gradientVectorEnd(gradientVectorEnd)
-    {
-    }
-
-
-    class LinearGradientStrategy : public GradientShapeStrategy {
-        typedef GradientShapeStrategy super;
-    public:
-        LinearGradientStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd);
-
-        virtual double valueAt(double x, double y) const;
-
-    protected:
-        double m_normalisedVectorX;
-        double m_normalisedVectorY;
-        double m_vectorLength;
-    };
-
-    LinearGradientStrategy::LinearGradientStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd)
-        : super(gradientVectorStart, gradientVectorEnd)
-    {
-        double dx = gradientVectorEnd.x() - gradientVectorStart.x();
-        double dy = gradientVectorEnd.y() - gradientVectorStart.y();
-
-        m_vectorLength = sqrt((dx * dx) + (dy * dy));
-
-        if (m_vectorLength < DBL_EPSILON) {
-            m_normalisedVectorX = 0;
-            m_normalisedVectorY = 0;
-        }
-        else {
-            m_normalisedVectorX = dx / m_vectorLength;
-            m_normalisedVectorY = dy / m_vectorLength;
-        }
-    }
-
-    double LinearGradientStrategy::valueAt(double x, double y) const
-    {
-        double vx = x - m_gradientVectorStart.x();
-        double vy = y - m_gradientVectorStart.y();
-
-        // Project the vector onto the normalised gradient vector.
-        double t = vx * m_normalisedVectorX + vy * m_normalisedVectorY;
-
-        if (m_vectorLength < DBL_EPSILON) {
-            t = 0;
-        }
-        else {
-            // Scale to 0 to 1 over the gradient vector length.
-            t /= m_vectorLength;
-        }
-
-        return t;
-    }
-
-
-    class BiLinearGradientStrategy : public LinearGradientStrategy {
-        typedef LinearGradientStrategy super;
-    public:
-        BiLinearGradientStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd);
-
-        virtual double valueAt(double x, double y) const;
-    };
-
-    BiLinearGradientStrategy::BiLinearGradientStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd)
-        : super(gradientVectorStart, gradientVectorEnd)
-    {
-    }
-
-    double BiLinearGradientStrategy::valueAt(double x, double y) const
-    {
-        double t = super::valueAt(x, y);
-
-        // Reflect
-        if (t < -DBL_EPSILON) {
-            t = -t;
-        }
-
-        return t;
-    }
-
-
-    class RadialGradientStrategy : public GradientShapeStrategy {
-        typedef GradientShapeStrategy super;
-    public:
-        RadialGradientStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd);
-
-        virtual double valueAt(double x, double y) const;
-
-    protected:
-        double m_radius;
-    };
-
-    RadialGradientStrategy::RadialGradientStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd)
-        : super(gradientVectorStart, gradientVectorEnd)
-    {
-        double dx = gradientVectorEnd.x() - gradientVectorStart.x();
-        double dy = gradientVectorEnd.y() - gradientVectorStart.y();
-
-        m_radius = sqrt((dx * dx) + (dy * dy));
-    }
-
-    double RadialGradientStrategy::valueAt(double x, double y) const
-    {
-        double dx = x - m_gradientVectorStart.x();
-        double dy = y - m_gradientVectorStart.y();
-
-        double distance = sqrt((dx * dx) + (dy * dy));
-
-        double t;
-
-        if (m_radius < DBL_EPSILON) {
-            t = 0;
-        }
-        else {
-            t = distance / m_radius;
-        }
-
-        return t;
-    }
-
-
-    class SquareGradientStrategy : public GradientShapeStrategy {
-        typedef GradientShapeStrategy super;
-    public:
-        SquareGradientStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd);
-
-        virtual double valueAt(double x, double y) const;
-
-    protected:
-        double m_normalisedVectorX;
-        double m_normalisedVectorY;
-        double m_vectorLength;
-    };
-
-    SquareGradientStrategy::SquareGradientStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd)
-        : super(gradientVectorStart, gradientVectorEnd)
-    {
-        double dx = gradientVectorEnd.x() - gradientVectorStart.x();
-        double dy = gradientVectorEnd.y() - gradientVectorStart.y();
-
-        m_vectorLength = sqrt((dx * dx) + (dy * dy));
-
-        if (m_vectorLength < DBL_EPSILON) {
-            m_normalisedVectorX = 0;
-            m_normalisedVectorY = 0;
-        }
-        else {
-            m_normalisedVectorX = dx / m_vectorLength;
-            m_normalisedVectorY = dy / m_vectorLength;
-        }
-    }
-
-    double SquareGradientStrategy::valueAt(double x, double y) const
-    {
-        double px = x - m_gradientVectorStart.x();
-        double py = y - m_gradientVectorStart.y();
-
-        double distance1 = 0;
-        double distance2 = 0;
-
-        if (m_vectorLength > DBL_EPSILON) {
-
-            // Point to line distance is:
-            // distance = ((l0.y() - l1.y()) * p.x() + (l1.x() - l0.x()) * p.y() + l0.x() * l1.y() - l1.x() * l0.y()) / m_vectorLength;
-            //
-            // Here l0 = (0, 0) and |l1 - l0| = 1
-
-            distance1 = -m_normalisedVectorY * px + m_normalisedVectorX * py;
-            distance1 = fabs(distance1);
-
-            // Rotate point by 90 degrees and get the distance to the perpendicular
-            distance2 = -m_normalisedVectorY * -py + m_normalisedVectorX * px;
-            distance2 = fabs(distance2);
-        }
-
-        double t = TQMAX(distance1, distance2) / m_vectorLength;
-
-        return t;
-    }
-
-
-    class ConicalGradientStrategy : public GradientShapeStrategy {
-        typedef GradientShapeStrategy super;
-    public:
-        ConicalGradientStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd);
-
-        virtual double valueAt(double x, double y) const;
-
-    protected:
-        double m_vectorAngle;
-    };
-
-    ConicalGradientStrategy::ConicalGradientStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd)
-        : super(gradientVectorStart, gradientVectorEnd)
-    {
-        double dx = gradientVectorEnd.x() - gradientVectorStart.x();
-        double dy = gradientVectorEnd.y() - gradientVectorStart.y();
-
-        // Get angle from 0 to 2 PI.
-        m_vectorAngle = atan2(dy, dx) + M_PI;
-    }
-
-    double ConicalGradientStrategy::valueAt(double x, double y) const
-    {
-        double px = x - m_gradientVectorStart.x();
-        double py = y - m_gradientVectorStart.y();
-
-        double angle = atan2(py, px) + M_PI;
-
-        angle -= m_vectorAngle;
-
-        if (angle < 0) {
-            angle += 2 * M_PI;
-        }
-
-        double t = angle / (2 * M_PI);
-
-        return t;
-    }
-
-
-    class ConicalSymetricGradientStrategy : public GradientShapeStrategy {
-        typedef GradientShapeStrategy super;
-    public:
-        ConicalSymetricGradientStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd);
-
-        virtual double valueAt(double x, double y) const;
-
-    protected:
-        double m_vectorAngle;
-    };
-
-    ConicalSymetricGradientStrategy::ConicalSymetricGradientStrategy(const KisPoint& gradientVectorStart, const KisPoint& gradientVectorEnd)
-        : super(gradientVectorStart, gradientVectorEnd)
-    {
-        double dx = gradientVectorEnd.x() - gradientVectorStart.x();
-        double dy = gradientVectorEnd.y() - gradientVectorStart.y();
-
-        // Get angle from 0 to 2 PI.
-        m_vectorAngle = atan2(dy, dx) + M_PI;
-    }
-
-    double ConicalSymetricGradientStrategy::valueAt(double x, double y) const
-    {
-        double px = x - m_gradientVectorStart.x();
-        double py = y - m_gradientVectorStart.y();
-
-        double angle = atan2(py, px) + M_PI;
-
-        angle -= m_vectorAngle;
-
-        if (angle < 0) {
-            angle += 2 * M_PI;
-        }
-
-        double t;
-
-        if (angle < M_PI) {
-            t = angle / M_PI;
-        }
-        else {
-            t = 1 - ((angle - M_PI) / M_PI);
-        }
-
-        return t;
-    }
-
-
-    class GradientRepeatStrategy {
-    public:
-        GradientRepeatStrategy() {}
-        virtual ~GradientRepeatStrategy() {}
-
-        virtual double valueAt(double t) const = 0;
-    };
-
-
-    class GradientRepeatNoneStrategy : public GradientRepeatStrategy {
-    public:
-        static GradientRepeatNoneStrategy *instance();
-
-        virtual double valueAt(double t) const;
-
-    private:
-        GradientRepeatNoneStrategy() {}
-
-        static GradientRepeatNoneStrategy *m_instance;
-    };
-
-    GradientRepeatNoneStrategy *GradientRepeatNoneStrategy::m_instance = 0;
-
-    GradientRepeatNoneStrategy *GradientRepeatNoneStrategy::instance()
-    {
-        if (m_instance == 0) {
-            m_instance = new GradientRepeatNoneStrategy();
-            Q_CHECK_PTR(m_instance);
-        }
-
-        return m_instance;
-    }
-
-    // Output is clamped to 0 to 1.
-    double GradientRepeatNoneStrategy::valueAt(double t) const
-    {
-        double value = t;
-
-        if (t < DBL_EPSILON) {
-            value = 0;
-        }
-        else
-            if (t > 1 - DBL_EPSILON) {
-                value = 1;
-            }
-
-        return value;
-    }
-
-
-    class GradientRepeatForwardsStrategy : public GradientRepeatStrategy {
-    public:
-        static GradientRepeatForwardsStrategy *instance();
-
-        virtual double valueAt(double t) const;
-
-    private:
-        GradientRepeatForwardsStrategy() {}
-
-        static GradientRepeatForwardsStrategy *m_instance;
-    };
-
-    GradientRepeatForwardsStrategy *GradientRepeatForwardsStrategy::m_instance = 0;
-
-    GradientRepeatForwardsStrategy *GradientRepeatForwardsStrategy::instance()
-    {
-        if (m_instance == 0) {
-            m_instance = new GradientRepeatForwardsStrategy();
-            Q_CHECK_PTR(m_instance);
-        }
-
-        return m_instance;
-    }
-
-    // Output is 0 to 1, 0 to 1, 0 to 1...
-    double GradientRepeatForwardsStrategy::valueAt(double t) const
-    {
-        int i = static_cast<int>(t);
-
-        if (t < DBL_EPSILON) {
-            i--;
-        }
-
-        double value = t - i;
-
-        return value;
-    }
-
-
-    class GradientRepeatAlternateStrategy : public GradientRepeatStrategy {
-    public:
-        static GradientRepeatAlternateStrategy *instance();
-
-        virtual double valueAt(double t) const;
-
-    private:
-        GradientRepeatAlternateStrategy() {}
-
-        static GradientRepeatAlternateStrategy *m_instance;
-    };
-
-    GradientRepeatAlternateStrategy *GradientRepeatAlternateStrategy::m_instance = 0;
-
-    GradientRepeatAlternateStrategy *GradientRepeatAlternateStrategy::instance()
-    {
-        if (m_instance == 0) {
-            m_instance = new GradientRepeatAlternateStrategy();
-            Q_CHECK_PTR(m_instance);
-        }
-
-        return m_instance;
-    }
-
-    // Output is 0 to 1, 1 to 0, 0 to 1, 1 to 0...
-    double GradientRepeatAlternateStrategy::valueAt(double t) const
-    {
-        if (t < 0) {
-            t = -t;
-        }
-
-        int i = static_cast<int>(t);
-
-                double value = t - i;
-
-        if (i % 2 == 1) {
-            value = 1 - value;
-        }
-
-        return value;
-    }
-}
-
-KisGradientPainter::KisGradientPainter()
-    : super()
-{
-    m_gradient = 0;
-}
-
-KisGradientPainter::KisGradientPainter(KisPaintDeviceSP device) : super(device), m_gradient(0)
-{
-}
-
-bool KisGradientPainter::paintGradient(const KisPoint& gradientVectorStart,
-                       const KisPoint& gradientVectorEnd,
-                       enumGradientShape tqshape,
-                       enumGradientRepeat repeat,
-                       double antiAliasThreshold,
-                       bool reverseGradient,
-                       TQ_INT32 startx,
-                       TQ_INT32 starty,
-                       TQ_INT32 width,
-                       TQ_INT32 height)
-{
-    m_cancelRequested = false;
-
-    if (!m_gradient) return false;
-
-    GradientShapeStrategy *tqshapeStrategy = 0;
-
-    switch (tqshape) {
-    case GradientShapeLinear:
-        tqshapeStrategy = new LinearGradientStrategy(gradientVectorStart, gradientVectorEnd);
-        break;
-    case GradientShapeBiLinear:
-        tqshapeStrategy = new BiLinearGradientStrategy(gradientVectorStart, gradientVectorEnd);
-        break;
-    case GradientShapeRadial:
-        tqshapeStrategy = new RadialGradientStrategy(gradientVectorStart, gradientVectorEnd);
-        break;
-    case GradientShapeSquare:
-        tqshapeStrategy = new SquareGradientStrategy(gradientVectorStart, gradientVectorEnd);
-        break;
-    case GradientShapeConical:
-        tqshapeStrategy = new ConicalGradientStrategy(gradientVectorStart, gradientVectorEnd);
-        break;
-    case GradientShapeConicalSymetric:
-        tqshapeStrategy = new ConicalSymetricGradientStrategy(gradientVectorStart, gradientVectorEnd);
-        break;
-    }
-    Q_CHECK_PTR(tqshapeStrategy);
-
-    GradientRepeatStrategy *repeatStrategy = 0;
-
-    switch (repeat) {
-    case GradientRepeatNone:
-        repeatStrategy = GradientRepeatNoneStrategy::instance();
-        break;
-    case GradientRepeatForwards:
-        repeatStrategy = GradientRepeatForwardsStrategy::instance();
-        break;
-    case GradientRepeatAlternate:
-        repeatStrategy = GradientRepeatAlternateStrategy::instance();
-        break;
-    }
-    Q_ASSERT(repeatStrategy != 0);
-
-
-    //If the device has a selection only iterate over that selection
-    TQRect r;
-    if( m_device->hasSelection() ) {
-        r = m_device->selection()->selectedExactRect();
-        startx = r.x();
-        starty = r.y();
-        width = r.width();
-        height = r.height();
-    }
-
-    TQ_INT32 endx = startx + width - 1;
-    TQ_INT32 endy = starty + height - 1;
-
-    TQImage layer (width, height, 32);
-    layer.setAlphaBuffer(true);
-
-    int pixelsProcessed = 0;
-    int lastProgressPercent = 0;
-
-    emit notifyProgressStage(i18n("Rendering gradient..."), 0);
-
-    int totalPixels = width * height;
-
-    if (antiAliasThreshold < 1 - DBL_EPSILON) {
-        totalPixels *= 2;
-    }
-
-    for (int y = starty; y <= endy; y++) {
-        for (int x = startx; x <= endx; x++) {
-
-            double t = tqshapeStrategy->valueAt( x, y);
-            t = repeatStrategy->valueAt(t);
-
-            if (reverseGradient) {
-                t = 1 - t;
-            }
-
-            TQColor color;
-            TQ_UINT8 opacity;
-
-            m_gradient->colorAt(t, &color, &opacity);
-
-            layer.setPixel(x - startx, y - starty,
-                           tqRgba(color.red(), color.green(), color.blue(), opacity));
-
-            pixelsProcessed++;
-
-            int progressPercent = (pixelsProcessed * 100) / totalPixels;
-
-            if (progressPercent > lastProgressPercent) {
-                emit notifyProgress(progressPercent);
-                lastProgressPercent = progressPercent;
-
-                if (m_cancelRequested) {
-                    break;
-                }
-            }
-            if (m_cancelRequested) {
-                break;
-            }
-        }
-    }
-
-    if (!m_cancelRequested && antiAliasThreshold < 1 - DBL_EPSILON) {
-
-        TQColor color;
-        emit notifyProgressStage(i18n("Anti-aliasing gradient..."), lastProgressPercent);
-        TQ_UINT8 * layerPointer = layer.bits();
-        for (int y = starty; y <= endy; y++) {
-            for (int x = startx; x <= endx; x++) {
-
-                double maxDistance = 0;
-
-                TQ_UINT8 redThis = layerPointer[2];
-                TQ_UINT8 greenThis = layerPointer[1];
-                TQ_UINT8 blueThis = layerPointer[0];
-                TQ_UINT8 thisPixelOpacity = layerPointer[3];
-
-                for (int yOffset = -1; yOffset < 2; yOffset++) {
-                    for (int xOffset = -1; xOffset < 2; xOffset++) {
-
-                        if (xOffset != 0 || yOffset != 0) {
-                            int sampleX = x + xOffset;
-                            int sampleY = y + yOffset;
-
-                            if (sampleX >= startx && sampleX <= endx && sampleY >= starty && sampleY <= endy) {
-                                uint x = sampleX - startx;
-                                uint y = sampleY - starty;
-                                TQ_UINT8 * pixelPos = layer.bits() + (y * width * 4) + (x * 4);
-                                TQ_UINT8 red = *(pixelPos +2);
-                                TQ_UINT8 green = *(pixelPos + 1);
-                                TQ_UINT8 blue = *pixelPos;
-                                TQ_UINT8 opacity = *(pixelPos + 3);
-
-                                double dRed = (red * opacity - redThis * thisPixelOpacity) / 65535.0;
-                                double dGreen = (green * opacity - greenThis * thisPixelOpacity) / 65535.0;
-                                double dBlue = (blue * opacity - blueThis * thisPixelOpacity) / 65535.0;
-
-                                #define SQRT_3 1.7320508
-
-                                double distance =/* sqrt(*/dRed * dRed + dGreen * dGreen + dBlue * dBlue/*) / SQRT_3*/;
-
-                                if (distance > maxDistance) {
-                                    maxDistance = distance;
-                                }
-                            }
-                        }
-                    }
-                }
-
-                if (maxDistance > 3.*antiAliasThreshold*antiAliasThreshold) {
-                    const int numSamples = 4;
-
-                    int totalRed = 0;
-                    int totalGreen = 0;
-                    int totalBlue = 0;
-                    int totalOpacity = 0;
-
-                    for (int ySample = 0; ySample < numSamples; ySample++) {
-                        for (int xSample = 0; xSample < numSamples; xSample++) {
-
-                            double sampleWidth = 1.0 / numSamples;
-
-                            double sampleX = x - 0.5 + (sampleWidth / 2) + xSample * sampleWidth;
-                            double sampleY = y - 0.5 + (sampleWidth / 2) + ySample * sampleWidth;
-
-                            double t = tqshapeStrategy->valueAt(sampleX, sampleY);
-                            t = repeatStrategy->valueAt(t);
-
-                            if (reverseGradient) {
-                                t = 1 - t;
-                            }
-
-                            TQ_UINT8 opacity;
-
-                            m_gradient->colorAt(t, &color, &opacity);
-
-                            totalRed += color.red();
-                            totalGreen += color.green();
-                            totalBlue += color.blue();
-                            totalOpacity += opacity;
-                        }
-                    }
-
-                    int red = totalRed / (numSamples * numSamples);
-                    int green = totalGreen / (numSamples * numSamples);
-                    int blue = totalBlue / (numSamples * numSamples);
-                    int opacity = totalOpacity / (numSamples * numSamples);
-
-                    layer.setPixel(x - startx, y - starty, tqRgba(red, green, blue, opacity));
-                }
-
-                pixelsProcessed++;
-
-                int progressPercent = (pixelsProcessed * 100) / totalPixels;
-
-                if (progressPercent > lastProgressPercent) {
-                    emit notifyProgress(progressPercent);
-                    lastProgressPercent = progressPercent;
-
-                    if (m_cancelRequested) {
-                        break;
-                    }
-                }
-                layerPointer += 4;
-            }
-
-            if (m_cancelRequested) {
-                break;
-            }
-        }
-    }
-
-    if (!m_cancelRequested) {
-        kdDebug() << "Have we got a selection? " << m_device->hasSelection() << endl;
-        KisPaintDeviceSP dev = new KisPaintDevice(KisMetaRegistry::instance()->csRegistry()->getRGB8(), "temporary device for gradient");
-        dev->writeBytes(layer.bits(), startx, starty, width, height);
-        bltSelection(startx, starty, m_compositeOp, dev, m_opacity, startx, starty, width, height);
-    }
-    delete tqshapeStrategy;
-
-    emit notifyProgressDone();
-
-    return !m_cancelRequested;
-}
diff --git a/krita/core/kis_gradient_painter.h b/krita/core/kis_gradient_painter.h
deleted file mode 100644
index fc31b117a..000000000
--- a/krita/core/kis_gradient_painter.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- *  Copyright (c) 2004 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_GRADIENT_PAINTER_H_
-#define KIS_GRADIENT_PAINTER_H_
-
-#include <kcommand.h>
-
-#include "kis_global.h"
-#include "kis_types.h"
-#include "kis_point.h"
-#include "kis_painter.h"
-#include <koffice_export.h>
-
-class KisGradient;
-
-
-// XXX: Need to set dirtyRect in KisPainter
-class KRITACORE_EXPORT KisGradientPainter : public KisPainter
-{
-
-    typedef KisPainter super;
-
-public:
-
-        KisGradientPainter();
-        KisGradientPainter(KisPaintDeviceSP device);
-
-
-    enum enumGradientShape {
-        GradientShapeLinear,
-        GradientShapeBiLinear,
-        GradientShapeRadial,
-        GradientShapeSquare,
-        GradientShapeConical,
-        GradientShapeConicalSymetric
-    };
-
-    enum enumGradientRepeat {
-        GradientRepeatNone,
-        GradientRepeatForwards,
-        GradientRepeatAlternate
-    };
-
-    void setGradient(KisGradient& gradient) { m_gradient = &gradient; }
-    void setGradient(KisGradient* gradient) { m_gradient = gradient; }
-
-    /**
-     * Paint a gradient in the rect between startx, starty, width and height.
-     * XXX: What does the returned bool mean?
-     * XXX: Make cs-independent
-     */
-    bool paintGradient(const KisPoint& gradientVectorStart,
-               const KisPoint& gradientVectorEnd,
-               enumGradientShape tqshape,
-               enumGradientRepeat repeat,
-               double antiAliasThreshold,
-               bool reverseGradient,
-               TQ_INT32 startx,
-               TQ_INT32 starty,
-               TQ_INT32 width,
-               TQ_INT32 height);
-
-
-private:
-    KisGradient *m_gradient;
-
-
-};
-#endif //KIS_GRADIENT_PAINTER_H_
diff --git a/krita/core/kis_group_layer.cc b/krita/core/kis_group_layer.cc
deleted file mode 100644
index a3a353397..000000000
--- a/krita/core/kis_group_layer.cc
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-
-#include <kdebug.h>
-#include <kglobal.h>
-#include <tqimage.h>
-#include <tqdatetime.h>
-
-#include "kis_types.h"
-#include "kis_layer.h"
-#include "kis_group_layer.h"
-#include "kis_layer_visitor.h"
-#include "kis_debug_areas.h"
-#include "kis_image.h"
-#include "kis_paint_device.h"
-#include "kis_merge_visitor.h"
-#include "kis_fill_painter.h"
-
-KisGroupLayer::KisGroupLayer(KisImage *img, const TQString &name, TQ_UINT8 opacity) :
-    super(img, name, opacity),
-    m_x(0),
-    m_y(0)
-{
-    m_projection = new KisPaintDevice(this, img->colorSpace(), name.latin1());
-}
-
-KisGroupLayer::KisGroupLayer(const KisGroupLayer &rhs) :
-    super(rhs),
-    m_x(rhs.m_x),
-    m_y(rhs.m_y)
-{
-    for(vKisLayerSP_cit it = rhs.m_layers.begin(); it != rhs.m_layers.end(); ++it)
-    {
-        this->addLayer(it->data()->clone(), 0);
-    }
-    m_projection = new KisPaintDevice(*rhs.m_projection.data());
-    m_projection->setParentLayer(this);
-}
-
-KisLayerSP KisGroupLayer::clone() const
-{
-    return new KisGroupLayer(*this);
-}
-
-KisGroupLayer::~KisGroupLayer()
-{
-    m_layers.clear();
-}
-
-
-void KisGroupLayer::setDirty(bool propagate)
-{
-    KisLayer::setDirty(propagate);
-    if (propagate) emit (sigDirty(m_dirtyRect));
-}
-
-void KisGroupLayer::setDirty(const TQRect & rc, bool propagate)
-{
-    KisLayer::setDirty(rc, propagate);
-    if (propagate) emit sigDirty(rc);
-}
-
-void KisGroupLayer::resetProjection(KisPaintDevice* to)
-{
-    if (to)
-        m_projection = new KisPaintDevice(*to); /// XXX ### look into Copy on Write here (CoW)
-    else
-        m_projection = new KisPaintDevice(this, image()->colorSpace(), name().latin1());
-}
-
-bool KisGroupLayer::paintLayerInducesProjectionOptimization(KisPaintLayer* l) {
-    return l && l->paintDevice()->colorSpace() == m_image->colorSpace() && l->visible()
-             && l->opacity() == OPACITY_OPAQUE && !l->temporaryTarget() && !l->hasMask();
-}
-
-KisPaintDeviceSP KisGroupLayer::projection(const TQRect & rect)
-{
-    // We don't have a tqparent, and we've got only one child: abuse the child's
-    // paint device as the projection if the child is visible and 100% opaque
-    if (tqparent() == 0 && childCount() == 1) {
-        KisPaintLayerSP l = dynamic_cast<KisPaintLayer*>(firstChild().data());
-        if (paintLayerInducesProjectionOptimization(l)) {
-            l->setClean(rect);
-            setClean(rect);
-            return l->paintDevice();
-        }
-    }
-    // No need for updates, we're clean
-    if (!dirty()) {
-        return m_projection;
-    }
-    // No need for updates -- the desired area wasn't dirty
-    if (!rect.intersects(m_dirtyRect)) {
-        return m_projection;
-    }
-
-
-    // Okay, we need to update the intersection between
-    // what's dirty and what's asked us to be updated.
-    // XXX Nooo, that doesn't work, since the call to setClean following this, is actually:
-    // m_dirtyRect = TQRect(); So the non-intersecting part gets brilliantly lost otherwise.
-    const TQRect rc = m_dirtyRect;//rect.intersect(m_dirtyRect);
-
-    updateProjection(rc);
-    setClean(rect);
-
-    return m_projection;
-}
-
-uint KisGroupLayer::childCount() const
-{
-    return m_layers.count();
-}
-
-KisLayerSP KisGroupLayer::firstChild() const
-{
-    return at(0);
-}
-
-KisLayerSP KisGroupLayer::lastChild() const
-{
-    return at(childCount() - 1);
-}
-
-KisLayerSP KisGroupLayer::at(int index) const
-{
-    if (childCount() && index >= 0 && kClamp(uint(index), uint(0), childCount() - 1) == uint(index))
-        return m_layers.at(reverseIndex(index));
-    return 0;
-}
-
-int KisGroupLayer::index(KisLayerSP layer) const
-{
-    if (layer->tqparent().data() == this)
-        return layer->index();
-    return -1;
-}
-
-void KisGroupLayer::setIndex(KisLayerSP layer, int index)
-{
-    if (layer->tqparent().data() != this)
-        return;
-    //TODO optimize
-    removeLayer(layer);
-    addLayer(layer, index);
-}
-
-bool KisGroupLayer::addLayer(KisLayerSP newLayer, int x)
-{
-    if (x < 0 || kClamp(uint(x), uint(0), childCount()) != uint(x) ||
-        newLayer->tqparent() || m_layers.tqcontains(newLayer))
-    {
-        kdWarning() << "invalid input to KisGroupLayer::addLayer(KisLayerSP newLayer, int x)!" << endl;
-        return false;
-    }
-    uint index(x);
-    if (index == 0)
-        m_layers.append(newLayer);
-    else
-        m_layers.insert(m_layers.begin() + reverseIndex(index) + 1, newLayer);
-    for (uint i = childCount() - 1; i > index; i--)
-        at(i)->m_index++;
-    newLayer->m_parent = this;
-    newLayer->m_index = index;
-    newLayer->setImage(image());
-    newLayer->setDirty(newLayer->extent());
-    setDirty();
-    return true;
-}
-
-bool KisGroupLayer::addLayer(KisLayerSP newLayer, KisLayerSP aboveThis)
-{
-    if (aboveThis && aboveThis->tqparent().data() != this)
-    {
-        kdWarning() << "invalid input to KisGroupLayer::addLayer(KisLayerSP newLayer, KisLayerSP aboveThis)!" << endl;
-        return false;
-    }
-    return addLayer(newLayer, aboveThis ? aboveThis->index() : childCount());
-}
-
-bool KisGroupLayer::removeLayer(int x)
-{
-    if (x >= 0 && kClamp(uint(x), uint(0), childCount() - 1) == uint(x))
-    {
-        uint index(x);
-        for (uint i = childCount() - 1; i > index; i--)
-            at(i)->m_index--;
-        KisLayerSP removedLayer = at(index);
-
-        removedLayer->m_parent = 0;
-        removedLayer->m_index = -1;
-        m_layers.erase(m_layers.begin() + reverseIndex(index));
-        setDirty(removedLayer->extent());
-        if (childCount() < 1) {
-            // No tqchildren, nothing to show for it.
-            m_projection->clear();
-            setDirty();
-        }
-        return true;
-    }
-    kdWarning() << "invalid input to KisGroupLayer::removeLayer()!" << endl;
-    return false;
-}
-
-bool KisGroupLayer::removeLayer(KisLayerSP layer)
-{
-    if (layer->tqparent().data() != this)
-    {
-        kdWarning() << "invalid input to KisGroupLayer::removeLayer()!" << endl;
-        return false;
-    }
-
-    return removeLayer(layer->index());
-}
-
-void KisGroupLayer::setImage(KisImage *image)
-{
-    super::setImage(image);
-    for (vKisLayerSP_it it = m_layers.begin(); it != m_layers.end(); ++it)
-    {
-        (*it)->setImage(image);
-    }
-}
-
-TQRect KisGroupLayer::extent() const
-{
-    TQRect groupExtent;
-
-    for (vKisLayerSP_cit it = m_layers.begin(); it != m_layers.end(); ++it)
-    {
-        groupExtent |= (*it)->extent();
-    }
-
-    return groupExtent;
-}
-
-TQRect KisGroupLayer::exactBounds() const
-{
-    TQRect groupExactBounds;
-
-    for (vKisLayerSP_cit it = m_layers.begin(); it != m_layers.end(); ++it)
-    {
-        groupExactBounds |= (*it)->exactBounds();
-    }
-
-    return groupExactBounds;
-}
-
-TQ_INT32 KisGroupLayer::x() const
-{
-    return m_x;
-}
-
-void KisGroupLayer::setX(TQ_INT32 x)
-{
-    TQ_INT32 delta = x - m_x;
-
-    for (vKisLayerSP_cit it = m_layers.begin(); it != m_layers.end(); ++it)
-    {
-        KisLayerSP layer = *it;
-        layer->setX(layer->x() + delta);
-    }
-    m_x = x;
-}
-
-TQ_INT32 KisGroupLayer::y() const
-{
-    return m_y;
-}
-
-void KisGroupLayer::setY(TQ_INT32 y)
-{
-    TQ_INT32 delta = y - m_y;
-
-    for (vKisLayerSP_cit it = m_layers.begin(); it != m_layers.end(); ++it)
-    {
-        KisLayerSP layer = *it;
-        layer->setY(layer->y() + delta);
-    }
-
-    m_y = y;
-}
-
-TQImage KisGroupLayer::createThumbnail(TQ_INT32 w, TQ_INT32 h)
-{
-    return m_projection->createThumbnail(w, h);
-}
-
-void KisGroupLayer::updateProjection(const TQRect & rc)
-{
-    if (!m_dirtyRect.isValid()) return;
-
-    // Get the first layer in this group to start compositing with
-    KisLayerSP child = lastChild();
-
-    // No child -- clear the projection. Without tqchildren, a group layer is empty.
-    if (!child) m_projection->clear();
-
-    KisLayerSP startWith = 0;
-    KisAdjustmentLayerSP adjLayer = 0;
-    KisLayerSP tmpPaintLayer = 0;
-
-    // If this is the rootlayer, don't do anything with adj. layers that are below the
-    // first paintlayer
-    bool gotPaintLayer = (tqparent() != 0);
-
-    // Look through all the child layers, searching for the first dirty layer
-    // if it's found, and if we have found an adj. layer before the the dirty layer,
-    // composite from the first adjustment layer searching back from the first dirty layer
-    while (child) {
-        KisAdjustmentLayerSP tmpAdjLayer = dynamic_cast<KisAdjustmentLayer*>(child.data());
-        if (tmpAdjLayer) {
-            if (gotPaintLayer) {
-                // If this adjustment layer is dirty, start compositing with the
-                // previous layer, if there's one.
-                if (tmpAdjLayer->dirty(rc) && adjLayer != 0 && adjLayer->visible()) {
-                    startWith = adjLayer->prevSibling();
-                    break;
-                }
-                else if (tmpAdjLayer->visible() && !tmpAdjLayer->dirty(rc)) {
-                    // This is the first adj. layer that is not dirty -- the perfect starting point
-                    adjLayer = tmpAdjLayer;
-                }
-                else {
-                    startWith = tmpPaintLayer;
-                }
-            }
-        }
-        else {
-            tmpPaintLayer = child;
-            gotPaintLayer = true;
-            // A non-adjustmentlayer that's dirty; if there's an adjustmentlayer
-            // with a cache, we'll start from there.
-            if (child->dirty(rc)) {
-                if (adjLayer != 0 && adjLayer->visible()) {
-                    // the first layer on top of the adj. layer
-                    startWith = adjLayer->prevSibling();
-                }
-                else {
-                    startWith = child;
-                }
-                // break here: if there's no adj layer, we'll start with the layer->lastChild
-                break;
-            }
-        }
-        child = child->prevSibling();
-    }
-
-    if (adjLayer != 0 && startWith == 0 && gotPaintLayer && adjLayer->prevSibling()) {
-        startWith = adjLayer->prevSibling();
-    }
-
-    // No adj layer -- all layers inside the group must be recomposited
-    if (adjLayer == 0) {
-        startWith = lastChild();
-    }
-
-    if (startWith == 0) {
-        return;
-    }
-
-    bool first = true; // The first layer in a stack needs special compositing
-
-    // Fill the projection either with the cached data, or erase it.
-    KisFillPainter gc(m_projection);
-    if (adjLayer != 0) {
-        gc.bitBlt(rc.left(), rc.top(),
-                  COMPOSITE_COPY, adjLayer->cachedPaintDevice(), OPACITY_OPAQUE,
-                  rc.left(), rc.top(), rc.width(), rc.height());
-        first = false;
-    }
-    else {
-        gc.eraseRect(rc);
-        first = true;
-    }
-    gc.end();
-
-    KisMergeVisitor visitor(m_projection, rc);
-
-    child = startWith;
-
-    while(child)
-    {
-        if(first)
-        {
-            // Copy the lowest layer rather than compositing it with the background
-            // or an empty image. This means the layer's composite op is ignored,
-            // which is consistent with Photoshop and gimp.
-            const KisCompositeOp cop = child->compositeOp();
-            const bool block = child->signalsBlocked();
-            child->blockSignals(true);
-            // Composite op copy doesn't take a tqmask/selection into account, so we need
-            // to make a difference between a paintlayer with a tqmask, and one without
-            KisPaintLayer* l = dynamic_cast<KisPaintLayer*>(child.data());
-            if (l && l->hasMask())
-                child->m_compositeOp = COMPOSITE_OVER;
-            else
-                child->m_compositeOp = COMPOSITE_COPY;
-            child->blockSignals(block);
-            child->accept(visitor);
-            child->blockSignals(true);
-            child->m_compositeOp = cop;
-            child->blockSignals(block);
-            first = false;
-        }
-        else
-            child->accept(visitor);
-
-        child = child->prevSibling();
-    }
-}
-
-#include "kis_group_layer.moc"
diff --git a/krita/core/kis_group_layer.h b/krita/core/kis_group_layer.h
deleted file mode 100644
index 3a2e042ad..000000000
--- a/krita/core/kis_group_layer.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-#ifndef KIS_GROUP_LAYER_H_
-#define KIS_GROUP_LAYER_H_
-
-#include <ksharedptr.h>
-
-#include "kis_layer.h"
-#include "kis_types.h"
-
-#include "kis_paint_layer.h"
-
-class KisMergeVisitor;
-
-/**
- * A KisLayer that bundles child layers into a single layer.
- * The top layer is firstChild(), with index 0; the bottommost lastChild() with index childCount() - 1.
- * KisLayer::nextSibling() moves towards higher indices, from the top to the bottom layer; prevSibling() the reverse.
- * (Implementation detail: internally, the indices are reversed, for speed.)
- **/
-class KisGroupLayer : public KisLayer {
-    typedef KisLayer super;
-
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    KisGroupLayer(KisImage *img, const TQString &name, TQ_UINT8 opacity);
-    KisGroupLayer(const KisGroupLayer& rhs);
-    virtual ~KisGroupLayer();
-
-    virtual KisLayerSP clone() const;
-public:
-
-    /**
-     * Set the entire layer extent dirty; this percolates up to tqparent layers all the
-     * way to the root layer.
-     */
-    virtual void setDirty(bool propagate = true);
-
-    /**
-     * Add the given rect to the set of dirty rects for this layer;
-     * this percolates up to tqparent layers all the way to the root
-     * layer.
-     */
-    virtual void setDirty(const TQRect & rect, bool propagate = true);
-
-    virtual void activate() {};
-
-    virtual void deactivate() {};
-
-    virtual TQ_INT32 x() const;
-    virtual void setX(TQ_INT32);
-
-    virtual TQ_INT32 y() const;
-    virtual void setY(TQ_INT32);
-
-    // Sets this layer and all its descendants' owner image to the given image.
-    virtual void setImage(KisImage *image);
-
-    virtual TQRect extent() const;
-    virtual TQRect exactBounds() const;
-
-    virtual bool accept(KisLayerVisitor &v)
-        {
-//            kdDebug(41001) << "GROUP\t\t" << name()
-//                    << " dirty: " << dirty()
-//                    << ", " << m_layers.count() << " tqchildren "
-//                    << ", projection: " << m_projection
-//                    << "\n";
-            return v.visit(this);
-        };
-
-    virtual void resetProjection(KisPaintDevice* to = 0); /// will copy from to, if !0, CoW!!
-    virtual KisPaintDeviceSP projection(const TQRect & rect);
-
-    virtual uint childCount() const;
-
-    virtual KisLayerSP firstChild() const;
-    virtual KisLayerSP lastChild() const;
-
-    /// Returns the layer at the specified index.
-    virtual KisLayerSP at(int index) const;
-
-    /// Returns the index of the layer if it's in this group, or -1 otherwise.
-    virtual int index(KisLayerSP layer) const;
-
-    /// Moves the specified layer to the specified index in the group, if it's already a member of this group.
-    virtual void setIndex(KisLayerSP layer, int index);
-
-    /** Adds the layer to this group at the specified index. childCount() is a valid index and appends to the end.
-        Fails and returns false if the layer is already in this group or any other (remove it first.) */
-    virtual bool addLayer(KisLayerSP newLayer, int index);
-
-    /**
-     * Add the specified layer above the specified layer (if aboveThis == 0, the bottom is used) */
-    virtual bool addLayer(KisLayerSP newLayer, KisLayerSP aboveThis);
-
-    /// Removes the layer at the specified index from the group.
-    virtual bool removeLayer(int index);
-
-    /// Removes the layer from this group. Fails if there's no such layer in this group.
-    virtual bool removeLayer(KisLayerSP layer);
-
-    virtual TQImage createThumbnail(TQ_INT32 w, TQ_INT32 h);
-
-    /// Returns if the layer will induce the projection hack (if the only layer in this group)
-    virtual bool paintLayerInducesProjectionOptimization(KisPaintLayer* l);
-signals:
-
-    void sigDirty(TQRect rc);
-    
-private:
-    
-    void updateProjection(const TQRect & rc);
-    
-    inline int reverseIndex(int index) const { return childCount() - 1 - index; };
-    vKisLayerSP m_layers; // Contains the list of all layers
-    KisPaintDeviceSP m_projection; // The cached composition of all layers in this group
-
-    TQ_INT32 m_x;
-    TQ_INT32 m_y;
-};
-
-#endif // KIS_GROUP_LAYER_H_
-
diff --git a/krita/core/kis_histogram.cc b/krita/core/kis_histogram.cc
deleted file mode 100644
index 1b4db526e..000000000
--- a/krita/core/kis_histogram.cc
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt
- *            (c) 2005 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <kdebug.h>
-#include <tqdatetime.h> // ### Debug
-
-#include "kis_types.h"
-#include "kis_histogram.h"
-#include "kis_paint_layer.h"
-#include "kis_iterators_pixel.h"
-#include "kis_colorspace.h"
-#include "kis_debug_areas.h"
-
-KisHistogram::KisHistogram(KisPaintLayerSP layer,
-                           KisHistogramProducerSP producer,
-                           const enumHistogramType type)
-{
-    m_dev = layer->paintDevice();
-    m_type = type;
-    m_producer = producer;
-    m_selection = false;
-    m_channel = 0;
-
-    updateHistogram();
-}
-
-KisHistogram::KisHistogram(KisPaintDeviceSP paintdev,
-                           KisHistogramProducerSP producer,
-                           const enumHistogramType type)
-{
-    m_dev = paintdev;
-    m_type = type;
-    m_producer = producer;
-    m_selection = false;
-    m_channel = 0;
-
-    updateHistogram();
-}
-
-KisHistogram::~KisHistogram()
-{
-}
-
-void KisHistogram::updateHistogram()
-{
-    TQ_INT32 x,y,w,h;
-    m_dev->exactBounds(x,y,w,h);
-    KisRectIteratorPixel srcIt = m_dev->createRectIterator(x,y,w,h, false);
-    KisColorSpace* cs = m_dev->colorSpace();
-
-    TQTime t;
-    t.start();
-
-    // Let the producer do it's work
-    m_producer->clear();
-    int i;
-    // Handle degenerate case (this happens with the accumulating histogram,
-    // which has an empty device)
-    if (srcIt.isDone()) {
-        m_producer->addRegionToBin(0, 0, 0, cs);
-    } else {
-        while ( !srcIt.isDone() ) {
-            i = srcIt.nConseqPixels();
-            m_producer->addRegionToBin(srcIt.rawData(), srcIt.selectionMask(), i, cs);
-            srcIt += i;
-        }
-    }
-
-    computeHistogram();
-}
-
-void KisHistogram::computeHistogram()
-{
-    m_completeCalculations = calculateForRange(m_producer->viewFrom(),
-            m_producer->viewFrom() + m_producer->viewWidth());
-
-    if (m_selection) {
-        m_selectionCalculations = calculateForRange(m_selFrom, m_selTo);
-    } else {
-        m_selectionCalculations.clear();
-    }
-
-#if 1
-    dump();
-#endif
-}
-
-KisHistogram::Calculations KisHistogram::calculations() {
-    return m_completeCalculations.at(m_channel);
-}
-
-KisHistogram::Calculations KisHistogram::selectionCalculations() {
-    return m_selectionCalculations.at(m_channel);
-}
-
-TQValueVector<KisHistogram::Calculations> KisHistogram::calculateForRange(double from, double to) {
-    TQValueVector<Calculations> calculations;
-    uint count = m_producer->channels().count();
-
-    for (uint i = 0; i < count; i++) {
-        calculations.append(calculateSingleRange(i, from, to));
-    }
-
-    return calculations;
-}
-
-KisHistogram::Calculations KisHistogram::calculateSingleRange(int channel, double from, double to) {
-    Calculations c;
-
-    // XXX If from == to, we only want a specific bin, handle that properly!
-
-    double max = from, min = to, total = 0.0, mean = 0.0; //, median = 0.0, stddev = 0.0;
-    TQ_UINT32 high = 0, low = (TQ_UINT32) -1, count = 0;
-
-    if (m_producer->count() == 0) {
-        // We won't get anything, even if a range is specified
-        // XXX make sure all initial '0' values are correct here!
-        return c;
-    }
-
-    TQ_INT32 totbins = m_producer->numberOfBins();
-    TQ_UINT32 current;
-
-    // convert the double range into actual bins:
-    double factor = static_cast<double>(totbins) / m_producer->viewWidth();
-
-    TQ_INT32 fromBin = static_cast<TQ_INT32>((from - m_producer->viewFrom()) * factor);
-    TQ_INT32 toBin = fromBin + static_cast<TQ_INT32>((to - from) * factor);
-
-    // Min, max, count, low, high
-    for (TQ_INT32 i = fromBin; i < toBin; i++) {
-        current = m_producer->getBinAt(channel, i);
-        double pos = static_cast<double>(i) / factor + from;
-        if (current > high)
-            high = current;
-        if (current < low)
-            low = current;
-        if (current > 0) {
-            if (pos < min)
-                min = pos;
-            if (pos > max)
-                max = pos;
-        }
-        // We do the count here as well.
-        // we can't use m_producer->count() for this, because of the range
-        count += current;
-        total += current * pos;
-    }
-
-    if (count > 0)
-        mean = total / count;
-
-    c.m_high = high;
-    c.m_low = low;
-    c.m_count = count;
-    c.m_min = min;
-    c.m_max = max;
-    c.m_mean = mean;
-    c.m_total = total;
-
-    return c;
-}
-
-
-void KisHistogram::dump() {
-    kdDebug(DBG_AREA_MATH) << "Histogram\n";
-
-    switch (m_type) {
-    case LINEAR:
-        kdDebug(DBG_AREA_MATH) << "Linear histogram\n";
-        break;
-    case LOGARITHMIC:
-        kdDebug(DBG_AREA_MATH) << "Logarithmic histogram\n";
-    }
-
-    kdDebug(DBG_AREA_MATH) << "Dumping channel " << m_channel << endl;
-    Calculations c = calculations();
-
-/*        for( int i = 0; i <256; ++i ) {
-        kdDebug(DBG_AREA_MATH) << "Value "
-              << TQString().setNum(i)
-              << ": "
-              <<  TQString().setNum(m_values[i])
-              << "\n";
-        }*/
-    kdDebug(DBG_AREA_MATH) << "\n";
-
-    kdDebug(DBG_AREA_MATH) << "Max: " << TQString().setNum(c.getMax()) << "\n";
-    kdDebug(DBG_AREA_MATH) << "Min: " << TQString().setNum(c.getMin()) << "\n";
-    kdDebug(DBG_AREA_MATH) << "High: " << TQString().setNum(c.getHighest()) << "\n";
-    kdDebug(DBG_AREA_MATH) << "Low: " << TQString().setNum(c.getLowest()) << "\n";
-    kdDebug(DBG_AREA_MATH) << "Mean: " << m_producer->positionToString(c.getMean()) << "\n";
-    kdDebug(DBG_AREA_MATH) << "Total: " << TQString().setNum(c.getTotal()) << "\n";
-//    kdDebug(DBG_AREA_MATH) << "Median: " << TQString().setNum(m_median) << "\n";
-//    kdDebug(DBG_AREA_MATH) << "Stddev: " << TQString().setNum(m_stddev) << "\n";
-//    kdDebug(DBG_AREA_MATH) << "percentile: " << TQString().setNum(m_percentile) << "\n";
-
-    kdDebug(DBG_AREA_MATH) << "\n";
-}
diff --git a/krita/core/kis_histogram.h b/krita/core/kis_histogram.h
deleted file mode 100644
index 3d315994f..000000000
--- a/krita/core/kis_histogram.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt
- *            (c) 2005 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_HISTOGRAM_
-#define KIS_HISTOGRAM_
-
-#include "kis_types.h"
-#include "kis_colorspace.h"
-#include "kis_histogram_producer.h"
-
-enum enumHistogramType {
-    LINEAR,
-    LOGARITHMIC
-};
-/**
- * The histogram class computes the histogram data from the specified layer
- * for the specified channel, through the use of a KisHistogramProducer.
- * This class is only for layers and paintdevices. KisImages are not supported,
- * but you can use the mergedImage function to create a paintdevice and feed that to this class.
- * 
- * A Histogram also can have a selection: this is a specific range in the current histogram
- * that will get calculations done on it as well. If the range's begin and end are the same,
- * it is supposed to specify a single bin in the histogram.
- * 
- * The calculations are done in the range 0 - 1, instead of the native range that a pixel
- * might have, so it's not always as precise as it could be. But you can't have it all...
- */
-class KisHistogram : public KShared {
-
-public:
-    /**
-     * Class that stores the result of histogram calculations.
-     * Doubles are in the 0-1 range, use the producer's positionToString function to display it.
-     **/
-    class Calculations {
-
-        double m_max, m_min, m_mean, m_total, m_median, m_stddev;
-
-        TQ_UINT32 m_high, m_low, m_count;
-
-        friend class KisHistogram;
-
-    public:
-
-        Calculations() : m_max(0.0), m_min(0.0), m_mean(0.0), m_total(0.0), m_median(0.0),
-            m_stddev(0.0), m_high(0), m_low(0), m_count(0) {}
-        /**
-         * This function return the maximum bound of the histogram
-         * (values at greater position than the maximum are null)
-         */
-        inline double getMax() { return m_max; }
-        /**
-         * This function return the minimum bound of the histogram
-         * (values at smaller position than the minimum are null)
-         */
-        inline double getMin() { return m_min; }
-        /// This function return the highest value of the histogram
-        inline TQ_UINT32 getHighest() { return m_high; }
-        /// This function return the lowest value of the histogram
-        inline TQ_UINT32 getLowest() { return m_low; }
-        /// This function return the mean of value of the histogram
-        inline double getMean() { return m_mean; }
-        //double getMedian() { return m_median; }
-        //double getStandardDeviation() { return m_stddev; }
-        /// This function return the number of pixels used by the histogram
-        inline TQ_UINT32 getCount() { return m_count; }
-        /** The sum of (the contents of every bin * the double value of that bin)*/
-        inline double getTotal() { return m_total; }
-        //TQ_UINT8 getPercentile() { return m_percentile; } // What is this exactly? XXX
-    };
-
-    KisHistogram(KisPaintLayerSP layer, 
-                 KisHistogramProducerSP producer,
-                 const enumHistogramType type);
-
-    KisHistogram(KisPaintDeviceSP paintdev, 
-                 KisHistogramProducerSP producer,
-                 const enumHistogramType type);
-
-    virtual ~KisHistogram();
-
-    /** Updates the information in the producer */
-    void updateHistogram();
-
-    /**
-     * (Re)computes the mathematical information from the information currently in the producer.
-     * Needs to be called when you change the selection and want to get that information
-     **/
-    void computeHistogram();
-
-    /** The information on the entire view for the current channel */
-    Calculations calculations();
-    /** The information on the current selection for the current channel */
-    Calculations selectionCalculations();
-
-    inline TQ_UINT32 getValue(TQ_UINT8 i) { return m_producer->getBinAt(m_channel, i); }
-
-    inline enumHistogramType getHistogramType() { return m_type; }
-    inline void setHistogramType(enumHistogramType type) { m_type = type; }
-    inline void setProducer(KisHistogramProducerSP producer) { m_producer = producer; }
-    inline void setChannel(TQ_INT32 channel) { m_channel = channel; }
-    inline KisHistogramProducerSP producer() { return m_producer; }
-    inline TQ_INT32 channel() { return m_channel; }
-
-    inline bool hasSelection() { return m_selection; }
-    inline double selectionFrom() { return m_selFrom; }
-    inline double selectionTo() { return m_selTo; }
-    inline void setNoSelection() { m_selection = false; }
-    /** Sets the current selection */
-    inline void setSelection(double from, double to)
-        { m_selection = true; m_selFrom = from; m_selTo = to; }
-
-
-private:
-    // Dump the histogram to debug.
-    void dump();
-    TQValueVector<Calculations> calculateForRange(double from, double to);
-    Calculations calculateSingleRange(int channel, double from, double to);
-
-    KisPaintDeviceSP m_device;
-    KisHistogramProducerSP m_producer;
-
-    enumHistogramType m_type;
-
-    TQ_INT32 m_channel;
-    double m_selFrom, m_selTo;
-    bool m_selection;
-
-    KisPaintDeviceSP m_dev;
-
-    TQValueVector<Calculations> m_completeCalculations, m_selectionCalculations;
-};
-
-
-#endif // KIS_HISTOGRAM_WIDGET_
diff --git a/krita/core/kis_image.cc b/krita/core/kis_image.cc
deleted file mode 100644
index 30f3ad364..000000000
--- a/krita/core/kis_image.cc
+++ /dev/null
@@ -1,1702 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *  Copyright (c) 2007 Benjamin Schleimer <bensch128@yahoo.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <stdlib.h>
-#include <math.h>
-
-#include <config.h>
-#include LCMS_HEADER
-
-#include <tqimage.h>
-#include <tqpainter.h>
-#include <tqsize.h>
-#include <tqtl.h>
-#include <tqapplication.h>
-#include <tqthread.h>
-#include <tqdatetime.h>
-
-#include <kcommand.h>
-#include <kdebug.h>
-#include <klocale.h>
-
-#include "kis_image_iface.h"
-
-#include "kis_annotation.h"
-#include "kis_colorspace_factory_registry.h"
-#include "kis_color.h"
-#include "kis_command.h"
-#include "kis_types.h"
-//#include "kis_guide.h"
-#include "kis_image.h"
-#include "kis_paint_device.h"
-#include "kis_paint_device_action.h"
-#include "kis_selection.h"
-#include "kis_painter.h"
-#include "kis_fill_painter.h"
-#include "kis_layer.h"
-#include "kis_group_layer.h"
-#include "kis_adjustment_layer.h"
-#include "kis_paint_layer.h"
-#include "kis_colorspace_convert_visitor.h"
-#include "kis_background.h"
-#include "kis_substrate.h"
-#include "kis_scale_visitor.h"
-#include "kis_nameserver.h"
-#include "kis_undo_adapter.h"
-#include "kis_merge_visitor.h"
-#include "kis_transaction.h"
-#include "kis_crop_visitor.h"
-#include "kis_transform_visitor.h"
-#include "kis_filter_strategy.h"
-#include "kis_profile.h"
-#include "kis_paint_layer.h"
-#include "kis_perspective_grid.h"
-#include "kis_change_profile_visitor.h"
-#include "kis_group_layer.h"
-#include "kis_iterators_pixel.h"
-#include "kis_shear_visitor.h"
-
-class KisImage::KisImagePrivate {
-public:
-    KisColor backgroundColor;
-    TQ_UINT32 lockCount;
-    bool     sizeChangedWhileLocked;
-    bool     selectionChangedWhileLocked;
-    KisSubstrateSP substrate;
-    KisPerspectiveGrid* perspectiveGrid;
-};
-
-
-namespace {
-
-    class KisResizeImageCmd : public KNamedCommand {
-        typedef KNamedCommand super;
-
-    public:
-        KisResizeImageCmd(KisUndoAdapter *adapter,
-                          KisImageSP img,
-                          TQ_INT32 width,
-                          TQ_INT32 height,
-                          TQ_INT32 oldWidth,
-                          TQ_INT32 oldHeight) : super(i18n("Resize Image"))
-            {
-                m_adapter = adapter;
-                m_img = img;
-                m_before = TQSize(oldWidth, oldHeight);
-                m_after = TQSize(width, height);
-            }
-
-        virtual ~KisResizeImageCmd()
-            {
-            }
-
-    public:
-        virtual void execute()
-            {
-                m_adapter->setUndo(false);
-                m_img->resize(m_after.width(), m_after.height());
-                m_adapter->setUndo(true);
-            }
-
-        virtual void unexecute()
-            {
-                m_adapter->setUndo(false);
-                m_img->resize(m_before.width(), m_before.height());
-                m_adapter->setUndo(true);
-            }
-
-    private:
-        KisUndoAdapter *m_adapter;
-        KisImageSP m_img;
-        TQSize m_before;
-        TQSize m_after;
-    };
-
-    // -------------------------------------------------------
-
-    class KisChangeLayersCmd : public KNamedCommand {
-        typedef KNamedCommand super;
-
-    public:
-        KisChangeLayersCmd(KisUndoAdapter *adapter, KisImageSP img,
-                           KisGroupLayerSP oldRootLayer, KisGroupLayerSP newRootLayer, const TQString& name)
-            : super(name)
-            {
-                m_adapter = adapter;
-                m_img = img;
-                m_oldRootLayer = oldRootLayer;
-                m_newRootLayer = newRootLayer;
-            }
-
-        virtual ~KisChangeLayersCmd()
-            {
-            }
-
-    public:
-        virtual void execute()
-            {
-                m_adapter->setUndo(false);
-                m_img->setRootLayer(m_newRootLayer);
-                m_adapter->setUndo(true);
-                m_img->notifyLayersChanged();
-            }
-
-        virtual void unexecute()
-            {
-                m_adapter->setUndo(false);
-                m_img->setRootLayer(m_oldRootLayer);
-                m_adapter->setUndo(true);
-                m_img->notifyLayersChanged();
-            }
-
-    private:
-        KisUndoAdapter *m_adapter;
-        KisImageSP m_img;
-        KisGroupLayerSP m_oldRootLayer;
-        KisGroupLayerSP m_newRootLayer;
-    };
-
-
-    // -------------------------------------------------------
-
-    class KisConvertImageTypeCmd : public KNamedCommand {
-        typedef KNamedCommand super;
-
-    public:
-        KisConvertImageTypeCmd(KisUndoAdapter *adapter, KisImageSP img,
-                               KisColorSpace * beforeColorSpace, KisColorSpace * afterColorSpace
-            ) : super(i18n("Convert Image Type"))
-            {
-                m_adapter = adapter;
-                m_img = img;
-                m_beforeColorSpace = beforeColorSpace;
-                m_afterColorSpace = afterColorSpace;
-            }
-
-        virtual ~KisConvertImageTypeCmd()
-            {
-            }
-
-    public:
-        virtual void execute()
-            {
-                m_adapter->setUndo(false);
-
-                m_img->setColorSpace(m_afterColorSpace);
-                m_img->setProfile(m_afterColorSpace->getProfile());
-
-                m_adapter->setUndo(true);
-            }
-
-        virtual void unexecute()
-            {
-                m_adapter->setUndo(false);
-
-                m_img->setColorSpace(m_beforeColorSpace);
-                m_img->setProfile(m_beforeColorSpace->getProfile());
-
-                m_adapter->setUndo(true);
-            }
-
-    private:
-        KisUndoAdapter *m_adapter;
-        KisImageSP m_img;
-        KisColorSpace * m_beforeColorSpace;
-        KisColorSpace * m_afterColorSpace;
-    };
-
-
-    // -------------------------------------------------------
-
-    class KisImageCommand : public KNamedCommand {
-        typedef KNamedCommand super;
-
-    public:
-        KisImageCommand(const TQString& name, KisImageSP image);
-        virtual ~KisImageCommand() {}
-
-        virtual void execute() = 0;
-        virtual void unexecute() = 0;
-
-    protected:
-        void setUndo(bool undo);
-
-        KisImageSP m_image;
-    };
-
-    KisImageCommand::KisImageCommand(const TQString& name, KisImageSP image) :
-        super(name), m_image(image)
-    {
-    }
-
-    void KisImageCommand::setUndo(bool undo)
-    {
-        if (m_image->undoAdapter()) {
-            m_image->undoAdapter()->setUndo(undo);
-        }
-    }
-
-
-    // -------------------------------------------------------
-
-    class KisLayerPositionCommand : public KisImageCommand {
-        typedef KisImageCommand super;
-
-    public:
-        KisLayerPositionCommand(const TQString& name, KisImageSP image, KisLayerSP layer, KisGroupLayerSP tqparent, KisLayerSP aboveThis) : super(name, image)
-            {
-                m_layer = layer;
-                m_oldParent = layer->tqparent();
-                m_oldAboveThis = layer->nextSibling();
-                m_newParent = tqparent;
-                m_newAboveThis = aboveThis;
-           }
-
-        virtual void execute()
-            {
-                setUndo(false);
-                m_image->moveLayer(m_layer, m_newParent, m_newAboveThis);
-                setUndo(true);
-            }
-
-        virtual void unexecute()
-            {
-                setUndo(false);
-                m_image->moveLayer(m_layer, m_oldParent, m_oldAboveThis);
-                setUndo(true);
-            }
-
-    private:
-        KisLayerSP m_layer;
-        KisGroupLayerSP m_oldParent;
-        KisLayerSP m_oldAboveThis;
-        KisGroupLayerSP m_newParent;
-        KisLayerSP m_newAboveThis;
-    };
-
-
-    // -------------------------------------------------------
-
-    class LayerAddCmd : public KisCommand {
-        typedef KisCommand super;
-
-    public:
-        LayerAddCmd(KisUndoAdapter *adapter, KisImageSP img, KisLayerSP layer) : super(i18n("Add Layer"), adapter)
-            {
-                m_img = img;
-                m_layer = layer;
-                m_parent = layer->tqparent();
-                m_aboveThis = layer->nextSibling();
-            }
-
-        virtual ~LayerAddCmd()
-            {
-            }
-
-        virtual void execute()
-            {
-                adapter()->setUndo(false);
-                m_img->addLayer(m_layer, m_parent.data(), m_aboveThis);
-                adapter()->setUndo(true);
-            }
-
-        virtual void unexecute()
-            {
-                adapter()->setUndo(false);
-                m_img->removeLayer(m_layer);
-                adapter()->setUndo(true);
-            }
-
-    private:
-        KisImageSP m_img;
-        KisLayerSP m_layer;
-        KisGroupLayerSP m_parent;
-        KisLayerSP m_aboveThis;
-    };
-
-    // -------------------------------------------------------
-
-    class LayerRmCmd : public KNamedCommand {
-        typedef KNamedCommand super;
-
-    public:
-        LayerRmCmd(KisUndoAdapter *adapter, KisImageSP img,
-                   KisLayerSP layer, KisGroupLayerSP wasParent, KisLayerSP wasAbove)
-            : super(i18n("Remove Layer"))
-            {
-                m_adapter = adapter;
-                m_img = img;
-                m_layer = layer;
-                m_prevParent = wasParent;
-                m_prevAbove = wasAbove;
-            }
-
-        virtual ~LayerRmCmd()
-            {
-            }
-
-        virtual void execute()
-            {
-                m_adapter->setUndo(false);
-                m_img->removeLayer(m_layer);
-                m_adapter->setUndo(true);
-            }
-
-        virtual void unexecute()
-            {
-                m_adapter->setUndo(false);
-                m_img->addLayer(m_layer, m_prevParent.data(), m_prevAbove);
-                m_adapter->setUndo(true);
-            }
-
-    private:
-        KisUndoAdapter *m_adapter;
-        KisImageSP m_img;
-        KisLayerSP m_layer;
-        KisGroupLayerSP m_prevParent;
-        KisLayerSP m_prevAbove;
-    };
-
-    class LayerMoveCmd: public KNamedCommand {
-        typedef KNamedCommand super;
-
-    public:
-        LayerMoveCmd(KisUndoAdapter *adapter, KisImageSP img,
-                         KisLayerSP layer, KisGroupLayerSP wasParent, KisLayerSP wasAbove)
-            : super(i18n("Move Layer"))
-            {
-                m_adapter = adapter;
-                m_img = img;
-                m_layer = layer;
-                m_prevParent = wasParent;
-                m_prevAbove = wasAbove;
-                m_newParent = layer->tqparent();
-                m_newAbove = layer->nextSibling();
-            }
-
-        virtual ~LayerMoveCmd()
-            {
-            }
-
-        virtual void execute()
-            {
-                m_adapter->setUndo(false);
-                m_img->moveLayer(m_layer, m_newParent.data(), m_newAbove);
-                m_adapter->setUndo(true);
-            }
-
-        virtual void unexecute()
-            {
-                m_adapter->setUndo(false);
-                m_img->moveLayer(m_layer, m_prevParent.data(), m_prevAbove);
-                m_adapter->setUndo(true);
-            }
-
-    private:
-        KisUndoAdapter *m_adapter;
-        KisImageSP m_img;
-        KisLayerSP m_layer;
-        KisGroupLayerSP m_prevParent;
-        KisLayerSP m_prevAbove;
-        KisGroupLayerSP m_newParent;
-        KisLayerSP m_newAbove;
-    };
-
-
-    // -------------------------------------------------------
-
-    class LayerPropsCmd : public KNamedCommand {
-        typedef KNamedCommand super;
-
-    public:
-        LayerPropsCmd(KisLayerSP layer,
-                      KisImageSP img,
-                      KisUndoAdapter *adapter,
-                      const TQString& name,
-                      TQ_INT32 opacity,
-                      const KisCompositeOp& compositeOp) : super(i18n("Layer Property Changes"))
-            {
-                m_layer = layer;
-                m_img = img;
-                m_adapter = adapter;
-                m_name = name;
-                m_opacity = opacity;
-                m_compositeOp = compositeOp;
-            }
-
-        virtual ~LayerPropsCmd()
-            {
-            }
-
-    public:
-        virtual void execute()
-            {
-                TQString name = m_layer->name();
-                TQ_INT32 opacity = m_layer->opacity();
-                KisCompositeOp compositeOp = m_layer->compositeOp();
-
-                m_adapter->setUndo(false);
-                m_img->setLayerProperties(m_layer,
-                                            m_opacity,
-                                            m_compositeOp,
-                                            m_name);
-                m_adapter->setUndo(true);
-                m_name = name;
-                m_opacity = opacity;
-                m_compositeOp = compositeOp;
-                m_layer->setDirty();
-            }
-
-        virtual void unexecute()
-            {
-                execute();
-            }
-
-    private:
-        KisUndoAdapter *m_adapter;
-        KisLayerSP m_layer;
-        KisImageSP m_img;
-        TQString m_name;
-        TQ_INT32 m_opacity;
-        KisCompositeOp m_compositeOp;
-    };
-
-    // -------------------------------------------------------
-
-    class LockImageCommand : public KNamedCommand {
-        typedef KNamedCommand super;
-
-    public:
-        LockImageCommand(KisImageSP img, bool lockImage) : super("lock image")  // Not for translation, this
-            {                                                                   // is only ever used inside a macro command.
-                m_img = img;
-                m_lockImage = lockImage;
-            }
-
-        virtual ~LockImageCommand()
-            {
-            }
-
-        virtual void execute()
-            {
-                if (m_lockImage) {
-                    m_img->lock();
-                } else {
-                    m_img->unlock();
-                }
-            }
-
-        virtual void unexecute()
-            {
-                if (m_lockImage) {
-                    m_img->unlock();
-                } else {
-                    m_img->lock();
-                }
-            }
-
-    private:
-        KisImageSP m_img;
-        bool m_lockImage;
-    };
-}
-
-KisImage::KisImage(KisUndoAdapter *adapter, TQ_INT32 width, TQ_INT32 height,  KisColorSpace * colorSpace, const TQString& name)
-    : TQObject(0, name.latin1()), KShared()
-{
-    init(adapter, width, height, colorSpace, name);
-    setName(name);
-    m_dcop = 0L;
-}
-
-KisImage::KisImage(const KisImage& rhs) : TQObject(), KShared(rhs)
-{
-    m_dcop = 0L;
-    if (this != &rhs) {
-        m_private = new KisImagePrivate(*rhs.m_private);
-        m_private->perspectiveGrid = new KisPerspectiveGrid(*rhs.m_private->perspectiveGrid);
-        m_uri = rhs.m_uri;
-        m_name = TQString();
-        m_width = rhs.m_width;
-        m_height = rhs.m_height;
-        m_xres = rhs.m_xres;
-        m_yres = rhs.m_yres;
-        m_unit = rhs.m_unit;
-        m_colorSpace = rhs.m_colorSpace;
-        m_dirty = rhs.m_dirty;
-        m_adapter = rhs.m_adapter;
-
-        m_bkg = new KisBackground();
-        Q_CHECK_PTR(m_bkg);
-
-        m_rootLayer = static_cast<KisGroupLayer*>(rhs.m_rootLayer->clone().data());
-        connect(m_rootLayer, TQT_SIGNAL(sigDirty(TQRect)), this, TQT_SIGNAL(sigImageUpdated(TQRect)));
-            
-        m_annotations = rhs.m_annotations; // XXX the annotations would probably need to be deep-copied
-
-        m_nserver = new KisNameServer(i18n("Layer %1"), rhs.m_nserver->currentSeed() + 1);
-        Q_CHECK_PTR(m_nserver);
-
-        //m_guides = rhs.m_guides;
-
-        // Set this as the current image for the layers
-        m_rootLayer->setImage(this);
-        // Set the active paint layer
-        if(rhs.activeLayer() != NULL) {
-            TQString layerName = rhs.activeLayer()->name();
-            // kdDebug(12345) << "KisImage::KisImage: active layer = " << layerName << "\n";
-            KisLayerSP activeLayer = rootLayer()->findLayer(layerName);
-            Q_ASSERT(activeLayer);
-            activate(activeLayer);
-        } else {
-            activate(NULL);
-        }
-    }
-}
-
-
-
-DCOPObject * KisImage::dcopObject()
-{
-    if (!m_dcop) {
-        m_dcop = new KisImageIface(this);
-        Q_CHECK_PTR(m_dcop);
-    }
-    return m_dcop;
-}
-
-KisImage::~KisImage()
-{
-    delete m_private->perspectiveGrid;
-    delete m_private;
-    delete m_nserver;
-    delete m_dcop;
-}
-
-TQString KisImage::name() const
-{
-    return m_name;
-}
-
-void KisImage::setName(const TQString& name)
-{
-    if (!name.isEmpty())
-        m_name = name;
-}
-
-TQString KisImage::description() const
-{
-    return m_description;
-}
-
-void KisImage::setDescription(const TQString& description)
-{
-    if (!description.isEmpty())
-        m_description = description;
-}
-
-
-KisColor KisImage::backgroundColor() const
-{
-    return m_private->backgroundColor;
-}
-
-void KisImage::setBackgroundColor(const KisColor & color)
-{
-    m_private->backgroundColor = color;
-}
-
-
-TQString KisImage::nextLayerName() const
-{
-    if (m_nserver->currentSeed() == 0) {
-        m_nserver->number();
-        return i18n("background");
-    }
-
-    return m_nserver->name();
-}
-
-void KisImage::rollBackLayerName()
-{
-    m_nserver->rollback();
-}
-
-void KisImage::init(KisUndoAdapter *adapter, TQ_INT32 width, TQ_INT32 height,  KisColorSpace * colorSpace, const TQString& name)
-{
-    Q_ASSERT(colorSpace);
-
-    if (colorSpace == 0) {
-        colorSpace = KisMetaRegistry::instance()->csRegistry()->getRGB8();
-        kdWarning(41010) << "No colorspace specified: using RGBA\n";
-    }
-
-    m_private = new KisImagePrivate();
-    m_private->backgroundColor = KisColor(TQt::white, colorSpace);
-    m_private->lockCount = 0;
-    m_private->sizeChangedWhileLocked = false;
-    m_private->selectionChangedWhileLocked = false;
-    m_private->substrate = 0;
-    m_private->perspectiveGrid = new KisPerspectiveGrid();
-
-    m_adapter = adapter;
-
-    m_nserver = new KisNameServer(i18n("Layer %1"), 1);
-    m_name = name;
-
-    m_colorSpace = colorSpace;
-    m_bkg = new KisBackground();
-
-    m_rootLayer = new KisGroupLayer(this,"root", OPACITY_OPAQUE);
-    connect(m_rootLayer, TQT_SIGNAL(sigDirty(TQRect)), this, TQT_SIGNAL(sigImageUpdated(TQRect)));
-
-    m_xres = 1.0;
-    m_yres = 1.0;
-    m_unit = KoUnit::U_PT;
-    m_dirty = false;
-    m_width = width;
-    m_height = height;
-}
-
-bool KisImage::locked() const
-{
-    return m_private->lockCount != 0;
-}
-
-void KisImage::lock()
-{
-    if (!locked()) {
-        if (m_rootLayer) disconnect(m_rootLayer, TQT_SIGNAL(sigDirty(TQRect)), this, TQT_SIGNAL(sigImageUpdated(TQRect)));
-        m_private->sizeChangedWhileLocked = false;
-        m_private->selectionChangedWhileLocked = false;
-    }
-    m_private->lockCount++;
-}
-
-void KisImage::unlock()
-{
-    Q_ASSERT(locked());
-
-    if (locked()) {
-        m_private->lockCount--;
-
-        if (m_private->lockCount == 0) {
-            if (m_private->sizeChangedWhileLocked) {
-                // A size change implies a full image update so only send this.
-                emit sigSizeChanged(m_width, m_height);
-            } else {
-                if (m_rootLayer->dirty()) emit sigImageUpdated( m_rootLayer->dirtyRect() );
-            }
-
-            if (m_private->selectionChangedWhileLocked) {
-                emit sigActiveSelectionChanged(this);
-            }
-
-            if (m_rootLayer) connect(m_rootLayer, TQT_SIGNAL(sigDirty(TQRect)), this, TQT_SIGNAL(sigImageUpdated(TQRect)));
-        }
-    }
-}
-
-void KisImage::emitSizeChanged()
-{
-    if (!locked()) {
-        emit sigSizeChanged(m_width, m_height);
-    } else {
-        m_private->sizeChangedWhileLocked = true;
-    }
-}
-
-void KisImage::notifyLayerUpdated(KisLayerSP layer, TQRect rc)
-{
-    emit sigLayerUpdated(layer, rc);
-}
-
-void KisImage::resize(TQ_INT32 w, TQ_INT32 h, TQ_INT32 x, TQ_INT32 y, bool cropLayers)
-{
-    if (w != width() || h != height()) {
-
-        lock();
-
-        if (undo()) {
-            if (cropLayers)
-                m_adapter->beginMacro(i18n("Crop Image"));
-            else
-                m_adapter->beginMacro(i18n("Resize Image"));
-
-            m_adapter->addCommand(new LockImageCommand(this, true));
-            m_adapter->addCommand(new KisResizeImageCmd(m_adapter, this, w, h, width(), height()));
-        }
-
-        m_width = w;
-        m_height = h;
-
-        if (cropLayers) {
-            KisCropVisitor v(TQRect(x, y, w, h));
-            m_rootLayer->accept(v);
-        }
-
-        emitSizeChanged();
-
-        unlock();
-
-        if (undo()) {
-            m_adapter->addCommand(new LockImageCommand(this, false));
-            m_adapter->endMacro();
-        }
-    }
-}
-
-void KisImage::resize(const TQRect& rc, bool cropLayers)
-{
-    resize(rc.width(), rc.height(), rc.x(), rc.y(), cropLayers);
-}
-
-
-void KisImage::scale(double sx, double sy, KisProgressDisplayInterface *progress, KisFilterStrategy *filterStrategy)
-{
-    if (nlayers() == 0) return; // Nothing to scale
-
-    // New image size. XXX: Pass along to discourage rounding errors?
-    TQ_INT32 w, h;
-    w = (TQ_INT32)(( width() * sx) + 0.5);
-    h = (TQ_INT32)(( height() * sy) + 0.5);
-
-    if (w != width() || h != height()) {
-
-        lock();
-
-        if (undo()) {
-            m_adapter->beginMacro(i18n("Scale Image"));
-            m_adapter->addCommand(new LockImageCommand(this, true));
-        }
-#if 0
-        if ( colorSpace()->id() == KisID("RGBA") || colorSpace()->id() == KisID("CMYK") || colorSpace()->id() == KisID("GRAYA")) {
-            KisScaleVisitor v (this, sx, sy, progress, filterStrategy);
-            m_rootLayer->accept( v );
-        }
-        else {
-#endif
-            KisTransformVisitor visitor (this, sx, sy, 0.0, 0.0, 0.0, 0, 0, progress, filterStrategy);
-            m_rootLayer->accept(visitor);
-//        }
-
-        if (undo()) {
-            m_adapter->addCommand(new KisResizeImageCmd(m_adapter, this, w, h, width(), height()));
-        }
-
-        m_width = w;
-        m_height = h;
-
-        emitSizeChanged();
-
-        unlock();
-
-        if (undo()) {
-            m_adapter->addCommand(new LockImageCommand(this, false));
-            m_adapter->endMacro();
-        }
-    }
-}
-
-
-
-void KisImage::rotate(double radians, KisProgressDisplayInterface *progress)
-{
-    lock();
-
-    TQ_INT32 w = width();
-    TQ_INT32 h = height();
-    TQ_INT32 tx = TQ_INT32((w*cos(radians) - h*sin(radians) - w) / 2 + 0.5);
-    TQ_INT32 ty = TQ_INT32((h*cos(radians) + w*sin(radians) - h) / 2 + 0.5);
-    w = (TQ_INT32)(width()*TQABS(cos(radians)) + height()*TQABS(sin(radians)) + 0.5);
-    h = (TQ_INT32)(height()*TQABS(cos(radians)) + width()*TQABS(sin(radians)) + 0.5);
-
-    tx -= (w - width()) / 2;
-    ty -= (h - height()) / 2;
-
-    if (undo()) {
-        m_adapter->beginMacro(i18n("Rotate Image"));
-        m_adapter->addCommand(new LockImageCommand(this, true));
-    }
-
-    KisFilterStrategy *filter = KisFilterStrategyRegistry::instance()->get(KisID("Triangle"));
-    KisTransformVisitor visitor (this, 1.0, 1.0, 0, 0, radians, -tx, -ty, progress, filter);
-    m_rootLayer->accept(visitor);
-
-    if (undo()) m_adapter->addCommand(new KisResizeImageCmd(undoAdapter(), this, w, h, width(), height()));
-
-    m_width = w;
-    m_height = h;
-
-    emitSizeChanged();
-
-    unlock();
-
-    if (undo()) {
-        m_adapter->addCommand(new LockImageCommand(this, false));
-        m_adapter->endMacro();
-    }
-}
-
-void KisImage::shear(double angleX, double angleY, KisProgressDisplayInterface *m_progress)
-{
-    const double pi=3.1415926535897932385;
-
-    //new image size
-    TQ_INT32 w=width();
-    TQ_INT32 h=height();
-
-
-    if(angleX != 0 || angleY != 0){
-        double deltaY=height()*TQABS(tan(angleX*pi/180)*tan(angleY*pi/180));
-        w = (TQ_INT32) ( width() + TQABS(height()*tan(angleX*pi/180)) );
-        //ugly fix for the problem of having two extra pixels if only a shear along one
-        //axis is done. This has to be fixed in the cropping code in KisRotateVisitor!
-        if (angleX == 0 || angleY == 0)
-            h = (TQ_INT32) ( height() + TQABS(w*tan(angleY*pi/180)) );
-        else if (angleX > 0 && angleY > 0)
-            h = (TQ_INT32) ( height() + TQABS(w*tan(angleY*pi/180))- 2 * deltaY + 2 );
-        else if (angleX < 0 && angleY < 0)
-            h = (TQ_INT32) ( height() + TQABS(w*tan(angleY*pi/180))- 2 * deltaY + 2 );
-        else
-            h = (TQ_INT32) ( height() + TQABS(w*tan(angleY*pi/180)) );
-    }
-
-    if (w != width() || h != height()) {
-
-        lock();
-
-        if (undo()) {
-            m_adapter->beginMacro(i18n("Shear Image"));
-            m_adapter->addCommand(new LockImageCommand(this, true));
-        }
-
-        KisShearVisitor v(angleX, angleY, m_progress);
-        v.setUndoAdapter(undoAdapter());
-        rootLayer()->accept(v);
-
-        if (undo()) m_adapter->addCommand(new KisResizeImageCmd(m_adapter, this, w, h, width(), height()));
-
-        m_width = w;
-        m_height = h;
-
-        emitSizeChanged();
-
-        unlock();
-
-        if (undo()) {
-            m_adapter->addCommand(new LockImageCommand(this, false));
-            m_adapter->endMacro();
-        }
-    }
-}
-
-void KisImage::convertTo(KisColorSpace * dstColorSpace, TQ_INT32 renderingIntent)
-{
-    if ( m_colorSpace == dstColorSpace )
-    {
-        return;
-    }
-
-    lock();
-
-    KisColorSpace * oldCs = m_colorSpace;
-
-    if (undo()) {
-        m_adapter->beginMacro(i18n("Convert Image Type"));
-        m_adapter->addCommand(new LockImageCommand(this, true));
-    }
-
-    setColorSpace(dstColorSpace);
-
-    KisColorSpaceConvertVisitor visitor(dstColorSpace, renderingIntent);
-    m_rootLayer->accept(visitor);
-
-    unlock();
-
-    emit sigLayerPropertiesChanged( m_activeLayer );
-
-    if (undo()) {
-
-        m_adapter->addCommand(new KisConvertImageTypeCmd(undoAdapter(), this,
-                                                         oldCs, dstColorSpace));
-        m_adapter->addCommand(new LockImageCommand(this, false));
-        m_adapter->endMacro();
-    }
-}
-
-KisProfile *  KisImage::getProfile() const
-{
-    return colorSpace()->getProfile();
-}
-
-void KisImage::setProfile(const KisProfile * profile)
-{
-    if (profile == 0) return;
-
-    KisColorSpace * dstCs= KisMetaRegistry::instance()->csRegistry()->getColorSpace( colorSpace()->id(),
-                                                                                         profile);
-    if (dstCs) {
-
-        lock();
-
-        KisColorSpace * oldCs = colorSpace();
-        setColorSpace(dstCs);
-        emit(sigProfileChanged(const_cast<KisProfile *>(profile)));
-
-        KisChangeProfileVisitor visitor(oldCs, dstCs);
-        m_rootLayer->accept(visitor);
-
-        unlock();
-    }
-}
-
-double KisImage::xRes()
-{
-    return m_xres;
-}
-
-double KisImage::yRes()
-{
-    return m_yres;
-}
-
-void KisImage::setResolution(double xres, double yres)
-{
-    m_xres = xres;
-    m_yres = yres;
-}
-
-TQ_INT32 KisImage::width() const
-{
-    return m_width;
-}
-
-TQ_INT32 KisImage::height() const
-{
-    return m_height;
-}
-
-KisPaintDeviceSP KisImage::activeDevice()
-{
-    if (KisPaintLayer* layer = dynamic_cast<KisPaintLayer*>(m_activeLayer.data())) {
-        return layer->paintDeviceOrMask();
-    }
-    else if (KisAdjustmentLayer* layer = dynamic_cast<KisAdjustmentLayer*>(m_activeLayer.data())) {
-        if (layer->selection()) {
-            return layer->selection().data();
-        }
-    }
-    else if (KisGroupLayer * layer = dynamic_cast<KisGroupLayer*>(m_activeLayer.data())) {
-        // Find first child
-        KisLayerSP child = layer->lastChild();
-        while(child)
-        {
-            if (KisPaintLayer* layer = dynamic_cast<KisPaintLayer*>(child.data())) {
-                return layer->paintDevice();
-            }
-            child = child->prevSibling();
-        }
-        KisLayerSP sibling = layer->nextSibling();
-        while (sibling) {
-            if (KisPaintLayer* layer = dynamic_cast<KisPaintLayer*>(sibling.data())) {
-                return layer->paintDevice();
-            }
-            sibling = sibling->nextSibling();
-        }
-    }
-    else if (KisLayerSP layer = m_activeLayer) {
-        // A weird layer -- let's not return it, but a sibling
-        KisLayerSP sibling = layer->nextSibling();
-        while (sibling) {
-            if (KisPaintLayer* layer = dynamic_cast<KisPaintLayer*>(sibling.data())) {
-                return layer->paintDevice();
-            }
-            sibling = sibling->nextSibling();
-        }
-    }
-    // XXX: We're buggered!
-    return 0;
-}
-
-KisLayerSP KisImage::newLayer(const TQString& name, TQ_UINT8 opacity, const KisCompositeOp& compositeOp, KisColorSpace * colorstrategy)
-{
-    KisPaintLayer * layer;
-    if (colorstrategy)
-        layer = new KisPaintLayer(this, name, opacity, colorstrategy);
-    else
-        layer = new KisPaintLayer(this, name, opacity);
-    Q_CHECK_PTR(layer);
-
-    if (compositeOp.isValid())
-        layer->setCompositeOp(compositeOp);
-    layer->setVisible(true);
-
-    if (m_activeLayer != 0) {
-        addLayer(layer, m_activeLayer->tqparent().data(), m_activeLayer->nextSibling());
-    }
-    else {
-        addLayer(layer, m_rootLayer, 0);
-    }
-    activate(layer);
-
-    return layer;
-}
-
-void KisImage::setLayerProperties(KisLayerSP layer, TQ_UINT8 opacity, const KisCompositeOp& compositeOp, const TQString& name)
-{
-    if (layer && (layer->opacity() != opacity || layer->compositeOp() != compositeOp || layer->name() != name)) {
-        if (undo()) {
-            TQString oldname = layer->name();
-            TQ_INT32 oldopacity = layer->opacity();
-            KisCompositeOp oldCompositeOp = layer->compositeOp();
-            layer->setName(name);
-            layer->setOpacity(opacity);
-            layer->setCompositeOp(compositeOp);
-            m_adapter->addCommand(new LayerPropsCmd(layer, this, m_adapter, oldname, oldopacity, oldCompositeOp));
-        } else {
-            layer->setName(name);
-            layer->setOpacity(opacity);
-            layer->setCompositeOp(compositeOp);
-        }
-    }
-}
-
-KisGroupLayerSP KisImage::rootLayer() const
-{
-    return m_rootLayer;
-}
-
-KisLayerSP KisImage::activeLayer() const
-{
-    return m_activeLayer;
-}
-
-KisPaintDeviceSP KisImage::projection()
-{
-    return m_rootLayer->projection(TQRect(0, 0, m_width, m_height));
-}
-
-KisLayerSP KisImage::activate(KisLayerSP layer)
-{
-    if (layer != m_activeLayer) {
-        if (m_activeLayer) m_activeLayer->deactivate();
-        m_activeLayer = layer;
-        if (m_activeLayer) m_activeLayer->activate();
-        emit sigLayerActivated(m_activeLayer);
-        emit sigMaskInfoChanged();
-    }
-
-    return layer;
-}
-
-KisLayerSP KisImage::findLayer(const TQString& name) const
-{
-    return rootLayer()->findLayer(name);
-}
-
-KisLayerSP KisImage::findLayer(int id) const
-{
-    return rootLayer()->findLayer(id);
-}
-
-
-bool KisImage::addLayer(KisLayerSP layer, KisGroupLayerSP tqparent)
-{
-    return addLayer(layer, tqparent, tqparent->firstChild());
-}
-
-bool KisImage::addLayer(KisLayerSP layer, KisGroupLayerSP tqparent, KisLayerSP aboveThis)
-{
-    if (!tqparent)
-        return false;
-
-    const bool success = tqparent->addLayer(layer, aboveThis);
-    if (success)
-    {
-        KisPaintLayerSP player = dynamic_cast<KisPaintLayer*>(layer.data());
-        if (player != 0) {
-
-            // XXX: This should also be done whenever a layer grows!
-            TQValueVector<KisPaintDeviceAction *> actions = KisMetaRegistry::instance() ->
-                csRegistry()->paintDeviceActionsFor(player->paintDevice()->colorSpace());
-            for (uint i = 0; i < actions.count(); i++) {
-                actions.at(i)->act(player.data()->paintDevice(), width(), height());
-            }
-
-            connect(player, TQT_SIGNAL(sigMaskInfoChanged()), this, TQT_SIGNAL(sigMaskInfoChanged()));
-        }
-
-        if (layer->extent().isValid()) layer->setDirty();
-
-        if (!layer->temporary()) {
-            emit sigLayerAdded(layer);
-            activate(layer);
-        }
-
-
-        if (!layer->temporary() && undo()) {
-            m_adapter->addCommand(new LayerAddCmd(m_adapter, this, layer));
-        }
-    }
-
-    return success;
-}
-
-bool KisImage::removeLayer(KisLayerSP layer)
-{
-    if (!layer || layer->image() != this)
-        return false;
-
-    if (KisGroupLayerSP tqparent = layer->tqparent()) {
-        // Adjustment layers should mark the layers underneath them, whose rendering
-        // they have cached, diryt on removal. Otherwise, the group won't be re-rendered.
-        KisAdjustmentLayer * al = dynamic_cast<KisAdjustmentLayer*>(layer.data());
-        if (al) {
-            TQRect r = al->extent();
-            lock(); // Lock the image, because we are going to dirty a lot of layers
-            KisLayerSP l = layer->nextSibling();
-            while (l) {
-                KisAdjustmentLayer * al2 = dynamic_cast<KisAdjustmentLayer*>(l.data());
-                l->setDirty(r, false);
-                if (al2 != 0) break;
-                l = l->nextSibling();
-            }
-            unlock();
-        }
-        KisPaintLayerSP player = dynamic_cast<KisPaintLayer*>(layer.data());
-        if (player != 0) {
-            disconnect(player, TQT_SIGNAL(sigMaskInfoChanged()),
-                       this, TQT_SIGNAL(sigMaskInfoChanged()));
-        }
-        KisLayerSP l = layer->prevSibling();
-        TQRect r = layer->extent();
-        while (l) {
-            l->setDirty(r, false);
-            l = l->prevSibling();
-        }
-
-        KisLayerSP wasAbove = layer->nextSibling();
-        KisLayerSP wasBelow = layer->prevSibling();
-        const bool wasActive = layer == activeLayer();
-        // sigLayerRemoved can set it to 0, we don't want that in the else of wasActive!
-        KisLayerSP actLayer = activeLayer();
-        const bool success = tqparent->removeLayer(layer);
-        if (success) {
-            layer->setImage(0);
-            if (!layer->temporary() && undo()) {
-                m_adapter->addCommand(new LayerRmCmd(m_adapter, this, layer, tqparent, wasAbove));
-            }
-            if (!layer->temporary()) {
-                emit sigLayerRemoved(layer, tqparent, wasAbove);
-                if (wasActive) {
-                    if (wasBelow)
-                        activate(wasBelow);
-                    else if (wasAbove)
-                        activate(wasAbove);
-                    else if (tqparent != rootLayer())
-                        activate(tqparent.data());
-                    else
-                        activate(rootLayer()->firstChild());
-                } else {
-                    activate(actLayer);
-                }
-            }
-        }
-        return success;
-    }
-
-    return false;
-}
-
-bool KisImage::raiseLayer(KisLayerSP layer)
-{
-    if (!layer)
-        return false;
-    return moveLayer(layer, layer->tqparent().data(), layer->prevSibling());
-}
-
-bool KisImage::lowerLayer(KisLayerSP layer)
-{
-    if (!layer)
-        return false;
-    if (KisLayerSP next = layer->nextSibling())
-        return moveLayer(layer, layer->tqparent().data(), next->nextSibling());
-    return false;
-}
-
-bool KisImage::toTop(KisLayerSP layer)
-{
-    if (!layer)
-        return false;
-    return moveLayer(layer, rootLayer(), rootLayer()->firstChild());
-}
-
-bool KisImage::toBottom(KisLayerSP layer)
-{
-    if (!layer)
-        return false;
-    return moveLayer(layer, rootLayer(), 0);
-}
-
-bool KisImage::moveLayer(KisLayerSP layer, KisGroupLayerSP tqparent, KisLayerSP aboveThis)
-{
-    if (!tqparent)
-        return false;
-
-    KisGroupLayerSP wasParent = layer->tqparent();
-    KisLayerSP wasAbove = layer->nextSibling();
-
-    if (wasParent.data() == tqparent.data() && wasAbove.data() == aboveThis.data())
-        return false;
-
-    lock();
-
-    if (!wasParent->removeLayer(layer)) {
-        unlock();
-        return false;
-    }
-
-    const bool success = tqparent->addLayer(layer, aboveThis);
-
-    layer->setDirty();
-
-    unlock();
-
-    if (success)
-    {
-        emit sigLayerMoved(layer, wasParent, wasAbove);
-        if (undo())
-            m_adapter->addCommand(new LayerMoveCmd(m_adapter, this, layer, wasParent, wasAbove));
-    }
-    else //we already removed the layer above, but re-adding it failed, so...
-    {
-        emit sigLayerRemoved(layer, wasParent, wasAbove);
-        if (undo())
-            m_adapter->addCommand(new LayerRmCmd(m_adapter, this, layer, wasParent, wasAbove));
-    }
-
-    return success;
-}
-
-TQ_INT32 KisImage::nlayers() const
-{
-    return rootLayer()->numLayers() - 1;
-}
-
-TQ_INT32 KisImage::nHiddenLayers() const
-{
-    return rootLayer()->numLayers(KisLayer::Hidden);
-}
-
-void KisImage::flatten()
-{
-    KisGroupLayerSP oldRootLayer = m_rootLayer;
-    disconnect(oldRootLayer, TQT_SIGNAL(sigDirty(TQRect)), this, TQT_SIGNAL(sigImageUpdated(TQRect)));
-
-    KisPaintLayer *dst = new KisPaintLayer(this, nextLayerName(), OPACITY_OPAQUE, colorSpace());
-    Q_CHECK_PTR(dst);
-
-    TQRect rc = mergedImage()->extent();
-
-    KisPainter gc(dst->paintDevice());
-    gc.bitBlt(rc.x(), rc.y(), COMPOSITE_COPY, mergedImage(), OPACITY_OPAQUE, rc.left(), rc.top(), rc.width(), rc.height());
-
-    m_rootLayer = new KisGroupLayer(this, "", OPACITY_OPAQUE);
-    connect(m_rootLayer, TQT_SIGNAL(sigDirty(TQRect)), this, TQT_SIGNAL(sigImageUpdated(TQRect)));
-
-    if (undo()) {
-        m_adapter->beginMacro(i18n("Flatten Image"));
-        m_adapter->addCommand(new LockImageCommand(this, true));
-        m_adapter->addCommand(new KisChangeLayersCmd(m_adapter, this, oldRootLayer, m_rootLayer, ""));
-    }
-
-    lock();
-
-    addLayer(dst, m_rootLayer, 0);
-    activate(dst);
-
-    unlock();
-
-    notifyLayersChanged();
-
-    if (undo()) {
-        m_adapter->addCommand(new LockImageCommand(this, false));
-        m_adapter->endMacro();
-    }
-}
-
-
-void KisImage::mergeLayer(KisLayerSP layer)
-{
-    KisPaintLayer *player = new KisPaintLayer(this, layer->name(), OPACITY_OPAQUE, colorSpace());
-    Q_CHECK_PTR(player);
-
-    TQRect rc = layer->extent() | layer->nextSibling()->extent();
-
-    undoAdapter()->beginMacro(i18n("Merge with Layer Below"));
-
-    //Abuse the merge visitor to only merge two layers (if either are groups they'll recursively merge)
-    KisMergeVisitor visitor(player->paintDevice(), rc);
-    layer->nextSibling()->accept(visitor);
-    layer->accept(visitor);
-
-    removeLayer(layer->nextSibling());
-    addLayer(player, layer->tqparent(), layer);
-    removeLayer(layer);
-
-    undoAdapter()->endMacro();
-}
-
-
-void KisImage::setModified()
-{
-    emit sigImageModified();
-}
-
-void KisImage::renderToPainter(TQ_INT32 x1,
-                               TQ_INT32 y1,
-                               TQ_INT32 x2,
-                               TQ_INT32 y2,
-                               TQPainter &painter,
-                               KisProfile *  monitorProfile,
-                               PaintFlags paintFlags,
-                               float exposure)
-{
-
-    TQImage img = convertToTQImage(x1, y1, x2, y2, monitorProfile, exposure);
-
-    TQ_INT32 w = x2 - x1 + 1;
-    TQ_INT32 h = y2 - y1 + 1;
-
-
-    if (paintFlags & PAINT_BACKGROUND) {
-        m_bkg->paintBackground(img, x1, y1);
-        img.setAlphaBuffer(false);
-    }
-
-    if (paintFlags & PAINT_SELECTION) {
-        if (m_activeLayer != 0) {
-            m_activeLayer->paintSelection(img, x1, y1, w, h);
-        }
-    }
-
-    if (paintFlags & PAINT_MASKINACTIVELAYERS) {
-        if (m_activeLayer != 0) {
-            m_activeLayer->paintMaskInactiveLayers(img, x1, y1, w, h);
-        }
-    }
-
-    painter.drawImage(x1, y1, img, 0, 0, w, h);
-}
-
-TQImage KisImage::convertToTQImage(TQ_INT32 x1,
-                                 TQ_INT32 y1,
-                                 TQ_INT32 x2,
-                                 TQ_INT32 y2,
-                                 KisProfile * profile,
-                                 float exposure)
-{
-    TQ_INT32 w = x2 - x1 + 1;
-    TQ_INT32 h = y2 - y1 + 1;
-
-    KisPaintDeviceSP dev = m_rootLayer->projection(TQRect(x1, y1, w, h));
-    TQImage img = dev->convertToTQImage(profile, x1, y1, w, h, exposure);
-
-    if (!img.isNull()) {
-
-#ifdef __BIG_ENDIAN__
-        uchar * data = img.bits();
-        for (int i = 0; i < w * h; ++i) {
-            uchar r, g, b, a;
-            a = data[0];
-            b = data[1];
-            g = data[2];
-            r = data[3];
-            data[0] = r;
-            data[1] = g;
-            data[2] = b;
-            data[3] = a;
-            data += 4;
-        }
-#endif
-
-        return img;
-    }
-
-    return TQImage();
-}
-
-TQImage KisImage::convertToTQImage(const TQRect& r, const TQSize& scaledImageSize, KisProfile *profile, PaintFlags paintFlags, float exposure)
-{
-
-    if (r.isEmpty() || scaledImageSize.isEmpty()) {
-        return TQImage();
-    }
-
-    TQ_INT32 imageWidth = width();
-    TQ_INT32 imageHeight = height();
-    TQ_UINT32 pixelSize = colorSpace()->pixelSize();
-
-    double xScale = static_cast<double>(imageWidth) / scaledImageSize.width();
-    double yScale = static_cast<double>(imageHeight) / scaledImageSize.height();
-
-    TQRect srcRect;
-
-    srcRect.setLeft(static_cast<int>(r.left() * xScale));
-    srcRect.setRight(static_cast<int>(ceil((r.right() + 1) * xScale)) - 1);
-    srcRect.setTop(static_cast<int>(r.top() * yScale));
-    srcRect.setBottom(static_cast<int>(ceil((r.bottom() + 1) * yScale)) - 1);
-
-    KisPaintDeviceSP mergedImage = m_rootLayer->projection(srcRect);
-    TQTime t;
-    t.start();
-
-    TQ_UINT8 *scaledImageData = new TQ_UINT8[r.width() * r.height() * pixelSize];
-
-    TQ_UINT8 *imageRow = new TQ_UINT8[srcRect.width() * pixelSize];
-    const TQ_INT32 imageRowX = srcRect.x();
-
-    for (TQ_INT32 y = 0; y < r.height(); ++y) {
-
-        TQ_INT32 dstY = r.y() + y;
-        TQ_INT32 dstX = r.x();
-        TQ_INT32 srcY = (dstY * imageHeight) / scaledImageSize.height();
-
-        mergedImage->readBytes(imageRow, imageRowX, srcY, srcRect.width(), 1);
-
-        TQ_UINT8 *dstPixel = scaledImageData + (y * r.width() * pixelSize);
-        TQ_UINT32 columnsRemaining = r.width();
-
-        while (columnsRemaining > 0) {
-
-            TQ_INT32 srcX = (dstX * imageWidth) / scaledImageSize.width();
-
-            memcpy(dstPixel, imageRow + ((srcX - imageRowX) * pixelSize), pixelSize);
-
-            ++dstX;
-            dstPixel += pixelSize;
-            --columnsRemaining;
-        }
-    }
-    kdDebug() << "Time elapsed scaling image: " << t.elapsed() << endl;
-
-    delete [] imageRow;
-
-    TQImage image = colorSpace()->convertToTQImage(scaledImageData, r.width(), r.height(), profile, INTENT_PERCEPTUAL, exposure);
-    delete [] scaledImageData;
-
-#ifdef __BIG_ENDIAN__
-    uchar * data = image.bits();
-    for (int i = 0; i < image.width() * image.height(); ++i) {
-      uchar r, g, b, a;
-      a = data[0];
-      b = data[1];
-      g = data[2];
-      r = data[3];
-      data[0] = r;
-      data[1] = g;
-      data[2] = b;
-      data[3] = a;
-      data += 4;
-    }
-#endif
-
-    if (paintFlags & PAINT_BACKGROUND) {
-        m_bkg->paintBackground(image, r, scaledImageSize, TQSize(imageWidth, imageHeight));
-        image.setAlphaBuffer(false);
-    }
-
-    if (paintFlags & PAINT_SELECTION) {
-        if (m_activeLayer != 0) {
-            m_activeLayer->paintSelection(image, r, scaledImageSize, TQSize(imageWidth, imageHeight));
-        }
-    }
-
-    /*if (paintFlags & PAINT_MASKINACTIVELAYERS) {
-        if (m_activeLayer != 0) {
-            m_activeLayer->paintMaskInactiveLayers(img, x1, y1, w, h);
-        }
-    }*/
-
-    return image;
-}
-
-KisPaintDeviceSP KisImage::mergedImage()
-{
-    return m_rootLayer->projection(TQRect(0, 0, m_width, m_height));
-}
-
-KisColor KisImage::mergedPixel(TQ_INT32 x, TQ_INT32 y)
-{
-    return m_rootLayer->projection(TQRect(x, y, 1, 1))->colorAt(x, y);
-}
-
-void KisImage::notifyLayersChanged()
-{
-    emit sigLayersChanged(rootLayer());
-}
-
-void KisImage::notifyPropertyChanged(KisLayerSP layer)
-{
-    emit sigLayerPropertiesChanged(layer);
-}
-
-void KisImage::notifyImageLoaded()
-{
-}
-
-TQRect KisImage::bounds() const
-{
-    return TQRect(0, 0, width(), height());
-}
-
-
-void KisImage::setUndoAdapter(KisUndoAdapter * adapter)
-{
-    m_adapter = adapter;
-}
-
-
-KisUndoAdapter* KisImage::undoAdapter() const
-{
-    return m_adapter;
-}
-
-bool KisImage::undo() const
-{
-    return (m_adapter && m_adapter->undo());
-}
-
-//KisGuideMgr *KisImage::guides() const
-//{
-//    return const_cast<KisGuideMgr*>(&m_guides);
-//}
-
-void KisImage::slotSelectionChanged()
-{
-    slotSelectionChanged(bounds());
-}
-
-void KisImage::slotSelectionChanged(const TQRect& r)
-{
-    TQRect r2(r.x() - 1, r.y() - 1, r.width() + 2, r.height() + 2);
-
-    if (!locked()) {
-        emit sigActiveSelectionChanged(this);
-        emit sigSelectionChanged(this);
-    } else {
-        m_private->selectionChangedWhileLocked = true;
-    }
-}
-
-KisColorSpace * KisImage::colorSpace() const
-{
-    return m_colorSpace;
-}
-
-void KisImage::setColorSpace(KisColorSpace * colorSpace)
-{
-    m_colorSpace = colorSpace;
-    m_rootLayer->resetProjection();
-    emit sigColorSpaceChanged(colorSpace);
-}
-
-void KisImage::setRootLayer(KisGroupLayerSP rootLayer)
-{
-    disconnect(m_rootLayer, TQT_SIGNAL(sigDirty(TQRect)), this, TQT_SIGNAL(sigImageUpdated(TQRect)));
-
-    m_rootLayer = rootLayer;
-
-    if (!locked()) {
-        connect(m_rootLayer, TQT_SIGNAL(sigDirty(TQRect)), this, TQT_SIGNAL(sigImageUpdated(TQRect)));
-    }
-    activate(m_rootLayer->firstChild());
-}
-
-void KisImage::addAnnotation(KisAnnotationSP annotation)
-{
-    // Find the icc annotation, if there is one
-    vKisAnnotationSP_it it = m_annotations.begin();
-    while (it != m_annotations.end()) {
-        if ((*it)->type() == annotation->type()) {
-            *it = annotation;
-            return;
-        }
-        ++it;
-    }
-    m_annotations.push_back(annotation);
-}
-
-KisAnnotationSP KisImage::annotation(TQString type)
-{
-    vKisAnnotationSP_it it = m_annotations.begin();
-    while (it != m_annotations.end()) {
-        if ((*it)->type() == type) {
-            return *it;
-        }
-        ++it;
-    }
-    return 0;
-}
-
-void KisImage::removeAnnotation(TQString type)
-{
-    vKisAnnotationSP_it it = m_annotations.begin();
-    while (it != m_annotations.end()) {
-        if ((*it)->type() == type) {
-            m_annotations.erase(it);
-            return;
-        }
-        ++it;
-    }
-}
-
-vKisAnnotationSP_it KisImage::beginAnnotations()
-{
-    KisProfile * profile = colorSpace()->getProfile();
-    KisAnnotationSP annotation;
-
-    if (profile)
-        annotation =  profile->annotation();
-
-    if (annotation)
-         addAnnotation(annotation);
-    else
-        removeAnnotation("icc");
-
-    return m_annotations.begin();
-}
-
-vKisAnnotationSP_it KisImage::endAnnotations()
-{
-    return m_annotations.end();
-}
-
-KisBackgroundSP KisImage::background() const
-{
-    return m_bkg;
-}
-
-KisPerspectiveGrid* KisImage::perspectiveGrid()
-{
-    return m_private->perspectiveGrid;
-}
-
-#include "kis_image.moc"
-
diff --git a/krita/core/kis_image.h b/krita/core/kis_image.h
deleted file mode 100644
index a39179537..000000000
--- a/krita/core/kis_image.h
+++ /dev/null
@@ -1,461 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *                2006 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_IMAGE_H_
-#define KIS_IMAGE_H_
-
-#include <tqobject.h>
-#include <tqstring.h>
-#include <tqvaluevector.h>
-#include <tqmutex.h>
-
-#include <config.h>
-
-#include <ksharedptr.h>
-#include <kurl.h>
-
-#include "KoUnit.h"
-
-#include "kis_composite_op.h"
-#include "kis_global.h"
-#include "kis_types.h"
-#include "kis_annotation.h"
-#include "kis_paint_device.h"
-
-#include <koffice_export.h>
-
-
-class DCOPObject;
-class KCommand;
-
-class KoCommandHistory;
-
-class KisColorSpace;
-class KisNameServer;
-class KisUndoAdapter;
-class KisPainter;
-class KCommand;
-class KisColor;
-class KisFilterStrategy;
-class KisImageIface;
-class KisProfile;
-class KisProgressDisplayInterface;
-class KisPaintLayer;
-class KisPerspectiveGrid;
-
-class KRITACORE_EXPORT KisImage : public TQObject, public KShared {
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    KisImage(KisUndoAdapter * adapter, TQ_INT32 width, TQ_INT32 height, KisColorSpace * colorSpace, const TQString& name);
-    KisImage(const KisImage& rhs);
-    virtual ~KisImage();
-    virtual DCOPObject *dcopObject();
-
-public:
-    typedef enum enumPaintFlags {
-        PAINT_IMAGE_ONLY = 0,
-        PAINT_BACKGROUND = 1,
-        PAINT_SELECTION = 2,
-        PAINT_MASKINACTIVELAYERS = 4,
-        PAINT_EMBEDDED_RECT = 8 // If the current layer is an embedded part draw a rect around it
-    } PaintFlags;
-
-    /// Paint the specified rect onto the painter, adjusting the colors using the
-    /// given profile. The exposure setting is used if the image has a high dynamic range.
-    virtual void renderToPainter(TQ_INT32 x1,
-                    TQ_INT32 y1,
-                    TQ_INT32 x2,
-                    TQ_INT32 y2,
-                    TQPainter &painter,
-                    KisProfile *profile,
-                    PaintFlags paintFlags,
-                    float exposure = 0.0f);
-    /**
-    * Render the projection onto a TQImage. In contrast with the above method, the
-    * selection is not rendered.
-    */
-    virtual TQImage convertToTQImage(TQ_INT32 x1,
-                                    TQ_INT32 y1,
-                                    TQ_INT32 x2,
-                                    TQ_INT32 y2,
-                                    KisProfile * profile,
-                                    float exposure = 0.0f);
-
-    virtual TQImage convertToTQImage(const TQRect& r, const TQSize& fullImageSize, KisProfile *profile, PaintFlags paintFlags, float exposure = 0.0f);
-
-    KisBackgroundSP background() const;
-    KisSubstrateSP substrate() const;
-    
-
-public:
-
-    /**
-    * Lock the image to make sure no recompositing-causing signals get emitted
-    * while you're messing with the layers. Don't forget to unlock again.
-    */
-    void lock();
-
-    /**
-    * Unlock the image to make sure the rest of Krita learns about changes in the image
-    * again. If the rootLayer is dirty on unlocking, an imgUpdated signal is sent out
-    * immediately.
-    */
-    void unlock();
-
-    /**
-    * Returns true if the image is locked.
-    */
-    bool locked() const;
-
-    KisColor backgroundColor() const;
-    void setBackgroundColor(const KisColor & color);
-
-    TQString name() const;
-    void setName(const TQString& name);
-
-    TQString description() const;
-    void setDescription(const TQString& description);
-
-    TQString nextLayerName() const;
-    void rollBackLayerName();
-    
-    KisPerspectiveGrid* perspectiveGrid();
-    void createPerspectiveGrid(TQPoint topLeft, TQPoint topRight, TQPoint bottomRight, TQPoint bottomLeft);
-    /**
-    * Resize the image to the specified width and height. The resize
-    * method handles the creating on an undo step itself.
-    *
-    * @param w the new width of the image
-    * @param h the new height of the image
-    * @param x the x position of the crop on all layer if cropLayers is true
-    * @param y the y position of the crop on all layer if cropLayers is true
-    * @param cropLayers if true, all layers are cropped to the new size.
-    */
-    void resize(TQ_INT32 w, TQ_INT32 h, TQ_INT32 x = 0, TQ_INT32 y = 0,  bool cropLayers = false);
-
-    /**
-    * Resize the image to the specified width and height. The resize
-    * method handles the creating on an undo step itself.
-    *
-    * @param rc the rect describing the new width and height of the image
-    * @param cropLayers if true, all layers are cropped to the new rect
-    */
-    void resize(const TQRect& rc, bool cropLayers = false);
-
-    void scale(double sx, double sy, KisProgressDisplayInterface *m_progress, KisFilterStrategy *filterStrategy);
-    void rotate(double radians, KisProgressDisplayInterface *m_progress);
-    void shear(double angleX, double angleY, KisProgressDisplayInterface *m_progress);
-
-    /**
-    * Convert the image and all its layers to the dstColorSpace
-    */
-    void convertTo(KisColorSpace * dstColorSpace, TQ_INT32 renderingIntent = INTENT_PERCEPTUAL);
-
-    // Get the profile associated with this image
-    KisProfile *  getProfile() const;
-
-    /**
-    * Set the profile of the image to the new profile and do the same for
-    * all layers that have the same colorspace and profile as the image.
-    * It doesn't do any pixel conversion.
-    *
-    * This is essential if you have loaded an image that didn't
-    * have an embedded profile to which you want to attach the right profile.
-    */
-
-    void setProfile(const KisProfile * profile);
-
-    /**
-    * Replace the current undo adapter with the specified undo adapter.
-    * The current undo adapter will _not_ be deleted.
-    */
-    void setUndoAdapter(KisUndoAdapter * undoAdapter);
-
-    /**
-    * Returns the current undo adapter. You can add new commands to the
-    * undo stack using the adapter
-    */
-    KisUndoAdapter *undoAdapter() const;
-
-    /**
-    * Returns true if this image wants undo information, false otherwise
-    */
-    bool undo() const;
-    /**
-    * Tell the image it's modified; this emits the sigImageModified signal. This happens
-    *  when the image needs to be saved
-    */
-    void setModified();
-
-    KisColorSpace * colorSpace() const;
-
-    // Resolution of the image == XXX: per inch?
-    double xRes();
-    double yRes();
-    void setResolution(double xres, double yres);
-
-    TQ_INT32 width() const;
-    TQ_INT32 height() const;
-
-    bool empty() const;
-
-    /**
-    *  returns a paintdevice that contains the merged layers of this image, within
-    * the bounds of this image (with the colorspace and profile of this image)
-    */
-    KisPaintDeviceSP mergedImage();
-
-    /*
-    * Returns the colour of the merged image at pixel (x, y).
-    */
-    KisColor mergedPixel(TQ_INT32 x, TQ_INT32 y);
-
-    /// Creates a new paint layer with the specified properties, adds it to the image, and returns it.
-    KisLayerSP newLayer(const TQString& name, TQ_UINT8 opacity,
-                            const KisCompositeOp& compositeOp = KisCompositeOp(), KisColorSpace * colorstrategy = 0);
-
-    /// Get the active painting device. Returns 0 if the active layer does not have a paint device.
-    KisPaintDeviceSP activeDevice();
-
-    void setLayerProperties(KisLayerSP layer, TQ_UINT8 opacity, const KisCompositeOp& compositeOp, const TQString& name);
-
-    KisGroupLayerSP rootLayer() const;
-    KisLayerSP activeLayer() const;
-
-    /// Return the projection; that is, the complete, composited representation
-    /// of this image.
-    KisPaintDeviceSP projection();
-    
-    KisLayerSP activate(KisLayerSP layer);
-    KisLayerSP findLayer(const TQString& name) const;
-    KisLayerSP findLayer(int id) const;
-
-    /// Move layer to specified position
-    bool moveLayer(KisLayerSP layer, KisGroupLayerSP tqparent, KisLayerSP aboveThis);
-
-    /**
-    * Add an already existing layer to the image. The layer is put on top
-    * of the layers in the specified layergroup
-    * @param layer the layer to be added
-    * @param tqparent the tqparent layer
-    */
-    bool addLayer(KisLayerSP layer, KisGroupLayerSP tqparent);
-    
-    /**
-    * Add already existing layer to image.
-    *
-    * @param layer the layer to be added
-    * @param tqparent the tqparent layer
-    * @param aboveThis in the list with child layers of the specified
-    *                  tqparent, add this layer above the specified sibling.
-    *                  if 0, the layer is put in the lowermost position in
-    *                  its group.
-    * @param notify If true, the image is immediately recomposited, if false,
-    *               no recomposition is done yet. The added layer is all
-    *
-    * returns false if adding the layer didn't work, true if the layer got added
-    */
-    bool addLayer(KisLayerSP layer, KisGroupLayerSP tqparent, KisLayerSP aboveThis);
-
-    /// Remove layer
-    bool removeLayer(KisLayerSP layer);
-
-    /// Move layer up one slot
-    bool raiseLayer(KisLayerSP layer);
-
-    /// Move layer down one slot
-    bool lowerLayer(KisLayerSP layer);
-
-    /// Move layer to top slot
-    bool toTop(KisLayerSP layer);
-
-    /// Move layer to bottom slot
-    bool toBottom(KisLayerSP layer);
-
-    TQ_INT32 nlayers() const;
-    TQ_INT32 nHiddenLayers() const;
-
-    KCommand *raiseLayerCommand(KisLayerSP layer);
-    KCommand *lowerLayerCommand(KisLayerSP layer);
-    KCommand *topLayerCommand(KisLayerSP layer);
-    KCommand *bottomLayerCommand(KisLayerSP layer);
-
-    /**
-    * Merge all visible layers and discard hidden ones.
-    * The resulting layer will be activated.
-    */
-    void flatten();
-
-    /**
-    * Merge the specified layer with the layer
-    * below this layer, remove the specified layer.
-    */
-    void mergeLayer(KisLayerSP l);
-
-    TQRect bounds() const;
-
-    /// use if the layers have changed _completely_ (eg. when flattening)
-    void notifyLayersChanged();
-
-    void notifyPropertyChanged(KisLayerSP layer);
-
-    void notifyImageLoaded();
-
-    void notifyLayerUpdated(KisLayerSP layer, TQRect rc);
-
-    void setColorSpace(KisColorSpace * colorSpace);
-    void setRootLayer(KisGroupLayerSP rootLayer);
-
-    //KisGuideMgr *guides() const;
-
-    /**
-    * Add an annotation for this image. This can be anything: Gamma, EXIF, etc.
-    * Note that the "icc" annotation is reserved for the colour strategies.
-    * If the annotation already exists, overwrite it with this one.
-    */
-    void addAnnotation(KisAnnotationSP annotation);
-
-    /** get the annotation with the given type, can return 0 */
-    KisAnnotationSP annotation(TQString type);
-
-    /** delete the annotation, if the image contains it */
-    void removeAnnotation(TQString type);
-
-    /**
-    * Start of an iteration over the annotations of this image (including the ICC Profile)
-    */
-    vKisAnnotationSP_it beginAnnotations();
-
-    /** end of an iteration over the annotations of this image */
-    vKisAnnotationSP_it endAnnotations();
-
-signals:
-
-    void sigActiveSelectionChanged(KisImageSP image);
-    void sigSelectionChanged(KisImageSP image);
-    void sigSelectionChanged(KisImageSP image, const TQRect& rect);
-
-    /// Emitted after a different layer is made active.
-    void sigLayerActivated(KisLayerSP layer);
-
-    /// Emitted after a layer is added: you can find out where by asking it for its tqparent(), et al.
-    void sigLayerAdded(KisLayerSP layer);
-
-    /** Emitted after a layer is removed.
-        It's no longer in the image, but still exists, so @p layer is valid.
-
-        @param layer the removed layer
-        @param tqparent the tqparent of the layer, before it was removed
-        @param wasAboveThis the layer it was above, before it was removed.
-    */
-    void sigLayerRemoved(KisLayerSP layer, KisGroupLayerSP wasParent, KisLayerSP wasAboveThis);
-
-    /** Emitted after a layer is moved to a different position under its tqparent layer, or its tqparent changes.
-
-        @param previousParent the tqparent of the layer, before it was moved
-        @param wasAboveThis the layer it was above, before it was moved.
-    */
-    void sigLayerMoved(KisLayerSP layer, KisGroupLayerSP previousParent, KisLayerSP wasAboveThis);
-
-    /// Emitted after a layer's properties (visible, locked, opacity, composite op, name, ...) change
-    void sigLayerPropertiesChanged(KisLayerSP layer);
-
-    /** Emitted when the list of layers has changed completely.
-        This means e.g. when the image is flattened, but not when it is rotated,
-        as the layers only change internally then.
-    */
-    void sigLayersChanged(KisGroupLayerSP rootLayer);
-
-    /**
-    * Emitted whenever an action has caused the image to be recomposited. This happens
-    * after calls to recomposite().
-    *
-    * @param rc The rect that has been recomposited.
-    */
-    void sigImageUpdated(TQRect rc);
-
-    /**
-    * Emitted whenever a layer is modified.
-    *
-    * @param layer The layer that has been modified.
-    * @param rc The rectangle that has been modified.
-    */
-    void sigLayerUpdated(KisLayerSP layer, TQRect rc);
-
-    /**
-    * Emitted whenever the image has been modified, so that it doesn't match with the version saved on disk.
-    */
-    void sigImageModified();
-
-    void sigSizeChanged(TQ_INT32 w, TQ_INT32 h);
-    void sigProfileChanged(KisProfile *  profile);
-    void sigColorSpaceChanged(KisColorSpace*  cs);
-
-
-    /// Emitted when any layer's tqmask info got updated (or when the current layer changes)
-    void sigMaskInfoChanged();
-public slots:
-    void slotSelectionChanged();
-    void slotSelectionChanged(const TQRect& r);
-
-
-private:
-    KisImage& operator=(const KisImage& rhs);
-    void init(KisUndoAdapter * adapter, TQ_INT32 width, TQ_INT32 height,  KisColorSpace * colorSpace, const TQString& name);
-    void emitSizeChanged();
-
-private:
-
-    KURL m_uri;
-    TQString m_name;
-    TQString m_description;
-
-    TQ_INT32 m_width;
-    TQ_INT32 m_height;
-
-    double m_xres;
-    double m_yres;
-
-    KoUnit::Unit m_unit;
-
-    KisColorSpace * m_colorSpace;
-
-    bool m_dirty;
-    TQRect m_dirtyRect;
-
-    KisBackgroundSP m_bkg;
-
-    KisGroupLayerSP m_rootLayer; // The layers are contained in here
-    KisLayerSP m_activeLayer;
-
-    KisNameServer *m_nserver;
-    KisUndoAdapter *m_adapter;
-    //KisGuideMgr m_guides;
-
-    DCOPObject *m_dcop;
-
-    vKisAnnotationSP m_annotations;
-
-    class KisImagePrivate;
-    KisImagePrivate * m_private;
-    
-};
-
-#endif // KIS_IMAGE_H_
diff --git a/krita/core/kis_image_iface.cc b/krita/core/kis_image_iface.cc
deleted file mode 100644
index a52cc8a45..000000000
--- a/krita/core/kis_image_iface.cc
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- *  This file is part of the KDE project
- *
- *  Copyright (C) 2002 Laurent Montel <lmontel@mandrakesoft.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-#include <kapplication.h>
-
-#include "kis_image_iface.h"
-#include "kis_types.h"
-#include "kis_image.h"
-#include "kis_paint_device.h"
-#include "kis_paint_device_iface.h"
-#include <dcopclient.h>
-
-KisImageIface::KisImageIface( KisImage * img )
-    : DCOPObject(img->name().utf8())
-{
-    m_img = img;
-}
-
-int KisImageIface::height() const
-{
-    return m_img->height();
-}
-
-int KisImageIface::width() const
-{
-    return m_img->width();
-}
-
-void KisImageIface::setName(const TQString& name)
-{
-    m_img->setName( name );
-}
-
-void KisImageIface::rotateCCW()
-{
-    // XXX: Add progress display if there is a view
-    m_img->rotate(270, 0);
-}
-
-void KisImageIface::rotateCW()
-{
-    // XXX: Add progressdisplay if there is a view
-    m_img->rotate(90, 0);
-}
-
-void KisImageIface::rotate180()
-{
-    // XXX: Add progressdisplay if there is a view
-    m_img->rotate(180, 0);
-}
-
-void KisImageIface::rotate(double angle)
-{
-    // XXX: Add progressdisplay if there is a view
-    angle *= M_PI/180;
-    m_img->rotate(angle, 0);
-}
-
-DCOPRef KisImageIface::activeDevice()
-{
-    KisPaintDeviceSP dev = m_img->activeDevice();
-
-    if( !dev )
-        return DCOPRef();
-    else
-        return DCOPRef( kapp->dcopClient()->appId(),
-                        dev->dcopObject()->objId(),
-                        "KisPaintDeviceIface");
-
-}
-
-DCOPRef KisImageIface::colorSpace() const
-{
-    KisColorSpace * cs = m_img->colorSpace();
-    if ( !cs )
-        return DCOPRef();
-    else
-        return DCOPRef( kapp->dcopClient()->appId(),
-                        cs->dcopObject()->objId(),
-                        "KisColorSpaceIface" );
-}
diff --git a/krita/core/kis_image_iface.h b/krita/core/kis_image_iface.h
deleted file mode 100644
index acf36738e..000000000
--- a/krita/core/kis_image_iface.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * This file is part of the KDE project
- *  Copyright (C) 2002 Laurent Montel <lmontel@mandrakesoft.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_IMAGE_IFACE_H
-#define KIS_IMAGE_IFACE_H
-
-#include <dcopref.h>
-#include <dcopobject.h>
-
-
-#include <tqstring.h>
-
-class KisImage;
-class KisPaintDeviceIface;
-
-class KisImageIface : virtual public DCOPObject
-{
-    K_DCOP
-public:
-    KisImageIface( KisImage *img_ );
-k_dcop:
-
-    int height() const;
-    int width() const;
-
-    void setName(const TQString& name);
-
-    void rotateCCW();
-    void rotateCW();
-    void rotate180();
-    void rotate(double angle);
-
-    /**
-     * Get the active painting device.
-     */
-    DCOPRef activeDevice();
-
-    /**
-     * Get the colorspace of this image
-     */
-    DCOPRef colorSpace() const;
-
-
-private:
-
-    KisImage *m_img;
-};
-
-#endif
diff --git a/krita/core/kis_imagepipe_brush.cc b/krita/core/kis_imagepipe_brush.cc
deleted file mode 100644
index 2b926dd06..000000000
--- a/krita/core/kis_imagepipe_brush.cc
+++ /dev/null
@@ -1,456 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *  Copyright (c) 2005 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#include <math.h>
-
-#include <netinet/in.h>
-#include <limits.h>
-#include <stdlib.h>
-
-#include <tqimage.h>
-#include <tqpoint.h>
-#include <tqvaluevector.h>
-#include <tqfile.h>
-#include <tqregexp.h>
-#include <tqstringlist.h>
-#include <tqtextstream.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-#include <kapplication.h>
-
-#include "kis_global.h"
-#include "kis_paint_device.h"
-#include "kis_imagepipe_brush.h"
-#include "kis_brush.h"
-#include "kis_alpha_tqmask.h"
-#include "kis_layer.h"
-#include "kis_meta_registry.h"
-#include "kis_colorspace_factory_registry.h"
-
-
-KisPipeBrushParasite::KisPipeBrushParasite(const TQString& source)
-{
-    needsMovement = false;
-    TQRegExp basicSplitter(" ", true);
-    TQRegExp parasiteSplitter(":", true);
-    TQStringList parasites = TQStringList::split(basicSplitter, source);
-    for (uint i = 0; i < parasites.count(); i++) {
-        TQStringList splitted = TQStringList::split(parasiteSplitter, *parasites.at(i));
-        if (splitted.count() != 2) {
-            kdWarning(41001) << "Wrong count for this parasite key/value:" << *parasites.at(i) << endl;
-            continue;
-        }
-        TQString index = *splitted.at(0);
-        if (index == "dim") {
-            dim = (*splitted.at(1)).toInt();
-            if (dim < 1 || dim > MaxDim) {
-                dim = 1;
-            }
-        } else if (index.startsWith("sel")) {
-            int selIndex = index.mid(strlen("sel")).toInt();
-            if (selIndex >= 0 && selIndex < dim) {
-                TQString selectionMode = *splitted.at(1);
-                if (selectionMode == "incremental")
-                    selection[selIndex] = Incremental;
-                else if (selectionMode == "angular") {
-                    selection[selIndex] = Angular;
-                    needsMovement = true;
-                } else if (selectionMode == "random")
-                    selection[selIndex] = Random;
-                else if (selectionMode == "pressure")
-                    selection[selIndex] = Pressure;
-                else if (selectionMode == "xtilt")
-                    selection[selIndex] = TiltX;
-                else if (selectionMode == "ytilt")
-                    selection[selIndex] = TiltY;
-                else
-                    selection[selIndex] = Constant;
-            } else {
-                kdWarning(41001)<< "Sel: wrong index: " << selIndex << "(dim = " << dim << ")" << endl;
-            }
-        } else if (index.startsWith("rank")) {
-            int rankIndex = index.mid(strlen("rank")).toInt();
-            if (rankIndex < 0 || rankIndex > dim) {
-                kdWarning(41001) << "Rankindex out of range: " << rankIndex << endl;
-                continue;
-            }
-            rank[rankIndex] = (*splitted.at(1)).toInt();
-        } else if (index == "ncells") {
-            ncells = (*splitted.at(1)).toInt();
-            if (ncells < 1 ) {
-                kdWarning(41001) << "ncells out of range: " << ncells << endl;
-                ncells = 1;
-            }
-        }
-    }
-
-    for (int i = 0; i < dim; i++) {
-        index[i] = 0;
-    }
-
-    setBrushesCount();
-}
-
-void KisPipeBrushParasite::setBrushesCount() {
-    // I assume ncells is correct. If it isn't, complain to the parasite header.
-    brushesCount[0] = ncells / rank[0];
-    for (int i = 1; i < dim; i++) {
-        brushesCount[i] = brushesCount[i-1] / rank[i];
-    }
-}
-
-bool KisPipeBrushParasite::saveToDevice(TQIODevice* dev) const {
-    // write out something like
-    // <count> ncells:<count> dim:<dim> rank0:<rank0> sel0:<sel0> <...>
-
-    TQTextStream stream(dev);
-    /// FIXME things like step, placement and so are not added (nor loaded, as a matter of fact)
-    stream << ncells << " ncells:" << ncells << " dim:" << dim;
-
-    for (int i = 0; i < dim; i++) {
-        stream << " rank" << i << ":" << rank[i] << " sel" << i << ":";
-        switch (selection[i]) {
-            case Constant: stream << "constant"; break;
-            case Incremental: stream << "incremental"; break;
-            case Angular: stream << "angular"; break;
-            case Velocity: stream << "velocity"; break;
-            case Random: stream << "random"; break;
-            case Pressure: stream << "pressure"; break;
-            case TiltX: stream << "xtilt"; break;
-            case TiltY: stream << "ytilt"; break;
-        }
-    }
-
-    return true;
-}
-
-KisImagePipeBrush::KisImagePipeBrush(const TQString& filename) : super(filename)
-{
-    m_brushType = INVALID;
-    m_numOfBrushes = 0;
-    m_currentBrush = 0;
-}
-
-KisImagePipeBrush::KisImagePipeBrush(const TQString& name, int w, int h,
-                                     TQValueVector< TQValueVector<KisPaintDevice*> > devices,
-                                     TQValueVector<KisPipeBrushParasite::SelectionMode> modes)
-    : super("")
-{
-    Q_ASSERT(devices.count() == modes.count());
-    Q_ASSERT(devices.count() > 0);
-    Q_ASSERT(devices.count() < 2); // XXX Multidimensionals not supported yet, change to MaxDim!
-
-    setName(name);
-
-    m_parasite.dim = devices.count();
-    // XXX Change for multidim! :
-    m_parasite.ncells = devices.at(0).count();
-    m_parasite.rank[0] = m_parasite.ncells;
-    m_parasite.selection[0] = modes.at(0);
-    // XXX needsmovement!
-
-    m_parasite.setBrushesCount();
-
-    for (uint i = 0; i < devices.at(0).count(); i++) {
-        m_brushes.append(new KisBrush(devices.at(0).at(i), 0, 0, w, h));
-    }
-
-    setImage(m_brushes.at(0)->img());
-
-    m_brushType = PIPE_IMAGE;
-}
-
-KisImagePipeBrush::~KisImagePipeBrush()
-{
-    m_brushes.setAutoDelete(true);
-    m_brushes.clear();
-}
-
-bool KisImagePipeBrush::load()
-{
-    TQFile file(filename());
-    file.open(IO_ReadOnly);
-    m_data = file.readAll();
-    file.close();
-    return init();
-}
-
-bool KisImagePipeBrush::init()
-{
-    // XXX: this doesn't correctly load the image pipe brushes yet.
-
-    // XXX: This stuff is in utf-8, too.
-    // The first line contains the name -- this means we look until we arrive at the first newline
-    TQValueVector<char> line1;
-
-    TQ_UINT32 i = 0;
-
-    while (m_data[i] != '\n' && i < m_data.size()) {
-        line1.append(m_data[i]);
-        i++;
-    }
-    setName(i18n(TQString::fromUtf8(&line1[0], i).ascii()));
-
-    i++; // Skip past the first newline
-
-    // The second line contains the number of brushes, separated by a space from the parasite
-
-    // XXX: This stuff is in utf-8, too.
-     TQValueVector<char> line2;
-     while (m_data[i] != '\n' && i < m_data.size()) {
-        line2.append(m_data[i]);
-         i++;
-     }
-
-    TQString paramline = TQString::fromUtf8((&line2[0]), line2.size());
-    TQ_UINT32 m_numOfBrushes = paramline.left(paramline.tqfind(' ')).toUInt();
-    m_parasite = paramline.mid(paramline.tqfind(' ') + 1);
-    i++; // Skip past the second newline
-
-     TQ_UINT32 numOfBrushes = 0;
-      while (numOfBrushes < m_numOfBrushes && i < m_data.size()){
-        KisBrush * brush = new KisBrush(name() + "_" + numOfBrushes,
-                        m_data,
-                        i);
-        Q_CHECK_PTR(brush);
-
-        m_brushes.append(brush);
-
-         numOfBrushes++;
-     }
-
-    if (!m_brushes.isEmpty()) {
-        setValid(true);
-        if (m_brushes.at( 0 )->brushType() == MASK) {
-            m_brushType = PIPE_MASK;
-        }
-        else {
-            m_brushType = PIPE_IMAGE;
-        }
-        setSpacing(m_brushes.at(m_brushes.count() - 1)->spacing());
-        setWidth(m_brushes.at(0)->width());
-        setHeight(m_brushes.at(0)->height());
-    }
-
-    m_data.resize(0);
-    return true;
-}
-
-bool KisImagePipeBrush::save()
-{
-    TQFile file(filename());
-    file.open(IO_WriteOnly | IO_Truncate);
-    bool ok = saveToDevice(&file);
-    file.close();
-    return ok;
-}
-
-bool KisImagePipeBrush::saveToDevice(TQIODevice* dev) const
-{
-    TQCString utf8Name = name().utf8(); // Names in v2 brushes are in UTF-8
-    char const* name = utf8Name.data();
-    int len = tqstrlen(name);
-
-    if (parasite().dim != 1) {
-        kdWarning(41001) << "Save to file for pipe brushes with dim != not yet supported!" << endl;
-        return false;
-    }
-
-    // Save this pipe brush: first the header, and then all individual brushes consecutively
-    // (this needs some care for when we have > 1 dimension), FIXME
-
-    // Gimp Pipe Brush header format: Name\n<number of brushes> <parasite>\n
-
-    // The name\n
-    if (dev->writeBlock(name, len) == -1)
-        return false;
-
-    if (dev->putch('\n') == -1)
-        return false;
-
-    // Write the parasite (also writes number of brushes)
-    if (!m_parasite.saveToDevice(dev))
-        return false;
-
-    if (dev->putch('\n') == -1)
-        return false;
-
-    // <gbr brushes>
-    for (uint i = 0; i < m_brushes.count(); i++)
-        if (!m_brushes.at(i)->saveToDevice(dev))
-            return false;
-
-    return true;
-}
-
-TQImage KisImagePipeBrush::img()
-{
-    if (m_brushes.isEmpty()) {
-        return 0;
-    }
-    else {
-        return m_brushes.at(0)->img();
-    }
-}
-
-KisAlphaMaskSP KisImagePipeBrush::tqmask(const KisPaintInformation& info, double subPixelX, double subPixelY) const
-{
-    if (m_brushes.isEmpty()) return 0;
-    selectNextBrush(info);
-    return m_brushes.at(m_currentBrush)->tqmask(info, subPixelX, subPixelY);
-}
-
-KisPaintDeviceSP KisImagePipeBrush::image(KisColorSpace * colorSpace, const KisPaintInformation& info, double subPixelX, double subPixelY) const
-{
-    if (m_brushes.isEmpty()) return 0;
-    selectNextBrush(info);
-    return m_brushes.at(m_currentBrush)->image(colorSpace, info, subPixelX, subPixelY);
-}
-
-void KisImagePipeBrush::setParasiteString(const TQString& parasite)
-{
-    m_parasiteString = parasite;
-    m_parasite = KisPipeBrushParasite(parasite);
-}
-
-
-enumBrushType KisImagePipeBrush::brushType() const
-{
-    if (m_brushType == PIPE_IMAGE && useColorAsMask()) {
-        return PIPE_MASK;
-    }
-    else {
-        return m_brushType;
-    }
-}
-
-bool KisImagePipeBrush::useColorAsMask() const
-{
-    if (m_brushes.count() > 0) {
-        return m_brushes.at(0)->useColorAsMask();
-    }
-    else {
-        return false;
-    }
-}
-
-void KisImagePipeBrush::setUseColorAsMask(bool useColorAsMask)
-{
-    for (uint i = 0; i < m_brushes.count(); i++) {
-        m_brushes.at(i)->setUseColorAsMask(useColorAsMask);
-    }
-}
-
-bool KisImagePipeBrush::hasColor() const
-{
-    if (m_brushes.count() > 0) {
-        return m_brushes.at(0)->hasColor();
-    }
-    else {
-        return false;
-    }
-}
-
-KisBoundary KisImagePipeBrush::boundary() {
-    Q_ASSERT(!m_brushes.isEmpty());
-    return m_brushes.at(0)->boundary();
-}
-
-void KisImagePipeBrush::selectNextBrush(const KisPaintInformation& info) const {
-    m_currentBrush = 0;
-    double angle;
-    for (int i = 0; i < m_parasite.dim; i++) {
-        int index = m_parasite.index[i];
-        switch (m_parasite.selection[i]) {
-            case KisPipeBrushParasite::Constant: break;
-            case KisPipeBrushParasite::Incremental:
-                index = (index + 1) % m_parasite.rank[i]; break;
-            case KisPipeBrushParasite::Random:
-                index = int(float(m_parasite.rank[i])*KApplication::random() / RAND_MAX); break;
-            case KisPipeBrushParasite::Pressure:
-                index = static_cast<int>(info.pressure * (m_parasite.rank[i] - 1) + 0.5); break;
-            case KisPipeBrushParasite::Angular:
-                // + M_PI_2 to be compatible with the gimp
-                angle = atan2(info.movement.y(), info.movement.x()) + M_PI_2;
-                // We need to be in the [0..2*Pi[ interval so that we can more nicely select it
-                if (angle < 0)
-                    angle += 2.0 * M_PI;
-                else if (angle > 2.0 * M_PI)
-                    angle -= 2.0 * M_PI;
-                index = static_cast<int>(angle / (2.0 * M_PI) * m_parasite.rank[i]);
-                break;
-            default:
-                kdWarning(41001) << "This parasite selectionMode has not been implemented. Reselecting"
-                        << " to Incremental" << endl;
-                m_parasite.selection[i] = KisPipeBrushParasite::Incremental;
-                index = 0;
-        }
-        m_parasite.index[i] = index;
-        m_currentBrush += m_parasite.brushesCount[i] * index;
-    }
-}
-
-bool KisImagePipeBrush::canPaintFor(const KisPaintInformation& info) {
-    if (info.movement.isNull() && m_parasite.needsMovement)
-        return false;
-    return true;
-}
-
-void KisImagePipeBrush::makeMaskImage() {
-    for (uint i = 0; i < m_brushes.count(); i++)
-        m_brushes.at(i)->makeMaskImage();
-
-    setBrushType(PIPE_MASK);
-    setUseColorAsMask(false);
-}
-
-KisImagePipeBrush* KisImagePipeBrush::clone() const {
-    // The obvious way of cloning each brush in this one doesn't work for some reason...
-
-    // XXX Multidimensionals not supported yet, change together with the constructor...
-    TQValueVector< TQValueVector<KisPaintDevice*> > devices;
-    TQValueVector<KisPipeBrushParasite::SelectionMode> modes;
-
-    devices.push_back(TQValueVector<KisPaintDevice*>());
-    modes.push_back(m_parasite.selection[0]);
-
-    for (uint i = 0; i < m_brushes.count(); i++) {
-        KisPaintDevice* pd = new KisPaintDevice(
-                KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID("RGBA",""),""), "clone pd" );
-        pd->convertFromTQImage(m_brushes.at(i)->img(), "");
-        devices.at(0).append(pd);
-    }
-
-    KisImagePipeBrush* c = new KisImagePipeBrush(name(), width(), height(), devices, modes);
-    // XXX clean up devices
-
-    return c;
-}
-
-#include "kis_imagepipe_brush.moc"
-
diff --git a/krita/core/kis_imagepipe_brush.h b/krita/core/kis_imagepipe_brush.h
deleted file mode 100644
index bc54204b6..000000000
--- a/krita/core/kis_imagepipe_brush.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *  Copyright (c) 2005 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_IMAGEPIPE_BRUSH_
-#define KIS_IMAGEPIPE_BRUSH_
-
-#include <tqptrlist.h>
-#include <tqvaluelist.h>
-#include <tqvaluevector.h>
-#include <tqmap.h>
-#include <tqstring.h>
-
-#include <kio/job.h>
-
-#include "kis_resource.h"
-#include "kis_brush.h"
-#include "kis_global.h"
-
-class TQCString;
-class TQImage;
-class TQPoint;
-class TQSize;
-
-/**
- * The parasite info that gets loaded from the terribly documented gimp pipe brush parasite.
- * We only store data we actually use.
- * BC: How it seems the dimension stuff interacts with rank, selectionMode and the actual
- * selection of a brush to be drawn. So apparantly you can have at most 4 'dimensions'.
- * Each dimension has a number of brushes, the rank. Each dimension has an associated selection
- * mode and placement mode (which we don't use). The selection mode says us in which way
- * which of the brushes or brush sets will be selected. In the case of a 1-dimensional pipe
- * brush it is easy.
- * However, when there are more dimensions it is a bit harder. You can according to the gimp
- * source maximally use 4 dimensions. When you want to select a brush, you first go to the
- * first dimension. Say it has a rank of 2. The code chooses one of the 2 according to the
- * selection mode. Say we choose 2. Then the currentBrush will skip over all the brushes
- * from the first element in dimension 1. Then in dimension we pick again from the choices
- * we have in dimension 2. We again add the appropriate amount to currentBrush. And so on,
- * until we have reached dimension dim. Or at least, that is how it looks like, we'll know
- * for sure when we can test it better with >1 dim brushes and Angular selectionMode.
- **/
-class KisPipeBrushParasite {
-public:
-    /// Set some default values
-    KisPipeBrushParasite() : ncells(0), dim(0), needsMovement(false) {
-        for (int i = 0; i < MaxDim; i++) {
-            rank[i] = index[i] = brushesCount[i] = 0;
-            selection[i] = Constant;
-        }
-    }
-    /// Initializes the brushesCount helper
-    void setBrushesCount();
-    /// Load the parasite from the source string
-    KisPipeBrushParasite(const TQString& source);
-    /**
-     * Saves a GIMP-compatible representation of this parasite to the device. Also writes the
-     * number of brushes (== ncells) (no trailing '\n') */
-    bool saveToDevice(TQIODevice* dev) const;
-
-    /** Velocity won't be supported, atm Angular and Tilt aren't either, but have chances of implementation */
-    enum SelectionMode {
-        Constant, Incremental, Angular, Velocity, Random, Pressure, TiltX, TiltY
-    };
-    enum Placement { DefaultPlacement, ConstantPlacement, RandomPlacement };
-    static int const MaxDim = 4;
-    //TQ_INT32 step;
-    TQ_INT32 ncells;
-    TQ_INT32 dim;
-    // Apparantly only used for editing a pipe brush, which we won't at the moment
-    // TQ_INT32 cols, rows;
-    // TQ_INT32 cellwidth, cellheight;
-    // Aparantly the gimp doesn't use this anymore? Anyway it is a bit weird to
-    // paint at someplace else than where your cursor displays it will...
-    //Placement placement;
-    TQ_INT32 rank[MaxDim];
-    SelectionMode selection[MaxDim];
-    /// The total count of brushes in each dimension (helper)
-    TQ_INT32 brushesCount[MaxDim];
-    /// The current index in each dimension, so that the selection modes know where to start
-    TQ_INT32 index[MaxDim];
-    /// If true, the brush won't be painted when there is no motion
-    bool needsMovement;
-};
-
-
-class KisImagePipeBrush : public KisBrush {
-    typedef KisBrush super;
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    KisImagePipeBrush(const TQString& filename);
-    /**
-     * Specialized constructor that makes a new pipe brush from a sequence of samesize
-     * devices. The fact that it's a vector of a vector, is to support multidimensional
-     * brushes (not yet supported!) */
-    KisImagePipeBrush(const TQString& name, int w, int h,
-                      TQValueVector< TQValueVector<KisPaintDevice*> > devices,
-                      TQValueVector<KisPipeBrushParasite::SelectionMode> modes);
-    virtual ~KisImagePipeBrush();
-
-    virtual bool load();
-    virtual bool save();
-    /// Will call KisBrush's saveToDevice as well
-    virtual bool saveToDevice(TQIODevice* dev) const;
-
-    /**
-      @return the next image in the pipe.
-      */
-    virtual TQImage img();
-
-    /**
-       @return the next tqmask in the pipe.
-    */
-    virtual KisAlphaMaskSP tqmask(const KisPaintInformation& info,
-                                double subPixelX = 0, double subPixelY = 0) const;
-    virtual KisPaintDeviceSP image(KisColorSpace * colorSpace, const KisPaintInformation& info,
-                             double subPixelX = 0, double subPixelY = 0) const;
-
-    virtual bool useColorAsMask() const;
-    virtual void setUseColorAsMask(bool useColorAsMask);
-    virtual bool hasColor() const;
-
-    virtual enumBrushType brushType() const;
-    
-    virtual KisBoundary boundary();
-    
-    KisPipeBrushParasite const& parasite() const { return m_parasite; }
-    
-    virtual bool canPaintFor(const KisPaintInformation& info);
-
-    virtual void makeMaskImage();
-
-    virtual KisImagePipeBrush* clone() const;
-
-private:
-    bool init();
-    void setParasiteString(const TQString& parasite);
-    void selectNextBrush(const KisPaintInformation& info) const;
-
-    TQString m_name;
-    TQString m_parasiteString; // Contains instructions on how to use the brush
-    mutable KisPipeBrushParasite m_parasite;
-    TQ_UINT32 m_numOfBrushes;
-    mutable TQ_UINT32 m_currentBrush;
-
-    TQByteArray m_data;
-    mutable TQPtrList<KisBrush> m_brushes;
-
-    enumBrushType m_brushType;
-    
-};
-
-#endif // KIS_IMAGEPIPE_BRUSH_
diff --git a/krita/core/kis_iterator.cc b/krita/core/kis_iterator.cc
deleted file mode 100644
index 0e0c2d813..000000000
--- a/krita/core/kis_iterator.cc
+++ /dev/null
@@ -1,142 +0,0 @@
-/* This file is part of the KDE project
- *   Copyright (c) 2004 Casper Boemann <cbr@boemann.dkt>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-
-#include <tqglobal.h>
-
-#include <kdebug.h>
-
-#include "kis_iterator.h"
-#include "kis_datamanager.h"
-#include "kis_tilediterator.h"
-
-KisRectIterator::KisRectIterator ( KisDataManager *dm, TQ_INT32  x, TQ_INT32  y, TQ_INT32  w, TQ_INT32  h, bool writable) 
-{
-    m_iter = new KisTiledRectIterator(dm, x, y, w, h, writable);
-}
-KisRectIterator::KisRectIterator(const KisRectIterator& rhs) 
-{
-    m_iter = rhs.m_iter;
-}
-
-KisRectIterator& KisRectIterator::operator=(const KisRectIterator& rhs)
-{
-    m_iter = rhs.m_iter;
-    return *this;
-}
-
-KisRectIterator::~KisRectIterator()
-{
-}
-
-TQ_UINT8 * KisRectIterator::rawData() const { return m_iter->rawData();}
-
-const TQ_UINT8 * KisRectIterator::oldRawData() const { return m_iter->oldRawData();}
-
-TQ_INT32 KisRectIterator::nConseqPixels() const { return m_iter->nConseqPixels(); }
-
-KisRectIterator & KisRectIterator::operator+=(int n) { m_iter->operator+=(n); return *this; }
-
-KisRectIterator & KisRectIterator::operator++() { m_iter->operator++(); return *this; }
-
-bool KisRectIterator::isDone()  const { return m_iter->isDone(); }
-
-TQ_INT32 KisRectIterator::x() const { return m_iter->x(); }
-TQ_INT32 KisRectIterator::y() const { return m_iter->y(); }
-
-//---------------------------------------------------------------------------------------
-
-KisHLineIterator::KisHLineIterator ( KisDataManager *dm, TQ_INT32  x, TQ_INT32 y, TQ_INT32 w, bool writable) 
-{
-    m_iter = new KisTiledHLineIterator(dm, x, y, w, writable);
-}
-
-KisHLineIterator::KisHLineIterator(const KisHLineIterator& rhs)
-{
-    m_iter = rhs.m_iter;
-}
-
-KisHLineIterator& KisHLineIterator::operator=(const KisHLineIterator& rhs)
-{ 
-
-    m_iter=rhs.m_iter; 
-    return *this; 
-}
-
-KisHLineIterator::~KisHLineIterator()
-{
-}
-
-TQ_UINT8 *KisHLineIterator::rawData() const 
-{ 
-    return m_iter->rawData();
-}
-
-const TQ_UINT8 *KisHLineIterator::oldRawData() const { return m_iter->oldRawData();}
-
-KisHLineIterator & KisHLineIterator::operator++() { m_iter->operator++(); return *this; }
-
-TQ_INT32 KisHLineIterator::nConseqHPixels() const { return m_iter->nConseqHPixels(); }
-
-KisHLineIterator & KisHLineIterator::operator+=(int n) { m_iter->operator+=(n); return *this; }
-
-KisHLineIterator & KisHLineIterator::operator--() { m_iter->operator--(); return *this; }
-
-bool KisHLineIterator::isDone()  const { return m_iter->isDone(); }
-
-TQ_INT32 KisHLineIterator::x() const { return m_iter->x(); }
- 
-TQ_INT32 KisHLineIterator::y() const { return m_iter->y(); }
-
-void KisHLineIterator::nextRow() { m_iter->nextRow(); }
-
-//---------------------------------------------------------------------------------------
-
-KisVLineIterator::KisVLineIterator ( KisDataManager *dm, TQ_INT32  x, TQ_INT32 y, TQ_INT32  h, bool writable)
-{
-    m_iter = new KisTiledVLineIterator(dm, x, y, h, writable);
-}
-
-KisVLineIterator::KisVLineIterator(const KisVLineIterator& rhs)
-{
-    m_iter = rhs.m_iter;
-}
-
-KisVLineIterator& KisVLineIterator::operator=(const KisVLineIterator& rhs)
-{
-    m_iter = rhs.m_iter;
-    return *this; 
-}
-
-KisVLineIterator::~KisVLineIterator()
-{
-}
-
-TQ_UINT8 *KisVLineIterator::rawData() const { return m_iter->rawData();}
-
-const TQ_UINT8 * KisVLineIterator::oldRawData() const { return m_iter->oldRawData();}
-
-KisVLineIterator & KisVLineIterator::operator++() { m_iter->operator++(); return *this; }
-
-bool KisVLineIterator::isDone() const { return m_iter->isDone(); }
-
-TQ_INT32 KisVLineIterator::x() const { return m_iter->x(); }
-
-TQ_INT32 KisVLineIterator::y() const { return m_iter->y(); }
-
-void KisVLineIterator::nextCol() { return m_iter->nextCol(); }
diff --git a/krita/core/kis_iterator.h b/krita/core/kis_iterator.h
deleted file mode 100644
index 893461a56..000000000
--- a/krita/core/kis_iterator.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/* This file is part of the KDE project
- *   Copyright (c) 2004 Casper Boemann <cbr@boemann.dkt>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-*/
-#ifndef KIS_ITERATOR_H_
-#define KIS_ITERATOR_H_
-
-#include <tqglobal.h>
-#include <ksharedptr.h>
-
-class KisTiledRectIterator;
-typedef KSharedPtr<KisTiledRectIterator> KisTiledRectIteratorSP;
-
-class KisTiledVLineIterator;
-typedef KSharedPtr<KisTiledVLineIterator> KisTiledVLineIteratorSP;
-
-class KisTiledHLineIterator;
-typedef KSharedPtr<KisTiledHLineIterator> KisTiledHLineIteratorSP;
-
-class KisDataManager;
-
-/**
- * The KisRectIterator iterators over a rectangular area in the most efficient order. That is,
- * there is no guarantee that the iterator will work scanline by scanline.
- */
-class KisRectIterator
-{
-
-
-public:
-    KisRectIterator ( KisDataManager *dm, TQ_INT32  x, TQ_INT32  y, TQ_INT32  w, TQ_INT32  h, bool writable);
-
-public:
-    virtual ~KisRectIterator();
-    KisRectIterator(const KisRectIterator& rhs);
-    KisRectIterator& operator=(const KisRectIterator& rhs);
-
-
-public:
-    /// returns a pointer to the pixel data. Do NOT interpret the data - leave that to a colorstrategy
-    TQ_UINT8 * rawData() const;
-
-    /// Returns a pointer to the pixel data as it was at the moment of the last memento creation.
-    const TQ_UINT8 * oldRawData() const;
-
-    /// Returns the number of consequtive pixels that we point at
-    /// This is useful for optimizing
-    TQ_INT32 nConseqPixels() const;
-
-    /// Advances a number of pixels until it reaches the end of the rect
-    KisRectIterator & operator+=(int n);
-
-    /// Advances one pixel going to the beginning of the next line when it reaches the end of a line
-    KisRectIterator & operator++();
-
-    /// returns true when iterators has reached the end
-    bool isDone()  const;
-
-     // current x position
-     TQ_INT32 x() const;
-
-     // current y position
-     TQ_INT32 y() const;
-
-private:
-
-    KisTiledRectIteratorSP m_iter;
-};
-
-class KisHLineIterator
-{
-
-public:
-
-    KisHLineIterator ( KisDataManager *dm, TQ_INT32  x, TQ_INT32 y, TQ_INT32 w, bool writable);
-
-public:
-
-    virtual ~KisHLineIterator();
-    KisHLineIterator(const KisHLineIterator& rhs);
-    KisHLineIterator& operator=(const KisHLineIterator& rhs);
-
-public:
-    /// Returns a pointer to the pixel data. Do NOT interpret the data - leave that to a colorstrategy
-    TQ_UINT8 *rawData() const;
-
-    /// Returns a pointer to the pixel data as it was at the moment of the last memento creation.
-    const TQ_UINT8 *oldRawData() const;
-
-    /// Advances one pixel until it reaches the end of the line
-    KisHLineIterator & operator++();
-
-    /// Returns the number of consequtive horizontal pixels that we point at
-    /// This is useful for optimizing
-    TQ_INT32 nConseqHPixels() const;
-
-    /// Advances a number of pixels until it reaches the end of the line
-    KisHLineIterator & operator+=(int n);
-
-    /// Goes back one pixel until it reaches the beginning of the line
-    KisHLineIterator & operator--();
-
-    /// returns true when iterators has reached the end
-    bool isDone()  const;
-
-    /// current x position
-    TQ_INT32 x() const;
-
-    /// current y position
-    TQ_INT32 y() const;
-
-    /// increment to the next row and rewind to the begining
-    void nextRow();
-
-
-private:
-
-    KisTiledHLineIteratorSP m_iter;
-};
-
-class KisVLineIterator
-{
-
-public:
-    KisVLineIterator ( KisDataManager *dm, TQ_INT32  x, TQ_INT32 y, TQ_INT32  h, bool writable);
-public:
-    ~KisVLineIterator();
-    KisVLineIterator(const KisVLineIterator& rhs);
-    KisVLineIterator& operator=(const KisVLineIterator& rhs);
-
-public:
-    /// returns a pointer to the pixel data. Do NOT interpret the data - leave that to a colorstrategy
-    TQ_UINT8 *rawData() const;
-
-    /// Returns a pointer to the pixel data as it was at the moment of the last memento creation.
-    const TQ_UINT8 * oldRawData() const;
-
-    /// Advances one pixel until it reaches the end of the line
-    KisVLineIterator & operator++();
-
-    /// returns true when iterators has reached the end
-    bool isDone() const;
-
-    /// current x position
-    TQ_INT32 x() const;
-
-    /// current y position
-    TQ_INT32 y() const;
-    
-    /// increment to the next column and rewind to the begining
-    void nextCol();
-
-private:
-
-    KisTiledVLineIteratorSP m_iter;
-
-};
-
-#endif
diff --git a/krita/core/kis_iteratorpixeltrait.h b/krita/core/kis_iteratorpixeltrait.h
deleted file mode 100644
index 5d2c957ff..000000000
--- a/krita/core/kis_iteratorpixeltrait.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/* This file is part of the KDE project
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>, the original iteratorpixel
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>, made it into a trait
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifndef KIS_ITERATORPIXELTRAIT_H_
-#define KIS_ITERATORPIXELTRAIT_H_
-
-#include "kis_iterator.h"
-#include <kis_paint_device.h>
-
-template< typename _iTp>
-class KisIteratorPixelTrait
-{
-public:
-    KisIteratorPixelTrait(KisPaintDevice * ndevice, _iTp *underlyingIterator)
-    :    m_device(ndevice),
-        m_underlyingIterator(underlyingIterator)
-    {
-        m_selectionIterator = NULL;
-    };
-
-    ~KisIteratorPixelTrait()
-    {
-        delete m_selectionIterator;
-    };
-
-    KisIteratorPixelTrait(const KisIteratorPixelTrait& rhs)
-    {
-        if (this == &rhs)
-            return;
-        m_device = rhs.m_device;
-        m_underlyingIterator = rhs.m_underlyingIterator;
-
-        if (rhs.m_selectionIterator) {
-            m_selectionIterator = new _iTp(*rhs.m_selectionIterator);
-        } else {
-            m_selectionIterator = 0;
-        }
-    }
-
-    KisIteratorPixelTrait& operator=(const KisIteratorPixelTrait& rhs)
-    {
-        if (this == &rhs)
-            return *this;
-        m_device = rhs.m_device;
-        m_underlyingIterator = rhs.m_underlyingIterator;
-
-        delete m_selectionIterator;
-        if (rhs.m_selectionIterator) {
-            m_selectionIterator = new _iTp(*rhs.m_selectionIterator);
-        } else {
-            m_selectionIterator = 0;
-        }
-
-        return *this;
-    }
-
-
-public:
-    /**
-     * Return one channel from the current kispixel. Does not check whether
-     * channel index actually exists in this colorspace.
-     */
-    inline TQ_UINT8 operator[](int index) const
-            { return m_underlyingIterator->rawData()[index]; };
-
-    /**
-     * Returns if the pixel is selected or not. This is much faster than first building a KisPixel
-     */
-    inline bool isSelected() const
-        {
-            if (m_selectionIterator)
-                return *(m_selectionIterator->rawData()) > SELECTION_THRESHOLD;
-            else
-                return true;
-        };
-
-    /**
-      * Returns the degree of selectedness of the pixel.
-      */
-    inline TQ_UINT8 selectedness() const
-        {
-            if (m_selectionIterator)
-                return *(m_selectionIterator->rawData());
-            else {
-                return MAX_SELECTED;
-            }
-        };
-
-    /**
-     * Returns the selectiontqmask from the current point; this is guaranteed
-     * to have the same number of consecutive pixels that the iterator has
-     * at a given point. It return a 0 if there is no selection.
-     */
-    inline TQ_UINT8 * selectionMask() const
-        {
-            if ( m_selectionIterator )
-                return m_selectionIterator->rawData();
-            else
-                return 0;
-        }
-
-
-protected:
-    KisPaintDevice *m_device;
-
-    inline void advance(int n){if (m_selectionIterator) for(int i=0; i< n; i++) ++(*m_selectionIterator);};
-    inline void retreat(){if (m_selectionIterator) --(*m_selectionIterator);};
-
-    void setSelectionIterator(_iTp *si){m_selectionIterator = si;};
-
-    _iTp *m_underlyingIterator;
-    _iTp *m_selectionIterator;
-};
-
-#endif
diff --git a/krita/core/kis_iterators_pixel.cc b/krita/core/kis_iterators_pixel.cc
deleted file mode 100644
index e543714ce..000000000
--- a/krita/core/kis_iterators_pixel.cc
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This file is part of the Krita project
- *
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "kis_iterators_pixel.h"
-#include "kis_global.h"
-#include "kis_paint_device.h"
-
-KisHLineIteratorPixel::KisHLineIteratorPixel( KisPaintDevice *ndevice, KisDataManager *dm, KisDataManager *sel_dm, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 offsetx, TQ_INT32 offsety, bool writable) :
-    KisHLineIterator(dm, x - offsetx, y - offsety, w, writable),
-    KisIteratorPixelTrait <KisHLineIterator> ( ndevice, this ),
-    m_offsetx(offsetx), m_offsety(offsety)
-{
-    if(sel_dm) {
-        KisHLineIterator * i = new KisHLineIterator(sel_dm, x - offsetx, y - offsety, w, false);
-        Q_CHECK_PTR(i);
-        KisIteratorPixelTrait <KisHLineIterator>::setSelectionIterator(i);
-    }
-}
-
-KisVLineIteratorPixel::KisVLineIteratorPixel( KisPaintDevice *ndevice, KisDataManager *dm, KisDataManager *sel_dm, TQ_INT32 x, TQ_INT32 y, TQ_INT32 h, TQ_INT32 offsetx, TQ_INT32 offsety, bool writable) :
-    KisVLineIterator(dm, x - offsetx, y - offsety, h, writable),
-    KisIteratorPixelTrait <KisVLineIterator> ( ndevice, this ),
-    m_offsetx(offsetx), m_offsety(offsety)
-{
-    if(sel_dm) {
-        KisVLineIterator * i = new KisVLineIterator(sel_dm, x - offsetx, y - offsety, h, false);
-        Q_CHECK_PTR(i);
-        KisIteratorPixelTrait <KisVLineIterator>::setSelectionIterator(i);
-    }
-}
-
-KisRectIteratorPixel::KisRectIteratorPixel( KisPaintDevice *ndevice, KisDataManager *dm, KisDataManager *sel_dm, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h, TQ_INT32 offsetx, TQ_INT32 offsety, bool writable) :
-    KisRectIterator(dm, x - offsetx, y - offsety, w, h, writable),
-    KisIteratorPixelTrait <KisRectIterator> ( ndevice, this ),
-    m_offsetx(offsetx), m_offsety(offsety)
-{
-    if(sel_dm) {
-        KisRectIterator * i = new KisRectIterator(sel_dm, x - offsetx, y - offsety, w, h, false);
-        Q_CHECK_PTR(i);
-        KisIteratorPixelTrait <KisRectIterator>::setSelectionIterator(i);
-    }
-}
diff --git a/krita/core/kis_iterators_pixel.h b/krita/core/kis_iterators_pixel.h
deleted file mode 100644
index bd82f856e..000000000
--- a/krita/core/kis_iterators_pixel.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/* This file is part of the KDE project
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifndef KIS_ITERATORS_PIXEL_H_
-#define KIS_ITERATORS_PIXEL_H_
-
-#include "kis_iterator.h"
-#include "kis_iteratorpixeltrait.h"
-
-/**
- * The pixel iterators are high level iterarators. The lower level iterators merely return a pointer to some memory
- * where a pixel begins; these iterators return KisPixels -- high-level representations of a pixel together with
- * color model, profile and selectedness. You can access individual channels using the KisPixel [] operator, and .
- */
-
-
-class KisHLineIteratorPixel : public KisHLineIterator, public KisIteratorPixelTrait <KisHLineIterator>
-{
-
-public:
-
-    KisHLineIteratorPixel( KisPaintDevice *ndevice, KisDataManager *dm, KisDataManager *sel_dm,
-                           TQ_INT32 x , TQ_INT32 y , TQ_INT32 w, TQ_INT32 offsetx, TQ_INT32 offsety,
-                           bool writable);
-    
-    KisHLineIteratorPixel(const KisHLineIteratorPixel& rhs) : KisHLineIterator(rhs), KisIteratorPixelTrait<KisHLineIterator>(rhs)
-        { m_offsetx = rhs.m_offsetx;  m_offsety = rhs.m_offsety; }
-        
-    KisHLineIteratorPixel& operator=(const KisHLineIteratorPixel& rhs)
-        {
-          KisHLineIterator::operator=(rhs);
-          KisIteratorPixelTrait<KisHLineIterator>::operator=(rhs);
-          m_offsetx = rhs.m_offsetx;  m_offsety = rhs.m_offsety;
-          return *this;
-        }
-
-    inline KisHLineIteratorPixel & operator ++() { KisHLineIterator::operator++(); advance(1); return *this;}
-    inline KisHLineIteratorPixel & operator --() { KisHLineIterator::operator--(); retreat(); return *this;}
-
-    inline void nextRow() {
-      KisHLineIterator::nextRow();
-      if (m_selectionIterator) m_selectionIterator->nextRow();
-    }
-
-    /// Advances a number of pixels until it reaches the end of the line
-    KisHLineIteratorPixel & operator+=(int n) { KisHLineIterator::operator+=(n); advance(n); return *this; };
-
-    TQ_INT32 x() const { return KisHLineIterator::x() + m_offsetx; }
-    
-    TQ_INT32 y() const { return KisHLineIterator::y() + m_offsety; }
-    
-    TQ_INT32 nConseqHPixels() const {
-        if (m_selectionIterator) {
-            TQ_INT32 tqparent = KisHLineIteratorPixel::nConseqHPixels();
-            TQ_INT32 selection = m_selectionIterator->nConseqHPixels();
-            if (tqparent < selection)
-                return tqparent;
-            return selection;
-        }
-        return KisHLineIteratorPixel::nConseqHPixels();
-    }
-protected:
-
-    TQ_INT32 m_offsetx, m_offsety;
-};
-
-class KisVLineIteratorPixel : public KisVLineIterator, public KisIteratorPixelTrait <KisVLineIterator>
-{
-public:
-    KisVLineIteratorPixel( KisPaintDevice *ndevice, KisDataManager *dm, KisDataManager *sel_dm,
-                           TQ_INT32 xpos , TQ_INT32 ypos , TQ_INT32 height, TQ_INT32 offsetx, TQ_INT32 offsety,
-                           bool writable);
-                           
-    KisVLineIteratorPixel(const KisVLineIteratorPixel& rhs) : KisVLineIterator(rhs), KisIteratorPixelTrait<KisVLineIterator>(rhs)
-        { m_offsetx = rhs.m_offsetx;  m_offsety = rhs.m_offsety; }
-        
-    KisVLineIteratorPixel& operator=(const KisVLineIteratorPixel& rhs)
-        {
-          KisVLineIterator::operator=(rhs);
-          KisIteratorPixelTrait<KisVLineIterator>::operator=(rhs);
-          m_offsetx = rhs.m_offsetx;  m_offsety = rhs.m_offsety;
-          return *this; }
-
-    inline KisVLineIteratorPixel & operator ++() { KisVLineIterator::operator++(); advance(1); return *this;}
-
-    inline void nextRow() {
-      KisVLineIterator::nextCol();
-      if (m_selectionIterator) m_selectionIterator->nextCol();
-    }
-
-    TQ_INT32 x() const { return KisVLineIterator::x() + m_offsetx; }
-    
-    TQ_INT32 y() const { return KisVLineIterator::y() + m_offsety; }
-
-protected:
-
-    TQ_INT32 m_offsetx, m_offsety;
-};
-
-class KisRectIteratorPixel : public KisRectIterator, public KisIteratorPixelTrait <KisRectIterator>
-{
-public:
-    KisRectIteratorPixel( KisPaintDevice *ndevice, KisDataManager *dm, KisDataManager *sel_dm,
-                          TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h, TQ_INT32 offsetx, TQ_INT32 offsety,
-                          bool writable);
-    
-    KisRectIteratorPixel(const KisRectIteratorPixel& rhs) : KisRectIterator(rhs), KisIteratorPixelTrait<KisRectIterator>(rhs)
-        { m_offsetx = rhs.m_offsetx;  m_offsety = rhs.m_offsety; }
-        
-    KisRectIteratorPixel& operator=(const KisRectIteratorPixel& rhs)
-        {
-          KisRectIterator::operator=(rhs);
-          KisIteratorPixelTrait<KisRectIterator>::operator=(rhs);
-          m_offsetx = rhs.m_offsetx;  m_offsety = rhs.m_offsety;
-          return *this; }
-
-    inline KisRectIteratorPixel & operator ++() { KisRectIterator::operator++(); advance(1); return *this;}
-
-    TQ_INT32 x() const { return KisRectIterator::x() + m_offsetx; }
-    
-    TQ_INT32 y() const { return KisRectIterator::y() + m_offsety; }
-
-    TQ_INT32 nConseqPixels() const {
-        if (m_selectionIterator) {
-            TQ_INT32 tqparent = KisRectIterator::nConseqPixels();
-            TQ_INT32 selection = m_selectionIterator->nConseqPixels();
-            if (tqparent < selection)
-                return tqparent;
-            return selection;
-        }
-        return KisRectIterator::nConseqPixels();
-    }
-
-protected:
-
-    TQ_INT32 m_offsetx, m_offsety;
-};
-
-#endif
diff --git a/krita/core/kis_layer.cc b/krita/core/kis_layer.cc
deleted file mode 100644
index cac178e52..000000000
--- a/krita/core/kis_layer.cc
+++ /dev/null
@@ -1,611 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-
-#include <kdebug.h>
-#include <tqimage.h>
-
-#include "kis_debug_areas.h"
-#include "kis_group_layer.h"
-#include "kis_image.h"
-#include "kis_layer.h"
-#include "kis_painter.h"
-#include "kis_undo_adapter.h"
-
-namespace {
-
-    class KisLayerCommand : public KNamedCommand {
-        typedef KNamedCommand super;
-
-    public:
-        KisLayerCommand(const TQString& name, KisLayerSP layer);
-        virtual ~KisLayerCommand() {}
-
-        virtual void execute() = 0;
-        virtual void unexecute() = 0;
-
-    protected:
-        void setUndo(bool undo);
-
-        KisLayerSP m_layer;
-    };
-
-    KisLayerCommand::KisLayerCommand(const TQString& name, KisLayerSP layer) :
-        super(name), m_layer(layer)
-    {
-    }
-
-    void KisLayerCommand::setUndo(bool undo)
-    {
-        if (m_layer->undoAdapter()) {
-            m_layer->undoAdapter()->setUndo(undo);
-        }
-    }
-
-    class KisLayerLockedCommand : public KisLayerCommand {
-        typedef KisLayerCommand super;
-
-    public:
-        KisLayerLockedCommand(KisLayerSP layer, bool newLocked);
-
-        virtual void execute();
-        virtual void unexecute();
-
-    private:
-        bool m_newLocked;
-    };
-
-    KisLayerLockedCommand::KisLayerLockedCommand(KisLayerSP layer, bool newLocked) :
-        super(i18n("Lock Layer"), layer)
-    {
-        m_newLocked = newLocked;
-    }
-
-    void KisLayerLockedCommand::execute()
-    {
-        setUndo(false);
-        m_layer->setLocked(m_newLocked);
-        setUndo(true);
-    }
-
-    void KisLayerLockedCommand::unexecute()
-    {
-        setUndo(false);
-        m_layer->setLocked(!m_newLocked);
-        setUndo(true);
-    }
-
-    class KisLayerOpacityCommand : public KisLayerCommand {
-        typedef KisLayerCommand super;
-
-    public:
-        KisLayerOpacityCommand(KisLayerSP layer, TQ_UINT8 oldOpacity, TQ_UINT8 newOpacity);
-
-        virtual void execute();
-        virtual void unexecute();
-
-    private:
-        TQ_UINT8 m_oldOpacity;
-        TQ_UINT8 m_newOpacity;
-    };
-
-    KisLayerOpacityCommand::KisLayerOpacityCommand(KisLayerSP layer, TQ_UINT8 oldOpacity, TQ_UINT8 newOpacity) :
-        super(i18n("Layer Opacity"), layer)
-    {
-        m_oldOpacity = oldOpacity;
-        m_newOpacity = newOpacity;
-    }
-
-    void KisLayerOpacityCommand::execute()
-    {
-        setUndo(false);
-        m_layer->setOpacity(m_newOpacity);
-        setUndo(true);
-    }
-
-    void KisLayerOpacityCommand::unexecute()
-    {
-        setUndo(false);
-        m_layer->setOpacity(m_oldOpacity);
-        setUndo(true);
-    }
-
-    class KisLayerVisibilityCommand : public KisLayerCommand {
-        typedef KisLayerCommand super;
-
-    public:
-        KisLayerVisibilityCommand(KisLayerSP layer, bool newVisibility);
-
-        virtual void execute();
-        virtual void unexecute();
-
-    private:
-        bool m_newVisibility;
-    };
-
-    KisLayerVisibilityCommand::KisLayerVisibilityCommand(KisLayerSP layer, bool newVisibility) :
-        super(i18n("Layer Visibility"), layer)
-    {
-        m_newVisibility = newVisibility;
-    }
-
-    void KisLayerVisibilityCommand::execute()
-    {
-        setUndo(false);
-        m_layer->setVisible(m_newVisibility);
-        setUndo(true);
-    }
-
-    void KisLayerVisibilityCommand::unexecute()
-    {
-        setUndo(false);
-        m_layer->setVisible(!m_newVisibility);
-        setUndo(true);
-    }
-
-    class KisLayerCompositeOpCommand : public KisLayerCommand {
-        typedef KisLayerCommand super;
-
-    public:
-        KisLayerCompositeOpCommand(KisLayerSP layer, const KisCompositeOp& oldCompositeOp, const KisCompositeOp& newCompositeOp);
-
-        virtual void execute();
-        virtual void unexecute();
-
-    private:
-        KisCompositeOp m_oldCompositeOp;
-        KisCompositeOp m_newCompositeOp;
-    };
-
-    KisLayerCompositeOpCommand::KisLayerCompositeOpCommand(KisLayerSP layer, const KisCompositeOp& oldCompositeOp,
-                                       const KisCompositeOp& newCompositeOp) :
-        super(i18n("Layer Composite Mode"), layer)
-    {
-        m_oldCompositeOp = oldCompositeOp;
-        m_newCompositeOp = newCompositeOp;
-    }
-
-    void KisLayerCompositeOpCommand::execute()
-    {
-        setUndo(false);
-        m_layer->setCompositeOp(m_newCompositeOp);
-        setUndo(true);
-    }
-
-    void KisLayerCompositeOpCommand::unexecute()
-    {
-        setUndo(false);
-        m_layer->setCompositeOp(m_oldCompositeOp);
-        setUndo(true);
-    }
-
-    class KisLayerOffsetCommand : public KNamedCommand {
-        typedef KNamedCommand super;
-
-    public:
-        KisLayerOffsetCommand(KisLayerSP layer, const TQPoint& oldpos, const TQPoint& newpos);
-        virtual ~KisLayerOffsetCommand();
-
-        virtual void execute();
-        virtual void unexecute();
-
-    private:
-        void moveTo(const TQPoint& pos);
-
-    private:
-        KisLayerSP m_layer;
-        TQRect m_updateRect;
-        TQPoint m_oldPos;
-        TQPoint m_newPos;
-    };
-
-    KisLayerOffsetCommand::KisLayerOffsetCommand(KisLayerSP layer, const TQPoint& oldpos, const TQPoint& newpos) :
-        super(i18n("Move Layer"))
-    {
-        m_layer = layer;
-        m_oldPos = oldpos;
-        m_newPos = newpos;
-
-        TQRect currentBounds = m_layer->exactBounds();
-        TQRect oldBounds = currentBounds;
-        oldBounds.moveBy(oldpos.x() - newpos.x(), oldpos.y() - newpos.y());
-
-        m_updateRect = currentBounds | oldBounds;
-    }
-
-    KisLayerOffsetCommand::~KisLayerOffsetCommand()
-    {
-    }
-
-    void KisLayerOffsetCommand::execute()
-    {
-        moveTo(m_newPos);
-    }
-
-    void KisLayerOffsetCommand::unexecute()
-    {
-        moveTo(m_oldPos);
-    }
-
-    void KisLayerOffsetCommand::moveTo(const TQPoint& pos)
-    {
-        if (m_layer->undoAdapter()) {
-            m_layer->undoAdapter()->setUndo(false);
-        }
-
-        m_layer->setX(pos.x());
-        m_layer->setY(pos.y());
-
-        m_layer->setDirty(m_updateRect);
-
-        if (m_layer->undoAdapter()) {
-            m_layer->undoAdapter()->setUndo(true);
-        }
-    }
-}
-
-static int getID()
-{
-    static int id = 1;
-    return id++;
-}
-
-
-KisLayer::KisLayer(KisImage *img, const TQString &name, TQ_UINT8 opacity) :
-    TQObject(0, name.latin1()),
-    KShared(),
-    m_id(getID()),
-    m_index(-1),
-    m_opacity(opacity),
-    m_locked(false),
-    m_visible(true),
-    m_temporary(false),
-    m_name(name),
-    m_parent(0),
-    m_image(img),
-    m_compositeOp(COMPOSITE_OVER)
-{
-}
-
-KisLayer::KisLayer(const KisLayer& rhs) :
-    TQObject(),
-    KShared(rhs)
-{
-    if (this != &rhs) {
-        m_id = getID();
-        m_index = -1;
-        m_opacity = rhs.m_opacity;
-        m_locked = rhs.m_locked;
-        m_visible = rhs.m_visible;
-        m_temporary = rhs.m_temporary;
-        m_dirtyRect = rhs.m_dirtyRect;
-        m_name = rhs.m_name;
-        m_image = rhs.m_image;
-        m_parent = 0;
-        m_compositeOp = rhs.m_compositeOp;
-    }
-}
-
-KisLayer::~KisLayer()
-{
-}
-
-void KisLayer::setClean(const TQRect & rect)
-{
-    if (m_dirtyRect.isValid() && rect.isValid()) {
-
-        // XXX: We should only set the parts clean that were actually cleaned. However, extent and exactBounds conspire
-        // to make that very hard atm.
-        //if (rect.tqcontains(m_dirtyRect)) m_dirtyRect = TQRect();
-        m_dirtyRect = TQRect();
-    }
-
-}
-
-bool KisLayer::dirty()
-{
-    return m_dirtyRect.isValid();
-}
-
-
-bool KisLayer::dirty(const TQRect & rc)
-{
-    if (!m_dirtyRect.isValid() || !rc.isValid()) return false;
-
-    return rc.intersects(m_dirtyRect);
-}
-
-TQRect KisLayer::dirtyRect() const
-{
-    return m_dirtyRect;
-}
-
-void KisLayer::setDirty(bool propagate)
-{
-    TQRect rc = extent();
-
-    if (rc.isValid()) m_dirtyRect = rc;
-
-    // If we're dirty, our tqparent is dirty, if we've got a tqparent
-    if (propagate && m_parent && rc.isValid()) m_parent->setDirty(m_dirtyRect);
-
-    if (m_image && rc.isValid()) {
-        m_image->notifyLayerUpdated(this, rc);
-    }
-}
-
-void KisLayer::setDirty(const TQRect & rc, bool propagate)
-{
-    // If we're dirty, our tqparent is dirty, if we've got a tqparent
-
-    if (rc.isValid())
-        m_dirtyRect |= rc;
-
-    if (propagate && m_parent && m_dirtyRect.isValid())
-        m_parent->setDirty(m_dirtyRect);
-
-    if (m_image && rc.isValid()) {
-        m_image->notifyLayerUpdated(this, rc);
-    }
-}
-
-KisGroupLayerSP KisLayer::tqparent() const
-{
-    return m_parent;
-}
-
-KisLayerSP KisLayer::prevSibling() const
-{
-    if (!tqparent())
-        return 0;
-    return tqparent()->at(index() - 1);
-}
-
-KisLayerSP KisLayer::nextSibling() const
-{
-    if (!tqparent())
-        return 0;
-    return tqparent()->at(index() + 1);
-}
-
-int KisLayer::index() const
-{
-    return m_index;
-}
-
-void KisLayer::setIndex(int i)
-{
-    if (!tqparent())
-        return;
-    tqparent()->setIndex(this, i);
-}
-
-KisLayerSP KisLayer::findLayer(const TQString& n) const
-{
-    if (name() == n)
-        return const_cast<KisLayer*>(this); //HACK any less ugly way? findLayer() is conceptually const...
-    for (KisLayerSP layer = firstChild(); layer; layer = layer->nextSibling())
-        if (KisLayerSP found = layer->findLayer(n))
-            return found;
-    return 0;
-}
-
-KisLayerSP KisLayer::findLayer(int i) const
-{
-    if (id() == i)
-        return const_cast<KisLayer*>(this); //HACK
-    for (KisLayerSP layer = firstChild(); layer; layer = layer->nextSibling())
-        if (KisLayerSP found = layer->findLayer(i))
-            return found;
-    return 0;
-}
-
-int KisLayer::numLayers(int flags) const
-{
-    int num = 0;
-    if (matchesFlags(flags)) num++;
-    for (KisLayerSP layer = firstChild(); layer; layer = layer->nextSibling())
-        num += layer->numLayers(flags);
-    return num;
-}
-
-bool KisLayer::matchesFlags(int flags) const
-{
-    if ((flags & Visible) && !visible())
-        return false;
-    if ((flags & Hidden) && visible())
-        return false;
-    if ((flags & Locked) && !locked())
-        return false;
-    if ((flags & Unlocked) && locked())
-        return false;
-    return true;
-}
-
-TQ_UINT8 KisLayer::opacity() const
-{
-    return m_opacity;
-}
-
-void KisLayer::setOpacity(TQ_UINT8 val)
-{
-    if (m_opacity != val)
-    {
-        m_opacity = val;
-        setDirty();
-        notifyPropertyChanged();
-    }
-}
-
-KNamedCommand *KisLayer::setOpacityCommand(TQ_UINT8 newOpacity)
-{
-    return new KisLayerOpacityCommand(this, opacity(), newOpacity);
-}
-
-KNamedCommand *KisLayer::setOpacityCommand(TQ_UINT8 prevOpacity, TQ_UINT8 newOpacity)
-{
-    return new KisLayerOpacityCommand(this, prevOpacity, newOpacity);
-}
-
-const bool KisLayer::visible() const
-{
-    return m_visible;
-}
-
-void KisLayer::setVisible(bool v)
-{
-    if (m_visible != v) {
-
-        m_visible = v;
-        notifyPropertyChanged();
-        setDirty();
-
-        if (undoAdapter() && undoAdapter()->undo()) {
-            undoAdapter()->addCommand(setVisibleCommand(v));
-        }
-    }
-}
-
-KNamedCommand *KisLayer::setVisibleCommand(bool newVisibility)
-{
-    return new KisLayerVisibilityCommand(this, newVisibility);
-}
-
-bool KisLayer::locked() const
-{
-    return m_locked;
-}
-
-void KisLayer::setLocked(bool l)
-{
-    if (m_locked != l) {
-        m_locked = l;
-        notifyPropertyChanged();
-
-        if (undoAdapter() && undoAdapter()->undo()) {
-            undoAdapter()->addCommand(setLockedCommand(l));
-        }
-    }
-}
-
-bool KisLayer::temporary() const
-{
-    return m_temporary;
-}
-
-void KisLayer::setTemporary(bool t)
-{
-    m_temporary = t;
-}
-
-KNamedCommand *KisLayer::setLockedCommand(bool newLocked)
-{
-    return new KisLayerLockedCommand(this, newLocked);
-}
-
-TQString KisLayer::name() const
-{
-        return m_name;
-}
-
-void KisLayer::setName(const TQString& name)
-{
-    if (!name.isEmpty() && m_name != name)
-    {
-        m_name = name;
-        notifyPropertyChanged();
-    }
-}
-
-void KisLayer::setCompositeOp(const KisCompositeOp& compositeOp)
-{
-    if (m_compositeOp != compositeOp)
-    {
-       m_compositeOp = compositeOp;
-       notifyPropertyChanged();
-       setDirty();
-
-    }
-}
-
-KNamedCommand *KisLayer::setCompositeOpCommand(const KisCompositeOp& newCompositeOp)
-{
-    return new KisLayerCompositeOpCommand(this, compositeOp(), newCompositeOp);
-}
-
-KNamedCommand *KisLayer::moveCommand(TQPoint oldPosition, TQPoint newPosition)
-{
-    return new KisLayerOffsetCommand(this, oldPosition, newPosition);
-}
-
-KisUndoAdapter *KisLayer::undoAdapter() const
-{
-    if (m_image) {
-        return m_image->undoAdapter();
-    }
-    return 0;
-}
-
-void KisLayer::paintMaskInactiveLayers(TQImage &, TQ_INT32, TQ_INT32, TQ_INT32, TQ_INT32)
-{
-}
-
-void KisLayer::paintSelection(TQImage &, TQ_INT32, TQ_INT32, TQ_INT32, TQ_INT32)
-{
-}
-
-void KisLayer::paintSelection(TQImage &, const TQRect&, const TQSize&, const TQSize&)
-{
-}
-
-TQImage KisLayer::createThumbnail(TQ_INT32, TQ_INT32)
-{
-    return 0;
-}
-
-void KisLayer::notifyPropertyChanged()
-{
-    if(image() && !signalsBlocked())
-        image()->notifyPropertyChanged(this);
-}
-
-void KisLayerSupportsIndirectPainting::setTemporaryTarget(KisPaintDeviceSP t) {
-     m_temporaryTarget = t;
-}
-
-void KisLayerSupportsIndirectPainting::setTemporaryCompositeOp(const KisCompositeOp& c) {
-     m_compositeOp = c;
-}
-
-void KisLayerSupportsIndirectPainting::setTemporaryOpacity(TQ_UINT8 o) {
-    m_compositeOpacity = o;
-}
-
-KisPaintDeviceSP KisLayerSupportsIndirectPainting::temporaryTarget() {
-    return m_temporaryTarget;
-}
-
-KisCompositeOp KisLayerSupportsIndirectPainting::temporaryCompositeOp() const {
-    return m_compositeOp;
-}
-
-TQ_UINT8 KisLayerSupportsIndirectPainting::temporaryOpacity() const {
-    return m_compositeOpacity;
-}
-
-#include "kis_layer.moc"
diff --git a/krita/core/kis_layer.h b/krita/core/kis_layer.h
deleted file mode 100644
index fd7108393..000000000
--- a/krita/core/kis_layer.h
+++ /dev/null
@@ -1,257 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-#ifndef KIS_LAYER_H_
-#define KIS_LAYER_H_
-
-#include <tqobject.h>
-#include "kis_types.h"
-#include "kis_layer_visitor.h"
-#include "kis_composite_op.h"
-#include <koffice_export.h>
-
-class KNamedCommand;
-class TQPainter;
-class KisUndoAdapter;
-class KisGroupLayer;
-
-/**
- * Abstract class that represents the concept of a Layer in Krita. This is not related
- * to the paint devices: this is merely an abstraction of how layers can be stacked and
- * rendered differently.
- * Regarding the previous-, first-, next- and lastChild() calls, first means that it the layer
- * is at the top of the group in the layerlist, using next will iterate to the bottom to last,
- * whereas previous will go up to first again.
- **/
-class KRITACORE_EXPORT KisLayer : public TQObject, public KShared
-{
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    KisLayer(KisImage *img, const TQString &name, TQ_UINT8 opacity);
-    KisLayer(const KisLayer& rhs);
-    virtual ~KisLayer();
-
-    
-    /**
-     * Set the specified rect to clean
-     */
-    virtual void setClean(const TQRect & rect);
-    
-    /**
-     * If the layer has been changed and not been composited yet, this returns true
-     */
-    virtual bool dirty();
-
-    /**
-     * Return true if the given rect intersects the dirty rect(s) of this layer
-     */
-    virtual bool dirty(const TQRect & rc);
-
-
-    virtual TQRect dirtyRect() const;
-    
-    
-    /**
-     * Set the entire layer extent dirty; this percolates up to tqparent layers all the
-     * way to the root layer.
-     */
-    virtual void setDirty(bool propagate = true);
-
-    /**
-     * Add the given rect to the set of dirty rects for this layer;
-     * this percolates up to tqparent layers all the way to the root
-     * layer.
-     */
-    virtual void setDirty(const TQRect & rect, bool propagate = true);
-    
-    /// Return a copy of this layer
-    virtual KisLayerSP clone() const = 0;
-
-    /// Returns the ID of the layer, which is guaranteed to be unique among all KisLayers.
-    int id() const { return m_id; }
-
-    /* Returns the index of the layer in its tqparent's list of child layers. Indices
-     * increase from 0, which is the topmost layer in the list, to the bottommost.
-     */
-    virtual int index() const;
-
-    /// Moves this layer to the specified index within its tqparent's list of child layers.
-    virtual void setIndex(int index);
-
-    /**
-     * Returns the tqparent layer of a layer. This is 0 only for a root layer; otherwise
-     * this will be an actual GroupLayer */
-    virtual KisGroupLayerSP tqparent() const;
-
-    /**
-     * Returns the previous sibling of this layer in the tqparent's list. This is the layer
-     * *above* this layer. 0 is returned if there is no tqparent, or if this child has no more
-     * previous siblings (== firstChild())
-     */
-    virtual KisLayerSP prevSibling() const;
-
-    /**
-     * Returns the next sibling of this layer in the tqparent's list. This is the layer *below*
-     * this layer. 0 is returned if there is no tqparent, or if this child has no more next 
-     * siblings (== lastChild())
-     */
-    virtual KisLayerSP nextSibling() const;
-
-    /**
-     * Returns the sibling above this layer in its tqparent's list. 0 is returned if there is no tqparent,
-     * or if this layer is the topmost layer in its group. This is the same as calling prevSibling().
-     */
-    KisLayerSP siblingAbove() const { return prevSibling(); }
-
-    /**
-     * Returns the sibling below this layer in its tqparent's list. 0 is returned if there is no tqparent,
-     * or if this layer is the bottommost layer in its group.  This is the same as calling nextSibling().
-     */
-    KisLayerSP siblingBelow() const { return nextSibling(); }
-
-    /// Returns how many direct child layers this layer has (not recursive).
-    virtual uint childCount() const { return 0; }
-
-    /// Returns the first child layer of this layer (if it supports that).
-    virtual KisLayerSP firstChild() const { return 0; }
-
-    /// Returns the last child layer of this layer (if it supports that).
-    virtual KisLayerSP lastChild() const { return 0; }
-
-    /// Recursively searches this layer and any child layers for a layer with the specified name.
-    virtual KisLayerSP findLayer(const TQString& name) const;
-
-    /// Recursively searches this layer and any child layers for a layer with the specified ID.
-    virtual KisLayerSP findLayer(int id) const;
-
-    enum { Visible = 1, Hidden = 2, Locked = 4, Unlocked = 8 };
-
-    /// Returns the total number of layers in this layer, its child layers, and their child layers recursively, optionally ones with the specified properties Visible or Locked, which you can OR together.
-    virtual int numLayers(int type = 0) const;
-
-public:
-    /// Called when the layer is made active
-    virtual void activate() {};
-
-    /// Called when another layer is made active
-    virtual void deactivate() {};
-
-public:
-    virtual TQ_INT32 x() const = 0;
-    virtual void setX(TQ_INT32) = 0;
-
-    virtual TQ_INT32 y() const = 0;
-    virtual void setY(TQ_INT32) = 0;
-
-    virtual KNamedCommand *moveCommand(TQPoint oldPosition, TQPoint newPosition);
-
-    /// Returns an approximation of where the bounds on actual data are in this layer
-    virtual TQRect extent() const = 0;
-    /// Returns the exact bounds of where the actual data resides in this layer
-    virtual TQRect exactBounds() const = 0;
-
-    virtual const bool visible() const;
-    virtual void setVisible(bool v);
-    KNamedCommand *setVisibleCommand(bool visiblel);
-
-    TQ_UINT8 opacity() const;
-    void setOpacity(TQ_UINT8 val);
-    KNamedCommand *setOpacityCommand(TQ_UINT8 val);
-    KNamedCommand *setOpacityCommand(TQ_UINT8 prevOpacity, TQ_UINT8 newOpacity);
-
-    bool locked() const;
-    void setLocked(bool l);
-    KNamedCommand *setLockedCommand(bool locked);
-
-    void notifyPropertyChanged();
-
-    bool temporary() const;
-    void setTemporary(bool t);
-
-    virtual TQString name() const;
-    virtual void setName(const TQString& name);
-
-    KisCompositeOp compositeOp() { return m_compositeOp; }
-    void setCompositeOp(const KisCompositeOp& compositeOp);
-    KNamedCommand *setCompositeOpCommand(const KisCompositeOp& compositeOp);
-
-    KisImage *image() const { return m_image; }
-    virtual void setImage(KisImage *image) { m_image = image; }
-
-    KisUndoAdapter *undoAdapter() const;
-
-    /// paints a tqmask where the selection on this layer resides
-    virtual void paintSelection(TQImage &img, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
-    virtual void paintSelection(TQImage &img, const TQRect& scaledImageRect, const TQSize& scaledImageSize, const TQSize& imageSize);
-
-    /// paints where no data is on this layer. Useful when it is a transparent layer stacked on top of another one
-    virtual void paintMaskInactiveLayers(TQImage &img, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
-
-    /// Returns a thumbnail in requested size. The TQImage may have transparent parts.
-    /// May also return 0
-    virtual TQImage createThumbnail(TQ_INT32 w, TQ_INT32 h);
-
-    /// Accept the KisLayerVisitor (for the Visitor design pattern), should call the correct function on the KisLayerVisitor for this layer type
-    virtual bool accept(KisLayerVisitor &) = 0;
-
-private:
-    friend class KisGroupLayer;
-
-    bool matchesFlags(int flags) const;
-
-    int m_id;
-    int m_index;
-    TQ_UINT8 m_opacity;
-    bool m_locked;
-    bool m_visible;
-    bool m_temporary;
-
-    // XXX: keep a list of dirty rects instead of always aggegrating them
-    TQRect m_dirtyRect;
-    TQString m_name;
-    KisGroupLayerSP m_parent;
-    KisImage *m_image;
-
-    // Operation used to composite this layer with the layers _under_ this layer
-    KisCompositeOp m_compositeOp;
-};
-
-// For classes that support indirect painting
-class KRITACORE_EXPORT KisLayerSupportsIndirectPainting {
-    // To simulate the indirect painting
-    KisPaintDeviceSP m_temporaryTarget;
-    KisCompositeOp m_compositeOp;
-    TQ_UINT8 m_compositeOpacity;
-public:
-    // Indirect painting
-    void setTemporaryTarget(KisPaintDeviceSP t);
-    void setTemporaryCompositeOp(const KisCompositeOp& c);
-    void setTemporaryOpacity(TQ_UINT8 o);
-    KisPaintDeviceSP temporaryTarget();
-    KisCompositeOp temporaryCompositeOp() const;
-    TQ_UINT8 temporaryOpacity() const;
-
-    // Or I could make KisLayer a virtual base of KisLayerSupportsIndirectPainting and so, but
-    // I'm sure virtual diamond inheritance isn't as appreciated as this
-    virtual KisLayer* layer() = 0;
-};
-
-#endif // KIS_LAYER_H_
-
diff --git a/krita/core/kis_layer_visitor.h b/krita/core/kis_layer_visitor.h
deleted file mode 100644
index 4326bc54b..000000000
--- a/krita/core/kis_layer_visitor.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_LAYER_VISITOR_H_
-#define KIS_LAYER_VISITOR_H_
-
-#include "kis_global.h"
-#include "kis_types.h"
-
-class KisPaintLayer;
-class KisGroupLayer;
-class KisPartLayer;
-class KisAdjustmentLayer;
-
-class KisLayerVisitor {
-public:
-    KisLayerVisitor() {};
-    virtual ~KisLayerVisitor() {};
-
-public:
-    virtual bool visit(KisPaintLayer *layer) = 0;
-    virtual bool visit(KisGroupLayer *layer) = 0;
-    virtual bool visit(KisPartLayer *layer) = 0;
-    virtual bool visit(KisAdjustmentLayer *layer) = 0;
-};
-
-
-#endif // KIS_LAYER_VISITOR_H_
-
diff --git a/krita/core/kis_math_toolbox.cpp b/krita/core/kis_math_toolbox.cpp
deleted file mode 100644
index f4fdf88c3..000000000
--- a/krita/core/kis_math_toolbox.cpp
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- *  This file is part of the KDE project
- *
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "kis_math_toolbox.h"
-
-#ifdef HAVE_OPENEXR
-#include <half.h>
-#endif
-
-#include "kis_basic_math_toolbox.h"
-#include "kis_iterators_pixel.h"
-
-
-KisMathToolbox::KisMathToolbox(KisID id) : m_id(id)
-{
-}
-
-KisMathToolbox::~KisMathToolbox()
-{
-}
-
-KisMathToolboxFactoryRegistry::KisMathToolboxFactoryRegistry()
-{
-    add(new KisBasicMathToolbox());
-}
-KisMathToolboxFactoryRegistry::~KisMathToolboxFactoryRegistry()
-{
-}
-template<typename T>
-double toDouble(TQ_UINT8* data, int channelpos )
-{
-    return (float)( *((T*)(data + channelpos)) );
-}
-
-typedef double (*PtrToDouble)(TQ_UINT8*, int);
-
-template<typename T>
-void fromDouble(TQ_UINT8* data, int channelpos, double v )
-{
-    *((T*)(data + channelpos)) = (T)v;
-}
-
-typedef void (*PtrFromDouble)(TQ_UINT8*, int, double);
-
-
-void KisMathToolbox::transformToFR(KisPaintDeviceSP src, KisFloatRepresentation* fr, const TQRect& rect)
-{
-    TQ_INT32 depth = src->colorSpace()->nColorChannels();
-    TQMemArray<PtrToDouble> f(depth);
-    TQValueVector<KisChannelInfo *> cis = src->colorSpace()->channels();
-    for(TQ_INT32 k = 0; k < depth; k++)
-    {
-        switch( cis[k]->channelValueType() )
-        {
-            case KisChannelInfo::UINT8:
-                f[k] = toDouble<TQ_UINT8>;
-                break;
-            case KisChannelInfo::UINT16:
-                f[k] = toDouble<TQ_UINT16>;
-                break;
-#ifdef HAVE_OPENEXR		
-            case KisChannelInfo::FLOAT16:
-                f[k] = toDouble<half>;
-                break;
-#endif
-            case KisChannelInfo::FLOAT32:
-                f[k] = toDouble<float>;
-                break;
-            case KisChannelInfo::INT8:
-                f[k] = toDouble<TQ_INT8>;
-                break;
-            case KisChannelInfo::INT16:
-                f[k] = toDouble<TQ_INT16>;
-                break;
-            default:
-                kdWarning() << "Unsupported value type in KisMathToolbox" << endl;
-                return;
-        }
-    }
-    
-    for(int i = rect.y(); i < rect.height(); i++)
-    {
-        KisHLineIteratorPixel srcIt = src->createHLineIterator(rect.x(), i, rect.width(), false );
-        float *dstIt = fr->coeffs + (i-rect.y()) * fr->size * fr->depth;
-        while( ! srcIt.isDone() )
-        {
-            TQ_UINT8* v1 = srcIt.rawData();
-            for( int k = 0; k < depth; k++)
-            {
-                *dstIt = f[k](v1, cis[k]->pos());
-                ++dstIt;
-            }
-            ++srcIt;
-        }
-    }
-}
-
-void KisMathToolbox::transformFromFR(KisPaintDeviceSP dst, KisFloatRepresentation* fr, const TQRect& rect)
-{
-    TQ_INT32 depth = dst->colorSpace()->nColorChannels();
-    TQMemArray<PtrFromDouble> f(depth);
-    TQValueVector<KisChannelInfo *> cis = dst->colorSpace()->channels();
-    for(TQ_INT32 k = 0; k < depth; k++)
-    {
-        switch( cis[k]->channelValueType() )
-        {
-            case KisChannelInfo::UINT8:
-                f[k] = fromDouble<TQ_UINT8>;
-                break;
-            case KisChannelInfo::UINT16:
-                f[k] = fromDouble<TQ_UINT16>;
-                break;
-#ifdef HAVE_OPENEXR
-            case KisChannelInfo::FLOAT16:
-                f[k] = fromDouble<half>;
-                break;
-#endif		
-            case KisChannelInfo::FLOAT32:
-                f[k] = fromDouble<float>;
-                break;
-            case KisChannelInfo::INT8:
-                f[k] = fromDouble<TQ_INT8>;
-                break;
-            case KisChannelInfo::INT16:
-                f[k] = fromDouble<TQ_INT16>;
-                break;
-            default:
-                kdWarning() << "Unsupported value type in KisMathToolbox" << endl;
-                return;
-        }
-    }
-    for(int i = rect.y(); i < rect.height(); i++)
-    {
-        KisHLineIteratorPixel dstIt = dst->createHLineIterator(rect.x(), i, rect.width(), true );
-        float *srcIt = fr->coeffs + (i-rect.y()) * fr->size * fr->depth;
-        while( ! dstIt.isDone() )
-        {
-            TQ_UINT8* v1 = dstIt.rawData();
-            for( int k = 0; k < depth; k++)
-            {
-                f[k](v1, cis[k]->pos(), *srcIt);
-                ++srcIt;
-            }
-            ++dstIt;
-        }
-    }
-}
-
-#include "kis_math_toolbox.moc"
diff --git a/krita/core/kis_math_toolbox.h b/krita/core/kis_math_toolbox.h
deleted file mode 100644
index 8d5bef506..000000000
--- a/krita/core/kis_math_toolbox.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- *  This file is part of the KDE project
- *
- *  Copyright (c) 2005 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_MATH_TOOLBOX_H
-#define KIS_MATH_TOOLBOX_H
-
-#include <tqobject.h>
-
-// typedef unsigned int uint;
-
-#include <kis_generic_registry.h>
-#include "kis_paint_device.h"
-#include "kis_types.h"
-
-#include <new>
-
-class KisMathToolbox : public TQObject {
-    Q_OBJECT
-  TQ_OBJECT
-    public:
-        struct KisFloatRepresentation {
-            KisFloatRepresentation(uint nsize, uint ndepth) throw(std::bad_alloc ) : coeffs(new float[nsize*nsize*ndepth]) ,size(nsize), depth(ndepth)
-            {
-                // XXX: Valgrind shows that these are being used without being initialised.
-                for (TQ_UINT32 i = 0; i < nsize*nsize*ndepth; ++i) {
-                    coeffs[i] = 0;
-                }
-            }
-            ~KisFloatRepresentation() { if(coeffs) delete[] coeffs; }
-            float* coeffs;
-            uint size;
-            uint depth;
-        };
-        typedef KisFloatRepresentation KisWavelet;
-    public:
-        KisMathToolbox(KisID id);
-        ~KisMathToolbox();
-    public:
-        inline KisID id() { return m_id; };
-        /**
-         * This function initialize a wavelet structure
-         * @param lay the layer that will be used for the transformation
-         */
-        inline KisWavelet* initWavelet(KisPaintDeviceSP lay, const TQRect&) throw(std::bad_alloc );
-        inline uint fastWaveletTotalSteps(const TQRect&);
-        /**
-         * This function reconstruct the layer from the information of a wavelet
-         * @param src layer from which the wavelet will be computed
-         * @param buff if set to 0, the buffer will be initialized by the function,
-         * you might want to give a buff to the function if you want to use the same buffer
-         * in transformToWavelet and in untransformToWavelet, use initWavelet to initialize
-         * the buffer
-         */
-         virtual KisWavelet* fastWaveletTransformation(KisPaintDeviceSP src, const TQRect&, KisWavelet* buff = 0) =0;
-        /**
-         * This function reconstruct the layer from the information of a wavelet
-         * @param dst layer on which the wavelet will be untransform
-         * @param wav the wavelet
-         * @param buff if set to 0, the buffer will be initialized by the function,
-         * you might want to give a buff to the function if you want to use the same buffer
-         * in transformToWavelet and in untransformToWavelet, use initWavelet to initialize
-         * the buffer
-         */
-         virtual void fastWaveletUntransformation(KisPaintDeviceSP dst, const TQRect&, KisWavelet* wav, KisWavelet* buff = 0) =0;
-    signals:
-        void nextStep();
-    protected:
-        /**
-         * This function transform a paint device into a KisFloatRepresentation, this function is colorspace independant,
-         * for Wavelet, Pyramid and FFT the data is allways the exact value of the channel stored in a float.
-         */
-        void transformToFR(KisPaintDeviceSP src, KisFloatRepresentation*, const TQRect&);
-        /**
-         * This function transform a KisFloatRepresentation into a paint device, this function is colorspace independant,
-         * for Wavelet, Pyramid and FFT the data is allways the exact value of the channel stored in a float.
-         */
-        void transformFromFR(KisPaintDeviceSP dst, KisFloatRepresentation*, const TQRect&);
-    private:
-        KisID m_id;
-};
-
-class KisMathToolboxFactoryRegistry : public KisGenericRegistry<KisMathToolbox*> {
-    public:
-        KisMathToolboxFactoryRegistry();
-        ~KisMathToolboxFactoryRegistry();
-};
-
-
-inline KisMathToolbox::KisWavelet* KisMathToolbox::initWavelet(KisPaintDeviceSP src, const TQRect& rect) throw(std::bad_alloc )
-{
-    int size;
-    int maxrectsize = (rect.height() < rect.width()) ? rect.width() : rect.height();
-    for(size = 2; size < maxrectsize; size *= 2) ;
-    TQ_INT32 depth = src->colorSpace()->nColorChannels();
-    return new KisWavelet(size, depth);
-}
-
-inline uint KisMathToolbox::fastWaveletTotalSteps(const TQRect& rect)
-{
-    int size, steps;
-    int maxrectsize = (rect.height() < rect.width()) ? rect.width() : rect.height();
-    steps = 0;
-    for(size = 2; size < maxrectsize; size *= 2) steps += size / 2; ;
-    return steps;
-}
-
-#endif
diff --git a/krita/core/kis_merge_visitor.h b/krita/core/kis_merge_visitor.h
deleted file mode 100644
index 680533845..000000000
--- a/krita/core/kis_merge_visitor.h
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *  Copyright (c) 2006 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_MERGE_H_
-#define KIS_MERGE_H_
-
-#include <tqrect.h>
-
-#include "kis_types.h"
-#include "kis_paint_device.h"
-#include "kis_layer_visitor.h"
-#include "kis_painter.h"
-#include "kis_image.h"
-#include "kis_layer.h"
-#include "kis_group_layer.h"
-#include "kis_adjustment_layer.h"
-#include "kis_paint_layer.h"
-#include "kis_part_layer_iface.h"
-#include "kis_filter.h"
-#include "kis_filter_configuration.h"
-#include "kis_filter_registry.h"
-#include "kis_selection.h"
-#include "kis_transaction.h"
-#include "kis_iterators_pixel.h"
-
-class KisMergeVisitor : public KisLayerVisitor {
-public:
-    /**
-     * Don't even _think_ of creating a merge visitor without a projection; without a projection,
-     * the adjustmentlayers won't work.
-     */
-    KisMergeVisitor(KisPaintDeviceSP projection, const TQRect& rc) :
-        KisLayerVisitor()
-    {
-        Q_ASSERT(projection);
-
-        m_projection = projection;
-        m_rc = rc;
-    }
-
-private:
-    // Helper for the indirect painting (keep above to inhibit gcc-2.95 ICE)
-    template<class Target>
-    KSharedPtr<Target> paintIndirect(KisPaintDeviceSP source,
-                                     KSharedPtr<Target> target,
-                                     KisLayerSupportsIndirectPainting* layer,
-                                     TQ_INT32 sx, TQ_INT32 sy, TQ_INT32 dx, TQ_INT32 dy,
-                                     TQ_INT32 w, TQ_INT32 h) {
-        KisPainter gc2(target.data());
-        gc2.bitBlt(dx, dy, COMPOSITE_COPY, source,
-                   OPACITY_OPAQUE, sx, sy, w, h);
-        gc2.bitBlt(dx, dy, layer->temporaryCompositeOp(), layer->temporaryTarget(),
-                   layer->temporaryOpacity(), sx, sy, w, h);
-        gc2.end();
-        return target;
-    }
-
-public:
-    virtual bool visit(KisPaintLayer *layer)
-    {
-        
-        if (m_projection == 0) {
-            return false;
-        }
-        
-        kdDebug(41010) << "Visiting on paint layer " << layer->name() << ", visible: " << layer->visible()
-                << ", temporary: " << layer->temporary() << ", extent: "
-                << layer->extent() << ", dirty: " << layer->dirtyRect() << ", paint rect: " << m_rc << endl;
-        if (!layer->visible())
-            return true;
-
-        TQ_INT32 sx, sy, dx, dy, w, h;
-
-        TQRect rc = layer->paintDevice()->extent() & m_rc;
-
-        // Indirect painting?
-        KisPaintDeviceSP tempTarget = layer->temporaryTarget();
-        if (tempTarget) {
-            rc = (layer->paintDevice()->extent() | tempTarget->extent()) & m_rc;
-        }
-
-        sx = rc.left();
-        sy = rc.top();
-        w  = rc.width();
-        h  = rc.height();
-        dx = sx;
-        dy = sy;
-
-        KisPainter gc(m_projection);
-        KisPaintDeviceSP source = layer->paintDevice();
-
-        if (!layer->hasMask()) {
-            if (tempTarget) {
-                KisPaintDeviceSP temp = new KisPaintDevice(source->colorSpace());
-                source = paintIndirect(source, temp, layer, sx, sy, dx, dy, w, h);
-            }
-
-            gc.bitBlt(dx, dy, layer->compositeOp(), source, layer->opacity(), sx, sy, w, h);
-        } else {
-            if (layer->renderMask()) {
-                // To display the tqmask, we don't do things with composite op and opacity
-                // This is like the gimp does it, I guess that's ok?
-
-                // Note that here we'll use m_rc, because even if the extent of the device is
-                // empty, we want a full tqmask to be drawn! (we don't change rc, since
-                // it'd mess with setClean). This is because KisPainter::bitBlt &'s with
-                // the source device's extent. This is ok in normal circumstances, but
-                // we changed the default tile. Fixing this properly would mean fixing it there.
-                sx = m_rc.left();
-                sy = m_rc.top();
-                w  = m_rc.width();
-                h  = m_rc.height();
-                dx = sx;
-                dy = sy;
-
-                // The problem is that the extent of the layer tqmask might not be extended
-                // enough. Check if that is the case
-                KisPaintDeviceSP tqmask = layer->getMask();
-                TQRect mextent = tqmask->extent();
-                if ((mextent & m_rc) != m_rc) {
-                    // Iterate over all pixels in the m_rc area. With just accessing the
-                    // tiles in read-write mode, we ensure that the tiles get created if they
-                    // do not exist. If they do, they'll remain untouched since we don't
-                    // actually write data to it.
-                    // XXX Admission: this is actually kind of a hack :-(
-                    KisRectIteratorPixel it = tqmask->createRectIterator(sx, sy, w, h, true);
-                    while (!it.isDone())
-                        ++it;
-                }
-                if (tempTarget) {
-                    KisPaintDeviceSP temp = new KisPaintDevice(source->colorSpace());
-                    tqmask = paintIndirect(tqmask, temp, layer, sx, sy, dx, dy, w, h);
-                }
-
-                gc.bitBlt(dx, dy, COMPOSITE_OVER, tqmask, OPACITY_OPAQUE, sx, sy, w, h);
-            } else {
-                KisSelectionSP tqmask = layer->getMaskAsSelection();
-                // The indirect painting happens on the tqmask
-                if (tempTarget && layer->editMask()) {
-                    KisPaintDeviceSP tqmaskSrc = layer->getMask();
-                    KisPaintDeviceSP temp = new KisPaintDevice(tqmaskSrc->colorSpace());
-                    temp = paintIndirect(tqmaskSrc, temp, layer, sx, sy, dx, dy, w, h);
-                    // Blegh
-                    KisRectIteratorPixel srcIt = temp->createRectIterator(sx, sy, w, h, false);
-                    KisRectIteratorPixel dstIt = tqmask->createRectIterator(sx, sy, w, h, true);
-
-                    while(!dstIt.isDone()) {
-                        // Same as in convertMaskToSelection
-                        *dstIt.rawData() = *srcIt.rawData();
-                        ++srcIt;
-                        ++dstIt;
-                    }
-                } else if (tempTarget) {
-                    // We have a tqmask, and paint indirect, but not on the tqmask
-                    KisPaintDeviceSP temp = new KisPaintDevice(source->colorSpace());
-                    source = paintIndirect(source, temp, layer, sx, sy, dx, dy, w, h);
-                }
-
-                gc.bltSelection(dx, dy,
-                                layer->compositeOp(),
-                                source,
-                                tqmask,
-                                layer->opacity(), sx, sy, w, h);
-            }
-        }
-
-        layer->setClean( rc );
-        return true;
-    }
-
-    virtual bool visit(KisGroupLayer *layer)
-    {
-        
-        if (m_projection == 0) {
-            return false;
-        }
-        
-        kdDebug(41010) << "Visiting on group layer " << layer->name() << ", visible: " << layer->visible() << ", extent: "
-                << layer->extent() << ", dirty: " << layer->dirtyRect() << ", paint rect: " << m_rc << endl;
-                
-        if (!layer->visible())
-            return true;
-        
-        TQ_INT32 sx, sy, dx, dy, w, h;
-
-        // This automatically makes sure the projection is up-to-date for the specified rect.
-        KisPaintDeviceSP dev = layer->projection(m_rc);
-        TQRect rc = dev->extent() & m_rc;
-
-        sx = rc.left();
-        sy = rc.top();
-        w  = rc.width();
-        h  = rc.height();
-        dx = sx;
-        dy = sy;
-
-        KisPainter gc(m_projection);
-        gc.bitBlt(dx, dy, layer->compositeOp(), dev, layer->opacity(), sx, sy, w, h);
-
-        return true;
-    }
-
-    virtual bool visit(KisPartLayer* layer)
-    {
-
-        kdDebug(41010) << "Visiting on part layer " << layer->name() << ", visible: " << layer->visible() << ", extent: "
-                << layer->extent() << ", dirty: " << layer->dirtyRect() << ", paint rect: " << m_rc << endl;
-        
-        if (m_projection == 0) {
-            return false;
-        }
-        if (!layer->visible())
-            return true;
-
-        KisPaintDeviceSP dev(layer->prepareProjection(m_projection, m_rc));
-        if (!dev)
-            return true;
-
-        TQ_INT32 sx, sy, dx, dy, w, h;
-
-        TQRect rc = dev->extent() & m_rc;
-
-        sx= rc.left();
-        sy = rc.top();
-        w = rc.width();
-        h = rc.height();
-        dx = sx;
-        dy = sy;
-
-        KisPainter gc(m_projection);
-        gc.bitBlt(dx, dy, layer->compositeOp() , dev, layer->opacity(), sx, sy, w, h);
-
-        layer->setClean(rc);
-        return true;
-    }
-
-    virtual bool visit(KisAdjustmentLayer* layer)
-    {
-        kdDebug(41010) << "Visiting on adjustment layer " << layer->name() << ", visible: " << layer->visible() << ", extent: "
-                << layer->extent() << ", dirty: " << layer->dirtyRect() << ", paint rect: " << m_rc << endl;
-
-        if (m_projection == 0) {
-            return true;
-        }
-
-        if (!layer->visible())
-            return true;
-
-        KisPaintDeviceSP tempTarget = layer->temporaryTarget();
-        if (tempTarget) {
-            m_rc = (layer->extent() | tempTarget->extent()) & m_rc;
-        }
-
-        if (m_rc.width() == 0 || m_rc.height() == 0) // Don't even try
-            return true;
-
-        KisFilterConfiguration * cfg = layer->filter();
-        if (!cfg) return false;
-
-
-        KisFilter * f = KisFilterRegistry::instance()->get( cfg->name() );
-        if (!f) return false;
-
-        // Possibly enlarge the rect that changed (like for convolution filters)
-        // m_rc = f->enlargeRect(m_rc, cfg);
-        KisSelectionSP selection = layer->selection();
-
-        // Copy of the projection -- use the copy-on-write trick. XXX NO COPY ON WRITE YET =(
-        //KisPaintDeviceSP tmp = new KisPaintDevice(*m_projection);
-        KisPaintDeviceSP tmp = 0;
-        KisSelectionSP sel = selection;
-        // If there's a selection, only keep the selected bits
-        if (selection != 0) {
-            tmp = new KisPaintDevice(m_projection->colorSpace());
-
-            KisPainter gc(tmp);
-            TQRect selectedRect = selection->selectedRect();
-            selectedRect &= m_rc;
-
-            if (selectedRect.width() == 0 || selectedRect.height() == 0) // Don't even try
-                return true;
-
-            // Don't forget that we need to take into account the extended sourcing area as well
-            //selectedRect = f->enlargeRect(selectedRect, cfg);
-
-            //kdDebug() << k_funcinfo << selectedRect << endl;
-            tmp->setX(selection->getX());
-            tmp->setY(selection->getY());
-
-            // Indirect painting
-            if (tempTarget) {
-                sel = new KisSelection();
-                sel = paintIndirect(selection.data(), sel, layer, m_rc.left(), m_rc.top(),
-                                    m_rc.left(), m_rc.top(), m_rc.width(), m_rc.height());
-            }
-
-            gc.bitBlt(selectedRect.x(), selectedRect.y(), COMPOSITE_COPY, m_projection,
-                      selectedRect.x(), selectedRect.y(),
-                      selectedRect.width(), selectedRect.height());
-            gc.end();
-        } else {
-            tmp = new KisPaintDevice(*m_projection);
-        }
-
-        // Some filters will require usage of oldRawData, which is not available without
-        // a transaction!
-        KisTransaction* cmd = new KisTransaction("", tmp);
-
-        // Filter the temporary paint device -- remember, these are only the selected bits,
-        // if there was a selection.
-        f->process(tmp, tmp, cfg, m_rc);
-
-        delete cmd;
-
-        // Copy the filtered bits onto the projection 
-        KisPainter gc(m_projection);
-        if (selection)
-            gc.bltSelection(m_rc.left(), m_rc.top(),
-                            COMPOSITE_OVER, tmp, sel, layer->opacity(),
-                            m_rc.left(), m_rc.top(), m_rc.width(), m_rc.height());
-        else
-            gc.bitBlt(m_rc.left(), m_rc.top(),
-                      COMPOSITE_OVER, tmp, layer->opacity(),
-                      m_rc.left(), m_rc.top(), m_rc.width(), m_rc.height());
-        gc.end();
-
-        // Copy the finished projection onto the cache
-        gc.begin(layer->cachedPaintDevice());
-        gc.bitBlt(m_rc.left(), m_rc.top(),
-                  COMPOSITE_COPY, m_projection, OPACITY_OPAQUE,
-                  m_rc.left(), m_rc.top(), m_rc.width(), m_rc.height());
-        layer->setClean(m_rc);
-        return true;
-    }
-
-private:
-    KisPaintDeviceSP m_projection;
-    TQRect m_rc;
-};
-
-#endif // KIS_MERGE_H_
-
diff --git a/krita/core/kis_meta_registry.cc b/krita/core/kis_meta_registry.cc
deleted file mode 100644
index 9ef2c67f6..000000000
--- a/krita/core/kis_meta_registry.cc
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <tqstringlist.h>
-#include <tqdir.h>
-#include <kstandarddirs.h>
-#include <kglobal.h>
-
-#include <config.h>
-#include LCMS_HEADER
-
-#include <kis_colorspace_factory_registry.h>
-#include <kis_math_toolbox.h>
-#include <kis_meta_registry.h>
-
-KisMetaRegistry * KisMetaRegistry::m_singleton = 0;
-
-KisMetaRegistry::KisMetaRegistry()
-{
-    // Create the colorspaces and load the profiles
-
-    KGlobal::instance()->dirs()->addResourceType("kis_profiles",
-                                                     KStandardDirs::kde_default("data") + "krita/profiles/");
-                          
-    // Add those things here as well, since we are not yet using KisDoc's KisFactory instance (which inits these as well)
-    KGlobal::instance()->dirs()->addResourceType("kis_profiles", KStandardDirs::kde_default("data") + "krita/profiles/");
-    KGlobal::instance()->dirs()->addResourceDir("kis_profiles", "/usr/share/color/icc");
-    KGlobal::instance()->dirs()->addResourceDir("kis_profiles", TQDir::homeDirPath() + TQString("/.icc/"));
-    KGlobal::instance()->dirs()->addResourceDir("kis_profiles", TQDir::homeDirPath() + TQString("/.color/icc/"));
-
-    TQStringList profileFilenames;
-    profileFilenames += KGlobal::instance()->dirs()->findAllResources("kis_profiles", "*.icm", true /* recursive */);
-    profileFilenames += KGlobal::instance()->dirs()->findAllResources("kis_profiles", "*.ICM", true);
-    profileFilenames += KGlobal::instance()->dirs()->findAllResources("kis_profiles", "*.ICC", true);
-    profileFilenames += KGlobal::instance()->dirs()->findAllResources("kis_profiles", "*.icc", true);
-    // Set lcms to return NUll/false etc from failing calls, rather than aborting the app.
-    cmsErrorAction(LCMS_ERROR_SHOW);
-
-    m_csRegistry = new KisColorSpaceFactoryRegistry(profileFilenames);
-    m_mtRegistry = new KisMathToolboxFactoryRegistry();
-}
-
-KisMetaRegistry::~KisMetaRegistry()
-{
-}
-
-KisMetaRegistry * KisMetaRegistry::instance()
-{
-    if ( KisMetaRegistry::m_singleton == 0 ) {
-        KisMetaRegistry::m_singleton = new KisMetaRegistry();
-    }
-    return KisMetaRegistry::m_singleton;
-}
-
diff --git a/krita/core/kis_meta_registry.h b/krita/core/kis_meta_registry.h
deleted file mode 100644
index 42aeee3d1..000000000
--- a/krita/core/kis_meta_registry.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef _KIS_META_REGISTRY_
-#define _KIS_META_REGISTRY_
-
-class KisColorSpaceFactoryRegistry;
-class KisMathToolboxFactoryRegistry;
-
-/**
- * A single singleton that provides access to several registries.
- *
- * XXX: Maybe this should go into the SDK
- */
-class KisMetaRegistry {
-
-public:
-
-    virtual ~KisMetaRegistry();
-    static KisMetaRegistry* instance();
-
-    KisColorSpaceFactoryRegistry * csRegistry() { return m_csRegistry; };
-    KisMathToolboxFactoryRegistry* mtRegistry() { return m_mtRegistry; };
-private:
-
-    KisMetaRegistry();
-    KisMetaRegistry( const KisMetaRegistry& );
-    KisMetaRegistry operator=( const KisMetaRegistry& );
-
-    static KisMetaRegistry * m_singleton;
-
-    KisColorSpaceFactoryRegistry * m_csRegistry;
-    KisMathToolboxFactoryRegistry* m_mtRegistry;
-};
-#endif
diff --git a/krita/core/kis_nameserver.cc b/krita/core/kis_nameserver.cc
deleted file mode 100644
index ff66144d6..000000000
--- a/krita/core/kis_nameserver.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include "kis_nameserver.h"
-
-KisNameServer::KisNameServer(const TQString& prefix, TQ_INT32 seed)
-{
-    m_prefix = prefix;
-    m_generator = seed;
-}
-
-KisNameServer::~KisNameServer()
-{
-}
-
-TQString KisNameServer::name()
-{
-    return m_prefix.tqarg(m_generator++);
-}
-
-TQ_INT32 KisNameServer::currentSeed() const
-{
-    return m_generator;
-}
-
-TQ_INT32 KisNameServer::number()
-{
-    return m_generator++;
-}
-
-void KisNameServer::rollback()
-{
-    m_generator--;
-}
-
diff --git a/krita/core/kis_nameserver.h b/krita/core/kis_nameserver.h
deleted file mode 100644
index a6989853b..000000000
--- a/krita/core/kis_nameserver.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_NAMESERVER_H_
-#define KIS_NAMESERVER_H_
-
-#include <tqstring.h>
-#include "kis_global.h"
-
-class KisNameServer {
-public:
-    KisNameServer(const TQString& prefix, TQ_INT32 seed = 1);
-    ~KisNameServer();
-
-    TQString name();
-    TQ_INT32 number();
-    TQ_INT32 currentSeed() const;
-    void rollback();
-
-private:
-    TQ_INT32 m_generator;
-    TQString m_prefix;
-};
-
-#endif // KIS_NAMESERVER_H_
-
diff --git a/krita/core/kis_paint_device.cc b/krita/core/kis_paint_device.cc
deleted file mode 100644
index a6942626a..000000000
--- a/krita/core/kis_paint_device.cc
+++ /dev/null
@@ -1,1285 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <tqrect.h>
-#include <tqwmatrix.h>
-#include <tqimage.h>
-#include <tqdatetime.h>
-#include <tqapplication.h>
-#include <tqvaluelist.h>
-#include <tqtimer.h>
-
-#include <kcommand.h>
-#include <klocale.h>
-#include <kdebug.h>
-
-#include <KoStore.h>
-
-#include "kis_global.h"
-#include "kis_types.h"
-#include "kis_painter.h"
-#include "kis_fill_painter.h"
-#include "kis_undo_adapter.h"
-#include "kis_iterator.h"
-#include "kis_iterators_pixel.h"
-#include "kis_iteratorpixeltrait.h"
-#include "kis_random_accessor.h"
-#include "kis_random_sub_accessor.h"
-#include "kis_transaction.h"
-#include "kis_profile.h"
-#include "kis_color.h"
-#include "kis_integer_maths.h"
-#include "kis_colorspace_factory_registry.h"
-#include "kis_selection.h"
-#include "kis_layer.h"
-#include "kis_paint_device_iface.h"
-#include "kis_paint_device.h"
-#include "kis_datamanager.h"
-#include "kis_memento.h"
-#include "kis_selection.h"
-
-#include "kis_exif_info.h"
-
-namespace {
-
-    class KisPaintDeviceCommand : public KNamedCommand {
-        typedef KNamedCommand super;
-
-    public:
-        KisPaintDeviceCommand(const TQString& name, KisPaintDeviceSP paintDevice);
-        virtual ~KisPaintDeviceCommand() {}
-
-        virtual void execute() = 0;
-        virtual void unexecute() = 0;
-
-    protected:
-        void setUndo(bool undo);
-
-        KisPaintDeviceSP m_paintDevice;
-    };
-
-    KisPaintDeviceCommand::KisPaintDeviceCommand(const TQString& name, KisPaintDeviceSP paintDevice) :
-        super(name), m_paintDevice(paintDevice)
-    {
-    }
-
-    void KisPaintDeviceCommand::setUndo(bool undo)
-    {
-        if (m_paintDevice->undoAdapter()) {
-            m_paintDevice->undoAdapter()->setUndo(undo);
-        }
-    }
-
-    class MoveCommand : public KNamedCommand {
-        typedef KNamedCommand super;
-
-    public:
-        MoveCommand(KisPaintDeviceSP device, const TQPoint& oldpos, const TQPoint& newpos);
-        virtual ~MoveCommand();
-
-        virtual void execute();
-        virtual void unexecute();
-
-    private:
-        void moveTo(const TQPoint& pos);
-        void undoOff();
-        void undoOn();
-
-    private:
-        KisPaintDeviceSP m_device;
-        TQPoint m_oldPos;
-        TQPoint m_newPos;
-    };
-
-    MoveCommand::MoveCommand(KisPaintDeviceSP device, const TQPoint& oldpos, const TQPoint& newpos) :
-        super(i18n("Move Layer"))
-    {
-        m_device = device;
-        m_oldPos = oldpos;
-        m_newPos = newpos;
-    }
-
-    MoveCommand::~MoveCommand()
-    {
-    }
-
-    void MoveCommand::undoOff()
-    {
-        if (m_device->undoAdapter()) {
-            m_device->undoAdapter()->setUndo(false);
-        }
-    }
-
-    void MoveCommand::undoOn()
-    {
-        if (m_device->undoAdapter()) {
-            m_device->undoAdapter()->setUndo(true);
-        }
-    }
-
-    void MoveCommand::execute()
-    {
-        undoOff();
-        moveTo(m_newPos);
-        undoOn();
-    }
-
-    void MoveCommand::unexecute()
-    {
-        undoOff();
-        moveTo(m_oldPos);
-        undoOn();
-    }
-
-    void MoveCommand::moveTo(const TQPoint& pos)
-    {
-        m_device->move(pos.x(), pos.y());
-    }
-
-    class KisConvertLayerTypeCmd : public KNamedCommand {
-        typedef KNamedCommand super;
-
-    public:
-        KisConvertLayerTypeCmd(KisUndoAdapter *adapter, KisPaintDeviceSP paintDevice,
-                       KisDataManagerSP beforeData, KisColorSpace * beforeColorSpace,
-                       KisDataManagerSP afterData, KisColorSpace * afterColorSpace
-                ) : super(i18n("Convert Layer Type"))
-            {
-                m_adapter = adapter;
-                m_paintDevice = paintDevice;
-                m_beforeData = beforeData;
-                m_beforeColorSpace = beforeColorSpace;
-                m_afterData = afterData;
-                m_afterColorSpace = afterColorSpace;
-            }
-
-        virtual ~KisConvertLayerTypeCmd()
-            {
-            }
-
-    public:
-        virtual void execute()
-            {
-                m_adapter->setUndo(false);
-                m_paintDevice->setData(m_afterData, m_afterColorSpace);
-                m_adapter->setUndo(true);
-            }
-
-        virtual void unexecute()
-            {
-                m_adapter->setUndo(false);
-                m_paintDevice->setData(m_beforeData, m_beforeColorSpace);
-                m_adapter->setUndo(true);
-            }
-
-    private:
-        KisUndoAdapter *m_adapter;
-
-        KisPaintDeviceSP m_paintDevice;
-
-        KisDataManagerSP m_beforeData;
-        KisColorSpace * m_beforeColorSpace;
-
-        KisDataManagerSP m_afterData;
-        KisColorSpace * m_afterColorSpace;
-    };
-
-}
-
-KisPaintDevice::KisPaintDevice(KisColorSpace * colorSpace, const char * name) :
-        TQObject(0, name), KShared(), m_exifInfo(0),  m_lock( false )
-{
-    if (colorSpace == 0) {
-        kdWarning(41001) << "Cannot create paint device without colorstrategy!\n";
-        return;
-    }
-    m_longRunningFilterTimer = 0;
-    m_dcop = 0;
-
-    m_x = 0;
-    m_y = 0;
-
-    m_pixelSize = colorSpace->pixelSize();
-    m_nChannels = colorSpace->nChannels();
-
-    TQ_UINT8* defPixel = new TQ_UINT8 [ m_pixelSize ];
-    colorSpace->fromTQColor(TQt::black, OPACITY_TRANSPARENT, defPixel);
-
-    m_datamanager = new KisDataManager(m_pixelSize, defPixel);
-    delete [] defPixel;
-
-    Q_CHECK_PTR(m_datamanager);
-    m_extentIsValid = true;
-
-    m_parentLayer = 0;
-
-    m_colorSpace = colorSpace;
-
-    m_hasSelection = false;
-    m_selectionDeselected = false;
-    m_selection = 0;
-
-}
-
-KisPaintDevice::KisPaintDevice(KisLayer *tqparent, KisColorSpace * colorSpace, const char * name) :
-        TQObject(0, name), KShared(), m_exifInfo(0), m_lock( false )
-{
-
-    m_longRunningFilterTimer = 0;
-    m_dcop = 0;
-
-    m_x = 0;
-    m_y = 0;
-
-    m_hasSelection = false;
-    m_selectionDeselected = false;
-    m_selection = 0;
-
-    m_parentLayer = tqparent;
-
-    if (colorSpace == 0 && tqparent != 0 && tqparent->image() != 0) {
-        m_colorSpace = tqparent->image()->colorSpace();
-    }
-    else {
-        m_colorSpace = colorSpace;
-    }
-
-    Q_ASSERT( m_colorSpace );
-
-    m_pixelSize = m_colorSpace->pixelSize();
-    m_nChannels = m_colorSpace->nChannels();
-
-    TQ_UINT8* defPixel = new TQ_UINT8[ m_pixelSize ];
-    m_colorSpace->fromTQColor(TQt::black, OPACITY_TRANSPARENT, defPixel);
-
-    m_datamanager = new KisDataManager(m_pixelSize, defPixel);
-    delete [] defPixel;
-    Q_CHECK_PTR(m_datamanager);
-    m_extentIsValid = true;
-
-    if ( TQString ( name ) == TQString( "Layer 1" ) ) {
-        m_longRunningFilters = m_colorSpace->createBackgroundFilters();
-
-        if (!m_longRunningFilters.isEmpty()) {
-            m_longRunningFilterTimer = new TQTimer(this);
-            connect(m_longRunningFilterTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(runBackgroundFilters()));
-            m_longRunningFilterTimer->start(2000);
-        }
-    }
-}
-
-
-KisPaintDevice::KisPaintDevice(const KisPaintDevice& rhs) : TQObject(), KShared(rhs)
-{
-    if (this != &rhs) {
-        m_longRunningFilterTimer = 0;
-        m_parentLayer = 0;
-        m_dcop = rhs.m_dcop;
-        if (rhs.m_datamanager) {
-            m_datamanager = new KisDataManager(*rhs.m_datamanager);
-            Q_CHECK_PTR(m_datamanager);
-        }
-        else {
-            kdWarning() << "rhs " << rhs.name() << " has no datamanager\n";
-        }
-        m_extentIsValid = rhs.m_extentIsValid;
-        m_x = rhs.m_x;
-        m_y = rhs.m_y;
-        m_colorSpace = rhs.m_colorSpace;
-        m_hasSelection = rhs.m_hasSelection;
-
-        if  ( m_hasSelection )
-            m_selection = new KisSelection(*rhs.m_selection);
-        else
-            m_selection = 0;
-
-        m_pixelSize = rhs.m_pixelSize;
-        m_nChannels = rhs.m_nChannels;
-        if(rhs.m_exifInfo)
-        {
-            m_exifInfo = new KisExifInfo(*rhs.m_exifInfo);
-        }
-        else {
-            m_exifInfo = 0;
-        }
-    }
-}
-
-KisPaintDevice::~KisPaintDevice()
-{
-    delete m_dcop;
-    delete m_longRunningFilterTimer;
-    TQValueList<KisFilter*>::iterator it;
-    TQValueList<KisFilter*>::iterator end = m_longRunningFilters.end();
-    for (it = m_longRunningFilters.begin(); it != end; ++it) {
-        KisFilter * f = (*it);
-        delete f;
-    }
-    m_longRunningFilters.clear();
-    //delete m_exifInfo;
-}
-
-DCOPObject *KisPaintDevice::dcopObject()
-{
-    if (!m_dcop) {
-        m_dcop = new KisPaintDeviceIface(this);
-        Q_CHECK_PTR(m_dcop);
-    }
-    return m_dcop;
-}
-
-KisLayer *KisPaintDevice::tqparentLayer() const
-{
-    return m_parentLayer;
-}
-
-void KisPaintDevice::setParentLayer(KisLayer *tqparentLayer)
-{
-    m_parentLayer = tqparentLayer;
-}
-
-void KisPaintDevice::setDirty(const TQRect & rc)
-{
-    if (m_parentLayer) m_parentLayer->setDirty(rc);
-}
-
-void KisPaintDevice::setDirty()
-{
-    if (m_parentLayer) m_parentLayer->setDirty();
-}
-
-KisImage *KisPaintDevice::image() const
-{
-    if (m_parentLayer) {
-        return m_parentLayer->image();
-    } else {
-        return 0;
-    }
-}
-
-
-void KisPaintDevice::move(TQ_INT32 x, TQ_INT32 y)
-{
-    TQRect dirtyRect = extent();
-
-    m_x = x;
-    m_y = y;
-
-    dirtyRect |= extent();
-
-    if(m_selection)
-    {
-        m_selection->setX(x);
-        m_selection->setY(y);
-    }
-
-    setDirty(dirtyRect);
-
-    emit positionChanged(this);
-}
-
-void KisPaintDevice::move(const TQPoint& pt)
-{
-    move(pt.x(), pt.y());
-}
-
-KNamedCommand * KisPaintDevice::moveCommand(TQ_INT32 x, TQ_INT32 y)
-{
-    KNamedCommand * cmd = new MoveCommand(this, TQPoint(m_x, m_y), TQPoint(x, y));
-    Q_CHECK_PTR(cmd);
-    cmd->execute();
-    return cmd;
-}
-
-void KisPaintDevice::extent(TQ_INT32 &x, TQ_INT32 &y, TQ_INT32 &w, TQ_INT32 &h) const
-{
-    m_datamanager->extent(x, y, w, h);
-    x += m_x;
-    y += m_y;
-}
-
-TQRect KisPaintDevice::extent() const
-{
-    TQ_INT32 x, y, w, h;
-    extent(x, y, w, h);
-    return TQRect(x, y, w, h);
-}
-
-bool KisPaintDevice::extentIsValid() const
-{
-    return m_extentIsValid;
-}
-
-void KisPaintDevice::setExtentIsValid(bool isValid)
-{
-    m_extentIsValid = isValid;
-}
-
-void KisPaintDevice::exactBounds(TQ_INT32 &x, TQ_INT32 &y, TQ_INT32 &w, TQ_INT32 &h) const
-{
-    TQRect r = exactBounds();
-    x = r.x();
-    y = r.y();
-    w = r.width();
-    h = r.height();
-}
-
-TQRect KisPaintDevice::exactBoundsOldMethod() const
-{
-    TQ_INT32 x, y, w, h, boundX, boundY, boundW, boundH;
-    extent(x, y, w, h);
-
-    extent(boundX, boundY, boundW, boundH);
-
-    const TQ_UINT8* defaultPixel = m_datamanager->defaultPixel();
-
-    bool found = false;
-
-    for (TQ_INT32 y2 = y; y2 < y + h ; ++y2) {
-        KisHLineIterator it = const_cast<KisPaintDevice *>(this)->createHLineIterator(x, y2, w, false);
-        while (!it.isDone() && found == false) {
-            if (memcmp(it.rawData(), defaultPixel, m_pixelSize) != 0) {
-                boundY = y2;
-                found = true;
-                break;
-            }
-            ++it;
-        }
-        if (found) break;
-    }
-
-    found = false;
-
-    for (TQ_INT32 y2 = y + h; y2 > y ; --y2) {
-        KisHLineIterator it = const_cast<KisPaintDevice *>(this)->createHLineIterator(x, y2, w, false);
-        while (!it.isDone() && found == false) {
-            if (memcmp(it.rawData(), defaultPixel, m_pixelSize) != 0) {
-                boundH = y2 - boundY + 1;
-                found = true;
-                break;
-            }
-            ++it;
-        }
-        if (found) break;
-    }
-    found = false;
-
-    for (TQ_INT32 x2 = x; x2 < x + w ; ++x2) {
-        KisVLineIterator it = const_cast<KisPaintDevice *>(this)->createVLineIterator(x2, y, h, false);
-        while (!it.isDone() && found == false) {
-            if (memcmp(it.rawData(), defaultPixel, m_pixelSize) != 0) {
-                boundX = x2;
-                found = true;
-                break;
-            }
-            ++it;
-        }
-        if (found) break;
-    }
-
-    found = false;
-
-    // Look for right edge )
-    for (TQ_INT32 x2 = x + w; x2 > x ; --x2) {
-        KisVLineIterator it = const_cast<KisPaintDevice *>(this)->createVLineIterator(x2, y, h, false);
-        while (!it.isDone() && found == false) {
-            if (memcmp(it.rawData(), defaultPixel, m_pixelSize) != 0) {
-                boundW = x2 - boundX + 1; // XXX: I commented this
-                                          // +1 out, but why? It
-                                          // should be correct, since
-                                          // we've found the first
-                                          // pixel that should be
-                                          // included, and it should
-                                          // be added to the width.
-                found = true;
-                break;
-            }
-            ++it;
-        }
-        if (found) break;
-    }
-
-    return TQRect(boundX, boundY, boundW, boundH);
-}
-
-TQRect KisPaintDevice::exactBoundsImprovedOldMethod() const
-{
-    // Solution n°2
-    TQ_INT32  x, y, w, h, boundX2, boundY2, boundW2, boundH2;
-    extent(x, y, w, h);
-    extent(boundX2, boundY2, boundW2, boundH2);
-
-    const TQ_UINT8* defaultPixel = m_datamanager->defaultPixel();
-    bool found = false;
-    {
-        KisHLineIterator it = const_cast<KisPaintDevice *>(this)->createHLineIterator(x, y, w, false);
-        for (TQ_INT32 y2 = y; y2 < y + h ; ++y2) {
-            while (!it.isDone() && found == false) {
-                if (memcmp(it.rawData(), defaultPixel, m_pixelSize) != 0) {
-                    boundY2 = y2;
-                    found = true;
-                    break;
-                }
-                ++it;
-            }
-            if (found) break;
-            it.nextRow();
-        }
-    }
-
-    found = false;
-
-    for (TQ_INT32 y2 = y + h; y2 > y ; --y2) {
-        KisHLineIterator it = const_cast<KisPaintDevice *>(this)->createHLineIterator(x, y2, w, false);
-        while (!it.isDone() && found == false) {
-            if (memcmp(it.rawData(), defaultPixel, m_pixelSize) != 0) {
-                boundH2 = y2 - boundY2 + 1;
-                found = true;
-                break;
-            }
-            ++it;
-        }
-        if (found) break;
-    }
-    found = false;
-
-    {
-        KisVLineIterator it = const_cast<KisPaintDevice *>(this)->createVLineIterator(x, boundY2, boundH2, false);
-        for (TQ_INT32 x2 = x; x2 < x + w ; ++x2) {
-            while (!it.isDone() && found == false) {
-                if (memcmp(it.rawData(), defaultPixel, m_pixelSize) != 0) {
-                    boundX2 = x2;
-                    found = true;
-                    break;
-                }
-                ++it;
-            }
-            if (found) break;
-            it.nextCol();
-        }
-    }
-
-    found = false;
-
-    // Look for right edge )
-    {
-        for (TQ_INT32 x2 = x + w; x2 > x ; --x2) {
-            KisVLineIterator it = const_cast<KisPaintDevice *>(this)->createVLineIterator(/*x + w*/ x2, boundY2, boundH2, false);
-            while (!it.isDone() && found == false) {
-                if (memcmp(it.rawData(), defaultPixel, m_pixelSize) != 0) {
-                    boundW2 = x2 - boundX2 + 1; // XXX: I commented this
-                                            // +1 out, but why? It
-                                            // should be correct, since
-                                            // we've found the first
-                                            // pixel that should be
-                                            // included, and it should
-                                            // be added to the width.
-                    found = true;
-                    break;
-                }
-                ++it;
-            }
-            if (found) break;
-        }
-    }
-    return TQRect(boundX2, boundY2, boundW2, boundH2);
-}
-
-
-TQRect KisPaintDevice::exactBounds() const
-{
-    TQRect r2 = exactBoundsImprovedOldMethod();
-    return r2;
-}
-
-void KisPaintDevice::crop(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h)
-{
-     m_datamanager->setExtent(x - m_x, y - m_y, w, h);
-}
-
-
-void KisPaintDevice::crop(TQRect r)
-{
-    r.moveBy(-m_x, -m_y); m_datamanager->setExtent(r);
-}
-
-void KisPaintDevice::clear()
-{
-    m_datamanager->clear();
-}
-
-void KisPaintDevice::fill(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h, const TQ_UINT8 *fillPixel)
-{
-    m_datamanager->clear(x, y, w, h, fillPixel);
-}
-
-void KisPaintDevice::mirrorX()
-{
-    TQRect r;
-    if (hasSelection()) {
-        r = selection()->selectedRect();
-    }
-    else {
-        r = exactBounds();
-    }
-
-    for (TQ_INT32 y = r.top(); y <= r.bottom(); ++y) {
-        KisHLineIteratorPixel srcIt = createHLineIterator(r.x(), y, r.width(), false);
-        KisHLineIteratorPixel dstIt = createHLineIterator(r.x(), y, r.width(), true);
-
-        dstIt += r.width() - 1;
-
-        while (!srcIt.isDone()) {
-            if (srcIt.isSelected()) {
-                memcpy(dstIt.rawData(), srcIt.oldRawData(), m_pixelSize);
-            }
-            ++srcIt;
-            --dstIt;
-
-        }
-    }
-    if (m_parentLayer) {
-        m_parentLayer->setDirty(r);
-    }
-}
-
-void KisPaintDevice::mirrorY()
-{
-    /* Read a line from bottom to top and and from top to bottom and write their values to each other */
-    TQRect r;
-    if (hasSelection()) {
-        r = selection()->selectedRect();
-    }
-    else {
-        r = exactBounds();
-    }
-
-
-    TQ_INT32 y1, y2;
-    for (y1 = r.top(), y2 = r.bottom(); y1 <= r.bottom(); ++y1, --y2) {
-        KisHLineIteratorPixel itTop = createHLineIterator(r.x(), y1, r.width(), true);
-        KisHLineIteratorPixel itBottom = createHLineIterator(r.x(), y2, r.width(), false);
-        while (!itTop.isDone() && !itBottom.isDone()) {
-            if (itBottom.isSelected()) {
-                memcpy(itTop.rawData(), itBottom.oldRawData(), m_pixelSize);
-            }
-            ++itBottom;
-            ++itTop;
-        }
-    }
-
-    if (m_parentLayer) {
-        m_parentLayer->setDirty(r);
-    }
-}
-
-KisMementoSP KisPaintDevice::getMemento()
-{
-    return m_datamanager->getMemento();
-}
-
-void KisPaintDevice::rollback(KisMementoSP memento) { m_datamanager->rollback(memento); }
-
-void KisPaintDevice::rollforward(KisMementoSP memento) { m_datamanager->rollforward(memento); }
-
-bool KisPaintDevice::write(KoStore *store)
-{
-    bool retval = m_datamanager->write(store);
-    emit ioProgress(100);
-
-        return retval;
-}
-
-bool KisPaintDevice::read(KoStore *store)
-{
-    bool retval = m_datamanager->read(store);
-    emit ioProgress(100);
-
-        return retval;
-}
-
-void KisPaintDevice::convertTo(KisColorSpace * dstColorSpace, TQ_INT32 renderingIntent)
-{
-    kdDebug(41004) << "Converting " << name() << " to " << dstColorSpace->id().id() << " from "
-              << m_colorSpace->id().id() << "\n";
-    if ( colorSpace() == dstColorSpace )
-    {
-        return;
-    }
-
-    KisPaintDevice dst(dstColorSpace);
-    dst.setX(getX());
-    dst.setY(getY());
-
-    TQ_INT32 x, y, w, h;
-    extent(x, y, w, h);
-
-    for (TQ_INT32 row = y; row < y + h; ++row) {
-
-        TQ_INT32 column = x;
-        TQ_INT32 columnsRemaining = w;
-
-        while (columnsRemaining > 0) {
-
-            TQ_INT32 numContiguousDstColumns = dst.numContiguousColumns(column, row, row);
-            TQ_INT32 numContiguousSrcColumns = numContiguousColumns(column, row, row);
-
-            TQ_INT32 columns = TQMIN(numContiguousDstColumns, numContiguousSrcColumns);
-            columns = TQMIN(columns, columnsRemaining);
-
-            //const TQ_UINT8 *srcData = pixel(column, row);
-            //TQ_UINT8 *dstData = dst.writablePixel(column, row);
-            KisHLineIteratorPixel srcIt = createHLineIterator(column, row, columns, false);
-            KisHLineIteratorPixel dstIt = dst.createHLineIterator(column, row, columns, true);
-
-            const TQ_UINT8 *srcData = srcIt.rawData();
-            TQ_UINT8 *dstData = dstIt.rawData();
-
-
-            m_colorSpace->convertPixelsTo(srcData, dstData, dstColorSpace, columns, renderingIntent);
-
-            column += columns;
-            columnsRemaining -= columns;
-        }
-    }
-
-    KisDataManagerSP oldData = m_datamanager;
-    KisColorSpace *oldColorSpace = m_colorSpace;
-
-    setData(dst.m_datamanager, dstColorSpace);
-
-    if (undoAdapter() && undoAdapter()->undo()) {
-        undoAdapter()->addCommand(new KisConvertLayerTypeCmd(undoAdapter(), this, oldData, oldColorSpace, m_datamanager, m_colorSpace));
-    }
-}
-
-void KisPaintDevice::setProfile(KisProfile * profile)
-{
-    if (profile == 0) return;
-
-    KisColorSpace * dstSpace =
-            KisMetaRegistry::instance()->csRegistry()->getColorSpace( colorSpace()->id(),
-                                                                      profile);
-    if (dstSpace)
-        m_colorSpace = dstSpace;
-
-}
-
-void KisPaintDevice::setData(KisDataManagerSP data, KisColorSpace * colorSpace)
-{
-    m_datamanager = data;
-    m_colorSpace = colorSpace;
-    m_pixelSize = m_colorSpace->pixelSize();
-    m_nChannels = m_colorSpace->nChannels();
-
-    if (m_parentLayer) {
-        m_parentLayer->setDirty(extent());
-        m_parentLayer->notifyPropertyChanged();
-    }
-}
-
-KisUndoAdapter *KisPaintDevice::undoAdapter() const
-{
-    if (m_parentLayer && m_parentLayer->image()) {
-        return m_parentLayer->image()->undoAdapter();
-    }
-    return 0;
-}
-
-void KisPaintDevice::convertFromTQImage(const TQImage& image, const TQString &srcProfileName,
-                                           TQ_INT32 offsetX, TQ_INT32 offsetY)
-{
-    TQImage img = image;
-
-    // Krita is little-endian inside.
-    if (img.bitOrder() == TQImage::LittleEndian) {
-	img = img.convertBitOrder(TQImage::BigEndian);
-    }
-    kdDebug() << k_funcinfo << img.bitOrder()<< endl;
-    // Krita likes bgra (convertDepth returns *this is the img is alread 32 bits)
-    img = img.convertDepth( 32 );
-#if 0
-    // XXX: Apply import profile
-    if (colorSpace() == KisMetaRegistry::instance()->csRegistry() ->getColorSpace(KisID("RGBA",""),"")) {
-        writeBytes(img.bits(), 0, 0, img.width(), img.height());
-    }
-    else {
-#endif
-        TQ_UINT8 * dstData = new TQ_UINT8[img.width() * img.height() * pixelSize()];
-        KisMetaRegistry::instance()->csRegistry()
-                ->getColorSpace(KisID("RGBA",""),srcProfileName)->
-                        convertPixelsTo(img.bits(), dstData, colorSpace(), img.width() * img.height());
-        writeBytes(dstData, offsetX, offsetY, img.width(), img.height());
-//    }
-}
-
-TQImage KisPaintDevice::convertToTQImage(KisProfile *  dstProfile, float exposure)
-{
-    TQ_INT32 x1;
-    TQ_INT32 y1;
-    TQ_INT32 w;
-    TQ_INT32 h;
-
-    x1 = - getX();
-    y1 = - getY();
-
-    if (image()) {
-        w = image()->width();
-        h = image()->height();
-    }
-    else {
-        extent(x1, y1, w, h);
-    }
-
-    return convertToTQImage(dstProfile, x1, y1, w, h, exposure);
-}
-
-// XXX: is this faster than building the TQImage ourselves? It makes
-TQImage KisPaintDevice::convertToTQImage(KisProfile *  dstProfile, TQ_INT32 x1, TQ_INT32 y1, TQ_INT32 w, TQ_INT32 h, float exposure)
-{
-    if (w < 0)
-        return TQImage();
-
-    if (h < 0)
-        return TQImage();
-
-    TQ_UINT8 * data = new TQ_UINT8 [w * h * m_pixelSize];
-    Q_CHECK_PTR(data);
-
-    // XXX: Is this really faster than converting line by line and building the TQImage directly?
-    //      This copies potentially a lot of data.
-    readBytes(data, x1, y1, w, h);
-    TQImage image = colorSpace()->convertToTQImage(data, w, h, dstProfile, INTENT_PERCEPTUAL, exposure);
-    delete[] data;
-
-    return image;
-}
-
-KisPaintDeviceSP KisPaintDevice::createThumbnailDevice(TQ_INT32 w, TQ_INT32 h)
-{
-    KisPaintDeviceSP thumbnail = new KisPaintDevice(colorSpace(), "thumbnail");
-
-    thumbnail->clear();
-
-    int srcw, srch;
-    if( image() )
-    {
-        srcw = image()->width();
-        srch = image()->height();
-    }
-    else
-    {
-        const TQRect e = exactBounds();
-        srcw = e.width();
-        srch = e.height();
-    }
-
-    if (w > srcw)
-    {
-        w = srcw;
-        h = TQ_INT32(double(srcw) / w * h);
-    }
-    if (h > srch)
-    {
-        h = srch;
-        w = TQ_INT32(double(srch) / h * w);
-    }
-
-    if (srcw > srch)
-        h = TQ_INT32(double(srch) / srcw * w);
-    else if (srch > srcw)
-        w = TQ_INT32(double(srcw) / srch * h);
-
-    for (TQ_INT32 y=0; y < h; ++y) {
-        TQ_INT32 iY = (y * srch ) / h;
-        for (TQ_INT32 x=0; x < w; ++x) {
-            TQ_INT32 iX = (x * srcw ) / w;
-            thumbnail->setPixel(x, y, colorAt(iX, iY));
-        }
-    }
-
-    return thumbnail;
-
-}
-
-
-TQImage KisPaintDevice::createThumbnail(TQ_INT32 w, TQ_INT32 h)
-{
-    int srcw, srch;
-    if( image() )
-    {
-        srcw = image()->width();
-        srch = image()->height();
-    }
-    else
-    {
-        const TQRect e = extent();
-        srcw = e.width();
-        srch = e.height();
-    }
-
-    if (w > srcw)
-    {
-        w = srcw;
-        h = TQ_INT32(double(srcw) / w * h);
-    }
-    if (h > srch)
-    {
-        h = srch;
-        w = TQ_INT32(double(srch) / h * w);
-    }
-
-    if (srcw > srch)
-        h = TQ_INT32(double(srch) / srcw * w);
-    else if (srch > srcw)
-        w = TQ_INT32(double(srcw) / srch * h);
-
-    TQColor c;
-    TQ_UINT8 opacity;
-    TQImage img(w,h,32);
-
-    for (TQ_INT32 y=0; y < h; ++y) {
-        TQ_INT32 iY = (y * srch ) / h;
-        for (TQ_INT32 x=0; x < w; ++x) {
-            TQ_INT32 iX = (x * srcw ) / w;
-            pixel(iX, iY, &c, &opacity);
-            const TQRgb rgb = c.rgb();
-            img.setPixel(x, y, tqRgba(tqRed(rgb), tqGreen(rgb), tqBlue(rgb), opacity));
-        }
-    }
-
-    return img;
-}
-
-KisRectIteratorPixel KisPaintDevice::createRectIterator(TQ_INT32 left, TQ_INT32 top, TQ_INT32 w, TQ_INT32 h, bool writable)
-{
-    if(hasSelection())
-        return KisRectIteratorPixel(this, m_datamanager, m_selection->m_datamanager, left, top, w, h, m_x, m_y, writable);
-    else
-        return KisRectIteratorPixel(this, m_datamanager, NULL, left, top, w, h, m_x, m_y, writable);
-}
-
-KisHLineIteratorPixel  KisPaintDevice::createHLineIterator(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, bool writable)
-{
-    if(hasSelection())
-        return KisHLineIteratorPixel(this, m_datamanager, m_selection->m_datamanager, x, y, w, m_x, m_y, writable);
-    else
-        return KisHLineIteratorPixel(this, m_datamanager, NULL, x, y, w, m_x, m_y, writable);
-}
-
-KisVLineIteratorPixel  KisPaintDevice::createVLineIterator(TQ_INT32 x, TQ_INT32 y, TQ_INT32 h, bool writable)
-{
-    if(hasSelection())
-        return KisVLineIteratorPixel(this, m_datamanager, m_selection->m_datamanager, x, y, h, m_x, m_y, writable);
-    else
-        return KisVLineIteratorPixel(this, m_datamanager, NULL, x, y, h, m_x, m_y, writable);
-
-}
-
-KisRandomAccessorPixel KisPaintDevice::createRandomAccessor(TQ_INT32 x, TQ_INT32 y, bool writable) {
-    if(hasSelection())
-        return KisRandomAccessorPixel(m_datamanager, m_selection->m_datamanager, x, y, m_x, m_y, writable);
-    else
-        return KisRandomAccessorPixel(m_datamanager, NULL, x, y, m_x, m_y, writable);
-}
-
-KisRandomSubAccessorPixel KisPaintDevice::createRandomSubAccessor()
-{
-    return KisRandomSubAccessorPixel(this);
-}
-
-void KisPaintDevice::emitSelectionChanged()
-{
-    if (m_parentLayer && m_parentLayer->image()) {
-        m_parentLayer->image()->slotSelectionChanged();
-    }
-}
-
-void KisPaintDevice::emitSelectionChanged(const TQRect& r)
-{
-    if (m_parentLayer && m_parentLayer->image()) {
-        m_parentLayer->image()->slotSelectionChanged(r);
-    }
-}
-
-KisSelectionSP KisPaintDevice::selection()
-{
-    if ( m_selectionDeselected && m_selection ) {
-        m_selectionDeselected = false;
-    }
-    else if (!m_selection) {
-        m_selection = new KisSelection(this);
-        Q_CHECK_PTR(m_selection);
-        m_selection->setX(m_x);
-        m_selection->setY(m_y);
-    }
-    m_hasSelection = true;
-
-    return m_selection;
-}
-
-
-bool KisPaintDevice::hasSelection()
-{
-    return m_hasSelection;
-}
-
-bool KisPaintDevice::selectionDeselected()
-{
-    return m_selectionDeselected;
-}
-
-
-void KisPaintDevice::deselect()
-{
-    if (m_selection && m_hasSelection) {
-        m_hasSelection = false;
-        m_selectionDeselected = true;
-    }
-}
-
-void KisPaintDevice::reselect()
-{
-    m_hasSelection = true;
-    m_selectionDeselected = false;
-}
-
-void KisPaintDevice::addSelection(KisSelectionSP selection) {
-
-    KisPainter painter(this->selection().data());
-    TQRect r = selection->selectedExactRect();
-    painter.bitBlt(r.x(), r.y(), COMPOSITE_OVER, selection.data(), r.x(), r.y(), r.width(), r.height());
-    painter.end();
-}
-
-void KisPaintDevice::subtractSelection(KisSelectionSP selection) {
-    KisPainter painter(this->selection().data());
-    selection->invert();
-
-    TQRect r = selection->selectedExactRect();
-    painter.bitBlt(r.x(), r.y(), COMPOSITE_ERASE, selection.data(), r.x(), r.y(), r.width(), r.height());
-
-    selection->invert();
-    painter.end();
-}
-
-void KisPaintDevice::clearSelection()
-{
-    if (!hasSelection()) return;
-
-    TQRect r = m_selection->selectedExactRect();
-
-    if (r.isValid()) {
-
-        for (TQ_INT32 y = 0; y < r.height(); y++) {
-
-            KisHLineIterator devIt = createHLineIterator(r.x(), r.y() + y, r.width(), true);
-            KisHLineIterator selectionIt = m_selection->createHLineIterator(r.x(), r.y() + y, r.width(), false);
-
-            while (!devIt.isDone()) {
-                // XXX: Optimize by using stretches
-
-                m_colorSpace->applyInverseAlphaU8Mask( devIt.rawData(), selectionIt.rawData(), 1);
-
-                ++devIt;
-                ++selectionIt;
-            }
-        }
-
-        if (m_parentLayer) {
-            m_parentLayer->setDirty(r);
-        }
-    }
-}
-
-void KisPaintDevice::applySelectionMask(KisSelectionSP tqmask)
-{
-    TQRect r = tqmask->selectedRect();
-    crop(r);
-
-    for (TQ_INT32 y = r.top(); y <= r.bottom(); ++y) {
-
-        KisHLineIterator pixelIt = createHLineIterator(r.x(), y, r.width(), true);
-        KisHLineIterator tqmaskIt = tqmask->createHLineIterator(r.x(), y, r.width(), false);
-
-        while (!pixelIt.isDone()) {
-            // XXX: Optimize by using stretches
-
-            m_colorSpace->applyAlphaU8Mask( pixelIt.rawData(), tqmaskIt.rawData(), 1);
-
-            ++pixelIt;
-            ++tqmaskIt;
-        }
-    }
-}
-
-KisSelectionSP KisPaintDevice::setSelection( KisSelectionSP selection)
-{
-    if (selection) {
-        KisSelectionSP oldSelection = m_selection;
-        m_selection = selection;
-        m_hasSelection = true;
-        return oldSelection;
-    }
-    else return 0;
-}
-
-bool KisPaintDevice::pixel(TQ_INT32 x, TQ_INT32 y, TQColor *c, TQ_UINT8 *opacity)
-{
-    KisHLineIteratorPixel iter = createHLineIterator(x, y, 1, false);
-
-    TQ_UINT8 *pix = iter.rawData();
-
-    if (!pix) return false;
-
-    colorSpace()->toTQColor(pix, c, opacity);
-
-    return true;
-}
-
-
-bool KisPaintDevice::pixel(TQ_INT32 x, TQ_INT32 y, KisColor * kc)
-{
-    KisHLineIteratorPixel iter = createHLineIterator(x, y, 1, false);
-
-    TQ_UINT8 *pix = iter.rawData();
-
-    if (!pix) return false;
-
-    kc->setColor(pix, m_colorSpace);
-
-    return true;
-}
-
-KisColor KisPaintDevice::colorAt(TQ_INT32 x, TQ_INT32 y)
-{
-    //return KisColor(m_datamanager->pixel(x - m_x, y - m_y), m_colorSpace);
-    KisHLineIteratorPixel iter = createHLineIterator(x, y, 1, true);
-    return KisColor(iter.rawData(), m_colorSpace);
-}
-
-bool KisPaintDevice::setPixel(TQ_INT32 x, TQ_INT32 y, const TQColor& c, TQ_UINT8  opacity)
-{
-    KisHLineIteratorPixel iter = createHLineIterator(x, y, 1, true);
-
-    colorSpace()->fromTQColor(c, opacity, iter.rawData());
-
-    return true;
-}
-
-bool KisPaintDevice::setPixel(TQ_INT32 x, TQ_INT32 y, const KisColor& kc)
-{
-    TQ_UINT8 * pix;
-    if (kc.colorSpace() != m_colorSpace) {
-        KisColor kc2 (kc, m_colorSpace);
-        pix = kc2.data();
-    }
-    else {
-        pix = kc.data();
-    }
-
-    KisHLineIteratorPixel iter = createHLineIterator(x, y, 1, true);
-    memcpy(iter.rawData(), pix, m_colorSpace->pixelSize());
-
-    return true;
-}
-
-
-TQ_INT32 KisPaintDevice::numContiguousColumns(TQ_INT32 x, TQ_INT32 minY, TQ_INT32 maxY)
-{
-    return m_datamanager->numContiguousColumns(x - m_x, minY - m_y, maxY - m_y);
-}
-
-TQ_INT32 KisPaintDevice::numContiguousRows(TQ_INT32 y, TQ_INT32 minX, TQ_INT32 maxX)
-{
-    return m_datamanager->numContiguousRows(y - m_y, minX - m_x, maxX - m_x);
-}
-
-TQ_INT32 KisPaintDevice::rowStride(TQ_INT32 x, TQ_INT32 y)
-{
-    return m_datamanager->rowStride(x - m_x, y - m_y);
-}
-
-const TQ_UINT8* KisPaintDevice::pixel(TQ_INT32 x, TQ_INT32 y)
-{
-    return m_datamanager->pixel(x - m_x, y - m_y);
-}
-
-TQ_UINT8* KisPaintDevice::writablePixel(TQ_INT32 x, TQ_INT32 y)
-{
-    return m_datamanager->writablePixel(x - m_x, y - m_y);
-}
-
-void KisPaintDevice::setX(TQ_INT32 x)
-{
-    m_x = x;
-    if(m_selection && m_selection != this)
-        m_selection->setX(x);
-}
-
-void KisPaintDevice::setY(TQ_INT32 y)
-{
-    m_y = y;
-    if(m_selection && m_selection != this)
-        m_selection->setY(y);
-}
-
-
-void KisPaintDevice::readBytes(TQ_UINT8 * data, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h)
-{
-    m_datamanager->readBytes(data, x - m_x, y - m_y, w, h);
-}
-
-void KisPaintDevice::writeBytes(const TQ_UINT8 * data, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h)
-{
-    m_datamanager->writeBytes( data, x - m_x, y - m_y, w, h);
-}
-
-
-KisDataManagerSP KisPaintDevice::dataManager() const
-{
-    return m_datamanager;
-}
-
-KisExifInfo* KisPaintDevice::exifInfo()
-{
-    if(!m_exifInfo)
-        m_exifInfo = new KisExifInfo();
-    return m_exifInfo;
-}
-
-void KisPaintDevice::runBackgroundFilters()
-{
-    if ( m_lock ) return;
-
-    KisTransaction * cmd = new KisTransaction("Running autofilters", this);
-
-    TQRect rc = extent();
-    if (!m_longRunningFilters.isEmpty()) {
-        TQValueList<KisFilter*>::iterator it;
-        TQValueList<KisFilter*>::iterator end = m_longRunningFilters.end();
-        for (it = m_longRunningFilters.begin(); it != end; ++it) {
-            (*it)->process(this, this, 0, rc);
-        }
-    }
-    if (cmd && undoAdapter()) undoAdapter()->addCommand(cmd);
-
-    if (m_parentLayer) m_parentLayer->setDirty(rc);
-}
-
-#include "kis_paint_device.moc"
diff --git a/krita/core/kis_paint_device.h b/krita/core/kis_paint_device.h
deleted file mode 100644
index 653c013a8..000000000
--- a/krita/core/kis_paint_device.h
+++ /dev/null
@@ -1,597 +0,0 @@
-/*
- *  copyright (c) 2002 patrick julien <freak@codepimps.org>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-#ifndef KIS_PAINT_DEVICE_IMPL_H_
-#define KIS_PAINT_DEVICE_IMPL_H_
-
-#include <tqcolor.h>
-#include <tqobject.h>
-#include <tqpixmap.h>
-#include <tqptrlist.h>
-#include <tqrect.h>
-#include <tqvaluelist.h>
-#include <tqstring.h>
-
-#include "kis_types.h"
-#include "kdebug.h"
-#include "kis_global.h"
-#include "kis_image.h"
-#include "kis_colorspace.h"
-#include "kis_canvas_controller.h"
-#include "kis_color.h"
-#include <koffice_export.h>
-
-class DCOPObject;
-
-class TQImage;
-class TQSize;
-class TQPoint;
-class TQWMatrix;
-class TQTimer;
-
-class KNamedCommand;
-
-class KoStore;
-
-class KisExifInfo;
-class KisHLineIteratorPixel;
-class KisImage;
-class KisRectIteratorPixel;
-class KisVLineIteratorPixel;
-class KisRandomAccessorPixel;
-class KisRandomSubAccessorPixel;
-class KisUndoAdapter;
-class KisFilter;
-class KisDataManager;
-typedef KSharedPtr<KisDataManager> KisDataManagerSP;
-
-class KisMemento;
-typedef KSharedPtr<KisMemento> KisMementoSP;
-
-
-/**
- * A paint device contains the actual pixel data and offers methods
- * to read and write pixels. A paint device has an integer x,y position
- * (i.e., are not positioned on the image with sub-pixel accuracy).
- * A KisPaintDevice doesn't have any fixed size, the size change dynamicaly
- * when pixels are accessed by an iterator.
- */
-class KRITACORE_EXPORT KisPaintDevice
-    : public TQObject
-    , public KShared
-{
-
-        Q_OBJECT
-  TQ_OBJECT
-
-public:
-
-    /**
-     * Create a new paint device with the specified colorspace.
-     *
-     * @param colorSpace the colorspace of this paint device
-     * @param name for debugging purposes
-     */
-    KisPaintDevice(KisColorSpace * colorSpace, const char * name = 0);
-
-    /**
-     * Create a new paint device with the specified colorspace. The
-     * tqparentLayer will be notified of changes to this paint device.
-     *
-     * @param tqparentLayer the layer that contains this paint device.
-     * @param colorSpace the colorspace of this paint device
-     * @param name for debugging purposes
-     */
-    KisPaintDevice(KisLayer *tqparentLayer, KisColorSpace * colorSpace, const char * name = 0);
-
-    KisPaintDevice(const KisPaintDevice& rhs);
-    virtual ~KisPaintDevice();
-    virtual DCOPObject *dcopObject();
-
-    void lock(bool lock) { m_lock = lock; }
-
-public:
-
-    /**
-     * Write the pixels of this paint device into the specified file store.
-     */
-    virtual bool write(KoStore *store);
-
-    /**
-     * Fill this paint device with the pixels from the specified file store.
-     */
-    virtual bool read(KoStore *store);
-
-public:
-
-    /**
-     * Moves the device to these new coordinates (so no incremental move or so)
-     */
-    virtual void move(TQ_INT32 x, TQ_INT32 y);
-
-    /**
-     * Convenience method for the above
-     */
-    virtual void move(const TQPoint& pt);
-
-    /**
-     * Move the paint device to the specified location and make it possible to
-     * undo the move.
-     */
-    virtual KNamedCommand * moveCommand(TQ_INT32 x, TQ_INT32 y);
-
-    /**
-     * Returns true of x,y is within the extent of this paint device
-     */
-    bool tqcontains(TQ_INT32 x, TQ_INT32 y) const;
-
-    /**
-     * Convenience method for the above
-     */
-    bool tqcontains(const TQPoint& pt) const;
-
-    /**
-     * Retrieve the bounds of the paint device. The size is not exact,
-     * but may be larger if the underlying datamanager works that way.
-     * For instance, the tiled datamanager keeps the extent to the nearest
-     * multiple of 64.
-     */
-    virtual void extent(TQ_INT32 &x, TQ_INT32 &y, TQ_INT32 &w, TQ_INT32 &h) const;
-    virtual TQRect extent() const;
-
-    /**
-     * XXX: This should be a temporay hack, awaiting a proper fix.
-     *
-     * Indicates whether the extent really represents the extent. For example,
-     * the KisBackground checkerboard pattern is generated by filling the
-     * default tile but it will return an empty extent.
-     */
-    bool extentIsValid() const;
-
-    /// Convience method for the above
-    void setExtentIsValid(bool isValid);
-
-    /**
-     * Get the exact bounds of this paint device. This may be very slow,
-     * especially on larger paint devices because it does a linear scanline search.
-     */
-    virtual void exactBounds(TQ_INT32 &x, TQ_INT32 &y, TQ_INT32 &w, TQ_INT32 &h) const;
-    virtual TQRect exactBounds() const;
-    virtual TQRect exactBoundsOldMethod() const;
-    virtual TQRect exactBoundsImprovedOldMethod() const;
-
-    /**
-     * Cut the paint device down to the specified rect
-     */
-    void crop(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
-
-    /// Convience method for the above
-    void crop(TQRect r);
-
-    /**
-     * Complete erase the current paint device. Its size will become 0.
-     */
-    virtual void clear();
-
-    /**
-     * Fill the given rectangle with the given pixel.
-     */
-    void fill(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h, const TQ_UINT8 *fillPixel);
-
-    /**
-     * Read the bytes representing the rectangle described by x, y, w, h into
-     * data. If data is not big enough, Krita will gladly overwrite the rest
-     * of your precious memory.
-     *
-     * Since this is a copy, you need to make sure you have enough memory.
-     *
-     * Reading from areas not previously initialized will read the default
-     * pixel value into data but not initialize that region.
-     */
-    virtual void readBytes(TQ_UINT8 * data, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
-
-    /**
-     * Copy the bytes in data into the rect specified by x, y, w, h. If the
-     * data is too small or uninitialized, Krita will happily read parts of
-     * memory you never wanted to be read.
-     *
-     * If the data is written to areas of the paint device not previously initialized,
-     * the paint device will grow.
-     */
-    virtual void writeBytes(const TQ_UINT8 * data, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
-
-    /**
-     * Get the number of contiguous columns starting at x, valid for all values
-     * of y between minY and maxY.
-     */
-    TQ_INT32 numContiguousColumns(TQ_INT32 x, TQ_INT32 minY, TQ_INT32 maxY);
-
-    /**
-     * Get the number of contiguous rows starting at y, valid for all values
-     * of x between minX and maxX.
-     */
-    TQ_INT32 numContiguousRows(TQ_INT32 y, TQ_INT32 minX, TQ_INT32 maxX);
-
-    /**
-     * Get the row stride at pixel (x, y). This is the number of bytes to add to a
-     * pointer to pixel (x, y) to access (x, y + 1).
-     */
-    TQ_INT32 rowStride(TQ_INT32 x, TQ_INT32 y);
-
-    /**
-     * Get a read-only pointer to pixel (x, y).
-     */
-    KDE_DEPRECATED const TQ_UINT8* pixel(TQ_INT32 x, TQ_INT32 y);
-
-    /**
-     * Get a read-write pointer to pixel (x, y).
-     */
-    KDE_DEPRECATED TQ_UINT8* writablePixel(TQ_INT32 x, TQ_INT32 y);
-
-    /**
-     *   Converts the paint device to a different colorspace
-     */
-    virtual void convertTo(KisColorSpace * dstColorSpace, TQ_INT32 renderingIntent = INTENT_PERCEPTUAL);
-
-    /**
-     * Changes the profile of the colorspace of this paint device to the given
-     * profile. If the given profile is 0, nothing happens.
-     */
-    virtual void setProfile(KisProfile * profile);
-    
-    /**
-     * Fill this paint device with the data from img; starting at (offsetX, offsetY)
-     * @param srcProfileName name of the RGB profile to interpret the img as. "" is interpreted as sRGB
-     */
-    virtual void convertFromTQImage(const TQImage& img, const TQString &srcProfileName, TQ_INT32 offsetX = 0, TQ_INT32 offsetY = 0);
-
-    /**
-     * Create an RGBA TQImage from a rectangle in the paint device.
-     *
-     * @param x Left coordinate of the rectangle
-     * @param y Top coordinate of the rectangle
-     * @param w Width of the rectangle in pixels
-     * @param h Height of the rectangle in pixels
-     * @param dstProfile RGB profile to use in conversion. May be 0, in which
-     * case it's up to the colour strategy to choose a profile (most
-     * like sRGB).
-     * @param exposure The exposure setting used to render a preview of a high dynamic range image.
-     */
-    virtual TQImage convertToTQImage(KisProfile *  dstProfile, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h, float exposure = 0.0f);
-
-    /**
-     * Create an RGBA TQImage from a rectangle in the paint device. The rectangle is defined by the tqparent image's bounds.
-     *
-     * @param dstProfile RGB profile to use in conversion. May be 0, in which
-     * case it's up to the colour strategy to choose a profile (most
-     * like sRGB).
-     * @param exposure The exposure setting used to render a preview of a high dynamic range image.
-     */
-    virtual TQImage convertToTQImage(KisProfile *  dstProfile, float exposure = 0.0f);
-
-    /**
-     * Creates a paint device thumbnail of the paint device, retaining the aspect ratio.
-     * The width and height of the returned device won't exceed \p maxw and \p maxw, but they may be smaller.
-     */
-
-    KisPaintDeviceSP createThumbnailDevice(TQ_INT32 w, TQ_INT32 h);
-            
-    /**
-     * Creates a thumbnail of the paint device, retaining the aspect ratio.
-     * The width and height of the returned TQImage won't exceed \p maxw and \p maxw, but they may be smaller.
-     * The colors are not corrected for display!
-     */
-    virtual TQImage createThumbnail(TQ_INT32 maxw, TQ_INT32 maxh);
-
-
-    /**
-     * Fill c and opacity with the values found at x and y.
-     *
-     * The color values will be transformed from the profile of
-     * this paint device to the display profile.
-     *
-     * @return true if the operation was succesful.
-     */
-    bool pixel(TQ_INT32 x, TQ_INT32 y, TQColor *c, TQ_UINT8 *opacity);
-
-
-    /**
-     * Fill kc with the values found at x and y. This method differs
-     * from the above in using KisColor, which can be of any colorspace
-     *
-     * The color values will be transformed from the profile of
-     * this paint device to the display profile.
-     *
-     * @return true if the operation was succesful.
-     */
-    bool pixel(TQ_INT32 x, TQ_INT32 y, KisColor * kc);
-
-    /**
-     * Return the KisColor of the pixel at x,y.
-     */
-    KisColor colorAt(TQ_INT32 x, TQ_INT32 y);
-
-    /**
-     * Set the specified pixel to the specified color. Note that this
-     * bypasses KisPainter. the PaintDevice is here used as an equivalent
-     * to TQImage, not TQPixmap. This means that this is not undoable; also,
-     * there is no compositing with an existing value at this location.
-     *
-     * The color values will be transformed from the display profile to
-     * the paint device profile.
-     *
-     * Note that this will use 8-bit values and may cause a significant
-     * degradation when used on 16-bit or hdr quality images.
-     *
-     * @return true if the operation was succesful
-     *
-     */
-    bool setPixel(TQ_INT32 x, TQ_INT32 y, const TQColor& c, TQ_UINT8 opacity);
-
-    bool setPixel(TQ_INT32 x, TQ_INT32 y, const KisColor& kc);
-
-    KisColorSpace * colorSpace() const;
-
-    KisDataManagerSP dataManager() const;
-
-    /**
-     * Replace the pixel data, color strategy, and profile.
-     */
-    void setData(KisDataManagerSP data, KisColorSpace * colorSpace);
-
-    /**
-     * The X offset of the paint device
-     */
-    TQ_INT32 getX() const;
-
-    /**
-     * The Y offset of the paint device
-     */
-    TQ_INT32 getY() const;
-
-    /**
-     * Return the X offset of the paint device
-     */
-    void setX(TQ_INT32 x);
-
-    /**
-     * Return the Y offset of the paint device
-     */
-    void setY(TQ_INT32 y);
-
-
-    /**
-     * Return the number of bytes a pixel takes.
-     */
-    virtual TQ_INT32 pixelSize() const;
-
-    /**
-     * Return the number of channels a pixel takes
-     */
-    virtual TQ_INT32 nChannels() const;
-
-    /**
-     * Return the image that contains this paint device, or 0 if it is not
-     * part of an image. This is the same as calling tqparentLayer()->image().
-     */
-    KisImage *image() const;
-
-    /**
-     * Returns the KisLayer that contains this paint device, or 0 if this is not
-     * part of a layer.
-     */
-    KisLayer *tqparentLayer() const;
-
-    /**
-     * Set the KisLayer that contains this paint device, or 0 if this is not
-     * part of a layer.
-     */
-    void setParentLayer(KisLayer *tqparentLayer);
-
-    /**
-     * Add the specified rect top the tqparent layer (if present)
-     */
-    virtual void setDirty(const TQRect & rc);
-
-    /**
-     * Set the tqparent layer completely dirty, if this paint device has one.
-     */
-    virtual void setDirty();
-    
-    
-    /**
-     * Mirror the device along the X axis
-     */
-    void mirrorX();
-    /**
-     * Mirror the device along the Y axis
-     */
-    void mirrorY();
-
-    KisMementoSP getMemento();
-    void rollback(KisMementoSP memento);
-    void rollforward(KisMementoSP memento);
-
-    /**
-     * This function return an iterator which points to the first pixel of an rectangle
-     */
-    KisRectIteratorPixel createRectIterator(TQ_INT32 left, TQ_INT32 top, TQ_INT32 w, TQ_INT32 h, bool writable);
-
-    /**
-     * This function return an iterator which points to the first pixel of a horizontal line
-     */
-    KisHLineIteratorPixel createHLineIterator(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, bool writable);
-
-    /**
-     * This function return an iterator which points to the first pixel of a vertical line
-     */
-    KisVLineIteratorPixel createVLineIterator(TQ_INT32 x, TQ_INT32 y, TQ_INT32 h, bool writable);
-
-    /**
-     * This function creates a random accessor which allow to randomly access any pixels on
-     * the paint device.
-     * <b>Note:</b> random access is way slower than iterators, allways use iterators whenever
-     * you can
-     */
-    KisRandomAccessorPixel createRandomAccessor(TQ_INT32 x, TQ_INT32 y, bool writable);
-    
-    /**
-     * This function create a random accessor which can easily access to sub pixel values.
-     */
-    KisRandomSubAccessorPixel createRandomSubAccessor();
-    
-    /** Get the current selection or create one if this paintdevice hasn't got a selection yet. */
-    KisSelectionSP selection();
-
-    /** Adds the specified selection to the currently active selection for this paintdevice */
-    void addSelection(KisSelectionSP selection);
-
-    /** Subtracts the specified selection from the currently active selection for this paindevice */
-    void subtractSelection(KisSelectionSP selection);
-
-    /** Whether there is a valid selection for this paintdevice. */
-    bool hasSelection();
-
-   /** Whether the previous selection was deselected. */
-    bool selectionDeselected();
-
-    /** Deselect the selection for this paintdevice. */
-    void deselect();
-
-    /** Reinstates the old selection */
-    void reselect();
-        
-    /** Clear the selected pixels from the paint device */
-    void clearSelection();
-
-    /**
-     * Apply a tqmask to the image data, i.e. multiply each pixel's opacity by its
-     * selectedness in the tqmask.
-     */
-    void applySelectionMask(KisSelectionSP tqmask);
-
-    /**
-     * Sets the selection of this paint device to the new selection,
-     * returns the old selection, if there was an old selection,
-     * otherwise 0
-     */
-    KisSelectionSP setSelection(KisSelectionSP selection);
-
-    /**
-     * Notify the owning image that the current selection has changed.
-     */
-    void emitSelectionChanged();
-
-    /**
-     * Notify the owning image that the current selection has changed.
-     *
-     * @param r the area for which the selection has changed
-     */
-    void emitSelectionChanged(const TQRect& r);
-
-    
-    KisUndoAdapter *undoAdapter() const;
-
-    /**
-     * Return the exifInfo associated with this layer. If no exif infos are
-     * available, the function will create it.
-     */
-    KisExifInfo* exifInfo();
-    /**
-     * This function return true if the layer has exif info associated with it.
-     */
-    bool hasExifInfo() { return m_exifInfo != 0; }
-signals:
-    void positionChanged(KisPaintDeviceSP device);
-    void ioProgress(TQ_INT8 percentage);
-    void profileChanged(KisProfile *  profile);
-
-private slots:
-
-    void runBackgroundFilters();
-    
-private:
-    KisPaintDevice& operator=(const KisPaintDevice&);
-
-protected:
-    KisDataManagerSP m_datamanager;
-    
-private:
-    /* The KisLayer that contains this paint device, or 0 if this is not 
-     * part of a layer.
-     */
-    KisLayer *m_parentLayer;
-
-    bool m_extentIsValid;
-
-    TQ_INT32 m_x;
-    TQ_INT32 m_y;
-    KisColorSpace * m_colorSpace;
-    // Cached for quick access
-    TQ_INT32 m_pixelSize;
-    TQ_INT32 m_nChannels;
-
-    // Whether the selection is active
-    bool m_hasSelection;
-    bool m_selectionDeselected;
-    
-    // Contains the actual selection. For now, there can be only
-    // one selection per layer. XXX: is this a limitation?
-    KisSelectionSP m_selection;
-    
-    DCOPObject * m_dcop;
-
-    KisExifInfo* m_exifInfo;
-
-    TQValueList<KisFilter*> m_longRunningFilters;
-    TQTimer * m_longRunningFilterTimer;
-
-    bool m_lock;
-};
-
-inline TQ_INT32 KisPaintDevice::pixelSize() const
-{
-    Q_ASSERT(m_pixelSize > 0);
-    return m_pixelSize;
-}
-
-inline TQ_INT32 KisPaintDevice::nChannels() const
-{
-    Q_ASSERT(m_nChannels > 0);
-    return m_nChannels;
-;
-}
-
-inline KisColorSpace * KisPaintDevice::colorSpace() const
-{
-    Q_ASSERT(m_colorSpace != 0);
-        return m_colorSpace;
-}
-
-
-inline TQ_INT32 KisPaintDevice::getX() const
-{
-    return m_x;
-}
-
-inline TQ_INT32 KisPaintDevice::getY() const
-{
-    return m_y;
-}
-
-#endif // KIS_PAINT_DEVICE_IMPL_H_
-
diff --git a/krita/core/kis_paint_device_action.h b/krita/core/kis_paint_device_action.h
deleted file mode 100644
index 1e3d41f03..000000000
--- a/krita/core/kis_paint_device_action.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *  Copyright (c) 2005 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_PAINTDEV_ACTION_H_
-#define KIS_PAINTDEV_ACTION_H_
-
-#include "kis_paint_device.h"
-class TQString;
-
-/**
- * Defines an action to do with a paint device. It can be force used by the gui on creation
- * of a layer, for example. Or just appear in a list of actions to do.
- */
-class KisPaintDeviceAction {
-public:
-    virtual ~KisPaintDeviceAction() {}
-    /**
-     * Do something with the paint device. This can be anything, like, for example, popping
-     * up a dialog to choose a texture. The width and height are added because these may
-     * be needed in some cases.
-     */
-    virtual void act(KisPaintDeviceSP paintDev, TQ_INT32 w = 0, TQ_INT32 h = 0) const = 0;
-    /// The name of the action, to be displayed in the GUI
-    virtual TQString name() const = 0;
-    /// A description of the action, to be displayed in the GUI
-    virtual TQString description() const = 0;
-};
-
-#endif // KIS_PAINTDEV_ACTION_H_
diff --git a/krita/core/kis_paint_device_iface.cc b/krita/core/kis_paint_device_iface.cc
deleted file mode 100644
index 1aace538a..000000000
--- a/krita/core/kis_paint_device_iface.cc
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- *  This file is part of the KDE project
- *
- *  Copyright (C) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-#include <kapplication.h>
-
-#include <dcopclient.h>
-
-#include "kis_paint_device_iface.h"
-#include "kis_colorspace_iface.h"
-#include "kis_colorspace.h"
-
-#include "kis_paint_device.h"
-
-KisPaintDeviceIface::KisPaintDeviceIface( KisPaintDevice * tqparent )
-    : DCOPObject("paintdevice")
-{
-    m_parent = tqparent;
-}
-
-TQ_INT32 KisPaintDeviceIface::pixelSize() const
-{
-    return m_parent->pixelSize();
-}
-
-TQ_INT32 KisPaintDeviceIface::nChannels() const
-{
-    return m_parent->nChannels();
-}
-
-TQByteArray KisPaintDeviceIface::readBytes(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h)
-{
-    TQByteArray b (w * h * m_parent->pixelSize());
-
-    m_parent->readBytes((TQ_UINT8*)b.data(), x, y, w, h);
-    return b;
-}
-
-void KisPaintDeviceIface::writeBytes(TQByteArray bytes, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h)
-{
-    m_parent->writeBytes((TQ_UINT8*)bytes.data(), x, y, w, h);
-}
-
-DCOPRef KisPaintDeviceIface::colorSpace() const
-{
-    KisColorSpace * cs = m_parent->colorSpace();
-    if ( !cs )
-        return DCOPRef();
-    else
-        return DCOPRef( kapp->dcopClient()->appId(),
-                        cs->dcopObject()->objId(),
-                        "KisColorSpaceIface" );
-}
-
-void KisPaintDeviceIface::setColorSpace(DCOPRef)
-{
-    // XXX: Figure out how to get the correct object from
-    //      the dcopref
-}
diff --git a/krita/core/kis_paint_device_iface.h b/krita/core/kis_paint_device_iface.h
deleted file mode 100644
index 164b0380c..000000000
--- a/krita/core/kis_paint_device_iface.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- *  This file is part of the KDE project
- *
- *  Copyright (C) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef _KIS_PAINT_DEVICE_IFACE_H
-#define _KIS_PAINT_DEVICE_IFACE_H
-
-#include <dcopref.h>
-#include <dcopobject.h>
-
-#include <tqstring.h>
-
-class KisPaintDevice;
-
-class KisPaintDeviceIface : virtual public DCOPObject
-{
-    K_DCOP
-public:
-    KisPaintDeviceIface( KisPaintDevice * tqparent );
-k_dcop:
-
-    /**
-     * Return the number of bytes a pixel takes.
-     */
-    TQ_INT32 pixelSize() const;
-
-    /**
-     * Return the number of channels a pixel takes
-     */
-    TQ_INT32 nChannels() const;
-
-    /**
-     * Read the bytes representing the rectangle described by x, y, w, h into
-     * data. If data is not big enough, Krita will gladly overwrite the rest
-     * of your precious memory.
-     *
-     * Since this is a copy, you need to make sure you have enough memory.
-     *
-     * Reading from areas not previously initialized will read the default
-     * pixel value into data.
-     */
-    TQByteArray readBytes(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
-
-    /**
-     * Copy the bytes in data into the rect specified by x, y, w, h. If there
-     * data is too small or uninitialized, Krita will happily read parts of
-     * memory you never wanted to be read.
-     *
-     * If the data is written to areas of the paint device not previously initialized,
-     * the paint device will grow.
-     */
-    void writeBytes(TQByteArray bytes, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
-
-    /**
-     * Get the colorspace of this image
-     */
-    DCOPRef colorSpace() const;
-
-    /**
-     * Set the colorspace of this image
-     */
-    void setColorSpace(DCOPRef colorSpace);
-
-
-private:
-
-    KisPaintDevice *m_parent;
-};
-
-#endif
diff --git a/krita/core/kis_paint_layer.cc b/krita/core/kis_paint_layer.cc
deleted file mode 100644
index 636630673..000000000
--- a/krita/core/kis_paint_layer.cc
+++ /dev/null
@@ -1,509 +0,0 @@
-/*
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *  Copyright (c) 2006 Bart Coppens <kde@bartcoppens.be>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-
-#include <kdebug.h>
-#include <tqimage.h>
-
-#include "kis_debug_areas.h"
-#include "kis_image.h"
-#include "kis_paint_layer.h"
-#include "kis_selection.h"
-#include "kis_painter.h"
-#include "kis_undo_adapter.h"
-#include "kis_iterators_pixel.h"
-#include "kis_paint_device.h"
-#include "kis_meta_registry.h"
-#include "kis_colorspace_factory_registry.h"
-#include "kis_datamanager.h"
-#include "kis_undo_adapter.h"
-
-KisPaintLayer::KisPaintLayer(KisImage *img, const TQString& name, TQ_UINT8 opacity, KisPaintDeviceSP dev)
-    : super(img, name, opacity)
-{
-    Q_ASSERT(img);
-    Q_ASSERT(dev);
-    m_paintdev = dev;
-    m_tqmask = 0;
-    m_tqmaskAsSelection = 0;
-    m_paintdev->setParentLayer(this);
-    m_renderMask = false;
-    m_editMask = true;
-}
-
-
-KisPaintLayer::KisPaintLayer(KisImage *img, const TQString& name, TQ_UINT8 opacity)
-    : super(img, name, opacity)
-{
-    Q_ASSERT(img);
-    m_paintdev = new KisPaintDevice(this, img->colorSpace(), name.latin1());
-    m_tqmask = 0;
-    m_tqmaskAsSelection = 0;
-    m_renderMask = false;
-    m_editMask = true;
-}
-
-KisPaintLayer::KisPaintLayer(KisImage *img, const TQString& name, TQ_UINT8 opacity, KisColorSpace * colorSpace)
-    : super(img, name, opacity)
-{
-    Q_ASSERT(img);
-    Q_ASSERT(colorSpace);
-    m_paintdev = new KisPaintDevice(this, colorSpace,  name.latin1());
-    m_tqmask = 0;
-    m_tqmaskAsSelection = 0;
-    m_renderMask = false;
-    m_editMask = true;
-}
-
-KisPaintLayer::KisPaintLayer(const KisPaintLayer& rhs) :
-        KisLayer(rhs), KisLayerSupportsIndirectPainting(rhs)
-{
-    m_paintdev = new KisPaintDevice( *rhs.m_paintdev.data() );
-    m_paintdev->setParentLayer(this);
-    if (rhs.hasMask()) {
-        m_tqmask = new KisPaintDevice(*rhs.m_tqmask.data());
-        m_tqmask->setParentLayer(this);
-    }
-    m_renderMask = rhs.m_renderMask;
-    m_editMask = rhs.m_editMask;
-}
-
-KisLayerSP KisPaintLayer::clone() const
-{
-    return new KisPaintLayer(*this);
-}
-
-KisPaintLayer::~KisPaintLayer()
-{
-    if (m_paintdev != 0) {
-        m_paintdev->setParentLayer(0);
-    }
-    if (m_tqmask != 0) {
-        m_tqmask->setParentLayer(0);
-    }
-}
-
-void KisPaintLayer::paintSelection(TQImage &img, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h)
-{
-    if (m_paintdev && m_paintdev->hasSelection()) {
-        m_paintdev->selection()->paintSelection(img, x, y, w, h);
-    } else if (m_tqmask && m_editMask && m_tqmask->hasSelection()) {
-        m_tqmask->selection()->paintSelection(img, x, y, w, h);
-    }
-}
-
-void KisPaintLayer::paintSelection(TQImage &img, const TQRect& scaledImageRect, const TQSize& scaledImageSize, const TQSize& imageSize)
-{
-    if (m_paintdev && m_paintdev->hasSelection()) {
-        m_paintdev->selection()->paintSelection(img, scaledImageRect, scaledImageSize, imageSize);
-    } else if (m_tqmask && m_editMask && m_tqmask->hasSelection()) {
-        m_tqmask->selection()->paintSelection(img, scaledImageRect, scaledImageSize, imageSize);
-    }
-}
-
-void KisPaintLayer::paintMaskInactiveLayers(TQImage &img, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h)
-{
-    uchar *j = img.bits();
-
-    KisColorSpace *cs = m_paintdev->colorSpace();
-
-    for (TQ_INT32 y2 = y; y2 < h + y; ++y2) {
-        KisHLineIteratorPixel it = m_paintdev->createHLineIterator(x, y2, w, false);
-        while ( ! it.isDone()) {
-            TQ_UINT8 s = cs->getAlpha(it.rawData());
-            if(s==0)
-            {
-                TQ_UINT8 g = (*(j + 0)  + *(j + 1 ) + *(j + 2 )) / 9;
-
-                *(j+0) = 128+g ;
-                *(j+1) = 165+g;
-                *(j+2) = 128+g;
-            }
-            j+=4;
-            ++it;
-        }
-    }
-}
-
-TQImage KisPaintLayer::createThumbnail(TQ_INT32 w, TQ_INT32 h)
-{
-    if (m_paintdev)
-        return m_paintdev->createThumbnail(w, h);
-    else
-        return TQImage();
-}
-
-
-TQ_INT32 KisPaintLayer::x() const {
-    if (m_paintdev)
-        return m_paintdev->getX();
-    else return 0;
-}
-
-void KisPaintLayer::setX(TQ_INT32 x)
-{
-    if (m_paintdev)
-        m_paintdev->setX(x);
-}
-
-TQ_INT32 KisPaintLayer::y() const {
-    if (m_paintdev)
-        return m_paintdev->getY();
-    else
-        return 0;
-}
-
-void KisPaintLayer::setY(TQ_INT32 y) {
-    if (m_paintdev)
-        m_paintdev->setY(y);
-}
-
-TQRect KisPaintLayer::extent() const {
-    if (m_paintdev)
-        return m_paintdev->extent();
-    else
-        return TQRect();
-}
-
-TQRect KisPaintLayer::exactBounds() const {
-    if (m_paintdev)
-        return m_paintdev->exactBounds();
-    else
-        return TQRect();
-}
-
-void KisPaintLayer::removeMask() {
-    if (!hasMask())
-        return;
-
-    m_tqmask->setParentLayer(0);
-    m_tqmask = 0;
-    m_tqmaskAsSelection = 0;
-    setDirty();
-
-    emit sigMaskInfoChanged();
-}
-
-// ### XXX Do we apply the tqmask outside the image boundaries too? I'd say no, but I'm not sure
-void KisPaintLayer::applyMask() {
-    if (!hasMask())
-        return;
-
-    int x, y, w, h;
-    m_paintdev->extent(x, y, w, h);
-
-    // A bit slow; but it works
-    KisPaintDeviceSP temp = new KisPaintDevice(m_paintdev->colorSpace());
-    KisPainter gc(temp);
-    gc.bltSelection(x, y, COMPOSITE_OVER, m_paintdev, m_tqmaskAsSelection, OPACITY_OPAQUE, x, y, w, h);
-    gc.end();
-    gc.begin(m_paintdev);
-    gc.bitBlt(x, y, COMPOSITE_COPY, temp, OPACITY_OPAQUE, x, y, w, h);
-    gc.end();
-
-    removeMask();
-}
-
-KisPaintDeviceSP KisPaintLayer::createMask() {
-    if (hasMask())
-        return m_tqmask;
-
-    kdDebug() << k_funcinfo << endl;
-    // Grey8 nicely fits our needs of being intuitively comparable to other apps'
-    // tqmask layer interfaces. It does have an alpha component though, which is a bit
-    // less appropriate in this context.
-    m_tqmask = new KisPaintDevice(KisMetaRegistry::instance()->csRegistry()
-            ->getColorSpace(KisID("GRAYA"), 0));
-
-    genericMaskCreationHelper();
-
-    return m_tqmask;
-}
-
-// FIXME If from is a paint device is not grey8!!
-void KisPaintLayer::createMaskFromPaintDevice(KisPaintDeviceSP from) {
-    if (hasMask())
-        return; // Or overwrite? XXX
-
-    kdDebug() << k_funcinfo << endl;
-    m_tqmask = from; // KisPaintDevice(*from); XXX
-
-    genericMaskCreationHelper();
-}
-
-void KisPaintLayer::createMaskFromSelection(KisSelectionSP from) {
-    kdDebug() << k_funcinfo << endl;
-    m_tqmask = new KisPaintDevice(KisMetaRegistry::instance()->csRegistry()
-            ->getColorSpace(KisID("GRAYA"), 0));
-    m_tqmask->setParentLayer(this);
-
-    m_tqmaskAsSelection = new KisSelection(); // Anonymous selection is good enough
-
-    // Default pixel is opaque white == don't tqmask?
-    TQ_UINT8 const defPixel[] = { 255, 255 };
-    m_tqmask->dataManager()->setDefaultPixel(defPixel);
-
-    if (from) {
-        TQRect r(extent());
-
-        int w = r.width();
-        int h = r.height();
-        for (int y = r.y(); y < h; y++) {
-            KisHLineIteratorPixel srcIt = from->createHLineIterator(r.x(), y, w, false);
-            KisHLineIteratorPixel dstIt = m_tqmask->createHLineIterator(r.x(), y, w, true);
-
-            while(!dstIt.isDone()) {
-                // XXX same remark as in convertMaskToSelection
-                *dstIt.rawData() = *srcIt.rawData();
-                ++srcIt;
-                ++dstIt;
-            }
-        }
-    }
-
-    convertMaskToSelection(extent());
-    m_paintdev->deselect();
-
-    setDirty();
-    emit sigMaskInfoChanged();
-}
-
-KisPaintDeviceSP KisPaintLayer::getMask() {
-    createMask();
-    kdDebug() << k_funcinfo << endl;
-    return m_tqmask;
-}
-
-KisSelectionSP KisPaintLayer::getMaskAsSelection() {
-    createMask();
-    kdDebug() << k_funcinfo << endl;
-    return m_tqmaskAsSelection;
-}
-
-void KisPaintLayer::setEditMask(bool b) {
-    m_editMask = b;
-    emit sigMaskInfoChanged();
-}
-
-void KisPaintLayer::setRenderMask(bool b) {
-    m_renderMask = b;
-
-    if (hasMask())
-        setDirty();
-
-    emit sigMaskInfoChanged();
-}
-
-void KisPaintLayer::convertMaskToSelection(const TQRect& r) {
-    KisRectIteratorPixel srcIt = m_tqmask->createRectIterator(r.x(), r.y(),
-            r.width(), r.height(), false);
-    KisRectIteratorPixel dstIt = m_tqmaskAsSelection->createRectIterator(r.x(), r.y(),
-            r.width(), r.height(), true);
-
-    while(!dstIt.isDone()) {
-        // src is grey8 (grey + alpha), dst is alpha8. We convert the grey value to
-        // alpha8 manually and ignore the alpha (that's why we don't convert using default
-        // functions, and interpret the data raw!) [ XXX ]
-        *dstIt.rawData() = *srcIt.rawData();
-        ++srcIt;
-        ++dstIt;
-    }
-}
-
-void KisPaintLayer::genericMaskCreationHelper() {
-    m_tqmask->setParentLayer(this);
-
-    m_tqmaskAsSelection = new KisSelection(); // Anonymous selection is good enough
-
-    // Default pixel is opaque white == don't tqmask?
-    TQ_UINT8 const defPixel[] = { 255, 255 };
-    m_tqmask->dataManager()->setDefaultPixel(defPixel);
-
-    setDirty();
-    emit sigMaskInfoChanged();
-}
-
-void KisPaintLayer::setDirty(bool propagate) {
-    if (hasMask())
-        convertMaskToSelection(extent());
-    super::setDirty(propagate);
-}
-
-void KisPaintLayer::setDirty(const TQRect & rect, bool propagate) {
-    if (hasMask())
-        convertMaskToSelection(rect);
-    super::setDirty(rect, propagate);
-}
-
-// Undoable versions code
-namespace {
-    class KisCreateMaskCommand : public KNamedCommand {
-        typedef KNamedCommand super;
-        KisPaintLayerSP m_layer;
-        KisPaintDeviceSP m_tqmask;
-    public:
-        KisCreateMaskCommand(const TQString& name, KisPaintLayer* layer)
-            : super(name), m_layer(layer) {}
-        virtual void execute() {
-            kdDebug() << k_funcinfo << endl;
-            if (!m_tqmask)
-                m_tqmask = m_layer->createMask();
-            else
-                m_layer->createMaskFromPaintDevice(m_tqmask);
-        }
-        virtual void unexecute() {
-            m_layer->removeMask();
-        }
-    };
-
-    class KisMaskFromSelectionCommand : public KNamedCommand {
-        typedef KNamedCommand super;
-        KisPaintLayerSP m_layer;
-        KisPaintDeviceSP m_tqmaskBefore;
-        KisPaintDeviceSP m_tqmaskAfter;
-        KisSelectionSP m_selection;
-    public:
-        KisMaskFromSelectionCommand(const TQString& name, KisPaintLayer* layer)
-            : super(name), m_layer(layer) {
-            if (m_layer->hasMask())
-                m_tqmaskBefore = m_layer->getMask();
-            else
-                m_tqmaskBefore = 0;
-            m_tqmaskAfter = 0;
-            if (m_layer->paintDevice()->hasSelection())
-                m_selection = m_layer->paintDevice()->selection();
-            else
-                m_selection = 0;
-        }
-        virtual void execute() {
-            if (!m_tqmaskAfter) {
-                m_layer->createMaskFromSelection(m_selection);
-                m_tqmaskAfter = m_layer->getMask();
-            } else {
-                m_layer->paintDevice()->deselect();
-                m_layer->createMaskFromPaintDevice(m_tqmaskAfter);
-            }
-        }
-        virtual void unexecute() {
-            m_layer->paintDevice()->setSelection(m_selection);
-            if (m_tqmaskBefore)
-                m_layer->createMaskFromPaintDevice(m_tqmaskBefore);
-            else
-                m_layer->removeMask();
-        }
-    };
-
-    class KisMaskToSelectionCommand : public KNamedCommand {
-        typedef KNamedCommand super;
-        KisPaintLayerSP m_layer;
-        KisPaintDeviceSP m_tqmask;
-        KisSelectionSP m_selection;
-    public:
-        KisMaskToSelectionCommand(const TQString& name, KisPaintLayer* layer)
-            : super(name), m_layer(layer) {
-            m_tqmask = m_layer->getMask();
-            if (m_layer->paintDevice()->hasSelection())
-                m_selection = m_layer->paintDevice()->selection();
-            else
-                m_selection = 0;
-        }
-        virtual void execute() {
-            m_layer->paintDevice()->setSelection(m_layer->getMaskAsSelection());
-            m_layer->removeMask();
-        }
-        virtual void unexecute() {
-            if (m_selection)
-                m_layer->paintDevice()->setSelection(m_selection);
-            else
-                m_layer->paintDevice()->deselect();
-            m_layer->createMaskFromPaintDevice(m_tqmask);
-        }
-    };
-
-    class KisRemoveMaskCommand : public KNamedCommand {
-        typedef KNamedCommand super;
-        KisPaintLayerSP m_layer;
-        KisPaintDeviceSP m_tqmask;
-    public:
-        KisRemoveMaskCommand(const TQString& name, KisPaintLayer* layer)
-            : super(name), m_layer(layer) {
-            m_tqmask = m_layer->getMask();
-        }
-        virtual void execute() {
-            kdDebug() << k_funcinfo << endl;
-            m_layer->removeMask();
-        }
-        virtual void unexecute() {
-            // I hope that if the undo stack unwinds, it will end up here in the right
-            // state again; taking a deep-copy sounds like wasteful to me
-            m_layer->createMaskFromPaintDevice(m_tqmask);
-        }
-    };
-
-    class KisApplyMaskCommand : public KNamedCommand {
-        typedef KNamedCommand super;
-        KisPaintLayerSP m_layer;
-        KisPaintDeviceSP m_tqmask;
-        KisPaintDeviceSP m_original;
-    public:
-        KisApplyMaskCommand(const TQString& name, KisPaintLayer* layer)
-            : super(name), m_layer(layer) {
-            m_tqmask = m_layer->getMask();
-            m_original = new KisPaintDevice(*m_layer->paintDevice());
-        }
-        virtual void execute() {
-            m_layer->applyMask();
-        }
-        virtual void unexecute() {
-                // I hope that if the undo stack unwinds, it will end up here in the right
-                // state again; taking a deep-copy sounds like wasteful to me
-            KisPainter gc(m_layer->paintDevice());
-            int x, y, w, h;
-            m_layer->paintDevice()->extent(x, y, w, h);
-
-            gc.bitBlt(x, y, COMPOSITE_COPY, m_original, OPACITY_OPAQUE, x, y, w, h);
-            gc.end();
-
-            m_layer->createMaskFromPaintDevice(m_tqmask);
-        }
-    };
-}
-
-KNamedCommand* KisPaintLayer::createMaskCommand() {
-    return new KisCreateMaskCommand(i18n("Create Layer Mask"), this);
-}
-
-KNamedCommand* KisPaintLayer::tqmaskFromSelectionCommand() {
-    return new KisMaskFromSelectionCommand(i18n("Mask From Selection"), this);
-}
-
-KNamedCommand* KisPaintLayer::tqmaskToSelectionCommand() {
-    return new KisMaskToSelectionCommand(i18n("Mask to Selection"), this);
-}
-
-
-KNamedCommand* KisPaintLayer::removeMaskCommand() {
-    return new KisRemoveMaskCommand(i18n("Remove Layer Mask"), this);
-}
-
-KNamedCommand* KisPaintLayer::applyMaskCommand() {
-    return new KisApplyMaskCommand(i18n("Apply Layer Mask"), this);
-}
-
-
-#include "kis_paint_layer.moc"
diff --git a/krita/core/kis_paint_layer.h b/krita/core/kis_paint_layer.h
deleted file mode 100644
index 9e598e7aa..000000000
--- a/krita/core/kis_paint_layer.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-#ifndef KIS_PAINT_LAYER_H_
-#define KIS_PAINT_LAYER_H_
-
-#include "kis_types.h"
-#include "kis_layer.h"
-#include "kis_paint_device.h"
-#include "kis_colorspace.h"
-/**
- * This layer is of a type that can be painted on.
- */
-class KisPaintLayer : public KisLayer, public KisLayerSupportsIndirectPainting {
-    typedef KisLayer super;
-
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    KisPaintLayer(KisImage *img, const TQString& name, TQ_UINT8 opacity, KisPaintDeviceSP dev);
-    KisPaintLayer(KisImage *img, const TQString& name, TQ_UINT8 opacity);
-    KisPaintLayer(KisImage *img, const TQString& name, TQ_UINT8 opacity, KisColorSpace * colorSpace);
-    KisPaintLayer(const KisPaintLayer& rhs);
-    virtual ~KisPaintLayer();
-
-    virtual KisLayerSP clone() const;
-public:
-
-    // Called when the layer is made active
-    virtual void activate() {}
-
-    // Called when another layer is made active
-    virtual void deactivate() {}
-
-    virtual TQ_INT32 x() const;
-    virtual void setX(TQ_INT32 x);
-
-    virtual TQ_INT32 y() const;
-    virtual void setY(TQ_INT32 y);
-
-    virtual TQRect extent() const;
-    virtual TQRect exactBounds() const;
-
-    virtual void paintSelection(TQImage &img, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
-    virtual void paintSelection(TQImage &img, const TQRect& scaledImageRect, const TQSize& scaledImageSize, const TQSize& imageSize);
-
-    virtual void paintMaskInactiveLayers(TQImage &img, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
-
-    virtual TQImage createThumbnail(TQ_INT32 w, TQ_INT32 h);
-
-    virtual bool accept(KisLayerVisitor &v)
-        {
-//            kdDebug(41001) << "\tPAINT\t" << name()
-//                    << " dirty: " << dirty() << "\n";
-            return v.visit(this);
-        }
-
-
-    inline KisPaintDeviceSP paintDevice() const { return m_paintdev; }
-
-    /// Returns the paintDevice that accompanies this layer (or tqmask, see editMask)
-    inline KisPaintDeviceSP paintDeviceOrMask() const {
-        if (hasMask() && editMask())
-            return m_tqmask;
-        return m_paintdev;
-    }
-
-    // Mask Layer
-
-    /// Does this layer have a layer tqmask?
-    bool hasMask() const { return m_tqmask != 0; }
-    // XXX TODO: Make these undo-able!
-    /// Create a tqmask if it does not yet exist, and return it
-    KisPaintDeviceSP createMask();
-    /// Convert the from argument to the tqmask
-    void createMaskFromPaintDevice(KisPaintDeviceSP from);
-    /**
-     * Convert the from selection to a paint device (should convert the getMaskAsSelection
-     * result back to the tqmask). Overwrites the current tqmask, if any. Also removes the selection
-     */
-    void createMaskFromSelection(KisSelectionSP from);
-    /// Remove the layer tqmask
-    void removeMask();
-    /// Apply the layer tqmask to the paint device, this removes the tqmask afterwards
-    void applyMask();
-    /// Returns the layer tqmask's device. Creates one if there is currently none
-    KisPaintDeviceSP getMask();
-    /// Returns the layer tqmask's device, converted to a selection. Creates one if there is currently none
-    KisSelectionSP getMaskAsSelection();
-
-    /// Undoable version of createMask
-    KNamedCommand* createMaskCommand();
-    /// Undoable version of createMaskFromSelection
-    KNamedCommand* tqmaskFromSelectionCommand();
-    /// Undoable, removes the current tqmask, but converts it to the current selection
-    KNamedCommand* tqmaskToSelectionCommand();
-    /// Undoable version of removeMask
-    KNamedCommand* removeMaskCommand();
-    /// Undoable version of applyMask
-    KNamedCommand* applyMaskCommand();
-
-    /// Returns true if the tqmasked part of the tqmask will be rendered instead of being transparent
-    bool renderMask() const { return m_renderMask; }
-    /// Set the renderMask property
-    void setRenderMask(bool b);
-
-    /**
-     * When this returns true, the KisPaintDevice returned in paintDevice will actually
-     * be the layer tqmask (if there is one). This is so that tools can draw on the tqmask
-     * without needing to know its existance.
-     */
-    bool editMask() const { return m_editMask; }
-    /// Sets the editMask property
-    void setEditMask(bool b);
-
-    /// Overridden to call the private convertMaskToSelection
-    virtual void setDirty(bool propagate = true);
-    /// Same as above
-    virtual void setDirty(const TQRect & rect, bool propagate = true);
-
-    // KisLayerSupportsIndirectPainting
-    virtual KisLayer* layer() { return this; }
-signals:
-    /// When the tqmask is created/destroyed or the edittqmask or rendertqmask is changed
-    void sigMaskInfoChanged();
-
-private:
-    void convertMaskToSelection(const TQRect& r);
-    void genericMaskCreationHelper();
-    KisPaintDeviceSP m_paintdev;
-    // Layer tqmask related:
-    // XXX It would be nice to merge the next 2 devices...
-    KisPaintDeviceSP m_tqmask; // The tqmask that we can edit and display easily
-    KisSelectionSP m_tqmaskAsSelection; // The tqmask as selection, to apply and render easily
-    bool m_renderMask;
-    bool m_editMask;
-};
-
-typedef KSharedPtr<KisPaintLayer> KisPaintLayerSP;
-
-#endif // KIS_PAINT_LAYER_H_
-
diff --git a/krita/core/kis_painter.cc b/krita/core/kis_painter.cc
deleted file mode 100644
index b83539189..000000000
--- a/krita/core/kis_painter.cc
+++ /dev/null
@@ -1,928 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *  Copyright (c) 2004 Clarence Dang <dang@kde.org>
- *  Copyright (c) 2004 Adrian Page <adrian@pagenet.plus.com>
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <stdlib.h>
-#include <string.h>
-#include <cfloat>
-#include <cmath>
-#include <climits>
-#include <strings.h>
-
-#include "tqbrush.h"
-#include "tqfontinfo.h"
-#include "tqfontmetrics.h"
-#include "tqpen.h"
-#include "tqregion.h"
-#include "tqwmatrix.h"
-#include <tqimage.h>
-#include <tqmap.h>
-#include <tqpainter.h>
-#include <tqpixmap.h>
-#include <tqpointarray.h>
-#include <tqrect.h>
-#include <tqstring.h>
-
-#include <kdebug.h>
-#include <kcommand.h>
-#include <klocale.h>
-
-#include "kis_brush.h"
-#include "kis_debug_areas.h"
-#include "kis_image.h"
-#include "kis_layer.h"
-#include "kis_paint_device.h"
-#include "kis_painter.h"
-#include "kis_pattern.h"
-#include "kis_rect.h"
-#include "kis_colorspace.h"
-#include "kis_transaction.h"
-#include "kis_types.h"
-#include "kis_vec.h"
-#include "kis_iterators_pixel.h"
-#include "kis_paintop.h"
-#include "kis_selection.h"
-#include "kis_fill_painter.h"
-#include "kis_color.h"
-
-// Maximum distance from a Bezier control point to the line through the start
-// and end points for the curve to be considered flat.
-#define BEZIER_FLATNESS_THRESHOLD 0.5
-
-KisPainter::KisPainter()
-{
-    init();
-}
-
-KisPainter::KisPainter(KisPaintDeviceSP device)
-{
-    init();
-    Q_ASSERT(device);
-        begin(device);
-}
-
-void KisPainter::init()
-{
-    m_transaction = 0;
-    m_paintOp = 0;
-    m_filter = 0;
-    m_brush = 0;
-    m_pattern= 0;
-    m_opacity = OPACITY_OPAQUE;
-    m_compositeOp = COMPOSITE_OVER;
-    m_dab = 0;
-    m_fillStyle = FillStyleNone;
-    m_strokeStyle = StrokeStyleBrush;
-    m_pressure = PRESSURE_MIN;
-    m_duplicateHealing = false;
-    m_duplicateHealingRadius = 10;
-    m_duplicatePerspectiveCorrection = false;
-    m_varyBrushSpacingWithPressureWhenDrawingALine = true;
-}
-
-KisPainter::~KisPainter()
-{
-    m_brush = 0;
-    delete m_paintOp;
-    end();
-}
-
-void KisPainter::begin(KisPaintDeviceSP device)
-{
-    if (!device) return;
-
-    if (m_transaction)
-        delete m_transaction;
-
-    m_device = device;
-    m_colorSpace = device->colorSpace();
-    m_pixelSize = device->pixelSize();
-}
-
-KCommand *KisPainter::end()
-{
-    return endTransaction();
-}
-
-void KisPainter::beginTransaction(const TQString& customName)
-{
-    if (m_transaction)
-        delete m_transaction;
-    m_transaction = new KisTransaction(customName, m_device);
-    Q_CHECK_PTR(m_transaction);
-}
-
-void KisPainter::beginTransaction( KisTransaction* command)
-{
-    if (m_transaction)
-        delete m_transaction;
-    m_transaction = command;
-}
-
-
-KCommand *KisPainter::endTransaction()
-{
-    KCommand *command = m_transaction;
-        m_transaction = 0;
-        return command;
-}
-
-
-TQRect KisPainter::dirtyRect() {
-    TQRect r = m_dirtyRect;
-    m_dirtyRect = TQRect();
-    return r;
-}
-
-void KisPainter::bitBlt(TQ_INT32 dx, TQ_INT32 dy,
-                        const KisCompositeOp& op,
-                        KisPaintDeviceSP srcdev,
-                        TQ_UINT8 opacity,
-                        TQ_INT32 sx, TQ_INT32 sy,
-                        TQ_INT32 sw, TQ_INT32 sh)
-{
-    if (srcdev == 0) {
-        return;
-    }
-
-    TQRect srcRect = TQRect(sx, sy, sw, sh);
-
-    if (srcdev->extentIsValid() && op != COMPOSITE_COPY) {
-        srcRect &= srcdev->extent();
-    }
-
-    if (srcRect.isEmpty()) {
-        return;
-    }
-
-    dx += srcRect.x() - sx;
-    dy += srcRect.y() - sy;
-
-    sx = srcRect.x();
-    sy = srcRect.y();
-    sw = srcRect.width();
-    sh = srcRect.height();
-
-    addDirtyRect(TQRect(dx, dy, sw, sh));
-
-    KisColorSpace * srcCs = srcdev->colorSpace();
-
-    TQ_INT32 dstY = dy;
-    TQ_INT32 srcY = sy;
-    TQ_INT32 rowsRemaining = sh;
-
-    while (rowsRemaining > 0) {
-
-        TQ_INT32 dstX = dx;
-        TQ_INT32 srcX = sx;
-        TQ_INT32 columnsRemaining = sw;
-        TQ_INT32 numContiguousDstRows = m_device->numContiguousRows(dstY, dstX, dstX + sw - 1);
-        TQ_INT32 numContiguousSrcRows = srcdev->numContiguousRows(srcY, srcX, srcX + sw - 1);
-
-        TQ_INT32 rows = TQMIN(numContiguousDstRows, numContiguousSrcRows);
-        rows = TQMIN(rows, rowsRemaining);
-
-        while (columnsRemaining > 0) {
-
-            TQ_INT32 numContiguousDstColumns = m_device->numContiguousColumns(dstX, dstY, dstY + rows - 1);
-            TQ_INT32 numContiguousSrcColumns = srcdev->numContiguousColumns(srcX, srcY, srcY + rows - 1);
-
-            TQ_INT32 columns = TQMIN(numContiguousDstColumns, numContiguousSrcColumns);
-            columns = TQMIN(columns, columnsRemaining);
-
-            TQ_INT32 srcRowStride = srcdev->rowStride(srcX, srcY);
-            //const TQ_UINT8 *srcData = srcdev->pixel(srcX, srcY);
-            KisHLineIteratorPixel srcIt = srcdev->createHLineIterator(srcX, srcY, columns, false);
-            const TQ_UINT8 *srcData = srcIt.rawData();
-
-            //TQ_UINT8 *dstData = m_device->writablePixel(dstX, dstY);
-            TQ_INT32 dstRowStride = m_device->rowStride(dstX, dstY);
-            KisHLineIteratorPixel dstIt = m_device->createHLineIterator(dstX, dstY, columns, true);
-            TQ_UINT8 *dstData = dstIt.rawData();
-
-
-            m_colorSpace->bitBlt(dstData,
-                          dstRowStride,
-                          srcCs,
-                          srcData,
-                          srcRowStride,
-                          0,
-                          0,
-                          opacity,
-                          rows,
-                          columns,
-                          op);
-
-            srcX += columns;
-            dstX += columns;
-            columnsRemaining -= columns;
-        }
-
-        srcY += rows;
-        dstY += rows;
-        rowsRemaining -= rows;
-    }
-}
-
-void KisPainter::bltSelection(TQ_INT32 dx, TQ_INT32 dy,
-                  const KisCompositeOp &op,
-                  KisPaintDeviceSP srcdev,
-                  KisSelectionSP seldev,
-                  TQ_UINT8 opacity,
-                  TQ_INT32 sx, TQ_INT32 sy,
-                  TQ_INT32 sw, TQ_INT32 sh)
-{
-    // Better use a probablistic method than a too slow one
-    if (seldev->isProbablyTotallyUnselected(TQRect(dx, dy, sw, sh))) {
-/*
-        kdDebug() << "Blitting outside selection rect\n";
-
-        kdDebug() << "srcdev: " << srcdev << " (" << srcdev->name() << ")"
-        << ", seldev: " << seldev << " (" << seldev->name() << ")"
-        << ". dx, dy " << dx << "," << dy
-        << ". sx, sy : sw, sy " << sx << "," << sy << " : " << sw << "," << sh << endl;
-*/
-        return;
-    }
-    bltMask(dx,dy,op,srcdev,seldev.data(),opacity,sx,sy,sw,sh);
-}
-
-void KisPainter::bltMask(TQ_INT32 dx, TQ_INT32 dy,
-                     const KisCompositeOp &op,
-                     KisPaintDeviceSP srcdev,
-                     KisPaintDeviceSP seldev,
-                     TQ_UINT8 opacity,
-                     TQ_INT32 sx, TQ_INT32 sy,
-                     TQ_INT32 sw, TQ_INT32 sh)
-
-{
-    if (srcdev == 0) return;
-
-    if (seldev == 0) return;
-
-    if (m_device == 0) return;
-
-
-    TQRect srcRect = TQRect(sx, sy, sw, sh);
-
-    if (srcdev->extentIsValid() && op != COMPOSITE_COPY) {
-        srcRect &= srcdev->extent();
-    }
-
-    if (srcRect.isEmpty()) {
-        return;
-    }
-
-    dx += srcRect.x() - sx;
-    dy += srcRect.y() - sy;
-
-    sx = srcRect.x();
-    sy = srcRect.y();
-    sw = srcRect.width();
-    sh = srcRect.height();
-
-    addDirtyRect(TQRect(dx, dy, sw, sh));
-
-    KisColorSpace * srcCs = srcdev->colorSpace();
-
-    TQ_INT32 dstY = dy;
-    TQ_INT32 srcY = sy;
-    TQ_INT32 rowsRemaining = sh;
-
-    while (rowsRemaining > 0) {
-
-        TQ_INT32 dstX = dx;
-        TQ_INT32 srcX = sx;
-        TQ_INT32 columnsRemaining = sw;
-        TQ_INT32 numContiguousDstRows = m_device->numContiguousRows(dstY, dstX, dstX + sw - 1);
-        TQ_INT32 numContiguousSrcRows = srcdev->numContiguousRows(srcY, srcX, srcX + sw - 1);
-        TQ_INT32 numContiguousSelRows = seldev->numContiguousRows(dstY, dstX, dstX + sw - 1);
-
-        TQ_INT32 rows = TQMIN(numContiguousDstRows, numContiguousSrcRows);
-        rows = TQMIN(numContiguousSelRows, rows);
-        rows = TQMIN(rows, rowsRemaining);
-
-        while (columnsRemaining > 0) {
-
-            TQ_INT32 numContiguousDstColumns = m_device->numContiguousColumns(dstX, dstY, dstY + rows - 1);
-            TQ_INT32 numContiguousSrcColumns = srcdev->numContiguousColumns(srcX, srcY, srcY + rows - 1);
-            TQ_INT32 numContiguousSelColumns = seldev->numContiguousColumns(dstX, dstY, dstY + rows - 1);
-
-            TQ_INT32 columns = TQMIN(numContiguousDstColumns, numContiguousSrcColumns);
-            columns = TQMIN(numContiguousSelColumns, columns);
-            columns = TQMIN(columns, columnsRemaining);
-
-            //TQ_UINT8 *dstData = m_device->writablePixel(dstX, dstY);
-            TQ_INT32 dstRowStride = m_device->rowStride(dstX, dstY);
-            KisHLineIteratorPixel dstIt = m_device->createHLineIterator(dstX, dstY, columns, true);
-            TQ_UINT8 *dstData = dstIt.rawData();
-
-            //const TQ_UINT8 *srcData = srcdev->pixel(srcX, srcY);
-            TQ_INT32 srcRowStride = srcdev->rowStride(srcX, srcY);
-            KisHLineIteratorPixel srcIt = srcdev->createHLineIterator(srcX, srcY, columns, false);
-            const TQ_UINT8 *srcData = srcIt.rawData();
-
-            //const TQ_UINT8 *selData = seldev->pixel(dstX, dstY);
-            TQ_INT32 selRowStride = seldev->rowStride(dstX, dstY);
-            KisHLineIteratorPixel selIt = seldev->createHLineIterator(dstX, dstY, columns, false);
-            const TQ_UINT8 *selData = selIt.rawData();
-
-            m_colorSpace->bitBlt(dstData,
-                                   dstRowStride,
-                                   srcCs,
-                                   srcData,
-                                   srcRowStride,
-                                   selData,
-                                   selRowStride,
-                                   opacity,
-                                   rows,
-                                   columns,
-                                   op);
-
-            srcX += columns;
-            dstX += columns;
-            columnsRemaining -= columns;
-        }
-
-        srcY += rows;
-        dstY += rows;
-        rowsRemaining -= rows;
-    }
-}
-
-
-void KisPainter::bltSelection(TQ_INT32 dx, TQ_INT32 dy,
-                  const KisCompositeOp& op,
-                  KisPaintDeviceSP srcdev,
-                  TQ_UINT8 opacity,
-                  TQ_INT32 sx, TQ_INT32 sy,
-                  TQ_INT32 sw, TQ_INT32 sh)
-{
-    if (m_device == 0) return;
-    if (!m_device->hasSelection()) {
-        bitBlt(dx, dy, op, srcdev, opacity, sx, sy, sw, sh);
-    }
-    else
-        bltSelection(dx,dy,op,srcdev, m_device->selection(),opacity,sx,sy,sw,sh);
-}
-
-double KisPainter::paintLine(const KisPoint & pos1,
-                 const double pressure1,
-                 const double xTilt1,
-                 const double yTilt1,
-                 const KisPoint & pos2,
-                 const double pressure2,
-                 const double xTilt2,
-                 const double yTilt2,
-                 const double inSavedDist)
-{
-    if (!m_device) return 0;
-    if (!m_paintOp) return 0;
-    if (!m_brush) return 0;
-
-    double savedDist = inSavedDist;
-    KisVector2D end(pos2);
-    KisVector2D start(pos1);
-
-    KisVector2D dragVec = end - start;
-    KisVector2D movement = dragVec;
-
-    if (savedDist < 0) {
-        m_paintOp->paintAt(pos1, KisPaintInformation(pressure1, xTilt1, yTilt1, movement));
-        savedDist = 0;
-    }
-
-    double xSpacing = 0;
-    double ySpacing = 0;
-
-     if ( m_varyBrushSpacingWithPressureWhenDrawingALine ) {
-        // XXX: The spacing should vary as the pressure changes along the
-        // line.
-        // This is a quick simplification.
-        xSpacing = m_brush->xSpacing((pressure1 + pressure2) / 2);
-        ySpacing = m_brush->ySpacing((pressure1 + pressure2) / 2);
-     }
-     else {
-         xSpacing = m_brush->xSpacing( PRESSURE_DEFAULT );
-         ySpacing = m_brush->ySpacing( PRESSURE_DEFAULT );
-     }
-
-    if (xSpacing < 0.5) {
-        xSpacing = 0.5;
-    }
-    if (ySpacing < 0.5) {
-        ySpacing = 0.5;
-    }
-
-    double xScale = 1;
-    double yScale = 1;
-    double spacing;
-    // Scale x or y so that we effectively have a square brush
-    // and calculate distance in that coordinate space. We reverse this scaling
-    // before drawing the brush. This produces the correct spacing in both
-    // x and y directions, even if the brush's aspect ratio is not 1:1.
-    if (xSpacing > ySpacing) {
-        yScale = xSpacing / ySpacing;
-        spacing = xSpacing;
-    }
-    else {
-        xScale = ySpacing / xSpacing;
-        spacing = ySpacing;
-    }
-
-    dragVec.setX(dragVec.x() * xScale);
-    dragVec.setY(dragVec.y() * yScale);
-
-    double newDist = dragVec.length();
-    double dist = savedDist + newDist;
-    double l_savedDist = savedDist;
-
-    if (dist < spacing) {
-        return dist;
-    }
-
-    dragVec.normalize();
-    KisVector2D step(0, 0);
-
-    while (dist >= spacing) {
-        if (l_savedDist > 0) {
-            step += dragVec * (spacing - l_savedDist);
-            l_savedDist -= spacing;
-        }
-        else {
-            step += dragVec * spacing;
-        }
-
-        KisPoint p(start.x() + (step.x() / xScale), start.y() + (step.y() / yScale));
-
-        double distanceMoved = step.length();
-        double t = 0;
-
-        if (newDist > DBL_EPSILON) {
-            t = distanceMoved / newDist;
-        }
-
-        double pressure = (1 - t) * pressure1 + t * pressure2;
-        double xTilt = (1 - t) * xTilt1 + t * xTilt2;
-        double yTilt = (1 - t) * yTilt1 + t * yTilt2;
-
-        m_paintOp->paintAt(p, KisPaintInformation(pressure, xTilt, yTilt, movement));
-        dist -= spacing;
-    }
-
-    if (dist > 0)
-        return dist;
-    else
-        return 0;
-}
-
-void KisPainter::paintPolyline (const vKisPoint &points,
-                                int index, int numPoints)
-{
-    if (index >= (int) points.count ())
-        return;
-
-    if (numPoints < 0)
-        numPoints = points.count ();
-
-    if (index + numPoints > (int) points.count ())
-        numPoints = points.count () - index;
-
-
-    for (int i = index; i < index + numPoints - 1; i++)
-    {
-        paintLine (points [index], 0/*pressure*/, 0, 0, points [index + 1],
-               0/*pressure*/, 0, 0);
-    }
-}
-
-void KisPainter::getBezierCurvePoints(const KisPoint &pos1,
-                      const KisPoint &control1,
-                      const KisPoint &control2,
-                      const KisPoint &pos2,
-                      vKisPoint& points)
-{
-    double d1 = pointToLineDistance(control1, pos1, pos2);
-    double d2 = pointToLineDistance(control2, pos1, pos2);
-
-    if (d1 < BEZIER_FLATNESS_THRESHOLD && d2 < BEZIER_FLATNESS_THRESHOLD) {
-        points.push_back(pos1);
-    } else {
-        // Midpoint subdivision. See Foley & Van Dam Computer Graphics P.508
-        KisVector2D p1 = pos1;
-        KisVector2D p2 = control1;
-        KisVector2D p3 = control2;
-        KisVector2D p4 = pos2;
-
-        KisVector2D l2 = (p1 + p2) / 2;
-        KisVector2D h = (p2 + p3) / 2;
-        KisVector2D l3 = (l2 + h) / 2;
-        KisVector2D r3 = (p3 + p4) / 2;
-        KisVector2D r2 = (h + r3) / 2;
-        KisVector2D l4 = (l3 + r2) / 2;
-        KisVector2D r1 = l4;
-        KisVector2D l1 = p1;
-        KisVector2D r4 = p4;
-
-        getBezierCurvePoints(l1.toKisPoint(), l2.toKisPoint(), l3.toKisPoint(), l4.toKisPoint(), points);
-        getBezierCurvePoints(r1.toKisPoint(), r2.toKisPoint(), r3.toKisPoint(), r4.toKisPoint(), points);
-    }
-}
-
-double KisPainter::paintBezierCurve(const KisPoint &pos1,
-                    const double pressure1,
-                    const double xTilt1,
-                    const double yTilt1,
-                    const KisPoint &control1,
-                    const KisPoint &control2,
-                    const KisPoint &pos2,
-                    const double pressure2,
-                    const double xTilt2,
-                    const double yTilt2,
-                    const double savedDist)
-{
-    double newDistance;
-    double d1 = pointToLineDistance(control1, pos1, pos2);
-    double d2 = pointToLineDistance(control2, pos1, pos2);
-
-    if (d1 < BEZIER_FLATNESS_THRESHOLD && d2 < BEZIER_FLATNESS_THRESHOLD) {
-        newDistance = paintLine(pos1, pressure1, xTilt1, yTilt1, pos2, pressure2, xTilt2, yTilt2, savedDist);
-    } else {
-        // Midpoint subdivision. See Foley & Van Dam Computer Graphics P.508
-        KisVector2D p1 = pos1;
-        KisVector2D p2 = control1;
-        KisVector2D p3 = control2;
-        KisVector2D p4 = pos2;
-
-        KisVector2D l2 = (p1 + p2) / 2;
-        KisVector2D h = (p2 + p3) / 2;
-        KisVector2D l3 = (l2 + h) / 2;
-        KisVector2D r3 = (p3 + p4) / 2;
-        KisVector2D r2 = (h + r3) / 2;
-        KisVector2D l4 = (l3 + r2) / 2;
-        KisVector2D r1 = l4;
-        KisVector2D l1 = p1;
-        KisVector2D r4 = p4;
-
-        double midPressure = (pressure1 + pressure2) / 2;
-        double midXTilt = (xTilt1 + xTilt2) / 2;
-        double midYTilt = (yTilt1 + yTilt2) / 2;
-
-        newDistance = paintBezierCurve(l1.toKisPoint(), pressure1, xTilt1, yTilt1,
-                           l2.toKisPoint(), l3.toKisPoint(),
-                           l4.toKisPoint(), midPressure, midXTilt, midYTilt,
-                           savedDist);
-        newDistance = paintBezierCurve(r1.toKisPoint(), midPressure, midXTilt, midYTilt,
-                           r2.toKisPoint(),
-                           r3.toKisPoint(),
-                           r4.toKisPoint(), pressure2, xTilt2, yTilt2, newDistance);
-    }
-
-    return newDistance;
-}
-
-void KisPainter::paintRect (const KisPoint &startPoint,
-                            const KisPoint &endPoint,
-                            const double /*pressure*/,
-                const double /*xTilt*/,
-                const double /*yTilt*/)
-{
-    KoRect normalizedRect = KisRect (startPoint, endPoint).normalize ();
-
-    vKisPoint points;
-
-    points.push_back(normalizedRect.topLeft());
-    points.push_back(normalizedRect.bottomLeft());
-    points.push_back(normalizedRect.bottomRight());
-    points.push_back(normalizedRect.topRight());
-
-    paintPolygon(points);
-}
-
-void KisPainter::paintEllipse (const KisPoint &startPoint,
-                               const KisPoint &endPoint,
-                               const double /*pressure*/,
-                   const double /*xTilt*/,
-                   const double /*yTilt*/)
-{
-    KisRect r = KisRect(startPoint, endPoint).normalize();
-
-    // See http://www.whizkidtech.redprince.net/bezier/circle/ for explanation.
-    // kappa = (4/3*(sqrt(2)-1))
-    const double kappa = 0.5522847498;
-    const double lx = (r.width() / 2) * kappa;
-    const double ly = (r.height() / 2) * kappa;
-
-    KisPoint center = r.center();
-
-    KisPoint p0(r.left(), center.y());
-    KisPoint p1(r.left(), center.y() - ly);
-    KisPoint p2(center.x() - lx, r.top());
-    KisPoint p3(center.x(), r.top());
-
-    vKisPoint points;
-
-    getBezierCurvePoints(p0, p1, p2, p3, points);
-
-    KisPoint p4(center.x() + lx, r.top());
-    KisPoint p5(r.right(), center.y() - ly);
-    KisPoint p6(r.right(), center.y());
-
-    getBezierCurvePoints(p3, p4, p5, p6, points);
-
-    KisPoint p7(r.right(), center.y() + ly);
-    KisPoint p8(center.x() + lx, r.bottom());
-    KisPoint p9(center.x(), r.bottom());
-
-    getBezierCurvePoints(p6, p7, p8, p9, points);
-
-    KisPoint p10(center.x() - lx, r.bottom());
-    KisPoint p11(r.left(), center.y() + ly);
-
-    getBezierCurvePoints(p9, p10, p11, p0, points);
-
-    paintPolygon(points);
-}
-
-void KisPainter::paintAt(const KisPoint & pos,
-                         const double pressure,
-                         const double xTilt,
-                         const double yTilt)
-{
-    if (!m_paintOp) return;
-    m_paintOp->paintAt(pos, KisPaintInformation(pressure, xTilt, yTilt, KisVector2D()));
-}
-
-double KisPainter::pointToLineDistance(const KisPoint& p, const KisPoint& l0, const KisPoint& l1)
-{
-    double lineLength = sqrt((l1.x() - l0.x()) * (l1.x() - l0.x()) + (l1.y() - l0.y()) * (l1.y() - l0.y()));
-    double distance = 0;
-
-    if (lineLength > DBL_EPSILON) {
-        distance = ((l0.y() - l1.y()) * p.x() + (l1.x() - l0.x()) * p.y() + l0.x() * l1.y() - l1.x() * l0.y()) / lineLength;
-        distance = fabs(distance);
-    }
-
-    return distance;
-}
-
-/*
- * Concave Polygon Scan Conversion
- * by Paul Heckbert
- * from "Graphics Gems", Academic Press, 1990
- */
-
-/*
- * concave: scan convert nvert-sided concave non-simple polygon with vertices at
- * (point[i].x, point[i].y) for i in [0..nvert-1] within the window win by
- * calling spanproc for each visible span of pixels.
- * Polygon can be clockwise or counterclockwise.
- * Algorithm does uniform point sampling at pixel centers.
- * Inside-outside test done by Jordan's rule: a point is considered inside if
- * an emanating ray intersects the polygon an odd number of times.
- * drawproc should fill in pixels from xl to xr inclusive on scanline y,
- * e.g:
- *    drawproc(y, xl, xr)
- *    int y, xl, xr;
- *    {
- *        int x;
- *        for (x=xl; x<=xr; x++)
- *        pixel_write(x, y, pixelvalue);
- *    }
- *
- *  Paul Heckbert    30 June 81, 18 Dec 89
- */
-
-typedef struct {    /* a polygon edge */
-    double x;       /* x coordinate of edge's intersection with current scanline */
-    double dx;      /* change in x with respect to y */
-    int i;            /* edge number: edge i goes from pt[i] to pt[i+1] */
-} Edge;
-
-static int n;            /* number of vertices */
-static const KisPoint *pt;    /* vertices */
-
-static int nact;        /* number of active edges */
-static Edge *active;        /* active edge list:edges crossing scanline y */
-
-/* comparison routines for qsort */
-static int compare_ind(const void *pu, const void *pv)
-{
-    const int *u = static_cast<const int *>(pu);
-    const int *v = static_cast<const int *>(pv);
-
-    return pt[*u].y() <= pt[*v].y() ? -1 : 1;
-}
-
-static int compare_active(const void *pu, const void *pv)
-{
-    const Edge *u = static_cast<const Edge *>(pu);
-    const Edge *v = static_cast<const Edge *>(pv);
-
-    return u->x <= v->x ? -1 : 1;
-}
-
-static void cdelete(int i)        /* remove edge i from active list */
-{
-    int j;
-
-    for (j=0; j<nact && active[j].i!=i; j++);
-    if (j>=nact) return;        /* edge not in active list; happens at win->y0*/
-    nact--;
-    bcopy(&active[j+1], &active[j], (nact-j)*sizeof active[0]);
-}
-
-static void cinsert(int i, int y)        /* append edge i to end of active list */
-{
-    int j;
-    double dx;
-    const KisPoint *p, *q;
-
-    j = i<n-1 ? i+1 : 0;
-    if (pt[i].y() < pt[j].y()) {
-        p = &pt[i]; q = &pt[j];
-    } else {
-        p = &pt[j]; q = &pt[i];
-    }
-    /* initialize x position at intersection of edge with scanline y */
-    active[nact].dx = dx = (q->x()-p->x())/(q->y()-p->y());
-    active[nact].x = dx*(y+.5-p->y())+p->x();
-    active[nact].i = i;
-    nact++;
-}
-
-void KisPainter::fillPolygon(const vKisPoint& points, FillStyle fillStyle)
-{
-    int nvert = points.count();
-    int k, y0, y1, y, i, j, xl, xr;
-    int *ind;        /* list of vertex indices, sorted by pt[ind[j]].y */
-
-    n = nvert;
-    pt = &(points[0]);
-    if (n<3) return;
-    if (fillStyle == FillStyleNone) {
-        return;
-    }
-
-    ind = new int[n];
-    Q_CHECK_PTR(ind);
-    active = new Edge[n];
-    Q_CHECK_PTR(active);
-
-    /* create y-sorted array of indices ind[k] into vertex list */
-    for (k=0; k<n; k++)
-        ind[k] = k;
-    qsort(ind, n, sizeof ind[0], compare_ind);  /* sort ind by pt[ind[k]].y */
-
-    nact = 0;                /* start with empty active list */
-    k = 0;                    /* ind[k] is next vertex to process */
-    y0 = static_cast<int>(ceil(pt[ind[0]].y()-.5));            /* ymin of polygon */
-    y1 = static_cast<int>(floor(pt[ind[n-1]].y()-.5));        /* ymax of polygon */
-
-    int x0 = INT_MAX;
-    int x1 = INT_MIN;
-
-    for (int i = 0; i < nvert; i++) {
-        int pointHighX = static_cast<int>(ceil(points[i].x() - 0.5));
-        int pointLowX = static_cast<int>(floor(points[i].x() - 0.5));
-
-        if (pointLowX < x0) {
-            x0 = pointLowX;
-        }
-        if (pointHighX > x1) {
-            x1 = pointHighX;
-        }
-    }
-
-    // Fill the polygon bounding rectangle with the required contents then we'll
-    // create a tqmask for the actual polygon coverage.
-
-    KisPaintDeviceSP polygon = new KisPaintDevice(m_device->colorSpace(), "polygon");
-    Q_CHECK_PTR(polygon);
-
-    KisFillPainter fillPainter(polygon);
-    TQRect boundingRectangle(x0, y0, x1 - x0 + 1, y1 - y0 + 1);
-
-    // Clip to the image bounds.
-    if (m_device->image()) {
-        boundingRectangle &= m_device->image()->bounds();
-    }
-
-    switch (fillStyle) {
-    default:
-        // Fall through
-    case FillStyleGradient:
-        // Currently unsupported, fall through
-    case FillStyleStrokes:
-        // Currently unsupported, fall through
-        kdWarning(DBG_AREA_CORE) << "Unknown or unsupported fill style in fillPolygon\n";
-    case FillStyleForegroundColor:
-        fillPainter.fillRect(boundingRectangle, paintColor(), OPACITY_OPAQUE);
-        break;
-    case FillStyleBackgroundColor:
-        fillPainter.fillRect(boundingRectangle, backgroundColor(), OPACITY_OPAQUE);
-        break;
-    case FillStylePattern:
-        Q_ASSERT(m_pattern != 0);
-        fillPainter.fillRect(boundingRectangle, m_pattern);
-        break;
-    }
-
-    KisSelectionSP polygonMask = new KisSelection(polygon);
-
-    for (y=y0; y<=y1; y++) {        /* step through scanlines */
-        /* scanline y is at y+.5 in continuous coordinates */
-
-        /* check vertices between previous scanline and current one, if any */
-        for (; k<n && pt[ind[k]].y()<=y+.5; k++) {
-            /* to simplify, if pt.y=y+.5, pretend it's above */
-            /* invariant: y-.5 < pt[i].y <= y+.5 */
-            i = ind[k];
-            /*
-             * insert or delete edges before and after vertex i (i-1 to i,
-             * and i to i+1) from active list if they cross scanline y
-             */
-            j = i>0 ? i-1 : n-1;        /* vertex previous to i */
-            if (pt[j].y() <= y-.5)        /* old edge, remove from active list */
-                cdelete(j);
-            else if (pt[j].y() > y+.5)    /* new edge, add to active list */
-                cinsert(j, y);
-            j = i<n-1 ? i+1 : 0;        /* vertex next after i */
-            if (pt[j].y() <= y-.5)        /* old edge, remove from active list */
-                cdelete(i);
-            else if (pt[j].y() > y+.5)    /* new edge, add to active list */
-                cinsert(i, y);
-        }
-
-        /* sort active edge list by active[j].x */
-        qsort(active, nact, sizeof active[0], compare_active);
-
-        /* draw horizontal segments for scanline y */
-        for (j=0; j<nact; j+=2) {    /* draw horizontal segments */
-            /* span 'tween j & j+1 is inside, span tween j+1 & j+2 is outside */
-            xl = static_cast<int>(ceil(active[j].x-.5));        /* left end of span */
-            xr = static_cast<int>(floor(active[j+1].x-.5));        /* right end of span */
-
-            if (xl<=xr) {
-                KisHLineIterator it = polygonMask->createHLineIterator(xl, y, xr - xl + 1, true);
-
-                while (!it.isDone()) {
-                    // We're using a selection here, that means alpha colorspace, that means one byte.
-                    it.rawData()[0] = MAX_SELECTED;
-                    ++it;
-                }
-            }
-
-            active[j].x += active[j].dx;        /* increment edge coords */
-            active[j+1].x += active[j+1].dx;
-        }
-    }
-    delete [] ind;
-    delete [] active;
-
-    polygon->applySelectionMask(polygonMask);
-
-    TQRect r = polygon->extent();
-
-    // The strokes for the outline may have already added updated the dirtyrect, but it can't hurt,
-    // and if we're painting without outlines, then there will be no dirty rect. Let's do it ourselves...
-    // addDirtyRect( r ); // XXX the bltSelection will add to the dirtyrect
-
-    bltSelection(r.x(), r.y(), compositeOp(), polygon, opacity(), r.x(), r.y(), r.width(), r.height());
-}
-
-void KisPainter::paintPolygon(const vKisPoint& points)
-{
-    if (m_fillStyle != FillStyleNone) {
-        fillPolygon(points, m_fillStyle);
-    }
-
-    if (m_strokeStyle != StrokeStyleNone) {
-        if (points.count() > 1) {
-            double distance = -1;
-
-            for (uint i = 0; i < points.count() - 1; i++) {
-                distance = paintLine(points[i], PRESSURE_DEFAULT, 0, 0, points[i + 1], PRESSURE_DEFAULT, 0, 0, distance);
-            }
-            paintLine(points[points.count() - 1], PRESSURE_DEFAULT, 0, 0, points[0], PRESSURE_DEFAULT, 0, 0, distance);
-        }
-    }
-}
-
diff --git a/krita/core/kis_painter.h b/krita/core/kis_painter.h
deleted file mode 100644
index abfd8b17e..000000000
--- a/krita/core/kis_painter.h
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *  Copyright (c) 2004 Clarence Dang <dang@kde.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_PAINTER_H_
-#define KIS_PAINTER_H_
-
-#include <kcommand.h>
-
-#include "kis_color.h"
-#include "kis_global.h"
-#include "kis_types.h"
-#include "kis_paint_device.h"
-#include "kis_point.h"
-#include "kis_filter.h"
-#include "kis_progress_subject.h"
-#include "kis_paintop.h"
-#include "kis_color.h"
-
-#include <koffice_export.h>
-
-class TQRect;
-class KisTransaction;
-class KisBrush;
-class KisPattern;
-
-/**
- * KisPainter contains the graphics primitives necessary to draw on a
- * KisPaintDevice. This is the same kind of abstraction as used in TQt
- * itself, where you have TQPainter and TQPaintDevice.
- *
- * However, KisPainter works on a tiled image and supports different
- * colour models, and that's a lot more complicated.
- *
- * KisPainter supports transactions that can group various paint operations
- * in one undoable step.
- *
- * For more complex operations, you might want to have a look at the subclasses
- * of KisPainter: KisConvolutionPainter, KisFillPainter and KisGradientPainter
- */
-class KRITACORE_EXPORT KisPainter : public KisProgressSubject {
-    typedef KisProgressSubject super;
-
-public:
-    /// Construct painter without a device
-    KisPainter();
-    /// Construct a painter, and begin painting on the device
-    KisPainter(KisPaintDeviceSP device);
-    virtual ~KisPainter();
-
-private:
-    // Implement KisProgressSubject
-    virtual void cancel() { m_cancelRequested = true; }
-
-public:
-    /**
-     * Start painting on the specified device. Not undoable.
-     */
-    void begin(KisPaintDeviceSP device);
-
-    /**
-     * Finish painting on the current device
-     */
-    KCommand *end();
-
-    /// Begin an undoable paint operation
-    void beginTransaction(const TQString& customName = TQString());
-
-    /// Finish the undoable paint operation
-    KCommand *endTransaction();
-
-    /// begin a transaction with the given command
-    void beginTransaction( KisTransaction* command);
-
-    /// Return the current transcation
-    KisTransaction  * transaction() { return m_transaction; }
-
-
-    /// Returns the current paint device.
-    KisPaintDeviceSP device() const { return m_device; }
-
-
-    // -----------------------------------------------------------------
-    //  Native paint methods that are undo/redo-able,
-    // use the color strategies and the composite operations.
-
-    /**
-     * Blast the specified region from src onto the current paint device.
-     */
-    void bitBlt(TQ_INT32 dx, TQ_INT32 dy,
-                const KisCompositeOp& op,
-                KisPaintDeviceSP src,
-                TQ_INT32 sx, TQ_INT32 sy,
-                TQ_INT32 sw, TQ_INT32 sh)
-    {
-        bitBlt(dx, dy, op, src, OPACITY_OPAQUE, sx, sy, sw, sh);
-    }
-
-    /**
-     * Overloaded version of the previous, differs in that it is possible to specify
-     * a value for opacity
-     */
-    void bitBlt(TQ_INT32 dx, TQ_INT32 dy,
-                const KisCompositeOp& op,
-                KisPaintDeviceSP src,
-                TQ_UINT8 opacity,
-                TQ_INT32 sx, TQ_INT32 sy,
-                TQ_INT32 sw, TQ_INT32 sh);
-
-    /**
-     * A version of bitBlt that renders using an external tqmask, ignoring
-     * the src device's own selection, if it has one.
-     */
-    void bltMask(TQ_INT32 dx, TQ_INT32 dy,
-                      const KisCompositeOp &op,
-                      KisPaintDeviceSP src,
-                      KisPaintDeviceSP selMask,
-                      TQ_UINT8 opacity,
-                      TQ_INT32 sx, TQ_INT32 sy,
-                      TQ_INT32 sw, TQ_INT32 sh);
-
-    /**
-     * A version of bitBlt that renders using an external selection tqmask, ignoring
-     * the src device's own selection, if it has one.
-     */
-    void bltSelection(TQ_INT32 dx, TQ_INT32 dy,
-                      const KisCompositeOp &op,
-                      KisPaintDeviceSP src,
-                      KisSelectionSP selMask,
-                      TQ_UINT8 opacity,
-                      TQ_INT32 sx, TQ_INT32 sy,
-                      TQ_INT32 sw, TQ_INT32 sh);
-
-
-    /**
-     * A version of bitBlt that renders using the src device's selection tqmask, if it has one.
-     */
-    void bltSelection(TQ_INT32 dx, TQ_INT32 dy,
-                      const KisCompositeOp &op,
-                      KisPaintDeviceSP src,
-                      TQ_UINT8 opacity,
-                      TQ_INT32 sx, TQ_INT32 sy,
-                      TQ_INT32 sw, TQ_INT32 sh);
-
-
-    /**
-     * The methods below are 'higher' level than the above methods. They need brushes, colors
-     * etc. set before they can be called. The methods do not directly tell the image to
-     * update, but you can call dirtyRect() to get the rect that needs to be notified by your
-     * painting code.
-     *
-     * Call will RESET the dirtyRect!
-    */
-    TQRect dirtyRect();
-
-    /**
-     * Add the r to the current dirty rect, and return the dirtyRect after adding r to it.
-     */
-    TQRect addDirtyRect(TQRect r) { m_dirtyRect |= r; return m_dirtyRect; }
-
-
-
-    /**
-     * Paint a line that connects the dots in points
-     */
-    void paintPolyline(const TQValueVector <KisPoint> &points,
-                       int index = 0, int numPoints = -1);
-
-    /**
-     * Draw a line between pos1 and pos2 using the currently set brush and color.
-     * If savedDist is less than zero, the brush is painted at pos1 before being
-     * painted along the line using the spacing setting.
-     * @return the drag distance, that is the remains of the distance between p1 and p2 not covered
-     * because the currenlty set brush has a spacing greater than that distance.
-     */
-    double paintLine(const KisPoint &pos1,
-             const double pressure1,
-             const double xTilt1,
-             const double yTilt1,
-             const KisPoint &pos2,
-             const double pressure2,
-             const double xTilt2,
-             const double yTilt2,
-             const double savedDist = -1);
-
-    /**
-     * Draw a Bezier curve between pos1 and pos2 using control points 1 and 2.
-     * If savedDist is less than zero, the brush is painted at pos1 before being
-     * painted along the curve using the spacing setting.
-     * @return the drag distance, that is the remains of the distance between p1 and p2 not covered
-     * because the currenlty set brush has a spacing greater than that distance.
-     */
-    double paintBezierCurve(const KisPoint &pos1,
-                const double pressure1,
-                const double xTilt1,
-                const double yTilt1,
-                const KisPoint &control1,
-                const KisPoint &control2,
-                const KisPoint &pos2,
-                const double pressure2,
-                const double xTilt2,
-                const double yTilt2,
-                const double savedDist = -1);
-
-    /**
-     * Fill the given vector points with the points needed to draw the Bezier curve between
-     * pos1 and pos2 using control points 1 and 2, excluding the final pos2.
-     */
-    void getBezierCurvePoints(const KisPoint &pos1,
-                  const KisPoint &control1,
-                  const KisPoint &control2,
-                  const KisPoint &pos2,
-                  vKisPoint& points);
-
-
-    /**
-     * Paint the rectangle with given begin and end points
-     */
-    void paintRect(const KisPoint &startPoint,
-               const KisPoint &endPoint,
-               const double pressure,
-               const double xTilt,
-               const double yTilt);
-
-
-    /**
-     * Paint the ellipse with given begin and end points
-     */
-    void paintEllipse(const KisPoint &startPoint,
-                      const KisPoint &endPoint,
-                      const double pressure,
-                      const double /*xTilt*/,
-                      const double /*yTilt*/);
-
-    /**
-     * Paint the polygon with the points given in points. It automatically closes the polygon
-     * by drawing the line from the last point to the first.
-     */
-    void paintPolygon(const vKisPoint& points);
-
-    /** Draw a spot at pos using the currently set paint op, brush and color */
-    void paintAt(const KisPoint &pos,
-             const double pressure,
-             const double /*xTilt*/,
-             const double /*yTilt*/);
-
-
-    // ------------------------------------------------------------------------
-    // Set the parameters for the higher level graphics primitives.
-
-    /// Determines whether the brush spacing should vary when drawing
-    /// lines with the pressure
-    void setVaryBrushSpacingWithPressureWhenDrawingALine( bool varyBrushSpacingWithPressureWhenDrawingALine )
-        { m_varyBrushSpacingWithPressureWhenDrawingALine = varyBrushSpacingWithPressureWhenDrawingALine; }
-    bool varyBrushSpacingWithPressureWhenDrawingALine() {  return m_varyBrushSpacingWithPressureWhenDrawingALine;  }
-
-    /// Set the current brush
-    void setBrush(KisBrush* brush) { m_brush = brush; }
-    /// Returns the currently set brush
-    KisBrush * brush() const { return m_brush; }
-
-    /// Set the current pattern
-    void setPattern(KisPattern * pattern) { m_pattern = pattern; }
-    /// Returns the currently set pattern
-    KisPattern * pattern() const { return m_pattern; }
-
-    /// Set the color that will be used to paint with
-    void setPaintColor(const KisColor& color) { m_paintColor = color;}
-
-    /// Returns the color that will be used to paint with
-    KisColor paintColor() const { return m_paintColor; }
-
-    /// Set the current background color
-    void setBackgroundColor(const KisColor& color) {m_backgroundColor = color; }
-    /// Returns the current background color
-    KisColor backgroundColor() const { return m_backgroundColor; }
-
-    /// Set the current fill color
-    void setFillColor(const KisColor& color) { m_fillColor = color; }
-    /// Returns the current fill color
-    KisColor fillColor() const { return m_fillColor; }
-
-
-    /// This enum contains the styles with which we can fill things like polygons and ellipses
-    enum FillStyle {
-        FillStyleNone,
-        FillStyleForegroundColor,
-        FillStyleBackgroundColor,
-        FillStylePattern,
-        FillStyleGradient,
-        FillStyleStrokes
-    };
-
-    /// Set the current style with which to fill
-    void setFillStyle(FillStyle fillStyle) { m_fillStyle = fillStyle; }
-    /// Returns the current fill style
-    FillStyle fillStyle() const { return m_fillStyle; }
-
-    /// The style of the brush stroke around polygons and so
-    enum StrokeStyle {
-        StrokeStyleNone,
-        StrokeStyleBrush
-    };
-
-    /// Set the current brush stroke style
-    void setStrokeStyle(StrokeStyle strokeStyle) { m_strokeStyle = strokeStyle; }
-    /// Returns the current brush stroke style
-    StrokeStyle strokeStyle() const { return m_strokeStyle; }
-
-    /// Set the opacity which is used in painting (like filling polygons)
-    void setOpacity(TQ_UINT8 opacity) { m_opacity = opacity; }
-    /// Returns the opacity that is used in painting
-    TQ_UINT8 opacity() const { return m_opacity; }
-
-    /**
-     * Sets the current composite operation. Everything painted will be composited on
-     * the destination layer with this composite op.
-     **/
-    void setCompositeOp(const KisCompositeOp& op) { m_compositeOp = op; }
-    /// Returns the current composite operation
-    KisCompositeOp compositeOp() const { return m_compositeOp; }
-
-    /// Sets the current KisFilter, used by the paintops that support it (like KisFilterOp)
-    void setFilter(KisFilterSP filter) { m_filter = filter; }
-    /// Returns the current KisFilter
-    KisFilterSP filter() { return m_filter; }
-
-    /**
-     * The offset for paint operations that use it (like KisDuplicateOp). It will use as source
-     * the part of the layer that is at its paintedPosition - duplicateOffset
-     */
-    // TODO: this is an hack ! it must be fix, the following functions have nothing to do here
-    void setDuplicateOffset(const KisPoint& offset) { m_duplicateOffset = offset; }
-    /// Returns the offset for duplication
-    KisPoint duplicateOffset(){ return m_duplicateOffset; }
-
-    inline void setDuplicateHealing(bool v) { m_duplicateHealing = v; }
-    inline bool duplicateHealing() { return m_duplicateHealing; }
-
-    inline void setDuplicateHealingRadius(int r) { m_duplicateHealingRadius = r; }
-    inline int duplicateHealingRadius() { return m_duplicateHealingRadius; }
-
-    inline void setDuplicatePerspectiveCorrection(bool v) { m_duplicatePerspectiveCorrection = v; }
-    inline bool duplicatePerspectiveCorrection() { return m_duplicatePerspectiveCorrection; }
-
-    void setDuplicateStart(const KisPoint start) { m_duplicateStart = start;}
-    KisPoint duplicateStart() { return m_duplicateStart;}
-
-    /// Sets the current pressure for things that like to use this
-    void setPressure(double pressure) { m_pressure = pressure; }
-    /// Returns the current pressure
-    double pressure() { return m_pressure; }
-
-    /**
-     * Set the current paint operation. This is used for all drawing functions.
-     * The painter will DELETE the paint op itself!!
-     * That means no that you should not delete it yourself (or put it on the stack)
-     */
-    void setPaintOp(KisPaintOp * paintOp) { delete m_paintOp; m_paintOp = paintOp; }
-    /// Returns the current paint operation
-    KisPaintOp * paintOp() const { return m_paintOp; }
-
-    /// Set a current 'dab'. This usually is a paint device containing a rendered brush
-    void setDab(KisPaintDeviceSP dab) { m_dab = dab; }
-    /// Get the currently set dab
-    KisPaintDeviceSP dab() const { return m_dab; }
-
-    /// Is cancel Requested by the KisProgressSubject for this painter
-    bool cancelRequested() const { return m_cancelRequested; }
-
-protected:
-    /// Initialize, set everything to '0' or defaults
-    void init();
-    KisPainter(const KisPainter&);
-    KisPainter& operator=(const KisPainter&);
-
-    /// Calculate the distance that point p is from the line made by connecting l0 and l1
-    static double pointToLineDistance(const KisPoint& p, const KisPoint& l0, const KisPoint& l1);
-
-    /// Fill the polygon defined by points with the fillStyle
-    void fillPolygon(const vKisPoint& points, FillStyle fillStyle);
-
-protected:
-    KisPaintDeviceSP m_device;
-    KisTransaction  *m_transaction;
-
-    TQRect m_dirtyRect;
-
-    KisColor m_paintColor;
-    KisColor m_backgroundColor;
-    KisColor m_fillColor;
-    FillStyle m_fillStyle;
-    StrokeStyle m_strokeStyle;
-    KisBrush *m_brush;
-    KisPattern *m_pattern;
-    KisPoint m_duplicateOffset;
-    KisPoint m_duplicateStart;
-    bool m_duplicateHealing;
-    int m_duplicateHealingRadius;
-    bool m_duplicatePerspectiveCorrection;
-    TQ_UINT8 m_opacity;
-    KisCompositeOp m_compositeOp;
-    KisFilterSP m_filter;
-    KisPaintOp * m_paintOp;
-    double m_pressure;
-    bool m_cancelRequested;
-    TQ_INT32 m_pixelSize;
-    KisColorSpace * m_colorSpace;
-    KisProfile *  m_profile;
-    KisPaintDeviceSP m_dab;
-    bool m_varyBrushSpacingWithPressureWhenDrawingALine;
-
-};
-
-
-#endif // KIS_PAINTER_H_
-
diff --git a/krita/core/kis_paintop.cc b/krita/core/kis_paintop.cc
deleted file mode 100644
index e00484f1f..000000000
--- a/krita/core/kis_paintop.cc
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *  Copyright (c) 2004 Clarence Dang <dang@kde.org>
- *  Copyright (c) 2004 Adrian Page <adrian@pagenet.plus.com>
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include "tqwidget.h"
-#include "kis_painter.h"
-#include "kis_layer.h"
-#include "kis_types.h"
-#include "kis_paintop.h"
-#include "kis_alpha_tqmask.h"
-#include "kis_point.h"
-#include "kis_colorspace.h"
-#include "kis_global.h"
-#include "kis_iterators_pixel.h"
-#include "kis_color.h"
-
-KisPaintOp::KisPaintOp(KisPainter * painter) 
-    : m_dab(0)
-{
-    m_painter = painter;
-    setSource(painter->device());
-}
-
-KisPaintOp::~KisPaintOp()
-{
-}
-
-KisPaintDeviceSP KisPaintOp::computeDab(KisAlphaMaskSP tqmask) {
-    return computeDab(tqmask, m_painter->device()->colorSpace());
-}
-
-KisPaintDeviceSP KisPaintOp::computeDab(KisAlphaMaskSP tqmask, KisColorSpace *cs)
-{
-    // XXX: According to the SeaShore source, the Gimp uses a
-    // temporary layer the size of the layer that is being painted
-    // on. This layer is cleared between painting actions. Our
-    // temporary layer, dab, is for every paintAt, composited with
-    // the target layer. We only use a real temporary layer for things
-    // like filter tools.
-
-    if(!m_dab || m_dab->colorSpace() != cs)
-        m_dab = new KisPaintDevice(cs, "dab");
-    Q_CHECK_PTR(m_dab);
-
-    KisColor kc = m_painter->paintColor();
-
-    KisColorSpace * colorSpace = m_dab->colorSpace();
-
-    TQ_INT32 pixelSize = colorSpace->pixelSize();
-
-    TQ_INT32 tqmaskWidth = tqmask->width();
-    TQ_INT32 tqmaskHeight = tqmask->height();
-
-    // Convert the kiscolor to the right colorspace.
-    kc.convertTo(colorSpace);
-
-    KisHLineIteratorPixel hiter = m_dab->createHLineIterator(0, 0, tqmaskWidth, true);
-    for (int y = 0; y < tqmaskHeight; y++)
-    {
-        int x=0;
-        while(! hiter.isDone())
-        {
-            // XXX: Set tqmask
-            colorSpace->setAlpha(kc.data(), tqmask->alphaAt(x++, y), 1);
-            memcpy(hiter.rawData(), kc.data(), pixelSize);
-            ++hiter;
-        }
-        hiter.nextRow();
-    }
-
-    return m_dab;
-}
-
-void KisPaintOp::splitCoordinate(double coordinate, TQ_INT32 *whole, double *fraction)
-{
-    TQ_INT32 i = static_cast<TQ_INT32>(coordinate);
-
-    if (coordinate < 0) {
-        // We always want the fractional part to be positive.
-        // E.g. -1.25 becomes -2 and +0.75
-        i--;
-    }
-
-    double f = coordinate - i;
-
-    *whole = i;
-    *fraction = f;
-}
-
-void KisPaintOp::setSource(KisPaintDeviceSP p) {
-    Q_ASSERT(p);
-    m_source = p;
-}
-
-
-KisPaintOpSettings* KisPaintOpFactory::settings(TQWidget* /*tqparent*/, const KisInputDevice& /*inputDevice*/) { return 0; }
diff --git a/krita/core/kis_paintop.h b/krita/core/kis_paintop.h
deleted file mode 100644
index 8e8587eab..000000000
--- a/krita/core/kis_paintop.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *  Copyright (c) 2004 Clarence Dang <dang@kde.org>
- *  Copyright (c) 2004 Adrian Page <adrian@pagenet.plus.com>
- *  Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_PAINTOP_H_
-#define KIS_PAINTOP_H_
-
-#include <tqstring.h>
-
-#include <ksharedptr.h>
-#include <klocale.h>
-
-#include "kis_global.h"
-#include "kis_types.h"
-#include "kis_id.h"
-#include "kis_vec.h"
-#include "kis_colorspace.h"
-
-#include <koffice_export.h>
-
-class KisPoint;
-class KisAlphaMask;
-class KisPainter;
-class KisColorSpace;
-class KisInputDevice;
-class TQWidget;
-
-/**
- * This class keeps information that can be used in the painting process, for example by
- * brushes.
- **/
-class KRITACORE_EXPORT KisPaintInformation {
-public:
-    KisPaintInformation(double pressure = PRESSURE_DEFAULT,
-                        double xTilt = 0.0, double yTilt = 0.0,
-                        KisVector2D movement = KisVector2D())
-        : pressure(pressure), xTilt(xTilt), yTilt(yTilt), movement(movement) {}
-    double pressure;
-    double xTilt;
-    double yTilt;
-    KisVector2D movement;
-};
-
-class KRITACORE_EXPORT KisPaintOp : public KShared
-{
-
-public:
-
-    KisPaintOp(KisPainter * painter);
-    virtual ~KisPaintOp();
-
-    virtual void paintAt(const KisPoint &pos, const KisPaintInformation& info) = 0;
-    void setSource(KisPaintDeviceSP p);
-
-    /**
-     * Whether this paintop wants to deposit paint even when not moving, i.e. the
-     * tool needs to activate its timer.
-     */
-    virtual bool incremental() { return false; }
-
-
-protected:
-
-    virtual KisPaintDeviceSP computeDab(KisAlphaMaskSP tqmask);
-    virtual KisPaintDeviceSP computeDab(KisAlphaMaskSP tqmask, KisColorSpace *cs);
-
-
-    /**
-     * Split the coordinate into whole + fraction, where fraction is always >= 0.
-     */
-    virtual void splitCoordinate(double coordinate, TQ_INT32 *whole, double *fraction);
-
-    KisPainter * m_painter;
-    KisPaintDeviceSP m_source; // use this layer as source layer for the operation
-private:
-    KisPaintDeviceSP m_dab;
-};
-
-class KisPaintOpSettings {
-
-public:
-    KisPaintOpSettings(TQWidget *tqparent) { Q_UNUSED(tqparent); }
-    virtual ~KisPaintOpSettings() {}
-
-    virtual TQWidget *widget() const { return 0; }
-};
-
-/**
- * The paintop factory is responsible for creating paintops of the specified class.
- * If there is an optionWidget, the derived paintop itself must support settings,
- * and it's up to the factory to do that.
- */
-class KisPaintOpFactory  : public KShared
-{
-
-public:
-    KisPaintOpFactory() {}
-    virtual ~KisPaintOpFactory() {}
-
-    virtual KisPaintOp * createOp(const KisPaintOpSettings *settings, KisPainter * painter) = 0;
-    virtual KisID id() { return KisID("abstractpaintop", i18n("Abstract PaintOp")); }
-
-    /**
-     * The filename of the pixmap we can use to represent this paintop in the ui.
-     */
-    virtual TQString pixmap() { return ""; }
-
-    /**
-     * Whether this paintop is internal to a certain tool or can be used
-     * in various tools. If false, it won't show up in the toolchest.
-     * The KisColorSpace argument can be used when certain paintops only support a specific cs
-     */
-    virtual bool userVisible(KisColorSpace * cs = 0) { return cs->id() != KisID("WET", ""); }
-
-    /**
-     * Create and return an (abstracted) widget with options for this paintop when used with the 
-     * specified input device. Return 0 if there are no settings available for the given
-     * device.
-     */
-    virtual KisPaintOpSettings* settings(TQWidget* tqparent, const KisInputDevice& inputDevice);
-
-};
-#endif // KIS_PAINTOP_H_
diff --git a/krita/core/kis_paintop_registry.cc b/krita/core/kis_paintop_registry.cc
deleted file mode 100644
index e023e5b47..000000000
--- a/krita/core/kis_paintop_registry.cc
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <tqpixmap.h>
-#include <tqwidget.h>
-
-#include <kdebug.h>
-#include <kinstance.h>
-#include <kglobal.h>
-#include <klocale.h>
-#include <kstandarddirs.h>
-#include <kparts/plugin.h>
-#include <kservice.h>
-#include <ktrader.h>
-#include <kparts/componentfactory.h>
-
-#include "kis_generic_registry.h"
-#include "kis_types.h"
-#include "kis_paintop_registry.h"
-#include "kis_paintop.h"
-#include "kis_id.h"
-#include "kis_debug_areas.h"
-#include "kis_colorspace.h"
-
-KisPaintOpRegistry * KisPaintOpRegistry::m_singleton = 0;
-
-KisPaintOpRegistry::KisPaintOpRegistry()
-{
-    Q_ASSERT(KisPaintOpRegistry::m_singleton == 0);
-    KisPaintOpRegistry::m_singleton = this;
-
-    KTrader::OfferList offers = KTrader::self()->query(TQString::tqfromLatin1("Krita/Paintop"),
-                                                         TQString::tqfromLatin1("(Type == 'Service') and "
-                                                                             "([X-Krita-Version] == 2)"));
-
-    KTrader::OfferList::ConstIterator iter;
-
-    for(iter = offers.begin(); iter != offers.end(); ++iter)
-    {
-        KService::Ptr service = *iter;
-        int errCode = 0;
-        KParts::Plugin* plugin =
-             KParts::ComponentFactory::createInstanceFromService<KParts::Plugin> ( service, this, 0, TQStringList(), &errCode);
-        if ( plugin )
-            kdDebug(41006) << "found plugin " << service->property("Name").toString() << "\n";
-        else {
-            kdDebug(41006) << "found plugin " << service->property("Name").toString() << ", " << errCode << "\n";
-            if( errCode == KParts::ComponentFactory::ErrNoLibrary)
-            {
-                kdWarning(41006) << " Error loading plugin was : ErrNoLibrary " << KLibLoader::self()->lastErrorMessage() << endl;
-            }
-        }
-
-    }
-
-}
-
-KisPaintOpRegistry::~KisPaintOpRegistry()
-{
-}
-
-KisPaintOpRegistry* KisPaintOpRegistry::instance()
-{
-    if(KisPaintOpRegistry::m_singleton == 0)
-    {
-        KisPaintOpRegistry::m_singleton = new KisPaintOpRegistry();
-        Q_CHECK_PTR(KisPaintOpRegistry::m_singleton);
-    }
-    return KisPaintOpRegistry::m_singleton;
-}
-
-KisPaintOp * KisPaintOpRegistry::paintOp(const KisID & id, const KisPaintOpSettings * settings, KisPainter * painter) const
-{
-    if (painter == 0) {
-        kdWarning() << " KisPaintOpRegistry::paintOp painter is null";
-        return 0;
-    }
-    KisPaintOpFactorySP f = get(id);
-   if (f) {
-        return f->createOp(settings, painter);
-    }
-    else {
-        return 0;
-    }
-}
-
-KisPaintOp * KisPaintOpRegistry::paintOp(const TQString & id, const KisPaintOpSettings * settings, KisPainter * painter) const
-{
-    return paintOp(KisID(id, ""), settings, painter);
-}
-
-KisPaintOpSettings * KisPaintOpRegistry::settings(const KisID& id, TQWidget * tqparent, const KisInputDevice& inputDevice) const
-{
-    KisPaintOpFactory* f = get(id);
-    if (f)
-        return f->settings( tqparent, inputDevice );
-
-    return 0;
-}
-
-bool KisPaintOpRegistry::userVisible(const KisID & id, KisColorSpace* cs) const
-{
-
-    KisPaintOpFactorySP f = get(id);
-    if (!f) {
-        kdDebug(DBG_AREA_REGISTRY) << "No paintop " << id.id() << "\n";
-        return false;
-    }
-    return f->userVisible(cs);
-
-}
-
-TQString KisPaintOpRegistry::pixmap(const KisID & id) const
-{
-    KisPaintOpFactorySP f = get(id);
-
-    if (!f) {
-        kdDebug(DBG_AREA_REGISTRY) << "No paintop " << id.id() << "\n";
-        return "";
-    }
-
-    return f->pixmap();
-}
-
-#include "kis_paintop_registry.moc"
diff --git a/krita/core/kis_paintop_registry.h b/krita/core/kis_paintop_registry.h
deleted file mode 100644
index c61105b65..000000000
--- a/krita/core/kis_paintop_registry.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_PAINTOP_REGISTRY_H_
-#define KIS_PAINTOP_REGISTRY_H_
-
-#include <tqobject.h>
-
-#include "kis_types.h"
-#include "kis_generic_registry.h"
-#include <koffice_export.h>
-
-class TQWidget;
-class TQStringList;
-
-class KisPaintOp;
-class KisPaintOpSettings;
-class KisPainter;
-class KisColorSpace;
-class KisInputDevice;
-
-class KRITACORE_EXPORT KisPaintOpRegistry : public TQObject, public KisGenericRegistry<KisPaintOpFactorySP>
-{
-
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    virtual ~KisPaintOpRegistry();
-
-    /**
-     * Return a newly created paintop
-     */
-    KisPaintOp * paintOp(const KisID& id, const KisPaintOpSettings * settings, KisPainter * painter) const;
-
-    /**
-     * Return a newly created paintopd
-     */
-    KisPaintOp * paintOp(const TQString& id, const KisPaintOpSettings * settings, KisPainter * painter) const;
-
-    /**
-     * Create and return an (abstracted) configuration widget
-     * for using the specified paintop with the specified input device,
-     * with the specified tqparent as widget tqparent. Returns 0 if there
-     * are no settings available for the given device.
-     */
-    KisPaintOpSettings * settings(const KisID& id, TQWidget * tqparent, const KisInputDevice& inputDevice) const;
-    
-    // Whether we should show this paintop in the toolchest
-    bool userVisible(const KisID & id, KisColorSpace* cs) const;
-
-    // Get the name of the icon to show in the toolchest
-    TQString pixmap(const KisID & id) const;
-
-
-public:
-    static KisPaintOpRegistry* instance();
-
-private:
-    KisPaintOpRegistry();
-    KisPaintOpRegistry(const KisPaintOpRegistry&);
-    KisPaintOpRegistry operator=(const KisPaintOpRegistry&);
-
-private:
-    static KisPaintOpRegistry *m_singleton;
-};
-
-#endif // KIS_PAINTOP_REGISTRY_H_
-
diff --git a/krita/core/kis_palette.cc b/krita/core/kis_palette.cc
deleted file mode 100644
index daf8d84d6..000000000
--- a/krita/core/kis_palette.cc
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#include <netinet/in.h>
-#include <limits.h>
-#include <stdlib.h>
-#include <cfloat>
-
-#include <tqimage.h>
-#include <tqpoint.h>
-#include <tqvaluevector.h>
-#include <tqfile.h>
-#include <tqtextstream.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include "kis_debug_areas.h"
-#include "kis_palette.h"
-#include "kis_iterators_pixel.h"
-
-
-namespace {
-    enum enumPaletteType {
-        FORMAT_UNKNOWN,
-        FORMAT_GPL, // Gimp palette
-        FORMAT_PAL, // RIFF palette
-        FORMAT_ACT // Photoshop binary color palette
-    };
-
-}
-
-
-KisPalette::KisPalette(const TQImage * img, TQ_INT32 nColors, const TQString & name)
-    : super(TQString("")),
-      m_name(name)
-{
-    Q_ASSERT(nColors > 0);
-    Q_ASSERT(!img->isNull());
-
-    // XXX: Implement
-
-    m_columns = 0; // Set the default value that the GIMP uses...
-}
-
-KisPalette::KisPalette(const KisPaintDeviceSP device, TQ_INT32 nColors, const TQString & name)
-    : super(TQString("")),
-      m_name(name)
-{
-    Q_ASSERT(nColors > 0);
-    Q_ASSERT(device != 0);
-
-
-    // XXX: Implement
-    m_columns = 0; // Set the default value that the GIMP uses...
-}
-
-
-KisPalette::KisPalette(const KisGradient * gradient, TQ_INT32 nColors, const TQString & name)
-    : super(TQString("")),
-      m_name(name)
-{
-    Q_ASSERT(nColors > 0);
-    Q_ASSERT(gradient != 0);
-
-    double dx, cur_x;
-    TQColor c;
-    TQ_INT32 i;
-    TQ_UINT8 opacity;
-    dx = 1.0 / (nColors - 1);
-
-    KisPaletteEntry e;
-    for (i = 0, cur_x = 0; i < nColors; i++, cur_x += dx) {
-        gradient->colorAt(cur_x, &e.color, &opacity);
-        e.name = "Untitled";
-        add(e);
-    }
-
-    m_columns = 0; // Set the default value that the GIMP uses...
-}
-
-KisPalette::KisPalette(const TQString& filename)
-    : super(filename)
-{
-    // Implemented in super class
-    m_columns = 0; // Set the default value that the GIMP uses...
-}
-
-KisPalette::KisPalette()
-    : super("")
-{
-    m_columns = 0; // Set the default value that the GIMP uses...
-}
-
-/// Create an copied palette
-KisPalette::KisPalette(const KisPalette& rhs)
-    : super("")
-{
-    setFilename(rhs.filename());
-    m_ownData = false;
-    m_img = rhs.m_img;
-    m_name = rhs.m_name;
-    m_comment = rhs.m_comment;
-    m_columns = rhs.m_columns;
-    m_colors = rhs.m_colors;
-    setValid(true);
-}
-
-KisPalette::~KisPalette()
-{
-}
-
-bool KisPalette::load()
-{
-    TQFile file(filename());
-    file.open(IO_ReadOnly);
-    m_data = file.readAll();
-    file.close();
-    return init();
-}
-
-
-bool KisPalette::save()
-{
-    TQFile file(filename());
-    if (!file.open(IO_WriteOnly | IO_Truncate)) {
-        return false;
-    }
-
-    TQTextStream stream(&file);
-    // Header: Magic\nName: <name>\nColumns: <no idea what this means, but default = 0>
-    // In any case, we don't use Columns...
-    stream << "GIMP Palette\nName: " << name() << "\nColumns: " << m_columns << "\n#\n";
-
-    for (uint i = 0; i < m_colors.size(); i++) {
-        const KisPaletteEntry& entry = m_colors.at(i);
-        TQColor c = entry.color;
-        stream << c.red() << " " << c.green() << " " << c.blue() << "\t";
-        if (entry.name.isEmpty())
-            stream << "Untitled\n";
-        else
-            stream << entry.name << "\n";
-    }
-
-    file.close();
-    return true;
-}
-
-TQImage KisPalette::img()
-{
-    return m_img;
-}
-
-TQ_INT32 KisPalette::nColors()
-{
-    return m_colors.count();
-}
-
-bool KisPalette::init()
-{
-    enumPaletteType format = FORMAT_UNKNOWN;
-
-    TQString s = TQString::fromUtf8(m_data.data(), m_data.count());
-
-    if (s.isEmpty() || s.isNull() || s.length() < 50) {
-        kdWarning(DBG_AREA_FILE) << "Illegal Gimp palette file: " << filename() << "\n";
-        return false;
-    }
-
-
-    if (s.startsWith("RIFF") || s.startsWith("PAL data"))
-    {
-       format = FORMAT_PAL;
-    }
-    else if (s.startsWith("GIMP Palette"))
-    {
-        // XXX: No checks for wrong input yet!
-        TQ_UINT32 index = 0;
-
-        TQStringList lines = TQStringList::split("\n", s);
-
-        if (lines.size() < 3) {
-            return false;
-        }
-
-        TQString entry, channel, columns;
-        TQStringList c;
-        TQ_INT32 r, g, b;
-        TQColor color;
-        KisPaletteEntry e;
-
-        format = FORMAT_GPL;
-
-        // Read name
-        if (!lines[1].startsWith("Name: ") || !lines[0].startsWith("GIMP") )
-        {
-            kdWarning(DBG_AREA_FILE) << "Illegal Gimp palette file: " << filename() << "\n";
-            return false;
-        }
-
-        setName(i18n(lines[1].mid(strlen("Name: ")).stripWhiteSpace().ascii()));
-
-        index = 2;
-
-        // Read columns
-        if (lines[index].startsWith("Columns: ")) {
-            columns = lines[index].mid(strlen("Columns: ")).stripWhiteSpace();;
-            m_columns = columns.toInt();
-            index = 3;
-        }
-
-        for (TQ_UINT32 i = index; i < lines.size(); i++) {
-            if (lines[i].startsWith("#")) {
-                m_comment += lines[i].mid(1).stripWhiteSpace() + " ";
-            }
-            else if (!lines[i].isEmpty())
-            {
-                TQStringList a = TQStringList::split(" ", lines[i].tqreplace(TQChar('\t'), " "));
-
-                if (a.count() < 3)
-                {
-                    break;
-                }
-
-                r = a[0].toInt();
-                a.pop_front();
-                g = a[0].toInt();
-                a.pop_front();
-                b = a[0].toInt();
-                a.pop_front();
-
-                if (r < 0 || r > 255 ||
-                    g < 0 || g > 255 ||
-                    b < 0 || b > 255)
-                {
-                    break;
-                }
-
-                color = TQColor(r, g, b);
-                e.color = color;
-
-                TQString name = a.join(" ");
-                e.name = name.isEmpty() ? i18n("Untitled") : name;
-
-                add(e);
-            }
-        }
-        setValid(true);
-        return true;
-    }
-    else if (s.length() == 768) {
-        kdWarning(DBG_AREA_FILE) << "Photoshop format palette file. Not implemented yet\n";
-        format = FORMAT_ACT;
-    }
-    return false;
-}
-
-
-void KisPalette::add(const KisPaletteEntry & c)
-{
-    m_colors.push_back(c);
-}
-
-void KisPalette::remove(const KisPaletteEntry & c)
-{
-    TQValueVector<KisPaletteEntry>::iterator it = m_colors.begin();
-    TQValueVector<KisPaletteEntry>::iterator end = m_colors.end();
-
-    while (it != end) {
-        if ((*it) == c) {
-            m_colors.erase(it);
-            return;
-        }
-        ++it;
-    }
-}
-
-KisPaletteEntry KisPalette::getColor(TQ_UINT32 index)
-{
-    return m_colors[index];
-}
-
-#include "kis_palette.moc"
diff --git a/krita/core/kis_palette.h b/krita/core/kis_palette.h
deleted file mode 100644
index ef1788192..000000000
--- a/krita/core/kis_palette.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_PALETTE_
-#define KIS_PALETTE_
-
-#include <tqimage.h>
-#include <tqcolor.h>
-#include <tqvaluevector.h>
-
-#include <kio/job.h>
-#include <kpalette.h>
-
-#include "kis_types.h"
-#include "kis_resource.h"
-#include "kis_global.h"
-#include "kis_gradient.h"
-#include "kis_alpha_tqmask.h"
-
-class TQPoint;
-class TQPixmap;
-class KisPaintDevice;
-
-struct KisPaletteEntry {
-    TQColor color;
-    TQString name;
-    bool operator==(const KisPaletteEntry& rhs) const {
-        return color == rhs.color && name == rhs.name;
-    }
-};
-
-/**
- * Open Gimp, Photoshop or RIFF palette files. This is a straight port
- * from the Gimp.
- */
-class KisPalette : public KisResource {
-    typedef KisResource super;
-
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    /**
-     * Create a palette from the colours in an image
-     */
-    KisPalette(const TQImage * img, TQ_INT32 nColors, const TQString & name);
-
-    /**
-     * Create a palette from the colours in a paint device
-     */
-    KisPalette(const KisPaintDeviceSP device, TQ_INT32 nColors, const TQString & name);
-
-    /**
-     * Create a palette from the colours in a gradient
-     */
-    KisPalette(const KisGradient * gradient, TQ_INT32 nColors, const TQString & name);
-
-    /**
-     * Load a palette from a file. This can be a Gimp
-     * palette, a RIFF palette or a Photoshop palette.
-     */
-    KisPalette(const TQString& filename);
-
-    /// Create an empty palette
-    KisPalette();
-
-    /// Explicit copy constructor (KisResource copy constructor is private)
-    KisPalette(const KisPalette& rhs);
-
-    virtual ~KisPalette();
-
-    virtual bool load();
-    virtual bool save();
-    virtual TQImage img();
-
-
-public:
-
-    void add(const KisPaletteEntry &);
-    void remove(const KisPaletteEntry &);
-    KisPaletteEntry getColor(TQ_UINT32 index);
-    TQ_INT32 nColors();
-
-private:
-    bool init();
-
-private:
-
-    TQByteArray m_data;
-    bool m_ownData;
-    TQImage m_img;
-    TQString m_name;
-    TQString m_comment;
-    TQ_INT32 m_columns;
-    TQValueVector<KisPaletteEntry> m_colors;
-
-};
-#endif // KIS_PALETTE_
-
diff --git a/krita/core/kis_part_layer_iface.h b/krita/core/kis_part_layer_iface.h
deleted file mode 100644
index 1d4f7b995..000000000
--- a/krita/core/kis_part_layer_iface.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- *  Copyright (c) 2006 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_PART_LAYER_IFACE_
-#define KIS_PART_LAYER_IFACE_
-
-#include <tqdom.h>
-#include "kis_types.h"
-
-/**
- * An interface for the Part Layer so that we can use it in core/, but can implement it in ui/
- */
-class KisPartLayer : public KisLayer {
-    typedef KisLayer super;
-public:
-    KisPartLayer(KisImage *img, const TQString &name, TQ_UINT8 opacity)
-        : super(img, name, opacity) {}
-    virtual KisPaintDeviceSP prepareProjection(KisPaintDeviceSP projection, const TQRect& r) = 0;
-    virtual bool saveToXML(TQDomDocument doc, TQDomElement elem) = 0;
-};
-
-#endif // KIS_PART_IFACE_LAYER_IFACE_
diff --git a/krita/core/kis_pattern.cc b/krita/core/kis_pattern.cc
deleted file mode 100644
index 516d3d8b1..000000000
--- a/krita/core/kis_pattern.cc
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- *  kis_pattern.cc - part of Krayon
- *
- *  Copyright (c) 2000 Matthias Elter <elter@kde.org>
- *                2001 John Califf
- *                2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include "kis_pattern.h"
-
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#include <limits.h>
-#include <stdlib.h>
-
-#include <tqpoint.h>
-#include <tqsize.h>
-#include <tqimage.h>
-#include <tqvaluevector.h>
-#include <tqmap.h>
-#include <tqfile.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include "kis_color.h"
-#include "kis_layer.h"
-#include "kis_paint_device.h"
-
-namespace {
-    struct GimpPatternHeader {
-        TQ_UINT32 header_size;  /*  header_size = sizeof (PatternHeader) + brush name  */
-        TQ_UINT32 version;      /*  pattern file version #  */
-        TQ_UINT32 width;        /*  width of pattern */
-        TQ_UINT32 height;       /*  height of pattern  */
-        TQ_UINT32 bytes;        /*  depth of pattern in bytes : 1, 2, 3 or 4*/
-        TQ_UINT32 magic_number; /*  GIMP brush magic number  */
-    };
-
-    // Yes! This is _NOT_ what my pat.txt file says. It's really not 'GIMP', but 'GPAT'
-    TQ_UINT32 const GimpPatternMagic = (('G' << 24) + ('P' << 16) + ('A' << 8) + ('T' << 0));
-}
-
-KisPattern::KisPattern(const TQString& file) : super(file), m_hasFile(true)
-{
-}
-
-KisPattern::KisPattern(KisPaintDevice* image, int x, int y, int w, int h)
-    : super(""), m_hasFile(false)
-{
-    // Forcefully convert to RGBA8
-    // XXX profile and exposure?
-    setImage(image->convertToTQImage(0, x, y, w, h));
-    setName(image->name());
-}
-
-KisPattern::~KisPattern()
-{
-}
-
-bool KisPattern::load()
-{
-    if (!m_hasFile)
-        return true;
-
-    TQFile file(filename());
-    file.open(IO_ReadOnly);
-    TQByteArray data = file.readAll();
-    if (!data.isEmpty()) {
-        TQ_INT32 startPos = m_data.size();
-
-        m_data.resize(m_data.size() + data.count());
-        memcpy(&m_data[startPos], data.data(), data.count());
-    }
-    file.close();
-    return init();
-}
-
-bool KisPattern::save()
-{
-    TQFile file(filename());
-    file.open(IO_WriteOnly | IO_Truncate);
-
-    TQTextStream stream(&file);
-    // Header: header_size (24+name length),version,width,height,colourdepth of brush,magic,name
-    // depth: 1 = greyscale, 2 = greyscale + A, 3 = RGB, 4 = RGBA
-    // magic = "GPAT", as a single uint32, the docs are wrong here!
-    // name is UTF-8 (\0-terminated! The docs say nothing about this!)
-    // _All_ data in network order, it seems! (not mentioned in gimp-2.2.8/devel-docs/pat.txt!!)
-    // We only save RGBA at the moment
-    // Version is 1 for now...
-
-    GimpPatternHeader ph;
-    TQCString utf8Name = name().utf8();
-    char const* name = utf8Name.data();
-    int nameLength = tqstrlen(name);
-
-    ph.header_size = htonl(sizeof(GimpPatternHeader) + nameLength + 1); // trailing 0
-    ph.version = htonl(1);
-    ph.width = htonl(width());
-    ph.height = htonl(height());
-    ph.bytes = htonl(4);
-    ph.magic_number = htonl(GimpPatternMagic);
-
-    TQByteArray bytes;
-    bytes.setRawData(reinterpret_cast<char*>(&ph), sizeof(GimpPatternHeader));
-    int wrote = file.writeBlock(bytes);
-    bytes.resetRawData(reinterpret_cast<char*>(&ph), sizeof(GimpPatternHeader));
-
-    if (wrote == -1)
-        return false;
-
-    wrote = file.writeBlock(name, nameLength + 1); // Trailing 0 apparantly!
-    if (wrote == -1)
-        return false;
-
-    int k = 0;
-    bytes.resize(width() * height() * 4);
-    for (TQ_INT32 y = 0; y < height(); y++) {
-        for (TQ_INT32 x = 0; x < width(); x++) {
-            // RGBA only
-            TQRgb pixel = m_img.pixel(x,y);
-            bytes[k++] = static_cast<char>(tqRed(pixel));
-            bytes[k++] = static_cast<char>(tqGreen(pixel));
-            bytes[k++] = static_cast<char>(tqBlue(pixel));
-            bytes[k++] = static_cast<char>(tqAlpha(pixel));
-        }
-    }
-
-    wrote = file.writeBlock(bytes);
-    if (wrote == -1)
-        return false;
-
-    file.close();
-
-    return true;
-}
-
-TQImage KisPattern::img()
-{
-    return m_img;
-}
-
-bool KisPattern::init()
-{
-    // load Gimp patterns
-    GimpPatternHeader bh;
-    TQ_INT32 k;
-    TQValueVector<char> name;
-
-    if (sizeof(GimpPatternHeader) > m_data.size()) {
-        return false;
-    }
-
-    memcpy(&bh, &m_data[0], sizeof(GimpPatternHeader));
-    bh.header_size = ntohl(bh.header_size);
-    bh.version = ntohl(bh.version);
-    bh.width = ntohl(bh.width);
-    bh.height = ntohl(bh.height);
-    bh.bytes = ntohl(bh.bytes);
-    bh.magic_number = ntohl(bh.magic_number);
-
-    if (bh.header_size > m_data.size() || bh.header_size == 0) {
-        return false;
-    }
-
-    name.resize(bh.header_size - sizeof(GimpPatternHeader));
-    memcpy(&name[0], &m_data[sizeof(GimpPatternHeader)], name.size());
-
-    if (name[name.size() - 1]) {
-        return false;
-    }
-
-    setName(i18n(&name[0]));
-
-    if (bh.width == 0 || bh.height == 0 || !m_img.create(bh.width, bh.height, 32)) {
-        return false;
-    }
-
-    k = bh.header_size;
-
-    if (bh.bytes == 1) {
-        // Grayscale
-        TQ_INT32 val;
-
-        for (TQ_UINT32 y = 0; y < bh.height; y++) {
-            for (TQ_UINT32 x = 0; x < bh.width; x++, k++) {
-                if (static_cast<TQ_UINT32>(k) > m_data.size()) {
-                    kdDebug(DBG_AREA_FILE) << "failed in gray\n";
-                    return false;
-                }
-
-                val = m_data[k];
-                m_img.setPixel(x, y, tqRgb(val, val, val));
-                m_img.setAlphaBuffer(false);
-            }
-        }
-    } else if (bh.bytes == 2) {
-        // Grayscale + A
-        TQ_INT32 val;
-        TQ_INT32 alpha;
-        for (TQ_UINT32 y = 0; y < bh.height; y++) {
-            for (TQ_UINT32 x = 0; x < bh.width; x++, k++) {
-                if (static_cast<TQ_UINT32>(k + 2) > m_data.size()) {
-                    kdDebug(DBG_AREA_FILE) << "failed in grayA\n";
-                    return false;
-                }
-
-                val = m_data[k];
-                alpha = m_data[k++];
-                m_img.setPixel(x, y, tqRgba(val, val, val, alpha));
-                m_img.setAlphaBuffer(true);
-            }
-        }
-    } else if (bh.bytes == 3) {
-        // RGB without alpha
-        for (TQ_UINT32 y = 0; y < bh.height; y++) {
-            for (TQ_UINT32 x = 0; x < bh.width; x++) {
-                if (static_cast<TQ_UINT32>(k + 3) > m_data.size()) {
-                    kdDebug(DBG_AREA_FILE) << "failed in RGB\n";
-                    return false;
-                }
-
-                m_img.setPixel(x, y, tqRgb(m_data[k],
-                              m_data[k + 1],
-                              m_data[k + 2]));
-                k += 3;
-                m_img.setAlphaBuffer(false);
-            }
-        }
-    } else if (bh.bytes == 4) {
-        // Has alpha
-        for (TQ_UINT32 y = 0; y < bh.height; y++) {
-            for (TQ_UINT32 x = 0; x < bh.width; x++) {
-                if (static_cast<TQ_UINT32>(k + 4) > m_data.size()) {
-                    kdDebug(DBG_AREA_FILE) << "failed in RGBA\n";
-                    return false;
-                }
-
-                m_img.setPixel(x, y, tqRgba(m_data[k],
-                               m_data[k + 1],
-                               m_data[k + 2],
-                               m_data[k + 3]));
-                k += 4;
-                m_img.setAlphaBuffer(true);
-            }
-        }
-    } else {
-        return false;
-    }
-
-    if (m_img.isNull()) {
-        return false;
-    }
-
-    setWidth(m_img.width());
-    setHeight(m_img.height());
-
-    setValid(true);
-
-    return true;
-}
-
-KisPaintDeviceSP KisPattern::image(KisColorSpace * colorSpace) {
-    // Check if there's already a pattern prepared for this colorspace
-    TQMap<TQString, KisPaintDeviceSP>::const_iterator it = m_colorspaces.tqfind(colorSpace->id().id());
-    if (it != m_colorspaces.end())
-        return (*it);
-
-    // If not, create one
-    KisPaintDeviceSP layer = new KisPaintDevice(colorSpace, "pattern");
-
-    Q_CHECK_PTR(layer);
-
-    layer->convertFromTQImage(m_img,"");
-
-    m_colorspaces[colorSpace->id().id()] = layer;
-    return layer;
-}
-
-TQ_INT32 KisPattern::width() const
-{
-    return m_width;
-}
-
-void KisPattern::setWidth(TQ_INT32 w)
-{
-    m_width = w;
-}
-
-TQ_INT32 KisPattern::height() const
-{
-    return m_height;
-}
-
-void KisPattern::setHeight(TQ_INT32 h)
-{
-    m_height = h;
-}
-
-void KisPattern::setImage(const TQImage& img)
-{
-    m_hasFile = false;
-    m_img = img;
-    m_img.detach();
-
-    setWidth(img.width());
-    setHeight(img.height());
-
-    setValid(true);
-}
-
-KisPattern* KisPattern::clone() const
-{
-    KisPattern* pattern = new KisPattern("");
-    pattern->setImage(m_img);
-    pattern->setName(name());
-    return pattern;
-}
-
-#include "kis_pattern.moc"
diff --git a/krita/core/kis_pattern.h b/krita/core/kis_pattern.h
deleted file mode 100644
index 7d18f1f33..000000000
--- a/krita/core/kis_pattern.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- *  kis_pattern.h - part of Krayon
- *
- *  Copyright (c) 2000 Matthias Elter  <elter@kde.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef __kis_pattern_h__
-#define __kis_pattern_h__
-
-#include <kio/job.h>
-
-#include "kis_debug_areas.h"
-#include "kis_resource.h"
-#include "kis_types.h"
-
-class TQPoint;
-class TQImage;
-class KisColorSpace;
-class KisPaintDevice;
-
-class KisPattern : public KisResource {
-    typedef KisResource super;
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-    KisPattern(const TQString& file);
-    KisPattern(KisPaintDevice* image, int x, int y, int w, int h);
-    virtual ~KisPattern();
-
-    virtual bool load();
-    virtual bool save();
-    virtual TQImage img();
-
-    /**
-     * returns a KisPaintDeviceSP made with colorSpace as the ColorSpace strategy
-     * for use in the fill painter.
-     **/
-    KisPaintDeviceSP image(KisColorSpace * colorSpace);
-
-    TQ_INT32 width() const;
-    TQ_INT32 height() const;
-
-    void setImage(const TQImage& img);
-
-    KisPattern* clone() const;
-
-protected:
-    void setWidth(TQ_INT32 w);
-    void setHeight(TQ_INT32 h);
-
-private:
-    bool init();
-
-private:
-    TQByteArray m_data;
-    TQImage m_img;
-    TQMap<TQString, KisPaintDeviceSP> m_colorspaces;
-    bool m_hasFile;
-
-    TQ_INT32 m_width;
-    TQ_INT32 m_height;
-};
-
-#endif
-
diff --git a/krita/core/kis_perspective_grid.cpp b/krita/core/kis_perspective_grid.cpp
deleted file mode 100644
index 7f029d26d..000000000
--- a/krita/core/kis_perspective_grid.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * This file is part of Krita
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "kis_perspective_grid.h"
-
-int KisSubPerspectiveGrid::s_lastIndex = 0;
-
-KisSubPerspectiveGrid::KisSubPerspectiveGrid(KisPerspectiveGridNodeSP topLeft, KisPerspectiveGridNodeSP topRight, KisPerspectiveGridNodeSP bottomRight, KisPerspectiveGridNodeSP bottomLeft) : m_topLeft(topLeft), m_topRight(topRight), m_bottomRight(bottomRight), m_bottomLeft(bottomLeft), m_subdivisions(5), m_leftGrid(0), m_rightGrid(0), m_topGrid(0), m_bottomGrid(0), m_index(++s_lastIndex)
-{
-    
-}
-
-bool KisSubPerspectiveGrid::tqcontains(const KisPoint p) const
-{
-    return true;
-    KisPerspectiveMath::LineEquation d1 = KisPerspectiveMath::computeLineEquation( topLeft(), topRight() );
-    kdDebug() << p.y() << " " << (p.x() * d1.a + d1.b) << endl;
-    if( p.y() >= p.x() * d1.a + d1.b)
-    {
-        d1 = KisPerspectiveMath::computeLineEquation( topRight(), bottomRight() );
-        kdDebug() << p.y() << " " << (p.x() * d1.a + d1.b) << endl;
-        if( p.y() >= p.x() * d1.a + d1.b)
-        {
-            d1 = KisPerspectiveMath::computeLineEquation( bottomRight(), bottomLeft() );
-            kdDebug() << p.y() << " " << (p.x() * d1.a + d1.b) << endl;
-            if( p.y() <= p.x() * d1.a + d1.b)
-            {
-                d1 = KisPerspectiveMath::computeLineEquation( bottomLeft(), topLeft() );
-                kdDebug() << p.y() << " " << (p.x() * d1.a + d1.b) << endl;
-                if( p.y() <= p.x() * d1.a + d1.b)
-                {
-                    return true;
-                }
-            }
-        }
-    }
-    return false;
-}
-
-
-KisPerspectiveGrid::KisPerspectiveGrid()
-{
-}
-
-
-KisPerspectiveGrid::~KisPerspectiveGrid()
-{
-    clearSubGrids( );
-}
-
-bool KisPerspectiveGrid::addNewSubGrid( KisSubPerspectiveGrid* ng )
-{
-    if(hasSubGrids() && !ng->topGrid() && !ng->bottomGrid() && !ng->leftGrid() && !ng->rightGrid() )
-    {
-        kdError() << "sub grids need a neighbourgh if they are not the first grid to be added" << endl;
-        return false;
-    }
-    m_subGrids.push_back(ng);
-    return true;
-}
-
-
-void KisPerspectiveGrid::clearSubGrids( )
-{
-    for( TQValueList<KisSubPerspectiveGrid*>::const_iterator it = begin(); it != end(); ++it)
-    {
-        delete *it;
-    }
-    m_subGrids.clear();
-}
-
-KisSubPerspectiveGrid* KisPerspectiveGrid::gridAt(KisPoint p)
-{
-    for( TQValueList<KisSubPerspectiveGrid*>::const_iterator it = begin(); it != end(); ++it)
-    {
-        if( (*it)->tqcontains(p) )
-        {
-            return *it;
-        }
-    }
-    return 0;
-}
-
diff --git a/krita/core/kis_perspective_grid.h b/krita/core/kis_perspective_grid.h
deleted file mode 100644
index 26a1feb23..000000000
--- a/krita/core/kis_perspective_grid.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * This file is part of Krita
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_PERSPECTIVE_GRID_H
-#define KIS_PERSPECTIVE_GRID_H
-
-#include <tqvaluelist.h>
-
-#include <kis_perspective_math.h>
-#include <kis_point.h>
-#include <ksharedptr.h>
-
-class KisPerspectiveGridNode : public KisPoint, public KShared {
-    public:
-        inline KisPerspectiveGridNode(double x, double y) : KisPoint(x,y)  { }
-        inline KisPerspectiveGridNode(KisPoint p) : KisPoint(p)  { }
-};
-typedef KSharedPtr<KisPerspectiveGridNode> KisPerspectiveGridNodeSP;
-
-class KisSubPerspectiveGrid {
-    public:
-        KisSubPerspectiveGrid(KisPerspectiveGridNodeSP topLeft, KisPerspectiveGridNodeSP topRight, KisPerspectiveGridNodeSP bottomRight, KisPerspectiveGridNodeSP bottomLeft);
-        
-        inline KisPoint topBottomVanishingPoint() { return computeVanishingPoint( topLeft(), topRight(), bottomLeft(), bottomRight() ); };
-        inline KisPoint leftRightVanishingPoint() { return computeVanishingPoint( topLeft(), bottomLeft(), topRight(), bottomRight() ); };
-        
-        inline KisSubPerspectiveGrid* leftGrid() { return m_leftGrid; }
-        inline void setLeftGrid(KisSubPerspectiveGrid* g) { Q_ASSERT(m_leftGrid==0); m_leftGrid = g; }
-        inline KisSubPerspectiveGrid* rightGrid() { return m_rightGrid; }
-        inline void setRightGrid(KisSubPerspectiveGrid* g) { Q_ASSERT(m_rightGrid==0); m_rightGrid = g; }
-        inline KisSubPerspectiveGrid* topGrid() { return m_topGrid; }
-        inline void setTopGrid(KisSubPerspectiveGrid* g) { Q_ASSERT(m_topGrid==0); m_topGrid = g; }
-        inline KisSubPerspectiveGrid* bottomGrid() { return m_bottomGrid; }
-        inline void setBottomGrid(KisSubPerspectiveGrid* g) { Q_ASSERT(m_bottomGrid==0); m_bottomGrid = g; }
-        inline const KisPerspectiveGridNodeSP topLeft() const { return m_topLeft; }
-        inline KisPerspectiveGridNodeSP topLeft() { return m_topLeft; }
-        inline const KisPerspectiveGridNodeSP topRight() const { return m_topRight; }
-        inline KisPerspectiveGridNodeSP topRight() { return m_topRight; }
-        inline const KisPerspectiveGridNodeSP bottomLeft() const { return m_bottomLeft; }
-        inline KisPerspectiveGridNodeSP bottomLeft() { return m_bottomLeft; }
-        inline const KisPerspectiveGridNodeSP bottomRight() const { return m_bottomRight; }
-        inline KisPerspectiveGridNodeSP bottomRight() { return m_bottomRight; }
-        inline int subdivisions() const { return m_subdivisions; }
-        /**
-         * Return the index of the subgrid, the value is automaticaly set when the KisSubPerspectiveGrid, it is usefull for
-         * drawing the perspective grid, to avoid drawing twice the same border, or points
-         */
-        inline int index() const { return m_index; }
-
-        /**
-         * @return true if the point p is contain by the grid
-         */
-        bool tqcontains(const KisPoint p) const;
-    private:
-        inline KisPoint computeVanishingPoint(KisPerspectiveGridNodeSP p11, KisPerspectiveGridNodeSP p12, KisPerspectiveGridNodeSP p21, KisPerspectiveGridNodeSP p22)
-        {
-            KisPerspectiveMath::LineEquation d1 = KisPerspectiveMath::computeLineEquation( p11, p12 );
-            KisPerspectiveMath::LineEquation d2 = KisPerspectiveMath::computeLineEquation( p21, p22 );
-            return KisPerspectiveMath::computeIntersection(d1,d2);
-        }
-    private:
-        KisPerspectiveGridNodeSP m_topLeft, m_topRight, m_bottomLeft, m_bottomRight;
-        KisSubPerspectiveGrid *m_leftGrid, *m_rightGrid, *m_topGrid, *m_bottomGrid;
-        int m_subdivisions;
-        int m_index;
-        static int s_lastIndex;
-};
-
-class KisPerspectiveGrid {
-    public:
-        KisPerspectiveGrid();
-        ~KisPerspectiveGrid();
-        /**
-         * @return false if the grid wasn't added, note that subgrids must be attached to an other grid, except if it's the first grid
-         */
-        bool addNewSubGrid( KisSubPerspectiveGrid* ng );
-        inline TQValueList<KisSubPerspectiveGrid*>::const_iterator begin() const { return m_subGrids.begin(); }
-        inline TQValueList<KisSubPerspectiveGrid*>::const_iterator end() const { return m_subGrids.end(); }
-        inline bool hasSubGrids() const { return !m_subGrids.isEmpty(); }
-        void clearSubGrids();
-        inline int countSubGrids() const { return m_subGrids.size(); }
-        /**
-         * @return the first grid hit by the point p
-         */
-        KisSubPerspectiveGrid* gridAt(KisPoint p);
-    private:
-        TQValueList<KisSubPerspectiveGrid*> m_subGrids;
-};
-
-#endif
diff --git a/krita/core/kis_perspective_math.cpp b/krita/core/kis_perspective_math.cpp
deleted file mode 100644
index 44a43a033..000000000
--- a/krita/core/kis_perspective_math.cpp
+++ /dev/null
@@ -1,546 +0,0 @@
-/*
- * This file is part of Krita
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "kis_perspective_math.h"
-
-#include <tqrect.h>
-
-#if 1
-
-#include <iostream>
-#include <stdlib.h>
-#include <math.h>
-//#define NDEBUG // uncomment to remove checking of assert()
-#include <assert.h>
-#define DEFAULT_ALLOC 2
-
-namespace math { // TODO: use eigen
-
-template <class ElType> class matrix;
-
-template <class ElType>
-        class vector
-{
-    public:
-        friend class matrix<ElType>;
-        ElType * data;
-        int len;
-        int length()const;
-        vector();
-        vector(int n);
-        ~vector(){ delete [] data;}
-     //Copy operator
-        vector(const vector<ElType>& v) ;
-     //assignment operator
-        vector<ElType>& operator =(const vector<ElType> &original);
-        ElType& operator[](int i)const  ;
-        void zero();
-        vector<ElType> operator+(const vector<ElType>& v);
-        vector<ElType> operator-(const vector<ElType>&v);
-        void  rprint()const;  //print entries on a single line
-        void resize(int n);
-        int operator==(const vector<ElType>& v)const;
-        friend vector<ElType> operator* (ElType c,vector<ElType>& v );
-        friend vector<ElType> operator*(vector<ElType>& v,ElType c );
-        friend std::ostream& operator<<(std::ostream& s,vector<ElType>& v);
-};
-template <class ElType>
-        void vector<ElType>::zero()
-{
-    for(int i=0;i<len;i++) data[i]=(ElType)0;
-}
-template <class ElType>
-        int vector<ElType>::length()const
-{
-    return len;
-}
-template <class ElType>
-        ElType& vector<ElType>::operator[](int i)const
-{
-    assert(i>=0 && i < len);
-    return data[i];
-}
-
-template <class ElType>
-        vector<ElType>::vector()
-{
-    data=new ElType[ DEFAULT_ALLOC];
-    assert(data!=0);
-    len=  DEFAULT_ALLOC;
-}
-template <class ElType>
-        vector<ElType>::vector(int n)
-{
-    data = new ElType[len=n];
-    assert(data!=0);
-}
-template <class ElType>
-        vector<ElType>::vector(const vector<ElType>& v)
-{
-    data=new ElType[len=v.len];
-    assert(data!=0);
-    for(int i=0;i<len;i++) data[i]=v.data[i];
-}
-template <class ElType>
-        vector<ElType>& vector<ElType>::operator =(const vector<ElType> &original)
-{
-    if(this != &original)
-    {
-        delete [] data;
-        data= new ElType[len=original.len];
-        assert(data!=0);
-        for(int i=0;i<len;i++) data[i]=original.data[i];
-    }
-    return *this;
-}
-template <class ElType>
-        vector<ElType> vector<ElType>::operator+(const vector<ElType>& v)
-{
-    vector<ElType> sum(len);
-    for(int i=0;i<len;i++) sum[i] = data[i]+v.data[i];
-    return sum;
-
-}
-template <class ElType>
-        vector<ElType> vector<ElType>::operator-(const vector<ElType>& v)
-{
-    vector<ElType> sum(len);
-    for(int i=0;i<len;i++) sum[i] = data[i]-v.data[i];
-    return sum;
-}
-template <class ElType>
-        void  vector<ElType>::rprint()const  //print entries on a single line
-{
-    int i;
-    std::cout << "VECTOR: ";
-    std::cout << "(";
-    for(i=0;i<len-1;i++) std::cout << data[i] << ",";
-    std::cout << data[len-1] << ")" << std::endl;
-    return;
-}
-template <class ElType>
-        void vector<ElType>::resize(int n)
-{
-    delete[]data;
-    data = new ElType[len=n];
-    assert(data !=0);
-}
-template <class ElType>
-        int vector<ElType>::operator==(const vector<ElType>& v)const
-{
-    if(len != v.len) return 0;
-    for(int i=0;i<len;i++) if(data[i]!=v.data[i]) return 0;
-    return 1;
-}
-template <class ElType>
-        vector<ElType> operator*(ElType c,vector<ElType>& v )
-{
-    vector<ElType> ans(v.len);
-    for(int i=0;i<v.len;i++) ans[i]=c*v[i];
-    return ans;
-}
-template <class ElType>
-        vector<ElType> operator*(vector<ElType>& v,ElType c )
-{
-    vector<ElType> ans(v.len);
-    for(int i=0;i<v.len;i++) ans[i]=c*v[i];
-    return ans;
-}
-template <class ElType>
-        std::ostream& operator<<(std::ostream& s,vector<ElType>& v)
-{
-    s << "(";
-    for(int i=0;i<v.len-1;i++) s << v.data[i] << ", ";
-    s << v.data[v.len-1]<<")"<<endl;
-    return s;
-}
-
-template <class ElType>
-        class matrix
-{
-    public:
-        vector<ElType> *m;
-        int rows,cols;
-        matrix();
-        matrix( int r, int c);
-        matrix(const matrix<ElType> &s);
-        ~matrix();
-        matrix& operator =(const matrix<ElType>& s);
-        vector<ElType>& operator[](const int i);
-        vector<ElType> operator*(const vector<ElType>&);
-        friend matrix<ElType>  operator*(const ElType&, const matrix<ElType>&);
-        friend matrix<ElType> operator*(const matrix<ElType>&, const ElType&);
-        matrix<ElType> operator*(const matrix<ElType>& a);
-        matrix<ElType> operator+(const matrix<ElType>& a);
-        matrix<ElType> operator-(const matrix<ElType>& a);
-        matrix<ElType> transpose();
-    //matrix<ElType> inverse();
-        friend std::ostream& operator<<(std::ostream& s,matrix<ElType>& m);
-        friend void ludcmp(matrix<ElType>& a,vector<int>& indx,double &d);
-        friend void lubksb(matrix<ElType>&a,vector<int>& indx,vector<ElType>&b);
-};
-template <class ElType>
-        matrix<ElType>::matrix()
-{
-    m = new vector<ElType>[DEFAULT_ALLOC];
-    assert(m !=0);
-    rows=cols=DEFAULT_ALLOC;
-    for(int i=0;i<rows;i++)
-    {
-        vector<ElType> v;
-        m[i]= v;
-    }
-}
-
-template <class ElType>
-        matrix<ElType>::matrix(int r, int c)
-{
-    m= new vector<ElType>[r];
-    assert(m != 0);
-    rows=r;
-    cols=c;
-    for(int i=0;i<r;i++)
-    {
-        vector<ElType> v(cols);
-        m[i]=v;
-    }
-}
-template <class ElType>
-        matrix<ElType>::matrix(const matrix<ElType> &s)
-{
-    int i;
-    rows=s.rows;
-    m = new vector<ElType>[rows];
-    assert(m!=0);
-    cols =s.cols;
-    for(i=0;i<rows;i++)
-    {
-        m[i]=s.m[i];
-    }
-}
-template <class ElType>
-        matrix<ElType>::~matrix()
-{
-    delete [] m;
-}
-
-template <class ElType>
-        matrix<ElType>& matrix<ElType>::operator =(const matrix<ElType> &s)
-{
-    if(this != &s)
-    {
-        delete []m;
-        rows= s.rows;
-        cols=s.cols;
-        m = new vector<ElType>[rows];
-        assert(m !=0);
-        for(int i=0;i<rows;i++) m[i]=s.m[i];
-    }
-    return *this;
-}
-template <class ElType>
-        vector<ElType>& matrix<ElType>::operator[](const int i)
-{
-    assert(i>=0 && i < rows);
-    return m[i];
-}
-template <class ElType>
-        vector<ElType> matrix<ElType>::operator*(const vector<ElType>& v)
-{
-    int i,j;
-    assert(cols == v.len);
-    vector<ElType> ans(rows);
-    for(i=0;i<rows;i++)
-    {
-        ans.data[i]=0.0;
-        for(j=0;j<cols;j++) ans.data[i] += m[i][j]*v.data[j];
-    }
-    return ans;
-}
-template <class ElType>
-        matrix<ElType> operator*(const ElType& x,const matrix<ElType>& s)
-{
-    matrix<ElType> ans(s.rows,s.cols);
-    for(int i=0;i<ans.rows;i++)
-    {
-        ans.m[i]= x*s.m[i];
-    }
-    return ans;
-}
-template <class ElType>
-        matrix<ElType> matrix<ElType>::transpose()
-{
-    matrix<ElType> ans(cols,rows);
-    for(int i=0;i<rows;i++)
-    {
-        for(int j=0;j<cols;j++) ans[j][i]=m[i][j];
-    }
-    return ans;
-}
-template <class ElType>
-        matrix<ElType> operator*(const matrix<ElType>& s,const ElType& x)
-{
-    matrix<ElType> ans(s.rows,s.cols);
-    for(int i=0;i<ans.rows;i++)
-    {
-        ans.m[i]= x*s.m[i];
-    }
-    return ans;
-}
-template <class ElType>
-        matrix<ElType>  matrix<ElType> ::operator*(const matrix<ElType>&  a)
-{
-
-    assert(cols == a.rows);
-
-    matrix<ElType>  ans(rows,a.cols);
-    for(int i=0;i<rows;i++)
-    {
-        for(int j=0;j<a.cols;j++)
-        {
-            ans.m[i][j]=0.0;
-            for(int k=0;k<cols;k++)
-            {
-                ans.m[i][j] += m[i][k]*a.m[k][j];
-            }
-        }
-    }
-    return ans;
-}
-template <class ElType>
-        matrix<ElType>  matrix<ElType> ::operator+(const matrix<ElType> & a)
-{
-    int i,j;
-
-    assert(rows== a.rows);
-    assert(cols== a.cols);
-
-    matrix<ElType>  ans(a.rows,a.cols);
-    for(i=0;i<a.rows;i++)
-    {
-        for(j=0;j<a.cols;j++)
-        {
-            ans.m[i][j] = m[i][j] + a.m[i][j];  //faster than assigning vectors?
-        }
-    }
-    return ans;
-}
-template <class ElType>
-        matrix<ElType> matrix<ElType>::operator-(const matrix<ElType>& a)
-{
-    int i,j;
-    assert(rows == a.rows);
-    assert(cols == a.cols);
-    matrix ans(rows,cols);
-    for(i=0;i<rows;i++)
-    {
-        for(j=0;j<cols;j++)
-            ans.m[i][j] = m[i][j] - a.m[i][j];
-    }
-    return ans;
-}
-template <class ElType>
-        std::ostream& operator<<(std::ostream& s,matrix<ElType>& m)
-{
-    for(int i=0; i<m.rows;i++) s << m[i];
-    return s;
-}
-
-#define TINY 1.0e-20;
-//we assume fabs(ElType) is defined
-//assignment of doubles to ElType is defined
-template <class ElType>
-void ludcmp(matrix<ElType>& a, vector<int>& indx,double& d)
-{
-    int i,imax,j,k;
-    ElType  big,dum,sum,temp;
-    int n=a.rows;
-    vector<ElType> vv(n);
-    assert(a.rows == a.cols);
-    d=1.0;
-    for (i=0;i<n;i++)
-    {
-        big=0.0;
-//         kdDebug() << "new search" << endl;
-        for (j=0;j<n;j++) { if ((temp=fabs(a[i][j])) > big) big=temp;
-/*            kdDebug() << temp << " " << fabs(a[i][j]) << " "<< big <<endl; */}
-            if (big == 0.0) { std::cerr << "Singular matrix in routine LUDCMP" << std::endl; big = TINY;}
-            vv[i]=1.0/big;
-    }
-    for (j=0;j<n;j++)
-    {
-        for (i=0;i<j;i++)
-        {
-            sum=a[i][j];
-            for (k=0;k<i;k++) sum -= a[i][k]*a[k][j];
-            a[i][j]=sum;
-        }
-        big=0.0;
-        for (i=j;i<n;i++)
-        {
-            sum=a[i][j];
-            for (k=0;k<j;k++) sum -= a[i][k]*a[k][j];
-            a[i][j]=sum;
-            if ( (dum=vv[i]*fabs(sum)) >= big)
-            {
-                big=dum;
-                imax=i;
-            }
-        }
-        if (j != imax)
-        {
-            for (k=0;k<n;k++)
-            {
-                dum=a[imax][k];
-                a[imax][k]=a[j][k];
-                a[j][k]=dum;
-            }
-            d = -(d);
-            vv[imax]=vv[j];
-        }
-        indx[j]=imax;
-        if (a[j][j] == 0.0) a[j][j]=TINY;
-        if (j != n-1) {
-            dum=1.0/(a[j][j]);
-            for (i=j+1;i<n;i++) a[i][j] *= dum;
-        }
-    }
-}
-#undef TINY
-template <class ElType>
-void lubksb(matrix<ElType>& a,vector<int>& indx,vector<ElType>& b)
-{
-    int i,ip,j;
-    ElType sum;
-    int n=a.rows;
-    for (i=0;i<n;i++)
-    {
-        ip=indx[i];
-        sum=b[ip];
-        b[ip]=b[i];
-        for (j=0;j<=i-1;j++) sum -= a[i][j]*b[j];
-        b[i]=sum;
-    }
-    for (i=n-1;i>=0;i--)
-    {
-        sum=b[i];
-        for (j=i+1;j<n;j++) sum -= a[i][j]*b[j];
-        b[i]=sum/a[i][i];
-    }
-}
-
-
-
-}
-#endif
-
-double* KisPerspectiveMath::computeMatrixTransfo( const KisPoint& topLeft1, const KisPoint& topRight1, const KisPoint& bottomLeft1, const KisPoint& bottomRight1 , const KisPoint& topLeft2, const KisPoint& topRight2, const KisPoint& bottomLeft2, const KisPoint& bottomRight2)
-{
-    double* matrix = new double[9];
-
-    math::matrix<double> a(10,10);
-    math::vector<double> b(10);
-    math::vector<int> indx(10);
-    double d = 0.;
-    for(int i = 0; i <= 9; i++)
-    {
-        for(int j = 0; j <= 9; j++)
-        {
-            a[i][j] = 0.;
-        }
-        b[i] = 0.;
-        indx[i] = 0;
-    }
-
-        // topLeft
-    a[0][0] = topLeft1.x();
-    a[0][1] = topLeft1.y();
-    a[0][2] = 1;
-    a[0][6] = -topLeft2.x() * topLeft1.x();
-    a[0][7] = -topLeft2.x() * topLeft1.y();
-    a[0][8] = -topLeft2.x();
-    a[1][3] = topLeft1.x();
-    a[1][4] = topLeft1.y();
-    a[1][5] = 1;
-    a[1][6] = -topLeft2.y() * topLeft1.x();
-    a[1][7] = -topLeft2.y() * topLeft1.y();
-    a[1][8] = -topLeft2.y();
-        // topRight
-    a[2][0] = topRight1.x();
-    a[2][1] = topRight1.y();
-    a[2][2] = 1;
-    a[2][6] = -topRight2.x() * topRight1.x();
-    a[2][7] = -topRight2.x() * topRight1.y();
-    a[2][8] = -topRight2.x();
-    a[3][3] = topRight1.x();
-    a[3][4] = topRight1.y();
-    a[3][5] = 1;
-    a[3][6] = -topRight2.y() * topRight1.x();
-    a[3][7] = -topRight2.y() * topRight1.y();
-    a[3][8] = -topRight2.y();
-        // bottomLeft1
-    a[4][0] = bottomLeft1.x();
-    a[4][1] = bottomLeft1.y();
-    a[4][2] = 1;
-    a[4][6] = -bottomLeft2.x() * bottomLeft1.x();
-    a[4][7] = -bottomLeft2.x() * bottomLeft1.y();
-    a[4][8] = -bottomLeft2.x();
-    a[5][3] = bottomLeft1.x();
-    a[5][4] = bottomLeft1.y();
-    a[5][5] = 1;
-    a[5][6] = -bottomLeft2.y() * bottomLeft1.x();
-    a[5][7] = -bottomLeft2.y() * bottomLeft1.y();
-    a[5][8] = -bottomLeft2.y();
-        // bottomRight
-    a[6][0] = bottomRight1.x();
-    a[6][1] = bottomRight1.y();
-    a[6][2] = 1;
-    a[6][6] = -bottomRight2.x() * bottomRight1.x();
-    a[6][7] = -bottomRight2.x() * bottomRight1.y();
-    a[6][8] = -bottomRight2.x();
-    a[7][3] = bottomRight1.x();
-    a[7][4] = bottomRight1.y();
-    a[7][5] = 1;
-    a[7][6] = -bottomRight2.y() * bottomRight1.x();
-    a[7][7] = -bottomRight2.y() * bottomRight1.y();
-    a[7][8] = -bottomRight2.y();
-    a[8][8] = 1;
-    b[8] = 1;
-//     kdDebug() << " a := { { " << a[0][0] << " , " << a[0][1] << " , " << a[0][2] << " , " << a[0][3] << " , " << a[0][4] << " , " << a[0][5] << " , " << a[0][6] << " , " << a[0][7] << " , " << a[0][8] << " } , { " << a[1][0] << " , " << a[1][1] << " , " << a[1][2] << " , " << a[1][3] << " , " << a[1][4] << " , " << a[1][5] << " , " << a[1][6] << " , " << a[1][7] << " , " << a[1][8] << " } , { " << a[2][0] << " , " << a[2][1] << " , " << a[2][2] << " , " << a[2][3] << " , " << a[2][4] << " , " << a[2][5] << " , " << a[2][6] << " , " << a[2][7] << " , " << a[2][8] << " } , { " << a[3][0] << " , " << a[3][1] << " , " << a[3][2] << " , " << a[3][3] << " , " << a[3][4] << " , " << a[3][5] << " , " << a[3][6] << " , " << a[3][7] << " , " << a[3][8] << " } , { " << a[4][0] << " , " << a[4][1] << " , " << a[4][2] << " , " << a[4][3] << " , " << a[4][4] << " , " << a[4][5] << " , " << a[4][6] << " , " << a[4][7] << " , " << a[4][8] << " } , { " << a[5][0] << " , " << a[5][1] << " , " << a[5][2] << " , " << a[5][3] << " , " << a[5][4] << " , " << a[5][5] << " , " << a[5][6] << " , " << a[5][7] << " , " << a[5][8] << " } , { " << a[6][0] << " , " << a[6][1] << " , " << a[6][2] << " , " << a[6][3] << " , " << a[6][4] << " , " << a[6][5] << " , " << a[6][6] << " , " << a[6][7] << " , " << a[6][8] << " } , { "<< a[7][0] << " , " << a[7][1] << " , " << a[7][2] << " , " << a[7][3] << " , " << a[7][4] << " , " << a[7][5] << " , " << a[7][6] << " , " << a[7][7] << " , " << a[7][8] << " } , { "<< a[8][0] << " , " << a[8][1] << " , " << a[8][2] << " , " << a[8][3] << " , " << a[8][4] << " , " << a[8][5] << " , " << a[8][6] << " , " << a[8][7] << " , " << a[8][8] << " } }; " << endl;
-    math::ludcmp<double>(a,indx,d);
-    math::lubksb<double>(a,indx,b);
-
-    for(int i = 0; i < 9; i++)
-    {
-        matrix[i] = b[i];
-    }
-    return matrix;
-}
-
-double* KisPerspectiveMath::computeMatrixTransfoToPerspective(const KisPoint& topLeft, const KisPoint& topRight, const KisPoint& bottomLeft, const KisPoint& bottomRight, const TQRect& r)
-{
-    return KisPerspectiveMath::computeMatrixTransfo(topLeft, topRight, bottomLeft, bottomRight, r.topLeft(), r.topRight(), r.bottomLeft(), r.bottomRight());
-}
-
-double* KisPerspectiveMath::computeMatrixTransfoFromPerspective(const TQRect& r, const KisPoint& topLeft, const KisPoint& topRight, const KisPoint& bottomLeft, const KisPoint& bottomRight)
-{
-    return KisPerspectiveMath::computeMatrixTransfo(r.topLeft(), r.topRight(), r.bottomLeft(), r.bottomRight(), topLeft, topRight, bottomLeft, bottomRight);
-}
-
diff --git a/krita/core/kis_perspective_math.h b/krita/core/kis_perspective_math.h
deleted file mode 100644
index b7cbdb795..000000000
--- a/krita/core/kis_perspective_math.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * This file is part of Krita
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; version 2 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef _KIS_PERSPECTVE_MATH_H_
-#define _KIS_PERSPECTVE_MATH_H_
-
-#include "kis_point.h"
-
-class TQRect;
-
-class KisPerspectiveMath {
-    private:
-        KisPerspectiveMath() { }
-    public:
-        static double* computeMatrixTransfo( const KisPoint& topLeft1, const KisPoint& topRight1, const KisPoint& bottomLeft1, const KisPoint& bottomRight1 , const KisPoint& topLeft2, const KisPoint& topRight2, const KisPoint& bottomLeft2, const KisPoint& bottomRight2);
-      static double* computeMatrixTransfoToPerspective(const KisPoint& topLeft, const KisPoint& topRight, const KisPoint& bottomLeft, const KisPoint& bottomRight, const TQRect& r);
-      static double* computeMatrixTransfoFromPerspective(const TQRect& r, const KisPoint& topLeft, const KisPoint& topRight, const KisPoint& bottomLeft, const KisPoint& bottomRight);
-      struct LineEquation {
-            // y = a*x + b
-      double a, b;
-    };
-    /// TODO: get ride of this in 2.0
-    inline static KisPoint matProd(const double (&m)[3][3], const KisPoint& p)
-    {
-        double s = ( p.x() * m[2][0] + p.y() * m[2][1] + 1.0);
-        s = (s == 0.) ? 1. : 1./s;
-        return KisPoint( (p.x() * m[0][0] + p.y() * m[0][1] + m[0][2] ) * s,
-                         (p.x() * m[1][0] + p.y() * m[1][1] + m[1][2] ) * s );
-    }
-    static inline LineEquation computeLineEquation(const KisPoint* p1, const KisPoint* p2)
-    {
-      LineEquation eq;
-      double x1 = p1->x(); double x2 = p2->x();
-      if( fabs(x1 - x2) < 0.000001 )
-      {
-        x1 += 0.0001; // Introduce a small perturbation
-      }
-      eq.a = (p2->y() - p1->y()) / (double)( x2 - x1 );
-      eq.b = -eq.a * x1 + p1->y();
-      return eq;
-    }
-    static inline KisPoint computeIntersection(const LineEquation& d1, const LineEquation& d2)
-    {
-      double a1 = d1.a; double a2 = d2.a;
-      if( fabs(a1 - a2) < 0.000001 )
-      {
-        a1 += 0.0001; // Introduce a small perturbation
-      }
-      double x = (d1.b - d2.b) / (a2 - a1);
-      return KisPoint(x, a2 * x + d2.b);
-    }
-};
-
-#endif
diff --git a/krita/core/kis_perspectivetransform_worker.cpp b/krita/core/kis_perspectivetransform_worker.cpp
deleted file mode 100644
index 4dccceb00..000000000
--- a/krita/core/kis_perspectivetransform_worker.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * This file is part of Krita
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; version 2 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "kis_perspectivetransform_worker.h"
-
-#include "kis_iterators_pixel.h"
-#include "kis_paint_device.h"
-#include "kis_perspective_math.h"
-#include "kis_progress_display_interface.h"
-#include "kis_random_sub_accessor.h"
-#include "kis_selection.h"
-
-KisPerspectiveTransformWorker::KisPerspectiveTransformWorker(KisPaintDeviceSP dev, const KisPoint& topLeft, const KisPoint& topRight, const KisPoint& bottomLeft, const KisPoint& bottomRight, KisProgressDisplayInterface *progress)
-    : KisProgressSubject(), m_dev(dev), m_cancelRequested(false), m_progress(progress)
-
-{
-    TQRect m_r;
-    if(m_dev->hasSelection())
-        m_r = m_dev->selection()->selectedExactRect();
-    else
-        m_r = m_dev->exactBounds();
-/*    if(m_dev->hasSelection())
-        m_dev->selection()->clear();*/
-    kdDebug() << "r = " << m_r << endl;
-
-    double* b = KisPerspectiveMath::computeMatrixTransfoToPerspective(topLeft, topRight, bottomLeft, bottomRight, m_r);
-    for(int i = 0; i < 3; i++)
-    {
-        for(int j = 0; j < 3; j++)
-        {
-            kdDebug() << "sol[" << 3*i+j << "]=" << b[3*i+j] << endl;
-            m_matrix[i][j] = b[3*i+j];
-        }
-    }
-    delete b;
-}
-
-
-KisPerspectiveTransformWorker::~KisPerspectiveTransformWorker()
-{
-}
-
-double norm2(const KisPoint& p)
-{
-    return sqrt(p.x() * p.x() + p.y() * p.y() );
-}
-
-void KisPerspectiveTransformWorker::run()
-{
-    kdDebug() << "r = " << m_r << endl;
-
-    //TODO: understand why my caching of the rect didn't work...
-    if(m_dev->hasSelection())
-    {
-        m_r = m_dev->selection()->selectedExactRect();
-    }
-    else
-    {
-        m_r = m_dev->exactBounds();
-    }
-//    KisColorSpace * cs = m_dev->colorSpace();
-
-    kdDebug() << "r = " << m_r << endl;
-    KisRectIteratorPixel dstIt = m_dev->createRectIterator(m_r.x(), m_r.y(), m_r.width(), m_r.height(), true);
-    KisPaintDeviceSP srcdev = new KisPaintDevice(*m_dev.data());
-    { // ensure that the random sub accessor is deleted first
-        KisRandomSubAccessorPixel srcAcc = srcdev->createRandomSubAccessor();
-        // Initialise progress
-        if(m_progress)
-            m_progress->setSubject(this, true, true);
-        m_lastProgressReport = 0;
-        m_progressStep = 0;
-        m_progressTotalSteps = m_r.width() * m_r.height();
-        //Action
-        while(!dstIt.isDone())
-        {
-            if(dstIt.isSelected())
-            {
-                KisPoint p;
-                double sf = ( dstIt.x() * m_matrix[2][0] + dstIt.y() * m_matrix[2][1] + 1.0);
-                sf = (sf == 0.) ? 1. : 1./sf;
-                p.setX( ( dstIt.x() * m_matrix[0][0] + dstIt.y() * m_matrix[0][1] + m_matrix[0][2] ) * sf );
-                p.setY( ( dstIt.x() * m_matrix[1][0] + dstIt.y() * m_matrix[1][1] + m_matrix[1][2] ) * sf );
-
-                srcAcc.moveTo( p );
-                srcAcc.sampledOldRawData( dstIt.rawData() );
-
-                // TODO: Should set alpha = alpha*(1-selectedness)
-//                 cs->setAlpha( dstIt.rawData(), 255, 1);
-            } else {
-//                 cs->setAlpha( dstIt.rawData(), 0, 1);
-            }
-            m_progressStep ++;
-            if(m_lastProgressReport != (m_progressStep * 100) / m_progressTotalSteps)
-            {
-                m_lastProgressReport = (m_progressStep * 100) / m_progressTotalSteps;
-                emit notifyProgress(m_lastProgressReport);
-            }
-            if (m_cancelRequested) {
-                break;
-            }
-            ++dstIt;
-        }
-    }
-}
diff --git a/krita/core/kis_perspectivetransform_worker.h b/krita/core/kis_perspectivetransform_worker.h
deleted file mode 100644
index 0f5f78335..000000000
--- a/krita/core/kis_perspectivetransform_worker.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * This file is part of Krita
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; version 2 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_PERSPECTIVETRANSFORM_WORKER_H
-#define KIS_PERSPECTIVETRANSFORM_WORKER_H
-
-#include "kis_types.h"
-#include "kis_progress_subject.h"
-
-class KisPoint;
-class KisProgressDisplayInterface;
-
-class KisPerspectiveTransformWorker : public KisProgressSubject
-{
-    public:
-        KisPerspectiveTransformWorker(KisPaintDeviceSP dev, const KisPoint& topLeft, const KisPoint& topRight, const KisPoint& bottomLeft, const KisPoint& bottomRight, KisProgressDisplayInterface *progress);
-    
-        ~KisPerspectiveTransformWorker();
-        
-        void run();
-        bool isCanceled() { return m_cancelRequested; };
-    private:
-        virtual void cancel() { m_cancelRequested = true; }
-    private:
-        TQ_INT32 m_progressTotalSteps;
-        TQ_INT32 m_lastProgressReport;
-        TQ_INT32 m_progressStep;
-        double m_xcenter, m_ycenter, m_p, m_q;
-        KisPaintDeviceSP m_dev;
-        bool m_cancelRequested;
-        KisProgressDisplayInterface *m_progress;
-        double m_matrix[3][3];
-        TQRect m_r;
-};
-
-#endif
diff --git a/krita/core/kis_point.h b/krita/core/kis_point.h
deleted file mode 100644
index 3c576cb55..000000000
--- a/krita/core/kis_point.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- *  Copyright (c) 2004 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_POINT_H_
-#define KIS_POINT_H_
-
-#include <tqvaluevector.h>
-#include <KoPoint.h>
-
-/**
- * A double-based point class that can return it's coordinates
- * approximated to integers.
- */
-class KisPoint : public KoPoint {
-    typedef KoPoint super;
-public:
-    KisPoint() {}
-    KisPoint(double x, double y) : super(x, y) {}
-    KisPoint(const TQPoint& pt) : super(pt) {}
-    KisPoint(const KoPoint& pt) : super(pt) {}
-
-    int floorX() const { return static_cast<int>(x()); }
-    int floorY() const { return static_cast<int>(y()); }
-    int roundX() const { return tqRound(x()); }
-    int roundY() const { return tqRound(y()); }
-
-    TQPoint floorTQPoint() const { return TQPoint(static_cast<int>(x()), static_cast<int>(y())); }
-    TQPoint roundTQPoint() const { return TQPoint(tqRound(x()), tqRound(y())); }
-};
-
-typedef TQValueVector<KisPoint> vKisPoint;
-
-#endif // KIS_POINT_H_
-
diff --git a/krita/core/kis_random_accessor.cpp b/krita/core/kis_random_accessor.cpp
deleted file mode 100644
index c2b2bec81..000000000
--- a/krita/core/kis_random_accessor.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * This file is part of the Krita project
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; version 2 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "kis_random_accessor.h"
-
-#include "kis_tiled_random_accessor.h"
-
-KisRandomAccessor::KisRandomAccessor(KisTiledDataManager *ktm, TQ_INT32 x, TQ_INT32 y, TQ_INT32 offsetx, TQ_INT32 offsety, bool writable) : m_offsetx(offsetx), m_offsety(offsety)
-{
-    m_accessor = new KisTiledRandomAccessor(ktm, x, y, writable);
-}
-
-KisRandomAccessor::KisRandomAccessor(const KisRandomAccessor& rhs) {
-    m_accessor = rhs.m_accessor;
-}
-
-KisRandomAccessor::~KisRandomAccessor()
-{
-    
-}
-
-void KisRandomAccessor::moveTo(TQ_INT32 x, TQ_INT32 y)
-{
-    m_accessor->moveTo(x - m_offsetx, y  - m_offsety);
-}
-
-TQ_UINT8* KisRandomAccessor::rawData() const
-{
-    return m_accessor->rawData();
-}
-
-const TQ_UINT8* KisRandomAccessor::oldRawData() const
-{
-    return m_accessor->oldRawData();
-}
-
-KisRandomAccessorPixel::KisRandomAccessorPixel(KisTiledDataManager *ktm, KisTiledDataManager *ktmselect, TQ_INT32 x, TQ_INT32 y, TQ_INT32 offsetx, TQ_INT32 offsety, bool writable) :
-        KisRandomAccessor( ktm, x, y, offsetx, offsety, writable),
-        KisRandomAccessorPixelTrait( this, (ktmselect) ? new KisRandomAccessor(ktm, x, y, offsetx, offsety, false) : 0 )
-{
-    
-}
diff --git a/krita/core/kis_random_accessor.h b/krita/core/kis_random_accessor.h
deleted file mode 100644
index 118fc4fcc..000000000
--- a/krita/core/kis_random_accessor.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * This file is part of the Krita project
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; version 2 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_RANDOM_ACCESSOR_H
-#define KIS_RANDOM_ACCESSOR_H
-
-#include <ksharedptr.h>
-
-#include <kis_global.h>
-
-class KisTiledRandomAccessor;
-typedef KSharedPtr<KisTiledRandomAccessor> KisTiledRandomAccessorSP;
-
-class KisTiledDataManager;
-
-class KisRandomAccessor{
-    public:
-        KisRandomAccessor(KisTiledDataManager *ktm, TQ_INT32 x, TQ_INT32 y, TQ_INT32 offsetx, TQ_INT32 offsety, bool writable);
-        KisRandomAccessor(const KisRandomAccessor& rhs);
-        ~KisRandomAccessor();
-    public:
-        /// Move to a given x,y position, fetch tiles and data
-        void moveTo(TQ_INT32 x, TQ_INT32 y);
-        TQ_UINT8* rawData() const;
-        const TQ_UINT8* oldRawData() const;
-    private:
-        KisTiledRandomAccessorSP m_accessor;
-        TQ_INT32 m_offsetx, m_offsety;
-};
-
-class KisRandomAccessorPixelTrait {
-    public:
-        inline KisRandomAccessorPixelTrait(KisRandomAccessor* underlyingAccessor, KisRandomAccessor* selectionAccessor) : m_underlyingAccessor(underlyingAccessor), m_selectionAccessor(selectionAccessor)
-        {
-        }
-	~KisRandomAccessorPixelTrait() {
-		if(m_selectionAccessor)
-			delete m_selectionAccessor;
-	}
-        inline bool isSelected() const
-        {
-            return (m_selectionAccessor) ? *(m_selectionAccessor->rawData()) > SELECTION_THRESHOLD : true;
-        };
-        inline TQ_UINT8 operator[](int index) const
-        { return m_underlyingAccessor->rawData()[index]; };
-        /**
-         * Returns the degree of selectedness of the pixel.
-         */
-        inline TQ_UINT8 selectedness() const
-        {
-            return (m_selectionAccessor) ? *(m_selectionAccessor->rawData()) : MAX_SELECTED;
-        };
-
-        /**
-         * Returns the selectiontqmask from the current point; this is guaranteed
-         * to have the same number of consecutive pixels that the iterator has
-         * at a given point. It return a 0 if there is no selection.
-         */
-        inline TQ_UINT8 * selectionMask() const
-        {
-            return ( m_selectionAccessor ) ? m_selectionAccessor->rawData() : 0;
-        }
-
-        inline void moveTo(TQ_INT32 x, TQ_INT32 y) { if(m_selectionAccessor) m_selectionAccessor->moveTo(x,y); }
-        
-    private:
-        KisRandomAccessor* m_underlyingAccessor;
-        KisRandomAccessor* m_selectionAccessor;
-};
-
-class KisRandomAccessorPixel : public KisRandomAccessor, public KisRandomAccessorPixelTrait {
-    public:
-        KisRandomAccessorPixel(KisTiledDataManager *ktm, KisTiledDataManager *ktmselect, TQ_INT32 x, TQ_INT32 y, TQ_INT32 offsetx, TQ_INT32 offsety, bool writable);
-    public:
-        inline void moveTo(TQ_INT32 x, TQ_INT32 y) { KisRandomAccessor::moveTo(x,y); KisRandomAccessorPixelTrait::moveTo(x,y); }
-};
-
-
-#endif
diff --git a/krita/core/kis_random_sub_accessor.cpp b/krita/core/kis_random_sub_accessor.cpp
deleted file mode 100644
index a1ce8aa45..000000000
--- a/krita/core/kis_random_sub_accessor.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- *  This file is part of the KDE project
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; version 2 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "kis_random_sub_accessor.h"
-
-#include "kis_paint_device.h"
-
-KisRandomSubAccessorPixel::KisRandomSubAccessorPixel(KisPaintDeviceSP device) :
-    m_device(device), m_currentPoint( 0, 0 ), m_randomAccessor(device->createRandomAccessor(0,0, false))
-{
-}
-
-
-KisRandomSubAccessorPixel::~KisRandomSubAccessorPixel()
-{
-}
-
-
-void KisRandomSubAccessorPixel::sampledOldRawData(TQ_UINT8* dst)
-{
-    const TQ_UINT8* pixels[4];
-    TQ_UINT8 weights[4];
-    int x = (int)floor(m_currentPoint.x());
-    int y = (int)floor(m_currentPoint.y());
-    double hsub = m_currentPoint.x() - x;
-    if(hsub < 0.0 ) hsub = 1.0 + hsub;
-    double vsub = m_currentPoint.y() - y;
-    if(vsub < 0.0 ) vsub = 1.0 + vsub;
-    weights[0] = (int)tqRound( ( 1.0 - hsub) * ( 1.0 - vsub) * 255 );
-    m_randomAccessor.moveTo(x, y);
-    pixels[0] = m_randomAccessor.oldRawData();
-    weights[1] = (int)tqRound( ( 1.0 - vsub) * hsub * 255 );
-    m_randomAccessor.moveTo(x+1, y);
-    pixels[1] = m_randomAccessor.oldRawData();
-    weights[2] = (int)tqRound( vsub * ( 1.0 - hsub) * 255 );
-    m_randomAccessor.moveTo(x, y+1);
-    pixels[2] = m_randomAccessor.oldRawData();
-    weights[3] = (int)tqRound( hsub * vsub * 255 );
-    m_randomAccessor.moveTo(x+1, y+1);
-    pixels[3] = m_randomAccessor.oldRawData();
-    m_device->colorSpace()->mixColors(pixels, weights, 4, dst);
-}
-
-void KisRandomSubAccessorPixel::sampledRawData(TQ_UINT8* dst)
-{
-    const TQ_UINT8* pixels[4];
-    TQ_UINT8 weights[4];
-    int x = (int)floor(m_currentPoint.x());
-    int y = (int)floor(m_currentPoint.y());
-    double hsub = m_currentPoint.x() - x;
-    if(hsub < 0.0 ) hsub = 1.0 + hsub;
-    double vsub = m_currentPoint.y() - y;
-    if(vsub < 0.0 ) vsub = 1.0 + vsub;
-    weights[0] = (int)tqRound( ( 1.0 - hsub) * ( 1.0 - vsub) * 255 );
-    m_randomAccessor.moveTo(x, y);
-    pixels[0] = m_randomAccessor.rawData();
-    weights[1] = (int)tqRound( ( 1.0 - vsub) * hsub * 255 );
-    m_randomAccessor.moveTo(x+1, y);
-    pixels[1] = m_randomAccessor.rawData();
-    weights[2] = (int)tqRound( vsub * ( 1.0 - hsub) * 255 );
-    m_randomAccessor.moveTo(x, y+1);
-    pixels[2] = m_randomAccessor.rawData();
-    weights[3] = (int)tqRound( hsub * vsub * 255 );
-    m_randomAccessor.moveTo(x+1, y+1);
-    pixels[3] = m_randomAccessor.rawData();
-    m_device->colorSpace()->mixColors(pixels, weights, 4, dst);
-}
-
diff --git a/krita/core/kis_random_sub_accessor.h b/krita/core/kis_random_sub_accessor.h
deleted file mode 100644
index 6ceb83458..000000000
--- a/krita/core/kis_random_sub_accessor.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  This file is part of the KDE project
- *
- *  Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; version 2 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifndef KIS_CURVE_ITERATOR_H
-#define KIS_CURVE_ITERATOR_H
-
-#include "kis_point.h"
-#include "kis_random_accessor.h"
-#include "kis_types.h"
-
-class KisRandomSubAccessorPixel{
-    public:
-        KisRandomSubAccessorPixel(KisPaintDeviceSP device);
-        ~KisRandomSubAccessorPixel();
-        /**
-         * Copy the sampled old value to destination
-         */
-        void sampledOldRawData(TQ_UINT8* dst);
-        void sampledRawData(TQ_UINT8* dst);
-        inline void moveTo(double x, double y) { m_currentPoint.setX(x); m_currentPoint.setY(y); }
-        inline void moveTo(const KisPoint& p ) { m_currentPoint = p; }
-    private:
-        KisPaintDeviceSP m_device;
-        int m_position, m_end;
-        KisPoint m_currentPoint;
-        KisRandomAccessorPixel m_randomAccessor;
-};
-
-#endif
diff --git a/krita/core/kis_rect.cc b/krita/core/kis_rect.cc
deleted file mode 100644
index 175a07a97..000000000
--- a/krita/core/kis_rect.cc
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- *  Copyright (c) 2004 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <cmath>
-#include <cfloat>
-
-#include "kis_rect.h"
-
-TQRect KisRect::qRect() const
-{
-    return TQRect(static_cast<int>(floor(left())), static_cast<int>(floor(top())), static_cast<int>(ceil(right()) - floor(left())), static_cast<int>(ceil(bottom()) - floor(top())));
-}
-
diff --git a/krita/core/kis_rect.h b/krita/core/kis_rect.h
deleted file mode 100644
index 30a729c81..000000000
--- a/krita/core/kis_rect.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *  Copyright (c) 2004 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_RECT_H_
-#define KIS_RECT_H_
-
-#include <tqrect.h>
-#include <KoRect.h>
-#include "kis_point.h"
-
-/**
- * A double-based rect class that can return a TQRect that encloses the KisRect.
- */
-class KisRect : public KoRect
-{
-    typedef KoRect super;
-public:
-    KisRect() {}
-    KisRect(double x, double y, double w, double h) : super(x, y, w, h) {}
-    KisRect(const KisPoint& topLeft, const KisPoint& bottomRight) : super(topLeft, bottomRight) {}
-    KisRect(const TQRect& qr) : super(qr.x(), qr.y(), qr.width(), qr.height()) {}
-    KisRect(const KoRect& r) : super(r) {}
-
-    /**
-     * Return the TQRect that encloses this KisRect.
-     */
-    TQRect qRect() const;
-
-private:
-    // Use qRect() which uses ceil() and floor() to return a rectangle 
-    // 'enclosing' the rectangle, whereas toTQRect rounds the points.
-    TQRect toTQRect() const;
-};
-
-#endif // KIS_RECT_H_
-
diff --git a/krita/core/kis_resource.cc b/krita/core/kis_resource.cc
deleted file mode 100644
index a856cbb12..000000000
--- a/krita/core/kis_resource.cc
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- *  Copyright (c) 2003 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include "kis_resource.h"
-#include "kis_global.h"
-
-KisResource::KisResource(const TQString& filename)
-{
-    m_filename = filename;
-    m_valid = false;
-}
-
-KisResource::~KisResource()
-{
-}
-
-TQString KisResource::filename() const
-{
-    return m_filename;
-}
-
-void KisResource::setFilename(const TQString& filename)
-{
-    m_filename = filename;
-}
-
-TQString KisResource::name() const
-{
-    return m_name;
-}
-
-void KisResource::setName(const TQString& name)
-{
-    m_name = name;
-}
-
-bool KisResource::valid() const
-{
-    return m_valid;
-}
-
-void KisResource::setValid(bool valid)
-{
-    m_valid = valid;
-}
-
-#include "kis_resource.moc"
-
diff --git a/krita/core/kis_resource.h b/krita/core/kis_resource.h
deleted file mode 100644
index 6510be2c3..000000000
--- a/krita/core/kis_resource.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- *  Copyright (c) 2003 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_RESOURCE_H_
-#define KIS_RESOURCE_H_
-
-#include <tqimage.h>
-#include <tqobject.h>
-#include <tqstring.h>
-
-
-/**
- * The KisResource class provides a representation of Krita image resources.  This
- * includes, but not limited to, brushes and patterns.
- *
- * This replaces the KisKrayon facility that used to be present in Krayon.
- */
-class KisResource : public TQObject {
-    typedef TQObject super;
-    Q_OBJECT
-  TQ_OBJECT
-
-public:
-
-    /**
-     * Creates a new KisResource object using @p filename.  No file is opened
-     * in the constructor, you have to call load.
-     *
-     * @param filename the file name to save and load from.
-     */
-    KisResource(const TQString& filename);
-    virtual ~KisResource();
-
-public:
-    /**
-     * Load this resource.
-     */
-    virtual bool load() = 0;
-
-    /**
-     * Save this resource asynchronously.  The signal saveComplete is emitted when
-     * the resource has been saved.
-     */
-    virtual bool save() = 0;
-
-    /**
-     * Returns a TQImage representing this resource.  This image could be null.
-     */
-    virtual TQImage img() = 0;
-
-public:
-    TQString filename() const;
-    void setFilename(const TQString& filename);
-    TQString name() const;
-    void setName(const TQString& name);
-    bool valid() const;
-    void setValid(bool valid);
-
-private:
-    KisResource(const KisResource&);
-    KisResource& operator=(const KisResource&);
-
-private:
-    TQString m_name;
-    TQString m_filename;
-    bool m_valid;
-};
-
-#endif // KIS_RESOURCE_H_
-
diff --git a/krita/core/kis_rotate_visitor.cc b/krita/core/kis_rotate_visitor.cc
deleted file mode 100644
index 2a8bfd45b..000000000
--- a/krita/core/kis_rotate_visitor.cc
+++ /dev/null
@@ -1,406 +0,0 @@
-/*
- *  Copyright (c) 2004 Michael Thaler <michael.thaler@physik.tu-muenchen.de>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <math.h>
-#include <tqapplication.h>
-#include <tqwmatrix.h>
-#include <tqrect.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include "kis_paint_device.h"
-#include "kis_rotate_visitor.h"
-#include "kis_progress_display_interface.h"
-#include "kis_iterators_pixel.h"
-#include "kis_selection.h"
-#include "kis_painter.h"
-
-void KisRotateVisitor::rotate(double angle, bool rotateAboutImageCentre, KisProgressDisplayInterface *progress)
-{
-    KisPoint centreOfRotation;
-
-    if (rotateAboutImageCentre) {
-        centreOfRotation = KisPoint(m_dev->image()->width() / 2.0,  m_dev->image()->height() / 2.0);
-    } else {
-        TQRect r = m_dev->exactBounds();
-        centreOfRotation = KisPoint(r.x() + (r.width() / 2.0), r.y() + (r.height() / 2.0));
-    }
-
-    m_progress = progress;
-
-    KisPaintDeviceSP rotated = rotate(m_dev, angle, centreOfRotation);
-
-    if (!m_dev->hasSelection()) {
-        // Clear everything
-        m_dev->clear();
-    } else {
-        // Clear selected pixels
-        m_dev->clearSelection();
-    }
-
-    KisPainter p(m_dev);
-    TQRect r = rotated->extent();
-
-    // OVER ipv COPY
-    p.bitBlt(r.x(), r.y(), COMPOSITE_OVER, rotated, OPACITY_OPAQUE, r.x(), r.y(), r.width(), r.height());
-    p.end();
-}
-
-void KisRotateVisitor::shear(double angleX, double angleY, KisProgressDisplayInterface *progress)
-{
-    const double pi=3.1415926535897932385;
-    double thetaX = angleX * pi / 180;
-    double shearX = tan(thetaX);
-    double thetaY = angleY * pi / 180;
-    double shearY = tan(thetaY);
-
-    TQRect r = m_dev->exactBounds();
-
-    const int xShearSteps = r.height();
-    const int yShearSteps = r.width();
-
-    m_progress = progress;
-    initProgress(xShearSteps + yShearSteps);
-
-
-    KisPaintDeviceSP sheared;
-
-    if (m_dev->hasSelection()) {
-        sheared = new KisPaintDevice(m_dev->colorSpace(), "sheared");
-        KisPainter p1(sheared);
-        p1.bltSelection(r.x(), r.y(), COMPOSITE_OVER, m_dev, OPACITY_OPAQUE, r.x(), r.y(), r.width(), r.height());
-        p1.end();
-         sheared = xShear(sheared, shearX);
-    }
-    else {
-        sheared = xShear(m_dev, shearX);
-    }
-
-     sheared = yShear(sheared, shearY);
-
-     if (!m_dev->hasSelection()) {
-        m_dev->clear();
-     } else {
-         // Clear selected pixels
-         m_dev->clearSelection();
-     }
-
-    KisPainter p2(m_dev);
-    r = sheared->extent();
-
-    p2.bitBlt(r.x(), r.y(), COMPOSITE_OVER, sheared, OPACITY_OPAQUE, r.x(), r.y(), r.width(), r.height());
-    p2.end();
-
-    setProgressDone();
-}
-
-KisPaintDeviceSP KisRotateVisitor::rotateRight90(KisPaintDeviceSP src)
-{
-    KisPaintDeviceSP dst = new KisPaintDevice(src->colorSpace(), "rotateright90");
-    dst->setX(src->getX());
-    dst->setY(src->getY());
-
-    TQ_INT32 pixelSize = src->pixelSize();
-    TQRect r = src->exactBounds();
-    TQ_INT32 x = 0;
-
-    for (TQ_INT32 y = r.bottom(); y >= r.top(); --y) {
-        KisHLineIteratorPixel hit = src->createHLineIterator(r.x(), y, r.width(), false);
-        KisVLineIterator vit = dst->createVLineIterator(-y, r.x(), r.width(), true);
-
-            while (!hit.isDone()) {
-            if (hit.isSelected())  {
-                memcpy(vit.rawData(), hit.rawData(), pixelSize);
-            }
-            ++hit;
-            ++vit;
-        }
-        ++x;
-        incrementProgress();
-    }
-
-    return dst;
-}
-
-KisPaintDeviceSP KisRotateVisitor::rotateLeft90(KisPaintDeviceSP src)
-{
-    KisPaintDeviceSP dst = new KisPaintDevice(src->colorSpace(), "rotateleft90");
-
-    TQ_INT32 pixelSize = src->pixelSize();
-    TQRect r = src->exactBounds();
-    TQ_INT32 x = 0;
-
-    for (TQ_INT32 y = r.top(); y <= r.bottom(); ++y) {
-        // Read the horizontal line from back to front, write onto the vertical column
-        KisHLineIteratorPixel hit = src->createHLineIterator(r.x(), y, r.width(), false);
-        KisVLineIterator vit = dst->createVLineIterator(y, -r.x() - r.width(), r.width(), true);
-
-        hit += r.width() - 1;
-        while (!vit.isDone()) {
-            if (hit.isSelected()) {
-                memcpy(vit.rawData(), hit.rawData(), pixelSize);
-            }
-            --hit;
-            ++vit;
-        }
-        ++x;
-        incrementProgress();
-    }
-
-    return dst;
-}
-
-KisPaintDeviceSP KisRotateVisitor::rotate180(KisPaintDeviceSP src)
-{
-    KisPaintDeviceSP dst = new KisPaintDevice(src->colorSpace(), "rotate180");
-    dst->setX(src->getX());
-    dst->setY(src->getY());
-
-    TQ_INT32 pixelSize = src->pixelSize();
-    TQRect r = src->exactBounds();
-
-    for (TQ_INT32 y = r.top(); y <= r.bottom(); ++y) {
-        KisHLineIteratorPixel srcIt = src->createHLineIterator(r.x(), y, r.width(), false);
-        KisHLineIterator dstIt = dst->createHLineIterator( -r.x() - r.width(), -y, r.width(), true);
-
-        srcIt += r.width() - 1;
-        while (!dstIt.isDone()) {
-            if (srcIt.isSelected())  {
-                memcpy(dstIt.rawData(), srcIt.rawData(), pixelSize);
-            }
-            --srcIt;
-            ++dstIt;
-        }
-        incrementProgress();
-    }
-
-    return dst;
-}
-
-KisPaintDeviceSP KisRotateVisitor::rotate(KisPaintDeviceSP src, double angle, KisPoint centreOfRotation)
-{
-    const double pi = 3.1415926535897932385;
-
-    if (angle >= 315 && angle < 360) {
-        angle = angle - 360;
-    } else if (angle > -360 && angle < -45) {
-        angle = angle + 360;
-    }
-
-    TQRect r = src->exactBounds();
-
-    const int xShearSteps = r.height();
-    const int yShearSteps = r.width();
-    const int fixedRotateSteps = r.height();
-
-    KisPaintDeviceSP dst;
-
-    if (angle == 90) {
-        initProgress(fixedRotateSteps);
-        dst = rotateRight90(src);
-    } else if (angle == 180) {
-        initProgress(fixedRotateSteps);
-        dst = rotate180(src);
-    } else if (angle == 270) {
-        initProgress(fixedRotateSteps);
-        dst = rotateLeft90(src);
-    } else {
-        double theta;
-
-        if (angle >= -45 && angle < 45) {
-
-            theta = angle * pi / 180;
-            dst = src;
-            initProgress(yShearSteps + (2 * xShearSteps));
-        }
-        else if (angle >= 45 && angle < 135) {
-
-            initProgress(fixedRotateSteps + yShearSteps + (2 * xShearSteps));
-            dst = rotateRight90(src);
-            theta = (angle - 90) * pi / 180;
-        }
-        else if (angle >= 135 && angle < 225) {
-
-            initProgress(fixedRotateSteps + yShearSteps + (2 * xShearSteps));
-            dst = rotate180(src);
-            theta = (angle - 180) * pi / 180;
-
-        } else {
-
-            initProgress(fixedRotateSteps + yShearSteps + (2 * xShearSteps));
-            dst = rotateLeft90(src);
-            theta = (angle - 270) * pi / 180;
-        }
-
-        double shearX = tan(theta / 2);
-        double shearY = sin(theta);
-
-        //first perform a shear along the x-axis by tan(theta/2)
-        dst = xShear(dst, shearX);
-        //next perform a shear along the y-axis by sin(theta)
-        dst = yShear(dst, shearY);
-        //again perform a shear along the x-axis by tan(theta/2)
-        dst = xShear(dst, shearX);
-    }
-
-    double sinAngle = sin(angle * pi / 180);
-    double cosAngle = cos(angle * pi / 180);
-
-    KisPoint rotatedCentreOfRotation(
-                                centreOfRotation.x() * cosAngle - centreOfRotation.y() * sinAngle,
-                                centreOfRotation.x() * sinAngle + centreOfRotation.y() * cosAngle);
-
-    dst->setX((TQ_INT32)(dst->getX() + centreOfRotation.x() - rotatedCentreOfRotation.x()));
-    dst->setY((TQ_INT32)(dst->getY() + centreOfRotation.y() - rotatedCentreOfRotation.y()));
-
-    setProgressDone();
-
-    return dst;
-}
-
-KisPaintDeviceSP KisRotateVisitor::xShear(KisPaintDeviceSP src, double shearX)
-{
-    KisPaintDeviceSP dst = new KisPaintDevice(src->colorSpace(), "xShear");
-    dst->setX(src->getX());
-    dst->setY(src->getY());
-
-    TQRect r = src->exactBounds();
-
-        double displacement;
-        TQ_INT32 displacementInt;
-        double weight;
-
-    for (TQ_INT32 y = r.top(); y <= r.bottom(); y++) {
-
-        //calculate displacement
-        displacement = -y * shearX;
-
-        displacementInt = (TQ_INT32)(floor(displacement));
-        weight = displacement - displacementInt;
-
-        TQ_UINT8 pixelWeights[2];
-
-        pixelWeights[0] = static_cast<TQ_UINT8>(weight * 255 + 0.5);
-        pixelWeights[1] = 255 - pixelWeights[0];
-
-        KisHLineIteratorPixel srcIt = src->createHLineIterator(r.x(), y, r.width() + 1, false);
-        KisHLineIteratorPixel leftSrcIt = src->createHLineIterator(r.x() - 1, y, r.width() + 1, false);
-        KisHLineIteratorPixel dstIt = dst->createHLineIterator(r.x() + displacementInt, y, r.width() + 1, true);
-
-        while (!srcIt.isDone()) {
-
-            const TQ_UINT8 *pixelPtrs[2];
-
-            pixelPtrs[0] = leftSrcIt.rawData();
-            pixelPtrs[1] = srcIt.rawData();
-
-            src->colorSpace()->mixColors(pixelPtrs, pixelWeights, 2, dstIt.rawData());
-
-            ++srcIt;
-            ++leftSrcIt;
-            ++dstIt;
-        }
-        incrementProgress();
-    }
-
-    return dst;
-}
-
-KisPaintDeviceSP KisRotateVisitor::yShear(KisPaintDeviceSP src, double shearY)
-{
-    KisPaintDeviceSP dst = new KisPaintDevice(src->colorSpace(), "yShear");
-    dst->setX(src->getX());
-    dst->setY(src->getY());
-
-    TQRect r = src->exactBounds();
-
-        double displacement;
-        TQ_INT32 displacementInt;
-        double weight;
-
-    for (TQ_INT32 x = r.left(); x <= r.right(); x++) {
-
-        //calculate displacement
-        displacement = x * shearY;
-
-        displacementInt = (TQ_INT32)(floor(displacement));
-        weight = displacement - displacementInt;
-
-        TQ_UINT8 pixelWeights[2];
-
-        pixelWeights[0] = static_cast<TQ_UINT8>(weight * 255 + 0.5);
-        pixelWeights[1] = 255 - pixelWeights[0];
-
-        KisVLineIteratorPixel srcIt = src->createVLineIterator(x, r.y(), r.height() + 1, false);
-        KisVLineIteratorPixel leftSrcIt = src->createVLineIterator(x, r.y() - 1, r.height() + 1, false);
-        KisVLineIteratorPixel dstIt = dst->createVLineIterator(x, r.y() + displacementInt, r.height() + 1, true);
-
-        while (!srcIt.isDone()) {
-
-            const TQ_UINT8 *pixelPtrs[2];
-
-            pixelPtrs[0] = leftSrcIt.rawData();
-            pixelPtrs[1] = srcIt.rawData();
-
-            src->colorSpace()->mixColors(pixelPtrs, pixelWeights, 2, dstIt.rawData());
-
-            ++srcIt;
-            ++leftSrcIt;
-            ++dstIt;
-        }
-        incrementProgress();
-    }
-
-        return dst;
-}
-
-void KisRotateVisitor::initProgress(TQ_INT32 totalSteps)
-{
-    if (!m_progress) return;
-
-    m_progressTotalSteps = totalSteps;
-    m_progressStep = 0;
-    m_lastProgressPerCent = 0;
-
-
-    m_progress->setSubject(this, true, false);
-    emit notifyProgress(0);
-
-}
-
-void KisRotateVisitor::incrementProgress()
-{
-    if (!m_progress) return;
-
-    m_progressStep++;
-    TQ_INT32 progressPerCent = (m_progressStep * 100) / m_progressTotalSteps;
-
-    if (progressPerCent != m_lastProgressPerCent) {
-        m_lastProgressPerCent = progressPerCent;
-        emit notifyProgress(progressPerCent);
-    }
-}
-
-void KisRotateVisitor::setProgressDone()
-{
-    if (!m_progress) return;
-
-    emit notifyProgressDone();
-}
-
-
diff --git a/krita/core/kis_rotate_visitor.h b/krita/core/kis_rotate_visitor.h
deleted file mode 100644
index ea23f84f8..000000000
--- a/krita/core/kis_rotate_visitor.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- *  copyright (c) 2004 Michael Thaler <michael.thaler@physik.tu-muenchen.de>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-#ifndef KIS_ROTATE_VISITOR_H_
-#define KIS_ROTATE_VISITOR_H_
-
-#include "kis_types.h"
-#include "kis_progress_subject.h"
-
-class TQRect;
-class KisPaintDevice;
-class KisProgressDisplayInterface;
-
-class KisRotateVisitor : public KisProgressSubject {
-        typedef KisProgressSubject super;  
-        
-        /* Structs for the image rescaling routine */
-    
-public:
-        KisRotateVisitor();
-        ~KisRotateVisitor();
-
-        void visitKisPaintDevice(KisPaintDevice* dev);
-        
-        void rotate(double angle, bool rotateAboutImageCentre, KisProgressDisplayInterface *progress);
-        void shear(double angleX, double angleY, KisProgressDisplayInterface *progress);
-
-private:
-        KisPaintDeviceSP m_dev;
-
-    // Implement KisProgressSubject
-    bool m_cancelRequested;
-    virtual void cancel() { m_cancelRequested = true; }
-
-    void initProgress(TQ_INT32 totalSteps);
-    void incrementProgress();
-    void setProgressDone();
-
-    KisProgressDisplayInterface *m_progress;
-    TQ_INT32 m_progressStep;
-    TQ_INT32 m_progressTotalSteps;
-    TQ_INT32 m_lastProgressPerCent;
-
-    KisPaintDeviceSP rotateRight90(KisPaintDeviceSP src);
-    KisPaintDeviceSP rotateLeft90(KisPaintDeviceSP src);
-    KisPaintDeviceSP rotate180(KisPaintDeviceSP src);
-    KisPaintDeviceSP rotate(KisPaintDeviceSP src, double angle, KisPoint centreOfRotation);
-
-    KisPaintDeviceSP xShear(KisPaintDeviceSP src, double shearX);
-    KisPaintDeviceSP yShear(KisPaintDeviceSP src, double shearY);
-
-};
-
-inline KisRotateVisitor::KisRotateVisitor()
-{
-}
-
-inline KisRotateVisitor::~KisRotateVisitor()
-{
-}
-
-inline void KisRotateVisitor::visitKisPaintDevice(KisPaintDevice* dev)
-{
-        m_dev = dev;
-}
-#endif // KIS_ROTATE_VISITOR_H_
diff --git a/krita/core/kis_scale_visitor.cc b/krita/core/kis_scale_visitor.cc
deleted file mode 100644
index 25ad47c42..000000000
--- a/krita/core/kis_scale_visitor.cc
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- *  Copyright (c) 2004, 2005 Michael Thaler <michael.thaler@physik.tu-muenchen.de>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <tqdatetime.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-
-#include "kis_paint_device.h"
-#include "kis_scale_visitor.h"
-#include "kis_filter_strategy.h"
-
-
-void KisScaleWorker::run()
-{
-    double fwidth = m_filterStrategy->support();
-
-    TQRect rect = m_dev -> exactBounds();
-    TQ_INT32 width = rect.width();
-    TQ_INT32 height =  rect.height();
-    m_pixelSize=m_dev -> pixelSize();
-
-    // compute size of target image
-    if ( m_sx == 1.0F && m_sy == 1.0F ) {
-        return;
-    }
-    TQ_INT32 targetW = TQABS( tqRound( m_sx * width ) );
-    TQ_INT32 targetH = TQABS( tqRound( m_sy * height ) );
-
-    TQ_UINT8* newData = new TQ_UINT8[targetW * targetH * m_pixelSize ];
-    Q_CHECK_PTR(newData);
-
-    double* weight = new double[ m_pixelSize ];    /* filter calculation variables */
-
-    TQ_UINT8* pel = new TQ_UINT8[ m_pixelSize ];
-    Q_CHECK_PTR(pel);
-
-    TQ_UINT8 *pel2 = new TQ_UINT8[ m_pixelSize ];
-    Q_CHECK_PTR(pel2);
-
-    bool* bPelDelta = new bool[ m_pixelSize ];
-    ContribList    *contribX;
-    ContribList    contribY;
-    const TQ_INT32 BLACK_PIXEL=0;
-    const TQ_INT32 WHITE_PIXEL=255;
-
-
-    // create intermediate row to hold vertical dst row zoom
-    TQ_UINT8 * tmp = new TQ_UINT8[ width * m_pixelSize ];
-    Q_CHECK_PTR(tmp);
-
-    //create array of pointers to intermediate rows
-    TQ_UINT8 **tmpRows = new TQ_UINT8*[ height ];
-
-    //create array of pointers to intermediate rows that are actually used simultaneously and allocate memory for the rows
-    TQ_UINT8 **tmpRowsMem;
-    if(m_sy < 1.0)
-    {
-        tmpRowsMem = new TQ_UINT8*[ (int)(fwidth / m_sy * 2 + 1) ];
-        for(int i = 0; i < (int)(fwidth / m_sy * 2 + 1); i++)
-        {
-             tmpRowsMem[i] = new TQ_UINT8[ width * m_pixelSize ];
-             Q_CHECK_PTR(tmpRowsMem[i]);
-        }
-    }
-    else
-    {
-        tmpRowsMem = new TQ_UINT8*[ (int)(fwidth * 2 + 1) ];
-        for(int i = 0; i < (int)(fwidth * 2 + 1); i++)
-        {
-            tmpRowsMem[i] = new TQ_UINT8[ width * m_pixelSize ];
-            Q_CHECK_PTR(tmpRowsMem[i]);
-        }
-    }
-
-    // build x weights
-    contribX = new ContribList[ targetW ];
-    for(int x = 0; x < targetW; x++)
-    {
-        calcContrib(&contribX[x], m_sx, fwidth, width, m_filterStrategy, x);
-    }
-
-    TQTime starttime = TQTime::currentTime ();
-
-    for(int y = 0; y < targetH; y++)
-    {
-        // build y weights
-        calcContrib(&contribY, m_sy, fwidth, height, m_filterStrategy, y);
-
-        //copy pixel data to temporary arrays
-        for(int srcpos = 0; srcpos < contribY.n; srcpos++)
-        {
-            if (!(contribY.p[srcpos].m_pixel < 0 || contribY.p[srcpos].m_pixel >= height))
-            {
-                tmpRows[contribY.p[srcpos].m_pixel] = new TQ_UINT8[ width * m_pixelSize ];
-                //tmpRows[ contribY.p[srcpos].m_pixel ] = tmpRowsMem[ srcpos ];
-                m_dev ->readBytes(tmpRows[contribY.p[srcpos].m_pixel], 0, contribY.p[srcpos].m_pixel, width, 1);
-            }
-        }
-
-        /* Apply vert filter to make dst row in tmp. */
-        for(int x = 0; x < width; x++)
-        {
-            for(int channel = 0; channel < m_pixelSize; channel++){
-                weight[channel] = 0.0;
-                bPelDelta[channel] = FALSE;
-                pel[channel]=tmpRows[contribY.p[0].m_pixel][ x * m_pixelSize + channel ];
-            }
-            for(int srcpos = 0; srcpos < contribY.n; srcpos++)
-            {
-                if (!(contribY.p[srcpos].m_pixel < 0 || contribY.p[srcpos].m_pixel >= height)){
-                    for(int channel = 0; channel < m_pixelSize; channel++)
-                    {
-                        pel2[channel]=tmpRows[contribY.p[srcpos].m_pixel][ x * m_pixelSize + channel ];
-                        if(pel2[channel] != pel[channel]) bPelDelta[channel] = TRUE;
-                            weight[channel] += pel2[channel] * contribY.p[srcpos].m_weight;
-                    }
-                }
-            }
-
-            for(int channel = 0; channel < m_pixelSize; channel++){
-                weight[channel] = bPelDelta[channel] ? static_cast<int>(tqRound(weight[channel])) : pel[channel];
-                        tmp[ x * m_pixelSize + channel ] = static_cast<TQ_UINT8>(CLAMP(weight[channel], BLACK_PIXEL, WHITE_PIXEL));
-            }
-        } /* next row in temp column */
-        delete[] contribY.p;
-
-        for(int x = 0; x < targetW; x++)
-        {
-            for(int channel = 0; channel < m_pixelSize; channel++){
-                weight[channel] = 0.0;
-                bPelDelta[channel] = FALSE;
-                pel[channel] = tmp[ contribX[x].p[0].m_pixel * m_pixelSize + channel ];
-            }
-            for(int srcpos = 0; srcpos < contribX[x].n; srcpos++)
-            {
-                for(int channel = 0; channel < m_pixelSize; channel++){
-                    pel2[channel] = tmp[ contribX[x].p[srcpos].m_pixel * m_pixelSize + channel ];
-                    if(pel2[channel] != pel[channel])
-                        bPelDelta[channel] = TRUE;
-                    weight[channel] += pel2[channel] * contribX[x].p[srcpos].m_weight;
-                }
-            }
-            for(int channel = 0; channel < m_pixelSize; channel++){
-                weight[channel] = bPelDelta[channel] ? static_cast<int>(tqRound(weight[channel])) : pel[channel];
-                int currentPos = (y*targetW+x) * m_pixelSize; // try to be at least a little efficient
-                if (weight[channel]<0)
-                    newData[currentPos + channel] = 0;
-                else if (weight[channel]>255)
-                    newData[currentPos + channel] = 255;
-                else
-                    newData[currentPos + channel] = (uchar)weight[channel];
-             }
-        } /* next dst row */
-    } /* next dst column */
-
-    // XXX: I'm thinking that we should be able to cancel earlier, in the look.
-    if(!isCanceled()){
-        m_dev -> writeBytes( newData, 0, 0, targetW, targetH);
-        m_dev -> crop(0, 0, targetW, targetH);
-    }
-
-    /* free the memory allocated for horizontal filter weights */
-    for(int x = 0; x < targetW; x++)
-        delete[] contribX[x].p;
-    delete[] contribX;
-
-    delete[] newData;
-    delete[] pel;
-    delete[] pel2;
-    delete[] tmp;
-    delete[] weight;
-    delete[] bPelDelta;
-
-    if(m_sy < 1.0)
-    {
-        for(int i = 0; i < (int)(fwidth / m_sy * 2 + 1); i++)
-        {
-            delete[] tmpRowsMem[i];
-        }
-    }
-    else
-    {
-        for(int i = 0; i < (int)(fwidth * 2 + 1); i++)
-        {
-            delete[] tmpRowsMem[i];
-        }
-    }
-
-    TQTime stoptime = TQTime::currentTime ();
-    return;
-}
-
-int KisScaleWorker::calcContrib(ContribList *contrib, double scale, double fwidth, int srcwidth, KisFilterStrategy* filterStrategy, TQ_INT32 i)
-{
-        //ContribList* contribX: receiver of contrib info
-        //double m_sx: horizontal zooming scale
-        //double fwidth: Filter sampling width
-        //int dstwidth: Target bitmap width
-        //int srcwidth: Source bitmap width
-        //double (*filterf)(double): Filter proc
-        //int i: Pixel column in source bitmap being processed
-
-        double width;
-        double fscale;
-        double center, begin, end;
-        double weight;
-        TQ_INT32 k, n;
-
-        if(scale < 1.0)
-        {
-                //Shrinking image
-                width = fwidth / scale;
-                fscale = 1.0 / scale;
-
-                contrib->n = 0;
-                contrib->p = new Contrib[ (int)(width * 2 + 1) ];
-
-                center = (double) i / scale;
-                begin = ceil(center - width);
-                end = floor(center + width);
-                for(int srcpos = (int)begin; srcpos <= end; ++srcpos)
-                {
-                        weight = center - (double) srcpos;
-                        weight = filterStrategy->valueAt(weight / fscale) / fscale;
-                        if(srcpos < 0)
-                                n = -srcpos;
-                        else if(srcpos >= srcwidth)
-                                n = (srcwidth - srcpos) + srcwidth - 1;
-                        else
-                                n = srcpos;
-
-                        k = contrib->n++;
-                        contrib->p[k].m_pixel = n;
-                        contrib->p[k].m_weight = weight;
-                }
-        }
-        else
-        {
-                // Expanding image
-                contrib->n = 0;
-                contrib->p = new Contrib[ (int)(fwidth * 2 + 1) ];
-
-                center = (double) i / scale;
-                begin = ceil(center - fwidth);
-                end = floor(center + fwidth);
-
-                for(int srcpos = (int)begin; srcpos <= end; ++srcpos)
-                {
-                        weight = center - (double) srcpos;
-                        weight = filterStrategy->valueAt(weight);
-                        if(srcpos < 0) {
-                                n = -srcpos;
-                        } else if(srcpos >= srcwidth) {
-                                n = (srcwidth - srcpos) + srcwidth - 1;
-                        } else {
-                                n = srcpos;
-                        }
-                        k = contrib->n++;
-                        contrib->p[k].m_pixel = n;
-                        contrib->p[k].m_weight = weight;
-                }
-        }
-        return 0;
-} /* calc_x_contrib */
diff --git a/krita/core/kis_scale_visitor.h b/krita/core/kis_scale_visitor.h
deleted file mode 100644
index afe358ad0..000000000
--- a/krita/core/kis_scale_visitor.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- *  copyright (c) 2004, 2005 Michael Thaler <michael.thaler@physik.tu-muenchen.de>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-
-#ifndef KIS_SCALE_VISITOR_H_
-#define KIS_SCALE_VISITOR_H_
-
-#include "klocale.h"
-
-#include "kis_progress_subject.h"
-#include "kis_progress_display_interface.h"
-#include "kis_thread.h"
-#include "kis_layer_visitor.h"
-#include "kis_types.h"
-#include "kis_layer.h"
-#include "kis_group_layer.h"
-#include "kis_paint_layer.h"
-#include "kis_adjustment_layer.h"
-#include "kis_transaction.h"
-#include "kis_undo_adapter.h"
-#include "kis_selection.h"
-
-class KisProgressDisplayInterface;
-class KisFilterStrategy;
-
-class KisScaleWorker : public KisThread {
-
-    /* Structs for the image rescaling routine */
-    class Contrib {
-    public:
-        TQ_INT32 m_pixel;
-        double m_weight;
-    };
-
-    class ContribList {
-    public:
-        TQ_INT32  n;  //number of contributors
-        Contrib *p; //pointer to list of contributions
-    };
-
-public:
-
-    KisScaleWorker(KisPaintDevice * dev, double sx, double sy,
-                   KisFilterStrategy *filterStrategy)
-        : KisThread()
-        , m_dev(dev)
-        , m_sx(sx)
-        , m_sy(sy)
-        , m_filterStrategy(filterStrategy) {};
-
-    virtual ~KisScaleWorker() {};
-
-    void run();
-
-private:
-    TQ_INT32 m_pixelSize;
-    KisPaintDevice * m_dev;
-    double m_sx, m_sy;
-    KisFilterStrategy * m_filterStrategy;
-
-
-    /**
-     * calc_x_contrib()
-     *
-     * Calculates the filter weights for a single target column.
-     * contribX->p must be freed afterwards.
-     *
-     * Returns -1 if error, 0 otherwise.
-     */
-    int calcContrib(ContribList *contribX, double cale, double fwidth, int srcwidth, KisFilterStrategy *filterStrategy, TQ_INT32 i);
-
-    ContribList * contrib;  //array of contribution lists
-
-
-};
-
-
-class KisScaleVisitor : public KisLayerVisitor, KisProgressSubject {
-
-public:
-
-    KisScaleVisitor(KisImageSP img,
-                    double sx, 
-                    double sy, 
-                    KisProgressDisplayInterface *progress, 
-                    KisFilterStrategy *filterStrategy) 
-        : KisLayerVisitor()
-        , m_img(img)
-        , m_sx(sx)
-        , m_sy(sy)
-        , m_progress(progress)
-        , m_filterStrategy(filterStrategy)
-    {
-        if ( progress )
-            progress -> setSubject(this, true, true);
-        emit notifyProgressStage(i18n("Scaling..."),0);
-    }
-
-    virtual ~KisScaleVisitor()
-    {
-        // Wait for all threads to finish
-        KisThread * t;
-        int threadcount = m_scalethreads.count();
-        int i = 0;
-        for ( t = m_scalethreads.first(); t; t = m_scalethreads.next()) {
-            //progress info
-            if (t) t->wait();
-            emit notifyProgress((100 / threadcount) * i);
-            ++i;
-
-        }
-        emit notifyProgressDone();
-        // Delete all threads
-        m_scalethreads.setAutoDelete(true);
-        m_scalethreads.clear();
-    }
-
-    bool visit(KisPaintLayer *layer) 
-    {
-        // XXX: If all is well, then the image's undoadapter will have started a macro for us
-        //      This will break in a more multi-threaded environment
-        if (m_img->undoAdapter() && m_img->undoAdapter()->undo()) {
-            KisTransaction * cmd = new KisTransaction("", layer->paintDevice());
-            m_img->undoAdapter()->addCommand(cmd);
-        }
-
-        KisScaleWorker * scaleThread = new KisScaleWorker(layer->paintDevice(),
-                                                     m_sx, m_sy, m_filterStrategy);
-        m_scalethreads.append(scaleThread);
-        scaleThread->start();
-        //scaleThread->run();
-        layer->setDirty();
-        return true;
-    }
-
-    bool visit(KisGroupLayer *layer)
-    {
-        //KisScaleVisitor visitor (m_img, m_sx, m_sy, m_progress, m_filterStrategy);
-
-        // XXX: Maybe faster to scale the projection and do something clever to avoid 
-	//      recompositing everything?
-	layer->resetProjection(); 
-       
-
-        KisLayerSP child = layer->firstChild();
-        while (child) {
-            child->accept(*this);
-            child = child->nextSibling();
-        }
-
-        return true;
-    }
-
-    bool visit(KisPartLayer */*layer*/)
-    {
-        return true;
-    }
-
-    virtual bool visit(KisAdjustmentLayer* layer)
-    {
-        KisThread * scaleThread = new KisScaleWorker(layer->selection().data(), m_sx, m_sy, m_filterStrategy);
-        m_scalethreads.append(scaleThread);
-        scaleThread->start();
-        layer->resetCache();
-        layer->setDirty();
-        return true;
-    }
-    
-    
-    // Implement KisProgressSubject
-    virtual void cancel() 
-    {
-        KisThread * t;
-        for ( t = m_scalethreads.first(); t; t = m_scalethreads.next()) {
-            t->cancel();
-        }      
-    }
-    
-
-private:
-
-    TQPtrList<KisThread> m_scalethreads;
-    KisImageSP m_img;
-    double m_sx;
-    double m_sy;
-    KisProgressDisplayInterface * m_progress;
-    KisFilterStrategy * m_filterStrategy;
-};
-
-#endif // KIS_SCALE_VISITOR_H_
diff --git a/krita/core/kis_selected_transaction.cc b/krita/core/kis_selected_transaction.cc
deleted file mode 100644
index 44eec6976..000000000
--- a/krita/core/kis_selected_transaction.cc
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include "kis_types.h"
-#include "kis_global.h"
-#include "kis_selected_transaction.h"
-#include "kis_selection.h"
-
-KisSelectedTransaction::KisSelectedTransaction(const TQString& name, KisPaintDeviceSP device) :
-    KisTransaction(name, device),
-    m_device(device),
-    m_hadSelection(device->hasSelection())
-{
-    m_selTransaction = new KisTransaction(name, device->selection().data());
-    if(! m_hadSelection) {
-        m_device->deselect(); // let us not be the cause of select
-    }
-}
-
-KisSelectedTransaction::~KisSelectedTransaction()
-{
-    delete m_selTransaction;
-}
-
-void KisSelectedTransaction::execute()
-{
-    super::execute();
-    m_selTransaction->execute();
-    if(m_redoHasSelection)
-        m_device->selection();
-    else
-        m_device->deselect();
-    m_device->emitSelectionChanged();
-}
-
-void KisSelectedTransaction::unexecute()
-{
-    m_redoHasSelection = m_device->hasSelection();
-
-    super::unexecute();
-    m_selTransaction->unexecute();
-    if(m_hadSelection)
-        m_device->selection();
-    else
-        m_device->deselect();
-    m_device->emitSelectionChanged();
-}
-
-void KisSelectedTransaction::unexecuteNoUpdate()
-{
-    m_redoHasSelection = m_device->hasSelection();
-
-    super::unexecuteNoUpdate();
-    m_selTransaction->unexecuteNoUpdate();
-    if(m_hadSelection)
-        m_device->selection();
-    else
-        m_device->deselect();
-}
diff --git a/krita/core/kis_selected_transaction.h b/krita/core/kis_selected_transaction.h
deleted file mode 100644
index c366f336a..000000000
--- a/krita/core/kis_selected_transaction.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_SELECTED_TRANSACTION_H_
-#define KIS_SELECTED_TRANSACTION_H_
-
-#include <map>
-#include <tqglobal.h>
-#include <tqstring.h>
-
-#include "kis_transaction.h"
-
-#include "koffice_export.h"
-
-class KRITACORE_EXPORT KisSelectedTransaction : public KisTransaction {
-    typedef KisTransaction super;
-public:
-    KisSelectedTransaction(const TQString& name, KisPaintDeviceSP device);
-    virtual ~KisSelectedTransaction();
-
-public:
-    virtual void execute();
-    virtual void unexecute();
-    virtual void unexecuteNoUpdate();
-
-public:
-
-private:
-    KisPaintDeviceSP m_device;
-    KisTransaction *m_selTransaction;
-    bool m_hadSelection;
-    bool m_redoHasSelection;
-};
-
-#endif // KIS_SELECTED_TRANSACTION_H_
diff --git a/krita/core/kis_selection.cc b/krita/core/kis_selection.cc
deleted file mode 100644
index 0150ecf2a..000000000
--- a/krita/core/kis_selection.cc
+++ /dev/null
@@ -1,582 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-
-#include <tqimage.h>
-
-#include <kdebug.h>
-#include <klocale.h>
-#include <tqcolor.h>
-
-#include "kis_layer.h"
-#include "kis_debug_areas.h"
-#include "kis_types.h"
-#include "kis_colorspace_factory_registry.h"
-#include "kis_fill_painter.h"
-#include "kis_iterators_pixel.h"
-#include "kis_integer_maths.h"
-#include "kis_image.h"
-#include "kis_datamanager.h"
-#include "kis_fill_painter.h"
-#include "kis_selection.h"
-
-KisSelection::KisSelection(KisPaintDeviceSP dev)
-    : super(dev->tqparentLayer()
-            , KisMetaRegistry::instance()->csRegistry()->getAlpha8()
-            , (TQString("selection for ") + dev->name()).latin1())
-    , m_parentPaintDevice(dev)
-    , m_doCacheExactRect(false)
-    , m_dirty(false)
-{
-    Q_ASSERT(dev);
-}
-
-KisSelection::KisSelection()
-    : super(KisMetaRegistry::instance()->csRegistry()->getAlpha8(), "anonymous selection")
-    , m_parentPaintDevice(0), m_dirty(false)
-{
-}
-
-KisSelection::KisSelection(const KisSelection& rhs)
-    : super(rhs), m_parentPaintDevice(rhs.m_parentPaintDevice), m_doCacheExactRect(rhs.m_doCacheExactRect),
-    m_cachedExactRect(rhs.m_cachedExactRect), m_dirty(rhs.m_dirty)
-{
-}
-
-KisSelection::~KisSelection()
-{
-}
-
-TQ_UINT8 KisSelection::selected(TQ_INT32 x, TQ_INT32 y)
-{
-    KisHLineIteratorPixel iter = createHLineIterator(x, y, 1, false);
-
-    TQ_UINT8 *pix = iter.rawData();
-
-    return *pix;
-}
-
-void KisSelection::setSelected(TQ_INT32 x, TQ_INT32 y, TQ_UINT8 s)
-{
-    KisHLineIteratorPixel iter = createHLineIterator(x, y, 1, true);
-
-    TQ_UINT8 *pix = iter.rawData();
-
-    *pix = s;
-}
-
-TQImage KisSelection::tqmaskImage()
-{
-    // If part of a KisAdjustmentLayer, there may be no tqparent device.
-    TQImage img;
-    TQRect bounds;
-    if (m_parentPaintDevice) {
-
-        bounds = m_parentPaintDevice->exactBounds();
-        bounds = bounds.intersect( m_parentPaintDevice->image()->bounds() );
-        img = TQImage(bounds.width(), bounds.height(), 32);
-    }
-    else {
-        bounds = TQRect( 0, 0, image()->width(), image()->height());
-        img = TQImage(bounds.width(), bounds.height(), 32);
-    }
-
-    KisHLineIteratorPixel it = createHLineIterator(bounds.x(), bounds.y(), bounds.width(), false);
-    for (int y2 = bounds.y(); y2 < bounds.height() - bounds.y(); ++y2) {
-            int x2 = 0;
-            while (!it.isDone()) {
-                    TQ_UINT8 s = MAX_SELECTED - *(it.rawData());
-                    TQ_INT32 c = tqRgb(s, s, s);
-                    img.setPixel(x2, y2, c);
-                    ++x2;
-                    ++it;
-            }
-            it.nextRow();
-    }
-    return img;
-}
-void KisSelection::select(TQRect r)
-{
-    KisFillPainter painter(this);
-    KisColorSpace * cs = KisMetaRegistry::instance()->csRegistry()->getRGB8();
-    painter.fillRect(r, KisColor(TQt::white, cs), MAX_SELECTED);
-    TQ_INT32 x, y, w, h;
-    extent(x, y, w, h);
-}
-
-void KisSelection::clear(TQRect r)
-{
-    KisFillPainter painter(this);
-    KisColorSpace * cs = KisMetaRegistry::instance()->csRegistry()->getRGB8();
-    painter.fillRect(r, KisColor(TQt::white, cs), MIN_SELECTED);
-}
-
-void KisSelection::clear()
-{
-    TQ_UINT8 defPixel = MIN_SELECTED;
-    m_datamanager->setDefaultPixel(&defPixel);
-    m_datamanager->clear();
-}
-
-void KisSelection::invert()
-{
-    TQ_INT32 x,y,w,h;
-
-    extent(x, y, w, h);
-    KisRectIterator it = createRectIterator(x, y, w, h, true);
-    while ( ! it.isDone() )
-    {
-        // CBR this is wrong only first byte is inverted
-        // BSAR: But we have always only one byte in this color model :-).
-        *(it.rawData()) = MAX_SELECTED - *(it.rawData());
-        ++it;
-    }
-    TQ_UINT8 defPixel = MAX_SELECTED - *(m_datamanager->defaultPixel());
-    m_datamanager->setDefaultPixel(&defPixel);
-}
-
-bool KisSelection::isTotallyUnselected(TQRect r)
-{
-    if(*(m_datamanager->defaultPixel()) != MIN_SELECTED)
-        return false;
-    TQRect sr = selectedExactRect();
-    return ! r.intersects(sr);
-}
-
-bool KisSelection::isProbablyTotallyUnselected(TQRect r)
-{
-    if(*(m_datamanager->defaultPixel()) != MIN_SELECTED)
-        return false;
-    TQRect sr = selectedRect();
-    return ! r.intersects(sr);
-}
-
-
-TQRect KisSelection::selectedRect() const
-{
-    if(*(m_datamanager->defaultPixel()) == MIN_SELECTED || !m_parentPaintDevice)
-        return extent();
-    else
-        return extent().unite(m_parentPaintDevice->extent());
-}
-
-TQRect KisSelection::selectedExactRect() const
-{
-    if(m_doCacheExactRect)
-        return m_cachedExactRect;
-    else if(*(m_datamanager->defaultPixel()) == MIN_SELECTED || !m_parentPaintDevice)
-        return exactBounds();
-    else
-        return exactBounds().unite(m_parentPaintDevice->exactBounds());
-}
-
-void KisSelection::stopCachingExactRect()
-{
-    kdDebug() << "stop caching the exact rect" << endl;
-    m_doCacheExactRect = false;
-}
-
-
-void KisSelection::startCachingExactRect()
-{
-    kdDebug() << "start caching the exact rect" << endl;
-    if(*(m_datamanager->defaultPixel()) == MIN_SELECTED || !m_parentPaintDevice)
-        m_cachedExactRect = exactBounds();
-    else
-        m_cachedExactRect = exactBounds().unite(m_parentPaintDevice->exactBounds());
-    m_doCacheExactRect = true;
-}
-
-void KisSelection::paintUniformSelectionRegion(TQImage img, const TQRect& imageRect, const TQRegion& uniformRegion)
-{
-    Q_ASSERT(img.size() == imageRect.size());
-    Q_ASSERT(imageRect.tqcontains(uniformRegion.boundingRect()));
-
-    if (img.isNull() || img.size() != imageRect.size() || !imageRect.tqcontains(uniformRegion.boundingRect())) {
-        return;
-    }
-
-    if (*m_datamanager->defaultPixel() == MIN_SELECTED) {
-
-        TQRegion region = uniformRegion & TQRegion(imageRect);
-
-        if (!region.isEmpty()) {
-            TQMemArray<TQRect> rects = region.rects();
-
-            for (unsigned int i = 0; i < rects.count(); i++) {
-                TQRect r = rects[i];
-
-                for (TQ_INT32 y = 0; y < r.height(); ++y) {
-
-                    TQRgb *imagePixel = reinterpret_cast<TQRgb *>(img.scanLine(r.y() - imageRect.y() + y));
-                    imagePixel += r.x() - imageRect.x();
-
-                    TQ_INT32 numPixels = r.width();
-
-                    while (numPixels > 0) {
-
-                        TQRgb srcPixel = *imagePixel;
-                        TQ_UINT8 srcGrey = (tqRed(srcPixel) + tqGreen(srcPixel) + tqBlue(srcPixel)) / 9;
-                        TQ_UINT8 srcAlpha = tqAlpha(srcPixel);
-
-                        srcGrey = UINT8_MULT(srcGrey, srcAlpha);
-                        TQ_UINT8 dstAlpha = TQMAX(srcAlpha, 192);
-
-                        TQRgb dstPixel = tqRgba(128 + srcGrey, 128 + srcGrey, 165 + srcGrey, dstAlpha);
-                        *imagePixel = dstPixel;
-
-                        ++imagePixel;
-                        --numPixels;
-                    }
-                }
-            }
-        }
-    }
-}
-
-void KisSelection::paintSelection(TQImage img, TQ_INT32 imageRectX, TQ_INT32 imageRectY, TQ_INT32 imageRectWidth, TQ_INT32 imageRectHeight)
-{
-    Q_ASSERT(img.size() == TQSize(imageRectWidth, imageRectHeight));
-
-    if (img.isNull() || img.size() != TQSize(imageRectWidth, imageRectHeight)) {
-        return;
-    }
-
-    TQRect imageRect(imageRectX, imageRectY, imageRectWidth, imageRectHeight);
-    TQRect selectionExtent = extent();
-
-    selectionExtent.setLeft(selectionExtent.left() - 1);
-    selectionExtent.setTop(selectionExtent.top() - 1);
-    selectionExtent.setWidth(selectionExtent.width() + 2);
-    selectionExtent.setHeight(selectionExtent.height() + 2);
-
-    TQRegion uniformRegion = TQRegion(imageRect);
-    uniformRegion -= TQRegion(selectionExtent);
-
-    if (!uniformRegion.isEmpty()) {
-        paintUniformSelectionRegion(img, imageRect, uniformRegion);
-    }
-
-    TQRect nonuniformRect = imageRect & selectionExtent;
-
-    if (!nonuniformRect.isEmpty()) {
-
-        const TQ_INT32 imageRectOffsetX = nonuniformRect.x() - imageRectX;
-        const TQ_INT32 imageRectOffsetY = nonuniformRect.y() - imageRectY;
-
-        imageRectX = nonuniformRect.x();
-        imageRectY = nonuniformRect.y();
-        imageRectWidth = nonuniformRect.width();
-        imageRectHeight = nonuniformRect.height();
-
-        const TQ_INT32 NUM_SELECTION_ROWS = 3;
-
-        TQ_UINT8 *selectionRow[NUM_SELECTION_ROWS];
-
-        TQ_INT32 aboveRowIndex = 0;
-        TQ_INT32 centreRowIndex = 1;
-        TQ_INT32 belowRowIndex = 2;
-
-        selectionRow[aboveRowIndex] = new TQ_UINT8[imageRectWidth + 2];
-        selectionRow[centreRowIndex] = new TQ_UINT8[imageRectWidth + 2];
-        selectionRow[belowRowIndex] = new TQ_UINT8[imageRectWidth + 2];
-
-        readBytes(selectionRow[centreRowIndex], imageRectX - 1, imageRectY - 1, imageRectWidth + 2, 1);
-        readBytes(selectionRow[belowRowIndex], imageRectX - 1, imageRectY, imageRectWidth + 2, 1);
-
-        for (TQ_INT32 y = 0; y < imageRectHeight; ++y) {
-
-            TQ_INT32 oldAboveRowIndex = aboveRowIndex;
-            aboveRowIndex = centreRowIndex;
-            centreRowIndex = belowRowIndex;
-            belowRowIndex = oldAboveRowIndex;
-
-            readBytes(selectionRow[belowRowIndex], imageRectX - 1, imageRectY + y + 1, imageRectWidth + 2, 1);
-
-            const TQ_UINT8 *aboveRow = selectionRow[aboveRowIndex] + 1;
-            const TQ_UINT8 *centreRow = selectionRow[centreRowIndex] + 1;
-            const TQ_UINT8 *belowRow = selectionRow[belowRowIndex] + 1;
-
-            TQRgb *imagePixel = reinterpret_cast<TQRgb *>(img.scanLine(imageRectOffsetY + y));
-            imagePixel += imageRectOffsetX;
-
-            for (TQ_INT32 x = 0; x < imageRectWidth; ++x) {
-
-                TQ_UINT8 centre = *centreRow;
-
-                if (centre != MAX_SELECTED) {
-
-                    // this is where we come if the pixels should be blue or bluish
-
-                    TQRgb srcPixel = *imagePixel;
-                    TQ_UINT8 srcGrey = (tqRed(srcPixel) + tqGreen(srcPixel) + tqBlue(srcPixel)) / 9;
-                    TQ_UINT8 srcAlpha = tqAlpha(srcPixel);
-
-                    // Colour influence is proportional to alphaPixel.
-                    srcGrey = UINT8_MULT(srcGrey, srcAlpha);
-
-                    TQRgb dstPixel;
-
-                    if (centre == MIN_SELECTED) {
-                        //this is where we come if the pixels should be blue (or red outline)
-
-                        TQ_UINT8 left = *(centreRow - 1);
-                        TQ_UINT8 right = *(centreRow + 1);
-                        TQ_UINT8 above = *aboveRow;
-                        TQ_UINT8 below = *belowRow;
-
-                        // Stop unselected transparent areas from appearing the same
-                        // as selected transparent areas.
-                        TQ_UINT8 dstAlpha = TQMAX(srcAlpha, 192);
-
-                        // now for a simple outline based on 4-connectivity
-                        if (left != MIN_SELECTED || right != MIN_SELECTED || above != MIN_SELECTED || below != MIN_SELECTED) {
-                            dstPixel = tqRgba(255, 0, 0, dstAlpha);
-                        } else {
-                            dstPixel = tqRgba(128 + srcGrey, 128 + srcGrey, 165 + srcGrey, dstAlpha);
-                        }
-                    } else {
-                        dstPixel = tqRgba(UINT8_BLEND(tqRed(srcPixel), srcGrey + 128, centre),
-                                         UINT8_BLEND(tqGreen(srcPixel), srcGrey + 128, centre),
-                                         UINT8_BLEND(tqBlue(srcPixel), srcGrey + 165, centre),
-                                         srcAlpha);
-                    }
-
-                    *imagePixel = dstPixel;
-                }
-
-                aboveRow++;
-                centreRow++;
-                belowRow++;
-                imagePixel++;
-            }
-        }
-
-        delete [] selectionRow[aboveRowIndex];
-        delete [] selectionRow[centreRowIndex];
-        delete [] selectionRow[belowRowIndex];
-    }
-}
-
-void KisSelection::paintSelection(TQImage img, const TQRect& scaledImageRect, const TQSize& scaledImageSize, const TQSize& imageSize)
-{
-    if (img.isNull() || scaledImageRect.isEmpty() || scaledImageSize.isEmpty() || imageSize.isEmpty()) {
-        return;
-    }
-
-    Q_ASSERT(img.size() == scaledImageRect.size());
-
-    if (img.size() != scaledImageRect.size()) {
-        return;
-    }
-
-    TQ_INT32 imageWidth = imageSize.width();
-    TQ_INT32 imageHeight = imageSize.height();
-
-    TQRect selectionExtent = extent();
-
-    selectionExtent.setLeft(selectionExtent.left() - 1);
-    selectionExtent.setTop(selectionExtent.top() - 1);
-    selectionExtent.setWidth(selectionExtent.width() + 2);
-    selectionExtent.setHeight(selectionExtent.height() + 2);
-
-    double xScale = static_cast<double>(scaledImageSize.width()) / imageWidth;
-    double yScale = static_cast<double>(scaledImageSize.height()) / imageHeight;
-
-    TQRect scaledSelectionExtent;
-
-    scaledSelectionExtent.setLeft(static_cast<int>(selectionExtent.left() * xScale));
-    scaledSelectionExtent.setRight(static_cast<int>(ceil((selectionExtent.right() + 1) * xScale)) - 1);
-    scaledSelectionExtent.setTop(static_cast<int>(selectionExtent.top() * yScale));
-    scaledSelectionExtent.setBottom(static_cast<int>(ceil((selectionExtent.bottom() + 1) * yScale)) - 1);
-
-    TQRegion uniformRegion = TQRegion(scaledImageRect);
-    uniformRegion -= TQRegion(scaledSelectionExtent);
-
-    if (!uniformRegion.isEmpty()) {
-        paintUniformSelectionRegion(img, scaledImageRect, uniformRegion);
-    }
-
-    TQRect nonuniformRect = scaledImageRect & scaledSelectionExtent;
-
-    if (!nonuniformRect.isEmpty()) {
-
-        const TQ_INT32 scaledImageRectXOffset = nonuniformRect.x() - scaledImageRect.x();
-        const TQ_INT32 scaledImageRectYOffset = nonuniformRect.y() - scaledImageRect.y();
-
-        const TQ_INT32 scaledImageRectX = nonuniformRect.x();
-        const TQ_INT32 scaledImageRectY = nonuniformRect.y();
-        const TQ_INT32 scaledImageRectWidth = nonuniformRect.width();
-        const TQ_INT32 scaledImageRectHeight = nonuniformRect.height();
-
-        const TQ_INT32 imageRowLeft = static_cast<TQ_INT32>(scaledImageRectX / xScale);
-        const TQ_INT32 imageRowRight = static_cast<TQ_INT32>((ceil((scaledImageRectX + scaledImageRectWidth - 1 + 1) / xScale)) - 1);
-
-        const TQ_INT32 imageRowWidth = imageRowRight - imageRowLeft + 1;
-        const TQ_INT32 imageRowStride = imageRowWidth + 2;
-
-        const TQ_INT32 NUM_SELECTION_ROWS = 3;
-
-        TQ_INT32 aboveRowIndex = 0;
-        TQ_INT32 centreRowIndex = 1;
-        TQ_INT32 belowRowIndex = 2;
-
-        TQ_INT32 aboveRowSrcY = -3;
-        TQ_INT32 centreRowSrcY = -3;
-        TQ_INT32 belowRowSrcY = -3;
-
-        TQ_UINT8 *selectionRows = new TQ_UINT8[imageRowStride * NUM_SELECTION_ROWS];
-        TQ_UINT8 *selectionRow[NUM_SELECTION_ROWS];
-
-        selectionRow[0] = selectionRows + 1;
-        selectionRow[1] = selectionRow[0] + imageRowStride;
-        selectionRow[2] = selectionRow[0] + (2 * imageRowStride);
-
-        for (TQ_INT32 y = 0; y < scaledImageRectHeight; ++y) {
-
-            TQ_INT32 scaledY = scaledImageRectY + y;
-            TQ_INT32 srcY = (scaledY * imageHeight) / scaledImageSize.height();
-
-            TQ_UINT8 *aboveRow;
-            TQ_UINT8 *centreRow;
-            TQ_UINT8 *belowRow;
-
-            if (srcY - 1 == aboveRowSrcY) {
-                aboveRow = selectionRow[aboveRowIndex];
-                centreRow = selectionRow[centreRowIndex];
-                belowRow = selectionRow[belowRowIndex];
-            } else if (srcY - 1 == centreRowSrcY) {
-
-                TQ_INT32 oldAboveRowIndex = aboveRowIndex;
-
-                aboveRowIndex = centreRowIndex;
-                centreRowIndex = belowRowIndex;
-                belowRowIndex = oldAboveRowIndex;
-
-                aboveRow = selectionRow[aboveRowIndex];
-                centreRow = selectionRow[centreRowIndex];
-                belowRow = selectionRow[belowRowIndex];
-
-                readBytes(belowRow - 1, imageRowLeft - 1, srcY + 1, imageRowStride, 1);
-
-            } else if (srcY - 1 == belowRowSrcY) {
-
-                TQ_INT32 oldAboveRowIndex = aboveRowIndex;
-                TQ_INT32 oldCentreRowIndex = centreRowIndex;
-
-                aboveRowIndex = belowRowIndex;
-                centreRowIndex = oldAboveRowIndex;
-                belowRowIndex = oldCentreRowIndex;
-
-                aboveRow = selectionRow[aboveRowIndex];
-                centreRow = selectionRow[centreRowIndex];
-                belowRow = selectionRow[belowRowIndex];
-
-                if (belowRowIndex == centreRowIndex + 1) {
-                    readBytes(centreRow - 1, imageRowLeft - 1, srcY, imageRowStride, 2);
-                } else {
-                    readBytes(centreRow - 1, imageRowLeft - 1, srcY, imageRowStride, 1);
-                    readBytes(belowRow - 1, imageRowLeft - 1, srcY + 1, imageRowStride, 1);
-                }
-
-            } else {
-
-                aboveRowIndex = 0;
-                centreRowIndex = 1;
-                belowRowIndex = 2;
-
-                aboveRow = selectionRow[aboveRowIndex];
-                centreRow = selectionRow[centreRowIndex];
-                belowRow = selectionRow[belowRowIndex];
-
-                readBytes(selectionRows, imageRowLeft - 1, srcY - 1, imageRowStride, NUM_SELECTION_ROWS);
-            }
-
-            aboveRowSrcY = srcY - 1;
-            centreRowSrcY = aboveRowSrcY + 1;
-            belowRowSrcY = centreRowSrcY + 1;
-
-            TQRgb *imagePixel = reinterpret_cast<TQRgb *>(img.scanLine(scaledImageRectYOffset + y));
-            imagePixel += scaledImageRectXOffset;
-
-            for (TQ_INT32 x = 0; x < scaledImageRectWidth; ++x) {
-
-                TQ_INT32 scaledX = scaledImageRectX + x;
-                TQ_INT32 srcX = (scaledX * imageWidth) / scaledImageSize.width();
-
-                TQ_UINT8 centre = *(centreRow + srcX - imageRowLeft);
-
-                if (centre != MAX_SELECTED) {
-
-                    // this is where we come if the pixels should be blue or bluish
-
-                    TQRgb srcPixel = *imagePixel;
-                    TQ_UINT8 srcGrey = (tqRed(srcPixel) + tqGreen(srcPixel) + tqBlue(srcPixel)) / 9;
-                    TQ_UINT8 srcAlpha = tqAlpha(srcPixel);
-
-                    // Colour influence is proportional to alphaPixel.
-                    srcGrey = UINT8_MULT(srcGrey, srcAlpha);
-
-                    TQRgb dstPixel;
-
-                    if (centre == MIN_SELECTED) {
-                        //this is where we come if the pixels should be blue (or red outline)
-
-                        TQ_UINT8 left = *(centreRow + (srcX - imageRowLeft) - 1);
-                        TQ_UINT8 right = *(centreRow + (srcX - imageRowLeft) + 1);
-                        TQ_UINT8 above = *(aboveRow + (srcX - imageRowLeft));
-                        TQ_UINT8 below = *(belowRow + (srcX - imageRowLeft));
-
-                        // Stop unselected transparent areas from appearing the same
-                        // as selected transparent areas.
-                        TQ_UINT8 dstAlpha = TQMAX(srcAlpha, 192);
-
-                        // now for a simple outline based on 4-connectivity
-                        if (left != MIN_SELECTED || right != MIN_SELECTED || above != MIN_SELECTED || below != MIN_SELECTED) {
-                            dstPixel = tqRgba(255, 0, 0, dstAlpha);
-                        } else {
-                            dstPixel = tqRgba(128 + srcGrey, 128 + srcGrey, 165 + srcGrey, dstAlpha);
-                        }
-                    } else {
-                        dstPixel = tqRgba(UINT8_BLEND(tqRed(srcPixel), srcGrey + 128, centre),
-                                         UINT8_BLEND(tqGreen(srcPixel), srcGrey + 128, centre),
-                                         UINT8_BLEND(tqBlue(srcPixel), srcGrey + 165, centre),
-                                         srcAlpha);
-                    }
-
-                    *imagePixel = dstPixel;
-                }
-
-                imagePixel++;
-            }
-        }
-
-        delete [] selectionRows;
-    }
-}
-
-void KisSelection::setDirty(const TQRect& rc)
-{
-    if (m_dirty)
-        super::setDirty(rc);
-}
-
-void KisSelection::setDirty()
-{
-    if (m_dirty)
-        super::setDirty();
-}
diff --git a/krita/core/kis_selection.h b/krita/core/kis_selection.h
deleted file mode 100644
index f41915dae..000000000
--- a/krita/core/kis_selection.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-#ifndef KIS_SELECTION_H_
-#define KIS_SELECTION_H_
-
-#include <tqrect.h>
-
-#include "kis_types.h"
-#include "kis_paint_device.h"
-
-#include <koffice_export.h>
-
-
-enum enumSelectionMode {
-    SELECTION_ADD,
-    SELECTION_SUBTRACT
-};
-
-/**
- * KisSelection contains a byte-map representation of a layer, where
- * the value of a byte signifies whether a corresponding pixel is selected, or not.
- *
- * NOTE: If you need to manually call emitSelectionChanged on the owner paint device
- *       of a selection. KisSelection does not emit any signals by itself because
- *       often you want to combine several actions in to perfom one operation and you
- *       do not want recomposition to happen all the time.
- */
-class KRITACORE_EXPORT KisSelection : public KisPaintDevice {
-
-    typedef KisPaintDevice super;
-
-public:
-    /**
-     * Create a new KisSelection
-    * @param dev the tqparent paint device. The selection will never be bigger than the tqparent
-     *              paint device.
-     */
-    KisSelection(KisPaintDeviceSP dev);
-
-    /**
-     * Create a new KisSelection. This selection will not have a tqparent paint device.
-     */
-    KisSelection();
-    
-    /**
-     * Copy the selection
-     */
-    KisSelection(const KisSelection& rhs);
-    
-    virtual ~KisSelection();
-
-    // Returns selectedness, or 0 if invalid coordinates
-    TQ_UINT8 selected(TQ_INT32 x, TQ_INT32 y);
-
-    void setSelected(TQ_INT32 x, TQ_INT32 y, TQ_UINT8 s);
-
-    TQImage tqmaskImage();
-
-    void select(TQRect r);
-
-    void invert();
-
-    void clear(TQRect r);
-
-    void clear();
-
-    /// Tests if the the rect is totally outside the selection
-    bool isTotallyUnselected(TQRect r);
-
-    /**
-     * Tests if the the rect is totally outside the selection, but uses selectedRect
-     * instead of selectedRect, and this is faster (but might deliver false positives!)
-     *
-     * XXX: This comment makes no sense anymore! (BSAR)
-     */
-    bool isProbablyTotallyUnselected(TQRect r);
-
-    /**
-     * Rough, but fastish way of determining the area
-     * of the tiles used by the selection.
-     */
-    TQRect selectedRect() const;
-
-    /**
-     * Slow, but exact way of determining the rectangle
-     * that encloses the selection
-     */
-    TQRect selectedExactRect() const;
-
-    void paintSelection(TQImage img, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
-    void paintSelection(TQImage img, const TQRect& scaledImageRect, const TQSize& scaledImageSize, const TQSize& imageSize);
-
-    void startCachingExactRect();
-    void stopCachingExactRect();
-
-    // if the tqparent layer is interested in keeping up to date with the dirtyness
-    // of this layer, set to true
-    void setInterestedInDirtyness(bool b) { m_dirty = b; }
-    bool interestedInDirtyness() const { return m_dirty; }
-
-    virtual void setDirty(const TQRect & rc);
-    virtual void setDirty();
-    inline KisPaintDeviceSP tqparentPaintDevice() { return m_parentPaintDevice; }
-private:
-    void paintUniformSelectionRegion(TQImage img, const TQRect& imageRect, const TQRegion& uniformRegion);
-
-private:
-
-    // We don't want these methods to be used on selections:
-    void extent(TQ_INT32 &x, TQ_INT32 &y, TQ_INT32 &w, TQ_INT32 &h) const 
-        { 
-            KisPaintDevice::extent(x,y,w,h);
-        }
-    
-    TQRect extent() const { return KisPaintDevice::extent(); }
-    
-    void exactBounds(TQ_INT32 &x, TQ_INT32 &y, TQ_INT32 &w, TQ_INT32 &h) const 
-        {
-            return KisPaintDevice::exactBounds(x,y,w,h);
-        }   
-
-    TQRect exactBounds() const
-        {
-            return KisPaintDevice::exactBounds();
-        }
-
-    TQRect exactBoundsOldMethod() const 
-        {
-            return KisPaintDevice::exactBoundsOldMethod();
-        }
-
-    TQRect exactBoundsImprovedOldMethod() const
-        {
-            return KisPaintDevice::exactBoundsImprovedOldMethod();
-        }
-
-
-private:
-    KisPaintDeviceSP m_parentPaintDevice;
-    bool m_doCacheExactRect;
-    TQRect m_cachedExactRect;
-    bool m_dirty;
-};
-
-#endif // KIS_SELECTION_H_
diff --git a/krita/core/kis_shear_visitor.h b/krita/core/kis_shear_visitor.h
deleted file mode 100644
index 9a48181eb..000000000
--- a/krita/core/kis_shear_visitor.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- *  Copyright (c) 2006 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_SHEAR_VISITOR_H_
-#define KIS_SHEAR_VISITOR_H_
-
-#include "kis_types.h"
-#include "kis_progress_subject.h"
-#include "kis_layer_visitor.h"
-#include "kis_transform_worker.h"
-#include "kis_filter_strategy.h"
-#include "kis_undo_adapter.h"
-#include "kis_transaction.h"
-#include "kis_rotate_visitor.h"
-
-class KisShearVisitor : public KisLayerVisitor {
-public:
-    KisShearVisitor(double xshear, double yshear, KisProgressDisplayInterface *progress)
-        : m_xshear(xshear), m_yshear(yshear), m_progress(progress), m_strategy(0), m_undo(0) {};
-
-    void setStrategy(KisFilterStrategy* strategy) { m_strategy = strategy; }
-    void setUndoAdapter(KisUndoAdapter* undo) { m_undo = undo; }
-public:
-    virtual bool visit(KisPaintLayer* layer) {
-        KisPaintDeviceSP dev = layer->paintDevice();
-        if(!dev)
-            return true;
-
-        KisFilterStrategy* strategy = 0;
-        if (m_strategy)
-            strategy = m_strategy;
-        else
-            strategy = new KisMitchellFilterStrategy;
-
-        KisTransaction* t = 0;
-
-        if (m_undo && m_undo->undo())
-            t = new KisTransaction("", dev.data());
-
-        //Doesn't do anything, internally transforms x and y shear to 0 each :-///
-        //KisTransformWorker w(dev, 1.0, 1.0, m_xshear, m_yshear, 0, 0, 0, m_progress, strategy);
-        //w.run();
-
-        KisRotateVisitor v;
-        v.visitKisPaintDevice(dev);
-        v.shear(m_xshear, m_yshear, m_progress);
-
-        if (m_undo && m_undo->undo())
-            m_undo->addCommand(t);
-
-        if (!m_strategy)
-            delete strategy;
-
-        layer->setDirty();
-
-        return true;
-    }
-
-    virtual bool visit(KisGroupLayer* layer) {
-        KisLayerSP child = layer->firstChild();
-
-        while(child)
-        {
-            child->accept(*this);
-            child = child->nextSibling();
-        }
-        return true;
-    }
-
-    virtual bool visit(KisPartLayer*) { return true; }
-    virtual bool visit(KisAdjustmentLayer *) { return true; }
-private:
-    double m_xshear;
-    double m_yshear;
-    KisProgressDisplayInterface* m_progress;
-    KisFilterStrategy* m_strategy;
-    KisUndoAdapter* m_undo;
-};
-
-#endif // KIS_SHEAR_VISITOR_H_
diff --git a/krita/core/kis_strategy_move.cc b/krita/core/kis_strategy_move.cc
deleted file mode 100644
index 7391777c2..000000000
--- a/krita/core/kis_strategy_move.cc
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <tqpoint.h>
-#include <tqcolor.h>
-
-#include <kaction.h>
-#include <kcommand.h>
-#include <klocale.h>
-#include <kdebug.h>
-
-#include "kis_canvas_controller.h"
-#include "kis_canvas_subject.h"
-#include "kis_image.h"
-#include "kis_layer.h"
-#include "kis_strategy_move.h"
-#include "kis_undo_adapter.h"
-
-KisStrategyMove::KisStrategyMove()
-{
-    reset(0);
-}
-
-KisStrategyMove::KisStrategyMove(KisCanvasSubject *subject)
-{
-    reset(subject);
-}
-
-KisStrategyMove::~KisStrategyMove()
-{
-}
-
-void KisStrategyMove::reset(KisCanvasSubject *subject)
-{
-    m_subject = subject;
-    m_dragging = false;
-
-    if (m_subject) {
-        m_controller = subject->canvasController();
-    } else {
-        m_controller = 0;
-    }
-}
-
-void KisStrategyMove::startDrag(const TQPoint& pos)
-{
-    // pos is the user chosen handle point
-
-    if (m_subject) {
-        KisImageSP img;
-        KisLayerSP dev;
-
-        if (!(img = m_subject->currentImg()))
-            return;
-
-        dev = img->activeLayer();
-
-        if (!dev || !dev->visible())
-            return;
-
-        m_dragging = true;
-        m_dragStart.setX(pos.x());
-        m_dragStart.setY(pos.y());
-        m_layerStart.setX(dev->x());
-        m_layerStart.setY(dev->y());
-        m_layerPosition = m_layerStart;
-    }
-}
-
-void KisStrategyMove::drag(const TQPoint& original)
-{
-    // original is the position of the user chosen handle point
-
-    if (m_subject && m_dragging) {
-        KisImageSP img = m_subject->currentImg();
-        KisLayerSP dev;
-
-        if (img && (dev = img->activeLayer())) {
-            TQPoint pos = original;
-            TQRect rc;
-
-            pos -= m_dragStart; // convert to delta
-            rc = dev->extent();
-            dev->setX(dev->x() + pos.x());
-            dev->setY(dev->y() + pos.y());
-            rc = rc.unite(dev->extent());
-
-            m_layerPosition = TQPoint(dev->x(), dev->y());
-            m_dragStart = original;
-
-            dev->setDirty(rc);
-        }
-    }
-}
-
-void KisStrategyMove::endDrag(const TQPoint& pos, bool undo)
-{
-    if (m_subject && m_dragging) {
-        KisImageSP img = m_subject->currentImg();
-        KisLayerSP dev;
-
-        if (img && (dev = img->activeLayer())) {
-            drag(pos);
-            m_dragging = false;
-
-            if (undo && img->undo()) {
-                KCommand *cmd = dev->moveCommand(m_layerStart, m_layerPosition);
-                Q_CHECK_PTR(cmd);
-                
-                KisUndoAdapter *adapter = img->undoAdapter();
-                if (adapter) {
-                    adapter->addCommand(cmd);
-                } else {
-                    delete cmd;
-                }
-            }
-            img->setModified();
-        }
-    }
-}
-
-void KisStrategyMove::simpleMove(const TQPoint& pt1, const TQPoint& pt2)
-{
-    startDrag(pt1);
-    endDrag(pt2);
-}
-
-void KisStrategyMove::simpleMove(TQ_INT32 x1, TQ_INT32 y1, TQ_INT32 x2, TQ_INT32 y2)
-{
-    startDrag(TQPoint(x1, y1));
-    endDrag(TQPoint(x2, y2));
-}
-
diff --git a/krita/core/kis_strategy_move.h b/krita/core/kis_strategy_move.h
deleted file mode 100644
index c3535be99..000000000
--- a/krita/core/kis_strategy_move.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien  <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_STRATEGY_MOVE_H_
-#define KIS_STRATEGY_MOVE_H_
-
-#include <tqpoint.h>
-#include <tqrect.h>
-
-#include <koffice_export.h>
-
-class KisCanvasController;
-class KisCanvasSubject;
-
-class KRITAUI_EXPORT KisStrategyMove {
-public:
-    KisStrategyMove();
-    explicit KisStrategyMove(KisCanvasSubject *subject);
-    virtual ~KisStrategyMove();
-
-public:
-    void reset(KisCanvasSubject *subject);
-    void startDrag(const TQPoint& pos);
-    void drag(const TQPoint& pos);
-    void endDrag(const TQPoint& pos, bool undo = true);
-    void simpleMove(const TQPoint& pt1, const TQPoint& pt2);
-    void simpleMove(TQ_INT32 x1, TQ_INT32 y1, TQ_INT32 x2, TQ_INT32 y2);
-
-private:
-    KisStrategyMove(const KisStrategyMove&);
-    KisStrategyMove& operator=(const KisStrategyMove&);
-
-private:
-    KisCanvasController *m_controller;
-    KisCanvasSubject *m_subject;
-    TQRect m_deviceBounds;
-    TQPoint m_dragStart;
-    TQPoint m_layerStart;
-    TQPoint m_layerPosition;
-    bool m_dragging;
-};
-
-#endif // KIS_STRATEGY_MOVE_H_
-
diff --git a/krita/core/kis_substrate.h b/krita/core/kis_substrate.h
deleted file mode 100644
index 274f26800..000000000
--- a/krita/core/kis_substrate.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2006 Boudewijn Rempt (boud@valdyas.org)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_SUBSTRATE_H
-#define KIS_SUBSTRATE_H
-
-#include <tqrect.h>
-#include <ksharedptr.h>
-
-class KisImage;
-
-/// All values are normalized to a range between 0 and 1.
-/// XXX: Do we need more?
-struct KisSubstratePixel {
-    float height;      // absolute height of the current position
-    float smoothness;  // determines how easily the painting tool "slips" over the surface
-    float absorbency;  // determines how much wetness the substrate can absorb. XXX: How about speed of absorbing?
-    float density;     // XXX?
-    TQ_UINT8 r;           //.Red component of reflectivity
-    TQ_UINT8 g;           // Green component of reflectivity
-    TQ_UINT8 b;           // Blue component of reflectivity
-    TQ_UINT8 alpha;     // For composition with the background
-};
-
-/**
- * This abstract class defines the properties of a substrate -- that is, the simulation
- * of the paper or canvas for natural media.
- *
- * Subclass this interface to define a specific type of substrate: repeating,
- * or full-size, with specific and cool ways of generating the surface, or
- * maybe based on scans of real substrates.
- */
-class KisSubstrate : public KShared {
-
-public:
-
-    KisSubstrate(KisImage * /*img*/) : KShared() {};
-    virtual ~KisSubstrate() {};
-
-
-    /**
-     * Copy the pixel values in the specified rect into an array of Substrate.
-     * Make sure the array is big enough!
-     */ 
-    virtual void getPixels(KisSubstratePixel * substrate, const TQRect & rc) const = 0;
-
-    /**
-     * Copy the specified rect of substrate pixels onto the substrate. Make sure
-     * the array is big enough.
-     */
-    virtual void writePixels(const KisSubstratePixel * substrate, const TQRect & rc) = 0;
-    /**
-     * Read the value at the specified position into the given substrate pixel.
-     */
-    virtual void getPixel(KisSubstratePixel * ksp, int x, int y) const = 0;
-
-    /**
-     * Copy the value of the given substrate pixel to the specified location.
-     */
-    virtual void writePixel(const KisSubstratePixel & ksp, int x, int y) = 0;
-    
-};
-
-#endif
diff --git a/krita/core/kis_thread.h b/krita/core/kis_thread.h
deleted file mode 100644
index 61feda24d..000000000
--- a/krita/core/kis_thread.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *  copyright (c) 2005 Boudewijn Rempt
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-
-#ifndef KIS_THREAD_
-#define KIS_THREAD_
-
-#include <tqthread.h>
-#include <ksharedptr.h>
-
-/**
- * A KisThread is a TQThread that can be set in the canceled state.
- * Lengthy operations initiated in run() should regularly read the
- * canceled state and stop when it's set to true
- */
-class KisThread : public TQThread {
-    
-public:
-
-    /**
-     * Create a new KisThread with the canceled state set to false
-     */
-    KisThread() : TQThread(), m_canceled(false) {};
-
-    /**
-     * Request the thread to cancel at the first opportunity. Note
-     * that the owner of the thread is responsible for restoring the
-     * previous state of paint devices etc, the thread itself just stops
-     * as soon as possible.
-     */
-    virtual void cancel() { m_canceled = true; }
-    virtual bool isCanceled() { return m_canceled; }
-
-    void runDirectly() { run(); }
-    
-protected:
-    
-    bool m_canceled;
-
-};
-
-
-#endif
diff --git a/krita/core/kis_thread_pool.cc b/krita/core/kis_thread_pool.cc
deleted file mode 100644
index e617c8cb2..000000000
--- a/krita/core/kis_thread_pool.cc
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- *  copyright (c) 2006 Boudewijn Rempt
- *
- *  This program is free software; you can distribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "kis_thread_pool.h"
-#include <kglobal.h>
-#include <kconfig.h>
-#include <kdebug.h>
-
-KisThreadPool * KisThreadPool::m_singleton = 0;
-
-KisThreadPool::KisThreadPool()
-{
-    Q_ASSERT(KisThreadPool::m_singleton == 0);
-
-    KisThreadPool::m_singleton = this;
-
-    KConfig * cfg = KGlobal::config();
-    cfg->setGroup("");
-    m_maxThreads = cfg->readNumEntry("maxthreads",  10);
-    m_numberOfRunningThreads = 0;
-    m_numberOfQueuedThreads = 0;
-    m_wait = 200;
-
-    start();
-}
-
-
-KisThreadPool::~KisThreadPool()
-{
-    m_poolMutex.lock();
-
-    m_canceled = true;
-
-    m_runningThreads.setAutoDelete(true);
-    m_threads.setAutoDelete(true);
-    m_oldThreads.setAutoDelete(true);
-
-    KisThread * t;
-
-    for ( t = m_threads.first(); t; t = m_threads.next()) {
-        if (t) {
-            t->cancel();
-            t->wait();
-            m_threads.remove(t);
-        }
-    }
-
-    for ( t = m_runningThreads.first(); t; t = m_runningThreads.next()) {
-        if (t) {
-            t->cancel();
-            t->wait();
-            m_runningThreads.remove(t);
-        }
-    }
-
-    for ( t = m_oldThreads.first(); t; t = m_oldThreads.next()) {
-        if (t) {
-            t->cancel();
-            t->wait();
-            m_runningThreads.remove(t);
-        }
-    }
-    KisThreadPool::m_singleton = 0;
-    m_poolMutex.unlock();
-
-}
-
-
-KisThreadPool * KisThreadPool::instance()
-{
-    if(KisThreadPool::m_singleton == 0)
-    {
-        KisThreadPool::m_singleton = new KisThreadPool();
-    }
-    else {
-
-        if (KisThreadPool::m_singleton->finished()) {
-            delete KisThreadPool::m_singleton;
-            KisThreadPool::m_singleton = 0;
-            KisThreadPool::m_singleton = new KisThreadPool();
-        }
-    }
-
-    return KisThreadPool::m_singleton;
-}
-
-void KisThreadPool::enqueue(KisThread * thread)
-{
-    m_poolMutex.lock();
-    m_threads.append(thread);
-    m_numberOfQueuedThreads++;
-    m_poolMutex.unlock();
-    m_wait = 200;
-}
-
-
-void KisThreadPool::dequeue(KisThread * thread)
-{
-    KisThread * t = 0;
-
-    m_poolMutex.lock();
-
-    int i = m_threads.tqfindRef(thread);
-    if (i >= 0) {
-        t = m_threads.take(i);
-        m_numberOfQueuedThreads--;
-    } else {
-        i = m_runningThreads.tqfindRef(thread);
-        if (i >= 0) {
-            t = m_runningThreads.take(i);
-            m_numberOfRunningThreads--;
-        }
-        else {
-            i = m_oldThreads.tqfindRef(thread);
-            if (i >= 0) {
-                t = m_oldThreads.take(i);
-            }
-        }
-    }
-
-    m_poolMutex.unlock();
-
-    if (t) {
-        t->cancel();
-        t->wait();
-        delete t;
-    }
-
-}
-
-void KisThreadPool::run()
-{
-    int sleeps = 10;
-
-    while(!m_canceled) {
-        if (m_numberOfQueuedThreads > 0 && m_numberOfRunningThreads < m_maxThreads) {
-            KisThread * thread = 0;
-            m_poolMutex.lock();
-            if (m_threads.count() > 0) {
-                thread = m_threads.take();
-                m_numberOfQueuedThreads--;
-            }
-            if (thread) {
-                thread->start();
-                m_runningThreads.append(thread);
-                m_numberOfRunningThreads++;
-            }
-            m_poolMutex.unlock();
-        }
-        else {
-            msleep(m_wait);
-            m_poolMutex.lock();
-            for ( KisThread * t = m_runningThreads.first(); t; t = m_runningThreads.next()) {
-                if (t) {
-                    if (t->finished()) {
-                        m_runningThreads.remove(t);
-                        m_numberOfRunningThreads--;
-                        m_oldThreads.append(t);
-                    }
-                }
-            }
-            m_poolMutex.unlock();
-            m_poolMutex.lock();
-            if (m_numberOfQueuedThreads == 0 && m_numberOfRunningThreads == 0) {
-                sleeps--;
-                if (sleeps == 0) {
-                    m_poolMutex.unlock();
-                    return;
-                }
-                m_poolMutex.unlock();
-
-            }
-            m_poolMutex.unlock();
-
-        }
-    }
-}
diff --git a/krita/core/kis_thread_pool.h b/krita/core/kis_thread_pool.h
deleted file mode 100644
index 904606bfa..000000000
--- a/krita/core/kis_thread_pool.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- *  copyright (c) 2006 Boudewijn Rempt
- *
- *  This program is free software; you can distribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_THREAD_POOL_
-#define KIS_THREAD_POOL_
-
-#include <tqthread.h>
-#include <tqptrlist.h>
-#include <tqmutex.h>
-
-#include "kis_thread.h"
-
-/**
- * A thread pool starts executing threads some time after they are added,
- * running a maximum number of threads at one time.
- *
- * The pool takes ownership of the threads and _deletes_ them once they
- * have run. This means that you cannot add getters for important data to
- * threads you feed the threadpool. Instead, post the data using a customevent.
- */
-class KisThreadPool : public KisThread {
-
-public:
-
-    virtual ~KisThreadPool();
-
-    static KisThreadPool * instance();
-
-    void enqueue(KisThread * thread);
-    void dequeue(KisThread * thread);
-    
-    void run();
-    
-    
-    KisThreadPool();
-
-private:
-
-    KisThreadPool(const KisThreadPool&);
-    KisThreadPool operator=(const KisThreadPool&);
-
-    TQMutex m_poolMutex;
-    int m_numberOfRunningThreads;
-    int m_numberOfQueuedThreads;
-    int m_maxThreads;
-    int m_wait;
-    TQPtrList<KisThread> m_threads;
-    TQPtrList<KisThread> m_runningThreads;
-    TQPtrList<KisThread> m_oldThreads;
-    
-    static KisThreadPool * m_singleton;
-};
-
-
-#endif
diff --git a/krita/core/kis_transaction.cc b/krita/core/kis_transaction.cc
deleted file mode 100644
index b755c5978..000000000
--- a/krita/core/kis_transaction.cc
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include "kis_types.h"
-#include "kis_global.h"
-#include "kis_tile.h"
-#include "kis_tileddatamanager.h"
-#include "kis_image.h"
-#include "kis_transaction.h"
-#include "kis_memento.h"
-#include "kis_paint_device.h"
-#include "kis_layer.h"
-
-class KisTransactionPrivate {
-public:
-    TQString m_name;
-    KisPaintDeviceSP m_device;
-    KisMementoSP m_memento;
-
-};
-
-KisTransaction::KisTransaction(const TQString& name, KisPaintDeviceSP device)
-{
-    m_private = new KisTransactionPrivate;
-
-    m_private->m_name = name;
-    m_private->m_device = device;
-    m_private->m_memento = device->getMemento();
-}
-
-KisTransaction::~KisTransaction()
-{
-    if (m_private->m_memento) {
-        // For debugging purposes
-        m_private->m_memento->setInvalid();
-    }
-    delete m_private;
-}
-
-void KisTransaction::execute()
-{
-    Q_ASSERT(m_private->m_memento != 0);
-
-    m_private->m_device->rollforward(m_private->m_memento);
-
-    TQRect rc;
-    TQ_INT32 x, y, width, height;
-    m_private->m_memento->extent(x,y,width,height);
-    rc.setRect(x + m_private->m_device->getX(), y + m_private->m_device->getY(), width, height);
-
-    KisLayerSP l = m_private->m_device->tqparentLayer();
-    if (l) l->setDirty(rc);
-}
-
-void KisTransaction::unexecute()
-{
-    Q_ASSERT(m_private->m_memento != 0);
-    m_private->m_device->rollback(m_private->m_memento);
-
-    TQRect rc;
-    TQ_INT32 x, y, width, height;
-    m_private->m_memento->extent(x,y,width,height);
-    rc.setRect(x + m_private->m_device->getX(), y + m_private->m_device->getY(), width, height);
-
-    KisLayerSP l = m_private->m_device->tqparentLayer();
-    if (l) l->setDirty(rc);
-
-}
-
-void KisTransaction::unexecuteNoUpdate()
-{
-    Q_ASSERT(m_private->m_memento != 0);
-
-    m_private->m_device->rollback(m_private->m_memento);
-}
-
-TQString KisTransaction::name() const
-{
-    return m_private->m_name;
-}
diff --git a/krita/core/kis_transaction.h b/krita/core/kis_transaction.h
deleted file mode 100644
index 521b0204d..000000000
--- a/krita/core/kis_transaction.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_TILE_COMMAND_H_
-#define KIS_TILE_COMMAND_H_
-
-#include <tqstring.h>
-
-#include <kcommand.h>
-
-#include "kis_types.h"
-
-class TQRect;
-class KisTransactionPrivate;
-
-class KisTransaction : public KCommand {
-public:
-    KisTransaction(const TQString& name, KisPaintDeviceSP device);
-    virtual ~KisTransaction();
-
-public:
-    virtual void execute();
-    virtual void unexecute();
-    virtual void unexecuteNoUpdate();
-    virtual TQString name() const;
-private:
-    KisTransactionPrivate * m_private;
-};
-
-#endif // KIS_TILE_COMMAND_H_
-
diff --git a/krita/core/kis_transform_visitor.h b/krita/core/kis_transform_visitor.h
deleted file mode 100644
index 9e6f51c0f..000000000
--- a/krita/core/kis_transform_visitor.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- *  Copyright (c) 2006 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_TRANSFORM_VISITOR_H_
-#define KIS_TRANSFORM_VISITOR_H_
-
-#include "tqrect.h"
-
-#include "klocale.h"
-
-#include "kis_layer_visitor.h"
-#include "kis_types.h"
-#include "kis_layer.h"
-#include "kis_group_layer.h"
-#include "kis_paint_layer.h"
-#include "kis_adjustment_layer.h"
-#include "kis_transaction.h"
-#include "kis_transform_worker.h"
-#include <kis_selected_transaction.h>
-
-class KisProgressDisplayInterface;
-class KisFilterStrategy;
-
-class KisTransformVisitor : public KisLayerVisitor {
-
-public:
-
-    KisTransformVisitor(KisImageSP img, double  xscale, double  yscale,
-        double  /*xshear*/, double  /*yshear*/, double angle,
-        TQ_INT32  tx, TQ_INT32  ty, KisProgressDisplayInterface *progress, KisFilterStrategy *filter) 
-        : KisLayerVisitor()
-        , m_sx(xscale)
-        , m_sy(yscale)
-        , m_tx(tx)
-        , m_ty(ty)
-        , m_filter(filter)
-        , m_angle(angle)
-        , m_progress(progress)
-        , m_img(img)
-    {
-    }
-
-    virtual ~KisTransformVisitor()
-    {
-    }
-
-    /**
-     * Crops the specified layer and adds the undo information to the undo adapter of the
-     * layer's image.
-     */
-    bool visit(KisPaintLayer *layer) 
-    {
-        KisPaintDeviceSP dev = layer->paintDevice();
-
-        KisTransaction * t = 0;
-        if (m_img->undo()) {
-            t = new KisTransaction(i18n("Rotate Layer"), dev);
-            Q_CHECK_PTR(t);
-	}
-
-        KisTransformWorker tw(dev, m_sx, m_sy, 0.0, 0.0, m_angle, m_tx, m_ty, m_progress, m_filter, true);
-        tw.run();
-
-        if (m_img->undo()) {
-            m_img->undoAdapter()->addCommand(t);
-	}
-        layer->setDirty();
-        return true;
-    };
-
-    bool visit(KisGroupLayer *layer)
-    {
-	layer->resetProjection();
-
-        KisLayerSP child = layer->firstChild();
-        while (child) {
-            child->accept(*this);
-            child = child->nextSibling();
-        }
-        layer->setDirty();
-        return true;
-    };
-
-    bool visit(KisPartLayer */*layer*/)
-    {
-        return true;
-    };
-
-    virtual bool visit(KisAdjustmentLayer* layer)
-    {
-        KisPaintDeviceSP dev = layer->selection().data();
-        
-        KisTransaction * t = 0;
-
-        if (m_img->undo()) {
-            t = new KisTransaction(i18n("Rotate Layer"), dev);
-            Q_CHECK_PTR(t);
-        }
-
-        KisTransformWorker tw(dev, m_sx, m_sy, 0.0, 0.0, m_angle, m_tx, m_ty, m_progress, m_filter, true);
-        tw.run();
-
-        if (m_img->undo()) {
-            m_img->undoAdapter()->addCommand(t);
-        }
-        layer->setDirty();
-        
-        layer->resetCache();
-        return true;
-    }
-    
-
-private:
-    double m_sx, m_sy;
-    TQ_INT32 m_tx, m_ty;
-    KisFilterStrategy *m_filter;
-    double m_angle;
-    KisProgressDisplayInterface *m_progress;
-    KisImageSP m_img;
-};
-
-
-#endif
diff --git a/krita/core/kis_transform_worker.cc b/krita/core/kis_transform_worker.cc
deleted file mode 100644
index fbc952eaa..000000000
--- a/krita/core/kis_transform_worker.cc
+++ /dev/null
@@ -1,676 +0,0 @@
-/*
- *  Copyright (c) 2004 Michael Thaler <michael.thaler@physik.tu-muenchen.de> filters
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org> right angle rotators
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <kdebug.h>
-#include <klocale.h>
-
-#include "kis_debug_areas.h"
-#include "kis_paint_device.h"
-#include "kis_selection.h"
-#include "kis_transform_worker.h"
-#include "kis_progress_display_interface.h"
-#include "kis_iterators_pixel.h"
-#include "kis_filter_strategy.h"
-#include "kis_layer.h"
-#include "kis_painter.h"
-
-KisTransformWorker::KisTransformWorker(KisPaintDeviceSP dev, double xscale, double yscale,
-                    double xshear, double yshear, double rotation,
-                    TQ_INT32 xtranslate, TQ_INT32 ytranslate,
-                    KisProgressDisplayInterface *progress, KisFilterStrategy *filter, bool fixBorderAlpha)
-{
-    m_dev= dev;
-    m_xscale = xscale;
-    m_yscale = yscale;
-    m_xshear = xshear;
-    m_yshear = yshear;
-    m_rotation = rotation,
-    m_xtranslate = xtranslate;
-    m_ytranslate = ytranslate;
-    m_progress = progress;
-    m_filter = filter;
-    m_fixBorderAlpha = fixBorderAlpha;
-}
-
-void KisTransformWorker::rotateNone(KisPaintDeviceSP src, KisPaintDeviceSP dst)
-{
-    KisSelectionSP dstSelection;
-    TQ_INT32 pixelSize = src->pixelSize();
-    TQRect r;
-    KisColorSpace *cs = src->colorSpace();
-
-    if(src->hasSelection())
-    {
-        r = src->selection()->selectedExactRect();
-        dstSelection = dst->selection();
-    }
-    else
-    {
-        r = src->exactBounds();
-        dstSelection = new KisSelection(dst); // essentially a dummy to be deleted
-    }
-
-    KisHLineIteratorPixel hit = src->createHLineIterator(r.x(), r.top(), r.width(), true);
-    KisHLineIterator vit = dst->createHLineIterator(r.x(), r.top(), r.width(), true);
-    KisHLineIterator dstSelIt = dstSelection->createHLineIterator(r.x(), r.top(), r.width(), true);
-    for (TQ_INT32 i = 0; i < r.height(); ++i) {
-            while (!hit.isDone()) {
-            if (hit.isSelected())  {
-                memcpy(vit.rawData(), hit.rawData(), pixelSize);
-
-                // XXX: Should set alpha = alpha*(1-selectedness)
-                cs->setAlpha(hit.rawData(), 0, 1);
-            }
-            *(dstSelIt.rawData()) = hit.selectedness();
-            ++hit;
-            ++vit;
-            ++dstSelIt;
-        }
-        hit.nextRow();
-        vit.nextRow();
-        dstSelIt.nextRow();
-
-        //progress info
-        m_progressStep += r.width();
-        if(m_lastProgressReport != (m_progressStep * 100) / m_progressTotalSteps)
-        {
-            m_lastProgressReport = (m_progressStep * 100) / m_progressTotalSteps;
-            emit notifyProgress(m_lastProgressReport);
-        }
-        if (m_cancelRequested) {
-            break;
-        }
-    }
-}
-
-void KisTransformWorker::rotateRight90(KisPaintDeviceSP src, KisPaintDeviceSP dst)
-{
-    KisSelectionSP dstSelection;
-    TQ_INT32 pixelSize = src->pixelSize();
-    TQRect r;
-    KisColorSpace *cs = src->colorSpace();
-
-    if(src->hasSelection())
-    {
-        r = src->selection()->selectedExactRect();
-        dstSelection = dst->selection();
-    }
-    else
-    {
-        r = src->exactBounds();
-        dstSelection = new KisSelection(dst); // essentially a dummy to be deleted
-    }
-
-    for (TQ_INT32 y = r.bottom(); y >= r.top(); --y) {
-        KisHLineIteratorPixel hit = src->createHLineIterator(r.x(), y, r.width(), true);
-        KisVLineIterator vit = dst->createVLineIterator(-y, r.x(), r.width(), true);
-        KisVLineIterator dstSelIt = dstSelection->createVLineIterator(-y, r.x(), r.width(), true);
-
-            while (!hit.isDone()) {
-            if (hit.isSelected())  {
-                memcpy(vit.rawData(), hit.rawData(), pixelSize);
-
-                // XXX: Should set alpha = alpha*(1-selectedness)
-                cs->setAlpha(hit.rawData(), 0, 1);
-            }
-            *(dstSelIt.rawData()) = hit.selectedness();
-            ++hit;
-            ++vit;
-            ++dstSelIt;
-        }
-
-        //progress info
-        m_progressStep += r.width();
-        if(m_lastProgressReport != (m_progressStep * 100) / m_progressTotalSteps)
-        {
-            m_lastProgressReport = (m_progressStep * 100) / m_progressTotalSteps;
-            emit notifyProgress(m_lastProgressReport);
-        }
-        if (m_cancelRequested) {
-            break;
-        }
-    }
-}
-
-void KisTransformWorker::rotateLeft90(KisPaintDeviceSP src, KisPaintDeviceSP dst)
-{
-    kdDebug() << "rotateLeft90 called\n";
-    KisSelectionSP dstSelection;
-    TQ_INT32 pixelSize = src->pixelSize();
-    TQRect r;
-    KisColorSpace *cs = src->colorSpace();
-
-    if(src->hasSelection())
-    {
-        r = src->selection()->selectedExactRect();
-        dstSelection = dst->selection();
-    }
-    else
-    {
-        r = src->exactBounds();
-        dstSelection = new KisSelection(dst); // essentially a dummy to be deleted
-    }
-    TQ_INT32 x = 0;
-
-    for (TQ_INT32 y = r.top(); y <= r.bottom(); ++y) {
-        // Read the horizontal line from back to front, write onto the vertical column
-        KisHLineIteratorPixel hit = src->createHLineIterator(r.x(), y, r.width(), true);
-        KisVLineIterator vit = dst->createVLineIterator(y, -r.x() - r.width(), r.width(), true);
-        KisVLineIterator dstSelIt = dstSelection->createVLineIterator(y, -r.x() - r.width(), r.width(), true);
-
-        hit += r.width() - 1;
-        while (!vit.isDone()) {
-            if (hit.isSelected()) {
-                memcpy(vit.rawData(), hit.rawData(), pixelSize);
-
-                // XXX: Should set alpha = alpha*(1-selectedness)
-                cs->setAlpha(hit.rawData(), 0, 1);
-            }
-            *(dstSelIt.rawData()) = hit.selectedness();
-            --hit;
-            ++vit;
-            ++dstSelIt;
-        }
-        ++x;
-
-        //progress info
-        m_progressStep += r.width();
-        if(m_lastProgressReport != (m_progressStep * 100) / m_progressTotalSteps)
-        {
-            m_lastProgressReport = (m_progressStep * 100) / m_progressTotalSteps;
-            emit notifyProgress(m_lastProgressReport);
-        }
-        if (m_cancelRequested) {
-            break;
-        }
-    }
-}
-
-void KisTransformWorker::rotate180(KisPaintDeviceSP src, KisPaintDeviceSP dst)
-{
-    kdDebug() << "Rotating 180\n";
-    KisSelectionSP dstSelection;
-    TQ_INT32 pixelSize = src->pixelSize();
-    TQRect r;
-    KisColorSpace *cs = src->colorSpace();
-
-    if(src->hasSelection())
-    {
-        r = src->selection()->selectedExactRect();
-        dstSelection = dst->selection();
-    }
-    else
-    {
-        r = src->exactBounds();
-        dstSelection = new KisSelection(dst); // essentially a dummy to be deleted
-    }
-
-    for (TQ_INT32 y = r.top(); y <= r.bottom(); ++y) {
-        KisHLineIteratorPixel srcIt = src->createHLineIterator(r.x(), y, r.width(), true);
-        KisHLineIterator dstIt = dst->createHLineIterator(-r.x() - r.width(), -y, r.width(), true);
-        KisHLineIterator dstSelIt = dstSelection->createHLineIterator(-r.x() - r.width(), -y, r.width(), true);
-
-        srcIt += r.width() - 1;
-        while (!dstIt.isDone()) {
-            if (srcIt.isSelected())  {
-                memcpy(dstIt.rawData(), srcIt.rawData(), pixelSize);
-
-                // XXX: Should set alpha = alpha*(1-selectedness)
-                cs->setAlpha(srcIt.rawData(), 0, 1);
-            }
-            *(dstSelIt.rawData()) = srcIt.selectedness();
-            --srcIt;
-            ++dstIt;
-            ++dstSelIt;
-        }
-
-        //progress info
-        m_progressStep += r.width();
-        if(m_lastProgressReport != (m_progressStep * 100) / m_progressTotalSteps)
-        {
-            m_lastProgressReport = (m_progressStep * 100) / m_progressTotalSteps;
-            emit notifyProgress(m_lastProgressReport);
-        }
-        if (m_cancelRequested) {
-            break;
-        }
-    }
-}
-
-template <class iter> iter createIterator(KisPaintDevice *dev, TQ_INT32 start, TQ_INT32 lineNum, TQ_INT32 len);
-
-template <> KisHLineIteratorPixel createIterator <KisHLineIteratorPixel>
-(KisPaintDevice *dev, TQ_INT32 start, TQ_INT32 lineNum, TQ_INT32 len)
-{
-    return dev->createHLineIterator(start, lineNum, len, true);
-}
-
-template <> KisVLineIteratorPixel createIterator <KisVLineIteratorPixel>
-(KisPaintDevice *dev, TQ_INT32 start, TQ_INT32 lineNum, TQ_INT32 len)
-{
-    return dev->createVLineIterator(lineNum, start, len, true);
-}
-
-template <class iter> void calcDimensions (KisPaintDevice *dev, TQ_INT32 &srcStart, TQ_INT32 &srcLen, TQ_INT32 &firstLine, TQ_INT32 &numLines);
-
-template <> void calcDimensions <KisHLineIteratorPixel>
-(KisPaintDevice *dev, TQ_INT32 &srcStart, TQ_INT32 &srcLen, TQ_INT32 &firstLine, TQ_INT32 &numLines)
-{
-    if(dev->hasSelection())
-    {
-        TQRect r = dev->selection()->selectedExactRect();
-        r.rect(&srcStart, &firstLine, &srcLen, &numLines);
-    }
-    else
-        dev->exactBounds(srcStart, firstLine, srcLen, numLines);
-}
-
-template <> void calcDimensions <KisVLineIteratorPixel>
-(KisPaintDevice *dev, TQ_INT32 &srcStart, TQ_INT32 &srcLen, TQ_INT32 &firstLine, TQ_INT32 &numLines)
-{
-    if(dev->hasSelection())
-    {
-        TQRect r = dev->selection()->selectedExactRect();
-        r.rect(&firstLine, &srcStart, &numLines, &srcLen);
-    }
-    else
-        dev->exactBounds(firstLine, srcStart, numLines, srcLen);
-}
-
-struct FilterValues
-{
-    TQ_UINT8 numWeights;
-    TQ_UINT8 *weight;
-    ~FilterValues() {delete [] weight;}
-};
-
-template <class T> void KisTransformWorker::transformPass(KisPaintDevice *src, KisPaintDevice *dst, double floatscale, double shear, TQ_INT32 dx, KisFilterStrategy *filterStrategy, bool fixBorderAlpha)
-{
-    TQ_INT32 lineNum,srcStart,firstLine,srcLen,numLines;
-    TQ_INT32 center, begin, end;    /* filter calculation variables */
-    TQ_UINT8 *data;
-    TQ_UINT8 pixelSize = src->pixelSize();
-    KisSelectionSP dstSelection;
-    KisColorSpace * cs = src->colorSpace();
-    TQ_INT32 scale;
-    TQ_INT32 scaleDenom;
-    TQ_INT32 shearFracOffset;
-
-    if(src->hasSelection())
-        dstSelection = dst->selection();
-    else
-        dstSelection = new KisSelection(dst); // essentially a dummy to be deleted
-
-    calcDimensions <T>(src, srcStart, srcLen, firstLine, numLines);
-
-    scale = int(floatscale*srcLen);
-    scaleDenom = srcLen;
-
-    if(scaleDenom == 0)
-        return;
-
-    TQ_INT32 support = filterStrategy->intSupport();
-    TQ_INT32 dstLen, dstStart;
-    TQ_INT32 invfscale = 256;
-
-    // handle magnification/minification
-    if(abs(scale) < scaleDenom)
-    {
-        support *= scaleDenom;
-        support /= scale;
-
-        invfscale *= scale;
-        invfscale /= scaleDenom;
-        if(scale < 0) // handle mirroring
-        {
-            support = -support;
-            invfscale = -invfscale;
-        }
-    }
-
-    // handle mirroring
-    if(scale < 0)
-        dstLen = - scale;
-    else
-        dstLen = scale;
-
-    // Calculate extra length (in each side) needed due to shear
-    TQ_INT32 extraLen = (support+256)>>8 + 1;
-
-    TQ_UINT8 *tmpLine = new TQ_UINT8[(srcLen +2*extraLen)* pixelSize];
-    Q_CHECK_PTR(tmpLine);
-
-    TQ_UINT8 *tmpSel = new TQ_UINT8[srcLen+2*extraLen];
-    Q_CHECK_PTR(tmpSel);
-
-    //allocate space for colors
-    const TQ_UINT8 **colors = new const TQ_UINT8 *[2*support+1];
-
-    // Precalculate weights
-    FilterValues *filterWeights = new FilterValues[256];
-
-    for(int center = 0; center<256; ++center)
-    {
-        TQ_INT32 begin = (255 + center - support)>>8; // takes ceiling by adding 255
-        TQ_INT32 span = ((center + support)>>8) - begin + 1; // takes floor to get end. Subtracts begin to get span
-        TQ_INT32 t = (((begin<<8) - center) * invfscale)>>8;
-        TQ_INT32 dt = invfscale;
-        filterWeights[center].weight = new TQ_UINT8[span];
-//printf("%d (",center);
-        TQ_UINT32 sum=0;
-        for(int num = 0; num<span; ++num)
-        {
-            TQ_UINT32 tmpw = filterStrategy->intValueAt(t) * invfscale;
-
-            tmpw >>=8;
-            filterWeights[center].weight[num] = tmpw;
-//printf(" %d=%d,%d",t,filterWeights[center].weight[num],tmpw);
-            t += dt;
-            sum+=tmpw;
-        }
-//printf(" )%d sum =%d",span,sum);
-        if(sum!=255)
-        {
-            double fixfactor= 255.0/sum;
-            sum=0;
-            for(int num = 0; num<span; ++num)
-            {
-                filterWeights[center].weight[num] = int(filterWeights[center].weight[num] * fixfactor);
-                sum+=filterWeights[center].weight[num];
-            }
-        }
-
-//printf("  sum2 =%d",sum);
-        int num = 0; 
-        while(sum<255 && num*2<span)
-        {
-            filterWeights[center].weight[span/2 + num]++;
-            ++sum;
-            if(sum<255 && num<span/2)
-            {
-                filterWeights[center].weight[span/2 - num - 1]++;
-                ++sum;
-            }
-            ++num;
-        }
-//printf("  sum3 =%d\n",sum);
-
-        filterWeights[center].numWeights = span;
-    }
-
-    for(lineNum = firstLine; lineNum < firstLine+numLines; lineNum++)
-    {
-        if(scale < 0)
-            dstStart = srcStart * scale / scaleDenom - dstLen + dx;
-        else
-            dstStart = (srcStart) * scale / scaleDenom + dx;
-
-        shearFracOffset = -int( 256 * (lineNum * shear - floor(lineNum * shear)));
-        dstStart += int(floor(lineNum * shear));
-
-        // Build a temporary line
-        T srcIt = createIterator <T>(src, srcStart - extraLen, lineNum, srcLen+2*extraLen);
-        TQ_INT32 i = 0;
-        while(!srcIt.isDone())
-        {
-            TQ_UINT8 *data;
-
-            data = srcIt.rawData();
-            memcpy(&tmpLine[i*pixelSize], data, pixelSize);
-
-            if(srcIt.isSelected())
-            {
-                // XXX: Should set alpha = alpha*(1-selectedness)
-                cs->setAlpha(data, 0, 1);
-                tmpSel[i] = 255;
-            }
-            else {
-                tmpSel[i] = 0;
-            }
-            ++srcIt;
-            i++;
-        }
-
-        T dstIt = createIterator <T>(dst, dstStart, lineNum, dstLen);
-        T dstSelIt = createIterator <T>(dstSelection, dstStart, lineNum, dstLen);
-
-        i=0;
-        while(!dstIt.isDone())
-        {
-            if(scaleDenom<2500)
-                center = ((i<<8) * scaleDenom) / scale;
-            else
-            {
-                if(scaleDenom<46000) // real limit is actually 46340 pixels
-                    center = ((i * scaleDenom) / scale)<<8;
-                else
-                    center = ((i<<8)/scale * scaleDenom) / scale; // XXX fails for sizes over 2^23 pixels src width
-            }
-
-            if(scale < 0)
-                center += srcLen<<8;
-
-            center += 128*scaleDenom/scale;//xxx doesn't work for scale<0;
-            center += (extraLen<<8) + shearFracOffset;
-
-            // find contributing pixels
-            begin = (255 + center - support)>>8; // takes ceiling by adding 255
-            end = (center + support)>>8; // takes floor
-
-////printf("sup=%d begin=%d end=%d",support,begin,end);
-            TQ_UINT8 selectedness = tmpSel[center>>8];
-            if(selectedness)
-            {
-                int num=0;
-                for(int srcpos = begin; srcpos <= end; ++srcpos)
-                {
-                    colors[num] = &tmpLine[srcpos*pixelSize];
-                    num++;
-                }
-                data = dstIt.rawData();
-                cs->mixColors(colors, filterWeights[center&255].weight, filterWeights[center&255].numWeights, data);
-
-                //possibly fix the alpha of the border if user wants it
-                if(fixBorderAlpha && (i==0 || i==dstLen-1))
-                    cs->setAlpha(data, cs->getAlpha(&tmpLine[(center>>8)*pixelSize]), 1);
-
-                data = dstSelIt.rawData();
-                *data = selectedness;
-            }
-
-            ++dstSelIt;
-            ++dstIt;
-            i++;
-        }
-
-        //progress info
-        m_progressStep += dstLen;
-        if(m_lastProgressReport != (m_progressStep * 100) / m_progressTotalSteps)
-        {
-            m_lastProgressReport = (m_progressStep * 100) / m_progressTotalSteps;
-            emit notifyProgress(m_lastProgressReport);
-        }
-        if (m_cancelRequested) {
-            break;
-        }
-    }
-    delete [] colors;
-    delete [] tmpLine;
-    delete [] tmpSel;
-    delete [] filterWeights;
-}
-
-bool KisTransformWorker::run()
-{
-    //progress info
-    m_cancelRequested = false;
-    if(m_progress)
-        m_progress->setSubject(this, true, true);
-    m_progressTotalSteps = 0;
-    m_progressStep = 0;
-    TQRect r;
-    if(m_dev->hasSelection())
-        r = m_dev->selection()->selectedExactRect();
-    else
-        r = m_dev->exactBounds();
-
-    KisPaintDeviceSP tmpdev1 = new KisPaintDevice(m_dev->colorSpace(),"transform_tmpdev1");;
-    KisPaintDeviceSP tmpdev2 = new KisPaintDevice(m_dev->colorSpace(),"transform_tmpdev2");;
-    KisPaintDeviceSP tmpdev3 = new KisPaintDevice(m_dev->colorSpace(),"transform_tmpdev2");;
-    KisPaintDeviceSP srcdev = m_dev;
-
-    double xscale = m_xscale;
-    double yscale = m_yscale;
-    double xshear = m_xshear;
-    double yshear = m_yshear;
-    double rotation = m_rotation;
-    TQ_INT32 xtranslate = m_xtranslate;
-    TQ_INT32 ytranslate = m_ytranslate;
-
-    if(rotation < 0.0)
-        rotation = -fmod(-rotation, 2*M_PI) + 2*M_PI;
-    else
-        rotation = fmod(rotation, 2*M_PI);
-    int rotQuadrant = int(rotation /(M_PI/2) + 0.5) & 3;
-
-    // Figure out how we will do the initial right angle rotations
-    double tmp;
-    switch(rotQuadrant)
-    {
-        default: // just to shut up the compiler
-        case 0:
-            m_progressTotalSteps = 0;
-            break;
-        case 1:
-            rotation -= M_PI/2;
-            tmp = xscale;
-            xscale=yscale;
-            yscale=tmp;
-            m_progressTotalSteps = r.width() * r.height();
-            break;
-        case 2:
-            rotation -= M_PI;
-            m_progressTotalSteps = r.width() * r.height();
-            break;
-        case 3:
-            rotation -= -M_PI/2 + 2*M_PI;
-            tmp = xscale;
-            xscale = yscale;
-            yscale = tmp;
-            m_progressTotalSteps = r.width() * r.height();
-            break;
-    }
-
-    // Calculate some auxillary values
-    yshear = sin(rotation);
-    xshear = -tan(rotation/2);
-    xtranslate -= int(xshear*ytranslate);
-
-    // Calculate progress steps
-    m_progressTotalSteps += int(yscale * r.width() * r.height());
-    m_progressTotalSteps += int(xscale * r.width() * (r.height() * yscale + r.width()*yshear));
-
-    m_lastProgressReport=0;
-
-    // Now that we have everything in place it's time to do the actual right angle rotations
-    switch(rotQuadrant)
-    {
-        default: // just to shut up the compiler
-        case 0:
-            break;
-        case 1:
-            rotateRight90(srcdev, tmpdev1);
-            srcdev = tmpdev1;
-            break;
-        case 2:
-            rotate180(srcdev, tmpdev1);
-            srcdev = tmpdev1;
-            break;
-        case 3:
-            rotateLeft90(srcdev, tmpdev1);
-            srcdev = tmpdev1;
-            break;
-    }
-
-    // Handle simple move case possibly with rotation of 90,180,270
-    if(rotation == 0.0 && xscale == 1.0 && yscale == 1.0)
-    {
-        if(rotQuadrant==0)
-        {
-            // Though not nessesay in the general case because we make several passes
-            // We need to move (not just copy) the data to a temp dev so we can move them back
-            rotateNone(srcdev, tmpdev1);
-            srcdev = tmpdev1;
-        }
-        if(m_dev->hasSelection())
-            m_dev->selection()->clear();
-
-        srcdev->move(srcdev->getX() + xtranslate, srcdev->getY() + ytranslate);
-        rotateNone(srcdev, m_dev);
-
-        //progress info
-        emit notifyProgressDone();
-        m_dev->emitSelectionChanged();
-
-        return m_cancelRequested;
-    }
-
-    if ( m_cancelRequested) {
-        emit notifyProgressDone();
-        return false;
-    }
-
-    transformPass <KisHLineIteratorPixel>(srcdev, tmpdev2, xscale, yscale*xshear, 0, m_filter, m_fixBorderAlpha);
-    if(m_dev->hasSelection())
-        m_dev->selection()->clear();
-
-    if ( m_cancelRequested) {
-        emit notifyProgressDone();
-        return false;
-    }
-
-    // Now do the second pass
-    transformPass <KisVLineIteratorPixel>(tmpdev2.data(), tmpdev3.data(), yscale, yshear, ytranslate, m_filter, m_fixBorderAlpha);
-
-    if(m_dev->hasSelection())
-        m_dev->selection()->clear();
-
-    if ( m_cancelRequested) {
-        emit notifyProgressDone();
-        return false;
-    }
-
-    if (xshear != 0.0)
-        transformPass <KisHLineIteratorPixel>(tmpdev3, m_dev, 1.0, xshear, xtranslate, m_filter, m_fixBorderAlpha);
-    else
-    {
-        // No need to filter again when we are only scaling
-        tmpdev3->move(tmpdev3->getX() + xtranslate, tmpdev3->getY());
-        rotateNone(tmpdev3, m_dev);
-    }
-
-    if (m_dev->tqparentLayer()) {
-        m_dev->tqparentLayer()->setDirty();
-    }
-    //progress info
-    emit notifyProgressDone();
-    m_dev->emitSelectionChanged();
-
-    return m_cancelRequested;
-}
diff --git a/krita/core/kis_transform_worker.h b/krita/core/kis_transform_worker.h
deleted file mode 100644
index a48b85896..000000000
--- a/krita/core/kis_transform_worker.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- *  Copyright (c) 2004 Michael Thaler <michael.thaler@physik.tu-muenchen.de>
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_TRANSFORM_WORKER_H_
-#define KIS_TRANSFORM_WORKER_H_
-
-#include "kis_types.h"
-#include "kis_progress_subject.h"
-
-class KisPaintDevice;
-class KisProgressDisplayInterface;
-class KisHLineIteratorPixel;
-class KisVLineIteratorPixel;
-class KisFilterStrategy;
-
-class KisTransformWorker : public KisProgressSubject {
-    typedef KisProgressSubject super;
-
-public:
-    KisTransformWorker(KisPaintDeviceSP dev, double  xscale, double  yscale,
-        double  xshear, double  yshear, double rotation,
-        TQ_INT32  xtranslate, TQ_INT32  ytranslate,
-        KisProgressDisplayInterface *progress, KisFilterStrategy *filter, bool fixBorderAlpha=false);
-    ~KisTransformWorker();
-
-public:
-    bool isCanceled() { return m_cancelRequested;};
-
-    bool run();
-
-private:    
-    // XXX (BSAR): Why didn't we use the shared-pointer versions of the paint device classes?
-    template <class T> void transformPass(KisPaintDevice *src, KisPaintDevice *dst, double xscale, double  shear, TQ_INT32 dx,   KisFilterStrategy *filterStrategy, bool fixBorderAlpha);
-    
-public:    
-    void rotateNone(KisPaintDeviceSP src, KisPaintDeviceSP dst);
-    void rotateRight90(KisPaintDeviceSP src, KisPaintDeviceSP dst);
-    void rotateLeft90(KisPaintDeviceSP src, KisPaintDeviceSP dst);
-    void rotate180(KisPaintDeviceSP src, KisPaintDeviceSP dst);
-
-private:
-    KisPaintDeviceSP m_dev;
-    double  m_xscale, m_yscale;
-    double  m_xshear, m_yshear, m_rotation;
-    TQ_INT32  m_xtranslate, m_ytranslate;
-    KisProgressDisplayInterface *m_progress;
-    KisFilterStrategy *m_filter;
-    // Implement KisProgressSubject
-    bool m_cancelRequested;
-    virtual void cancel() { m_cancelRequested = true; }
-    TQ_INT32 m_progressTotalSteps;
-    TQ_INT32 m_progressStep;
-    TQ_INT32 m_progressScaler;
-    TQ_INT32 m_lastProgressReport;
-    bool m_fixBorderAlpha;
-};
-
-
-inline KisTransformWorker::~KisTransformWorker()
-{
-}
-
-#endif // KIS_TRANSFORM_VISITOR_H_
diff --git a/krita/core/kis_types.h b/krita/core/kis_types.h
deleted file mode 100644
index 9c6685513..000000000
--- a/krita/core/kis_types.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KISTYPES_H_
-#define KISTYPES_H_
-
-#include <tqvaluevector.h>
-#include <tqmap.h>
-#include <tqpoint.h>
-
-#include <ksharedptr.h>
-
-#include "kis_shared_ptr_vector.h"
-
-/**
- * Define lots of shared pointer versions of Krita classes.
- * Shared pointer classes have the advantage of near automatic
- * memory management (but take care of circular references)
- * and the disadvantage that inheritiance relations are no longer
- * recognizable
- */
-
-class KisImage;
-typedef KSharedPtr<KisImage> KisImageSP;
-
-class KisPaintDevice;
-typedef KSharedPtr<KisPaintDevice> KisPaintDeviceSP;
-typedef KisSharedPtrVector<KisPaintDevice> vKisPaintDeviceSP;
-typedef vKisPaintDeviceSP::iterator vKisPaintDeviceSP_it;
-typedef vKisPaintDeviceSP::const_iterator vKisPaintDeviceSP_cit;
-
-class KisLayer;
-typedef KSharedPtr<KisLayer> KisLayerSP;
-typedef KisSharedPtrVector<KisLayer> vKisLayerSP;
-typedef vKisLayerSP::iterator vKisLayerSP_it;
-typedef vKisLayerSP::const_iterator vKisLayerSP_cit;
-
-class KisPartLayer;
-typedef KSharedPtr<KisPartLayer> KisPartLayerSP;
-
-class KisPaintLayer;
-typedef KSharedPtr<KisPaintLayer> KisPaintLayerSP;
-
-class KisAdjustmentLayer;
-typedef KSharedPtr<KisAdjustmentLayer> KisAdjustmentLayerSP;
-
-class KisGroupLayer;
-typedef KSharedPtr<KisGroupLayer> KisGroupLayerSP;
-
-class KisSelection;
-typedef KSharedPtr<KisSelection> KisSelectionSP;
-
-class KisBackground;
-typedef KSharedPtr<KisBackground> KisBackgroundSP;
-
-class KisSubstrate;
-typedef KSharedPtr<KisSubstrate> KisSubstrateSP;
-
-class KisHistogram;
-typedef KSharedPtr<KisHistogram> KisHistogramSP;
-
-class KisPaintOpFactory;
-typedef KSharedPtr<KisPaintOpFactory> KisPaintOpFactorySP;
-
-typedef TQValueVector<TQPoint> vKisSegments;
-
-//class KisGuide;
-//typedef KSharedPtr<KisGuide> KisGuideSP;
-
-class KisAlphaMask;
-typedef KSharedPtr<KisAlphaMask> KisAlphaMaskSP;
-
-class KisFilter;
-typedef KSharedPtr<KisFilter> KisFilterSP;
-
-#endif // KISTYPES_H_
diff --git a/krita/core/kis_vec.cc b/krita/core/kis_vec.cc
deleted file mode 100644
index fa54e1f90..000000000
--- a/krita/core/kis_vec.cc
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- *  kis_vec.cc - part of KImageShop
- *
- *  Copyright (c) 1999 Matthias Elter <me@kde.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "kis_vec.h"
-
-KisVector2D& KisVector2D::normalize()
-{
-    double length, ilength;
-  
-    length = m_x*m_x + m_y*m_y;
-    length = sqrt (length);
-  
-    if (length > epsilon)
-    {
-        ilength = 1/length;
-        m_x *= ilength;
-        m_y *= ilength;
-    }
-    return *this;
-}
-
-KisVector3D& KisVector3D::normalize()
-{
-    double length, ilength;
-  
-    length = m_x*m_x + m_y*m_y + m_z*m_z;
-    length = sqrt (length);
-  
-    if (length > epsilon)
-    {
-        ilength = 1/length;
-        m_x *= ilength;
-        m_y *= ilength;
-        m_z *= ilength;
-    }
-    return *this;
-}
-
-KisVector3D& KisVector3D::crossProduct(const KisVector3D &v)
-{
-    double x,y,z;
-  
-    x = m_y*v.m_z - m_z*v.m_y;
-    y = m_z*v.m_x - m_x*v.m_z;
-    z = m_x*v.m_y - m_y*v.m_x;
-    m_x=x; m_y=y; m_z=z;
-  
-    return *this;
-}
-
diff --git a/krita/core/kis_vec.h b/krita/core/kis_vec.h
deleted file mode 100644
index 08b9c5412..000000000
--- a/krita/core/kis_vec.h
+++ /dev/null
@@ -1,405 +0,0 @@
-/*
- *  kis_vec.h - part of KImageShop
- *
- *  Copyright (c) 1999 Matthias Elter <me@kde.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef __kis_vec_h__
-#define __kis_vec_h__
-
-#include <math.h>
-#include <cfloat>
-#include <tqpoint.h>
-#include "kis_point.h"
-
-/*
- * vector classes
- */
-const double epsilon = DBL_EPSILON;
-
-class KisVector2D
-{
-public:
-    KisVector2D();
-    KisVector2D(double x, double y);
-    KisVector2D(const TQPoint& p);
-    KisVector2D(const KisPoint& p);
-
-    bool isNull()    const;
-
-    double length() const;
-
-    double     x() const;
-    double     y() const;
-    void   setX(double);
-    void   setY(double);
-
-    KisVector2D &normalize();
-    double  dotProduct(const KisVector2D &) const;
-
-    KisVector2D &operator+=(const KisVector2D &);
-    KisVector2D &operator-=(const KisVector2D &);
-    KisVector2D &operator*=(int);
-    KisVector2D &operator*=(long);
-    KisVector2D &operator*=(double);
-    KisVector2D &operator/=(int);
-    KisVector2D &operator/=(long);
-    KisVector2D &operator/=(double);
-
-    friend inline bool operator==(const KisVector2D &, const KisVector2D &);
-    friend inline bool operator!=(const KisVector2D &, const KisVector2D &);
-    friend inline KisVector2D operator+(const KisVector2D &, const KisVector2D &);
-    friend inline KisVector2D operator-(const KisVector2D &, const KisVector2D &);
-    friend inline KisVector2D operator*(const KisVector2D &, int);
-    friend inline KisVector2D operator*(int, const KisVector2D &);
-    friend inline KisVector2D operator*(const KisVector2D &, long);
-    friend inline KisVector2D operator*(long, const KisVector2D &);
-    friend inline KisVector2D operator*(const KisVector2D &, double);
-    friend inline KisVector2D operator*(double, const KisVector2D &);
-    friend inline KisVector2D operator-(const KisVector2D &);
-    friend inline KisVector2D operator/(const KisVector2D &, int);
-    friend inline KisVector2D operator/(const KisVector2D &, long);
-    friend inline KisVector2D operator/(const KisVector2D &, double);
-
-    KisPoint toKisPoint() const;
-
-private:
-    double m_x;
-    double m_y;
-};
-
-inline KisVector2D::KisVector2D()
-{ m_x=0; m_y=0; }
-
-inline KisVector2D::KisVector2D(double x, double y)
-{ m_x=x; m_y=y; }
-
-inline KisVector2D::KisVector2D(const TQPoint& p)
-{
-    m_x=p.x(); m_y=p.y();
-}
-
-inline KisVector2D::KisVector2D(const KisPoint& p)
-{
-    m_x=p.x(); m_y=p.y();
-}
-
-inline bool KisVector2D::isNull() const
-{ return fabs(m_x) < epsilon && fabs(m_y) < epsilon; }
-
-inline double KisVector2D::length() const
-{  return (sqrt(m_x*m_x + m_y*m_y)); }
-
-inline double KisVector2D::dotProduct(const KisVector2D &v) const
-{ return m_x*v.m_x + m_y*v.m_y; }
-
-inline double KisVector2D::x() const
-{ return m_x; }
-
-inline double KisVector2D::y() const
-{ return m_y; }
-
-inline void KisVector2D::setX(double x)
-{ m_x=x; }
-
-inline void KisVector2D::setY(double y)
-{ m_y=y; }
-
-inline KisVector2D &KisVector2D::operator+=(const KisVector2D &v)
-{ m_x+=v.m_x; m_y+=v.m_y; return *this; }
-
-inline KisVector2D &KisVector2D::operator-=(const KisVector2D &v)
-{ m_x-=v.m_x; m_y-=v.m_y; return *this; }
-
-inline KisVector2D &KisVector2D::operator*=(int c)
-{ m_x*=c; m_y*=c; return *this; }
-
-inline KisVector2D &KisVector2D::operator*=(long c)
-{ m_x*=c; m_y*=c; return *this; }
-
-inline KisVector2D &KisVector2D::operator*=(double c)
-{ m_x*=c; m_y*=c; return *this; }
-
-inline bool operator==(const KisVector2D &v1, const KisVector2D &v2)
-{ return fabs(v1.m_x - v2.m_x) < epsilon && fabs(v1.m_y - v2.m_y) < epsilon; }
-
-inline bool operator!=(const KisVector2D &v1, const KisVector2D &v2)
-{ return !(v1 == v2); }
-
-inline KisVector2D operator+(const KisVector2D &v1, const KisVector2D &v2)
-{ return KisVector2D(v1.m_x+v2.m_x, v1.m_y+v2.m_y); }
-
-inline KisVector2D operator-(const KisVector2D &v1, const KisVector2D &v2)
-{ return KisVector2D(v1.m_x-v2.m_x, v1.m_y-v2.m_y); }
-
-inline KisVector2D operator*(const KisVector2D &v, int c)
-{ return KisVector2D((v.m_x*c), (v.m_y*c)); }
-
-inline KisVector2D operator*(int c, const KisVector2D &v)
-{ return KisVector2D((v.m_x*c), (v.m_y*c)); }
-
-inline KisVector2D operator*(const KisVector2D &v, long c)
-{ return KisVector2D((v.m_x*c), (v.m_y*c)); }
-
-inline KisVector2D operator*(long c, const KisVector2D &v)
-{ return KisVector2D((v.m_x*c), (v.m_y*c)); }
-
-inline KisVector2D operator*(const KisVector2D &v, double c)
-{ return KisVector2D(v.m_x*c, v.m_y*c); }
-
-inline KisVector2D operator*(double c, const KisVector2D &v)
-{ return KisVector2D(v.m_x*c, v.m_y*c); }
-
-inline KisVector2D operator-(const KisVector2D &v)
-{ return KisVector2D(-v.m_x, -v.m_y); }
-
-inline KisVector2D operator/(const KisVector2D &v, int c)
-{
-    if (c != 0) {
-        return KisVector2D(v.x() / c, v.y() / c);
-    } else {
-        return v;
-    }
-}
-
-inline KisVector2D operator/(const KisVector2D &v, long c)
-{
-    if (c != 0) {
-        return KisVector2D(v.x() / c, v.y() / c);
-    } else {
-        return v;
-    }
-}
-
-inline KisVector2D operator/(const KisVector2D &v, double c)
-{
-    if (c > DBL_EPSILON || c < -DBL_EPSILON) {
-        return KisVector2D(v.x() / c, v.y() / c);
-    } else {
-        return v;
-    }
-}
-
-inline KisVector2D &KisVector2D::operator/=(int c)
-{
-    if (!c == 0)
-    {
-        m_x/=c;
-        m_y/=c;
-    }
-    return *this;
-}
-
-inline KisVector2D &KisVector2D::operator/=(long c)
-{
-    if (!c == 0)
-    {
-        m_x/=c;
-        m_y/=c;
-    }
-    return *this;
-}
-
-inline KisVector2D &KisVector2D::operator/=(double c)
-{
-    if (!c == 0)
-    {
-        m_x/=c;
-        m_y/=c;
-    }
-    return *this;
-}
-
-inline KisPoint KisVector2D::toKisPoint() const
-{
-    return KisPoint(m_x, m_y);
-}
-
-class KisVector3D
-{
-public:
-    KisVector3D();
-    KisVector3D(double x, double y, double z = 0);
-    KisVector3D(int x, int y, int z = 0);
-    KisVector3D(long x, long y, long z = 0);
-
-    bool isNull()    const;
-
-    double length() const;
-
-    double     x() const;
-    double     y() const;
-    double     z() const;
-    void   setX(double);
-    void   setY(double);
-    void   setZ(double);
-
-    KisVector3D &normalize();
-    KisVector3D &crossProduct(const KisVector3D &);
-    double  dotProduct(const KisVector3D &) const;
-
-    KisVector3D &operator+=(const KisVector3D &);
-    KisVector3D &operator-=(const KisVector3D &);
-    KisVector3D &operator*=(int);
-    KisVector3D &operator*=(long);
-    KisVector3D &operator*=(double);
-    KisVector3D &operator/=(int);
-    KisVector3D &operator/=(long);
-    KisVector3D &operator/=(double);
-
-    friend inline bool operator==(const KisVector3D &, const KisVector3D &);
-    friend inline bool operator!=(const KisVector3D &, const KisVector3D &);
-    friend inline KisVector3D operator+(const KisVector3D &, const KisVector3D &);
-    friend inline KisVector3D operator-(const KisVector3D &, const KisVector3D &);
-    friend inline KisVector3D operator*(const KisVector3D &, int);
-    friend inline KisVector3D operator*(int, const KisVector3D &);
-    friend inline KisVector3D operator*(const KisVector3D &, long);
-    friend inline KisVector3D operator*(long, const KisVector3D &);
-    friend inline KisVector3D operator*(const KisVector3D &, double);
-    friend inline KisVector3D operator*(double, const KisVector3D &);
-    friend inline KisVector3D operator-(const KisVector3D &);
-    friend inline KisVector3D operator/(const KisVector3D &, int);
-    friend inline KisVector3D operator/(const KisVector3D &, long);
-    friend inline KisVector3D operator/(const KisVector3D &, double);
-
-private:
-    double m_x;
-    double m_y;
-    double m_z;
-};
-
-inline KisVector3D::KisVector3D()
-{ m_x=0; m_y=0; m_z=0; }
-
-inline KisVector3D::KisVector3D(double x, double y, double z)
-{ m_x=x; m_y=y; m_z=z; }
-
-inline KisVector3D::KisVector3D(int x, int y, int z)
-{ m_x=static_cast<double>(x); m_y=static_cast<double>(y); m_z=static_cast<double>(z); }
-
-inline KisVector3D::KisVector3D(long x, long y, long z)
-{ m_x=static_cast<double>(x); m_y=static_cast<double>(y); m_z=static_cast<double>(z); }
-
-inline bool KisVector3D::isNull() const
-{ return fabs(m_x) < epsilon && fabs(m_y) < epsilon && fabs(m_z) < epsilon; }
-
-inline double KisVector3D::length() const
-{  return (sqrt(m_x*m_x + m_y*m_y + m_z*m_z)); }
-
-inline double KisVector3D::dotProduct(const KisVector3D &v) const
-{ return m_x*v.m_x + m_y*v.m_y + m_z*v.m_z; }
-
-inline double KisVector3D::x() const
-{ return m_x; }
-
-inline double KisVector3D::y() const
-{ return m_y; }
-
-inline double KisVector3D::z() const
-{ return m_z; }
-
-inline void KisVector3D::setX(double x)
-{ m_x=x; }
-
-inline void KisVector3D::setY(double y)
-{ m_y=y; }
-
-inline void KisVector3D::setZ(double z)
-{ m_z=z; }
-
-inline KisVector3D &KisVector3D::operator+=(const KisVector3D &v)
-{ m_x+=v.m_x; m_y+=v.m_y; m_z+=v.m_z; return *this; }
-
-inline KisVector3D &KisVector3D::operator-=(const KisVector3D &v)
-{ m_x-=v.m_x; m_y-=v.m_y; m_z-=v.m_z; return *this; }
-
-inline KisVector3D &KisVector3D::operator*=(int c)
-{ m_x*=c; m_y*=c; m_z*=c; return *this; }
-
-inline KisVector3D &KisVector3D::operator*=(long c)
-{ m_x*=c; m_y*=c; m_z*=c; return *this; }
-
-inline KisVector3D &KisVector3D::operator*=(double c)
-{ m_x*=c; m_y*=c; m_z*=c; return *this; }
-
-inline bool operator==(const KisVector3D &v1, const KisVector3D &v2)
-{ return fabs(v1.m_x - v2.m_x) < epsilon && fabs(v1.m_y - v2.m_y) < epsilon && fabs(v1.m_z - v2.m_z) < epsilon; }
-
-inline bool operator!=(const KisVector3D &v1, const KisVector3D &v2)
-{ return !(v1 == v2); }
-
-inline KisVector3D operator+(const KisVector3D &v1, const KisVector3D &v2)
-{ return KisVector3D(v1.m_x+v2.m_x, v1.m_y+v2.m_y, v1.m_z+v2.m_z); }
-
-inline KisVector3D operator-(const KisVector3D &v1, const KisVector3D &v2)
-{ return KisVector3D(v1.m_x-v2.m_x, v1.m_y-v2.m_y, v1.m_z-v2.m_z); }
-
-inline KisVector3D operator*(const KisVector3D &v, int c)
-{ return KisVector3D((v.m_x*c), (v.m_y*c), (v.m_z*c)); }
-
-inline KisVector3D operator*(int c, const KisVector3D &v)
-{ return KisVector3D((v.m_x*c), (v.m_y*c), (v.m_z*c)); }
-
-inline KisVector3D operator*(const KisVector3D &v, long c)
-{ return KisVector3D((v.m_x*c), (v.m_y*c), (v.m_z*c)); }
-
-inline KisVector3D operator*(long c, const KisVector3D &v)
-{ return KisVector3D((v.m_x*c), (v.m_y*c), (v.m_z*c)); }
-
-inline KisVector3D operator*(const KisVector3D &v, double c)
-{ return KisVector3D(v.m_x*c, v.m_y*c, v.m_z*c); }
-
-inline KisVector3D operator*(double c, const KisVector3D &v)
-{ return KisVector3D(v.m_x*c, v.m_y*c, v.m_z*c); }
-
-inline KisVector3D operator-(const KisVector3D &v)
-{ return KisVector3D(-v.m_x, -v.m_y, -v.m_z); }
-
-inline KisVector3D &KisVector3D::operator/=(int c)
-{
-    if (!c == 0)
-    {
-        m_x/=c;
-        m_y/=c;
-        m_z/=c;
-    }
-    return *this;
-}
-
-inline KisVector3D &KisVector3D::operator/=(long c)
-{
-    if (!c == 0)
-    {
-        m_x/=c;
-        m_y/=c;
-        m_z/=c;
-    }
-    return *this;
-}
-
-inline KisVector3D &KisVector3D::operator/=(double c)
-{
-    if (!c == 0)
-    {
-        m_x/=c;
-        m_y/=c;
-        m_z/=c;
-    }
-    return *this;
-}
-
-#endif
diff --git a/krita/core/tests/Makefile.am b/krita/core/tests/Makefile.am
deleted file mode 100644
index de1a869a3..000000000
--- a/krita/core/tests/Makefile.am
+++ /dev/null
@@ -1,30 +0,0 @@
-AM_CPPFLAGS = \
-	-I$(srcdir)/../ \
-	-I$(srcdir)/../tiles \
-	-I$(srcdir)/../../sdk \
-	-I$(srcdir)/../../kritacolor \
-	-I$(srcdir)/../../colorspaces/rgb_u8 \
-	$(KOFFICE_INCLUDES) \
-	$(KOPAINTER_INCLUDES) \
-	$(all_includes)
-
-# The check_ target makes sure we don't install the modules,
-# $(KDE_CHECK_PLUGIN) assures a shared library is created.
-check_LTLIBRARIES = kunittest_kis_integer_maths_tester.la kunittest_kis_image_tester.la kunittest_kis_filter_configuration_tester.la
-
-kunittest_kis_integer_maths_tester_la_SOURCES = kis_integer_maths_tester.cpp
-kunittest_kis_integer_maths_tester_la_LIBADD = -lkunittest ../../libkritacommon.la
-kunittest_kis_integer_maths_tester_la_LDFLAGS = -module $(KDE_CHECK_PLUGIN) $(all_libraries)
-
-kunittest_kis_image_tester_la_SOURCES = kis_image_tester.cpp
-kunittest_kis_image_tester_la_LIBADD = -lkunittest ../../libkritacommon.la
-kunittest_kis_image_tester_la_LDFLAGS = -module $(KDE_CHECK_PLUGIN) $(all_libraries)
-
-
-kunittest_kis_filter_configuration_tester_la_SOURCES = kis_filter_configuration_tester.cc
-kunittest_kis_filter_configuration_tester_la_LIBADD = -lkunittest ../../libkritacommon.la
-kunittest_kis_filter_configuration_tester_la_LDFLAGS = -module $(KDE_CHECK_PLUGIN) $(all_libraries)
-
-
-check-local: kunittest_kis_integer_maths_tester.la kunittest_kis_image_tester.la kunittest_kis_filter_configuration_tester.la
-	kunittestmodrunner
diff --git a/krita/core/tests/kis_filter_configuration_tester.cc b/krita/core/tests/kis_filter_configuration_tester.cc
deleted file mode 100644
index 6a4a26313..000000000
--- a/krita/core/tests/kis_filter_configuration_tester.cc
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- *  Copyright (c) 2006 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <tqapplication.h>
-
-#include <kdebug.h>
-#include <kunittest/runner.h>
-#include <kunittest/module.h>
-
-#include "kis_filter_configuration_tester.h"
-#include "../kis_filter_configuration.h"
-
-using namespace KUnitTest;
-
-KUNITTEST_MODULE(kunittest_kis_filter_configuration_tester, "KisFilterConfiguration Tester");
-KUNITTEST_MODULE_REGISTER_TESTER(KisFilterConfigurationTester);
-
-void KisFilterConfigurationTester::allTests()
-{
-    testCreation();
-    testSetGetProperty();
-    testRoundTrip();
-}
-
-void KisFilterConfigurationTester::testCreation()
-{
-    KisFilterConfiguration * kfc = new KisFilterConfiguration("test", 1);
-    if ( kfc == 0 ) failure("Could not create test filter configuration");
-    CHECK(kfc->version(), 1);
-    CHECK(kfc->name(), TQString("test"));
-
-    delete kfc;
-    success("testCreation success");
-}
-
-void KisFilterConfigurationTester::testRoundTrip()
-{
-    KisFilterConfiguration * kfc = new KisFilterConfiguration("test", 1);
-    CHECK(kfc->version(), 1);
-    CHECK(kfc->name(), TQString("test"));
-    TQString s = kfc->toString();
-    delete kfc;
-    kfc = new KisFilterConfiguration(s);
-    CHECK(kfc->version(), 1);
-    CHECK(kfc->name(), TQString("test"));
-    delete kfc;
-    success("testDeserializaton success");
-}
-
-void KisFilterConfigurationTester::testSetGetProperty()
-{
-}
diff --git a/krita/core/tests/kis_filter_configuration_tester.h b/krita/core/tests/kis_filter_configuration_tester.h
deleted file mode 100644
index 6e1ca2e58..000000000
--- a/krita/core/tests/kis_filter_configuration_tester.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *  Copyright (c) 2006 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_FILTER_CONFIGURATION_TESTER_H
-#define KIS_FILTER_CONFIGURATION_TESTER_H
-
-#include <kunittest/tester.h>
-
-class KisFilterConfigurationTester : public KUnitTest::Tester
-{
-public:
-    void allTests();
-    void testCreation();
-    void testRoundTrip();
-    void testSetGetProperty();
-};
-
-#endif
-
diff --git a/krita/core/tests/kis_image_tester.cpp b/krita/core/tests/kis_image_tester.cpp
deleted file mode 100644
index f660f3945..000000000
--- a/krita/core/tests/kis_image_tester.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <tqapplication.h>
-
-#include <kunittest/runner.h>
-#include <kunittest/module.h>
-
-#include "kis_image_tester.h"
-#include "kis_image.h"
-#include "kis_meta_registry.h"
-#include "kis_rgb_colorspace.h"
-#include "kis_colorspace_factory_registry.h"
-#include "kis_color.h"
-#include "kis_paint_layer.h"
-#include "kis_group_layer.h"
-
-using namespace KUnitTest;
-
-KUNITTEST_MODULE(kunittest_kis_image_tester, "KisImage Tester");
-KUNITTEST_MODULE_REGISTER_TESTER(KisImageTester);
-
-void KisImageTester::allTests()
-{
-    mergeTests();
-}
-
-#define IMAGE_WIDTH 1
-#define IMAGE_HEIGHT 1
-
-void KisImageTester::mergeTests()
-{
-    KisColorSpace * colorSpace = KisMetaRegistry::instance()->csRegistry()->getColorSpace(KisID("RGBA", ""), "");
-
-    KisImageSP image = new KisImage(0, IMAGE_WIDTH, IMAGE_HEIGHT, colorSpace, "merge test");
-
-    KisColor mergedPixel = image->mergedPixel(0, 0);
-
-    TQColor colour;
-    TQ_UINT8 opacity;
-
-    mergedPixel.toTQColor(&colour, &opacity);
-
-    CHECK(opacity, OPACITY_TRANSPARENT);
-
-    KisPaintLayer * layer = new KisPaintLayer(image, "layer 1", OPACITY_OPAQUE);
-    image->addLayer(layer, image->rootLayer(), 0);
-
-    layer->paintDevice()->setPixel(0, 0, TQColor(255, 128, 64), OPACITY_OPAQUE);
-
-    mergedPixel = image->mergedPixel(0, 0);
-    mergedPixel.toTQColor(&colour, &opacity);
-
-    CHECK(opacity, OPACITY_OPAQUE);
-    CHECK(colour.red(), 255);
-    CHECK(colour.green(), 128);
-    CHECK(colour.blue(), 64);
-
-    KisPaintLayer * layer2 = new KisPaintLayer(image, "layer 2", OPACITY_OPAQUE / 2);
-    image->addLayer(layer2, image->rootLayer(), layer);
-
-    layer2->paintDevice()->setPixel(0, 0, TQColor(255, 255, 255), OPACITY_OPAQUE);
-
-    mergedPixel = image->mergedPixel(0, 0);
-    mergedPixel.toTQColor(&colour, &opacity);
-
-    CHECK(opacity, OPACITY_OPAQUE);
-    CHECK(colour.red(), 255);
-    CHECK(colour.green(), 128 + ((255 - 128) / 2));
-    CHECK(colour.blue(), 64 + ((255 - 64) / 2));
-}
-
-
diff --git a/krita/core/tests/kis_image_tester.h b/krita/core/tests/kis_image_tester.h
deleted file mode 100644
index 4e6768386..000000000
--- a/krita/core/tests/kis_image_tester.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_IMAGE_TESTER_H
-#define KIS_IMAGE_TESTER_H
-
-#include <kunittest/tester.h>
-
-class KisImageTester : public KUnitTest::Tester
-{
-public:
-    void allTests();
-    void mergeTests();
-};
-
-#endif
-
diff --git a/krita/core/tests/kis_integer_maths_tester.cpp b/krita/core/tests/kis_integer_maths_tester.cpp
deleted file mode 100644
index 1878731b5..000000000
--- a/krita/core/tests/kis_integer_maths_tester.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <kunittest/runner.h>
-#include <kunittest/module.h>
-
-#include "kis_integer_maths_tester.h"
-#include "kis_integer_maths.h"
-
-using namespace KUnitTest;
-
-KUNITTEST_MODULE(kunittest_kis_integer_maths_tester, "Integer Maths Tester");
-KUNITTEST_MODULE_REGISTER_TESTER(KisIntegerMathsTester);
-
-void KisIntegerMathsTester::allTests()
-{
-    UINT8Tests();
-    UINT16Tests();
-    conversionTests();
-}
-
-void KisIntegerMathsTester::UINT8Tests()
-{
-    CHECK((int)UINT8_MULT(0, 255), 0);
-    CHECK((int)UINT8_MULT(255, 255), 255);
-
-    CHECK((int)UINT8_MULT(128, 255), 128);
-    CHECK((int)UINT8_MULT(255, 128), 128);
-
-    CHECK((int)UINT8_MULT(1, 255), 1);
-    CHECK((int)UINT8_MULT(1, 127), 0);
-    CHECK((int)UINT8_MULT(64, 128), 32);
-
-    CHECK((int)UINT8_DIVIDE(255, 255), 255);
-    CHECK((int)UINT8_DIVIDE(64, 128), 128);
-    CHECK((int)UINT8_DIVIDE(1, 64), 4);
-    CHECK((int)UINT8_DIVIDE(0, 1), 0);
-
-    CHECK((int)UINT8_BLEND(255, 0, 0), 0);
-    CHECK((int)UINT8_BLEND(255, 0, 128), 128);
-    CHECK((int)UINT8_BLEND(255, 128, 128), 192);
-    CHECK((int)UINT8_BLEND(128, 64, 255), 128);
-}
-
-void KisIntegerMathsTester::UINT16Tests()
-{
-    CHECK((int)UINT16_MULT(0, 65535), 0);
-    CHECK((int)UINT16_MULT(65535, 65535), 65535);
-
-    CHECK((int)UINT16_MULT(32768, 65535), 32768);
-    CHECK((int)UINT16_MULT(65535, 32768), 32768);
-
-    CHECK((int)UINT16_MULT(1, 65535), 1);
-    CHECK((int)UINT16_MULT(1, 32767), 0);
-    CHECK((int)UINT16_MULT(16384, 32768), 8192);
-
-    CHECK((int)UINT16_DIVIDE(65535, 65535), 65535);
-    CHECK((int)UINT16_DIVIDE(16384, 32768), 32768);
-    CHECK((int)UINT16_DIVIDE(1, 16384), 4);
-    CHECK((int)UINT16_DIVIDE(0, 1), 0);
-
-    CHECK((int)UINT16_BLEND(65535, 0, 0), 0);
-    CHECK((int)UINT16_BLEND(65535, 0, 32768), 32768);
-    CHECK((int)UINT16_BLEND(65535, 32768, 32768), 49152);
-    CHECK((int)UINT16_BLEND(32768, 16384, 65535), 32768);
-}
-
-void KisIntegerMathsTester::conversionTests()
-{
-    CHECK((int)UINT8_TO_UINT16(255), 65535);
-    CHECK((int)UINT8_TO_UINT16(0), 0);
-    CHECK((int)UINT8_TO_UINT16(128), 128 * 257);
-
-    CHECK((int)UINT16_TO_UINT8(65535), 255);
-    CHECK((int)UINT16_TO_UINT8(0), 0);
-    CHECK((int)UINT16_TO_UINT8(128 * 257), 128);
-}
-
diff --git a/krita/core/tests/kis_integer_maths_tester.h b/krita/core/tests/kis_integer_maths_tester.h
deleted file mode 100644
index 2a9a9a20f..000000000
--- a/krita/core/tests/kis_integer_maths_tester.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_INTEGER_MATHS_TESTER_H
-#define KIS_INTEGER_MATHS_TESTER_H
-
-#include <kunittest/tester.h>
-
-class KisIntegerMathsTester : public KUnitTest::Tester
-{
-public:
-        void allTests();
-    void UINT8Tests();
-    void UINT16Tests();
-    void conversionTests();
-};
-
-#endif
-
diff --git a/krita/core/tiles/Makefile.am b/krita/core/tiles/Makefile.am
deleted file mode 100644
index 050cb4a44..000000000
--- a/krita/core/tiles/Makefile.am
+++ /dev/null
@@ -1,23 +0,0 @@
-if include_kunittest_tests
-TESTSDIR = tests
-endif
-
-SUBDIRS = . $(TESTSDIR)
-
-INCLUDES  = -I$(srcdir)/../ \
-	-I$(srcdir)/../../sdk \
-    $(KOFFICE_INCLUDES) \
-	-I$(interfacedir) \
-	$(all_includes)
-
-noinst_LTLIBRARIES = libkritatile.la
-
-libkritatile_la_SOURCES = kis_tiledvlineiterator.cc kis_tiledhlineiterator.cc \
-		kis_tileddatamanager.cc kis_tile.cc kis_tilediterator.cc kis_tiledrectiterator.cc \
-		kis_memento.cc kis_tilemanager.cc kis_tiled_random_accessor.cc 
-
-libkritatile_la_METASOURCES = AUTO
-
-include_HEADERS = \
-    kis_tileddatamanager.h
-noinst_HEADERS = kis_tiled_random_accessor.h
diff --git a/krita/core/tiles/kis_memento.cc b/krita/core/tiles/kis_memento.cc
deleted file mode 100644
index aaec37242..000000000
--- a/krita/core/tiles/kis_memento.cc
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include "kis_global.h"
-#include "kis_memento.h"
-#include "kis_tile.h"
-#include "kis_tile_global.h"
-
-KisMemento::KisMemento(TQ_UINT32 pixelSize) : KShared()
-{
-    m_hashTable = new KisTile * [1024];
-    Q_CHECK_PTR(m_hashTable);
-
-    m_redoHashTable = new KisTile * [1024];
-    Q_CHECK_PTR(m_redoHashTable);
-
-    for(int i = 0; i < 1024; i++)
-    {
-        m_hashTable [i] = 0;
-        m_redoHashTable [i] = 0;
-    }
-    m_numTiles = 0;
-    m_defPixel = new TQ_UINT8[pixelSize];
-    m_redoDefPixel = new TQ_UINT8[pixelSize];
-    m_valid = true;
-}
-
-KisMemento::~KisMemento()
-{
-    // Deep delete every tile
-    for(int i = 0; i < 1024; i++)
-    {
-        deleteAll(m_hashTable[i]);
-        deleteAll(m_redoHashTable[i]);
-    }
-    delete [] m_hashTable;
-    delete [] m_redoHashTable;
-
-    // Delete defPixel arrays;
-    delete [] m_defPixel;
-    delete [] m_redoDefPixel;
-}
-
-KisMemento::DeletedTileList::~DeletedTileList()
-{
-    clear();
-}
-
-void KisMemento::DeletedTileList::clear()
-{
-    // They are not tiles just references. The actual tiles have already been deleted,
-    // so just delete the references.
-
-    const DeletedTile *deletedTile = m_firstDeletedTile;
-
-    while (deletedTile)
-    {
-        const DeletedTile *d = deletedTile;
-        deletedTile = deletedTile->next();
-        delete d;
-    }
-
-    m_firstDeletedTile = 0;
-}
-
-void KisMemento::deleteAll(KisTile *tile)
-{
-    while(tile)
-    {
-        KisTile *deltile = tile;
-        tile = tile->getNext();
-        delete deltile;
-    }
-}
-
-void KisMemento::extent(TQ_INT32 &x, TQ_INT32 &y, TQ_INT32 &w, TQ_INT32 &h) const
-{
-    TQ_INT32 maxX = TQ_INT32_MIN;
-    TQ_INT32 maxY = TQ_INT32_MIN;
-    x = TQ_INT32_MAX;
-    y = TQ_INT32_MAX;
-
-    for(int i = 0; i < 1024; i++)
-    {
-        KisTile *tile = m_hashTable[i];
-
-        while(tile)
-        {
-            if(x > tile->getCol() * KisTile::WIDTH)
-                x = tile->getCol() * KisTile::WIDTH;
-            if(maxX < (tile->getCol() + 1) * KisTile::WIDTH - 1)
-                maxX = (tile->getCol() + 1) * KisTile::WIDTH - 1;
-            if(y > tile->getRow() * KisTile::HEIGHT)
-                y = tile->getRow() * KisTile::HEIGHT;
-            if(maxY < (tile->getRow() +1) * KisTile::HEIGHT - 1)
-                maxY = (tile->getRow() +1) * KisTile::HEIGHT - 1;
-
-            tile = tile->getNext();
-        }
-    }
-
-    if(maxX < x)
-        w = 0;
-    else
-        w = maxX - x +1;
-
-    if(maxY < y)
-        h = 0;
-    else
-        h = maxY - y +1;
-}
-
-TQRect KisMemento::extent() const
-{
-    TQ_INT32 x;
-    TQ_INT32 y;
-    TQ_INT32 w;
-    TQ_INT32 h;
-
-    extent(x, y, w, h);
-
-    return TQRect(x, y, w, h);
-}
-
-bool KisMemento::containsTile(TQ_INT32 col, TQ_INT32 row, TQ_UINT32 tileHash) const
-{
-    const KisTile *tile = m_hashTable[tileHash];
-
-    while (tile != 0)
-    {
-        if (tile->getRow() == row && tile->getCol() == col) {
-            return true;
-        }
-
-        tile = tile->getNext();
-    }
-
-    return false;
-}
-
diff --git a/krita/core/tiles/kis_memento.h b/krita/core/tiles/kis_memento.h
deleted file mode 100644
index 5942dc445..000000000
--- a/krita/core/tiles/kis_memento.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- *  Copyright (c) 2005 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_MEMENTO_H_
-#define KIS_MEMENTO_H_
-
-#include <tqglobal.h>
-#include <tqrect.h>
-
-#include <ksharedptr.h>
-
-class KisTile;
-class KisTiledDataManager;
-
-class KisMemento;
-typedef KSharedPtr<KisMemento> KisMementoSP;
-
-class KisMemento : public KShared
-{
-public:
-    KisMemento(TQ_UINT32 pixelSize);
-    ~KisMemento();
-/*
-    // For consolidating transactions
-    virtual KisTransaction &operator+=(const KisTransaction &) = 0;
-    // For consolidating transactions
-    virtual KisTransaction &operator+(const KisTransaction &,
-                  const KisTransaction &) = 0;
-*/
-    void extent(TQ_INT32 &x, TQ_INT32 &y, TQ_INT32 &w, TQ_INT32 &h) const;
-    TQRect extent() const;
-
-    bool containsTile(TQ_INT32 col, TQ_INT32 row, TQ_UINT32 tileHash) const;
-
-    // For debugging use
-    bool valid() const { return m_valid; }
-    void setInvalid() { m_valid = false; }
-
-private:
-
-    class DeletedTile {
-    public:
-        DeletedTile(TQ_INT32 col, TQ_INT32 row, const DeletedTile *next)
-            : m_col(col),
-              m_row(row),
-              m_next(next)
-        {
-        }
-
-        TQ_INT32 col() const { return m_col; }
-        TQ_INT32 row() const { return m_row; }
-        const DeletedTile *next() const { return m_next; }
-
-    private:
-        TQ_INT32 m_col;
-        TQ_INT32 m_row;
-        const DeletedTile *m_next;
-    };
-
-    class DeletedTileList {
-    public:
-        DeletedTileList()
-            : m_firstDeletedTile(0)
-        {
-        }
-
-        ~DeletedTileList();
-
-        void addTile(TQ_INT32 col, TQ_INT32 row)
-        {
-            DeletedTile *d = new DeletedTile(col, row, m_firstDeletedTile);
-            Q_CHECK_PTR(d);
-
-            m_firstDeletedTile = d;
-        }
-
-        DeletedTile *firstTile() const
-        {
-            return m_firstDeletedTile;
-        }
-
-        void clear();
-
-    private:
-        DeletedTile *m_firstDeletedTile;
-    };
-
-    void addTileToDeleteOnRedo(TQ_INT32 col, TQ_INT32 row)
-    {
-        m_redoDelTilesList.addTile(col, row);
-    }
-
-    DeletedTile *tileListToDeleteOnRedo()
-    {
-        return m_redoDelTilesList.firstTile();
-    }
-
-    void clearTilesToDeleteOnRedo()
-    {
-        m_redoDelTilesList.clear();
-    }
-
-    void addTileToDeleteOnUndo(TQ_INT32 col, TQ_INT32 row)
-    {
-        m_undoDelTilesList.addTile(col, row);
-    }
-
-    DeletedTile *tileListToDeleteOnUndo()
-    {
-        return m_undoDelTilesList.firstTile();
-    }
-
-    void clearTilesToDeleteOnUndo()
-    {
-        m_undoDelTilesList.clear();
-    }
-
-    friend class KisTiledDataManager;
-    KisTiledDataManager *originator;
-    KisTile **m_hashTable;
-    TQ_UINT32 m_numTiles;
-    KisTile **m_redoHashTable;
-    DeletedTileList m_redoDelTilesList;
-    DeletedTileList m_undoDelTilesList;
-    TQ_UINT8 *m_defPixel;
-    TQ_UINT8 *m_redoDefPixel;
-    void deleteAll(KisTile *tile);
-
-    bool m_valid;
-};
-
-#endif // KIS_MEMENTO_H_
diff --git a/krita/core/tiles/kis_tile.cc b/krita/core/tiles/kis_tile.cc
deleted file mode 100644
index 86d55128f..000000000
--- a/krita/core/tiles/kis_tile.cc
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- *  Copyright (c) 2002 Patrick Julien <freak@codepimps.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#include <assert.h>
-#include <kdebug.h>
-
-#include "kis_tile_global.h"
-#include "kis_tile.h"
-#include "kis_tileddatamanager.h"
-#include "kis_tilemanager.h"
-
-const TQ_INT32 KisTile::WIDTH = 64;
-const TQ_INT32 KisTile::HEIGHT = 64;
-
-
-KisTile::KisTile(TQ_INT32 pixelSize, TQ_INT32 col, TQ_INT32 row, const TQ_UINT8 *defPixel)
-{
-    m_pixelSize = pixelSize;
-    m_data = 0;
-    m_nextTile = 0;
-    m_col = col;
-    m_row = row;
-    m_nReadlock = 0;
-
-    allocate();
-
-    KisTileManager::instance()->registerTile(this);
-
-    setData(defPixel);
-}
-
-KisTile::KisTile(const KisTile& rhs, TQ_INT32 col, TQ_INT32 row)
-{
-    if (this != &rhs) {
-        m_pixelSize = rhs.m_pixelSize;
-        m_data = 0;
-        m_nextTile = 0;
-        m_nReadlock = 0;
-
-        allocate();
-
-        // Assure we have data to copy
-        rhs.addReader();
-        memcpy(m_data, rhs.m_data, WIDTH * HEIGHT * m_pixelSize * sizeof(TQ_UINT8));
-        rhs.removeReader();
-
-        m_col = col;
-        m_row = row;
-
-        KisTileManager::instance()->registerTile(this);
-    }
-}
-
-KisTile::KisTile(const KisTile& rhs)
-{
-    if (this != &rhs) {
-        m_pixelSize = rhs.m_pixelSize;
-        m_col = rhs.m_col;
-        m_row = rhs.m_row;
-        m_data = 0;
-        m_nextTile = 0;
-        m_nReadlock = 0;
-
-        allocate();
-
-        rhs.addReader();
-        memcpy(m_data, rhs.m_data, WIDTH * HEIGHT * m_pixelSize * sizeof(TQ_UINT8));
-        rhs.removeReader();
-
-        KisTileManager::instance()->registerTile(this);
-    }
-}
-
-KisTile::~KisTile()
-{
-    KisTileManager::instance()->deregisterTile(this); // goes before the deleting of m_data!
-
-    if (m_data) {
-//        delete[] m_data;
-        KisTileManager::instance()->dontNeedTileData(m_data, m_pixelSize);
-        m_data = 0;
-    }
-    assert( !readers() );
-}
-
-void KisTile::allocate()
-{
-    if (m_data == 0) {
-        assert (!readers());
-        m_data = KisTileManager::instance()->requestTileData(m_pixelSize);
-        Q_CHECK_PTR(m_data);
-    }
-}
-
-void KisTile::setNext(KisTile *n)
-{
-    m_nextTile = n;
-}
-
-TQ_UINT8 *KisTile::data(TQ_INT32 x, TQ_INT32 y ) const
-{
-    addReader();
-    removeReader();
-
-    Q_ASSERT(m_data != 0);
-    if (m_data == 0) return 0;
-
-    return m_data + m_pixelSize * ( y * WIDTH + x );
-}
-
-void KisTile::setData(const TQ_UINT8 *pixel)
-{
-    addReader();
-    TQ_UINT8 *dst = m_data;
-    for(int i=0; i <WIDTH * HEIGHT;i++)
-    {
-        memcpy(dst, pixel, m_pixelSize);
-        dst+=m_pixelSize;
-    }
-    removeReader();
-}
-
-void KisTile::addReader() const
-{
-    if (m_nReadlock++ == 0)
-        KisTileManager::instance()->ensureTileLoaded(this);
-    else if (m_nReadlock < 0) {
-        kdDebug(41000) << m_nReadlock << endl;
-        assert(0);
-    }
-    assert(m_data);
-}
-
-void KisTile::removeReader() const
-{
-    if (--m_nReadlock == 0)
-        KisTileManager::instance()->maySwapTile(this);
-}
diff --git a/krita/core/tiles/kis_tile.h b/krita/core/tiles/kis_tile.h
deleted file mode 100644
index f2d6f1e9a..000000000
--- a/krita/core/tiles/kis_tile.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- *  Copyright (c) 2004 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_TILE_H_
-#define KIS_TILE_H_
-
-#include <tqglobal.h>
-#include <tqrect.h>
-
-class KisTiledDataManager;
-class KisTiledIterator;
-
-/**
- * Provides abstraction to a tile.  A tile tqcontains
- * a part of a PaintDevice, but only the individual pixels
- * are accesable and that only via iterators.
- */
-class KisTile  {
-public:
-    KisTile(TQ_INT32 pixelSize, TQ_INT32 col, TQ_INT32 row, const TQ_UINT8 *defPixel);
-    KisTile(const KisTile& rhs, TQ_INT32 col, TQ_INT32 row);
-    KisTile(const KisTile& rhs);
-    ~KisTile();
-
-public:
-    void release();
-    void allocate();
-
-    TQ_UINT8 *data(TQ_INT32 xoff, TQ_INT32 yoff) const;
-    TQ_UINT8 *data() const { return m_data; }
-
-    void setData(const TQ_UINT8 *pixel);
-
-    TQ_INT32 refCount() const;
-    void ref();
-
-    TQ_INT32 getRow() const { return m_row; }
-    TQ_INT32 getCol() const { return m_col; }
-
-    TQRect extent() const { return TQRect(m_col * WIDTH, m_row * HEIGHT, WIDTH, HEIGHT); }
-
-    void setNext(KisTile *);
-    KisTile *getNext() const { return m_nextTile; }
-
-    // These are const because they don't change the external data the tile represents,
-    // although they do change internal representations. We need to be able to request
-    // access to a tile in a const enviroment (like copyconstructor and so)!
-    void addReader() const;
-    void removeReader() const;
-    TQ_INT32 readers() { return m_nReadlock; }
-
-    friend class KisTiledIterator;
-    friend class KisTiledDataManager;
-    friend class KisMemento;
-    friend class KisTileManager;
-private:
-    KisTile& operator=(const KisTile&);
-
-private:
-    TQ_UINT8 *m_data;
-    mutable TQ_INT32 m_nReadlock;
-    TQ_INT32 m_row;
-    TQ_INT32 m_col;
-    TQ_INT32 m_pixelSize;
-    KisTile *m_nextTile;
-
-public:
-    static const TQ_INT32 WIDTH;
-    static const TQ_INT32 HEIGHT;
-};
-
-#endif // KIS_TILE_H_
-
diff --git a/krita/core/tiles/kis_tile_global.h b/krita/core/tiles/kis_tile_global.h
deleted file mode 100644
index 93052a4f6..000000000
--- a/krita/core/tiles/kis_tile_global.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_TILE_GLOBAL_H_
-#define KIS_TILE_GLOBAL_H_
-
-#define DBG_AREA_TILES 41000
-
-#endif
diff --git a/krita/core/tiles/kis_tiled_random_accessor.cc b/krita/core/tiles/kis_tiled_random_accessor.cc
deleted file mode 100644
index 159faf18c..000000000
--- a/krita/core/tiles/kis_tiled_random_accessor.cc
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- *  copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-#include "kis_tiled_random_accessor.h"
-
-
-const TQ_UINT32 KisTiledRandomAccessor::CACHESIZE = 4; // Define the number of tiles we keep in cache
-
-KisTiledRandomAccessor::KisTiledRandomAccessor(KisTiledDataManager *ktm, TQ_INT32 x, TQ_INT32 y, bool writable) : m_ktm(ktm), m_tilesCache(new KisTileInfo*[4]), m_tilesCacheSize(0), m_pixelSize (m_ktm->pixelSize()), m_writable(writable)
-{
-    Q_ASSERT(ktm != 0);
-    moveTo(x, y);
-}
-
-KisTiledRandomAccessor::~KisTiledRandomAccessor()
-{
-    for( uint i = 0; i < m_tilesCacheSize; i++)
-    {
-        m_tilesCache[i]->tile->removeReader();
-        m_tilesCache[i]->oldtile->removeReader();
-        delete m_tilesCache[i];
-    }
-    delete m_tilesCache;
-}
-
-void KisTiledRandomAccessor::moveTo(TQ_INT32 x, TQ_INT32 y)
-{
-    // Look in the cache if the tile if the data is available
-    for( uint i = 0; i < m_tilesCacheSize; i++)
-    {
-        if( x >= m_tilesCache[i]->area_x1 && x <= m_tilesCache[i]->area_x2 &&
-            y >= m_tilesCache[i]->area_y1 && y <= m_tilesCache[i]->area_y2 )
-        {
-            KisTileInfo* kti = m_tilesCache[i];
-            TQ_UINT32 offset = x - kti->area_x1 + (y -kti->area_y1) * KisTile::WIDTH;
-            offset *= m_pixelSize;
-            m_data = kti->data + offset;
-            m_oldData = kti->oldData + offset;
-            if(i > 0)
-            {
-                memmove(m_tilesCache+1,m_tilesCache, i * sizeof(KisTileInfo*));
-                m_tilesCache[0] = kti;
-            }
-            return;
-        }
-    }
-    // The tile wasn't in cache
-    if(m_tilesCacheSize == KisTiledRandomAccessor::CACHESIZE )
-    { // Remove last element of cache
-        m_tilesCache[CACHESIZE-1]->tile->removeReader();
-        m_tilesCache[CACHESIZE-1]->oldtile->removeReader();
-        delete m_tilesCache[CACHESIZE-1];
-    } else {
-        m_tilesCacheSize++;
-    }
-    TQ_UINT32 col = xToCol( x );
-    TQ_UINT32 row = yToRow( y );
-    KisTileInfo* kti = fetchTileData(col, row);
-    TQ_UINT32 offset = x - kti->area_x1 + (y - kti->area_y1) * KisTile::WIDTH;
-    offset *= m_pixelSize;
-    m_data = kti->data + offset;
-    m_oldData = kti->oldData + offset;
-    memmove(m_tilesCache+1,m_tilesCache, (KisTiledRandomAccessor::CACHESIZE-1) * sizeof(KisTileInfo*));
-    m_tilesCache[0] = kti;
-}
-
-
-TQ_UINT8 * KisTiledRandomAccessor::rawData() const
-{
-    return m_data;
-}
-
-
-const TQ_UINT8 * KisTiledRandomAccessor::oldRawData() const
-{
-#ifdef DEBUG
-    kdWarning(!m_ktm->hasCurrentMemento(), DBG_AREA_TILES) << "Accessing oldRawData() when no transaction is in progress.\n";
-#endif
-    return m_oldData;
-}
-
-KisTiledRandomAccessor::KisTileInfo* KisTiledRandomAccessor::fetchTileData(TQ_INT32 col, TQ_INT32 row)
-{
-    KisTileInfo* kti = new KisTileInfo;
-    kti->tile = m_ktm->getTile(col, row, m_writable);
-    
-    kti->tile->addReader();
-
-    kti->data = kti->tile->data();
-    
-    kti->area_x1 = col * KisTile::HEIGHT;
-    kti->area_y1 = row * KisTile::WIDTH;
-    kti->area_x2 = kti->area_x1 + KisTile::HEIGHT - 2;
-    kti->area_y2 = kti->area_y1 + KisTile::WIDTH - 2;
-
-    // set old data
-    kti->oldtile = m_ktm->getOldTile(col, row, kti->tile);
-    kti->oldtile->addReader();
-    kti->oldData = kti->oldtile->data();
-    return kti;
-}
diff --git a/krita/core/tiles/kis_tiled_random_accessor.h b/krita/core/tiles/kis_tiled_random_accessor.h
deleted file mode 100644
index 23768ee64..000000000
--- a/krita/core/tiles/kis_tiled_random_accessor.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- *  copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
- *
- *  this program is free software; you can redistribute it and/or modify
- *  it under the terms of the gnu general public license as published by
- *  the free software foundation; either version 2 of the license, or
- *  (at your option) any later version.
- *
- *  this program is distributed in the hope that it will be useful,
- *  but without any warranty; without even the implied warranty of
- *  merchantability or fitness for a particular purpose.  see the
- *  gnu general public license for more details.
- *
- *  you should have received a copy of the gnu general public license
- *  along with this program; if not, write to the free software
- *  foundation, inc., 675 mass ave, cambridge, ma 02139, usa.
- */
-#ifndef KIS_TILED_RANDOM_ACCESSOR_H
-#define KIS_TILED_RANDOM_ACCESSOR_H
-
-#include <tqrect.h>
-#include <tqvaluelist.h>
-
-#include <ksharedptr.h>
-
-#include <kis_tileddatamanager.h>
-
-class KisTile;
-
-class KisTiledRandomAccessor : public KShared {
-    struct KisTileInfo {
-        KisTile* tile;
-        KisTile* oldtile;
-        TQ_UINT8* data;
-        const TQ_UINT8* oldData;
-        TQ_INT32 area_x1, area_y1, area_x2, area_y2;
-    };
-    public:
-        KisTiledRandomAccessor(KisTiledDataManager *ktm, TQ_INT32 x, TQ_INT32 y, bool writable);
-        ~KisTiledRandomAccessor();
-
-
-    private:
-        inline TQ_UINT32 xToCol(TQ_UINT32 x) const { if (m_ktm) return m_ktm->xToCol(x); else return 0; };
-        inline TQ_UINT32 yToRow(TQ_UINT32 y) const { if (m_ktm) return m_ktm->yToRow(y); else return 0; };
-        KisTileInfo* fetchTileData(TQ_INT32 col, TQ_INT32 row);
-
-    public:
-        /// Move to a given x,y position, fetch tiles and data
-        void moveTo(TQ_INT32 x, TQ_INT32 y);
-        TQ_UINT8* rawData() const;
-        const TQ_UINT8* oldRawData() const;
-
-    private:
-        KisTiledDataManager *m_ktm;
-        KisTileInfo** m_tilesCache;
-        TQ_UINT32 m_tilesCacheSize;
-        TQ_INT32 m_pixelSize;
-        TQ_UINT8* m_data;
-        const TQ_UINT8* m_oldData;
-        bool m_writable;
-        static const TQ_UINT32 CACHESIZE; // Define the number of tiles we keep in cache
-
-};
-
-#endif
diff --git a/krita/core/tiles/kis_tileddatamanager.cc b/krita/core/tiles/kis_tileddatamanager.cc
deleted file mode 100644
index 629b1b382..000000000
--- a/krita/core/tiles/kis_tileddatamanager.cc
+++ /dev/null
@@ -1,1044 +0,0 @@
-/*
- *  Copyright (c) 2004 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <tqvaluevector.h>
-
-#include <kdebug.h>
-
-#include <KoStore.h>
-
-#include "kis_global.h"
-#include "kis_debug_areas.h"
-#include "kis_tileddatamanager.h"
-#include "kis_tilediterator.h"
-#include "kis_tile.h"
-#include "kis_memento.h"
-#include "kis_tilemanager.h"
-
-/* The data area is divided into tiles each say 64x64 pixels (defined at compiletime)
- * The tiles are laid out in a matrix that can have negative indexes.
- * The matrix grows automatically if needed (a call for writeacces to a tile outside the current extent)
- *  Even though the matrix has grown it may still not contain tiles at specific positions. They are created on demand
- */
-
-KisTiledDataManager::KisTiledDataManager(TQ_UINT32 pixelSize, const TQ_UINT8 *defPixel)
-{
-    m_pixelSize = pixelSize;
-
-    m_defPixel = new TQ_UINT8[m_pixelSize];
-    Q_CHECK_PTR(m_defPixel);
-    memcpy(m_defPixel, defPixel, m_pixelSize);
-
-    m_defaultTile = new KisTile(pixelSize,0,0, m_defPixel);
-    Q_CHECK_PTR(m_defaultTile);
-
-    m_hashTable = new KisTile * [1024];
-    Q_CHECK_PTR(m_hashTable);
-
-    for(int i = 0; i < 1024; i++)
-        m_hashTable [i] = 0;
-    m_numTiles = 0;
-    m_currentMemento = 0;
-    m_extentMinX = TQ_INT32_MAX;
-    m_extentMinY = TQ_INT32_MAX;
-    m_extentMaxX = TQ_INT32_MIN;
-    m_extentMaxY = TQ_INT32_MIN;
-}
-
-KisTiledDataManager::KisTiledDataManager(const KisTiledDataManager & dm)
-    : KShared()
-{
-    m_pixelSize = dm.m_pixelSize;
-
-    m_defPixel = new TQ_UINT8[m_pixelSize];
-    Q_CHECK_PTR(m_defPixel);
-    memcpy(m_defPixel, dm.m_defPixel, m_pixelSize);
-
-    m_defaultTile = new KisTile(*dm.m_defaultTile, dm.m_defaultTile->getCol(), dm.m_defaultTile->getRow());
-    Q_CHECK_PTR(m_defaultTile);
-
-    m_hashTable = new KisTile * [1024];
-    Q_CHECK_PTR(m_hashTable);
-
-    m_numTiles = 0;
-    m_currentMemento = 0;
-    m_extentMinX = dm.m_extentMinX;
-    m_extentMinY = dm.m_extentMinY;
-    m_extentMaxX = dm.m_extentMaxX;
-    m_extentMaxY = dm.m_extentMaxY;
-
-    // Deep copy every tile. XXX: Make this copy-on-write!
-    for(int i = 0; i < 1024; i++)
-    {
-        const KisTile *tile = dm.m_hashTable[i];
-
-        m_hashTable[i] = 0;
-
-        while(tile)
-        {
-            KisTile *newtile = new KisTile(*tile, tile->getCol(), tile->getRow());
-            Q_CHECK_PTR(newtile);
-
-            newtile->setNext(m_hashTable[i]);
-            m_hashTable[i] = newtile;
-            tile = tile->getNext();
-
-            m_numTiles++;
-        }
-    }
-
-}
-
-KisTiledDataManager::~KisTiledDataManager()
-{
-    // Deep delete every tile
-    for(int i = 0; i < 1024; i++)
-    {
-        const KisTile *tile = m_hashTable[i];
-
-        while(tile)
-        {
-            const KisTile *deltile = tile;
-            tile = tile->getNext();
-            delete deltile;
-        }
-    }
-    delete [] m_hashTable;
-    delete m_defaultTile;
-    delete [] m_defPixel;
-}
-
-void KisTiledDataManager::setDefaultPixel(const TQ_UINT8 *defPixel)
-{
-    if (defPixel == 0) return;
-
-    memcpy(m_defPixel, defPixel, m_pixelSize);
-
-    m_defaultTile->setData(m_defPixel);
-}
-
-bool KisTiledDataManager::write(KoStore *store)
-{
-
-    if (store == 0) return false;
-    //Q_ASSERT(store != 0);
-
-    char str[80];
-
-    sprintf(str, "%d\n", m_numTiles);
-    store->write(str,strlen(str));
-
-    for(int i = 0; i < 1024; i++)
-    {
-        const KisTile *tile = m_hashTable[i];
-
-        while(tile)
-        {
-            sprintf(str, "%d,%d,%d,%d\n", tile->getCol() * KisTile::WIDTH,
-                            tile->getRow() * KisTile::HEIGHT,
-                            KisTile::WIDTH, KisTile::HEIGHT);
-            store->write(str,strlen(str));
-
-            tile->addReader();
-            store->write((char *)tile->m_data, KisTile::HEIGHT * KisTile::WIDTH * m_pixelSize);
-            tile->removeReader();
-
-            tile = tile->getNext();
-        }
-    }
-
-    return true;
-}
-bool KisTiledDataManager::read(KoStore *store)
-{
-    if (store == 0) return false;
-    //Q_ASSERT(store != 0);
-
-    char str[80];
-    TQ_INT32 x,y,w,h;
-
-    TQIODevice *stream = store->device();
-    if (stream == 0) return false;
-    //Q_ASSERT(stream != 0);
-
-    stream->readLine(str, 79);
-
-    sscanf(str,"%u",&m_numTiles);
-
-    for(TQ_UINT32 i = 0; i < m_numTiles; i++)
-    {
-        stream->readLine(str, 79);
-        sscanf(str,"%d,%d,%d,%d",&x,&y,&w,&h);
-
-        // the following is only correct as long as tile size is not changed
-        // The first time we change tilesize the dimensions just read needs to be respected
-        // but for now we just assume that tiles are the same size as ever.
-        TQ_INT32 row = yToRow(y);
-        TQ_INT32 col = xToCol(x);
-        TQ_UINT32 tileHash = calcTileHash(col, row);
-
-        KisTile *tile = new KisTile(m_pixelSize, col, row, m_defPixel);
-        Q_CHECK_PTR(tile);
-
-        updateExtent(col,row);
-
-        tile->addReader();
-        store->read((char *)tile->m_data, KisTile::HEIGHT * KisTile::WIDTH * m_pixelSize);
-        tile->removeReader();
-
-        tile->setNext(m_hashTable[tileHash]);
-        m_hashTable[tileHash] = tile;
-    }
-    return true;
-}
-
-void KisTiledDataManager::extent(TQ_INT32 &x, TQ_INT32 &y, TQ_INT32 &w, TQ_INT32 &h) const
-{
-    x = m_extentMinX;
-    y = m_extentMinY;
-
-    if (m_extentMaxX >= m_extentMinX) {
-        w = m_extentMaxX - m_extentMinX + 1;
-    } else {
-        w = 0;
-    }
-
-    if (m_extentMaxY >= m_extentMinY) {
-        h = m_extentMaxY - m_extentMinY + 1;
-    } else {
-        h = 0;
-    }
-}
-
-TQRect KisTiledDataManager::extent() const
-{
-    TQ_INT32 x;
-    TQ_INT32 y;
-    TQ_INT32 w;
-    TQ_INT32 h;
-
-    extent(x, y, w, h);
-
-    return TQRect(x, y, w, h);
-}
-
-void KisTiledDataManager::setExtent(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h)
-{
-    TQRect newRect = TQRect(x, y, w, h).normalize();
-    //printRect("newRect", newRect);
-    TQRect oldRect = TQRect(m_extentMinX, m_extentMinY, m_extentMaxX - m_extentMinX + 1, m_extentMaxY - m_extentMinY + 1).normalize();
-    //printRect("oldRect", oldRect);
-
-    // Do nothing if the desired size is bigger than we currently are: that is handled by the autoextending automatically
-    if (newRect.tqcontains(oldRect)) return;
-
-    // Loop through all tiles, if a tile is wholly outside the extent, add to the memento, then delete it,
-    // if the tile is partially outside the extent, clear the outside pixels to the default pixel.
-    for(int tileHash = 0; tileHash < 1024; tileHash++)
-    {
-        KisTile *tile = m_hashTable[tileHash];
-        KisTile *previousTile = 0;
-
-        while(tile)
-        {
-            TQRect tileRect = TQRect(tile->getCol() * KisTile::WIDTH, tile->getRow() * KisTile::HEIGHT, KisTile::WIDTH, KisTile::HEIGHT);
-            //printRect("tileRect", tileRect);
-
-            if (newRect.tqcontains(tileRect)) {
-                // Completely inside, do nothing
-                previousTile = tile;
-                tile = tile->getNext();
-            }
-            else {
-                ensureTileMementoed(tile->getCol(), tile->getRow(), tileHash, tile);
-
-                if (newRect.intersects(tileRect)) {
-
-                    // Create the intersection of the tile and new rect
-                    TQRect intersection = newRect.intersect(tileRect);
-                    //printRect("intersection", intersection);
-                    intersection.setRect(intersection.x() - tileRect.x(), intersection.y() - tileRect.y(), intersection.width(), intersection.height());
-
-                    // This can be done a lot more efficiently, no doubt, by clearing runs of pixels to the left and the right of
-                    // the intersecting line.
-                    tile->addReader();
-                    for (int y = 0; y < KisTile::HEIGHT; ++y) {
-                        for (int x = 0; x < KisTile::WIDTH; ++x) {
-                            if (!intersection.tqcontains(x,y)) {
-                                TQ_UINT8 * ptr = tile->data(x, y);
-                                memcpy(ptr, m_defPixel, m_pixelSize);
-                            }
-                        }
-                    }
-                    tile->removeReader();
-                    previousTile = tile;
-                    tile = tile->getNext();
-                }
-                else {
-                    KisTile *deltile = tile;
-                    tile = tile->getNext();
-
-                    m_numTiles--;
-
-                    if (previousTile)
-                        previousTile->setNext(tile);
-                    else
-                        m_hashTable[tileHash] = tile;
-                    delete deltile;
-                }
-            }
-        }
-    }
-
-    // Set the extent correctly
-    m_extentMinX = x;
-    m_extentMinY = y;
-    m_extentMaxX = x + w - 1;
-    m_extentMaxY = y + h - 1;
-}
-
-void KisTiledDataManager::recalculateExtent()
-{
-    m_extentMinX = TQ_INT32_MAX;
-    m_extentMinY = TQ_INT32_MAX;
-    m_extentMaxX = TQ_INT32_MIN;
-    m_extentMaxY = TQ_INT32_MIN;
-
-    // Loop through all tiles.
-    for (int tileHash = 0; tileHash < 1024; tileHash++)
-    {
-        const KisTile *tile = m_hashTable[tileHash];
-
-        while (tile)
-        {
-            updateExtent(tile->getCol(), tile->getRow());
-            tile = tile->getNext();
-        }
-    }
-}
-
-void KisTiledDataManager::clear(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h, TQ_UINT8 clearValue)
-{
-    if (w < 1 || h < 1) {
-        return;
-    }
-
-    TQ_INT32 firstColumn = xToCol(x);
-    TQ_INT32 lastColumn = xToCol(x + w - 1);
-
-    TQ_INT32 firstRow = yToRow(y);
-    TQ_INT32 lastRow = yToRow(y + h - 1);
-
-    TQRect clearRect(x, y, w, h);
-
-    const TQ_UINT32 rowStride = KisTile::WIDTH * m_pixelSize;
-
-    for (TQ_INT32 row = firstRow; row <= lastRow; ++row) {
-        for (TQ_INT32 column = firstColumn; column <= lastColumn; ++column) {
-
-            KisTile *tile = getTile(column, row, true);
-            TQRect tileRect = tile->extent();
-
-            TQRect clearTileRect = clearRect & tileRect;
-
-            tile->addReader();
-            if (clearTileRect == tileRect) {
-                // Clear whole tile
-                memset(tile->data(), clearValue, KisTile::WIDTH * KisTile::HEIGHT * m_pixelSize);
-            } else {
-
-                TQ_UINT32 rowsRemaining = clearTileRect.height();
-                TQ_UINT8 *dst = tile->data(clearTileRect.x() - tileRect.x(), clearTileRect.y() - tileRect.y());
-
-                while (rowsRemaining > 0) {
-                    memset(dst, clearValue, clearTileRect.width() * m_pixelSize);
-                    dst += rowStride;
-                    --rowsRemaining;
-                }
-            }
-            tile->removeReader();
-        }
-    }
-}
-
-void KisTiledDataManager::clear(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h, const TQ_UINT8 *clearPixel)
-{
-    Q_ASSERT(clearPixel != 0);
-
-    if (clearPixel == 0 || w < 1 || h < 1) {
-        return;
-    }
-
-    bool pixelBytesAreTheSame = true;
-
-    for (TQ_UINT32 i = 0; i < m_pixelSize; ++i) {
-        if (clearPixel[i] != clearPixel[0]) {
-            pixelBytesAreTheSame = false;
-            break;
-        }
-    }
-
-    if (pixelBytesAreTheSame) {
-        clear(x, y, w, h, clearPixel[0]);
-    } else {
-
-        TQ_INT32 firstColumn = xToCol(x);
-        TQ_INT32 lastColumn = xToCol(x + w - 1);
-
-        TQ_INT32 firstRow = yToRow(y);
-        TQ_INT32 lastRow = yToRow(y + h - 1);
-
-        TQRect clearRect(x, y, w, h);
-
-        const TQ_UINT32 rowStride = KisTile::WIDTH * m_pixelSize;
-
-        TQ_UINT8 *clearPixelData = 0;
-
-        if (w >= KisTile::WIDTH && h >= KisTile::HEIGHT) {
-
-            // There might be a whole tile to be cleared so generate a cleared tile.
-            clearPixelData = new TQ_UINT8[KisTile::WIDTH * KisTile::HEIGHT * m_pixelSize];
-
-            TQ_UINT8 *dst = clearPixelData;
-            TQ_UINT32 pixelsRemaining = KisTile::WIDTH;
-
-            // Generate one row
-            while (pixelsRemaining > 0) {
-                memcpy(dst, clearPixel, m_pixelSize);
-                dst += m_pixelSize;
-                --pixelsRemaining;
-            }
-
-            TQ_UINT32 rowsRemaining = KisTile::HEIGHT - 1;
-
-            // Copy to the rest of the rows.
-            while (rowsRemaining > 0) {
-                memcpy(dst, clearPixelData, rowStride);
-                dst += rowStride;
-                --rowsRemaining;
-            }
-
-        } else {
-
-            // Generate one row
-            TQ_UINT32 maxRunLength = TQMIN(w, KisTile::WIDTH);
-
-            clearPixelData = new TQ_UINT8[maxRunLength * m_pixelSize];
-
-            TQ_UINT8 *dst = clearPixelData;
-            TQ_UINT32 pixelsRemaining = maxRunLength;
-
-            while (pixelsRemaining > 0) {
-                memcpy(dst, clearPixel, m_pixelSize);
-                dst += m_pixelSize;
-                --pixelsRemaining;
-            }
-        }
-
-        for (TQ_INT32 row = firstRow; row <= lastRow; ++row) {
-            for (TQ_INT32 column = firstColumn; column <= lastColumn; ++column) {
-
-                KisTile *tile = getTile(column, row, true);
-                TQRect tileRect = tile->extent();
-
-                TQRect clearTileRect = clearRect & tileRect;
-
-                if (clearTileRect == tileRect) {
-
-                    // Clear whole tile
-                    tile->addReader();
-                    memcpy(tile->data(), clearPixelData, KisTile::WIDTH * KisTile::HEIGHT * m_pixelSize);
-                    tile->removeReader();
-                } else {
-
-                    TQ_UINT32 rowsRemaining = clearTileRect.height();
-                    tile->addReader();
-                    TQ_UINT8 *dst = tile->data(clearTileRect.x() - tileRect.x(), clearTileRect.y() - tileRect.y());
-
-                    while (rowsRemaining > 0) {
-                        memcpy(dst, clearPixelData, clearTileRect.width() * m_pixelSize);
-                        dst += rowStride;
-                        --rowsRemaining;
-                    }
-                    tile->removeReader();
-                }
-            }
-        }
-
-        delete [] clearPixelData;
-    }
-}
-
-void KisTiledDataManager::clear()
-{
-    // Loop through all tiles, add to the memento, then delete it,
-    for(int tileHash = 0; tileHash < 1024; tileHash++)
-    {
-        const KisTile *tile = m_hashTable[tileHash];
-
-        while(tile)
-        {
-            ensureTileMementoed(tile->getCol(), tile->getRow(), tileHash, tile);
-
-            const KisTile *deltile = tile;
-            tile = tile->getNext();
-
-            delete deltile;
-        }
-        m_hashTable[tileHash] = 0;
-    }
-
-    m_numTiles = 0;
-
-    // Set the extent correctly
-    m_extentMinX = TQ_INT32_MAX;
-    m_extentMinY = TQ_INT32_MAX;
-    m_extentMaxX = TQ_INT32_MIN;
-    m_extentMaxY = TQ_INT32_MIN;
-}
-
-void KisTiledDataManager::paste(KisDataManagerSP data,  TQ_INT32 sx, TQ_INT32 sy, TQ_INT32 dx, TQ_INT32 dy,
-             TQ_INT32 w, TQ_INT32 h)
-{
-    //CBR_MISSING
-    sx=sy=dx=dy=w=h;data=0;
-}
-
-
-TQ_UINT32 KisTiledDataManager::calcTileHash(TQ_INT32 col, TQ_INT32 row)
-{
-    return ((row << 5) + (col & 0x1F)) & 0x3FF;
-}
-
-KisMementoSP KisTiledDataManager::getMemento()
-{
-    m_currentMemento = new KisMemento(m_pixelSize);
-    Q_CHECK_PTR(m_currentMemento);
-
-    memcpy(m_currentMemento->m_defPixel, m_defPixel, m_pixelSize);
-
-    return m_currentMemento;
-}
-
-void KisTiledDataManager::rollback(KisMementoSP memento)
-{
-    if (memento == 0) return;
-    //Q_ASSERT(memento != 0);
-
-    if (m_currentMemento != 0) {
-        // Undo means our current memento is no longer valid so remove it.
-        m_currentMemento = 0;
-    }
-
-    // Rollback means restoring all of the tiles in the memento to our hashtable.
-
-    // But first clear the memento redo hashtable.
-    // This is nessesary as new changes might have been done since last rollback (automatic filters)
-    for(int i = 0; i < 1024; i++)
-    {
-        memento->deleteAll(memento->m_redoHashTable[i]);
-        memento->m_redoHashTable[i]=0;
-    }
-
-    // Also clear the table of deleted tiles
-    memento->clearTilesToDeleteOnRedo();
-
-    // Now on to the real rollback
-
-    memcpy(memento->m_redoDefPixel, m_defPixel, m_pixelSize);
-    setDefaultPixel(memento->m_defPixel);
-
-    for(int i = 0; i < 1024; i++)
-    {
-        KisTile *tile = memento->m_hashTable[i];
-
-        while(tile)
-        {
-            // The memento has a tile stored that we need to roll back
-            // Now find the corresponding one in our hashtable
-            KisTile *curTile = m_hashTable[i];
-            KisTile *preTile = 0;
-            while(curTile)
-            {
-                if(curTile->getRow() == tile->getRow() && curTile->getCol() == tile->getCol())
-                {
-                    break;
-                }
-                preTile = curTile;
-                curTile = curTile->getNext();
-            }
-
-            if(curTile)
-            {
-                // Remove it from our hashtable
-                if(preTile)
-                    preTile->setNext(curTile->getNext());
-                else
-                    m_hashTable[i]= curTile->getNext();
-
-                m_numTiles--;
-
-                // And put it in the redo hashtable of the memento
-                curTile->setNext(memento->m_redoHashTable[i]);
-                memento->m_redoHashTable[i] = curTile;
-            }
-            else
-            {
-                memento->addTileToDeleteOnRedo(tile->getCol(), tile->getRow());
-                // As we are pratically adding a new tile we need to update the extent
-                updateExtent(tile->getCol(), tile->getRow());
-            }
-
-            // Put a copy of the memento tile into our hashtable
-            curTile = new KisTile(*tile);
-            Q_CHECK_PTR(curTile);
-            m_numTiles++;
-
-            curTile->setNext(m_hashTable[i]);
-            m_hashTable[i] = curTile;
-
-            tile = tile->getNext();
-        }
-    }
-
-    if (memento->tileListToDeleteOnUndo() != 0) {
-        // XXX: We currently add these tiles above, only to delete them again here.
-        deleteTiles(memento->tileListToDeleteOnUndo());
-    }
-}
-
-void KisTiledDataManager::rollforward(KisMementoSP memento)
-{
-    if (memento == 0) return;
-    //Q_ASSERT(memento != 0);
-
-    if (m_currentMemento != 0) {
-        // Redo means our current memento is no longer valid so remove it.
-        m_currentMemento = 0;
-    }
-
-    // Rollforward means restoring all of the tiles in the memento's redo to our hashtable.
-
-    setDefaultPixel(memento->m_redoDefPixel);
-
-    for(int i = 0; i < 1024; i++)
-    {
-        KisTile *tile = memento->m_redoHashTable[i];
-
-        while(tile)
-        {
-            // The memento has a tile stored that we need to roll forward
-            // Now find the corresponding one in our hashtable
-            KisTile *curTile = m_hashTable[i];
-            KisTile *preTile = 0;
-            while(curTile)
-            {
-                if(curTile->getRow() == tile->getRow() && curTile->getCol() == tile->getCol())
-                {
-                    break;
-                }
-                preTile = curTile;
-                curTile = curTile->getNext();
-            }
-
-            if (curTile)
-            {
-                // Remove it from our hashtable
-                if(preTile)
-                    preTile->setNext(curTile->getNext());
-                else
-                    m_hashTable[i]= curTile->getNext();
-
-                // And delete it (it's equal to the one stored in the memento's undo)
-                m_numTiles--;
-                delete curTile;
-            }
-
-            // Put a copy of the memento tile into our hashtable
-            curTile = new KisTile(*tile);
-            Q_CHECK_PTR(curTile);
-
-            curTile->setNext(m_hashTable[i]);
-            m_hashTable[i] = curTile;
-            m_numTiles++;
-            updateExtent(curTile->getCol(), curTile->getRow());
-
-            tile = tile->getNext();
-        }
-    }
-
-    // Roll forward also means re-deleting the tiles that was deleted but restored by the undo
-    if (memento->tileListToDeleteOnRedo() != 0) {
-        deleteTiles(memento->tileListToDeleteOnRedo());
-    }
-}
-
-void KisTiledDataManager::deleteTiles(const KisMemento::DeletedTile *d)
-{
-    while (d)
-    {
-        TQ_UINT32 tileHash = calcTileHash(d->col(), d->row());
-        KisTile *curTile = m_hashTable[tileHash];
-        KisTile *preTile = 0;
-        while(curTile)
-        {
-            if(curTile->getRow() == d->row() && curTile->getCol() == d->col())
-            {
-                break;
-            }
-            preTile = curTile;
-            curTile = curTile->getNext();
-        }
-        if (curTile) {
-            // Remove it from our hashtable
-            if(preTile)
-                preTile->setNext(curTile->getNext());
-            else
-                m_hashTable[tileHash] = curTile->getNext();
-    
-            // And delete it (it's equal to the one stored in the memento's undo)
-            m_numTiles--;
-            delete curTile;
-        }
-        d = d->next();
-    }
-
-    recalculateExtent();
-}
-
-void KisTiledDataManager::ensureTileMementoed(TQ_INT32 col, TQ_INT32 row, TQ_UINT32 tileHash, const KisTile *refTile)
-{
-    if (refTile == 0) return;
-    //Q_ASSERT(refTile != 0);
-
-    // Basically we search for the tile in the current memento, and if it's already there we do nothing, otherwise
-    //  we make a copy of the tile and put it in the current memento
-
-    if(!m_currentMemento)
-        return;
-
-    KisTile *tile = m_currentMemento->m_hashTable[tileHash];
-    while(tile != 0)
-    {
-        if(tile->getRow() == row && tile->getCol() == col)
-            break;
-
-        tile = tile->getNext();
-    }
-    if(tile)
-        return; // it has allready been stored
-
-    tile = new KisTile(*refTile);
-    Q_CHECK_PTR(tile);
-
-    tile->setNext(m_currentMemento->m_hashTable[tileHash]);
-    m_currentMemento->m_hashTable[tileHash] = tile;
-    m_currentMemento->m_numTiles++;
-}
-
-void KisTiledDataManager::updateExtent(TQ_INT32 col, TQ_INT32 row)
-{
-    if(m_extentMinX > col * KisTile::WIDTH)
-        m_extentMinX = col * KisTile::WIDTH;
-    if(m_extentMaxX < (col+1) * KisTile::WIDTH - 1)
-        m_extentMaxX = (col+1) * KisTile::WIDTH - 1;
-    if(m_extentMinY > row * KisTile::HEIGHT)
-        m_extentMinY = row * KisTile::HEIGHT;
-    if(m_extentMaxY < (row+1) * KisTile::HEIGHT - 1)
-        m_extentMaxY = (row+1) * KisTile::HEIGHT - 1;
-}
-
-KisTile *KisTiledDataManager::getTile(TQ_INT32 col, TQ_INT32 row, bool writeAccess)
-{
-    TQ_UINT32 tileHash = calcTileHash(col, row);
-
-    // Lookup tile in hash table
-    KisTile *tile = m_hashTable[tileHash];
-    while(tile != 0)
-    {
-        if(tile->getRow() == row && tile->getCol() == col)
-            break;
-
-        tile = tile->getNext();
-    }
-
-    // Might not have been created yet
-    if(!tile)
-    {
-        if(writeAccess)
-        {
-            // Create a new tile
-            tile = new KisTile(*m_defaultTile, col, row);
-            Q_CHECK_PTR(tile);
-
-            tile->setNext(m_hashTable[tileHash]);
-            m_hashTable[tileHash] = tile;
-            m_numTiles++;
-            updateExtent(col, row);
-
-            if (m_currentMemento && !m_currentMemento->containsTile(col, row, tileHash)) {
-                m_currentMemento->addTileToDeleteOnUndo(col, row);
-            }
-        }
-        else
-            // If only read access then it's enough to share a default tile
-            tile = m_defaultTile;
-    }
-
-    if(writeAccess)
-        ensureTileMementoed(col, row, tileHash, tile);
-
-    return tile;
-}
-
-KisTile *KisTiledDataManager::getOldTile(TQ_INT32 col, TQ_INT32 row, KisTile *def)
-{
-    KisTile *tile = 0;
-
-    // Lookup tile in hash table of current memento
-    if (m_currentMemento)
-    {
-        if (!m_currentMemento->valid()) return def;
-        //Q_ASSERT(m_currentMemento->valid());
-
-        TQ_UINT32 tileHash = calcTileHash(col, row);
-        tile = m_currentMemento->m_hashTable[tileHash];
-        while (tile != 0)
-        {
-            if (tile->getRow() == row && tile->getCol() == col)
-                break;
-
-            tile = tile->getNext();
-        }
-    }
-
-    if (!tile)
-        tile = def;
-
-    return tile;
-}
-
-TQ_UINT8* KisTiledDataManager::pixelPtr(TQ_INT32 x, TQ_INT32 y, bool writable)
-{
-    // Ahem, this is a bit not as good. The point is, this function needs the tile data,
-    // but it might be swapped out. This code swaps it in, but at function exit it might
-    // be swapped out again! THIS MAKES THE RETURNED POINTER TQUITE VOLATILE
-    return pixelPtrSafe(x, y, writable) -> data();
-}
-
-KisTileDataWrapperSP KisTiledDataManager::pixelPtrSafe(TQ_INT32 x, TQ_INT32 y, bool writable) {
-    TQ_INT32 row = yToRow(y);
-    TQ_INT32 col = xToCol(x);
-
-    // calc limits within the tile
-    TQ_INT32 yInTile = y - row * KisTile::HEIGHT;
-    TQ_INT32 xInTile = x - col * KisTile::WIDTH;
-    TQ_INT32 offset = m_pixelSize * (yInTile * KisTile::WIDTH + xInTile);
-
-    KisTile *tile = getTile(col, row, writable);
-
-    return new KisTileDataWrapper(tile, offset);
-}
-
-const TQ_UINT8* KisTiledDataManager::pixel(TQ_INT32 x, TQ_INT32 y)
-{
-    return pixelPtr(x, y, false);
-}
-
-TQ_UINT8* KisTiledDataManager::writablePixel(TQ_INT32 x, TQ_INT32 y)
-{
-    return pixelPtr(x, y, true);
-}
-
-void KisTiledDataManager::setPixel(TQ_INT32 x, TQ_INT32 y, const TQ_UINT8 * data)
-{
-    TQ_UINT8 *pixel = pixelPtr(x, y, true);
-    memcpy(pixel, data, m_pixelSize);
-}
-
-
-void KisTiledDataManager::readBytes(TQ_UINT8 * data,
-                    TQ_INT32 x, TQ_INT32 y,
-                    TQ_INT32 w, TQ_INT32 h)
-{
-    if (data == 0) return;
-    //Q_ASSERT(data != 0);
-     if (w < 0)
-         w = 0;
-
-     if (h < 0)
-        h = 0;
-
-    TQ_INT32 dstY = 0;
-    TQ_INT32 srcY = y;
-    TQ_INT32 rowsRemaining = h;
-
-    while (rowsRemaining > 0) {
-
-        TQ_INT32 dstX = 0;
-        TQ_INT32 srcX = x;
-        TQ_INT32 columnsRemaining = w;
-        TQ_INT32 numContiguousSrcRows = numContiguousRows(srcY, srcX, srcX + w - 1);
-
-        TQ_INT32 rows = TQMIN(numContiguousSrcRows, rowsRemaining);
-
-        while (columnsRemaining > 0) {
-
-            TQ_INT32 numContiguousSrcColumns = numContiguousColumns(srcX, srcY, srcY + rows - 1);
-
-            TQ_INT32 columns = TQMIN(numContiguousSrcColumns, columnsRemaining);
-
-            KisTileDataWrapperSP tileData = pixelPtrSafe(srcX, srcY, false);
-            const TQ_UINT8 *srcData = tileData -> data();
-            TQ_INT32 srcRowStride = rowStride(srcX, srcY);
-
-            TQ_UINT8 *dstData = data + ((dstX + (dstY * w)) * m_pixelSize);
-            TQ_INT32 dstRowStride = w * m_pixelSize;
-
-            for (TQ_INT32 row = 0; row < rows; row++) {
-                memcpy(dstData, srcData, columns * m_pixelSize);
-                dstData += dstRowStride;
-                srcData += srcRowStride;
-            }
-
-            srcX += columns;
-            dstX += columns;
-            columnsRemaining -= columns;
-        }
-
-        srcY += rows;
-        dstY += rows;
-        rowsRemaining -= rows;
-    }
-
-}
-
-
-void KisTiledDataManager::writeBytes(const TQ_UINT8 * bytes,
-                     TQ_INT32 x, TQ_INT32 y,
-                     TQ_INT32 w, TQ_INT32 h)
-{
-    if (bytes == 0) return;
-    //Q_ASSERT(bytes != 0);
-
-    // XXX: Is this correct?
-    if (w < 0)
-        w = 0;
-
-    if (h < 0)
-        h = 0;
-
-    TQ_INT32 srcY = 0;
-    TQ_INT32 dstY = y;
-    TQ_INT32 rowsRemaining = h;
-
-    while (rowsRemaining > 0) {
-
-        TQ_INT32 srcX = 0;
-        TQ_INT32 dstX = x;
-        TQ_INT32 columnsRemaining = w;
-        TQ_INT32 numContiguousdstRows = numContiguousRows(dstY, dstX, dstX + w - 1);
-
-        TQ_INT32 rows = TQMIN(numContiguousdstRows, rowsRemaining);
-
-        while (columnsRemaining > 0) {
-
-            TQ_INT32 numContiguousdstColumns = numContiguousColumns(dstX, dstY, dstY + rows - 1);
-
-            TQ_INT32 columns = TQMIN(numContiguousdstColumns, columnsRemaining);
-
-            //TQ_UINT8 *dstData = writablePixel(dstX, dstY);
-            KisTileDataWrapperSP tileData = pixelPtrSafe(dstX, dstY, true);
-            TQ_UINT8 *dstData = tileData->data();
-            TQ_INT32 dstRowStride = rowStride(dstX, dstY);
-
-            const TQ_UINT8 *srcData = bytes + ((srcX + (srcY * w)) * m_pixelSize);
-            TQ_INT32 srcRowStride = w * m_pixelSize;
-
-            for (TQ_INT32 row = 0; row < rows; row++) {
-                memcpy(dstData, srcData, columns * m_pixelSize);
-                srcData += srcRowStride;
-                dstData += dstRowStride;
-            }
-
-            dstX += columns;
-            srcX += columns;
-            columnsRemaining -= columns;
-        }
-
-        dstY += rows;
-        srcY += rows;
-        rowsRemaining -= rows;
-    }
-}
-
-TQ_INT32 KisTiledDataManager::numContiguousColumns(TQ_INT32 x, TQ_INT32 minY, TQ_INT32 maxY)
-{
-    TQ_INT32 numColumns;
-
-    Q_UNUSED(minY);
-    Q_UNUSED(maxY);
-
-    if (x >= 0) {
-        numColumns = KisTile::WIDTH - (x % KisTile::WIDTH);
-    } else {
-        numColumns = ((-x - 1) % KisTile::WIDTH) + 1;
-    }
-
-    return numColumns;
-}
-
-TQ_INT32 KisTiledDataManager::numContiguousRows(TQ_INT32 y, TQ_INT32 minX, TQ_INT32 maxX)
-{
-    TQ_INT32 numRows;
-
-    Q_UNUSED(minX);
-    Q_UNUSED(maxX);
-
-    if (y >= 0) {
-        numRows = KisTile::HEIGHT - (y % KisTile::HEIGHT);
-    } else {
-        numRows = ((-y - 1) % KisTile::HEIGHT) + 1;
-    }
-
-    return numRows;
-}
-
-TQ_INT32 KisTiledDataManager::rowStride(TQ_INT32 x, TQ_INT32 y)
-{
-    Q_UNUSED(x);
-    Q_UNUSED(y);
-
-    return KisTile::WIDTH * m_pixelSize;
-}
-
-TQ_INT32 KisTiledDataManager::numTiles(void) const
-{
-    return m_numTiles;
-}
-
-KisTileDataWrapper::KisTileDataWrapper(KisTile* tile, TQ_INT32 offset)
-    : m_tile(tile), m_offset(offset)
-{
-    m_tile->addReader();
-}
-
-KisTileDataWrapper::~KisTileDataWrapper()
-{
-    m_tile->removeReader();
-}
diff --git a/krita/core/tiles/kis_tileddatamanager.h b/krita/core/tiles/kis_tileddatamanager.h
deleted file mode 100644
index 20d780855..000000000
--- a/krita/core/tiles/kis_tileddatamanager.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- *  Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_TILEDDATAMANAGER_H_
-#define KIS_TILEDDATAMANAGER_H_
-
-#include <tqglobal.h>
-#include <tqvaluevector.h>
-
-#include <ksharedptr.h>
-
-#include "kis_tile_global.h"
-#include "kis_tile.h"
-#include "kis_memento.h"
-
-class KisTiledDataManager;
-typedef KSharedPtr<KisTiledDataManager> KisTiledDataManagerSP;
-
-class KisDataManager;
-typedef KSharedPtr<KisDataManager> KisDataManagerSP;
-
-class KisTiledIterator;
-class KisTiledRandomAccessor;
-class KoStore;
-
-class KisTileDataWrapper : public KShared {
-    KisTile* m_tile;
-    TQ_INT32 m_offset;
-public:
-    KisTileDataWrapper(KisTile* tile, TQ_INT32 offset);
-    virtual ~KisTileDataWrapper();
-    TQ_UINT8* data() const { return m_tile->data() + m_offset; }
-};
-
-typedef KSharedPtr<KisTileDataWrapper> KisTileDataWrapperSP;
-
-/**
- * KisTiledDataManager implements the interface that KisDataManager defines
- *
- * The interface definition is enforced by KisDataManager calling all the methods
- * which must also be defined in KisTiledDataManager. It is not allowed to change the interface
- * as other datamangers may also rely on the same interface.
- *
- * * Storing undo/redo data
- * * Offering ordered and unordered iterators over rects of pixels
- * * (eventually) efficiently loading and saving data in a format
- * that may allow deferred loading.
- *
- * A datamanager knows nothing about the type of pixel data except
- * how many TQ_UINT8's a single pixel takes.
- */
-
-class KisTiledDataManager : public KShared {
-
-protected:
-    KisTiledDataManager(TQ_UINT32 pixelSize, const TQ_UINT8 *defPixel);
-    ~KisTiledDataManager();
-    KisTiledDataManager(const KisTiledDataManager &dm);
-    KisTiledDataManager & operator=(const KisTiledDataManager &dm);
-
-
-protected:
-    // Allow the baseclass of iterators acces to the interior
-    // derived iterator classes must go through KisTiledIterator
-    friend class KisTiledIterator;
-    friend class KisTiledRandomAccessor;
-
-protected:
-
-    void setDefaultPixel(const TQ_UINT8 *defPixel);
-    const TQ_UINT8 * defaultPixel() const { return m_defPixel;};
-
-    KisMementoSP getMemento();
-    void rollback(KisMementoSP memento);
-    void rollforward(KisMementoSP memento);
-
-    // For debugging use.
-    bool hasCurrentMemento() const { return m_currentMemento != 0; }
-
-protected:
-    /**
-     * Reads and writes the tiles from/onto a KoStore (which is simply a file within a zip file)
-     *
-     */
-    bool write(KoStore *store);
-    bool read(KoStore *store);
-
-protected:
-
-    TQ_UINT32 pixelSize();
-
-    void extent(TQ_INT32 &x, TQ_INT32 &y, TQ_INT32 &w, TQ_INT32 &h) const;
-    TQRect extent() const;
-
-    void setExtent(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
-
-protected:
-
-    void clear(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h, TQ_UINT8 clearValue);
-    void clear(TQ_INT32 x, TQ_INT32 y,  TQ_INT32 w, TQ_INT32 h, const TQ_UINT8 *clearPixel);
-    void clear();
-
-
-protected:
-
-    void paste(KisDataManagerSP data,  TQ_INT32 sx, TQ_INT32 sy, TQ_INT32 dx, TQ_INT32 dy,
-                TQ_INT32 w, TQ_INT32 h);
-
-
-protected:
-
-
-    /**
-     * Get a read-only pointer to pixel (x, y).
-     */
-    const TQ_UINT8* pixel(TQ_INT32 x, TQ_INT32 y);
-
-    /**
-     * Get a read-write pointer to pixel (x, y).
-     */
-    TQ_UINT8* writablePixel(TQ_INT32 x, TQ_INT32 y);
-
-    /**
-     * write the specified data to x, y. There is no checking on pixelSize!
-     */
-    void setPixel(TQ_INT32 x, TQ_INT32 y, const TQ_UINT8 * data);
-
-
-    /**
-     * Copy the bytes in the specified rect to a vector. The caller is responsible
-     * for managing the vector.
-     */
-    void readBytes(TQ_UINT8 * bytes,
-               TQ_INT32 x, TQ_INT32 y,
-               TQ_INT32 w, TQ_INT32 h);
-    /**
-     * Copy the bytes in the vector to the specified rect. If there are bytes left
-     * in the vector after filling the rect, they will be ignored. If there are
-     * not enough bytes, the rest of the rect will be filled with the default value
-     * given (by default, 0);
-     */
-    void writeBytes(const TQ_UINT8 * bytes,
-            TQ_INT32 x, TQ_INT32 y,
-            TQ_INT32 w, TQ_INT32 h);
-
-    /// Get the number of contiguous columns starting at x, valid for all values
-    /// of y between minY and maxY.
-    TQ_INT32 numContiguousColumns(TQ_INT32 x, TQ_INT32 minY, TQ_INT32 maxY);
-
-    /// Get the number of contiguous rows starting at y, valid for all values
-    /// of x between minX and maxX.
-    TQ_INT32 numContiguousRows(TQ_INT32 y, TQ_INT32 minX, TQ_INT32 maxX);
-
-    /// Get the row stride at pixel (x, y). This is the number of bytes to add to a
-    /// pointer to pixel (x, y) to access (x, y + 1).
-    TQ_INT32 rowStride(TQ_INT32 x, TQ_INT32 y);
-
-    // For debugging use
-    TQ_INT32 numTiles() const;
-
-private:
-
-    TQ_UINT32 m_pixelSize;
-    TQ_UINT32 m_numTiles;
-    KisTile *m_defaultTile;
-    KisTile **m_hashTable;
-    KisMementoSP m_currentMemento;
-    TQ_INT32 m_extentMinX;
-    TQ_INT32 m_extentMinY;
-    TQ_INT32 m_extentMaxX;
-    TQ_INT32 m_extentMaxY;
-    TQ_UINT8 *m_defPixel;
-
-private:
-
-    void ensureTileMementoed(TQ_INT32 col, TQ_INT32 row, TQ_UINT32 tileHash, const KisTile *refTile);
-    KisTile *getOldTile(TQ_INT32 col, TQ_INT32 row, KisTile *def);
-    KisTile *getTile(TQ_INT32 col, TQ_INT32 row, bool writeAccess);
-    TQ_UINT32 calcTileHash(TQ_INT32 col, TQ_INT32 row);
-    void updateExtent(TQ_INT32 col, TQ_INT32 row);
-    void recalculateExtent();
-    void deleteTiles(const KisMemento::DeletedTile *deletedTileList);
-    TQ_INT32 xToCol(TQ_INT32 x) const;
-    TQ_INT32 yToRow(TQ_INT32 y) const;
-    void getContiguousColumnsAndRows(TQ_INT32 x, TQ_INT32 y, TQ_INT32 *columns, TQ_INT32 *rows);
-    TQ_UINT8* pixelPtr(TQ_INT32 x, TQ_INT32 y, bool writable);
-    KisTileDataWrapperSP pixelPtrSafe(TQ_INT32 x, TQ_INT32 y, bool writable);
-};
-
-
-inline TQ_UINT32 KisTiledDataManager::pixelSize()
-{
-    return m_pixelSize;
-}
-
-inline TQ_INT32 KisTiledDataManager::xToCol(TQ_INT32 x) const
-{
-    if (x >= 0) {
-        return x / KisTile::WIDTH;
-    } else {
-        return -(((-x - 1) / KisTile::WIDTH) + 1);
-    }
-}
-
-inline TQ_INT32 KisTiledDataManager::yToRow(TQ_INT32 y) const
-{
-    if (y >= 0) {
-        return y / KisTile::HEIGHT;
-    } else {
-        return -(((-y - 1) / KisTile::HEIGHT) + 1);
-    }
-}
-
-// during development the following line helps to check the interface is correct
-// it should be safe to keep it here even during normal compilation
-#include "kis_datamanager.h"
-
-#endif // KIS_TILEDDATAMANAGER_H_
-
diff --git a/krita/core/tiles/kis_tiledhlineiterator.cc b/krita/core/tiles/kis_tiledhlineiterator.cc
deleted file mode 100644
index cf023c1ed..000000000
--- a/krita/core/tiles/kis_tiledhlineiterator.cc
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * This file is part of the KDE project
- *
- * Copyright (c) 2004 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-#include <kdebug.h>
-
-#include "kis_tile_global.h"
-#include "kis_tilediterator.h"
-
-KisTiledHLineIterator::KisTiledHLineIterator( KisTiledDataManager *ndevice,  TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, bool writable) :
-    KisTiledIterator(ndevice),
-    m_right(x+w-1), m_left(x)
-{
-    Q_ASSERT(ndevice != 0);
-
-    m_writable = writable;
-    m_x = x;
-    m_y = y;
-
-    // Find tile row,col matching x,y
-    m_row = yToRow(m_y);
-    m_leftCol = xToCol(m_x);
-    m_rightCol = xToCol(m_right);
-    m_col = m_leftCol;
-
-    // calc limits within the tile
-    m_yInTile = m_y - m_row * KisTile::HEIGHT;
-    m_leftInTile = m_x - m_leftCol * KisTile::WIDTH;
-
-    if(m_col == m_rightCol)
-        m_rightInTile = m_right - m_rightCol * KisTile::WIDTH;
-    else
-        m_rightInTile = KisTile::WIDTH - 1;
-
-    m_xInTile = m_leftInTile;
-
-    fetchTileData(m_col, m_row);
-    m_offset = m_pixelSize * (m_yInTile * KisTile::WIDTH + m_xInTile);
-}
-
-KisTiledHLineIterator::KisTiledHLineIterator(const KisTiledHLineIterator& rhs)
-    : KisTiledIterator(rhs)
-{
-    if (this != &rhs) {
-        m_right = rhs.m_right;
-        m_left = rhs.m_left;
-        m_leftCol = rhs.m_leftCol;
-        m_rightCol = rhs.m_rightCol;
-        m_xInTile = rhs.m_xInTile;
-        m_yInTile = rhs.m_yInTile;
-        m_leftInTile = rhs.m_leftInTile;
-        m_rightInTile = rhs.m_rightInTile;
-    }
-}
-
-KisTiledHLineIterator& KisTiledHLineIterator::operator=(const KisTiledHLineIterator& rhs)
-{
-    if (this != &rhs) {
-        KisTiledIterator::operator=(rhs);
-        m_right = rhs.m_right;
-        m_left = rhs.m_left;
-        m_leftCol = rhs.m_leftCol;
-        m_rightCol = rhs.m_rightCol;
-        m_xInTile = rhs.m_xInTile;
-        m_yInTile = rhs.m_yInTile;
-        m_leftInTile = rhs.m_leftInTile;
-        m_rightInTile = rhs.m_rightInTile;
-    }
-    return *this;
-}
-
-KisTiledHLineIterator::~KisTiledHLineIterator( )
-{
-}
-
-KisTiledHLineIterator & KisTiledHLineIterator::operator ++ ()
-{
-    if(m_xInTile >= m_rightInTile)
-    {
-        nextTile();
-        fetchTileData(m_col, m_row);
-        m_xInTile =m_leftInTile;
-        m_offset = m_pixelSize * (m_yInTile * KisTile::WIDTH + m_xInTile);
-    }
-    else
-    {
-        m_xInTile++;
-        m_offset += m_pixelSize;
-    }
-    m_x++;
-
-    return *this;
-}
-
-void KisTiledHLineIterator::nextTile()
-{
-    if(m_col < m_rightCol)
-    {
-        m_col++;
-        m_leftInTile = 0;
-
-        if(m_col == m_rightCol)
-            m_rightInTile = m_right - m_rightCol * KisTile::WIDTH;
-        else
-            m_rightInTile = KisTile::WIDTH - 1;
-    }
-}
-
-void KisTiledHLineIterator::prevTile()
-{
-    if(m_col > m_leftCol)
-    {
-        m_col--;
-
-        if(m_col == m_leftCol) {
-            m_leftInTile = m_left - m_leftCol * KisTile::WIDTH;
-        } else {
-            m_leftInTile = 0;
-        }
-        // the only place this doesn't apply, is if we're in rightCol, and we can't go there
-        m_rightInTile = KisTile::WIDTH - 1;
-    }
-}
-
-TQ_INT32 KisTiledHLineIterator::nConseqHPixels() const
-{
-    return m_rightInTile - m_xInTile + 1;
-}
-
-KisTiledHLineIterator & KisTiledHLineIterator::operator+=(int n)
-{
-    // XXX what if outside the valid range of this iterator?
-    if(m_xInTile + n > m_rightInTile)
-    {
-        m_x += n;
-        m_col = xToCol(m_x);
-        m_xInTile = m_x - m_col * KisTile::WIDTH;
-        m_leftInTile = 0;
-
-        if(m_col == m_rightCol)
-            m_rightInTile = m_right - m_rightCol * KisTile::WIDTH;
-        else
-            m_rightInTile = KisTile::WIDTH - 1;
-
-        fetchTileData(m_col, m_row);
-    }
-    else
-    {
-        m_xInTile += n;
-        m_x += n;
-    }
-    m_offset = m_pixelSize * (m_yInTile * KisTile::WIDTH + m_xInTile);
-
-    return *this;
-}
-
-KisTiledHLineIterator & KisTiledHLineIterator::operator -- ()
-{
-    if(m_xInTile <= 0)
-    {
-        prevTile();
-        fetchTileData(m_col, m_row);
-        m_xInTile = KisTile::WIDTH - 1;
-        m_offset = m_pixelSize * (m_yInTile * KisTile::WIDTH + m_xInTile);
-    }
-    else
-    {
-        m_xInTile--;
-        m_offset -= m_pixelSize;
-    }
-    m_x--;
-
-    return *this;
-}
-
-void KisTiledHLineIterator::nextRow()
-{
-    m_y++;
-    m_yInTile++;
-    m_x = m_left;
-    m_leftInTile = m_x - m_leftCol * KisTile::WIDTH;
-    m_xInTile = m_leftInTile;
-    if( m_yInTile >= KisTile::HEIGHT )
-    { // Need a new row
-        m_yInTile = 0;
-        m_row++;
-        m_col = m_leftCol;
-        fetchTileData(m_col, m_row);
-    } else if( m_leftCol != m_col ) {
-        m_col = m_leftCol;
-        fetchTileData(m_col, m_row);
-    }
-    if(m_col == m_rightCol)
-        m_rightInTile = m_right - m_rightCol * KisTile::WIDTH;
-    else
-        m_rightInTile = KisTile::WIDTH - 1;
-    m_offset = m_pixelSize * (m_yInTile * KisTile::WIDTH + m_xInTile);
-}
diff --git a/krita/core/tiles/kis_tilediterator.cc b/krita/core/tiles/kis_tilediterator.cc
deleted file mode 100644
index b60e9a50a..000000000
--- a/krita/core/tiles/kis_tilediterator.cc
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * This file is part of the Krita
- *
- * Copyright (c) 2004 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-#include <kdebug.h>
-
-#include "kis_tile_global.h"
-#include "kis_tilediterator.h"
-
-KisTiledIterator::KisTiledIterator( KisTiledDataManager *ndevice)
-{
-    Q_ASSERT(ndevice != 0);
-    m_ktm = ndevice;
-    m_x = 0;
-    m_y = 0;
-    m_row = 0;
-    m_col = 0;
-    m_pixelSize = m_ktm->pixelSize();
-    m_tile = 0;
-    m_oldTile = 0;
-}
-
-KisTiledIterator::~KisTiledIterator( )
-{
-    if (m_tile)
-        m_tile->removeReader();
-    if (m_oldTile)
-        m_oldTile->removeReader();
-}
-
-KisTiledIterator::KisTiledIterator(const KisTiledIterator& rhs)
-    : KShared()
-{
-    if (this != &rhs) {
-        m_ktm = rhs.m_ktm;
-        m_pixelSize = rhs.m_pixelSize;
-        m_x = rhs.m_x;
-        m_y = rhs.m_y;
-        m_row = rhs.m_row;
-        m_col = rhs.m_col;
-        m_data = rhs.m_data;
-        m_oldData = rhs.m_oldData;
-        m_offset = rhs.m_offset;
-        m_tile = rhs.m_tile;
-        m_oldTile = rhs.m_oldTile;
-        m_writable = rhs.m_writable;
-        if (m_tile)
-            m_tile->addReader();
-    }
-}
-
-KisTiledIterator& KisTiledIterator::operator=(const KisTiledIterator& rhs)
-{
-    if (this != &rhs) {
-        if (m_tile)
-            m_tile->removeReader();
-        if (m_oldTile)
-            m_oldTile->removeReader();
-        m_ktm = rhs.m_ktm;
-        m_pixelSize = rhs.m_pixelSize;
-        m_x = rhs.m_x;
-        m_y = rhs.m_y;
-        m_row = rhs.m_row;
-        m_col = rhs.m_col;
-        m_data = rhs.m_data;
-        m_oldData = rhs.m_oldData;
-        m_offset = rhs.m_offset;
-        m_tile = rhs.m_tile;
-        m_oldTile = rhs.m_oldTile;
-        m_writable = rhs.m_writable;
-        if (m_tile)
-            m_tile->addReader();
-    }
-    return *this;
-}
-
-TQ_UINT8 * KisTiledIterator::rawData() const
-{
-    return m_data + m_offset;
-}
-
-
-const TQ_UINT8 * KisTiledIterator::oldRawData() const
-{
-#ifdef DEBUG
-    // Warn if we're misusing oldRawData(). If there's no memento, oldRawData is the same
-    // as rawData().
-    kdWarning(!m_ktm->hasCurrentMemento(), DBG_AREA_TILES) << "Accessing oldRawData() when no transaction is in progress.\n";
-#endif
-    return m_oldData + m_offset;
-}
-
-void KisTiledIterator::fetchTileData(TQ_INT32 col, TQ_INT32 row)
-{
-    if (m_tile)
-        m_tile->removeReader();
-    if (m_oldTile)
-        m_oldTile->removeReader();
-    m_oldTile = 0;
-
-    m_tile = m_ktm->getTile(col, row, m_writable);
-
-    if (m_tile == 0) return;
-    //Q_ASSERT(m_tile != 0);
-    m_tile->addReader();
-
-    m_data = m_tile->data();
-    if (m_data == 0) return;
-
-    //Q_ASSERT(m_data != 0);
-
-    // set old data but default to current value
-    m_oldTile = m_ktm->getOldTile(col, row, m_tile);
-    m_oldTile->addReader(); // Double locking in case m_oldTile==m_tile is no problem
-    m_oldData = m_oldTile->data();
-}
diff --git a/krita/core/tiles/kis_tilediterator.h b/krita/core/tiles/kis_tilediterator.h
deleted file mode 100644
index 958876cd4..000000000
--- a/krita/core/tiles/kis_tilediterator.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/* This file is part of the KDE project
- *   Copyright (c) 2004 Casper Boemann <cbr@boemann.dkt>
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_TILED_ITERATOR_H_
-#define KIS_TILED_ITERATOR_H_
-
-#include <tqglobal.h>
-
-#include <ksharedptr.h>
-
-#include <kis_tile.h>
-#include <kis_tileddatamanager.h>
-#include <koffice_export.h>
-/**
- * The KisIterator class iterates through the pixels of a KisPaintDevice hiding the tile structure
- */
-class KRITACORE_EXPORT KisTiledIterator : public KShared {
-
-protected:
-    KisTiledDataManager *m_ktm;
-    TQ_INT32 m_pixelSize;        // bytes per pixel
-    TQ_INT32 m_x;        // current x position
-    TQ_INT32 m_y;        // cirrent y position
-    TQ_INT32 m_row;    // row in tilemgr
-    TQ_INT32 m_col;    // col in tilemgr
-    TQ_UINT8 *m_data;
-    TQ_UINT8 *m_oldData;
-    TQ_INT32 m_offset;
-    KisTile *m_tile;
-    KisTile* m_oldTile;
-    bool m_writable;
-
-protected:
-    inline TQ_UINT32 xToCol(TQ_UINT32 x) const { if (m_ktm) return m_ktm->xToCol(x); else return 0; };
-    inline TQ_UINT32 yToRow(TQ_UINT32 y) const { if (m_ktm) return m_ktm->yToRow(y); else return 0; };
-    void fetchTileData(TQ_INT32 col, TQ_INT32 row);
-
-public:
-    KisTiledIterator( KisTiledDataManager *ktm);
-    KisTiledIterator(const KisTiledIterator&);
-    KisTiledIterator& operator=(const KisTiledIterator&);
-    ~KisTiledIterator();
-
-public:
-    // current x position
-    TQ_INT32 x() const { return m_x; };
-
-    // cirrent y position
-    TQ_INT32 y() const { return m_y; };
-
-    /// Returns a pointer to the pixel data. Do NOT interpret the data - leave that to a colorstrategy
-    TQ_UINT8 *rawData() const;
-
-    /// Returns a pointer to the pixel data as it was at the moment tof he last memento creation.
-    const TQ_UINT8 * oldRawData() const;
-};
-
-/**
- * The KisRectIterator class iterates through the pixels of a rect in a KisPaintDevice hiding the
- * tile structure
- */
-class KRITACORE_EXPORT KisTiledRectIterator : public KisTiledIterator
-{
-
-public:
-    /// do not call constructor directly use factory method in KisDataManager instead.
-    KisTiledRectIterator( KisTiledDataManager *dm, TQ_INT32  x, TQ_INT32  y, TQ_INT32  w, TQ_INT32  h, bool writable);
-    KisTiledRectIterator(const KisTiledRectIterator&);
-    KisTiledRectIterator& operator=(const KisTiledRectIterator&);
-    ~KisTiledRectIterator();
-
-public:
-    TQ_INT32 nConseqPixels() const;
-    
-    /// Advances a number of pixels until it reaches the end of the rect
-    KisTiledRectIterator & operator+=(int n);
-    
-    /// Advances one pixel. Going to the beginning of the next line when it reaches the end of a line
-    KisTiledRectIterator & operator++();
-
-    /// Goes back one pixel. Going to the end of the line above when it reaches the beginning of a line
-    //KisTiledRectIterator & operator--();
-
-    /// returns true when the iterator has reached the end
-    inline bool isDone() const { return m_beyondEnd; }
-
-
-protected:
-     TQ_INT32 m_left;
-     TQ_INT32 m_top;
-     TQ_INT32 m_w;
-     TQ_INT32 m_h;
-     TQ_INT32 m_topRow;
-     TQ_INT32 m_bottomRow;
-     TQ_INT32 m_leftCol;
-     TQ_INT32 m_rightCol;
-     TQ_INT32 m_xInTile;
-     TQ_INT32 m_yInTile;
-     TQ_INT32 m_leftInTile;
-     TQ_INT32 m_rightInTile;
-     TQ_INT32 m_topInTile;
-     TQ_INT32 m_bottomInTile;
-     bool m_beyondEnd;
-
-private:
-     void nextTile();
-};
-
-/**
- * The KisHLineIterator class iterates through the pixels of a horizontal line in a KisPaintDevice hiding the
- * tile structure
- */
-class KRITACORE_EXPORT KisTiledHLineIterator : public KisTiledIterator
-{
-
-public:
-    /// do not call constructor directly use factory method in KisDataManager instead.
-    KisTiledHLineIterator( KisTiledDataManager *dm, TQ_INT32  x, TQ_INT32  y, TQ_INT32 w, bool writable);
-    KisTiledHLineIterator(const KisTiledHLineIterator&);
-    KisTiledHLineIterator& operator=(const KisTiledHLineIterator&);
-    ~KisTiledHLineIterator();
-
-public:
-    /// Advances one pixel. Going to the beginning of the next line when it reaches the end of a line
-    KisTiledHLineIterator & operator++();
-
-    /// Returns the number of consequtive horizontal pixels that we point at
-    /// This is useful for optimizing
-    TQ_INT32 nConseqHPixels() const;
-
-    /// Advances a number of pixels until it reaches the end of the line
-    KisTiledHLineIterator & operator+=(int);
-
-    /// Goes back one pixel. Going to the end of the line above when it reaches the beginning of a line
-    KisTiledHLineIterator & operator--();
-
-    /// returns true when the iterator has reached the end
-    bool isDone() const { return m_x > m_right; }
-
-    /// increment to the next row and rewind to the begining
-    void nextRow();
-
-protected:
-     TQ_INT32 m_right;
-     TQ_INT32 m_left;
-     TQ_INT32 m_leftCol;
-     TQ_INT32 m_rightCol;
-     TQ_INT32 m_xInTile;
-     TQ_INT32 m_yInTile;
-     TQ_INT32 m_leftInTile;
-     TQ_INT32 m_rightInTile;
-
-private:
-     void nextTile();
-     void prevTile();
-};
-
-/**
- * The KisVLineIterator class iterates through the pixels of a vertical line in a KisPaintDevice hiding the
- * tile structure
- */
-class KRITACORE_EXPORT KisTiledVLineIterator : public KisTiledIterator
-{
-
-public:
-    /// do not call constructor directly use factory method in KisDataManager instead.
-    KisTiledVLineIterator( KisTiledDataManager *dm, TQ_INT32  x, TQ_INT32 y, TQ_INT32 h, bool writable);
-    KisTiledVLineIterator(const KisTiledVLineIterator&);
-    KisTiledVLineIterator& operator=(const KisTiledVLineIterator&);
-    ~KisTiledVLineIterator();
-
-public:
-    /// Advances one pixel. Going to the beginning of the next line when it reaches the end of a line
-    KisTiledVLineIterator & operator++();
-
-    /// Goes back one pixel. Going to the end of the line above when it reaches the beginning of a line
-    //KisTiledVLineIterator & operator--();
-
-    /// returns true when the iterator has reached the end
-    bool isDone() const { return m_y > m_bottom; }
-
-    /// increment to the next column and rewind to the begining
-    void nextCol();
-
-protected:
-    TQ_INT32 m_top;
-    TQ_INT32 m_bottom;
-    TQ_INT32 m_topRow;
-    TQ_INT32 m_bottomRow;
-    TQ_INT32 m_xInTile;
-    TQ_INT32 m_yInTile;
-    TQ_INT32 m_topInTile;
-    TQ_INT32 m_bottomInTile;
-
-private:
-     void nextTile();
-};
-
-#endif // KIS_TILED_ITERATOR_H_
diff --git a/krita/core/tiles/kis_tiledrectiterator.cc b/krita/core/tiles/kis_tiledrectiterator.cc
deleted file mode 100644
index 8f0f7ed1d..000000000
--- a/krita/core/tiles/kis_tiledrectiterator.cc
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * This file is part of the KDE project
- *
- *  Copyright (c) 2004 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-#include <kdebug.h>
-
-#include "kis_tile_global.h"
-#include "kis_tilediterator.h"
-
-KisTiledRectIterator::KisTiledRectIterator( KisTiledDataManager *ndevice,  TQ_INT32 nleft,
-                        TQ_INT32 ntop, TQ_INT32 nw, TQ_INT32 nh, bool writable) :
-    KisTiledIterator(ndevice),
-    m_left(nleft),
-    m_top(ntop),
-    m_w(nw),
-    m_h(nh)
-{
-
-    Q_ASSERT(ndevice != 0);
-
-    m_writable = writable;
-    m_x = nleft;
-    m_y  = ntop;
-    m_beyondEnd = (m_w == 0) || (m_h == 0);
-
-    // Find tile row,col matching x,y
-    m_topRow = yToRow(m_y);
-    m_bottomRow = yToRow(m_y + m_h - 1);
-    m_leftCol = xToCol(m_x);
-    m_rightCol = xToCol(m_x + m_w - 1);
-    m_row = m_topRow;
-    m_col = m_leftCol;
-
-    // calc limits within the tile
-    m_topInTile = m_top - m_topRow * KisTile::HEIGHT;
-
-    if(m_row == m_bottomRow)
-        m_bottomInTile = m_top + m_h - 1 - m_bottomRow * KisTile::HEIGHT;
-    else
-        m_bottomInTile = KisTile::HEIGHT - 1;
-
-    m_leftInTile = m_left - m_leftCol * KisTile::WIDTH;
-
-    if(m_col == m_rightCol)
-        m_rightInTile = m_left + m_w - 1 - m_rightCol * KisTile::WIDTH;
-    else
-        m_rightInTile = KisTile::WIDTH - 1;
-
-    m_xInTile = m_leftInTile;
-    m_yInTile = m_topInTile;
-
-    if( ! m_beyondEnd)
-        fetchTileData(m_col, m_row);
-    m_offset = m_pixelSize * (m_yInTile * KisTile::WIDTH + m_xInTile);
-}
-
-KisTiledRectIterator::KisTiledRectIterator(const KisTiledRectIterator& rhs)
-    : KisTiledIterator(rhs)
-{
-    if (this != &rhs) {
-        m_left = rhs.m_left;
-        m_top = rhs.m_top;
-        m_w = rhs.m_w;
-        m_h = rhs.m_h;
-        m_topRow = rhs.m_topRow;
-        m_bottomRow = rhs.m_bottomRow;
-        m_leftCol = rhs.m_leftCol;
-        m_rightCol = rhs.m_rightCol;
-        m_xInTile = rhs.m_xInTile;
-        m_yInTile = rhs.m_yInTile;
-        m_leftInTile = rhs.m_leftInTile;
-        m_rightInTile = rhs.m_rightInTile;
-        m_topInTile = rhs.m_topInTile;
-        m_bottomInTile = rhs.m_bottomInTile;
-        m_beyondEnd = rhs.m_beyondEnd;
-    }
-}
-
-KisTiledRectIterator& KisTiledRectIterator::operator=(const KisTiledRectIterator& rhs)
-{
-    if (this != &rhs) {
-        KisTiledIterator::operator=(rhs);
-        m_left = rhs.m_left;
-        m_top = rhs.m_top;
-        m_w = rhs.m_w;
-        m_h = rhs.m_h;
-        m_topRow = rhs.m_topRow;
-        m_bottomRow = rhs.m_bottomRow;
-        m_leftCol = rhs.m_leftCol;
-        m_rightCol = rhs.m_rightCol;
-        m_xInTile = rhs.m_xInTile;
-        m_yInTile = rhs.m_yInTile;
-        m_leftInTile = rhs.m_leftInTile;
-        m_rightInTile = rhs.m_rightInTile;
-        m_topInTile = rhs.m_topInTile;
-        m_bottomInTile = rhs.m_bottomInTile;
-        m_beyondEnd = rhs.m_beyondEnd;
-    }
-    return *this;
-}
-
-KisTiledRectIterator::~KisTiledRectIterator( )
-{
-}
-
-TQ_INT32 KisTiledRectIterator::nConseqPixels() const
-{
-    if(m_leftInTile || (m_rightInTile != KisTile::WIDTH - 1))
-        return m_rightInTile - m_xInTile + 1;
-    else
-        return KisTile::WIDTH * (m_bottomInTile - m_yInTile + 1) - m_xInTile;
-}
-
-KisTiledRectIterator & KisTiledRectIterator::operator+=(int n)
-{
-    int remainInTile;
-
-    remainInTile= (m_bottomInTile - m_yInTile) * (m_rightInTile - m_leftInTile + 1);
-    remainInTile += m_rightInTile - m_xInTile + 1;
-
-    // This while loop may not bet the fastest, but usually it's not entered more than once.
-    while(n >= remainInTile)
-    {
-        n -= remainInTile;
-        nextTile();
-        if(m_beyondEnd)
-            return *this;
-        m_yInTile = m_topInTile;
-        m_xInTile = m_leftInTile;
-        remainInTile= (m_bottomInTile - m_yInTile) * (m_rightInTile - m_leftInTile + 1);
-        remainInTile += m_rightInTile - m_xInTile + 1;
-    }
-
-    int lWidth = m_rightInTile - m_leftInTile + 1;
-    while(n >= lWidth)
-    {
-        n -= lWidth;
-        m_yInTile++;
-    }
-    m_xInTile += n;
-    m_x = m_col * KisTile::WIDTH + m_xInTile;
-    m_y = m_row * KisTile::HEIGHT + m_yInTile;
-    fetchTileData(m_col, m_row);
-    m_offset = m_pixelSize * (m_yInTile * KisTile::WIDTH + m_xInTile);
-
-    return *this;
-}
-
-
-KisTiledRectIterator & KisTiledRectIterator::operator ++ ()
-{
-    // advance through rect completing each tile before moving on
-    // as per excellent suggestion by Cyrille, avoiding excessive tile switching
-    if(m_xInTile >= m_rightInTile)
-    {
-        if (m_yInTile >= m_bottomInTile)
-        {
-            nextTile();
-            if(m_beyondEnd)
-                return *this;
-            m_yInTile = m_topInTile;
-            m_x = m_col * KisTile::WIDTH + m_leftInTile;
-            m_y = m_row * KisTile::HEIGHT + m_topInTile;
-            fetchTileData(m_col, m_row);
-        }
-        else
-        {
-            m_x -= m_rightInTile - m_leftInTile;
-            m_y++;
-            m_yInTile++;
-        }
-        m_xInTile =m_leftInTile;
-        m_offset = m_pixelSize * (m_yInTile * KisTile::WIDTH + m_xInTile);
-    }
-    else
-    {
-        m_x++;
-        m_xInTile++;
-        m_offset += m_pixelSize;
-    }
-    return *this;
-}
-
-void KisTiledRectIterator::nextTile()
-{
-    if(m_col >= m_rightCol)
-    {
-        // needs to switch row
-        if(m_row >= m_bottomRow)
-            m_beyondEnd = true;
-        else
-        {
-            m_col = m_leftCol;
-            m_row++;
-            // The row has now changed, so recalc vertical limits
-            if(m_row == m_topRow)
-                m_topInTile = m_top - m_topRow * KisTile::HEIGHT;
-            else
-                m_topInTile = 0;
-
-            if(m_row == m_bottomRow)
-                m_bottomInTile = m_top + m_h - 1 - m_bottomRow * KisTile::HEIGHT;
-            else
-                m_bottomInTile = KisTile::HEIGHT - 1;
-        }
-    }
-    else
-        m_col++;
-
-    // No matter what the column has now changed, so recalc horizontal limits
-    if(m_col == m_leftCol)
-        m_leftInTile = m_left - m_leftCol * KisTile::WIDTH;
-    else
-        m_leftInTile = 0;
-
-    if(m_col == m_rightCol)
-        m_rightInTile = m_left + m_w - 1 - m_rightCol * KisTile::WIDTH;
-    else
-        m_rightInTile = KisTile::WIDTH - 1;
-}
-
-/*
-KisTiledRectIterator & KisTiledRectIterator::operator -- ()
-{
-    return *this;
-}
-*/
diff --git a/krita/core/tiles/kis_tiledvlineiterator.cc b/krita/core/tiles/kis_tiledvlineiterator.cc
deleted file mode 100644
index bcd85d70c..000000000
--- a/krita/core/tiles/kis_tiledvlineiterator.cc
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * This file is part of the Krita
- *
- * Copyright (c) 2004 Casper Boemann <cbr@boemann.dk>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-#include <kdebug.h>
-
-#include "kis_tile_global.h"
-#include "kis_tilediterator.h"
-
-KisTiledVLineIterator::KisTiledVLineIterator( KisTiledDataManager *ndevice,  TQ_INT32 x,  TQ_INT32 y, TQ_INT32 h, bool writable) :
-    KisTiledIterator(ndevice),
-    m_bottom(y + h - 1)
-{
-    m_writable = writable;
-    m_top = y;
-    m_x = x;
-    m_y = y;
-
-    // Find tile row,col matching x,y
-    m_col = xToCol(m_x);
-    m_topRow = yToRow(m_y);
-    m_bottomRow = yToRow(m_bottom);
-    m_row = m_topRow;
-
-    // calc limits within the tile
-    m_xInTile = m_x - m_col * KisTile::WIDTH;
-    m_topInTile = m_y - m_topRow * KisTile::HEIGHT;
-
-    if(m_row == m_bottomRow)
-        m_bottomInTile = m_bottom - m_bottomRow * KisTile::HEIGHT;
-    else
-        m_bottomInTile = KisTile::HEIGHT - 1;
-
-    m_yInTile = m_topInTile;
-
-    fetchTileData(m_col, m_row);
-    m_offset = m_pixelSize * (m_yInTile * KisTile::WIDTH + m_xInTile);
-}
-
-KisTiledVLineIterator::KisTiledVLineIterator(const KisTiledVLineIterator& rhs)
-    : KisTiledIterator(rhs)
-{
-    if (this != &rhs) {
-        m_top = rhs.m_top;
-        m_bottom = rhs.m_bottom;
-        m_topRow = rhs.m_topRow;
-        m_bottomRow = rhs.m_bottomRow;
-        m_xInTile = rhs.m_xInTile;
-        m_yInTile = rhs.m_yInTile;
-        m_topInTile = rhs.m_topInTile;
-        m_bottomInTile = rhs.m_bottomInTile;
-    }
-}
-
-KisTiledVLineIterator& KisTiledVLineIterator::operator=(const KisTiledVLineIterator& rhs)
-{
-    if (this != &rhs) {
-        KisTiledIterator::operator=(rhs);
-
-        m_top = rhs.m_top;
-        m_bottom = rhs.m_bottom;
-        m_topRow = rhs.m_topRow;
-        m_bottomRow = rhs.m_bottomRow;
-        m_xInTile = rhs.m_xInTile;
-        m_yInTile = rhs.m_yInTile;
-        m_topInTile = rhs.m_topInTile;
-        m_bottomInTile = rhs.m_bottomInTile;
-    }
-    return *this;
-}
-
-KisTiledVLineIterator::~KisTiledVLineIterator( )
-{
-}
-
-KisTiledVLineIterator & KisTiledVLineIterator::operator ++ ()
-{
-    if(m_yInTile >= m_bottomInTile)
-    {
-        nextTile();
-        fetchTileData(m_col, m_row);
-        m_yInTile =m_topInTile;
-        m_offset = m_pixelSize * (m_yInTile * KisTile::WIDTH + m_xInTile);
-    }
-    else
-    {
-        m_yInTile++;
-        m_offset += m_pixelSize * KisTile::WIDTH;
-    }
-    m_y++;
-
-    return *this;
-}
-
-void KisTiledVLineIterator::nextTile()
-{
-    if(m_row < m_bottomRow)
-    {
-        m_row++;
-        m_topInTile = 0;
-
-        if(m_row == m_bottomRow)
-            m_bottomInTile = m_bottom - m_bottomRow * KisTile::HEIGHT;
-        else
-            m_bottomInTile = KisTile::HEIGHT - 1;
-    }
-}
-
-void KisTiledVLineIterator::nextCol()
-{
-    m_x++;
-    m_xInTile++;
-    m_y = m_top;
-    m_topInTile = m_y - m_topRow * KisTile::HEIGHT;
-    m_yInTile = m_topInTile;
-    if( m_xInTile >= KisTile::WIDTH )
-    { // Need a new row
-        m_xInTile = 0;
-        m_col++;
-        m_row = m_topRow;
-        fetchTileData(m_col, m_row);
-    } else if( m_topRow != m_row ) {
-        m_row = m_topRow;
-        fetchTileData(m_col, m_row);
-    }
-    if(m_row == m_bottomRow)
-        m_bottomInTile = m_bottom - m_bottomRow * KisTile::HEIGHT;
-    else
-        m_bottomInTile = KisTile::HEIGHT - 1;
-
-    m_offset = m_pixelSize * (m_yInTile * KisTile::WIDTH + m_xInTile);
-}
-
-/*
-KisTiledVLineIterator & KisTiledVLineIterator::operator -- ()
-{
-    return *this;
-}
-*/
diff --git a/krita/core/tiles/kis_tilemanager.cc b/krita/core/tiles/kis_tilemanager.cc
deleted file mode 100644
index 49fe7f067..000000000
--- a/krita/core/tiles/kis_tilemanager.cc
+++ /dev/null
@@ -1,578 +0,0 @@
-/*
- *  Copyright (c) 2005-2006 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <kdebug.h>
-
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <string.h>
-#include <fcntl.h>
-
-#include <tqmutex.h>
-#include <tqthread.h>
-#include <tqfile.h>
-
-#include <kstaticdeleter.h>
-#include <kglobal.h>
-#include <kconfig.h>
-
-#include "kis_tileddatamanager.h"
-#include "kis_tile.h"
-#include "kis_tilemanager.h"
-
-// Note: the cache file doesn't get deleted when we crash and so :(
-
-KisTileManager* KisTileManager::m_singleton = 0;
-
-static KStaticDeleter<KisTileManager> staticDeleter;
-
-KisTileManager::KisTileManager() {
-
-    Q_ASSERT(KisTileManager::m_singleton == 0);
-    KisTileManager::m_singleton = this;
-    m_bytesInMem = 0;
-    m_bytesTotal = 0;
-    m_swapForbidden = false;
-
-    // Hardcoded (at the moment only?): 4 pools of 1000 tiles each
-    m_tilesPerPool = 1000;
-
-    m_pools = new TQ_UINT8*[4];
-    m_poolPixelSizes = new TQ_INT32[4];
-    m_poolFreeList = new PoolFreeList[4];
-    for (int i = 0; i < 4; i++) {
-        m_pools[i] = 0;
-        m_poolPixelSizes[i] = 0;
-        m_poolFreeList[i] = PoolFreeList();
-    }
-    m_currentInMem = 0;
-
-    KConfig * cfg = KGlobal::config();
-    cfg->setGroup("");
-    m_maxInMem = cfg->readNumEntry("maxtilesinmem",  4000);
-    m_swappiness = cfg->readNumEntry("swappiness", 100);
-
-    m_tileSize = KisTile::WIDTH * KisTile::HEIGHT;
-    m_freeLists.resize(8);
-
-    counter = 0;
-
-    m_poolMutex = new TQMutex(true);
-    m_swapMutex = new TQMutex(true);
-}
-
-KisTileManager::~KisTileManager() {
-    if (!m_freeLists.empty()) { // See if there are any nonempty freelists
-        FreeListList::iterator listsIt = m_freeLists.begin();
-        FreeListList::iterator listsEnd = m_freeLists.end();
-
-        while(listsIt != listsEnd) {
-            if ( ! (*listsIt).empty() ) {
-                FreeList::iterator it = (*listsIt).begin();
-                FreeList::iterator end = (*listsIt).end();
-
-                while (it != end) {
-                    delete *it;
-                    ++it;
-                }
-                (*listsIt).clear();
-            }
-            ++listsIt;
-        }
-        m_freeLists.clear();
-    }
-
-    for (FileList::iterator it = m_files.begin(); it != m_files.end(); ++it) {
-        (*it).tempFile->close();
-        (*it).tempFile->unlink();
-        delete (*it).tempFile;
-    }
-
-    delete [] m_poolPixelSizes;
-    delete [] m_pools;
-
-    delete m_poolMutex;
-    delete m_swapMutex;
-}
-
-KisTileManager* KisTileManager::instance()
-{
-    if(KisTileManager::m_singleton == 0) {
-        staticDeleter.setObject(KisTileManager::m_singleton, new KisTileManager());
-        Q_CHECK_PTR(KisTileManager::m_singleton);
-    }
-    return KisTileManager::m_singleton;
-}
-
-void KisTileManager::registerTile(KisTile* tile)
-{
-
-    m_swapMutex->lock();
-
-    TileInfo* info = new TileInfo();
-    info->tile = tile;
-    info->inMem = true;
-    info->mmapped = false;
-    info->onFile = false;
-    info->file = 0;
-    info->filePos = 0;
-    info->size = tile->WIDTH * tile->HEIGHT * tile->m_pixelSize;
-    info->fsize = 0; // the size in the file
-    info->validNode = true;
-
-    m_tileMap[tile] = info;
-    m_swappableList.push_back(info);
-    info->node = -- m_swappableList.end();
-
-    m_currentInMem++;
-    m_bytesTotal += info->size;
-    m_bytesInMem += info->size;
-
-    doSwapping();
-
-    if (++counter % 50 == 0)
-        printInfo();
-
-    m_swapMutex->unlock();
-}
-
-void KisTileManager::deregisterTile(KisTile* tile) {
-
-    m_swapMutex->lock();
-
-    if (!m_tileMap.tqcontains(tile)) {
-        m_swapMutex->unlock();
-        return;
-    }
-    // Q_ASSERT(m_tileMap.tqcontains(tile));
-
-    TileInfo* info = m_tileMap[tile];
-
-    if (info->onFile) { // It was once mmapped
-        // To freelist
-        FreeInfo* freeInfo = new FreeInfo();
-        freeInfo->file = info->file;
-        freeInfo->filePos = info->filePos;
-        freeInfo->size = info->fsize;
-        uint pixelSize = (info->size / m_tileSize);
-
-        // It is still mmapped?
-        if (info->mmapped) {
-            // munmap it
-            munmap(info->tile->m_data, info->size);
-            m_bytesInMem -= info->size;
-            m_currentInMem--;
-        }
-
-        if (m_freeLists.capacity() <= pixelSize)
-            m_freeLists.resize(pixelSize + 1);
-        m_freeLists[pixelSize].push_back(freeInfo);
-
-        // the KisTile will attempt to delete its data. This is of course silly when
-        // it was mmapped. So change the m_data to NULL, which is safe to delete
-        tile->m_data = 0;
-    } else {
-        m_bytesInMem -= info->size;
-        m_currentInMem--;
-    }
-
-    if (info->validNode) {
-        m_swappableList.erase(info->node);
-        info->validNode = false;
-    }
-
-    m_bytesTotal -= info->size;
-
-    delete info;
-    m_tileMap.erase(tile);
-
-    doSwapping();
-
-    m_swapMutex->unlock();
-}
-
-void KisTileManager::ensureTileLoaded(const KisTile* tile)
-{
-
-    m_swapMutex->lock();
-
-    TileInfo* info = m_tileMap[tile];
-    if (info->validNode) {
-        m_swappableList.erase(info->node);
-        info->validNode = false;
-    }
-
-    if (!info->inMem) {
-        fromSwap(info);
-    }
-
-    m_swapMutex->unlock();
-}
-
-void KisTileManager::maySwapTile(const KisTile* tile)
-{
-
-    m_swapMutex->lock();
-
-    TileInfo* info = m_tileMap[tile];
-    m_swappableList.push_back(info);
-    info->validNode = true;
-    info->node = -- m_swappableList.end();
-
-    doSwapping();
-
-    m_swapMutex->unlock();
-}
-
-void KisTileManager::fromSwap(TileInfo* info)
-{
-    m_swapMutex->lock();
-
-    if (info->inMem) {
-        m_swapMutex->unlock();
-        return;
-    }
-
-    doSwapping();
-
-    Q_ASSERT(info->onFile);
-    Q_ASSERT(info->file);
-    Q_ASSERT(!info->mmapped);
-
-    if (!kritaMmap(info->tile->m_data, 0, info->size, PROT_READ | PROT_WRITE, MAP_SHARED,
-                   info->file->handle(), info->filePos)) {
-        kdWarning() << "fromSwap failed!" << endl;
-        m_swapMutex->unlock();
-        return;
-    }
-
-    info->inMem = true;
-    info->mmapped = true;
-
-    m_currentInMem++;
-    m_bytesInMem += info->size;
-
-    m_swapMutex->unlock();
-}
-
-void KisTileManager::toSwap(TileInfo* info) {
-    m_swapMutex->lock();
-
-    //Q_ASSERT(info->inMem);
-    if (!info || !info->inMem) {
-        m_swapMutex->unlock();
-        return;
-    }
-
-    KisTile *tile = info->tile;
-
-    if (!info->onFile) {
-        // This tile is not yet in the file. Save it there
-        uint pixelSize = (info->size / m_tileSize);
-        bool foundFree = false;
-
-        if (m_freeLists.capacity() > pixelSize) {
-            if (!m_freeLists[pixelSize].empty()) {
-                // found one
-                FreeList::iterator it = m_freeLists[pixelSize].begin();
-
-                info->file = (*it)->file;
-                info->filePos = (*it)->filePos;
-                info->fsize = (*it)->size;
-
-                delete *it;
-                m_freeLists[pixelSize].erase(it);
-
-                foundFree = true;
-            }
-        }
-
-        if (!foundFree) { // No position found or free, create a new
-            long pagesize = sysconf(_SC_PAGESIZE);
-            TempFile* tfile = 0;
-            if (m_files.empty() || m_files.back().fileSize >= MaxSwapFileSize) {
-                m_files.push_back(TempFile());
-                tfile = &(m_files.back());
-                tfile->tempFile = new KTempFile();
-                tfile->fileSize = 0;
-            } else {
-                tfile = &(m_files.back());
-            }
-            off_t newsize = tfile->fileSize + info->size;
-            newsize = newsize + newsize % pagesize;
-
-            if (ftruncate(tfile->tempFile->handle(), newsize)) {
-                // XXX make these maybe i18n()able and in an error box, but then through
-                // some kind of proxy such that we don't pollute this with GUI code
-                kdWarning(DBG_AREA_TILES) << "Resizing the temporary swapfile failed!" << endl;
-                // Be somewhat pollite and try to figure out why it failed
-                switch (errno) {
-                    case EIO: kdWarning(DBG_AREA_TILES) << "Error was E IO, "
-                            << "possible reason is a disk error!" << endl; break;
-                    case EINVAL: kdWarning(DBG_AREA_TILES) << "Error was E INVAL, "
-                            << "possible reason is that you are using more memory than "
-                            << "the filesystem or disk can handle" << endl; break;
-                    default: kdWarning(DBG_AREA_TILES) << "Errno was: " << errno << endl;
-                }
-                kdWarning(DBG_AREA_TILES) << "The swapfile is: " << tfile->tempFile->name() << endl;
-                kdWarning(DBG_AREA_TILES) << "Will try to avoid using the swap any further" << endl;
-
-                kdDebug(DBG_AREA_TILES) << "Failed ftruncate info: "
-                        << "tried adding " << info->size << " bytes "
-                        << "(rounded to pagesize: " << newsize << ") "
-                        << "from a " << tfile->fileSize << " bytes file" << endl;
-                printInfo();
-
-                m_swapForbidden = true;
-                m_swapMutex->unlock();
-                return;
-            }
-
-            info->file = tfile->tempFile;
-            info->fsize = info->size;
-            info->filePos = tfile->fileSize;
-            tfile->fileSize = newsize;
-        }
-
-        //memcpy(data, tile->m_data, info->size);
-        TQFile* file = info->file->file();
-        if(!file) {
-            kdWarning() << "Opening the file as TQFile failed" << endl;
-            m_swapForbidden = true;
-            m_swapMutex->unlock();
-            return;
-        }
-
-        int fd = file->handle();
-        TQ_UINT8* data = 0;
-        if (!kritaMmap(data, 0, info->size, PROT_READ | PROT_WRITE, MAP_SHARED,
-             fd, info->filePos)) {
-            kdWarning() << "Initial mmap failed" << endl;
-            m_swapForbidden = true;
-            m_swapMutex->unlock();
-            return;
-        }
-
-        memcpy(data, info->tile->m_data, info->size);
-        munmap(data, info->size);
-
-        m_poolMutex->lock();
-        if (isPoolTile(tile->m_data, tile->m_pixelSize))
-            reclaimTileToPool(tile->m_data, tile->m_pixelSize);
-        else
-            delete[] tile->m_data;
-        m_poolMutex->unlock();
-
-        tile->m_data = 0;
-    } else {
-        //madvise(info->tile->m_data, info->fsize, MADV_DONTNEED);
-        Q_ASSERT(info->mmapped);
-
-        // munmap it
-        munmap(tile->m_data, info->size);
-        tile->m_data = 0;
-    }
-
-    info->inMem = false;
-    info->mmapped = false;
-    info->onFile = true;
-
-    m_currentInMem--;
-    m_bytesInMem -= info->size;
-
-    m_swapMutex->unlock();
-}
-
-void KisTileManager::doSwapping()
-{
-    m_swapMutex->lock();
-
-    if (m_swapForbidden || m_currentInMem <= m_maxInMem) {
-        m_swapMutex->unlock();
-        return;
-    }
-
-#if 1 // enable this to enable swapping
-
-    TQ_UINT32 count = TQMIN(m_swappableList.size(), m_swappiness);
-
-    for (TQ_UINT32 i = 0; i < count && !m_swapForbidden; i++) {
-        toSwap(m_swappableList.front());
-        m_swappableList.front()->validNode = false;
-        m_swappableList.pop_front();
-    }
-
-#endif
-
-    m_swapMutex->unlock();
-}
-
-void KisTileManager::printInfo()
-{
-    kdDebug(DBG_AREA_TILES) << m_bytesInMem << " out of " << m_bytesTotal << " bytes in memory\n";
-    kdDebug(DBG_AREA_TILES) << m_currentInMem << " out of " << m_tileMap.size() << " tiles in memory\n";
-    kdDebug(DBG_AREA_TILES) << m_files.size() << " swap files in use" << endl;
-    kdDebug(DBG_AREA_TILES) << m_swappableList.size() << " elements in the swapable list\n";
-    kdDebug(DBG_AREA_TILES) << "Freelists information\n";
-    for (uint i = 0; i < m_freeLists.capacity(); i++) {
-        if ( ! m_freeLists[i].empty() ) {
-            kdDebug(DBG_AREA_TILES) << m_freeLists[i].size()
-                    << " elements in the freelist for pixelsize " << i << "\n";
-        }
-    }
-    kdDebug(DBG_AREA_TILES) << "Pool stats (" <<  m_tilesPerPool << " tiles per pool)" << endl;
-    for (int i = 0; i < 4; i++) {
-        if (m_pools[i]) {
-            kdDebug(DBG_AREA_TILES) << "Pool " << i << ": Freelist count: " << m_poolFreeList[i].count()
-                    << ", pixelSize: " << m_poolPixelSizes[i] << endl;
-        }
-    }
-    if (m_swapForbidden)
-        kdDebug(DBG_AREA_TILES) << "Something was wrong with the swap, see above for details" << endl;
-    kdDebug(DBG_AREA_TILES) << endl;
-}
-
-TQ_UINT8* KisTileManager::requestTileData(TQ_INT32 pixelSize)
-{
-    m_swapMutex->lock();
-
-    TQ_UINT8* data = findTileFor(pixelSize);
-    if ( data ) {
-        m_swapMutex->unlock();
-        return data;
-    }
-    m_swapMutex->unlock();
-    return new TQ_UINT8[m_tileSize * pixelSize];
-}
-
-void KisTileManager::dontNeedTileData(TQ_UINT8* data, TQ_INT32 pixelSize)
-{
-    m_poolMutex->lock();
-    if (isPoolTile(data, pixelSize)) {
-        reclaimTileToPool(data, pixelSize);
-    } else
-        delete[] data;
-    m_poolMutex->unlock();
-}
-
-TQ_UINT8* KisTileManager::findTileFor(TQ_INT32 pixelSize)
-{
-    m_poolMutex->lock();
-
-    for (int i = 0; i < 4; i++) {
-        if (m_poolPixelSizes[i] == pixelSize) {
-            if (!m_poolFreeList[i].isEmpty()) {
-                TQ_UINT8* data = m_poolFreeList[i].front();
-                m_poolFreeList[i].pop_front();
-                m_poolMutex->unlock();
-                return data;
-            }
-        }
-        if (m_pools[i] == 0) {
-            // allocate new pool
-            m_poolPixelSizes[i] = pixelSize;
-            m_pools[i] = new TQ_UINT8[pixelSize * m_tileSize * m_tilesPerPool];
-            // j = 1 because we return the first element, so no need to add it to the freelist
-            for (int j = 1; j < m_tilesPerPool; j++)
-                m_poolFreeList[i].append(&m_pools[i][j * pixelSize * m_tileSize]);
-            m_poolMutex->unlock();
-            return m_pools[i];
-        }
-    }
-
-    m_poolMutex->unlock();
-    return 0;
-}
-
-bool KisTileManager::isPoolTile(TQ_UINT8* data, TQ_INT32 pixelSize) {
-
-    if (data == 0)
-        return false;
-
-    m_poolMutex->lock();
-    for (int i = 0; i < 4; i++) {
-        if (m_poolPixelSizes[i] == pixelSize) {
-            bool b = data >= m_pools[i]
-                     && data < m_pools[i] + pixelSize * m_tileSize * m_tilesPerPool;
-            if (b) {
-                m_poolMutex->unlock();
-                return true;
-            }
-        }
-    }
-    m_poolMutex->unlock();
-    return false;
-}
-
-void KisTileManager::reclaimTileToPool(TQ_UINT8* data, TQ_INT32 pixelSize) {
-    m_poolMutex->lock();
-    for (int i = 0; i < 4; i++) {
-        if (m_poolPixelSizes[i] == pixelSize)
-            if (data >= m_pools[i] && data < m_pools[i] + pixelSize * m_tileSize * m_tilesPerPool) {
-                m_poolFreeList[i].append(data);
-            }
-    }
-    m_poolMutex->unlock();
-}
-
-void KisTileManager::configChanged() {
-    KConfig * cfg = KGlobal::config();
-    cfg->setGroup("");
-    m_maxInMem = cfg->readNumEntry("maxtilesinmem",  4000);
-    m_swappiness = cfg->readNumEntry("swappiness", 100);
-
-    m_swapMutex->lock();
-    doSwapping();
-    m_swapMutex->unlock();
-}
-
-bool KisTileManager::kritaMmap(TQ_UINT8*& result, void *start, size_t length,
-                               int prot, int flags, int fd, off_t offset) {
-    result = (TQ_UINT8*) mmap(start, length, prot, flags, fd, offset);
-
-            // Same here for warning and GUI
-    if (result == (TQ_UINT8*)-1) {
-        kdWarning(DBG_AREA_TILES) << "mmap failed: errno is " << errno << "; we're probably going to crash very soon now...\n";
-
-        // Try to ignore what happened and carry on, but unlikely that we'll get
-        // much further, since the file resizing went OK and this is memory-related...
-        if (errno == ENOMEM) {
-            kdWarning(DBG_AREA_TILES) << "mmap failed with E NOMEM! This means that "
-                    << "either there are no more memory mappings available for Krita, "
-                    << "or that there is no more memory available!" << endl;
-        }
-
-        kdWarning(DBG_AREA_TILES) << "Trying to continue anyway (no guarantees)" << endl;
-        kdWarning(DBG_AREA_TILES) << "Will try to avoid using the swap any further" << endl;
-        kdDebug(DBG_AREA_TILES) << "Failed mmap info: "
-                << "tried mapping " << length << " bytes" << endl;
-        if (!m_files.empty()) {
-            kdDebug(DBG_AREA_TILES) << "Probably to a " << m_files.back().fileSize << " bytes file" << endl;
-        }
-        printInfo();
-
-        // Be nice
-        result = 0;
-
-        return false;
-    }
-
-    return true;
-}
diff --git a/krita/core/tiles/kis_tilemanager.h b/krita/core/tiles/kis_tilemanager.h
deleted file mode 100644
index bce60ca45..000000000
--- a/krita/core/tiles/kis_tilemanager.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- *  Copyright (c) 2005 Bart Coppens <kde@bartcoppens.be>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-#ifndef KIS_TILEMANAGER_H_
-#define KIS_TILEMANAGER_H_
-
-#include <sys/types.h>
-
-#include <tqglobal.h>
-#include <tqmap.h>
-#include <tqvaluelist.h>
-#include <tqmutex.h>
-
-#include <ktempfile.h>
-
-class KisTile;
-class KisTiledDataManager;
-
-/**
- * This class keeps has the intention to make certain tile-related operations faster or more
- * efficient. It does this by keeping lots of info on KisTiles, and manages the way they are
- * created, used, etc.
- * It mainly does the following more visible things
- *  * provide a way to store tiles on disk to a swap file, to reduce memory usage
- *  * keep a list of previously swapped (but now unused) tiles, to reuse these when we want
- *    to swap new tiles.
- *  * tries to preallocate and recycle some tiles to make future allocations faster
- *    (not done yet)
- */
-class KisTileManager  {
-public:
-    ~KisTileManager();
-    static KisTileManager* instance();
-
-public: // Tile management
-    void registerTile(KisTile* tile);
-    void deregisterTile(KisTile* tile);
-    // these can change the tile indirectly, though, through the actual swapping!
-    void ensureTileLoaded(const KisTile* tile);
-    void maySwapTile(const KisTile* tile);
-
-public: // Pool management
-    TQ_UINT8* requestTileData(TQ_INT32 pixelSize);
-    void dontNeedTileData(TQ_UINT8* data, TQ_INT32 pixelSize);
-
-public: // Configuration
-    void configChanged();
-
-private:
-    KisTileManager();
-    KisTileManager(KisTileManager&) {}
-    KisTileManager operator=(const KisTileManager&);
-
-private:
-    static KisTileManager *m_singleton;
-
-    // For use when any swap-allocating function failed; the risk of swap allocating failing
-    // again is too big, and we'd clutter the logs with kdWarnings otherwise
-    bool m_swapForbidden;
-
-    // This keeps track of open swap files, and their associated filesizes
-    struct TempFile {
-        KTempFile* tempFile;
-        off_t fileSize;
-    };
-    // validNode says if you can swap it (true) or not (false) mmapped, if this tile
-    // currently is memory mapped. If it is false, but onFile, it is on disk,
-    // but not mmapped, and should be mapped!
-    // filePos is the position inside the file; size is the actual size, fsize is the size
-    // being used in the swap for this tile (may be larger!)
-    // The file points to 0 if it is not swapped, and to the relevant TempFile otherwise
-    struct TileInfo { KisTile *tile; KTempFile* file; off_t filePos; int size; int fsize;
-        TQValueList<TileInfo*>::iterator node;
-        bool inMem; bool onFile; bool mmapped; bool validNode; };
-    typedef struct { KTempFile* file; off_t filePos; int size; } FreeInfo;
-    typedef TQMap<const KisTile*, TileInfo*> TileMap;
-    typedef TQValueList<TileInfo*> TileList;
-    typedef TQValueList<FreeInfo*> FreeList;
-    typedef TQValueVector<FreeList> FreeListList;
-    typedef TQValueList<TQ_UINT8*> PoolFreeList;
-    typedef TQValueList<TempFile> FileList;
-
-
-    TileMap m_tileMap;
-    TileList m_swappableList;
-    FreeListList m_freeLists;
-    FileList m_files;
-    TQ_INT32 m_maxInMem;
-    TQ_INT32 m_currentInMem;
-    TQ_UINT32 m_swappiness;
-    TQ_INT32 m_tileSize; // size of a tile if it used 1 byte per pixel
-    unsigned long m_bytesInMem;
-    unsigned long m_bytesTotal;
-
-    TQ_UINT8 **m_pools;
-    TQ_INT32 *m_poolPixelSizes;
-    TQ_INT32 m_tilesPerPool;
-    PoolFreeList *m_poolFreeList;
-    TQMutex * m_poolMutex;
-    TQMutex * m_swapMutex;
-
-    // This is the constant that we will use to see if we want to add a new tempfile
-    // We use 1<<30 (one gigabyte) because aptqparently 32bit systems don't really like very
-    // large files.
-    static const long MaxSwapFileSize = 1<<30; // For debugging purposes: 1<<20 is a megabyte
-
-    // debug
-    int counter;
-
-private:
-    void fromSwap(TileInfo* info);
-    void toSwap(TileInfo* info);
-    void doSwapping();
-    void printInfo();
-    TQ_UINT8* findTileFor(TQ_INT32 pixelSize);
-    bool isPoolTile(TQ_UINT8* data, TQ_INT32 pixelSize);
-    void reclaimTileToPool(TQ_UINT8* data, TQ_INT32 pixelSize);
-
-    // Mmap wrapper that prints warnings on error. The result is stored in the *& result
-    // the return value is true on succes, false on failure. Other args as in man mmap
-    bool kritaMmap(TQ_UINT8*& result, void *start, size_t length,
-                   int prot, int flags, int fd, off_t offset);
-};
-
-#endif // KIS_TILEMANAGER_H_
diff --git a/krita/core/tiles/tests/Makefile.am b/krita/core/tiles/tests/Makefile.am
deleted file mode 100644
index bc7293204..000000000
--- a/krita/core/tiles/tests/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-AM_CPPFLAGS = -I$(srcdir)/../ \
-	-I$(srcdir)/../.. \
-	-I$(srcdir)/../../../sdk \
-	$(all_includes)
-
-# The check_ target makes sure we don't install the modules,
-# $(KDE_CHECK_PLUGIN) assures a shared library is created.
-check_LTLIBRARIES = kunittest_kis_tiled_data_tester.la
-kunittest_kis_tiled_data_tester_la_SOURCES = kis_tiled_data_tester.cpp
-kunittest_kis_tiled_data_tester_la_LIBADD = -lkunittest ../../../libkritacommon.la
-kunittest_kis_tiled_data_tester_la_LDFLAGS = -module $(KDE_CHECK_PLUGIN) $(all_libraries)
-
-check-local: kunittest_kis_tiled_data_tester.la
-	kunittestmodrunner
-
diff --git a/krita/core/tiles/tests/kis_tiled_data_tester.cpp b/krita/core/tiles/tests/kis_tiled_data_tester.cpp
deleted file mode 100644
index 15d3e50b5..000000000
--- a/krita/core/tiles/tests/kis_tiled_data_tester.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <kunittest/runner.h>
-#include <kunittest/module.h>
-
-#include "kis_tiled_data_tester.h"
-#include "kis_datamanager.h"
-#include "kis_global.h"
-
-using namespace KUnitTest;
-
-KUNITTEST_MODULE( kunittest_kis_tiled_data_tester, "Tiled Data Tester" );
-KUNITTEST_MODULE_REGISTER_TESTER( KisTiledDataTester );
-
-#define TEST_PIXEL_SIZE 4
-
-static TQ_UINT8 defaultPixel[TEST_PIXEL_SIZE] = {0, 0, 0, OPACITY_TRANSPARENT};
-
-void KisTiledDataTester::allTests()
-{
-    KisDataManager *dm = new KisDataManager(TEST_PIXEL_SIZE, defaultPixel);
-
-    TQ_INT32 extentX;
-    TQ_INT32 extentY;
-    TQ_INT32 extentWidth;
-    TQ_INT32 extentHeight;
-
-    dm->extent(extentX, extentY, extentWidth, extentHeight);
-    CHECK(extentWidth, 0);
-    CHECK(extentHeight, 0);
-
-    const TQ_UINT8 *readOnlyPixel = dm->pixel(KisTile::WIDTH/2, KisTile::HEIGHT/2);
-    dm->extent(extentX, extentY, extentWidth, extentHeight);
-    CHECK(extentWidth, 0);
-    CHECK(extentHeight, 0);
-
-    TQ_UINT8 *writablePixel = dm->writablePixel(KisTile::WIDTH/2, KisTile::HEIGHT/2);
-    dm->extent(extentX, extentY, extentWidth, extentHeight);
-    CHECK(extentX, 0);
-    CHECK(extentY, 0);
-    CHECK(extentWidth, KisTile::WIDTH);
-    CHECK(extentHeight, KisTile::HEIGHT);
-
-    writablePixel = dm->writablePixel(-KisTile::WIDTH, -KisTile::HEIGHT);
-    dm->extent(extentX, extentY, extentWidth, extentHeight);
-    CHECK(extentX, -KisTile::WIDTH);
-    CHECK(extentY, -KisTile::HEIGHT);
-    CHECK(extentWidth, 2*KisTile::WIDTH);
-    CHECK(extentHeight, 2*KisTile::HEIGHT);
-
-    dm->clear();
-    dm->extent(extentX, extentY, extentWidth, extentHeight);
-    CHECK(extentWidth, 0);
-    CHECK(extentHeight, 0);
-
-    delete dm;
-}
-
diff --git a/krita/core/tiles/tests/kis_tiled_data_tester.h b/krita/core/tiles/tests/kis_tiled_data_tester.h
deleted file mode 100644
index 8a569d23b..000000000
--- a/krita/core/tiles/tests/kis_tiled_data_tester.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- *  Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-
-#ifndef KIS_TILED_DATA_TESTER_H
-#define KIS_TILED_DATA_TESTER_H
-
-#include <kunittest/tester.h>
-
-class KisTiledDataTester : public KUnitTest::Tester
-{
-public:
-        void allTests();
-};
-
-#endif
-
diff --git a/krita/data/Makefile.am b/krita/data/Makefile.am
deleted file mode 100644
index da438805c..000000000
--- a/krita/data/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-SUBDIRS = . brushes patterns gradients profiles palettes images
-kde_servicetypes_DATA = \
-    krita_filter.desktop \
-    krita_paintop.desktop \
-    krita_plugin.desktop \
-    krita_tool.desktop
-    
diff --git a/krita/data/README b/krita/data/README
deleted file mode 100644
index 7636454d0..000000000
--- a/krita/data/README
+++ /dev/null
@@ -1,13 +0,0 @@
-Krita is moving towards compatibility with the Gimp in the area of data
-like patterns, brushes and gradients.  All brushes, patterns etc. here
-are taken from the Gimp CVS.
-
-This is the contents of the original authors file:
-
-This distribution of gimp-data is based on Frederico Mena's
-gimp-data-0.99.11, which was based on Matt Hawkins
-gimp-data-0.99.pre11-3.5, which was based on gimp-data-0.99.9 by Spencer
-Kimball and Peter Mattis.
-
-Adrian Likins
-
diff --git a/krita/data/brushes/10x10square.gbr b/krita/data/brushes/10x10square.gbr
deleted file mode 100644
index d680172a4..000000000
Binary files a/krita/data/brushes/10x10square.gbr and /dev/null differ
diff --git a/krita/data/brushes/10x10squareBlur.gbr b/krita/data/brushes/10x10squareBlur.gbr
deleted file mode 100644
index 9c8efe4e2..000000000
Binary files a/krita/data/brushes/10x10squareBlur.gbr and /dev/null differ
diff --git a/krita/data/brushes/11circle.gbr b/krita/data/brushes/11circle.gbr
deleted file mode 100644
index d843b1b13..000000000
Binary files a/krita/data/brushes/11circle.gbr and /dev/null differ
diff --git a/krita/data/brushes/11fcircle.gbr b/krita/data/brushes/11fcircle.gbr
deleted file mode 100644
index 86bd98536..000000000
Binary files a/krita/data/brushes/11fcircle.gbr and /dev/null differ
diff --git a/krita/data/brushes/13circle.gbr b/krita/data/brushes/13circle.gbr
deleted file mode 100644
index ae4269fa8..000000000
Binary files a/krita/data/brushes/13circle.gbr and /dev/null differ
diff --git a/krita/data/brushes/13fcircle.gbr b/krita/data/brushes/13fcircle.gbr
deleted file mode 100644
index 456d10563..000000000
Binary files a/krita/data/brushes/13fcircle.gbr and /dev/null differ
diff --git a/krita/data/brushes/15circle.gbr b/krita/data/brushes/15circle.gbr
deleted file mode 100644
index ce99d36ea..000000000
Binary files a/krita/data/brushes/15circle.gbr and /dev/null differ
diff --git a/krita/data/brushes/15fcircle.gbr b/krita/data/brushes/15fcircle.gbr
deleted file mode 100644
index c198ef4e0..000000000
Binary files a/krita/data/brushes/15fcircle.gbr and /dev/null differ
diff --git a/krita/data/brushes/17circle.gbr b/krita/data/brushes/17circle.gbr
deleted file mode 100644
index b063f54c9..000000000
Binary files a/krita/data/brushes/17circle.gbr and /dev/null differ
diff --git a/krita/data/brushes/17fcircle.gbr b/krita/data/brushes/17fcircle.gbr
deleted file mode 100644
index 1a1705602..000000000
Binary files a/krita/data/brushes/17fcircle.gbr and /dev/null differ
diff --git a/krita/data/brushes/19circle.gbr b/krita/data/brushes/19circle.gbr
deleted file mode 100644
index a0a581b22..000000000
Binary files a/krita/data/brushes/19circle.gbr and /dev/null differ
diff --git a/krita/data/brushes/19fcircle.gbr b/krita/data/brushes/19fcircle.gbr
deleted file mode 100644
index 6418446d6..000000000
Binary files a/krita/data/brushes/19fcircle.gbr and /dev/null differ
diff --git a/krita/data/brushes/1circle.gbr b/krita/data/brushes/1circle.gbr
deleted file mode 100644
index 8c81f6bf2..000000000
Binary files a/krita/data/brushes/1circle.gbr and /dev/null differ
diff --git a/krita/data/brushes/20x20square.gbr b/krita/data/brushes/20x20square.gbr
deleted file mode 100644
index 011259f06..000000000
Binary files a/krita/data/brushes/20x20square.gbr and /dev/null differ
diff --git a/krita/data/brushes/20x20squareBlur.gbr b/krita/data/brushes/20x20squareBlur.gbr
deleted file mode 100644
index fd3df8ed2..000000000
Binary files a/krita/data/brushes/20x20squareBlur.gbr and /dev/null differ
diff --git a/krita/data/brushes/3circle.gbr b/krita/data/brushes/3circle.gbr
deleted file mode 100644
index ddddec9fe..000000000
Binary files a/krita/data/brushes/3circle.gbr and /dev/null differ
diff --git a/krita/data/brushes/3fcircle.gbr b/krita/data/brushes/3fcircle.gbr
deleted file mode 100644
index 7a07a1afa..000000000
Binary files a/krita/data/brushes/3fcircle.gbr and /dev/null differ
diff --git a/krita/data/brushes/5circle.gbr b/krita/data/brushes/5circle.gbr
deleted file mode 100644
index c910e2945..000000000
Binary files a/krita/data/brushes/5circle.gbr and /dev/null differ
diff --git a/krita/data/brushes/5fcircle.gbr b/krita/data/brushes/5fcircle.gbr
deleted file mode 100644
index 83d504238..000000000
Binary files a/krita/data/brushes/5fcircle.gbr and /dev/null differ
diff --git a/krita/data/brushes/5x5square.gbr b/krita/data/brushes/5x5square.gbr
deleted file mode 100644
index 921b45318..000000000
Binary files a/krita/data/brushes/5x5square.gbr and /dev/null differ
diff --git a/krita/data/brushes/5x5squareBlur.gbr b/krita/data/brushes/5x5squareBlur.gbr
deleted file mode 100644
index 97ae6a032..000000000
Binary files a/krita/data/brushes/5x5squareBlur.gbr and /dev/null differ
diff --git a/krita/data/brushes/7circle.gbr b/krita/data/brushes/7circle.gbr
deleted file mode 100644
index 45ea2103d..000000000
Binary files a/krita/data/brushes/7circle.gbr and /dev/null differ
diff --git a/krita/data/brushes/7fcircle.gbr b/krita/data/brushes/7fcircle.gbr
deleted file mode 100644
index b069c6f8c..000000000
Binary files a/krita/data/brushes/7fcircle.gbr and /dev/null differ
diff --git a/krita/data/brushes/9circle.gbr b/krita/data/brushes/9circle.gbr
deleted file mode 100644
index 369d85cc5..000000000
Binary files a/krita/data/brushes/9circle.gbr and /dev/null differ
diff --git a/krita/data/brushes/9fcircle.gbr b/krita/data/brushes/9fcircle.gbr
deleted file mode 100644
index 6e1c414c0..000000000
Binary files a/krita/data/brushes/9fcircle.gbr and /dev/null differ
diff --git a/krita/data/brushes/BRUSHES.README b/krita/data/brushes/BRUSHES.README
deleted file mode 100644
index c7193aac3..000000000
--- a/krita/data/brushes/BRUSHES.README
+++ /dev/null
@@ -1,19 +0,0 @@
-    CURSOR BRUSHES
-    --------------
-    
-    These brushes are for use with The GIMP.
-    
-    Copy them to your ~/.gimp-version/brushes directory to
-    make them available to The GIMP.
-    Click the Refresh button in the Brushes Dialog to make
-    them available without restarting The GIMP.
-    
-    The brushes are licensed under the GNU General Public License
-    as published by the Free Software Foundation; either
-    version 2 of the License, or any later version.
-    
-    For more details see the file COPYING.
-
-    ---------------------------------------------------------
-    
-    Natalie                               nat@switch.demon.nl
diff --git a/krita/data/brushes/COPYING b/krita/data/brushes/COPYING
deleted file mode 100644
index c13faf0dd..000000000
--- a/krita/data/brushes/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/krita/data/brushes/DStar11.gbr b/krita/data/brushes/DStar11.gbr
deleted file mode 100644
index cab5714ab..000000000
Binary files a/krita/data/brushes/DStar11.gbr and /dev/null differ
diff --git a/krita/data/brushes/DStar17.gbr b/krita/data/brushes/DStar17.gbr
deleted file mode 100644
index 496919cb6..000000000
Binary files a/krita/data/brushes/DStar17.gbr and /dev/null differ
diff --git a/krita/data/brushes/DStar25.gbr b/krita/data/brushes/DStar25.gbr
deleted file mode 100644
index 29f8fb252..000000000
Binary files a/krita/data/brushes/DStar25.gbr and /dev/null differ
diff --git a/krita/data/brushes/Makefile.am b/krita/data/brushes/Makefile.am
deleted file mode 100644
index dea07b4d2..000000000
--- a/krita/data/brushes/Makefile.am
+++ /dev/null
@@ -1,69 +0,0 @@
-kritabrushesdir = $(prefix)/share/apps/krita/brushes
-    
-kritabrushes_DATA =  \
-    10x10squareBlur.gbr \
-    10x10square.gbr \
-    11circle.gbr \
-    11fcircle.gbr \
-    13circle.gbr \
-    13fcircle.gbr \
-    15circle.gbr \
-    15fcircle.gbr \
-    17circle.gbr \
-    17fcircle.gbr \
-    19circle.gbr \
-    19fcircle.gbr \
-    1circle.gbr \
-    20x20squareBlur.gbr \
-    20x20square.gbr \
-    3circle.gbr \
-    3fcircle.gbr \
-    5circle.gbr \
-    5fcircle.gbr \
-    5x5squareBlur.gbr \
-    5x5square.gbr \
-    7circle.gbr \
-    7fcircle.gbr \
-    9circle.gbr \
-    9fcircle.gbr \
-    callig1.gbr \
-    callig2.gbr \
-    callig3.gbr \
-    callig4.gbr \
-    confetti.gbr \
-    confetti.gih \
-    cursor_big_lb.gbr \
-    cursor_big_lw.gbr \
-    cursor_big_rb.gbr \
-    cursor_big_rw.gbr \
-    cursor.gbr \
-    cursor_lw.gbr \
-    cursor_resize_diag_1.gbr \
-    cursor_resize_diag_2.gbr \
-    cursor_resize_hor.gbr \
-    cursor_resize_vert.gbr \
-    cursor_rw.gbr \
-    cursor_small_lb.gbr \
-    cursor_small_lw.gbr \
-    cursor_small_rb.gbr \
-    cursor_small_rw.gbr \
-    cursor_tiny_lw.gbr \
-    cursor_tiny_rw.gbr \
-    cursor_up.gbr \
-    DStar11.gbr \
-    DStar17.gbr \
-    DStar25.gbr \
-    dunes.gbr \
-    feltpen.gih \
-    galaxy_big.gbr \
-    galaxy.gbr \
-    galaxy_small.gbr \
-    hsparks.gih \
-    Makefile.am \
-    Makefile.in \
-    pepper.gbr \
-    pixel.gbr \
-    SketchBrush-16.gih \
-    SketchBrush-32.gih \
-    SketchBrush-64.gih \
-    vine.gih 
diff --git a/krita/data/brushes/SketchBrush-16.gih b/krita/data/brushes/SketchBrush-16.gih
deleted file mode 100644
index 32c76dec6..000000000
Binary files a/krita/data/brushes/SketchBrush-16.gih and /dev/null differ
diff --git a/krita/data/brushes/SketchBrush-32.gih b/krita/data/brushes/SketchBrush-32.gih
deleted file mode 100644
index 6fae028d0..000000000
Binary files a/krita/data/brushes/SketchBrush-32.gih and /dev/null differ
diff --git a/krita/data/brushes/SketchBrush-64.gih b/krita/data/brushes/SketchBrush-64.gih
deleted file mode 100644
index 8dbff8fd8..000000000
Binary files a/krita/data/brushes/SketchBrush-64.gih and /dev/null differ
diff --git a/krita/data/brushes/callig1.gbr b/krita/data/brushes/callig1.gbr
deleted file mode 100644
index ef3bfa2bb..000000000
Binary files a/krita/data/brushes/callig1.gbr and /dev/null differ
diff --git a/krita/data/brushes/callig2.gbr b/krita/data/brushes/callig2.gbr
deleted file mode 100644
index d607dd574..000000000
Binary files a/krita/data/brushes/callig2.gbr and /dev/null differ
diff --git a/krita/data/brushes/callig3.gbr b/krita/data/brushes/callig3.gbr
deleted file mode 100644
index d84c256cb..000000000
Binary files a/krita/data/brushes/callig3.gbr and /dev/null differ
diff --git a/krita/data/brushes/callig4.gbr b/krita/data/brushes/callig4.gbr
deleted file mode 100644
index 8be1bc1df..000000000
Binary files a/krita/data/brushes/callig4.gbr and /dev/null differ
diff --git a/krita/data/brushes/confetti.gbr b/krita/data/brushes/confetti.gbr
deleted file mode 100644
index d7ba158e9..000000000
Binary files a/krita/data/brushes/confetti.gbr and /dev/null differ
diff --git a/krita/data/brushes/confetti.gih b/krita/data/brushes/confetti.gih
deleted file mode 100644
index dfa9cc880..000000000
Binary files a/krita/data/brushes/confetti.gih and /dev/null differ
diff --git a/krita/data/brushes/cursor.gbr b/krita/data/brushes/cursor.gbr
deleted file mode 100644
index 80be888ed..000000000
Binary files a/krita/data/brushes/cursor.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_big_lb.gbr b/krita/data/brushes/cursor_big_lb.gbr
deleted file mode 100644
index be0dab110..000000000
Binary files a/krita/data/brushes/cursor_big_lb.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_big_lw.gbr b/krita/data/brushes/cursor_big_lw.gbr
deleted file mode 100644
index f92539111..000000000
Binary files a/krita/data/brushes/cursor_big_lw.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_big_rb.gbr b/krita/data/brushes/cursor_big_rb.gbr
deleted file mode 100644
index 09c356ae0..000000000
Binary files a/krita/data/brushes/cursor_big_rb.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_big_rw.gbr b/krita/data/brushes/cursor_big_rw.gbr
deleted file mode 100644
index 53e64f930..000000000
Binary files a/krita/data/brushes/cursor_big_rw.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_lw.gbr b/krita/data/brushes/cursor_lw.gbr
deleted file mode 100644
index be41e4319..000000000
Binary files a/krita/data/brushes/cursor_lw.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_resize_diag_1.gbr b/krita/data/brushes/cursor_resize_diag_1.gbr
deleted file mode 100644
index d31101642..000000000
Binary files a/krita/data/brushes/cursor_resize_diag_1.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_resize_diag_2.gbr b/krita/data/brushes/cursor_resize_diag_2.gbr
deleted file mode 100644
index e4be9425f..000000000
Binary files a/krita/data/brushes/cursor_resize_diag_2.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_resize_hor.gbr b/krita/data/brushes/cursor_resize_hor.gbr
deleted file mode 100644
index fbbbfed80..000000000
Binary files a/krita/data/brushes/cursor_resize_hor.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_resize_vert.gbr b/krita/data/brushes/cursor_resize_vert.gbr
deleted file mode 100644
index 941eb6154..000000000
Binary files a/krita/data/brushes/cursor_resize_vert.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_rw.gbr b/krita/data/brushes/cursor_rw.gbr
deleted file mode 100644
index 50f2bd1a6..000000000
Binary files a/krita/data/brushes/cursor_rw.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_small_lb.gbr b/krita/data/brushes/cursor_small_lb.gbr
deleted file mode 100644
index b64e13717..000000000
Binary files a/krita/data/brushes/cursor_small_lb.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_small_lw.gbr b/krita/data/brushes/cursor_small_lw.gbr
deleted file mode 100644
index abdcaacda..000000000
Binary files a/krita/data/brushes/cursor_small_lw.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_small_rb.gbr b/krita/data/brushes/cursor_small_rb.gbr
deleted file mode 100644
index 900585903..000000000
Binary files a/krita/data/brushes/cursor_small_rb.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_small_rw.gbr b/krita/data/brushes/cursor_small_rw.gbr
deleted file mode 100644
index 5b928fbef..000000000
Binary files a/krita/data/brushes/cursor_small_rw.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_tiny_lw.gbr b/krita/data/brushes/cursor_tiny_lw.gbr
deleted file mode 100644
index d2b67eb95..000000000
Binary files a/krita/data/brushes/cursor_tiny_lw.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_tiny_rw.gbr b/krita/data/brushes/cursor_tiny_rw.gbr
deleted file mode 100644
index a8293bf8d..000000000
Binary files a/krita/data/brushes/cursor_tiny_rw.gbr and /dev/null differ
diff --git a/krita/data/brushes/cursor_up.gbr b/krita/data/brushes/cursor_up.gbr
deleted file mode 100644
index edb8ebec1..000000000
Binary files a/krita/data/brushes/cursor_up.gbr and /dev/null differ
diff --git a/krita/data/brushes/dunes.gbr b/krita/data/brushes/dunes.gbr
deleted file mode 100644
index fc7eed234..000000000
Binary files a/krita/data/brushes/dunes.gbr and /dev/null differ
diff --git a/krita/data/brushes/feltpen.gih b/krita/data/brushes/feltpen.gih
deleted file mode 100644
index 37d9c771c..000000000
Binary files a/krita/data/brushes/feltpen.gih and /dev/null differ
diff --git a/krita/data/brushes/galaxy.gbr b/krita/data/brushes/galaxy.gbr
deleted file mode 100644
index 20a13c269..000000000
Binary files a/krita/data/brushes/galaxy.gbr and /dev/null differ
diff --git a/krita/data/brushes/galaxy_big.gbr b/krita/data/brushes/galaxy_big.gbr
deleted file mode 100644
index dbcc56891..000000000
Binary files a/krita/data/brushes/galaxy_big.gbr and /dev/null differ
diff --git a/krita/data/brushes/galaxy_small.gbr b/krita/data/brushes/galaxy_small.gbr
deleted file mode 100644
index d7f3da57c..000000000
Binary files a/krita/data/brushes/galaxy_small.gbr and /dev/null differ
diff --git a/krita/data/brushes/hsparks.gih b/krita/data/brushes/hsparks.gih
deleted file mode 100644
index 99f75cd9e..000000000
Binary files a/krita/data/brushes/hsparks.gih and /dev/null differ
diff --git a/krita/data/brushes/pepper.gbr b/krita/data/brushes/pepper.gbr
deleted file mode 100644
index 34861d148..000000000
Binary files a/krita/data/brushes/pepper.gbr and /dev/null differ
diff --git a/krita/data/brushes/pixel.gbr b/krita/data/brushes/pixel.gbr
deleted file mode 100644
index 9de22c122..000000000
Binary files a/krita/data/brushes/pixel.gbr and /dev/null differ
diff --git a/krita/data/brushes/vine.gih b/krita/data/brushes/vine.gih
deleted file mode 100644
index 65acae048..000000000
Binary files a/krita/data/brushes/vine.gih and /dev/null differ
diff --git a/krita/data/gradients/Abstract_1.ggr b/krita/data/gradients/Abstract_1.ggr
deleted file mode 100644
index 5e681d223..000000000
--- a/krita/data/gradients/Abstract_1.ggr
+++ /dev/null
@@ -1,9 +0,0 @@
-GIMP Gradient
-Name: Abstract 1
-6
-0.000000 0.286311 0.572621 0.269543 0.259267 1.000000 1.000000 0.215635 0.407414 0.984953 1.000000 0 0
-0.572621 0.657763 0.716194 0.215635 0.407414 0.984953 1.000000 0.040368 0.833333 0.619375 1.000000 0 0
-0.716194 0.734558 0.749583 0.040368 0.833333 0.619375 1.000000 0.680490 0.355264 0.977430 1.000000 0 0
-0.749583 0.784641 0.824708 0.680490 0.355264 0.977430 1.000000 0.553909 0.351853 0.977430 1.000000 0 0
-0.824708 0.853088 0.876461 0.553909 0.351853 0.977430 1.000000 1.000000 0.000000 1.000000 1.000000 0 0
-0.876461 0.943172 1.000000 1.000000 0.000000 1.000000 1.000000 1.000000 1.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/Abstract_2.ggr b/krita/data/gradients/Abstract_2.ggr
deleted file mode 100644
index 913ae0194..000000000
--- a/krita/data/gradients/Abstract_2.ggr
+++ /dev/null
@@ -1,9 +0,0 @@
-GIMP Gradient
-Name: Abstract 2
-6
-0.000000 0.333532 0.570952 1.000000 0.000000 0.055296 1.000000 0.922731 0.452483 0.984953 1.000000 0 0
-0.570952 0.616469 0.664441 0.922731 0.452483 0.984953 1.000000 0.122236 0.319840 0.583333 1.000000 0 0
-0.664441 0.727880 0.756260 0.122236 0.319840 0.583333 1.000000 0.059646 1.000000 0.558369 1.000000 0 0
-0.756260 0.799666 0.843072 0.059646 1.000000 0.558369 1.000000 0.969697 0.948568 0.533333 1.000000 0 0
-0.843072 0.905766 0.949917 0.969697 0.948568 0.533333 1.000000 1.000000 0.490000 1.000000 1.000000 0 0
-0.949917 0.988314 1.000000 1.000000 0.490000 1.000000 1.000000 0.238108 0.191841 1.000000 1.000000 0 0
diff --git a/krita/data/gradients/Abstract_3.ggr b/krita/data/gradients/Abstract_3.ggr
deleted file mode 100644
index 5052750a0..000000000
--- a/krita/data/gradients/Abstract_3.ggr
+++ /dev/null
@@ -1,9 +0,0 @@
-GIMP Gradient
-Name: Abstract 3
-6
-0.000000 0.050083 0.435726 0.000000 0.424242 0.070751 1.000000 1.000000 0.725647 0.428066 1.000000 0 0
-0.435726 0.490818 0.590985 1.000000 0.725647 0.428066 1.000000 0.115248 0.249315 0.651515 1.000000 0 0
-0.590985 0.660267 0.799666 0.115248 0.249315 0.651515 1.000000 0.552948 0.624658 0.550758 1.000000 0 0
-0.799666 0.879800 0.943239 0.552948 0.624658 0.550758 1.000000 0.990647 1.000000 0.450000 1.000000 0 0
-0.943239 0.961603 0.979967 0.990647 1.000000 0.450000 1.000000 0.317635 0.843781 1.000000 1.000000 0 0
-0.979967 0.989983 1.000000 0.317635 0.843781 1.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/Aneurism.ggr b/krita/data/gradients/Aneurism.ggr
deleted file mode 100644
index 092b22923..000000000
--- a/krita/data/gradients/Aneurism.ggr
+++ /dev/null
@@ -1,11 +0,0 @@
-GIMP Gradient
-Name: Aneurism
-8
-0.000000 0.119571 0.235803 0.000000 0.000000 0.000000 0.000000 0.202999 0.003788 0.265152 1.000000 0 0
-0.235803 0.306652 0.377501 0.202999 0.003788 0.265152 1.000000 0.300711 0.001894 0.393939 1.000000 0 0
-0.377501 0.409118 0.437396 0.300711 0.001894 0.393939 1.000000 0.388992 0.000947 0.206459 1.000000 0 0
-0.437396 0.455760 0.474124 0.388992 0.000947 0.206459 1.000000 0.689394 0.000000 0.027414 1.000000 0 0
-0.474124 0.504174 0.534224 0.689394 0.000000 0.027414 1.000000 0.388992 0.000947 0.206459 1.000000 0 0
-0.534224 0.571786 0.609349 0.388992 0.000947 0.206459 1.000000 0.300711 0.001894 0.393939 1.000000 0 0
-0.609349 0.708556 0.770562 0.300711 0.001894 0.393939 1.000000 0.202999 0.003788 0.265152 1.000000 0 0
-0.770562 0.885281 1.000000 0.202999 0.003788 0.265152 1.000000 0.000000 0.000000 0.000000 0.000000 0 0
diff --git a/krita/data/gradients/Blinds.ggr b/krita/data/gradients/Blinds.ggr
deleted file mode 100644
index a6bca8256..000000000
--- a/krita/data/gradients/Blinds.ggr
+++ /dev/null
@@ -1,12 +0,0 @@
-GIMP Gradient
-Name: Blinds
-9
-0.000000 0.041667 0.166667 0.000000 0.000000 0.000000 1.000000 0.500000 0.500000 0.500000 1.000000 2 0
-0.166667 0.186978 0.250000 0.500000 0.500000 0.500000 1.000000 1.000000 1.000000 1.000000 1.000000 2 0
-0.250000 0.250000 0.346689 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 1.000000 2 0
-0.346689 0.425710 0.425710 0.000000 0.000000 0.000000 1.000000 0.500000 0.500000 0.500000 1.000000 2 0
-0.425710 0.541667 0.583333 0.500000 0.500000 0.500000 1.000000 1.000000 1.000000 1.000000 1.000000 2 0
-0.583333 0.583333 0.671119 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 1.000000 2 0
-0.671119 0.761269 0.835003 0.000000 0.000000 0.000000 1.000000 0.416667 0.416667 0.416667 1.000000 2 0
-0.835003 0.875000 0.916667 0.416667 0.416667 0.416667 1.000000 0.833333 0.833333 0.833333 1.000000 2 0
-0.916667 0.916667 1.000000 0.833333 0.833333 0.833333 1.000000 0.000000 0.000000 0.000000 1.000000 2 0
diff --git a/krita/data/gradients/Blue_Green.ggr b/krita/data/gradients/Blue_Green.ggr
deleted file mode 100644
index 4b5045764..000000000
--- a/krita/data/gradients/Blue_Green.ggr
+++ /dev/null
@@ -1,5 +0,0 @@
-GIMP Gradient
-Name: Blue Green
-2
-0.000000 0.135225 0.565943 0.000000 0.481711 1.000000 1.000000 0.283820 0.887055 1.000000 1.000000 0 0
-0.565943 0.918197 1.000000 0.283820 0.887055 1.000000 1.000000 0.000000 1.000000 0.631509 1.000000 0 0
diff --git a/krita/data/gradients/Browns.ggr b/krita/data/gradients/Browns.ggr
deleted file mode 100644
index 7b826a390..000000000
--- a/krita/data/gradients/Browns.ggr
+++ /dev/null
@@ -1,14 +0,0 @@
-GIMP Gradient
-Name: Browns
-11
-0.000000 0.055092 0.116861 0.550000 0.353971 0.192500 1.000000 0.734848 0.461927 0.168587 1.000000 0 0
-0.116861 0.176962 0.253756 0.734848 0.461927 0.168587 1.000000 0.550000 0.328592 0.022000 1.000000 0 0
-0.253756 0.347245 0.404006 0.550000 0.328592 0.022000 1.000000 0.780303 0.457033 0.022095 1.000000 0 0
-0.404006 0.439065 0.507513 0.780303 0.457033 0.022095 1.000000 0.696970 0.330262 0.221382 1.000000 0 0
-0.507513 0.562604 0.592654 0.696970 0.330262 0.221382 1.000000 0.681667 0.487159 0.348063 1.000000 0 0
-0.592654 0.614357 0.644407 0.681667 0.487159 0.348063 1.000000 0.722109 0.527005 0.406758 1.000000 0 0
-0.644407 0.676127 0.706177 0.722109 0.527005 0.406758 1.000000 0.765919 0.570170 0.470341 1.000000 0 0
-0.706177 0.742905 0.782972 0.765919 0.570170 0.470341 1.000000 0.590909 0.402374 0.336818 1.000000 0 0
-0.782972 0.850862 0.883695 0.590909 0.402374 0.336818 1.000000 0.759037 0.555096 0.387109 1.000000 0 0
-0.883695 0.914858 0.934335 0.759037 0.555096 0.387109 1.000000 0.679587 0.523656 0.364325 1.000000 0 0
-0.934335 0.967167 1.000000 0.679587 0.523656 0.364325 1.000000 0.550000 0.353971 0.192500 1.000000 0 0
diff --git a/krita/data/gradients/Brushed_Aluminium.ggr b/krita/data/gradients/Brushed_Aluminium.ggr
deleted file mode 100644
index 3b2462586..000000000
--- a/krita/data/gradients/Brushed_Aluminium.ggr
+++ /dev/null
@@ -1,27 +0,0 @@
-GIMP Gradient
-Name: Brushed Aluminium
-24
-0.000000 0.031250 0.041736 0.435294 0.447059 0.411765 1.000000 0.498070 0.508364 0.477482 1.000000 0 0
-0.041736 0.066308 0.072621 0.498070 0.508364 0.477482 1.000000 0.529458 0.539017 0.510340 1.000000 0 0
-0.072621 0.081803 0.125000 0.549020 0.556863 0.529412 1.000000 0.560845 0.569669 0.543199 1.000000 0 0
-0.125000 0.130217 0.154946 0.560845 0.569669 0.543199 1.000000 0.623621 0.630974 0.608916 1.000000 0 0
-0.154946 0.186196 0.203255 0.623621 0.630974 0.608916 1.000000 0.686397 0.692279 0.674632 1.000000 0 0
-0.203255 0.278798 0.285476 0.686397 0.692279 0.674632 1.000000 0.749173 0.753585 0.740349 1.000000 0 0
-0.285476 0.320534 0.333890 0.749173 0.753585 0.740349 1.000000 0.811948 0.814890 0.806066 1.000000 4 0
-0.333890 0.333890 0.365609 0.756863 0.756863 0.756863 1.000000 0.843336 0.845542 0.838925 1.000000 0 0
-0.365609 0.393990 0.399833 0.843336 0.845542 0.838925 1.000000 0.800000 0.796078 0.756863 1.000000 0 0
-0.399833 0.485392 0.517529 0.800000 0.796078 0.756863 1.000000 0.937500 0.937500 0.937500 1.000000 3 0
-0.517529 0.531250 0.552483 0.937500 0.937500 0.937500 1.000000 0.772549 0.772549 0.772549 1.000000 4 0
-0.552483 0.563439 0.569282 0.658824 0.658824 0.658824 1.000000 0.784314 0.784314 0.800000 1.000000 3 0
-0.569282 0.577629 0.586394 0.784314 0.784314 0.800000 1.000000 0.823529 0.811765 0.811765 1.000000 0 0
-0.586394 0.618322 0.626043 0.823529 0.811765 0.811765 1.000000 0.726583 0.728537 0.731807 1.000000 0 0
-0.626043 0.641068 0.663606 0.726583 0.728537 0.731807 1.000000 0.737255 0.760784 0.721569 1.000000 0 0
-0.663606 0.675292 0.682805 0.737255 0.760784 0.721569 1.000000 0.621109 0.628462 0.613266 1.000000 0 0
-0.682805 0.703673 0.722473 0.621109 0.628462 0.613266 1.000000 0.529412 0.529412 0.529412 1.000000 4 0
-0.722473 0.746680 0.758765 0.529412 0.529412 0.529412 1.000000 0.498039 0.492157 0.472549 1.000000 4 0
-0.758765 0.763773 0.770451 0.447059 0.443137 0.427451 1.000000 0.560784 0.537255 0.549020 1.000000 0 0
-0.770451 0.799145 0.827838 0.513725 0.517647 0.501961 1.000000 0.486417 0.479213 0.477687 1.000000 4 0
-0.827838 0.833890 0.851419 0.486417 0.479213 0.477687 1.000000 0.477872 0.467187 0.470092 1.000000 3 0
-0.851419 0.876461 0.892321 0.477872 0.467187 0.470092 1.000000 0.469328 0.455162 0.462497 1.000000 0 0
-0.892321 0.934474 0.941569 0.469328 0.455162 0.462497 1.000000 0.478431 0.462745 0.470588 1.000000 4 0
-0.941569 0.965776 1.000000 0.465056 0.449150 0.458699 1.000000 0.556863 0.537255 0.552941 1.000000 0 0
diff --git a/krita/data/gradients/Burning_Paper.ggr b/krita/data/gradients/Burning_Paper.ggr
deleted file mode 100644
index df064eb06..000000000
--- a/krita/data/gradients/Burning_Paper.ggr
+++ /dev/null
@@ -1,9 +0,0 @@
-GIMP Gradient
-Name: Burning Paper
-6
-0.000000 0.264608 0.502504 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.502504 0.601002 0.637730 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 1.000000 1 0
-0.637730 0.700343 0.744574 0.000000 0.000000 0.000000 1.000000 0.890000 0.329199 0.177758 1.000000 0 0
-0.744574 0.767761 0.786311 0.890000 0.329199 0.177758 1.000000 1.000000 1.000000 0.000000 1.000000 0 0
-0.786311 0.829920 0.891486 1.000000 1.000000 0.000000 1.000000 0.910000 0.574437 0.000000 1.000000 0 0
-0.891486 0.944908 1.000000 0.910000 0.574437 0.000000 1.000000 0.727273 0.127938 0.148370 1.000000 0 0
diff --git a/krita/data/gradients/Burning_Transparency.ggr b/krita/data/gradients/Burning_Transparency.ggr
deleted file mode 100644
index fccbc4a96..000000000
--- a/krita/data/gradients/Burning_Transparency.ggr
+++ /dev/null
@@ -1,9 +0,0 @@
-GIMP Gradient
-Name: Burning Transparency
-6
-0.000000 0.264608 0.502504 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0 0
-0.502504 0.601002 0.637730 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 1 0
-0.637730 0.700343 0.744574 0.000000 0.000000 0.000000 1.000000 0.890000 0.329199 0.177758 1.000000 0 0
-0.744574 0.767761 0.786311 0.890000 0.329199 0.177758 1.000000 1.000000 1.000000 0.000000 1.000000 0 0
-0.786311 0.829920 0.891486 1.000000 1.000000 0.000000 1.000000 0.910000 0.574437 0.000000 1.000000 0 0
-0.891486 0.944908 1.000000 0.910000 0.574437 0.000000 1.000000 0.727273 0.127938 0.148370 0.000000 0 0
diff --git a/krita/data/gradients/CD.ggr b/krita/data/gradients/CD.ggr
deleted file mode 100644
index 824df9604..000000000
--- a/krita/data/gradients/CD.ggr
+++ /dev/null
@@ -1,21 +0,0 @@
-GIMP Gradient
-Name: CD
-18
-0.000000 0.010566 0.023372 0.819999 0.820000 0.820000 1.000000 0.879999 0.880000 0.880000 1.000000 0 0
-0.023372 0.045682 0.063439 0.879999 0.880000 0.880000 1.000000 0.999999 1.000000 1.000000 1.000000 0 0
-0.063439 0.082638 0.176962 0.999999 1.000000 1.000000 1.000000 0.909999 0.910000 0.910000 1.000000 0 0
-0.176962 0.205342 0.236227 0.909999 0.910000 0.910000 1.000000 0.819999 0.820000 0.820000 1.000000 0 0
-0.236227 0.267623 0.281302 0.819999 0.820000 0.820000 1.000000 0.903167 1.000000 0.000000 1.000000 0 0
-0.281302 0.296327 0.310518 0.903167 1.000000 0.000000 1.000000 0.000000 0.877893 1.000000 1.000000 0 0
-0.310518 0.321369 0.340568 0.000000 0.877893 1.000000 1.000000 0.384390 1.000000 0.900682 1.000000 0 0
-0.340568 0.357129 0.373957 0.384390 1.000000 0.900682 1.000000 0.819999 0.820000 0.820000 1.000000 0 0
-0.373957 0.434190 0.500000 0.819999 0.820000 0.820000 1.000000 0.879999 0.880000 0.880000 1.000000 0 0
-0.500000 0.510566 0.523372 0.819999 0.820000 0.820000 1.000000 0.879999 0.880000 0.880000 1.000000 0 0
-0.523372 0.545682 0.563439 0.879999 0.880000 0.880000 1.000000 0.999999 1.000000 1.000000 1.000000 0 0
-0.563439 0.582638 0.676962 0.999999 1.000000 1.000000 1.000000 0.909999 0.910000 0.910000 1.000000 0 0
-0.676962 0.705342 0.736227 0.909999 0.910000 0.910000 1.000000 0.819999 0.820000 0.820000 1.000000 0 0
-0.736227 0.767623 0.781302 0.819999 0.820000 0.820000 1.000000 0.903167 1.000000 0.000000 1.000000 0 0
-0.781302 0.796327 0.810518 0.903167 1.000000 0.000000 1.000000 0.000000 0.877893 1.000000 1.000000 0 0
-0.810518 0.821369 0.840568 0.000000 0.877893 1.000000 1.000000 0.384390 1.000000 0.900682 1.000000 0 0
-0.840568 0.857129 0.873957 0.384390 1.000000 0.900682 1.000000 0.819999 0.820000 0.820000 1.000000 0 0
-0.873957 0.934190 1.000000 0.819999 0.820000 0.820000 1.000000 0.879999 0.880000 0.880000 1.000000 0 0
diff --git a/krita/data/gradients/CD_Half.ggr b/krita/data/gradients/CD_Half.ggr
deleted file mode 100644
index fdc5dd383..000000000
--- a/krita/data/gradients/CD_Half.ggr
+++ /dev/null
@@ -1,12 +0,0 @@
-GIMP Gradient
-Name: CD Half
-9
-0.000000 0.021131 0.046745 0.819999 0.820000 0.820000 1.000000 0.879999 0.880000 0.880000 1.000000 0 0
-0.046745 0.091364 0.126878 0.879999 0.880000 0.880000 1.000000 0.999999 1.000000 1.000000 1.000000 0 0
-0.126878 0.165275 0.353923 0.999999 1.000000 1.000000 1.000000 0.909999 0.910000 0.910000 1.000000 0 0
-0.353923 0.410684 0.472454 0.909999 0.910000 0.910000 1.000000 0.819999 0.820000 0.820000 1.000000 0 0
-0.472454 0.535246 0.562604 0.819999 0.820000 0.820000 1.000000 0.903167 1.000000 0.000000 1.000000 0 0
-0.562604 0.592654 0.621035 0.903167 1.000000 0.000000 1.000000 0.000000 0.877893 1.000000 1.000000 0 0
-0.621035 0.642738 0.681135 0.000000 0.877893 1.000000 1.000000 0.384390 1.000000 0.900682 1.000000 0 0
-0.681135 0.714259 0.747913 0.384390 1.000000 0.900682 1.000000 0.819999 0.820000 0.820000 1.000000 0 0
-0.747913 0.868381 1.000000 0.819999 0.820000 0.820000 1.000000 0.879999 0.880000 0.880000 1.000000 0 0
diff --git a/krita/data/gradients/Caribbean_Blues.ggr b/krita/data/gradients/Caribbean_Blues.ggr
deleted file mode 100644
index 232b7b8b4..000000000
--- a/krita/data/gradients/Caribbean_Blues.ggr
+++ /dev/null
@@ -1,6 +0,0 @@
-GIMP Gradient
-Name: Caribbean Blues
-3
-0.000000 0.403766 0.567613 0.000000 0.130219 0.583333 1.000000 0.200000 0.833333 0.726927 1.000000 0 0
-0.567613 0.642738 0.681135 0.200000 0.833333 0.726927 1.000000 1.000000 0.988352 0.860000 1.000000 0 0
-0.681135 0.790397 1.000000 1.000000 0.988352 0.860000 1.000000 0.000000 0.431818 0.000000 1.000000 1 0
diff --git a/krita/data/gradients/Coffee.ggr b/krita/data/gradients/Coffee.ggr
deleted file mode 100644
index 24baee0ea..000000000
--- a/krita/data/gradients/Coffee.ggr
+++ /dev/null
@@ -1,4 +0,0 @@
-GIMP Gradient
-Name: Coffee
-1
-0.000000 0.949917 1.000000 0.560606 0.435893 0.311332 0.000000 0.300000 0.233262 0.166605 1.000000 4 0
diff --git a/krita/data/gradients/Cold_Steel.ggr b/krita/data/gradients/Cold_Steel.ggr
deleted file mode 100644
index f6b27a020..000000000
--- a/krita/data/gradients/Cold_Steel.ggr
+++ /dev/null
@@ -1,5 +0,0 @@
-GIMP Gradient
-Name: Cold Steel
-2
-0.000000 0.208681 0.647746 1.000000 1.000000 1.000000 1.000000 0.047059 0.023529 0.137255 1.000000 0 0
-0.647746 0.669449 1.000000 0.047059 0.023529 0.137255 1.000000 0.364706 0.733333 0.756863 1.000000 0 0
diff --git a/krita/data/gradients/Cold_Steel_2.ggr b/krita/data/gradients/Cold_Steel_2.ggr
deleted file mode 100644
index f09dcf89a..000000000
--- a/krita/data/gradients/Cold_Steel_2.ggr
+++ /dev/null
@@ -1,6 +0,0 @@
-GIMP Gradient
-Name: Cold Steel 2
-3
-0.000000 0.068447 0.101836 0.143939 0.013928 0.100000 1.000000 1.000000 1.000000 1.000000 1.000000 1 0
-0.101836 0.501669 0.901503 1.000000 1.000000 1.000000 1.000000 0.088684 0.075143 0.174242 1.000000 1 0
-0.901503 0.929902 1.000000 0.200503 0.169888 0.393939 1.000000 0.047059 0.023529 0.137255 1.000000 1 0
diff --git a/krita/data/gradients/Crown_molding.ggr b/krita/data/gradients/Crown_molding.ggr
deleted file mode 100644
index 56ffb0135..000000000
--- a/krita/data/gradients/Crown_molding.ggr
+++ /dev/null
@@ -1,9 +0,0 @@
-GIMP Gradient
-Name: Crown molding
-6
-0.000000 0.155120 0.238453 0.000000 0.000000 0.000000 1.000000 0.840000 0.840000 0.840000 1.000000 0 0
-0.238453 0.287145 0.288815 0.840000 0.840000 0.840000 1.000000 0.333333 0.333333 0.333333 1.000000 4 0
-0.288815 0.317195 0.388982 0.333333 0.333333 0.333333 1.000000 0.900000 0.900000 0.900000 1.000000 2 0
-0.388982 0.583333 0.713411 0.900000 0.900000 0.900000 1.000000 0.333333 0.333333 0.333333 1.000000 2 0
-0.713411 0.796745 0.878408 0.333333 0.333333 0.333333 1.000000 1.000000 1.000000 1.000000 1.000000 2 0
-0.878408 0.949917 1.000000 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/Dark_1.ggr b/krita/data/gradients/Dark_1.ggr
deleted file mode 100644
index 52a0f8045..000000000
--- a/krita/data/gradients/Dark_1.ggr
+++ /dev/null
@@ -1,6 +0,0 @@
-GIMP Gradient
-Name: Dark 1
-3
-0.000000 0.315713 0.560935 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0 0
-0.560935 0.677796 0.774624 0.000000 0.000000 0.000000 1.000000 0.636364 0.280000 0.280000 1.000000 0 0
-0.774624 0.923326 1.000000 0.636364 0.280000 0.280000 1.000000 1.000000 0.895652 0.840000 1.000000 0 0
diff --git a/krita/data/gradients/Deep_Sea.ggr b/krita/data/gradients/Deep_Sea.ggr
deleted file mode 100644
index c6cfc5fef..000000000
--- a/krita/data/gradients/Deep_Sea.ggr
+++ /dev/null
@@ -1,5 +0,0 @@
-GIMP Gradient
-Name: Deep Sea
-2
-0.000000 0.580968 0.764608 0.000000 0.009040 0.166667 1.000000 0.179032 0.390004 0.621212 1.000000 0 0
-0.764608 0.888147 1.000000 0.179032 0.390004 0.621212 1.000000 0.000000 0.969697 0.969697 1.000000 0 0
diff --git a/krita/data/gradients/Default.ggr b/krita/data/gradients/Default.ggr
deleted file mode 100644
index 82511f35e..000000000
--- a/krita/data/gradients/Default.ggr
+++ /dev/null
@@ -1,4 +0,0 @@
-GIMP Gradient
-Name: Default
-1
-0.000000 0.500000 1.000000 0.000000 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
diff --git a/krita/data/gradients/Flare_Glow_Angular_1.ggr b/krita/data/gradients/Flare_Glow_Angular_1.ggr
deleted file mode 100644
index b0e2dc9c0..000000000
--- a/krita/data/gradients/Flare_Glow_Angular_1.ggr
+++ /dev/null
@@ -1,49 +0,0 @@
-GIMP Gradient
-Name: Flare Glow Angular 1
-46
-0.000000 0.006944 0.013889 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.120000 0 0
-0.013889 0.025598 0.038954 1.000000 1.000000 1.000000 0.120000 1.000000 1.000000 1.000000 0.860000 0 0
-0.038954 0.045214 0.057874 1.000000 1.000000 1.000000 0.860000 1.000000 1.000000 1.000000 0.730000 0 0
-0.057874 0.075748 0.087368 1.000000 1.000000 1.000000 0.730000 1.000000 1.000000 1.000000 1.000000 0 0
-0.087368 0.097941 0.108514 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.000000 0 0
-0.108514 0.117085 0.135678 1.000000 1.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.770000 0 0
-0.135678 0.150815 0.172510 1.000000 1.000000 1.000000 0.770000 1.000000 1.000000 1.000000 1.000000 0 0
-0.172510 0.179517 0.187500 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.100000 0 0
-0.187500 0.196995 0.209446 1.000000 1.000000 1.000000 0.100000 1.000000 1.000000 1.000000 0.760000 0 0
-0.209446 0.224645 0.239844 1.000000 1.000000 1.000000 0.760000 1.000000 1.000000 1.000000 0.420000 0 0
-0.239844 0.244922 0.250000 1.000000 1.000000 1.000000 0.420000 1.000000 1.000000 1.000000 1.000000 0 0
-0.250000 0.264853 0.278154 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.000000 0 0
-0.278154 0.299261 0.312500 1.000000 1.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.760000 0 0
-0.312500 0.322917 0.333333 1.000000 1.000000 1.000000 0.760000 1.000000 1.000000 1.000000 1.000000 0 0
-0.333333 0.340278 0.347222 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.240000 0 0
-0.347222 0.358932 0.372287 1.000000 1.000000 1.000000 0.240000 1.000000 1.000000 1.000000 0.860000 0 0
-0.372287 0.380078 0.395833 1.000000 1.000000 1.000000 0.860000 1.000000 1.000000 1.000000 0.730000 0 0
-0.395833 0.408459 0.416667 1.000000 1.000000 1.000000 0.730000 1.000000 1.000000 1.000000 1.000000 0 0
-0.416667 0.429257 0.441848 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.160000 0 0
-0.441848 0.449230 0.465246 1.000000 1.000000 1.000000 0.160000 1.000000 1.000000 1.000000 0.610000 0 0
-0.465246 0.470949 0.491374 1.000000 1.000000 1.000000 0.610000 1.000000 1.000000 1.000000 0.770000 0 0
-0.491374 0.499722 0.511686 1.000000 1.000000 1.000000 0.770000 1.000000 1.000000 1.000000 1.000000 0 0
-0.511686 0.515962 0.526459 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.000000 0 0
-0.526459 0.536698 0.542780 1.000000 1.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.760000 0 0
-0.542780 0.547606 0.563613 1.000000 1.000000 1.000000 0.760000 1.000000 1.000000 1.000000 0.420000 0 0
-0.563613 0.577090 0.590568 1.000000 1.000000 1.000000 0.420000 1.000000 1.000000 1.000000 1.000000 0 0
-0.590568 0.600984 0.611401 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.490000 0 0
-0.611401 0.616671 0.624957 1.000000 1.000000 1.000000 0.490000 1.000000 1.000000 1.000000 0.000000 0 0
-0.624957 0.635417 0.645833 1.000000 1.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.760000 0 0
-0.645833 0.656250 0.661937 1.000000 1.000000 1.000000 0.760000 1.000000 1.000000 1.000000 1.000000 0 0
-0.661937 0.673611 0.680556 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.240000 0 0
-0.680556 0.698664 0.705620 1.000000 1.000000 1.000000 0.240000 1.000000 1.000000 1.000000 0.860000 0 0
-0.705620 0.709794 0.729167 1.000000 1.000000 1.000000 0.860000 1.000000 1.000000 1.000000 0.100000 0 0
-0.729167 0.741792 0.750000 1.000000 1.000000 1.000000 0.100000 1.000000 1.000000 1.000000 1.000000 0 0
-0.750000 0.762590 0.775181 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.510000 0 0
-0.775181 0.793795 0.806692 1.000000 1.000000 1.000000 0.510000 1.000000 1.000000 1.000000 0.610000 0 0
-0.806692 0.811352 0.822204 1.000000 1.000000 1.000000 0.610000 1.000000 1.000000 1.000000 0.770000 0 0
-0.822204 0.830219 0.835559 1.000000 1.000000 1.000000 0.770000 1.000000 1.000000 1.000000 1.000000 0 0
-0.835559 0.843072 0.854167 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.110000 0 0
-0.854167 0.870031 0.876113 1.000000 1.000000 1.000000 0.110000 1.000000 1.000000 1.000000 0.760000 0 0
-0.876113 0.886530 0.894164 1.000000 1.000000 1.000000 0.760000 1.000000 1.000000 1.000000 0.420000 0 0
-0.894164 0.904024 0.913884 1.000000 1.000000 1.000000 0.420000 1.000000 1.000000 1.000000 1.000000 0 0
-0.913884 0.927083 0.932303 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.490000 0 0
-0.932303 0.947917 0.959015 1.000000 1.000000 1.000000 0.490000 1.000000 1.000000 1.000000 0.000000 0 0
-0.959015 0.968750 0.979167 1.000000 1.000000 1.000000 0.200000 1.000000 1.000000 1.000000 0.760000 0 0
-0.979167 0.989583 1.000000 1.000000 1.000000 1.000000 0.760000 1.000000 1.000000 1.000000 1.000000 0 0
diff --git a/krita/data/gradients/Flare_Glow_Radial_1.ggr b/krita/data/gradients/Flare_Glow_Radial_1.ggr
deleted file mode 100644
index 318f43fed..000000000
--- a/krita/data/gradients/Flare_Glow_Radial_1.ggr
+++ /dev/null
@@ -1,7 +0,0 @@
-GIMP Gradient
-Name: Flare Glow Radial 1
-4
-0.000000 0.353923 0.535893 1.000000 1.000000 1.000000 0.940000 0.780303 0.560606 1.000000 0.480000 1 0
-0.535893 0.595400 0.616550 0.780303 0.560606 1.000000 0.480000 0.900000 0.800000 1.000000 0.860000 1 0
-0.616550 0.636956 0.717863 0.900000 0.800000 1.000000 0.860000 0.780303 0.560606 1.000000 0.480000 1 0
-0.717863 0.854758 1.000000 0.780303 0.560606 1.000000 0.480000 0.900000 0.800000 1.000000 0.000000 1 0
diff --git a/krita/data/gradients/Flare_Glow_Radial_2.ggr b/krita/data/gradients/Flare_Glow_Radial_2.ggr
deleted file mode 100644
index 972825998..000000000
--- a/krita/data/gradients/Flare_Glow_Radial_2.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Flare Glow Radial 2
-5
-0.000000 0.260896 0.530885 0.500000 1.000000 1.000000 0.000000 0.653680 0.728264 0.846320 0.000000 1 2
-0.530885 0.567758 0.646077 0.653680 0.728264 0.846320 0.000000 0.622773 0.921464 0.578536 0.250000 1 2
-0.646077 0.726210 0.766467 0.622773 0.921464 0.578536 0.250000 1.000000 0.500000 0.500000 0.800000 1 2
-0.766467 0.804674 0.888110 1.000000 0.500000 0.500000 0.800000 0.750000 0.500000 1.000000 0.250000 1 2
-0.888110 0.966611 1.000000 0.750000 0.500000 1.000000 0.250000 0.500000 1.000000 1.000000 0.000000 1 2
diff --git a/krita/data/gradients/Flare_Glow_Radial_3.ggr b/krita/data/gradients/Flare_Glow_Radial_3.ggr
deleted file mode 100644
index 42c24e1a5..000000000
--- a/krita/data/gradients/Flare_Glow_Radial_3.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Flare Glow Radial 3
-5
-0.000000 0.173623 0.350584 1.000000 0.920000 0.920000 0.809524 1.000000 0.737255 0.737255 0.306122 2 0
-0.350584 0.375626 0.400668 1.000000 0.737255 0.737255 0.306122 1.000000 0.636060 0.636060 0.306122 0 0
-0.400668 0.411797 0.421223 1.000000 0.636060 0.636060 0.306122 1.000000 0.517647 0.517647 0.605442 1 0
-0.421223 0.430718 0.440735 1.000000 0.517647 0.517647 0.605442 0.988235 0.501961 0.501961 0.306122 1 0
-0.440735 0.720367 1.000000 0.988235 0.501961 0.501961 0.306122 1.000000 0.000000 0.000000 0.000000 0 0
diff --git a/krita/data/gradients/Flare_Glow_Radial_4.ggr b/krita/data/gradients/Flare_Glow_Radial_4.ggr
deleted file mode 100644
index 966f85380..000000000
--- a/krita/data/gradients/Flare_Glow_Radial_4.ggr
+++ /dev/null
@@ -1,6 +0,0 @@
-GIMP Gradient
-Name: Flare Glow Radial 4
-3
-0.000000 0.737896 0.878130 1.000000 0.999999 0.999999 0.100000 1.000000 0.755000 0.755000 0.550000 1 0
-0.878130 0.920520 0.943039 1.000000 0.755000 0.755000 0.550000 1.000000 0.510000 0.510000 1.000000 1 0
-0.943039 0.974958 1.000000 1.000000 0.510000 0.510000 1.000000 1.000000 0.632500 0.632500 0.000000 1 0
diff --git a/krita/data/gradients/Flare_Radial_101.ggr b/krita/data/gradients/Flare_Radial_101.ggr
deleted file mode 100644
index eff7920fc..000000000
--- a/krita/data/gradients/Flare_Radial_101.ggr
+++ /dev/null
@@ -1,10 +0,0 @@
-GIMP Gradient
-Name: Flare Radial 101
-7
-0.000000 0.050918 0.101836 1.000000 0.999999 0.999999 1.000000 1.000000 0.999999 0.999999 1.000000 0 0
-0.101836 0.151085 0.200334 1.000000 0.999999 0.999999 1.000000 1.000000 0.691315 0.691315 0.650000 0 0
-0.200334 0.250417 0.300501 1.000000 0.691315 0.691315 0.650000 1.000000 0.590658 0.590658 0.357895 0 0
-0.300501 0.350584 0.400668 1.000000 0.590658 0.590658 0.357895 1.000000 0.490000 0.490000 0.200000 0 0
-0.400668 0.455760 0.500000 1.000000 0.490000 0.490000 0.200000 1.000000 0.300000 0.300000 0.800000 4 0
-0.500000 0.511269 0.515860 1.000000 0.300000 0.300000 0.800000 1.000000 0.300000 0.300000 0.800000 3 0
-0.515860 0.601002 1.000000 1.000000 0.300000 0.300000 0.800000 1.000000 1.000000 1.000000 0.000000 3 0
diff --git a/krita/data/gradients/Flare_Radial_102.ggr b/krita/data/gradients/Flare_Radial_102.ggr
deleted file mode 100644
index ac50a3c95..000000000
--- a/krita/data/gradients/Flare_Radial_102.ggr
+++ /dev/null
@@ -1,9 +0,0 @@
-GIMP Gradient
-Name: Flare Radial 102
-6
-0.000000 0.024937 0.058431 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.900000 0 0
-0.058431 0.083751 0.105175 1.000000 1.000000 1.000000 0.900000 1.000000 0.490000 0.490000 0.820000 0 0
-0.105175 0.157763 0.208681 1.000000 0.490000 0.490000 0.820000 1.000000 0.250000 0.250000 0.650000 0 0
-0.208681 0.278798 0.405676 1.000000 0.250000 0.250000 0.650000 1.000000 0.250000 0.250000 0.250000 0 0
-0.405676 0.534224 0.799666 1.000000 0.250000 0.250000 0.250000 1.000000 0.250000 0.250000 0.000000 0 0
-0.799666 0.899833 1.000000 1.000000 0.250000 0.250000 0.000000 1.000000 0.250000 0.250000 0.000000 0 0
diff --git a/krita/data/gradients/Flare_Radial_103.ggr b/krita/data/gradients/Flare_Radial_103.ggr
deleted file mode 100644
index a73fbe9e6..000000000
--- a/krita/data/gradients/Flare_Radial_103.ggr
+++ /dev/null
@@ -1,4 +0,0 @@
-GIMP Gradient
-Name: Flare Radial 103
-1
-0.000000 0.517529 1.000000 1.000000 1.000000 1.000000 0.490000 1.000000 0.510000 0.510000 1.000000 0 0
diff --git a/krita/data/gradients/Flare_Rays_Radial_1.ggr b/krita/data/gradients/Flare_Rays_Radial_1.ggr
deleted file mode 100644
index 66a848d56..000000000
--- a/krita/data/gradients/Flare_Rays_Radial_1.ggr
+++ /dev/null
@@ -1,5 +0,0 @@
-GIMP Gradient
-Name: Flare Rays Radial 1
-2
-0.000000 0.514267 0.657763 1.000000 1.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.500000 1 0
-0.657763 0.938230 1.000000 1.000000 1.000000 1.000000 0.500000 1.000000 1.000000 1.000000 0.000000 1 0
diff --git a/krita/data/gradients/Flare_Rays_Radial_2.ggr b/krita/data/gradients/Flare_Rays_Radial_2.ggr
deleted file mode 100644
index c38e061c4..000000000
--- a/krita/data/gradients/Flare_Rays_Radial_2.ggr
+++ /dev/null
@@ -1,5 +0,0 @@
-GIMP Gradient
-Name: Flare Rays Radial 2
-2
-0.000000 0.181970 0.434057 1.000000 1.000000 1.000000 0.000000 1.000000 0.600000 0.600000 0.600000 1 0
-0.434057 0.582638 1.000000 1.000000 0.600000 0.600000 0.600000 1.000000 1.000000 1.000000 0.000000 1 0
diff --git a/krita/data/gradients/Flare_Rays_Size_1.ggr b/krita/data/gradients/Flare_Rays_Size_1.ggr
deleted file mode 100644
index f5d85e7f5..000000000
--- a/krita/data/gradients/Flare_Rays_Size_1.ggr
+++ /dev/null
@@ -1,19 +0,0 @@
-GIMP Gradient
-Name: Flare Rays Size 1
-16
-0.000000 0.031250 0.062500 1.000000 1.000000 1.000000 1.000000 0.240000 0.240000 0.240000 1.000000 0 0
-0.062500 0.117659 0.153589 0.240000 0.240000 0.240000 1.000000 0.860000 0.860000 0.860000 1.000000 0 0
-0.153589 0.161496 0.187500 0.860000 0.860000 0.860000 1.000000 0.730000 0.730000 0.730000 1.000000 0 0
-0.187500 0.225376 0.250000 0.730000 0.730000 0.730000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.250000 0.287771 0.325543 1.000000 1.000000 1.000000 1.000000 0.510000 0.510000 0.510000 1.000000 0 0
-0.325543 0.341148 0.375000 0.510000 0.510000 0.510000 1.000000 0.610000 0.610000 0.610000 1.000000 0 0
-0.375000 0.388982 0.439065 0.610000 0.610000 0.610000 1.000000 0.770000 0.770000 0.770000 1.000000 0 0
-0.439065 0.464107 0.500000 0.770000 0.770000 0.770000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.500000 0.529215 0.562500 1.000000 1.000000 1.000000 1.000000 0.280000 0.280000 0.280000 1.000000 0 0
-0.562500 0.610093 0.628339 0.280000 0.280000 0.280000 1.000000 0.760000 0.760000 0.760000 1.000000 0 0
-0.628339 0.659589 0.690839 0.760000 0.760000 0.760000 1.000000 0.420000 0.420000 0.420000 1.000000 0 0
-0.690839 0.720419 0.750000 0.420000 0.420000 0.420000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.750000 0.781250 0.812500 1.000000 1.000000 1.000000 1.000000 0.490000 0.490000 0.490000 1.000000 0 0
-0.812500 0.843750 0.856427 0.490000 0.490000 0.490000 1.000000 0.000000 0.000000 0.000000 1.000000 0 0
-0.856427 0.906250 0.937500 0.000000 0.000000 0.000000 1.000000 0.760000 0.760000 0.760000 1.000000 0 0
-0.937500 0.968750 1.000000 0.760000 0.760000 0.760000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
diff --git a/krita/data/gradients/Flare_Sizefac_101.ggr b/krita/data/gradients/Flare_Sizefac_101.ggr
deleted file mode 100644
index e654a9eed..000000000
--- a/krita/data/gradients/Flare_Sizefac_101.ggr
+++ /dev/null
@@ -1,4 +0,0 @@
-GIMP Gradient
-Name: Flare Sizefac 101
-1
-0.000000 0.500000 1.000000 0.370000 0.370000 0.370000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
diff --git a/krita/data/gradients/Four_bars.ggr b/krita/data/gradients/Four_bars.ggr
deleted file mode 100644
index 7a0a3e242..000000000
--- a/krita/data/gradients/Four_bars.ggr
+++ /dev/null
@@ -1,11 +0,0 @@
-GIMP Gradient
-Name: Four bars
-8
-0.000000 0.062500 0.125000 0.000000 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.125000 0.187500 0.250000 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0 0
-0.250000 0.312500 0.375000 0.000000 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.375000 0.437500 0.500000 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0 0
-0.500000 0.562500 0.625000 0.000000 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.625000 0.687500 0.750000 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0 0
-0.750000 0.812500 0.875000 0.000000 0.000000 0.000000 1.000000 0.875000 0.875000 0.875000 1.000000 0 0
-0.875000 0.937500 1.000000 0.875000 0.875000 0.875000 1.000000 0.000000 0.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/French_flag.ggr b/krita/data/gradients/French_flag.ggr
deleted file mode 100644
index a61679706..000000000
--- a/krita/data/gradients/French_flag.ggr
+++ /dev/null
@@ -1,6 +0,0 @@
-GIMP Gradient
-Name: French flag
-3
-0.000000 0.166667 0.333333 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000 1.000000 1.000000 0 0
-0.333333 0.500000 0.666667 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.666667 0.833333 1.000000 1.000000 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/French_flag_smooth.ggr b/krita/data/gradients/French_flag_smooth.ggr
deleted file mode 100644
index 61b179df2..000000000
--- a/krita/data/gradients/French_flag_smooth.ggr
+++ /dev/null
@@ -1,5 +0,0 @@
-GIMP Gradient
-Name: French flag smooth
-2
-0.000000 0.250000 0.500000 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.500000 0.750000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/Full_saturation_spectrum_CCW.ggr b/krita/data/gradients/Full_saturation_spectrum_CCW.ggr
deleted file mode 100644
index 9bd2ea3b0..000000000
--- a/krita/data/gradients/Full_saturation_spectrum_CCW.ggr
+++ /dev/null
@@ -1,4 +0,0 @@
-GIMP Gradient
-Name: Full saturation spectrum CCW
-1
-0.000000 0.500000 1.000000 1.000000 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000 1.000000 0 1
diff --git a/krita/data/gradients/Full_saturation_spectrum_CW.ggr b/krita/data/gradients/Full_saturation_spectrum_CW.ggr
deleted file mode 100644
index d70ba6438..000000000
--- a/krita/data/gradients/Full_saturation_spectrum_CW.ggr
+++ /dev/null
@@ -1,4 +0,0 @@
-GIMP Gradient
-Name: Full saturation spectrum CW
-1
-0.000000 0.500000 1.000000 1.000000 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000 1.000000 0 2
diff --git a/krita/data/gradients/German_flag.ggr b/krita/data/gradients/German_flag.ggr
deleted file mode 100644
index 8d76ac20e..000000000
--- a/krita/data/gradients/German_flag.ggr
+++ /dev/null
@@ -1,6 +0,0 @@
-GIMP Gradient
-Name: German flag
-3
-0.000000 0.166667 0.333333 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0 0
-0.333333 0.500000 0.666667 1.000000 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000 1.000000 0 0
-0.666667 0.833333 1.000000 1.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/German_flag_smooth.ggr b/krita/data/gradients/German_flag_smooth.ggr
deleted file mode 100644
index efadfdbc3..000000000
--- a/krita/data/gradients/German_flag_smooth.ggr
+++ /dev/null
@@ -1,5 +0,0 @@
-GIMP Gradient
-Name: German flag smooth
-2
-0.000000 0.250000 0.500000 0.000000 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000 1.000000 0 0
-0.500000 0.750000 1.000000 1.000000 0.000000 0.000000 1.000000 1.000000 1.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/Golden.ggr b/krita/data/gradients/Golden.ggr
deleted file mode 100644
index 4f1a65e20..000000000
--- a/krita/data/gradients/Golden.ggr
+++ /dev/null
@@ -1,17 +0,0 @@
-GIMP Gradient
-Name: Golden
-14
-0.000000 0.080316 0.163606 0.137255 0.156863 0.011760 1.000000 0.533330 0.415600 0.086270 1.000000 0 0
-0.163606 0.193879 0.224151 0.533330 0.415600 0.086270 1.000000 0.650000 0.550000 0.161000 1.000000 0 0
-0.224151 0.254424 0.284697 0.650000 0.550000 0.161000 1.000000 0.800000 0.710000 0.290000 1.000000 0 0
-0.284697 0.314969 0.345242 0.800000 0.710000 0.290000 1.000000 0.920000 0.859000 0.400000 1.000000 0 0
-0.345242 0.382304 0.414023 0.920000 0.859000 0.400000 1.000000 0.960000 0.925000 0.440000 1.000000 0 0
-0.414023 0.467446 0.516416 0.960000 0.925000 0.440000 1.000000 0.820000 0.745000 0.298000 1.000000 0 0
-0.516416 0.541681 0.571953 0.820000 0.745000 0.298000 1.000000 0.733300 0.612000 0.200000 1.000000 0 0
-0.571953 0.602226 0.632499 0.733300 0.612000 0.200000 1.000000 0.658800 0.556900 0.165000 1.000000 0 0
-0.632499 0.662771 0.698052 0.658800 0.556900 0.165000 1.000000 0.792160 0.682300 0.266667 1.000000 0 0
-0.698052 0.728325 0.757930 0.792160 0.682300 0.266667 1.000000 0.855000 0.792000 0.337000 1.000000 0 0
-0.757930 0.787201 0.817474 0.855000 0.792000 0.337000 1.000000 0.816000 0.733300 0.286300 1.000000 0 0
-0.817474 0.847746 0.878019 0.816000 0.733300 0.286300 1.000000 0.733300 0.612000 0.200000 1.000000 0 0
-0.878019 0.906511 0.934891 0.733300 0.612000 0.200000 1.000000 0.537000 0.423500 0.101000 1.000000 0 0
-0.934891 0.973289 1.000000 0.537000 0.423500 0.101000 1.000000 0.137255 0.156863 0.011760 1.000000 0 0
diff --git a/krita/data/gradients/Greens.ggr b/krita/data/gradients/Greens.ggr
deleted file mode 100644
index 0f307a010..000000000
--- a/krita/data/gradients/Greens.ggr
+++ /dev/null
@@ -1,12 +0,0 @@
-GIMP Gradient
-Name: Greens
-9
-0.000000 0.062500 0.086811 0.146341 0.393939 0.133992 1.000000 0.198883 0.300000 0.135000 1.000000 0 0
-0.086811 0.200334 0.250000 0.198883 0.300000 0.135000 1.000000 0.406805 0.613636 0.276136 1.000000 0 0
-0.250000 0.312500 0.375000 0.406805 0.613636 0.276136 1.000000 0.324169 0.454545 0.114714 1.000000 0 0
-0.375000 0.437500 0.500835 0.324169 0.454545 0.114714 1.000000 0.098346 0.136364 0.085909 1.000000 0 0
-0.500835 0.535893 0.577629 0.098346 0.136364 0.085909 1.000000 0.196692 0.272727 0.171818 1.000000 0 0
-0.577629 0.621035 0.657763 0.234710 0.243859 0.187625 1.000000 0.272727 0.214990 0.203431 1.000000 0 0
-0.657763 0.709516 0.757930 0.272727 0.214990 0.203431 1.000000 0.430776 0.666667 0.326636 1.000000 1 0
-0.757930 0.811352 0.839733 0.430776 0.666667 0.326636 1.000000 0.369390 0.420000 0.344400 1.000000 1 0
-0.839733 0.968280 1.000000 0.369390 0.420000 0.344400 1.000000 0.091517 0.260000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/Horizon_1.ggr b/krita/data/gradients/Horizon_1.ggr
deleted file mode 100644
index 25db002bd..000000000
--- a/krita/data/gradients/Horizon_1.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Horizon 1
-5
-0.000000 0.348915 0.532554 0.047059 0.360784 0.572549 1.000000 1.000000 0.984314 0.984314 1.000000 0 0
-0.532554 0.542571 0.555927 1.000000 0.984314 0.984314 1.000000 0.258824 0.121569 0.035294 1.000000 3 0
-0.555927 0.582638 0.612688 0.258824 0.121569 0.035294 1.000000 1.000000 0.811765 0.549020 1.000000 3 0
-0.612688 0.778798 0.948247 1.000000 0.811765 0.549020 1.000000 0.349020 0.160784 0.058824 1.000000 0 0
-0.948247 0.974124 1.000000 0.349020 0.160784 0.058824 1.000000 1.000000 0.556863 0.219608 1.000000 0 0
diff --git a/krita/data/gradients/Horizon_2.ggr b/krita/data/gradients/Horizon_2.ggr
deleted file mode 100644
index e2d07424b..000000000
--- a/krita/data/gradients/Horizon_2.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Horizon 2
-5
-0.000000 0.290484 0.348915 0.047059 0.360784 0.572549 1.000000 0.370303 0.628966 0.787879 1.000000 0 0
-0.348915 0.470785 0.532554 0.370303 0.628966 0.787879 1.000000 1.000000 0.984314 0.984314 1.000000 0 0
-0.532554 0.542571 0.555927 1.000000 0.984314 0.984314 1.000000 0.039048 0.132980 0.265152 1.000000 3 0
-0.555927 0.582638 0.612688 0.039048 0.132980 0.265152 1.000000 0.522500 0.823569 0.950000 1.000000 3 0
-0.612688 0.754591 1.000000 0.522500 0.823569 0.950000 1.000000 0.087500 0.131053 0.250000 1.000000 0 0
diff --git a/krita/data/gradients/Incandescent.ggr b/krita/data/gradients/Incandescent.ggr
deleted file mode 100644
index 64a3438b4..000000000
--- a/krita/data/gradients/Incandescent.ggr
+++ /dev/null
@@ -1,7 +0,0 @@
-GIMP Gradient
-Name: Incandescent
-4
-0.000000 0.459098 0.594324 0.000000 0.000000 0.000000 1.000000 0.729412 0.000000 0.000000 1.000000 0 0
-0.594324 0.677796 0.809683 0.729412 0.000000 0.000000 1.000000 1.000000 0.545098 0.196078 1.000000 0 0
-0.809683 0.853088 0.899833 1.000000 0.545098 0.196078 1.000000 0.972549 0.937255 0.074510 1.000000 0 0
-0.899833 0.948247 1.000000 0.972549 0.937255 0.074510 1.000000 0.976471 0.968627 0.831373 1.000000 0 0
diff --git a/krita/data/gradients/Land_1.ggr b/krita/data/gradients/Land_1.ggr
deleted file mode 100644
index a2180779e..000000000
--- a/krita/data/gradients/Land_1.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Land 1
-5
-0.000000 0.348915 0.532554 0.047059 0.360784 0.572549 1.000000 1.000000 0.984314 0.984314 1.000000 0 0
-0.532554 0.542571 0.555927 1.000000 0.984314 0.984314 1.000000 0.258824 0.121569 0.035294 1.000000 3 0
-0.555927 0.582638 0.612688 0.258824 0.121569 0.035294 1.000000 0.378491 0.689394 0.398544 1.000000 3 0
-0.612688 0.702838 0.948247 0.378491 0.689394 0.398544 1.000000 0.058824 0.349020 0.114977 1.000000 0 0
-0.948247 0.974124 1.000000 0.058824 0.349020 0.114977 1.000000 0.111468 0.507576 0.162566 1.000000 0 0
diff --git a/krita/data/gradients/Land_and_Sea.ggr b/krita/data/gradients/Land_and_Sea.ggr
deleted file mode 100644
index a932b1886..000000000
--- a/krita/data/gradients/Land_and_Sea.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Land and Sea
-5
-0.000000 0.081803 0.166945 1.000000 1.000000 1.000000 1.000000 0.560606 0.560606 0.560606 1.000000 0 0
-0.166945 0.212020 0.265442 0.560606 0.560606 0.560606 1.000000 0.083243 0.462121 0.112054 1.000000 0 0
-0.265442 0.378965 0.390651 0.083243 0.462121 0.112054 1.000000 1.000000 0.988739 0.298904 1.000000 0 0
-0.390651 0.400668 0.459098 1.000000 0.988739 0.298904 1.000000 0.529502 0.586235 1.000000 1.000000 0 0
-0.459098 0.507513 1.000000 0.529502 0.586235 1.000000 1.000000 0.019021 0.108157 0.590909 1.000000 0 0
diff --git a/krita/data/gradients/Makefile.am b/krita/data/gradients/Makefile.am
deleted file mode 100644
index 46df0213a..000000000
--- a/krita/data/gradients/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-
-kritagradientsdir = $(prefix)/share/apps/krita/gradients
-
-kritagradients_DATA = Abstract_1.ggr Abstract_2.ggr Abstract_3.ggr Aneurism.ggr Blinds.ggr Blue_Green.ggr Browns.ggr Brushed_Aluminium.ggr Burning_Paper.ggr Burning_Transparency.ggr Caribbean_Blues.ggr CD.ggr CD_Half.ggr Coffee.ggr Cold_Steel_2.ggr Cold_Steel.ggr Crown_molding.ggr Dark_1.ggr Deep_Sea.ggr Default.ggr Flare_Glow_Angular_1.ggr Flare_Glow_Radial_1.ggr Flare_Glow_Radial_2.ggr Flare_Glow_Radial_3.ggr Flare_Glow_Radial_4.ggr Flare_Radial_101.ggr Flare_Radial_102.ggr Flare_Radial_103.ggr Flare_Rays_Radial_1.ggr Flare_Rays_Radial_2.ggr Flare_Rays_Size_1.ggr Flare_Sizefac_101.ggr Four_bars.ggr French_flag.ggr French_flag_smooth.ggr Full_saturation_spectrum_CCW.ggr Full_saturation_spectrum_CW.ggr German_flag.ggr German_flag_smooth.ggr Golden.ggr Greens.ggr Horizon_1.ggr Horizon_2.ggr Incandescent.ggr Land_1.ggr Land_and_Sea.ggr Metallic_Something.ggr Mexican_flag.ggr Mexican_flag_smooth.ggr Nauseating_Headache.ggr Neon_Cyan.ggr Neon_Green.ggr Neon_Yellow.ggr Pastel_Rainbow.ggr Pastels.ggr Purples.ggr Radial_Eyeball_Blue.ggr Radial_Eyeball_Brown.ggr Radial_Eyeball_Green.ggr Radial_Glow_1.ggr Radial_Rainbow_Hoop.ggr Romanian_flag.ggr Romanian_flag_smooth.ggr Rounded_edge.ggr Shadows_1.ggr Shadows_2.ggr Shadows_3.ggr Skyline.ggr Skyline_polluted.ggr Square_Wood_Frame.ggr Sunrise.ggr Three_bars_sin.ggr Tropical_Colors.ggr Tube_Red.ggr Wood_1.ggr Wood_2.ggr Yellow_Contrast.ggr Yellow_Orange.ggr 
diff --git a/krita/data/gradients/Metallic_Something.ggr b/krita/data/gradients/Metallic_Something.ggr
deleted file mode 100644
index 19e675b7b..000000000
--- a/krita/data/gradients/Metallic_Something.ggr
+++ /dev/null
@@ -1,11 +0,0 @@
-GIMP Gradient
-Name: Metallic Something
-8
-0.000000 0.036728 0.096828 0.020000 0.050000 0.080000 1.000000 0.142500 0.168750 0.195000 1.000000 2 0
-0.096828 0.163606 0.220367 0.142500 0.168750 0.195000 1.000000 0.317326 0.344269 0.371212 1.000000 2 0
-0.220367 0.287237 0.333890 0.317326 0.344269 0.371212 1.000000 0.425000 0.357284 0.327250 1.000000 2 0
-0.333890 0.368835 0.423205 0.425000 0.357284 0.327250 1.000000 0.271322 0.389264 0.500000 1.000000 2 0
-0.423205 0.517744 0.574290 0.271322 0.389264 0.500000 1.000000 0.592000 0.632258 0.800000 1.000000 2 0
-0.574290 0.657691 0.742905 0.592000 0.632258 0.800000 1.000000 0.931818 0.906382 0.782727 1.000000 2 0
-0.742905 0.808013 0.859766 0.931818 0.906382 0.782727 1.000000 0.841294 0.844890 0.848485 1.000000 2 0
-0.859766 0.914858 1.000000 0.841294 0.844890 0.848485 1.000000 0.581685 0.611610 0.674242 1.000000 2 0
diff --git a/krita/data/gradients/Mexican_flag.ggr b/krita/data/gradients/Mexican_flag.ggr
deleted file mode 100644
index bcb7686d0..000000000
--- a/krita/data/gradients/Mexican_flag.ggr
+++ /dev/null
@@ -1,6 +0,0 @@
-GIMP Gradient
-Name: Mexican flag
-3
-0.000000 0.166667 0.333333 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0 0
-0.333333 0.500000 0.666667 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.666667 0.833333 1.000000 1.000000 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/Mexican_flag_smooth.ggr b/krita/data/gradients/Mexican_flag_smooth.ggr
deleted file mode 100644
index ee3631163..000000000
--- a/krita/data/gradients/Mexican_flag_smooth.ggr
+++ /dev/null
@@ -1,5 +0,0 @@
-GIMP Gradient
-Name: Mexican flag smooth
-2
-0.000000 0.250000 0.500000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.500000 0.750000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/Nauseating_Headache.ggr b/krita/data/gradients/Nauseating_Headache.ggr
deleted file mode 100644
index 347453ac8..000000000
--- a/krita/data/gradients/Nauseating_Headache.ggr
+++ /dev/null
@@ -1,28 +0,0 @@
-GIMP Gradient
-Name: Nauseating Headache
-25
-0.000000 0.058431 0.098497 0.391197 0.651515 0.409796 1.000000 0.495110 0.916667 0.865009 1.000000 0 1
-0.098497 0.100167 0.101836 0.495110 0.916667 0.865009 1.000000 0.451393 0.807720 0.778663 1.000000 0 0
-0.101836 0.103506 0.105175 0.451393 0.807720 0.778663 1.000000 0.407676 0.698774 0.692318 1.000000 0 0
-0.105175 0.106845 0.108514 0.407676 0.698774 0.692318 1.000000 0.363958 0.589828 0.605972 1.000000 0 0
-0.108514 0.110184 0.111853 0.363958 0.589828 0.605972 1.000000 0.320241 0.480881 0.519626 1.000000 0 0
-0.111853 0.122705 0.133556 0.320241 0.480881 0.519626 1.000000 0.276524 0.371935 0.433280 1.000000 0 0
-0.133556 0.144407 0.157763 0.276524 0.371935 0.433280 1.000000 0.232807 0.262989 0.346934 1.000000 0 0
-0.157763 0.161937 0.166110 0.232807 0.262989 0.346934 1.000000 0.390299 0.317958 0.537879 1.000000 0 0
-0.166110 0.256469 0.313022 0.390299 0.317958 0.537879 1.000000 0.145373 0.045096 0.174242 1.000000 0 0
-0.313022 0.333890 0.355175 0.145373 0.045096 0.174242 1.000000 0.424242 0.065931 0.036105 1.000000 0 0
-0.355175 0.494470 0.626043 0.424242 0.065931 0.036105 1.000000 0.145373 0.045096 0.174242 1.000000 2 0
-0.626043 0.635363 0.645614 0.232807 0.262989 0.346934 1.000000 0.390299 0.317958 0.537879 1.000000 0 0
-0.645614 0.679871 0.724958 0.390299 0.317958 0.537879 1.000000 0.145373 0.045096 0.174242 1.000000 0 0
-0.724958 0.729132 0.729132 0.232807 0.262989 0.346934 1.000000 0.390299 0.317958 0.537879 1.000000 0 0
-0.729132 0.740427 0.751722 0.390299 0.317958 0.537879 1.000000 0.359683 0.283851 0.492424 1.000000 0 0
-0.751722 0.763016 0.774311 0.359683 0.283851 0.492424 1.000000 0.329067 0.249743 0.446970 1.000000 0 0
-0.774311 0.785606 0.796901 0.329067 0.249743 0.446970 1.000000 0.298452 0.215635 0.401515 1.000000 0 0
-0.796901 0.808196 0.819491 0.298452 0.215635 0.401515 1.000000 0.267836 0.181527 0.356061 1.000000 0 0
-0.819491 0.830786 0.842081 0.267836 0.181527 0.356061 1.000000 0.237220 0.147420 0.310606 1.000000 0 0
-0.842081 0.853375 0.864670 0.310606 0.000000 0.003409 1.000000 0.424242 0.137255 0.137255 1.000000 2 0
-0.864670 0.867435 0.874067 0.206604 0.113312 0.265152 1.000000 0.951331 1.000000 0.487291 1.000000 0 0
-0.874067 0.878939 0.884060 0.951331 1.000000 0.487291 1.000000 0.951331 1.000000 0.487291 1.000000 0 0
-0.884060 0.893477 0.902894 0.951331 1.000000 0.487291 1.000000 0.951331 1.000000 0.487291 1.000000 0 0
-0.902894 0.908389 0.910267 0.951331 1.000000 0.487291 1.000000 0.145373 0.045096 0.174242 1.000000 0 0
-0.910267 1.000000 1.000000 0.145373 0.045096 0.174242 1.000000 0.495110 0.916667 0.865009 1.000000 0 0
diff --git a/krita/data/gradients/Neon_Cyan.ggr b/krita/data/gradients/Neon_Cyan.ggr
deleted file mode 100644
index 4ae27583e..000000000
--- a/krita/data/gradients/Neon_Cyan.ggr
+++ /dev/null
@@ -1,7 +0,0 @@
-GIMP Gradient
-Name: Neon Cyan
-4
-0.000000 0.672788 0.699499 0.000000 1.000000 0.949020 0.000000 0.000000 1.000000 0.933333 0.901961 1 0
-0.699499 0.737062 0.774624 0.000000 1.000000 0.913725 0.901961 0.827451 1.000000 0.988235 1.000000 1 0
-0.774624 0.812187 0.849750 0.827451 1.000000 0.984314 1.000000 0.000000 1.000000 0.913725 0.901961 1 0
-0.849750 0.874791 1.000000 0.000000 1.000000 0.913725 0.901961 0.000000 1.000000 0.933333 0.000000 1 0
diff --git a/krita/data/gradients/Neon_Green.ggr b/krita/data/gradients/Neon_Green.ggr
deleted file mode 100644
index 1f7402f86..000000000
--- a/krita/data/gradients/Neon_Green.ggr
+++ /dev/null
@@ -1,7 +0,0 @@
-GIMP Gradient
-Name: Neon Green
-4
-0.000000 0.672788 0.699499 0.000000 1.000000 0.000000 0.000000 0.129412 1.000000 0.000000 0.901961 1 0
-0.699499 0.737062 0.774624 0.129412 1.000000 0.000000 0.901961 0.823529 1.000000 0.807843 1.000000 1 0
-0.774624 0.812187 0.849750 0.823529 1.000000 0.807843 1.000000 0.196078 1.000000 0.000000 0.901961 1 0
-0.849750 0.874791 1.000000 0.196078 1.000000 0.000000 0.901961 0.031373 1.000000 0.000000 0.000000 1 0
diff --git a/krita/data/gradients/Neon_Yellow.ggr b/krita/data/gradients/Neon_Yellow.ggr
deleted file mode 100644
index 31648b049..000000000
--- a/krita/data/gradients/Neon_Yellow.ggr
+++ /dev/null
@@ -1,7 +0,0 @@
-GIMP Gradient
-Name: Neon Yellow
-4
-0.000000 0.672788 0.699499 1.000000 0.949020 0.000000 0.000000 1.000000 0.933333 0.000000 0.901961 1 0
-0.699499 0.737062 0.774624 1.000000 0.933333 0.000000 0.901961 0.996078 1.000000 0.819608 1.000000 1 0
-0.774624 0.812187 0.849750 1.000000 0.996078 0.819608 1.000000 1.000000 0.949020 0.000000 0.901961 1 0
-0.849750 0.874791 1.000000 1.000000 0.949020 0.000000 0.901961 1.000000 0.949020 0.000000 0.000000 1 0
diff --git a/krita/data/gradients/Pastel_Rainbow.ggr b/krita/data/gradients/Pastel_Rainbow.ggr
deleted file mode 100644
index 28a71847c..000000000
--- a/krita/data/gradients/Pastel_Rainbow.ggr
+++ /dev/null
@@ -1,4 +0,0 @@
-GIMP Gradient
-Name: Pastel Rainbow
-1
-0.000000 0.500000 1.000000 1.000000 0.749020 0.749020 1.000000 1.000000 0.749020 0.749020 1.000000 0 1
diff --git a/krita/data/gradients/Pastels.ggr b/krita/data/gradients/Pastels.ggr
deleted file mode 100644
index f57fa5afa..000000000
--- a/krita/data/gradients/Pastels.ggr
+++ /dev/null
@@ -1,17 +0,0 @@
-GIMP Gradient
-Name: Pastels
-14
-0.000000 0.035714 0.091462 0.960000 0.880000 0.690000 1.000000 0.962857 0.741400 0.930894 1.000000 0 0
-0.091462 0.127176 0.137849 0.962857 0.741400 0.930894 1.000000 0.761897 0.812851 0.965714 1.000000 0 0
-0.137849 0.171953 0.189244 0.761897 0.812851 0.965714 1.000000 0.719697 0.628944 0.660036 1.000000 0 0
-0.189244 0.223706 0.252087 0.719697 0.628944 0.660036 1.000000 0.670286 0.728675 0.971429 1.000000 0 0
-0.252087 0.300501 0.323754 0.670286 0.728675 0.971429 1.000000 0.951464 0.974286 0.876857 1.000000 0 0
-0.323754 0.365609 0.386835 0.951464 0.974286 0.876857 1.000000 0.977143 0.634945 0.718332 1.000000 0 0
-0.386835 0.430897 0.470785 0.977143 0.634945 0.718332 1.000000 0.391757 0.449753 0.484848 1.000000 0 0
-0.470785 0.549249 0.581445 0.391757 0.449753 0.484848 1.000000 0.982857 0.804789 0.790632 1.000000 0 0
-0.581445 0.598796 0.646077 0.982857 0.804789 0.790632 1.000000 0.666941 0.500514 0.727273 1.000000 0 0
-0.646077 0.720308 0.742905 0.666941 0.500514 0.727273 1.000000 0.988571 0.870321 0.798764 1.000000 0 0
-0.742905 0.772955 0.804674 0.988571 0.870321 0.798764 1.000000 0.806903 0.479551 0.856061 1.000000 0 0
-0.804674 0.829716 0.861436 0.806903 0.479551 0.856061 1.000000 0.994286 0.873405 0.686057 1.000000 0 0
-0.861436 0.892857 0.911519 0.994286 0.873405 0.686057 1.000000 0.997143 0.927343 0.955263 1.000000 0 0
-0.911519 0.964286 1.000000 0.997143 0.927343 0.955263 1.000000 1.000000 0.748380 0.866107 1.000000 0 0
diff --git a/krita/data/gradients/Purples.ggr b/krita/data/gradients/Purples.ggr
deleted file mode 100644
index 6c6ce6891..000000000
--- a/krita/data/gradients/Purples.ggr
+++ /dev/null
@@ -1,10 +0,0 @@
-GIMP Gradient
-Name: Purples
-7
-0.000000 0.057596 0.098497 0.303030 0.109635 0.273088 1.000000 0.514411 0.279242 0.734848 1.000000 0 0
-0.098497 0.176962 0.228715 0.514411 0.279242 0.734848 1.000000 0.604602 0.331500 0.650000 1.000000 0 0
-0.228715 0.347245 0.404006 0.604602 0.331500 0.650000 1.000000 0.200503 0.169888 0.393939 1.000000 0 0
-0.404006 0.480801 0.544241 0.200503 0.169888 0.393939 1.000000 0.500537 0.323300 0.530000 1.000000 0 0
-0.544241 0.628761 0.713283 0.500537 0.323300 0.530000 1.000000 0.600648 0.445741 0.681667 1.000000 0 0
-0.713283 0.766491 0.819699 0.600648 0.445741 0.681667 1.000000 0.700758 0.568182 0.833333 1.000000 0 0
-0.819699 0.928214 1.000000 0.700758 0.568182 0.833333 1.000000 0.184745 0.149793 0.219697 1.000000 0 0
diff --git a/krita/data/gradients/Radial_Eyeball_Blue.ggr b/krita/data/gradients/Radial_Eyeball_Blue.ggr
deleted file mode 100644
index 9a23068b2..000000000
--- a/krita/data/gradients/Radial_Eyeball_Blue.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Radial Eyeball Blue
-5
-0.000000 0.105175 0.198664 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0 0
-0.198664 0.352254 0.492487 0.000000 0.035294 0.729412 1.000000 0.000000 0.015686 0.376471 1.000000 0 0
-0.492487 0.636060 0.787980 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.787980 0.931553 0.996661 1.000000 1.000000 1.000000 1.000000 1.000000 0.619608 0.619608 1.000000 0 0
-0.996661 0.996661 1.000000 1.000000 0.619608 0.619608 0.000000 1.000000 0.619608 0.619608 0.000000 0 0
diff --git a/krita/data/gradients/Radial_Eyeball_Brown.ggr b/krita/data/gradients/Radial_Eyeball_Brown.ggr
deleted file mode 100644
index c90494406..000000000
--- a/krita/data/gradients/Radial_Eyeball_Brown.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Radial Eyeball Brown
-5
-0.000000 0.105175 0.198664 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0 0
-0.198664 0.352254 0.492487 0.478431 0.380392 0.000000 1.000000 0.298039 0.227451 0.000000 1.000000 0 0
-0.492487 0.636060 0.787980 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.787980 0.931553 0.996661 1.000000 1.000000 1.000000 1.000000 1.000000 0.619608 0.619608 1.000000 0 0
-0.996661 0.996661 1.000000 1.000000 0.619608 0.619608 0.000000 1.000000 0.619608 0.619608 0.000000 0 0
diff --git a/krita/data/gradients/Radial_Eyeball_Green.ggr b/krita/data/gradients/Radial_Eyeball_Green.ggr
deleted file mode 100644
index 5352ec6f1..000000000
--- a/krita/data/gradients/Radial_Eyeball_Green.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Radial Eyeball Green
-5
-0.000000 0.105175 0.198664 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0 0
-0.198664 0.352254 0.492487 0.000000 0.709804 0.423529 1.000000 0.000000 0.356863 0.094118 1.000000 0 0
-0.492487 0.636060 0.787980 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0
-0.787980 0.931553 0.996661 1.000000 1.000000 1.000000 1.000000 1.000000 0.619608 0.619608 1.000000 0 0
-0.996661 0.996661 1.000000 1.000000 0.619608 0.619608 0.000000 1.000000 0.619608 0.619608 0.000000 0 0
diff --git a/krita/data/gradients/Radial_Glow_1.ggr b/krita/data/gradients/Radial_Glow_1.ggr
deleted file mode 100644
index 7169c67bb..000000000
--- a/krita/data/gradients/Radial_Glow_1.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Radial Glow 1
-5
-0.000000 0.173623 0.350584 1.000000 1.000000 1.000000 0.809524 1.000000 0.737255 0.737255 0.306122 2 0
-0.350584 0.375626 0.400668 1.000000 0.737255 0.737255 0.306122 1.000000 0.636060 0.636060 0.306122 0 0
-0.400668 0.417919 0.421223 1.000000 0.636060 0.636060 0.306122 1.000000 0.517647 0.517647 0.605442 1 0
-0.421223 0.425153 0.440735 1.000000 0.517647 0.517647 0.605442 0.988235 0.501961 0.501961 0.306122 1 0
-0.440735 0.720367 1.000000 0.988235 0.501961 0.501961 0.306122 1.000000 0.000000 0.000000 0.000000 0 0
diff --git a/krita/data/gradients/Radial_Rainbow_Hoop.ggr b/krita/data/gradients/Radial_Rainbow_Hoop.ggr
deleted file mode 100644
index b34ad9158..000000000
--- a/krita/data/gradients/Radial_Rainbow_Hoop.ggr
+++ /dev/null
@@ -1,6 +0,0 @@
-GIMP Gradient
-Name: Radial Rainbow Hoop
-3
-0.000000 0.666110 0.699499 0.000000 1.000000 0.000000 0.000000 1.000000 0.113725 0.000000 1.000000 1 2
-0.699499 0.767947 0.849750 1.000000 0.113725 0.000000 1.000000 1.000000 0.000000 0.047059 1.000000 0 1
-0.849750 0.878130 1.000000 1.000000 0.000000 0.047059 1.000000 1.000000 0.431373 0.000000 0.000000 1 0
diff --git a/krita/data/gradients/Romanian_flag.ggr b/krita/data/gradients/Romanian_flag.ggr
deleted file mode 100644
index bcdb9bca6..000000000
--- a/krita/data/gradients/Romanian_flag.ggr
+++ /dev/null
@@ -1,6 +0,0 @@
-GIMP Gradient
-Name: Romanian flag
-3
-0.000000 0.166667 0.333333 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000 1.000000 1.000000 0 0
-0.333333 0.500000 0.666667 1.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.000000 1.000000 0 0
-0.666667 0.833333 1.000000 1.000000 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/Romanian_flag_smooth.ggr b/krita/data/gradients/Romanian_flag_smooth.ggr
deleted file mode 100644
index 08a3daeb0..000000000
--- a/krita/data/gradients/Romanian_flag_smooth.ggr
+++ /dev/null
@@ -1,5 +0,0 @@
-GIMP Gradient
-Name: Romanian flag smooth
-2
-0.000000 0.250000 0.500000 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 0.000000 1.000000 0 0
-0.500000 0.750000 1.000000 1.000000 1.000000 0.000000 1.000000 1.000000 0.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/Rounded_edge.ggr b/krita/data/gradients/Rounded_edge.ggr
deleted file mode 100644
index 5cb2f6c60..000000000
--- a/krita/data/gradients/Rounded_edge.ggr
+++ /dev/null
@@ -1,10 +0,0 @@
-GIMP Gradient
-Name: Rounded edge
-7
-0.000000 0.220339 0.440678 0.000000 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 1
-0.440678 0.487288 0.533898 1.000000 1.000000 1.000000 1.000000 0.833333 0.833333 0.833333 1.000000 0 2
-0.533898 0.580508 0.627119 0.833333 0.833333 0.833333 1.000000 0.666667 0.666667 0.666667 1.000000 0 2
-0.627119 0.673729 0.720339 0.666667 0.666667 0.666667 1.000000 0.500000 0.500000 0.500000 1.000000 0 2
-0.720339 0.766949 0.813559 0.500000 0.500000 0.500000 1.000000 0.333333 0.333333 0.333333 1.000000 0 2
-0.813559 0.860169 0.906780 0.333333 0.333333 0.333333 1.000000 0.166667 0.166667 0.166667 1.000000 0 2
-0.906780 0.953390 1.000000 0.166667 0.166667 0.166667 1.000000 0.000000 0.000000 0.000000 1.000000 0 2
diff --git a/krita/data/gradients/Shadows_1.ggr b/krita/data/gradients/Shadows_1.ggr
deleted file mode 100644
index 14574edca..000000000
--- a/krita/data/gradients/Shadows_1.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Shadows 1
-5
-0.000000 0.221580 0.346912 0.113636 0.113636 0.113636 1.000000 0.643939 0.311237 0.107323 1.000000 0 0
-0.346912 0.449416 0.538564 0.643939 0.311237 0.107323 1.000000 0.871212 0.820000 0.820000 1.000000 0 0
-0.538564 0.617696 0.652755 0.871212 0.820000 0.820000 1.000000 0.340000 0.128091 0.107291 1.000000 0 0
-0.652755 0.747913 0.777963 0.340000 0.128091 0.107291 1.000000 1.000000 0.521990 0.220000 1.000000 1 0
-0.777963 0.854667 1.000000 1.000000 0.521990 0.220000 1.000000 0.204545 0.121376 0.046011 1.000000 0 0
diff --git a/krita/data/gradients/Shadows_2.ggr b/krita/data/gradients/Shadows_2.ggr
deleted file mode 100644
index 31b4f7f26..000000000
--- a/krita/data/gradients/Shadows_2.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Shadows 2
-5
-0.000000 0.048414 0.126878 0.462121 0.462121 0.462121 1.000000 0.940000 0.865112 0.817800 1.000000 0 0
-0.126878 0.368948 0.499165 0.940000 0.865112 0.817800 1.000000 0.380000 0.328734 0.231331 1.000000 0 0
-0.499165 0.602671 0.739566 0.380000 0.328734 0.231331 1.000000 0.553030 0.482304 0.336911 1.000000 0 0
-0.739566 0.766350 0.854758 0.553030 0.482304 0.336911 1.000000 0.007576 0.007576 0.007576 1.000000 0 0
-0.854758 0.968292 1.000000 0.007576 0.007576 0.007576 1.000000 0.659091 0.659091 0.659091 1.000000 1 0
diff --git a/krita/data/gradients/Shadows_3.ggr b/krita/data/gradients/Shadows_3.ggr
deleted file mode 100644
index eb9366d8b..000000000
--- a/krita/data/gradients/Shadows_3.ggr
+++ /dev/null
@@ -1,9 +0,0 @@
-GIMP Gradient
-Name: Shadows 3
-6
-0.000000 0.143573 0.297162 0.598485 0.598484 0.598484 1.000000 0.492424 0.303700 0.136994 1.000000 1 0
-0.297162 0.330551 0.365609 0.492424 0.303700 0.136994 1.000000 0.880909 0.584348 0.509475 1.000000 1 0
-0.365609 0.484140 0.549040 0.880909 0.584348 0.509475 1.000000 0.969697 0.673909 0.000000 1.000000 1 0
-0.549040 0.580290 0.611540 0.969697 0.673909 0.000000 1.000000 0.857935 0.931818 0.026245 1.000000 0 0
-0.611540 0.651085 0.699499 0.857935 0.931818 0.026245 1.000000 0.590000 0.660000 0.020000 1.000000 1 0
-0.699499 0.886477 1.000000 0.590000 0.660000 0.020000 1.000000 0.030000 0.050000 0.220000 1.000000 1 0
diff --git a/krita/data/gradients/Skyline.ggr b/krita/data/gradients/Skyline.ggr
deleted file mode 100644
index ba43e817f..000000000
--- a/krita/data/gradients/Skyline.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Skyline
-5
-0.000000 0.051753 0.365609 0.000000 0.000000 0.000000 1.000000 0.109804 0.066667 0.568627 1.000000 3 0
-0.365609 0.602671 0.749583 0.109804 0.066667 0.568627 1.000000 0.917647 0.043137 0.043137 1.000000 0 0
-0.749583 0.789649 0.864775 0.917647 0.043137 0.043137 1.000000 1.000000 0.533333 0.000000 1.000000 0 0
-0.864775 0.896494 0.934891 1.000000 0.533333 0.000000 1.000000 0.937255 0.925490 0.215686 1.000000 0 0
-0.934891 0.958264 1.000000 0.537255 0.396078 0.031373 1.000000 0.000000 0.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/Skyline_polluted.ggr b/krita/data/gradients/Skyline_polluted.ggr
deleted file mode 100644
index 5677742a4..000000000
--- a/krita/data/gradients/Skyline_polluted.ggr
+++ /dev/null
@@ -1,8 +0,0 @@
-GIMP Gradient
-Name: Skyline polluted
-5
-0.000000 0.051753 0.365609 0.000000 0.000000 0.000000 1.000000 0.227451 0.207843 0.486275 1.000000 3 0
-0.365609 0.602671 0.749583 0.227451 0.207843 0.486275 1.000000 0.709804 0.098039 0.098039 1.000000 0 0
-0.749583 0.789649 0.864775 0.709804 0.098039 0.098039 1.000000 0.819608 0.505882 0.270588 1.000000 0 0
-0.864775 0.896494 0.934891 0.819608 0.505882 0.270588 1.000000 0.800000 0.784314 0.564706 1.000000 0 0
-0.934891 0.958264 1.000000 0.537255 0.396078 0.031373 1.000000 0.000000 0.000000 0.000000 1.000000 0 0
diff --git a/krita/data/gradients/Square_Wood_Frame.ggr b/krita/data/gradients/Square_Wood_Frame.ggr
deleted file mode 100644
index 3314e7b2b..000000000
--- a/krita/data/gradients/Square_Wood_Frame.ggr
+++ /dev/null
@@ -1,9 +0,0 @@
-GIMP Gradient
-Name: Square Wood Frame
-6
-0.000000 0.394306 0.797162 0.348485 0.187023 0.027070 0.000000 0.348485 0.187023 0.027070 0.000000 0 0
-0.797162 0.813856 0.830551 0.348485 0.187023 0.027070 1.000000 0.598485 0.321191 0.046490 1.000000 0 0
-0.830551 0.880217 0.929883 0.757576 0.430331 0.081217 1.000000 0.757576 0.430331 0.081217 1.000000 0 0
-0.929883 0.939294 0.949647 0.757576 0.430331 0.081217 1.000000 1.000000 0.681967 0.420000 1.000000 1 0
-0.949647 0.962907 0.976169 1.000000 0.681967 0.420000 1.000000 0.757576 0.424126 0.068392 1.000000 1 0
-0.976169 0.988085 1.000000 0.757576 0.424126 0.068392 1.000000 0.481061 0.266950 0.042141 1.000000 0 0
diff --git a/krita/data/gradients/Sunrise.ggr b/krita/data/gradients/Sunrise.ggr
deleted file mode 100644
index 2bb3beffd..000000000
--- a/krita/data/gradients/Sunrise.ggr
+++ /dev/null
@@ -1,9 +0,0 @@
-GIMP Gradient
-Name: Sunrise
-6
-0.000000 0.101798 0.203595 1.000000 1.000000 1.000000 1.000000 0.948165 0.969697 0.812122 1.000000 0 0
-0.203595 0.379143 0.487479 0.948165 0.969697 0.812122 1.000000 1.000000 0.552632 0.270000 1.000000 0 0
-0.487479 0.503577 0.529137 1.000000 0.552632 0.270000 1.000000 0.581721 0.096155 0.170043 1.000000 0 0
-0.529137 0.545165 0.562604 0.581721 0.096155 0.170043 1.000000 0.287879 0.155229 0.049835 1.000000 0 0
-0.562604 0.609349 0.697830 0.287879 0.155229 0.049835 1.000000 0.336000 0.425966 0.800000 1.000000 0 0
-0.697830 0.845064 1.000000 0.336000 0.425966 0.800000 1.000000 0.852165 0.985930 1.000000 1.000000 0 0
diff --git a/krita/data/gradients/Three_bars_sin.ggr b/krita/data/gradients/Three_bars_sin.ggr
deleted file mode 100644
index 564d15c75..000000000
--- a/krita/data/gradients/Three_bars_sin.ggr
+++ /dev/null
@@ -1,9 +0,0 @@
-GIMP Gradient
-Name: Three bars sin
-6
-0.000000 0.083333 0.166667 0.000000 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 2 0
-0.166667 0.250000 0.333333 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 1.000000 2 0
-0.333333 0.416667 0.500000 0.000000 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 2 0
-0.500000 0.583333 0.666667 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 1.000000 2 0
-0.666667 0.750000 0.833333 0.000000 0.000000 0.000000 1.000000 0.833333 0.833333 0.833333 1.000000 2 0
-0.833333 0.916667 1.000000 0.833333 0.833333 0.833333 1.000000 0.000000 0.000000 0.000000 1.000000 2 0
diff --git a/krita/data/gradients/Tropical_Colors.ggr b/krita/data/gradients/Tropical_Colors.ggr
deleted file mode 100644
index bbb0fdac5..000000000
--- a/krita/data/gradients/Tropical_Colors.ggr
+++ /dev/null
@@ -1,12 +0,0 @@
-GIMP Gradient
-Name: Tropical Colors
-9
-0.000000 0.055556 0.085142 0.036578 0.159091 0.015374 1.000000 0.007899 0.310606 0.000000 1.000000 0 0
-0.085142 0.138564 0.193656 0.007899 0.310606 0.000000 1.000000 0.195893 0.575758 0.085655 1.000000 0 0
-0.193656 0.233723 0.276572 0.195893 0.575758 0.085655 1.000000 0.924242 0.750598 0.192395 1.000000 0 0
-0.276572 0.332128 0.387683 0.924242 0.750598 0.192395 1.000000 0.954545 0.239854 0.132221 1.000000 0 0
-0.387683 0.510851 0.555556 0.954545 0.239854 0.132221 1.000000 0.530303 0.319349 0.236012 1.000000 0 0
-0.555556 0.611111 0.666667 0.530303 0.319349 0.236012 1.000000 0.472649 0.295792 1.000000 1.000000 0 0
-0.666667 0.772955 0.826377 0.472649 0.295792 1.000000 1.000000 0.644153 1.000000 0.957743 1.000000 0 0
-0.826377 0.866444 0.884808 0.644153 1.000000 0.957743 1.000000 0.408723 0.870000 0.278400 1.000000 0 0
-0.884808 0.953255 1.000000 0.408723 0.870000 0.278400 1.000000 0.363558 0.500000 0.000000 1.000000 1 0
diff --git a/krita/data/gradients/Tube_Red.ggr b/krita/data/gradients/Tube_Red.ggr
deleted file mode 100644
index 379fe1ccb..000000000
--- a/krita/data/gradients/Tube_Red.ggr
+++ /dev/null
@@ -1,10 +0,0 @@
-GIMP Gradient
-Name: Tube Red
-7
-0.000000 0.189482 0.378965 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0 0
-0.378965 0.624374 0.721202 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 1 0
-0.721202 0.748748 0.776294 0.393939 0.091171 0.035564 1.000000 0.204545 0.047339 0.018466 1.000000 1 0
-0.776294 0.833723 0.859766 0.204545 0.047339 0.018466 1.000000 0.757576 0.175329 0.068392 1.000000 1 0
-0.859766 0.876461 0.893155 0.757576 0.175329 0.068392 1.000000 1.000000 0.501132 0.420000 1.000000 1 0
-0.893155 0.911519 0.928214 1.000000 0.501132 0.420000 1.000000 0.757576 0.175329 0.068392 1.000000 1 0
-0.928214 0.964107 1.000000 0.757576 0.175329 0.068392 0.000000 0.757576 0.175329 0.068392 0.000000 0 0
diff --git a/krita/data/gradients/Wood_1.ggr b/krita/data/gradients/Wood_1.ggr
deleted file mode 100644
index 15fcd1068..000000000
--- a/krita/data/gradients/Wood_1.ggr
+++ /dev/null
@@ -1,6 +0,0 @@
-GIMP Gradient
-Name: Wood 1
-3
-0.000000 0.252087 0.555927 1.000000 0.700000 0.400000 1.000000 0.920000 0.579600 0.239200 1.000000 3 0
-0.555927 0.834725 0.981636 0.920000 0.579600 0.239200 1.000000 0.000000 0.000000 0.000000 1.000000 4 0
-0.981636 0.991653 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 4 0
diff --git a/krita/data/gradients/Wood_2.ggr b/krita/data/gradients/Wood_2.ggr
deleted file mode 100644
index b23ea06a9..000000000
--- a/krita/data/gradients/Wood_2.ggr
+++ /dev/null
@@ -1,12 +0,0 @@
-GIMP Gradient
-Name: Wood 2
-9
-0.000000 0.069491 0.138982 1.000000 0.700000 0.400000 1.000000 0.944844 0.616991 0.289137 1.000000 3 0
-0.138982 0.208472 0.277963 0.800000 0.522406 0.244813 1.000000 0.928860 0.592934 0.257008 1.000000 3 0
-0.277963 0.347454 0.416945 0.820000 0.523444 0.226888 1.000000 0.922120 0.582791 0.243462 1.000000 3 0
-0.416945 0.486436 0.555927 0.770000 0.486649 0.203299 1.000000 0.920000 0.579600 0.239200 1.000000 3 0
-0.555927 0.609140 0.662354 0.780000 0.491400 0.202800 1.000000 0.903086 0.568944 0.234802 1.000000 4 0
-0.662354 0.715568 0.768781 0.810000 0.510300 0.210600 1.000000 0.850329 0.535708 0.221086 1.000000 4 0
-0.768781 0.821995 0.875209 0.760000 0.478800 0.197600 1.000000 0.708598 0.446417 0.184235 1.000000 4 0
-0.875209 0.928422 0.981636 0.620000 0.390600 0.161200 1.000000 0.000000 0.000000 0.000000 1.000000 4 0
-0.981636 0.991653 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 4 0
diff --git a/krita/data/gradients/Yellow_Contrast.ggr b/krita/data/gradients/Yellow_Contrast.ggr
deleted file mode 100644
index dd3d89fba..000000000
--- a/krita/data/gradients/Yellow_Contrast.ggr
+++ /dev/null
@@ -1,10 +0,0 @@
-GIMP Gradient
-Name: Yellow Contrast
-7
-0.000000 0.088481 0.161937 0.000000 0.000000 0.000000 1.000000 0.969697 0.639354 0.000000 1.000000 1 0
-0.161937 0.202003 0.247078 0.969697 0.639354 0.000000 1.000000 1.000000 0.988712 0.000000 1.000000 1 0
-0.247078 0.258765 0.287145 1.000000 0.988712 0.000000 1.000000 0.166667 0.157690 0.000000 1.000000 1 0
-0.287145 0.323038 0.363940 0.166667 0.157690 0.000000 1.000000 0.007576 0.007576 0.007576 1.000000 1 0
-0.363940 0.544240 0.592654 0.007576 0.007576 0.007576 1.000000 1.000000 1.000000 1.000000 1.000000 1 0
-0.592654 0.767947 0.803005 1.000000 1.000000 1.000000 1.000000 0.857143 0.843870 0.030851 1.000000 1 0
-0.803005 0.901503 1.000000 0.857143 0.843870 0.030851 1.000000 0.333333 0.194690 0.180622 1.000000 1 0
diff --git a/krita/data/gradients/Yellow_Orange.ggr b/krita/data/gradients/Yellow_Orange.ggr
deleted file mode 100644
index ac1fe2338..000000000
--- a/krita/data/gradients/Yellow_Orange.ggr
+++ /dev/null
@@ -1,5 +0,0 @@
-GIMP Gradient
-Name: Yellow Orange
-2
-0.000000 0.135225 0.565943 1.000000 0.892593 0.000000 1.000000 1.000000 0.534703 0.000000 1.000000 0 0
-0.565943 0.948247 1.000000 1.000000 0.534703 0.000000 1.000000 0.901515 0.428701 0.114311 1.000000 0 0
diff --git a/krita/data/images/Azay-Le-Rideau.jpg b/krita/data/images/Azay-Le-Rideau.jpg
deleted file mode 100644
index eb1894590..000000000
Binary files a/krita/data/images/Azay-Le-Rideau.jpg and /dev/null differ
diff --git a/krita/data/images/Makefile.am b/krita/data/images/Makefile.am
deleted file mode 100644
index 883581aba..000000000
--- a/krita/data/images/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-
-kritaimagesdir = $(prefix)/share/apps/krita/images
-
-# kritaimages_DATA = evenings.jpg hakonepa.jpg hiro_awate.jpg Azay-Le-Rideau.jpg previewfilter.png
-kritaimages_DATA = previewfilter.png
-
diff --git a/krita/data/images/WeyDesc.png b/krita/data/images/WeyDesc.png
deleted file mode 100644
index 77e97ed61..000000000
Binary files a/krita/data/images/WeyDesc.png and /dev/null differ
diff --git a/krita/data/images/evenings.jpg b/krita/data/images/evenings.jpg
deleted file mode 100644
index 5880f18ed..000000000
Binary files a/krita/data/images/evenings.jpg and /dev/null differ
diff --git a/krita/data/images/hakonepa.jpg b/krita/data/images/hakonepa.jpg
deleted file mode 100644
index 9f33cbab4..000000000
Binary files a/krita/data/images/hakonepa.jpg and /dev/null differ
diff --git a/krita/data/images/hiro_awate.jpg b/krita/data/images/hiro_awate.jpg
deleted file mode 100644
index 26fc42aa7..000000000
Binary files a/krita/data/images/hiro_awate.jpg and /dev/null differ
diff --git a/krita/data/images/paintbrush.png b/krita/data/images/paintbrush.png
deleted file mode 100644
index 88e4be87d..000000000
Binary files a/krita/data/images/paintbrush.png and /dev/null differ
diff --git a/krita/data/images/previewfilter.png b/krita/data/images/previewfilter.png
deleted file mode 100644
index 7a115b241..000000000
Binary files a/krita/data/images/previewfilter.png and /dev/null differ
diff --git a/krita/data/krita_filter.desktop b/krita/data/krita_filter.desktop
deleted file mode 100644
index a00ea8317..000000000
--- a/krita/data/krita_filter.desktop
+++ /dev/null
@@ -1,47 +0,0 @@
-[Desktop Entry]
-Type=ServiceType
-X-KDE-ServiceType=Krita/Filter
-Comment=Filter plugin for Krita
-Comment[bg]=Приставка за филтриране за Krita
-Comment[ca]=Connector de filtre per a Krita
-Comment[da]=Plugin med filter for Krita
-Comment[de]=Filter-Modul für Krita
-Comment[el]=Πρόσθετο φίλτρου για το Krita
-Comment[eo]=Filtrilkromaĵo por Krita
-Comment[es]=Complemento de filtrado para Krita
-Comment[et]=Krita filtriplugin
-Comment[eu]=Krita-ren iragazkia
-Comment[fa]=وصلۀ پالایه برای Krita
-Comment[fi]=Suodinliitännäinen Kritalle
-Comment[fr]=Module de filtres de Krita
-Comment[fy]=Filterplugin foar Krita
-Comment[gl]=Plugin de filtro para Krita
-Comment[he]=תוסף סינון של Krita
-Comment[hu]=Szűrőmodul a Kritához
-Comment[is]=Síu íforrit fyrir Krita
-Comment[it]=Plugin di filtro per Krita
-Comment[ja]=Krita フィルタプラグイン
-Comment[km]=កម្មវិធី​ជំនួយ​តម្រង​សម្រាប់ Krita
-Comment[lv]=Krita filtra spraudnis
-Comment[ms]=Plugin penapis Krita
-Comment[nb]=Filter-programtillegg for Krita
-Comment[nds]=Filtermoduul för Krita
-Comment[ne]=क्रिताका लागि फिल्टर प्लगइन
-Comment[nl]=Filterplugin voor Krita
-Comment[nn]=Krita-programtillegg for filter
-Comment[pl]=Wtyczka filtrów dla Krita
-Comment[pt]='Plugin' de filtragem do Krita
-Comment[pt_BR]=Plugin de filtro para o Krita
-Comment[ru]=Фильтр Krita
-Comment[sk]=Filter modul pre Krita
-Comment[sl]=Vstavek za filtriranje za Krito
-Comment[sr]=Филтерски прикључак за Krita-у
-Comment[sr@Latn]=Filterski priključak za Krita-u
-Comment[sv]=Insticksprogram med filter för Krita
-Comment[uk]=Втулок фільтра для Krita
-Comment[uz]=Krita uchun filter plagini
-Comment[uz@cyrillic]=Krita учун филтер плагини
-Comment[zh_CN]=Krita 过滤器插件
-Comment[zh_TW]=Krita 的過濾器外掛程式
-[PropertyDef::X-Krita-Version]
-Type=int
diff --git a/krita/data/krita_paintop.desktop b/krita/data/krita_paintop.desktop
deleted file mode 100644
index 9534b85f7..000000000
--- a/krita/data/krita_paintop.desktop
+++ /dev/null
@@ -1,41 +0,0 @@
-[Desktop Entry]
-Type=ServiceType
-X-KDE-ServiceType=Krita/Paintop
-Comment=Paint operation plugin for Krita
-Comment[bg]=Приставка за рисуване за Krita
-Comment[ca]=Connector d'operació de pintura per a Krita
-Comment[da]=Plugin med malehandlinger for Krita
-Comment[de]=Maloperation-Modul für Krita
-Comment[el]=Πρόσθετο λειτουργίας ζωγραφικής για το Krita
-Comment[eo]=Pentrooperacia kromaĵo por Krita
-Comment[es]=Complemento de operación de pintura para Krita
-Comment[et]=Krita joonistamistoimingute plugin
-Comment[fa]=وصلۀ عمل رنگ‌آمیزی برای Krita
-Comment[fi]=Kritan maalaustoimintoliitännäinen
-Comment[fr]=Module d'opération pour Krita
-Comment[fy]=Ferfhannelingsplugin foar Krita
-Comment[gl]=Plugin de pintar para Krita
-Comment[he]=תוסף פעולת צביעה של Krita
-Comment[hu]=Festőmodul a Kritához
-Comment[is]=Málunar íforrit fyrir Krita
-Comment[it]=Plugin per l'operazione di disegno per Krita
-Comment[ja]=Krita 描画操作プラグイン
-Comment[km]=កម្មវិធី​ជំនួយ​ក្នុង​ការ​គូរ សម្រាប់ Krita
-Comment[nb]=Krita-programtillegg for male-handlinger
-Comment[nds]=Maalmoduul för Krita
-Comment[ne]=क्रिताका लागि पेन्ट अपरेसन प्लगइन
-Comment[nl]=Verfverrichtingplugin voor Krita
-Comment[pl]=Wtyczka operacji malowania dla Krita
-Comment[pt]='Plugin' de operações de pintura do Krita
-Comment[pt_BR]=Plugin de operações de pintura do Krita
-Comment[ru]=Инструмент рисования Krita
-Comment[sk]=Kresliaci modul pre Krita
-Comment[sl]=Vstavek s slikarskim postopkom za Krito
-Comment[sr]=Прикључак за сликарске операције за Krita-у
-Comment[sr@Latn]=Priključak za slikarske operacije za Krita-u
-Comment[sv]=Insticksprogram med målningsåtgärder för Krita
-Comment[uk]=Втулок малювання для Krita
-Comment[zh_CN]=Krita 的绘画操作插件
-Comment[zh_TW]=Krita 的繪畫操作外掛程式
-[PropertyDef::X-Krita-Version]
-Type=int
diff --git a/krita/data/krita_plugin.desktop b/krita/data/krita_plugin.desktop
deleted file mode 100644
index 3c2d862c9..000000000
--- a/krita/data/krita_plugin.desktop
+++ /dev/null
@@ -1,42 +0,0 @@
-[Desktop Entry]
-Type=ServiceType
-X-KDE-ServiceType=Krita/ViewPlugin
-Comment=GUI functionality for Krita
-Comment[bg]=ГПИ функционалност за Krita
-Comment[ca]=Funcionalitat d'interfície d'usuari per a Krita
-Comment[cy]=Swyddogaeth GUI ar gyfer Krita
-Comment[da]=GUI-funktionalitet for Krita
-Comment[de]=GUI-Funktionalität für Krita
-Comment[el]=Άρθρωμα λειτουργικότητας περιβάλλοντος για το Krita
-Comment[es]=Funcionalidad de GUI para Krita
-Comment[et]=Krita GUI funktsioonid
-Comment[fa]=کارآمدی ونک برای Krita
-Comment[fr]=Interface graphique pour Krita
-Comment[fy]=Ynterfacefunksjonaliteit foar Krita
-Comment[gl]=Funcionalidade da GUI de Krita
-Comment[he]=מודול פונקציונליות בסיסית של Krita
-Comment[hu]=Grafikus felület a Kritához
-Comment[is]=Gluggavirkni fyrir Krita
-Comment[it]=Funzionalità d'interfaccia per Krita
-Comment[ja]=Krita の GUI 機能
-Comment[km]=មុខងារ​ចំណុចប្រទាក់​អ្នក​ប្រើ សម្រាប់ Krita
-Comment[nb]=Krita-modul for GUI-funksjonalitet
-Comment[nds]=Böversietfunkschonen för Krita
-Comment[ne]=क्रिताका लागि GUI कार्यात्मक
-Comment[nl]=Interfacefunctionaliteit voor Krita
-Comment[pl]=Graficzny interfejs użytkownika programu Krita
-Comment[pt]=Funcionalidade gráfica para o Krita
-Comment[pt_BR]=Funcionalidade de interface gráfica para o Krita
-Comment[ru]=Интерфейс Krita
-Comment[sk]=GUI functionalita pre Krita
-Comment[sl]=Funkcionalnost grafičnega vmesnika za Krito
-Comment[sr]=Функционалност GUI-ја за Krita-у
-Comment[sr@Latn]=Funkcionalnost GUI-ja za Krita-u
-Comment[sv]=Grafisk gränssnittsfunktion för Krita
-Comment[uk]=Функціональність графічного інтерфейсу для Krita
-Comment[uz]=Krita grafik interfeysi
-Comment[uz@cyrillic]=Krita график интерфейси
-Comment[zh_CN]=Krita 的图形界面模块
-Comment[zh_TW]=Krita 的 GUI 功能
-[PropertyDef::X-Krita-Version]
-Type=int
diff --git a/krita/data/krita_tool.desktop b/krita/data/krita_tool.desktop
deleted file mode 100644
index 4a1d0d732..000000000
--- a/krita/data/krita_tool.desktop
+++ /dev/null
@@ -1,46 +0,0 @@
-[Desktop Entry]
-Type=ServiceType
-X-KDE-ServiceType=Krita/Tool
-Comment=Tool plugin for Krita
-Comment[bg]=Приставка за инструмент за Krita
-Comment[ca]=Connector d'eines per a Krita
-Comment[da]=Værktøjsplugin for Krita
-Comment[de]=Werkzeug-Modul für Krita
-Comment[el]=Πρόσθετο εργαλείων για το Krita
-Comment[eo]=Ilkromaĵo por Krita
-Comment[es]=Complemento de herramienta para Krita
-Comment[et]=Krita tööriistade plugin
-Comment[eu]=Krita-ren Tresna plugina
-Comment[fa]=وصله ابزار برای Krita
-Comment[fi]=Kritan työkaluliitännäinen
-Comment[fr]=Module d'outils pour Krita
-Comment[fy]=Arkplugin foar Krita
-Comment[gl]=Ferramenta de plugin para Krita
-Comment[he]=תוסף כלים של Krita
-Comment[hu]=Eszközmodul a Kritához
-Comment[is]=Tóla íforrit fyrir Krita
-Comment[it]=Plugin per gli strumenti per Krita
-Comment[ja]=Krita ツールプラグイン
-Comment[km]=កម្មវិធី​ជំនួយ​ឧបករណ៍ សម្រាប់ Krita
-Comment[ms]=Plugin alat Krita
-Comment[nb]=Krita-programtillegg for verktøy
-Comment[nds]=Warktüüchmoduul för Krita
-Comment[ne]=क्रिताका लागि उपकरण प्लगइन
-Comment[nl]=Gereedschapsplugin voor Krita
-Comment[nn]=Krita-programtillegg for verktøy
-Comment[pl]=Wtyczka narzędzi dla Krita
-Comment[pt]='Plugin' de ferramentas do Krita
-Comment[pt_BR]=Plugin de ferramenta para o Krita
-Comment[ru]=Инструменты Krita
-Comment[sk]=Modul nástrojov pre Krita
-Comment[sl]=Vstavek z orodjem za Krito
-Comment[sr]=Алатни прикључак за Krita-у
-Comment[sr@Latn]=Alatni priključak za Krita-u
-Comment[sv]=Verktygsinsticksprogram för Krita
-Comment[uk]=Втулок інструментів для Krita
-Comment[uz]=Krita uchun vosita plagini
-Comment[uz@cyrillic]=Krita учун восита плагини
-Comment[zh_CN]=Krita 工具插件
-Comment[zh_TW]=Krita 的工具外掛程式
-[PropertyDef::X-Krita-Version]
-Type=int
diff --git a/krita/data/palettes/40_Colors.gpl b/krita/data/palettes/40_Colors.gpl
deleted file mode 100644
index 97d98c37a..000000000
--- a/krita/data/palettes/40_Colors.gpl
+++ /dev/null
@@ -1,43 +0,0 @@
-GIMP Palette
-Name: 40_Colors
-#
-  0   0   0	Black
- 48  48  48	Almost black
- 88  88  88	Very dark gray
-128 128 128	Dark gray
-160 160 160	Mid gray
-195 195 195	Light gray
-220 220 220	Very light gray
-255 255 255	White
- 64   0   0	Very dark red
-128   0   0	Dark red
-192   0   0	Mid red
-255   0   0	Red
-255 192 192	Light red
-  0  64   0	Very dark green
-  0 128   0	Dark green
-  0 192   0	Mid green
-  0 255   0	Green
-192 255 192	Light green
-  0   0 128	Dark blue
-  0   0 192	Mid blue
-  0   0 255	Blue
-192 192 255	Light blue
- 64  64   0	Very dark yellow
-128 128   0	Dark yellow
-192 192   0	Mid yellow
-255 255   0	Yellow
-255 255 192	Light yellow
-  0  64  64	Very dark cyan
-  0 128 128	Dark cyan
-  0 192 192	Mid cyan
-  0 255 255	Cyan
-192 255 255	Light cyan
-128   0 128	Dark magenta
-192   0 192	Mid magenta
-255   0 255	Magenta
-255 192 255	Light magenta
-192  88   0	Dark orange
-255 128   0	Orange
-255 168  88	Light orange
-255 220 168	Very light orange
diff --git a/krita/data/palettes/Anchor.gpl b/krita/data/palettes/Anchor.gpl
deleted file mode 100644
index 590838b16..000000000
--- a/krita/data/palettes/Anchor.gpl
+++ /dev/null
@@ -1,448 +0,0 @@
-GIMP Palette
-Name: Anchor
-#
-253 251 255	1 Snow White
-250 250 250	2 White
-251 187 167	6 Salmon - VY LT
-248 165 151	8 Salmon - LT
-244 138 125	9 Salmon - MED LT
-225  90  82	10 Salmon - MED
-225  62  41	11 Salmon - MED DK
-178  16  18	13 Salmon - DK
-164   0  43	19 Burgundy - MED
-121  12  20	20 Burgundy - MED DK
- 89   9  31	22 Burgundy - VY DK
-251 190 195	23 Baby Pink
-250 166 171	24 Carnation - VY LT
-244 154 169	25 Carnation - LT
-245 105 136	26 Carnation - MED LT
-247 107 132	27 Carnation - MED
-239  59  88	28 Carnation - MED
-204  10  34	29 Carnation - DK
-247 124 138	31 Blush - LT
-248  90 101	33 Blush - MED
-234  49  56	35 Blush - DK
-245 147 158	36 Blossom Pink - LT
-225  58  95	38 Blossom Pink - MED
-177  21  32	39 Blossom Pink - DK
-241  89 129	40 Carmine Rose - LT
-218  59  95	41 Carmine Rose - MED LT
-180  10  62	42 Carmine Rose - MED
-125  20  40	43 Carmine Rose - MED DK
- 97   0  33	44 Carmine Rose - DK
- 95  15  20	45 Carmine Rose - VY DK
-211   5  13	46 Crimson Red
-172   0  35	47 Carmine Red
-249 196 206	48 China Rose - VY LT
-236 181 189	49 China Rose - LT
-245 153 175	50 China Rose - MED
-255 164 194	51 Nelke Dunkel
-244  98 147	52 China Rose - MED DK
-224  40  98	54 China Rose - DK
-242 121 163	55 Beauty Rose - LT
-218  27  91	57 Beauty Rose - MED
-168   6  70	59 China Rose
-233 159 190	60 Magenta - LT
-235  93 138	62 Magenta - MED
-225  32 104	63 Magenta - DK
-152  12  71	65 Antique Rose - VY DK
-233 135 173	66 Raspberry - LT
-194  79 119	68 Raspberry - MED LT
-150  36  75	69 Raspberry - MED
-106  11  50	70 Raspberry - DK
- 85   9  37	72 Raspberry - VY DK
-252 195 204	73 Antique Rose - VY LT
-244 155 175	74 Antique Rose - LT
-242 133 163	75 Antique Rose - MED LT
-208  92 119	76 Antique Rose - MED
-182  48  99	77 Antique Rose - MED DK
-168  18  88	78 Antique Rose - DK
-233 159 200	85 Orchid - LT
-221 120 177	86 Orchid - MED LT
-199  55 132	87 Orchid - MED
-174  17 100	88 Orchid - MED DK
-175  13 100	89 Orchid - DK
-208 149 179	90 Plum - LT
-161  73 152	92 Plum - MED
-131  24 106	94 Plum - DK
-215 167 201	95 Violet - VY LT
-209 142 183	96 Violet - LT
-182 106 166	97 Violet - MED LT
-159  83 140	98 Violet - MED
-135  56 118	99 Violet
-122  40  98	100 Violet - MED DK
- 90   0  92	101 Violet - DK
- 69   8  68	102 Violet - VY DK
-227 186 210	103 Plum - VY LT
-194 159 208	108 Lavender - LT
-165 122 175	109 Lavender - MED LT
-122  82 165	110 Lavender - MED
- 93  46 132	111 Lavender - MED DK
- 84  34 121	112 Lavender - DK
-153 169 201	117 Thistle - LT
-121 120 182	118 Thistle - MED
- 80  54 130	119 Thistle - MED
-179 197 223	120 Blueberry - LT
-116 139 184	121 Blueberry - MED LT
- 82  95 145	122 Blueberry - MED
- 44  48 106	123 Blueberry - DK
-  0   0  63	127 Indigo
-199 222 233	128 Blue - LT
-136 170 203	129 Blue
-121 156 198	130 Blue - MED LT
- 62  95 157	131 Blue - MED
- 16  62 133	132 Blue - MED DK
- 20  51 116	133 Blue - DK
-  8  23 100	134 Blue - VY DK
- 91 130 172	136 Wedgewood - LT
- 49  97 161	137 Wedgewood - MED
- 13  60 120	139 Wedgewood - DK
-127 165 200	140 Copen Blue - LT
- 22  91 164	142 Copen Blue - MED
- 12  67 134	143 Copen Blue - DK
-157 189 207	144 Delft Blue - VY LT
-113 145 188	145 Delft Blue - LT
- 56 112 169	146 Delft Blue
-  7  77 142	147 Delft Blue - MED LT
-  8  45  99	148 Delft Blue - MED
-  9  32  86	149 Delft Blue - MED DK
- 21  34  71	150 Delft Blue - DK
- 15  18  50	152 Delft Blue - VY DK
-206 233 233	158 Sapphire - VY LT
-170 202 226	159 Sapphire - LT
-158 205 221	160 Sapphire - MED LT
- 67 137 168	161 Sapphire - MED
- 11 101 140	162 Sapphire - MED DK
-  9  66 100	164 Sapphire - DK
-142 204 211	167 Surf Blue - VY LT
- 89 158 169	168 Surf Blue - LT
- 21 113 139	169 Surf Blue - MED
-  0  85 108	170 Surf Blue - DK
-123 157 193	175 Ocean Blue - LT
-100 125 166	176 Ocean Blue
- 71  82 153	177 Ocean Blue - MED
- 47  43 103	178 Ocean Blue - DK
-129 214 196	185 Sea Green - LT
- 82 191 172	186 Sea Green - MED LT
- 43 168 153	187 Sea Green - MED
-  7 139 129	188 Sea Green - MED DK
- 14 125 113	189 Sea Green - DK
-124 192 140	203 Mint Green - LT
-100 187 135	204 Mint Green - MED
- 52 149 104	205 Mint Green - DK
-166 206 164	206 Spruce - LT
- 99 174 128	208 Spruce - MED LT
- 73 161 112	209 Spruce
- 40 117  72	210 Spruce - MED
- 11  96  51	211 Spruce - MED DK
- 20  82  54	212 Spruce - DK
-186 204 171	213 Juniper - VY LT
-153 183 134	214 Juniper - LT
-106 142 100	215 Juniper - MED LT
- 81 124  96	216 Juniper - MED
- 52 101  68	217 Juniper - MED DK
- 21  71  37	218 Juniper - DK
-100 181  93	225 Emerald - LT
- 65 153  55	226 Emerald - MED LT
- 28 133  50	227 Emerald - MED
- 10 118  47	228 Emerald - MED DK
-  7 111  47	229 Emerald - DK
-  2 119  78	230 Mint Green - VY DK
-192 176 170	231 Rose Gray - LT
-169 151 147	232 Rose Gray - MED
-130 110 109	233 Rose Gray
-205 208 205	234 Charcoal Gray - LT
-111 113 119	235 Charcoal Gray - MED
- 53  50  55	236 Charcoal Gray - DK
- 96 173  54	238 Spring Green - MED
- 67 156  23	239 Spring Green - DK
-159 205 136	240 Grass Green - LT
-135 198 119	241 Grass Green
-115 168  94	242 Grass Green - MED LT
- 88 146  74	243 Grass Green - MED
- 55 119  57	244 Grass Green - MED DK
- 21 104  23	245 Grass Green - DK
- 20  76  25	246 Grass Green - VY DK
-207 224 128	253 Parrot Green - VY LT
-199 221  99	254 Parrot Green - LT
-139 175  34	255 Parrot Green - MED LT
- 92 150  25	256 Parrot Green - MED
- 71 135  25	257 Parrot Green - MED DK
- 53 115  22	258 Parrot Green - DK
-222 233 165	259 Loden Green - VY LT
-159 180 118	260 Loden Green - LT
-136 159 114	261 Loden Green - MED LT
- 70 102  51	262 Loden Green - MED
- 43  69  30	263 Loden Green - DK
-181 195 130	264 Avocado - VY LT
-152 180  90	265 Avocado - LT
-112 139  58	266 Avocado - MED LT
- 85 111  31	267 Avocado - MED
- 58  88  24	268 Avocado - MED DK
- 55  70  30	269 Avocado - DK
-253 226 221	271 Soft Carnation
- 85  77  58	273 Stone Gray - DK
-199 209 202	274 Blue Mist - LT
-251 241 206	275 Citrus - LT
-239 217 187	276 Pearl
-124  88  21	277 Desert - VY DK
-207 203 103	278 Olive Green - LT
-191 175  75	279 Olive Green - MED LT
-155 142  62	280 Olive Green - MED
-117 103  44	281 Olive Green - DK
-251 235 105	288 Canary Yellow - LT
-251 233  80	289 Canary Yellow - MED
-253 214  16	290 Canary Yellow - MED
-252 205  13	291 Canary Yellow - DK
-252 236 160	292 Jonquil - VY LT
-252 227 120	293 Jonquil - LT
-253 217  81	295 Jonquil - MED LT
-252 208  29	297 Jonquil - MED
-251 181  30	298 Jonquil - DK
-247 221 159	300 Citrus - LT
-245 212 132	301 Citrus
-250 189  72	302 Citrus - MED LT
-250 149  23	303 Citrus - MED
-247 123  13	304 Citrus - DK
-249 198  84	305 Topaz - LT
-237 162  49	306 Topaz - MED LT
-222 142  23	307 Topaz - MED
-189 110  26	308 Topaz - MED DK
-173  95  38	309 Topaz - DK
-148  76  34	310 Topaz - VY DK
-243 186 113	311 Tangerine - VY LT
-250 170  85	313 Tangerine - LT
-245 137  22	314 Tangerine - MED LT
-250 112  23	316 Tangerine - DK
-249 136  79	323 Apricot - LT
-237 110  50	324 Apricot - MED
-207  70  15	326 Apricot - DK
-252 142 117	328 Melon - LT
-248 110  69	329 Melon - DK
-247  93  31	330 Melon - DK
-246  69  31	332 Blaze - LT
-230  39  20	333 Blaze - MED LT
-232  19  15	334 Blaze - MED
-225   9  13	335 Blaze - DK
-239 158 121	336 Terra Cotta - LT
-226 139 110	337 Terra Cotta - MED LT
-202 110  88	338 Terra Cotta
-177  63  40	339 Terra Cotta - MED
-157  48  34	340 Terra Cotta - MED DK
-141  36  25	341 Terra Cotta - DK
-217 190 221	342 Lilac - LT
-140 162 180	343 Slate Blue
-208 146  92	347 Bark - LT
-170  85  27	349 Bark - MED
-140  47  24	351 Bark - MED DK
-109  24  21	352 Bark - DK
-147  66  26	355 Mocha - MED
-116  43  17	357 Mocha - DK
-117  55  26	358 Coffee
-104  45  18	359 Coffee - MED
- 83  43  25	360 Coffee - DK
-238 195 138	361 Nutmeg - LT
-225 162 102	362 Nutmeg - MED LT
-224 150  56	363 Nutmeg - MED
-169  96  20	365 Nutmeg - DK
-233 199 151	366 Spice - VY LT
-227 179 134	367 Spice - LT
-210 154 100	368 Spice - MED LT
-184 114  67	369 Spice - MED
-151  73  27	370 Spice - MED DK
-130  58  23	371 Spice - DK
-227 187 133	372 Desert - LT
-196 151  94	373 Desert - MED
-163 110  54	374 Desert - MED
-136  90  35	375 Desert - DK
-215 173 152	376 Fawn - LT
-166 128 104	378 Fawn - MED
-141  97  73	379 Fawn - DK
- 71  33  23	380 Fudge
- 61  29  17	381 Fudge - MED
- 54  28  17	382 Fudge - DK
-245 231 201	386 Citrus - VY LT
-239 218 182	387 Ecru
-201 179 151	388 Ecru - MED
-229 215 184	390 Linen - LT
-202 186 160	391 Linen
-163 139 108	392 Linen - MED
-118  97  57	393 Linen - DK
-197 193 179	397 Gray - LT
-175 176 173	398 Gray
-146 146 147	399 Gray - MED LT
- 88  86  90	400 Gray - MED
- 62  58  65	401 Gray - DK
-  0   0   0	403 Black
-  0 120 169	410 Ice Blue - DK
-  0 166 222	433 Ice Blue
- 85  87  51	681 Forest - DK
- 31  67  58	683 Turf Green
-238 198 171	778 Flesh - LT
- 77 120 123	779 Blue Mist - MED DK
-209 191 158	830 Sierra - VY LT
-198 174 138	831 Sierra - LT
-157 131  96	832 Sierra - MED
-193 184 121	842 Fern Green - LT
-138 137  72	843 Fern Green
-129 119  49	844 Fern Green - MED
- 97  91  32	845 Fern Green - MED DK
- 70  65  11	846 Fern Green - DK
-214 222 215	847 Blue Mist - VY LT
-175 191 186	848 Blue Mist
-156 170 171	849 Blue Mist - MED LT
-122 139 140	850 Blue Mist - MED
- 41  80  86	851 Blue Mist - DK
-227 207 159	852 Turf - VY LT
-190 169 117	853 Turf - LT
-162 141  83	854 Turf - MED LT
-153 127  67	855 Turf - MED
-124 106  47	856 Turf - DK
-163 174 143	858 Laurel Green - LT
-139 149 112	859 Laurel Green
-114 126  91	860 Laurel Green - MED LT
- 74  89  55	861 Laurel Green - MED
- 49  68  36	862 Laurel Green - DK
-234 166 142	868 Flesh - MED
-196 176 185	869 Amethyst - LT
-171 146 168	870 Amethyst - MED LT
-129  97 117	871 Amethyst - MED LT
-116  79 104	872 Amethyst - MED
- 88  49  71	873 Amethyst - DK
-214 175  92	874 Saffron - MED
-146 182 159	875 Pine - LT
- 96 144 121	876 Pine
- 65 113  96	877 Pine - MED
- 43  84  70	878 Pine - MED DK
- 17  76  56	879 Pine - DK
-226 192 165	880 Copper - LT
-233 186 152	881 Copper
-220 148 118	882 Copper - MED LT
-189 114  85	883 Copper - MED
-154  67  46	884 Copper - DK
-245 226 180	885 Sand Stone - LT
-231 206 135	886 Sand Stone
-213 180 113	887 Sand Stone - MED LT
-169 128  56	888 Sand Stone - MED DK
-111  75  26	889 Sand Stone - MED DK
-209 148  63	890 Brass - LT
-234 189 111	891 Brass
-243 211 197	892 Rose Wine - LT
-238 179 167	893 Rose Wine
-223 154 151	894 Rose Wine - MED LT
-209 113 122	895 Rose Wine - MED
-162  66  79	896 Rose Wine - DK
-112  26  36	897 Rose Wine - VY DK
-135 107  62	898 Sierra
-178 155 126	899 Tawny - LT
-169 169 149	900 Pewter - LT
-182 122  39	901 Tawny - MED
-137 112  80	903 Tawny - MED
- 95  77  49	904 Mocha Brown - DK
- 65  50  28	905 Tawny - DK
-106  72  13	906 Brass - DK
-182 139  40	907 Saffron - DK
-193 123  93	914 Flesh - MED DK
-114 141 158	920 Denim - LT
- 86 112 128	921 Denim - MED
- 65  89 106	922 Denim - DK
-  0  93  48	923 Emerald - VY DK
- 94  89  14	924 Olive Green - VY DK
-233  82   7	925 Tangerine Very
-249 237 210	926 Ecru - VY LT
-170 217 223	928 Larkspur - LT
-240 207 179	933 Fawn - VY LT
-127  61  38	936 Fawn - VY DK
-121 130 169	939 Stormy Blue - MED
- 60  80 144	940 Stormy Blue - MED DK
- 60  71 125	941 Stormy Blue - VY DK
-234 195 129	942 Wheat - LT
-201 157  87	943 Wheat - MED
-133  78  28	944 Wheat - DK
-190 165  88	945 Harvest - MED
-209 191 139	956 Harvest - LT
-229 172 170	968 Wineberry - LT
-206 143 148	969 Wineberry - MED
-171  93 116	970 Wineberry - MED
-138  48  89	972 Wineberry - DK
-170 197 203	975 Sea Blue - LT
-141 172 185	976 Sea Blue - MED LT
- 97 137 170	977 Sea Blue - MED
- 70 113 150	978 Sea Blue - MED DK
- 24  80 115	979 Sea Blue - DK
-210 108  16	1001 Antique Gold - MED
-237 139  29	1002 Antique Gold - LT
-221 108  54	1003 Amberglow
-165  61  20	1004 Apricot - VY DK
-141   8  33	1005 Cherry Red - MED
-155   0  24	1006 Cherry Red
-160  89  69	1007 Chicory - DK
-207 146 120	1008 Chicory - MED
-247 220 194	1009 Copper - VY LT
-253 217 180	1010 Cinnamon - VY LT
-248 220 198	1011 Flesh - VY LT
-245 192 166	1012 Chicory - LT
-198 112  94	1013 Brick - MED
-158  31  33	1014 Brick - VY DK
-144   9  17	1015 Brick - DK
-211 155 167	1016 Antique Mauve - LT
-190 123 142	1017 Antique
-156  89 101	1018 Antique Mauve - DK
-134  63  80	1019 Antique Mauve - VY DK
-241 190 182	1020 Peony - VY LT
-233 171 165	1021 Peony - LT
-228 132 125	1022 Peony - MED LT
-214 107 113	1023 Peony
-198  86  86	1024 Peony - MED
-173  17  35	1025 Peony - MED DK
-247 206 196	1026 Wineberry - VY LT
-188  89  94	1027 Rose Wine - MED DK
-124  28  65	1028 Raspberry - MED DK
-134  16  61	1029 Antique Rose - DK
-115  99 166	1030 Thistle - MED DK
-201 220 227	1031 Antique Blue - LT
-171 194 207	1032 Antique Blue - VY LT
-141 161 180	1033 Antique Blue - LT
- 93 117 140	1034 Antique
- 45  63  84	1035 Antique Blue - DK
- 35  56  86	1036 Antique Blue - VY DK
-222 235 236	1037 Sea Blue - VY LT
-139 189 199	1038 Glacier Blue - MED
- 87 156 177	1039 Glacier Blue - MED DK
-136 129 112	1040 Pewter - MED
- 60  54  43	1041 Stone Gray - VY DK
-191 218 192	1042 Pine - VY LT
-206 229 173	1043 Grass Green - VY LT
- 23  61  19	1044 Grass Green - DK
-202 135  76	1045 Toast - LT
-172 100  31	1046 Toast
-243 159 100	1047 Cinnamon - LT
-212 107  52	1048 Cinnamon - MED
-174  80  35	1049 Cinnamon
-105  66  40	1050 Tawnyu - MED DK
-158 198 205	1060 Blue Violet - VY LT
- 99 146 161	1062 Peacock Blue
- 75 130 151	1064 Wedgewood - LT
- 27  87 106	1066 Wedgewood - DK
-  0  68  87	1068 Wedgewood - VY DK
- 84 172 153	1070 Sea Green - MED
- 48 156 132	1072 Sea Green - MED DK
-  0 131 115	1074 Sea Green - DK
-  0 114 101	1076 Misty Green - DK
-200 166 137	1080 Mocha Beige - LT
-159 129 108	1082 Mocha Beige - MED
-132 101  80	1084 Mocha Brown - MED
- 92  70  54	1086 Mocha Brown - DK
- 61  44  35	1088 Mocha Brown - VY DK
-  0 136 211	1089 Electric Blue - MED
- 62 169 234	1090 Electric Blue
-153 216 210	1092 Turquoise - LT
-252 158 197	1094 Cranberry - VY LT
-159 179 193	1096 Blue Violet - LT
-212  24  41	1098 Bright Red
-234 186 164	4146 Sportsman Flesh
-182  82  69	5975 Brick - DK
-121 114  94	8581 Stone Gray
-198   0  25	9046 Christmas Red
-183 218 228	9159 Glacier Blue
-220 148 121	9575 Brick - MED LT
diff --git a/krita/data/palettes/Bears.gpl b/krita/data/palettes/Bears.gpl
deleted file mode 100644
index 189d4cfd6..000000000
--- a/krita/data/palettes/Bears.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Bears
-#
-  8   8   8	grey3
- 68  44  44	Untitled
- 80   8  12	Untitled
- 72  56  56	Untitled
-104  84  68	Untitled
-116  96  80	Untitled
- 84  56  44	Untitled
-140 104  88	Untitled
-172 116  92	Untitled
- 68  44  56	Untitled
- 88  72  68	Untitled
-112  84  76	Untitled
-  8   8  28	Untitled
-104  96  84	Untitled
-128 116  96	Untitled
-164 136 104	Untitled
-120 116 116	Untitled
-136 128 108	Untitled
-204 160 112	Untitled
-220 184 124	Untitled
-104 100 108	Untitled
-120 116 140	Untitled
-128 124 140	Untitled
-128 132 152	Untitled
-132 144 164	Untitled
-204 172 124	Untitled
-144 152 168	Untitled
-224 196 136	Untitled
-136 152 172	Untitled
-144 156 176	Untitled
-204 184 152	Untitled
-148 164 184	Untitled
-228 212 164	Untitled
- 96   8   8	Untitled
-116 112 128	Untitled
-144 116  96	Untitled
-132 132 124	Untitled
-224 220 192	Untitled
-128 104  84	Untitled
- 56  40  40	Untitled
- 84  56  56	Untitled
-228 208 148	Untitled
-196 144 108	Untitled
-160 124 100	Untitled
- 96  80  76	Untitled
- 56  24  24	Untitled
-148  96  80	Untitled
-140  56  16	Untitled
- 60   8  12	Untitled
-224 216 176	Untitled
-160 168 184	Untitled
- 60  52  52	Untitled
-152 152 160	Untitled
-208 184 136	Untitled
-184 152 112	Untitled
-216 172 116	Untitled
-220 200 152	Untitled
- 88   8  32	Untitled
- 92  56  68	Untitled
- 68  12  44	Untitled
- 24   8   8	Untitled
-128  84  76	Untitled
-192 120  20	Untitled
- 24  12  28	Untitled
- 56  24  40	Untitled
-236 232 192	Untitled
-148 148 128	Untitled
-148 136 112	Untitled
-112 108  96	Untitled
-140  40  44	Untitled
- 80  12  48	Untitled
-136 100  72	Untitled
- 80  44  48	Untitled
-112 104 116	Untitled
- 72  12  36	Untitled
-124  36  32	Untitled
- 44  20  40	Untitled
-104  72  68	Untitled
- 56  40  24	Untitled
-132  92  80	Untitled
-140 132 148	Untitled
-104  68  56	Untitled
-184  64   8	Untitled
- 44   8   8	Untitled
- 68  44  28	Untitled
-112   8  12	Untitled
- 28  24  40	Untitled
- 92  40  44	Untitled
- 40   8  24	Untitled
-112  68  68	Untitled
- 56   8  36	Untitled
-128  84  56	Untitled
-144 104  72	Untitled
-100  32  12	Untitled
-176  28   8	Untitled
- 68  36  44	Untitled
-152 108  80	Untitled
-120  96  64	Untitled
-116   8  36	Untitled
- 88  44  56	Untitled
-220 208 184	Untitled
- 92  68  56	Untitled
-228 228 204	Untitled
-124  56  44	Untitled
-180 136 104	Untitled
-204 136  16	Untitled
-152  96  72	Untitled
- 80  40   8	Untitled
- 88  12  60	Untitled
- 80  60  68	Untitled
-172 172 172	Untitled
-164 116  84	Untitled
-140 140 156	Untitled
-124  88  68	Untitled
-156 112  92	Untitled
-124 120 132	Untitled
- 76  44  56	Untitled
-124  36   8	Untitled
-120  72  44	Untitled
- 72  56  64	Untitled
-240 244 212	Untitled
-172 128  92	Untitled
-216 204 168	Untitled
-176  92  12	Untitled
- 92  56  56	Untitled
- 44  24  24	Untitled
-136  76  64	Untitled
-116  68  56	Untitled
- 44  40  40	Untitled
-232 240 236	Untitled
- 96  60  48	Untitled
-168 116  72	Untitled
-124  60  20	Untitled
-100  40  56	Untitled
-112  76  60	Untitled
- 24   8  40	Untitled
- 72  56  44	Untitled
-192 168 132	Untitled
-152 160 172	Untitled
-232 224 176	Untitled
-248 252 236	Untitled
-156  56   8	Untitled
-160 100  84	Untitled
-140 116  84	Untitled
-  8   8  48	Untitled
-136  68  44	Untitled
-104  12  48	Untitled
-120  76  68	Untitled
-228 228 220	Untitled
-176 172 156	Untitled
-188 140  96	Untitled
-172  80  40	Untitled
- 44  28  40	Untitled
-124  36  60	Untitled
-140  28  76	Untitled
- 88  72  80	Untitled
- 44   8  40	Untitled
-184 104  60	Untitled
-132  88  64	Untitled
-160 104  72	Untitled
-124  76  64	Untitled
- 92  12  48	Untitled
-184 180 180	Untitled
-104  72  48	Untitled
- 44  40  28	Untitled
- 56  44  56	Untitled
- 36  12  48	Untitled
- 96  44  36	Untitled
-192 192 192	Untitled
-164 176 192	Untitled
-188 128  96	Untitled
-160  84  72	Untitled
-108  56  52	Untitled
-172 156 128	Untitled
-148  72  24	Untitled
-164 160 164	Untitled
- 80  36  56	Untitled
-156  84   8	Untitled
-152 128  92	Untitled
-144  16  48	Untitled
-152   8   8	Untitled
- 76  52  28	Untitled
-148  40  12	Untitled
-220 220 208	Untitled
-104  56  60	Untitled
-128  64  64	Untitled
- 68  28  56	Untitled
-208 192 160	Untitled
-136 136 140	Untitled
- 44  36  56	Untitled
- 44  40  16	Untitled
-148  80  56	Untitled
-120  72  12	Untitled
- 80  68  56	Untitled
-148  92  44	Untitled
-188 184 160	Untitled
-156 160 140	Untitled
-112  20  40	Untitled
-144  88  76	Untitled
-192 180 144	Untitled
-180 200 188	Untitled
- 56  56  60	Untitled
- 72  68  72	Untitled
-104  60  32	Untitled
-148  64  68	Untitled
-172 112  36	Untitled
-212 204 192	Untitled
-144  96  60	Untitled
-112  36  44	Untitled
- 56  36  56	Untitled
-116  56  64	Untitled
-148 144 148	Untitled
-172 160 144	Untitled
- 12  60  72	Untitled
- 96  64   8	Untitled
-128  72  72	Untitled
- 36  40  40	Untitled
-116  48  12	Untitled
-112  40  56	Untitled
-168  96  60	Untitled
-196 192 172	Untitled
-184 168 128	Untitled
- 96  92 100	Untitled
-204 212 188	Untitled
- 92  24  40	Untitled
-132 100  16	Untitled
-204 216 204	Untitled
-188 124  68	Untitled
-156  60  44	Untitled
- 76  28  24	Untitled
- 92  88  84	Untitled
-204 152 100	Untitled
-136  52  64	Untitled
- 84  80  72	Untitled
- 92  76  32	Untitled
- 28  36  16	Untitled
-140  84  68	Untitled
- 56  12  56	Untitled
-132  84  16	Untitled
- 84  40  28	Untitled
- 44  72  80	Untitled
-196 136  88	Untitled
-172  96  80	Untitled
-132  12  12	Untitled
-120  12  56	Untitled
-180 116  84	Untitled
-204 196 176	Untitled
-164 148 116	Untitled
-136  80  76	Untitled
-  8  32  44	Untitled
-204   8  20	Untitled
-  0   0   0	grey0
- 40   0   0	Untitled
-  0  56  92	Untitled
-  0   0   4	Untitled
-  0   0   0	grey0
diff --git a/krita/data/palettes/Bgold.gpl b/krita/data/palettes/Bgold.gpl
deleted file mode 100644
index 3e8e80687..000000000
--- a/krita/data/palettes/Bgold.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Bgold
-#
-236 216  20	Untitled
-236 216  20	Untitled
-236 216  20	Untitled
-236 212  20	Untitled
-236 212  20	Untitled
-236 208  24	Untitled
-236 208  24	Untitled
-232 204  24	Untitled
-232 204  24	Untitled
-232 204  24	Untitled
-232 200  24	Untitled
-232 200  24	Untitled
-232 196  24	Untitled
-232 196  24	Untitled
-228 192  24	Untitled
-228 192  28	Untitled
-228 188  28	Untitled
-228 188  28	Untitled
-228 184  28	Untitled
-228 184  28	Untitled
-228 184  28	Untitled
-224 180  28	Untitled
-224 180  28	Untitled
-224 176  28	Untitled
-224 176  28	Untitled
-224 172  32	Untitled
-224 172  32	Untitled
-224 168  32	Untitled
-224 168  32	Untitled
-220 164  32	Untitled
-220 164  32	Untitled
-220 164  32	Untitled
-220 160  32	Untitled
-220 160  32	Untitled
-220 156  32	Untitled
-220 156  36	Untitled
-216 152  36	Untitled
-216 152  36	Untitled
-216 148  36	Untitled
-216 148  36	Untitled
-216 144  36	Untitled
-216 144  36	Untitled
-216 144  36	Untitled
-212 140  36	Untitled
-212 140  36	Untitled
-212 136  40	Untitled
-212 136  40	Untitled
-212 132  40	Untitled
-212 132  40	Untitled
-212 128  40	Untitled
-208 128  40	Untitled
-208 124  40	Untitled
-208 124  40	Untitled
-208 124  40	Untitled
-208 120  40	Untitled
-208 120  44	Untitled
-208 116  44	Untitled
-204 116  44	Untitled
-204 112  44	Untitled
-204 112  44	Untitled
-204 108  44	Untitled
-204 108  44	Untitled
-204 104  44	Untitled
-204 104  44	Untitled
-204 104  44	Untitled
-200 108  40	Untitled
-200 108  40	Untitled
-200 108  40	Untitled
-200 108  40	Untitled
-200 108  40	Untitled
-200 108  40	Untitled
-200 108  40	Untitled
-200 112  40	Untitled
-200 112  40	Untitled
-200 112  36	Untitled
-200 112  36	Untitled
-200 112  36	Untitled
-200 112  36	Untitled
-200 112  36	Untitled
-200 116  36	Untitled
-200 116  36	Untitled
-200 116  36	Untitled
-200 116  36	Untitled
-200 116  36	Untitled
-196 116  32	Untitled
-196 116  32	Untitled
-196 120  32	Untitled
-196 120  32	Untitled
-196 120  32	Untitled
-196 120  32	Untitled
-196 120  32	Untitled
-196 120  32	Untitled
-196 120  32	Untitled
-196 124  32	Untitled
-196 124  28	Untitled
-196 124  28	Untitled
-196 124  28	Untitled
-196 124  28	Untitled
-196 124  28	Untitled
-196 124  28	Untitled
-196 128  28	Untitled
-196 128  28	Untitled
-196 128  28	Untitled
-196 128  28	Untitled
-192 128  24	Untitled
-192 128  24	Untitled
-192 128  24	Untitled
-192 132  24	Untitled
-192 132  24	Untitled
-192 132  24	Untitled
-192 132  24	Untitled
-192 132  24	Untitled
-192 132  24	Untitled
-192 132  20	Untitled
-192 136  20	Untitled
-192 136  20	Untitled
-192 136  20	Untitled
-192 136  20	Untitled
-192 136  20	Untitled
-192 136  20	Untitled
-192 136  20	Untitled
-192 140  20	Untitled
-192 140  20	Untitled
-188 140  16	Untitled
-188 140  16	Untitled
-188 140  16	Untitled
-188 140  16	Untitled
-188 140  16	Untitled
-188 144  16	Untitled
-188 144  16	Untitled
-188 144  16	Untitled
-188 144  16	Untitled
-188 144  16	Untitled
-188 144  12	Untitled
-188 144  12	Untitled
-188 148  12	Untitled
-188 148  12	Untitled
-188 148  12	Untitled
-188 148  12	Untitled
-188 148  12	Untitled
-188 148  12	Untitled
-188 148  12	Untitled
-188 148  12	Untitled
-148 136  60	Untitled
-112 124 108	Untitled
-116 128 112	Untitled
-116 128 112	Untitled
-116 128 116	Untitled
-120 128 116	Untitled
-120 128 120	Untitled
-120 128 120	Untitled
-120 128 124	Untitled
-124 132 124	Untitled
-124 132 128	Untitled
-124 132 128	Untitled
-124 132 132	Untitled
-128 132 132	Untitled
-128 132 136	Untitled
-128 132 136	Untitled
-132 136 140	Untitled
-132 136 140	Untitled
-132 136 144	Untitled
-132 136 144	Untitled
-136 136 148	Untitled
-136 136 148	Untitled
-136 136 152	Untitled
-136 136 152	Untitled
-140 140 156	Untitled
-140 140 156	Untitled
-140 140 160	Untitled
-144 140 160	Untitled
-144 140 164	Untitled
-144 140 164	Untitled
-144 140 168	Untitled
-148 144 168	Untitled
-148 144 172	Untitled
-148 144 172	Untitled
-148 144 176	Untitled
-152 144 176	Untitled
-152 144 180	Untitled
-152 144 180	Untitled
-156 148 184	Untitled
-156 148 184	Untitled
-156 148 188	Untitled
-156 148 188	Untitled
-160 148 192	Untitled
-160 148 192	Untitled
-160 148 196	Untitled
-160 148 196	Untitled
-164 152 200	Untitled
-164 152 200	Untitled
-164 152 204	Untitled
-168 152 204	Untitled
-168 152 208	Untitled
-168 152 208	Untitled
-168 152 212	Untitled
-172 156 212	Untitled
-172 156 216	Untitled
-172 156 216	Untitled
-172 156 220	Untitled
-176 156 220	Untitled
-176 156 224	Untitled
-176 156 224	Untitled
-176 156 224	Untitled
-168 152 220	Untitled
-164 148 216	Untitled
-156 148 212	Untitled
-152 144 212	Untitled
-148 144 208	Untitled
-140 140 204	Untitled
-136 140 204	Untitled
-132 136 200	Untitled
-124 136 196	Untitled
-120 132 196	Untitled
-116 132 192	Untitled
-108 128 188	Untitled
-104 128 188	Untitled
-100 124 184	Untitled
- 92 124 180	Untitled
- 88 120 180	Untitled
- 80 120 176	Untitled
- 76 116 172	Untitled
- 72 116 172	Untitled
- 64 112 168	Untitled
- 60 112 164	Untitled
- 56 108 164	Untitled
- 48 108 160	Untitled
- 44 104 156	Untitled
- 40 104 156	Untitled
- 32 100 152	Untitled
- 28 100 148	Untitled
- 24  96 148	Untitled
- 16  96 144	Untitled
- 12  92 140	Untitled
-  8  92 140	Untitled
- 12  88 136	Untitled
- 16  88 136	Untitled
- 20  88 136	Untitled
- 20  88 132	Untitled
- 24  84 132	Untitled
- 28  84 132	Untitled
- 28  84 128	Untitled
- 32  84 128	Untitled
- 36  84 128	Untitled
- 36  80 128	Untitled
- 40  80 124	Untitled
- 44  80 124	Untitled
- 44  80 124	Untitled
- 48  76 120	Untitled
- 52  76 120	Untitled
- 52  76 120	Untitled
- 56  76 116	Untitled
- 60  76 116	Untitled
- 60  72 116	Untitled
- 64  72 116	Untitled
- 68  72 112	Untitled
diff --git a/krita/data/palettes/Blues.gpl b/krita/data/palettes/Blues.gpl
deleted file mode 100644
index 33fcfc084..000000000
--- a/krita/data/palettes/Blues.gpl
+++ /dev/null
@@ -1,261 +0,0 @@
-GIMP Palette
-Name: Blues
-#
-# For them rainy days ... by Daniel Egnor
-#
-  0   0   0	grey0
-  0   0   0	grey0
-  0   0   4	Untitled
-  0   0  12	Untitled
-  0   0  16	Untitled
-  0   0  24	Untitled
-  0   0  32	Untitled
-  0   0  36	Untitled
-  0   0  44	Untitled
-  0   0  48	Untitled
-  0   0  56	Untitled
-  0   0  64	Untitled
-  0   0  68	Untitled
-  0   0  76	Untitled
-  0   0  80	Untitled
-  0   0  88	Untitled
-  0   0  96	Untitled
-  0   0 100	Untitled
-  0   0 108	Untitled
-  0   0 116	Untitled
-  0   0 120	Untitled
-  0   0 128	NavyBlue
-  0   0 132	Untitled
-  0   0 140	Untitled
-  0   0 148	Untitled
-  0   0 152	Untitled
-  0   0 160	Untitled
-  0   0 164	Untitled
-  0   0 172	Untitled
-  0   0 180	Untitled
-  0   0 184	Untitled
-  0   0 192	Untitled
-  0   0 200	Untitled
-  0   4 200	Untitled
-  0  12 200	Untitled
-  0  16 204	Untitled
-  0  24 204	Untitled
-  0  28 208	Untitled
-  0  36 208	Untitled
-  0  40 208	Untitled
-  0  48 212	Untitled
-  0  56 212	Untitled
-  0  60 216	Untitled
-  0  68 216	Untitled
-  0  72 216	Untitled
-  0  80 220	Untitled
-  0  84 220	Untitled
-  0  92 224	Untitled
-  0 100 224	Untitled
-  0 104 224	Untitled
-  0 112 228	Untitled
-  0 116 228	Untitled
-  0 124 232	Untitled
-  0 128 232	Untitled
-  0 136 232	Untitled
-  0 140 236	Untitled
-  0 148 236	Untitled
-  0 156 240	Untitled
-  0 160 240	Untitled
-  0 168 240	Untitled
-  0 172 244	Untitled
-  0 180 244	Untitled
-  0 184 248	Untitled
-  0 192 248	Untitled
-  0 200 252	Untitled
-  4 200 252	Untitled
- 12 200 252	Untitled
- 20 204 252	Untitled
- 28 204 252	Untitled
- 36 208 252	Untitled
- 44 208 252	Untitled
- 52 208 252	Untitled
- 60 212 252	Untitled
- 68 212 252	Untitled
- 76 216 252	Untitled
- 84 216 252	Untitled
- 92 216 252	Untitled
-100 220 252	Untitled
-108 220 252	Untitled
-116 224 252	Untitled
-124 224 252	Untitled
-132 224 252	Untitled
-140 228 252	Untitled
-148 228 252	Untitled
-156 232 252	Untitled
-164 232 252	Untitled
-172 232 252	Untitled
-180 236 252	Untitled
-188 236 252	Untitled
-196 240 252	Untitled
-204 240 252	Untitled
-212 240 252	Untitled
-220 244 252	Untitled
-228 244 252	Untitled
-236 248 252	Untitled
-244 248 252	Untitled
-252 252 252	 		grey99
-248 252 252	Untitled
-244 252 252	Untitled
-240 252 252	Untitled
-232 252 252	Untitled
-228 252 252	Untitled
-224 252 252	Untitled
-216 252 252	Untitled
-212 252 252	Untitled
-208 252 252	Untitled
-200 252 252	Untitled
-196 252 252	Untitled
-192 252 252	Untitled
-184 252 252	Untitled
-180 252 252	Untitled
-176 252 252	Untitled
-168 252 252	Untitled
-164 252 252	Untitled
-160 252 252	Untitled
-156 252 252	Untitled
-148 252 252	Untitled
-144 252 252	Untitled
-140 252 252	Untitled
-132 252 252	Untitled
-128 252 252	Untitled
-124 252 252	Untitled
-116 252 252	Untitled
-112 252 252	Untitled
-108 252 252	Untitled
-100 252 252	Untitled
- 96 252 252	Untitled
- 92 252 252	Untitled
- 84 252 252	Untitled
- 80 252 252	Untitled
- 76 252 252	Untitled
- 72 252 252	Untitled
- 64 252 252	Untitled
- 60 252 252	Untitled
- 56 252 252	Untitled
- 48 252 252	Untitled
- 44 252 252	Untitled
- 40 252 252	Untitled
- 32 252 252	Untitled
- 28 252 252	Untitled
- 24 252 252	Untitled
- 16 252 252	Untitled
- 12 252 252	Untitled
-  8 252 252	Untitled
-  0 252 252	Untitled
-  0 248 252	Untitled
-  0 244 252	Untitled
-  0 240 252	Untitled
-  0 232 252	Untitled
-  0 228 252	Untitled
-  0 224 252	Untitled
-  0 216 252	Untitled
-  0 212 252	Untitled
-  0 208 252	Untitled
-  0 200 252	Untitled
-  0 196 252	Untitled
-  0 192 252	Untitled
-  0 184 252	Untitled
-  0 180 252	Untitled
-  0 176 252	Untitled
-  0 168 252	Untitled
-  0 164 252	Untitled
-  0 160 252	Untitled
-  0 156 252	Untitled
-  0 148 252	Untitled
-  0 144 252	Untitled
-  0 140 252	Untitled
-  0 132 252	Untitled
-  0 128 252	Untitled
-  0 124 252	Untitled
-  0 116 252	Untitled
-  0 112 252	Untitled
-  0 108 252	Untitled
-  0 100 252	Untitled
-  0  96 252	Untitled
-  0  92 252	Untitled
-  0  84 252	Untitled
-  0  80 252	Untitled
-  0  76 252	Untitled
-  0  72 252	Untitled
-  0  64 252	Untitled
-  0  60 252	Untitled
-  0  56 252	Untitled
-  0  48 252	Untitled
-  0  44 252	Untitled
-  0  40 252	Untitled
-  0  32 252	Untitled
-  0  28 252	Untitled
-  0  24 252	Untitled
-  0  16 252	Untitled
-  0  12 252	Untitled
-  0   8 252	Untitled
-  0   0 252	Untitled
-  0   0 248	Untitled
-  0   0 244	Untitled
-  0   0 240	Untitled
-  0   0 236	Untitled
-  0   0 232	Untitled
-  0   0 228	Untitled
-  0   0 224	Untitled
-  0   0 220	Untitled
-  0   0 216	Untitled
-  0   0 212	Untitled
-  0   0 208	Untitled
-  0   0 204	Untitled
-  0   0 200	Untitled
-  0   0 196	Untitled
-  0   0 192	Untitled
-  0   0 188	Untitled
-  0   0 184	Untitled
-  0   0 180	Untitled
-  0   0 176	Untitled
-  0   0 172	Untitled
-  0   0 168	Untitled
-  0   0 164	Untitled
-  0   0 160	Untitled
-  0   0 156	Untitled
-  0   0 152	Untitled
-  0   0 148	Untitled
-  0   0 144	Untitled
-  0   0 140	Untitled
-  0   0 136	Untitled
-  0   0 132	Untitled
-  0   0 128	NavyBlue
-  0   0 124	Untitled
-  0   0 120	Untitled
-  0   0 116	Untitled
-  0   0 112	Untitled
-  0   0 108	Untitled
-  0   0 104	Untitled
-  0   0 100	Untitled
-  0   0  96	Untitled
-  0   0  92	Untitled
-  0   0  88	Untitled
-  0   0  84	Untitled
-  0   0  80	Untitled
-  0   0  76	Untitled
-  0   0  72	Untitled
-  0   0  68	Untitled
-  0   0  64	Untitled
-  0   0  60	Untitled
-  0   0  56	Untitled
-  0   0  52	Untitled
-  0   0  48	Untitled
-  0   0  44	Untitled
-  0   0  40	Untitled
-  0   0  36	Untitled
-  0   0  32	Untitled
-  0   0  28	Untitled
-  0   0  24	Untitled
-  0   0  20	Untitled
-  0   0  16	Untitled
-  0   0  12	Untitled
-  0   0   8	Untitled
-  0   0   0	grey0
-  0   0   0	grey0
diff --git a/krita/data/palettes/Borders.gpl b/krita/data/palettes/Borders.gpl
deleted file mode 100644
index 424d6b6d9..000000000
--- a/krita/data/palettes/Borders.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Borders
-#
-204  52 180	Untitled
-204  52 180	Untitled
-204  52 184	Untitled
-204  48 188	Untitled
-200  48 192	Untitled
-200  44 200	Untitled
-200  44 204	Untitled
-196  40 208	Untitled
-196  40 212	Untitled
-196  36 220	Untitled
-192  36 224	Untitled
-192  32 228	Untitled
-192  32 232	Untitled
-188  28 240	Untitled
-188  28 244	Untitled
-188  24 248	Untitled
-188  24 252	Untitled
-192  28 248	Untitled
-192  32 248	Untitled
-196  36 248	Untitled
-196  40 244	Untitled
-200  44 244	Untitled
-200  48 244	Untitled
-204  48 240	Untitled
-204  52 240	Untitled
-208  56 240	Untitled
-208  60 236	Untitled
-212  64 236	Untitled
-212  68 236	Untitled
-216  72 236	Untitled
-216  72 232	Untitled
-220  76 232	Untitled
-220  80 232	Untitled
-224  84 228	Untitled
-224  88 228	Untitled
-228  92 228	Untitled
-228  92 224	Untitled
-232  96 224	Untitled
-232 100 224	Untitled
-236 104 224	Untitled
-236 108 220	Untitled
-240 112 220	Untitled
-240 116 220	Untitled
-244 116 216	Untitled
-244 120 216	Untitled
-248 124 216	Untitled
-248 128 212	Untitled
-252 132 212	Untitled
-252 136 212	Untitled
-252 136 212	Untitled
-244 132 208	Untitled
-236 128 204	Untitled
-232 124 200	Untitled
-224 120 196	Untitled
-216 116 192	Untitled
-212 112 188	Untitled
-204 112 184	Untitled
-200 108 180	Untitled
-192 104 176	Untitled
-184 100 172	Untitled
-180  96 168	Untitled
-172  92 164	Untitled
-168  92 160	Untitled
-160  88 156	Untitled
-152  84 152	Untitled
-148  80 148	Untitled
-140  76 144	Untitled
-132  72 140	Untitled
-128  68 136	Untitled
-120  68 132	Untitled
-116  64 128	Untitled
-108  60 124	Untitled
-100  56 120	Untitled
- 96  52 116	Untitled
- 88  48 112	Untitled
- 84  48 108	Untitled
- 76  44 104	Untitled
- 68  40 100	Untitled
- 64  36  96	Untitled
- 56  32  92	Untitled
- 48  28  88	Untitled
- 44  24  84	Untitled
- 36  24  80	Untitled
- 32  20  76	Untitled
- 24  16  72	Untitled
- 16  12  68	Untitled
- 12   8  64	Untitled
-  4   4  60	Untitled
-  0   4  60	Untitled
-  4  12  56	Untitled
-  8  16  56	Untitled
-  8  20  56	Untitled
- 12  28  52	Untitled
- 12  32  52	Untitled
- 16  36  52	Untitled
- 16  40  48	Untitled
- 20  48  48	Untitled
- 20  52  48	Untitled
- 24  56  44	Untitled
- 24  64  44	Untitled
- 28  68  44	Untitled
- 28  72  40	Untitled
- 32  76  40	Untitled
- 32  84  40	Untitled
- 36  88  36	Untitled
- 36  92  36	Untitled
- 40 100  36	Untitled
- 40 104  36	Untitled
- 44 108  32	Untitled
- 44 112  32	Untitled
-172  24  56	Untitled
-160  20  52	Untitled
-152  20  52	Untitled
-144  20  48	Untitled
-136  16  48	Untitled
-128  16  44	Untitled
-120  16  44	Untitled
-108  16  40	Untitled
-100  12  40	Untitled
- 92  12  40	Untitled
- 84  12  36	Untitled
- 76   8  36	Untitled
- 68   8  32	Untitled
- 56   8  32	Untitled
- 48   8  28	Untitled
- 40   4  28	Untitled
- 32   4  24	Untitled
- 24   4  24	Untitled
- 16   4  24	Untitled
- 20  12  28	Untitled
- 24  16  32	Untitled
- 24  20  36	Untitled
- 28  24  40	Untitled
- 32  28  44	Untitled
- 32  32  48	Untitled
- 36  36  52	Untitled
- 36  40  56	Untitled
- 40  44  56	Untitled
- 44  48  60	Untitled
- 44  52  64	Untitled
- 48  56  68	Untitled
- 48  60  72	Untitled
- 52  64  76	Untitled
- 56  68  80	Untitled
- 56  72  84	Untitled
- 60  76  88	Untitled
- 60  80  88	Untitled
- 64  88  92	Untitled
- 68  92  96	Untitled
- 68  96 100	Untitled
- 72 100 104	Untitled
- 76 104 108	Untitled
- 76 108 112	Untitled
- 80 112 116	Untitled
- 80 116 120	Untitled
- 84 120 120	Untitled
- 88 124 124	Untitled
- 88 128 128	Untitled
- 92 132 132	Untitled
- 92 136 136	Untitled
- 96 140 140	Untitled
-100 144 144	Untitled
-100 148 148	Untitled
-104 152 152	Untitled
-104 156 152	Untitled
- 96 148 148	Untitled
- 88 144 148	Untitled
- 84 140 144	Untitled
- 76 136 144	Untitled
- 72 132 140	Untitled
- 64 128 140	Untitled
- 60 124 136	Untitled
- 52 120 136	Untitled
- 44 116 136	Untitled
- 40 112 132	Untitled
- 32 108 132	Untitled
- 28 104 128	Untitled
- 20 100 128	Untitled
- 16  96 124	Untitled
-  8  92 124	Untitled
-  4  88 124	Untitled
- 12  92 120	Untitled
- 16  92 116	Untitled
- 24  92 116	Untitled
- 28  92 112	Untitled
- 32  92 112	Untitled
- 40  96 108	Untitled
- 44  96 104	Untitled
- 48  96 104	Untitled
- 56  96 100	Untitled
- 60  96 100	Untitled
- 64  96  96	Untitled
- 72 100  96	Untitled
- 76 100  92	Untitled
- 80 100  88	Untitled
- 88 100  88	Untitled
- 92 100  84	Untitled
-100 104  84	Untitled
-104 104  80	Untitled
-108 104  80	Untitled
-116 104  76	Untitled
-120 104  72	Untitled
-124 104  72	Untitled
-132 108  68	Untitled
-136 108  68	Untitled
-140 108  64	Untitled
-148 108  60	Untitled
-152 108  60	Untitled
-156 108  56	Untitled
-164 112  56	Untitled
-168 112  52	Untitled
-176 112  52	Untitled
-180 112  48	Untitled
-184 112  44	Untitled
-192 116  44	Untitled
-196 116  40	Untitled
-200 116  40	Untitled
-208 116  36	Untitled
-212 116  36	Untitled
-216 116  32	Untitled
-224 120  28	Untitled
-228 120  28	Untitled
-232 120  24	Untitled
-240 120  24	Untitled
-244 120  20	Untitled
-248 120  20	Untitled
-244 116  28	Untitled
-244 112  32	Untitled
-244 112  36	Untitled
-240 108  44	Untitled
-240 108  48	Untitled
-240 104  52	Untitled
-236 104  56	Untitled
-236 100  64	Untitled
-236 100  68	Untitled
-232  96  72	Untitled
-232  96  76	Untitled
-232  92  84	Untitled
-228  92  88	Untitled
-228  88  92	Untitled
-228  88  96	Untitled
-224  84 104	Untitled
-224  84 108	Untitled
-224  80 112	Untitled
-220  80 116	Untitled
-220  76 124	Untitled
-220  76 128	Untitled
-216  72 132	Untitled
-216  72 136	Untitled
-216  68 144	Untitled
-212  64 148	Untitled
-212  64 152	Untitled
-212  60 160	Untitled
-208  60 164	Untitled
-208  56 168	Untitled
-208  56 172	Untitled
diff --git a/krita/data/palettes/Browns_And_Yellows.gpl b/krita/data/palettes/Browns_And_Yellows.gpl
deleted file mode 100644
index bd100e279..000000000
--- a/krita/data/palettes/Browns_And_Yellows.gpl
+++ /dev/null
@@ -1,25 +0,0 @@
-GIMP Palette
-Name: Browns and Yellows
-#
-189 183 107	Dark Khaki
-240 230 140	Khaki
-238 232 170	Pale Goldenrod
-250 250 210	Light Goldenrod Yellow
-255 255 224	Light Yellow
-255 255   0	Yellow
-255 215   0	Gold
-238 221 130	Light Goldenrod
-218 165  32	Goldenrod
-184 134  11	Dark Goldenrod
-188 143 143	Rosy Brown
-139  69  19	Saddle Brown
-160  82  45	Sienna
-205 133  63	Peru
-222 184 135	Burlywood
-245 245 220	Beige
-245 222 179	Wheat
-244 164  96	Sandy Brown
-210 180 140	Tan
-210 105  30	Chocolate
-255 165   0	Orange
-255 140   0	Dark Orange
diff --git a/krita/data/palettes/Caramel.gpl b/krita/data/palettes/Caramel.gpl
deleted file mode 100644
index 2ee783dea..000000000
--- a/krita/data/palettes/Caramel.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Caramel
-#
- 48  48  48	grey19
-164 136 192	Untitled
-172 140 192	Untitled
-180 144 192	Untitled
-188 148 192	Untitled
-196 152 192	Untitled
-204 152 192	Untitled
-212 156 192	Untitled
-220 160 192	Untitled
-228 164 192	Untitled
-236 168 192	Untitled
-228 160 188	Untitled
-216 148 184	Untitled
-204 136 180	Untitled
-192 124 176	Untitled
-180 112 168	Untitled
-168 104 164	Untitled
-156  92 160	Untitled
-144  80 156	Untitled
-132  68 152	Untitled
-120  56 144	Untitled
-140  84 140	Untitled
-160 116 132	Untitled
-180 144 128	Untitled
-200 176 120	Untitled
-224 208 112	Untitled
-212 200 120	Untitled
-196 188 132	Untitled
-184 176 144	Untitled
-168 168 156	Untitled
-156 156 164	Untitled
-140 144 176	Untitled
-128 136 188	Untitled
-112 124 200	Untitled
- 96 112 212	Untitled
-108 112 192	Untitled
-124 116 172	Untitled
-136 116 148	Untitled
-152 120 128	Untitled
-168 120 108	Untitled
-180 124  84	Untitled
-196 124  64	Untitled
-212 128  40	Untitled
-212 128  44	Untitled
-212 132  48	Untitled
-212 136  52	Untitled
-212 140  56	Untitled
-216 144  60	Untitled
-216 148  64	Untitled
-216 148  68	Untitled
-216 152  72	Untitled
-220 156  76	Untitled
-220 160  80	Untitled
-220 164  84	Untitled
-220 168  88	Untitled
-224 168  92	Untitled
-224 172  96	Untitled
-224 176 100	Untitled
-224 180 104	Untitled
-228 184 108	Untitled
-228 188 112	Untitled
-228 188 116	Untitled
-228 192 120	Untitled
-232 196 124	Untitled
-232 200 128	Untitled
-232 204 132	Untitled
-232 208 136	Untitled
-236 212 140	Untitled
-232 208 140	Untitled
-224 204 140	Untitled
-216 196 140	Untitled
-208 192 136	Untitled
-200 188 136	Untitled
-192 180 136	Untitled
-188 176 132	Untitled
-180 172 132	Untitled
-172 164 132	Untitled
-164 160 128	Untitled
-156 156 128	Untitled
-148 148 128	Untitled
-144 144 124	Untitled
-136 136 124	Untitled
-128 132 124	Untitled
-120 128 120	Untitled
-112 120 120	Untitled
-104 116 120	Untitled
-100 112 116	Untitled
- 92 104 116	Untitled
- 84 100 116	Untitled
- 76  96 112	Untitled
- 68  88 112	Untitled
- 60  84 112	Untitled
- 52  76 108	Untitled
- 56  80 108	Untitled
- 60  88 108	Untitled
- 64  96 108	Untitled
- 72 100 108	Untitled
- 76 108 108	Untitled
- 80 116 108	Untitled
- 88 120 108	Untitled
- 92 128 108	Untitled
- 96 136 108	Untitled
-104 144 104	Untitled
-108 148 104	Untitled
-112 156 104	Untitled
-116 164 104	Untitled
-124 168 104	Untitled
-128 176 104	Untitled
-132 184 104	Untitled
-140 188 104	Untitled
-144 196 104	Untitled
-148 204 104	Untitled
-156 212 100	Untitled
-156 208 100	Untitled
-156 204 100	Untitled
-156 200  96	Untitled
-156 196  96	Untitled
-156 192  92	Untitled
-156 188  92	Untitled
-156 184  88	Untitled
-156 180  88	Untitled
-156 176  84	Untitled
-156 172  84	Untitled
-156 168  80	Untitled
-156 164  80	Untitled
-156 160  76	Untitled
-156 156  76	Untitled
-156 152  72	Untitled
-156 148  72	Untitled
-156 144  68	Untitled
-156 140  68	Untitled
-156 136  64	Untitled
-156 132  64	Untitled
-156 124  60	Untitled
-160 124  72	Untitled
-164 128  84	Untitled
-168 132  96	Untitled
-176 136 112	Untitled
-180 136 124	Untitled
-184 140 136	Untitled
-188 144 148	Untitled
-196 148 164	Untitled
-196 148 164	Untitled
-196 148 160	Untitled
-196 144 156	Untitled
-196 144 152	Untitled
-192 140 148	Untitled
-192 140 144	Untitled
-192 140 140	Untitled
-192 136 136	Untitled
-192 136 132	Untitled
-188 132 128	Untitled
-188 132 124	Untitled
-188 132 120	Untitled
-188 128 116	Untitled
-184 128 112	Untitled
-184 124 108	Untitled
-184 124 104	Untitled
-184 124 104	Untitled
-184 120 100	Untitled
-180 120  96	Untitled
-180 116  92	Untitled
-180 116  88	Untitled
-180 116  84	Untitled
-176 112  80	Untitled
-176 112  76	Untitled
-176 108  72	Untitled
-176 108  68	Untitled
-176 108  64	Untitled
-172 104  60	Untitled
-172 104  56	Untitled
-172 100  52	Untitled
-172 100  48	Untitled
-168  96  44	Untitled
-160  96  44	Untitled
-152  96  48	Untitled
-140 100  52	Untitled
-132 100  56	Untitled
-120 100  60	Untitled
-112 104  60	Untitled
-100 104  64	Untitled
- 92 104  68	Untitled
- 80 108  72	Untitled
- 72 108  76	Untitled
- 60 108  80	Untitled
- 52 112  80	Untitled
- 40 112  84	Untitled
- 32 112  88	Untitled
- 20 116  92	Untitled
- 12 116  96	Untitled
-  0 120 100	Untitled
-  0 120 100	Untitled
-  0 116 100	Untitled
-  0 112 104	Untitled
-  0 112 104	Untitled
-  0 108 104	Untitled
-  0 104 108	Untitled
-  0 104 108	Untitled
-  0 100 112	Untitled
-  0  96 112	Untitled
-  0  96 112	Untitled
-  0  92 116	Untitled
-  4  88 116	Untitled
-  4  84 120	Untitled
-  4  84 120	Untitled
-  4  80 120	Untitled
-  4  76 124	Untitled
-  4  76 124	Untitled
-  4  72 128	Untitled
-  4  68 128	Untitled
-  4  68 128	Untitled
-  4  64 132	Untitled
-  4  60 132	Untitled
-  8  56 136	Untitled
- 28  60 136	Untitled
- 48  68 140	Untitled
- 72  76 144	Untitled
- 92  80 148	Untitled
-116  88 152	Untitled
-136  96 156	Untitled
-160 100 160	Untitled
-180 108 164	Untitled
-204 116 168	Untitled
-204 116 168	Untitled
-204 120 168	Untitled
-200 124 168	Untitled
-200 128 168	Untitled
-200 128 168	Untitled
-196 132 168	Untitled
-196 136 168	Untitled
-192 140 168	Untitled
-192 140 168	Untitled
-192 144 168	Untitled
-188 148 168	Untitled
-188 152 168	Untitled
-184 156 168	Untitled
-184 156 168	Untitled
-184 160 168	Untitled
-180 164 168	Untitled
-180 168 168	Untitled
-180 168 168	Untitled
-176 172 168	Untitled
-176 176 168	Untitled
-172 180 168	Untitled
-172 184 168	Untitled
-172 184 168	Untitled
-168 188 168	Untitled
-168 192 168	Untitled
-164 196 168	Untitled
-164 196 168	Untitled
-164 200 168	Untitled
-160 204 168	Untitled
-160 208 168	Untitled
-156 212 164	Untitled
-148 212 168	Untitled
-136 216 176	Untitled
diff --git a/krita/data/palettes/Cascade.gpl b/krita/data/palettes/Cascade.gpl
deleted file mode 100644
index 1c8e7e593..000000000
--- a/krita/data/palettes/Cascade.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Cascade
-#
-108  88 128	Untitled
-108  88 128	Untitled
-108  88 128	Untitled
-104  92 132	Untitled
-104  92 132	Untitled
-100  92 132	Untitled
- 96  92 132	Untitled
- 96  96 136	Untitled
- 92  96 136	Untitled
- 92  96 136	Untitled
- 88  96 136	Untitled
- 84 100 140	Untitled
- 84 100 140	Untitled
- 80 100 140	Untitled
- 76  96 136	Untitled
- 80 100 140	Untitled
- 84 104 144	Untitled
- 88 104 148	Untitled
- 92 108 148	Untitled
- 96 112 152	Untitled
-100 112 156	Untitled
-104 116 160	Untitled
-108 116 160	Untitled
-112 120 164	Untitled
-116 124 168	Untitled
-120 124 168	Untitled
-124 128 172	Untitled
-128 128 176	Untitled
-132 132 180	Untitled
-136 136 180	Untitled
-140 136 184	Untitled
-144 140 188	Untitled
-148 140 188	Untitled
-152 144 192	Untitled
-156 148 196	Untitled
-160 148 200	Untitled
-164 152 200	Untitled
-168 156 204	Untitled
-172 156 208	Untitled
-176 160 212	Untitled
-180 160 212	Untitled
-184 164 216	Untitled
-188 168 220	Untitled
-192 168 220	Untitled
-196 172 224	Untitled
-200 172 228	Untitled
-204 176 232	Untitled
-208 180 232	Untitled
-212 180 236	Untitled
-216 184 240	Untitled
-220 184 240	Untitled
-216 180 236	Untitled
-216 180 236	Untitled
-216 180 236	Untitled
-212 180 236	Untitled
-212 180 236	Untitled
-212 180 236	Untitled
-212 180 236	Untitled
-208 180 232	Untitled
-208 176 232	Untitled
-208 176 232	Untitled
-208 176 232	Untitled
-204 176 232	Untitled
-204 176 232	Untitled
-204 176 232	Untitled
-200 176 232	Untitled
-200 176 228	Untitled
-200 176 228	Untitled
-200 172 228	Untitled
-196 172 228	Untitled
-196 172 228	Untitled
-196 172 228	Untitled
-196 172 228	Untitled
-192 172 228	Untitled
-192 172 224	Untitled
-192 172 224	Untitled
-188 172 224	Untitled
-188 168 224	Untitled
-188 168 224	Untitled
-188 168 224	Untitled
-184 168 224	Untitled
-184 168 224	Untitled
-184 168 220	Untitled
-184 168 220	Untitled
-180 168 220	Untitled
-180 168 220	Untitled
-180 164 220	Untitled
-176 164 220	Untitled
-176 164 220	Untitled
-176 164 220	Untitled
-176 164 216	Untitled
-172 164 216	Untitled
-172 164 216	Untitled
-172 164 216	Untitled
-172 160 216	Untitled
-168 160 216	Untitled
-168 160 216	Untitled
-168 160 216	Untitled
-164 160 212	Untitled
-164 160 212	Untitled
-164 160 212	Untitled
-164 160 212	Untitled
-160 160 212	Untitled
-160 156 212	Untitled
-160 156 212	Untitled
-160 156 212	Untitled
-156 156 208	Untitled
-156 156 208	Untitled
-156 156 208	Untitled
-152 156 208	Untitled
-152 156 208	Untitled
-152 156 208	Untitled
-152 152 208	Untitled
-148 152 208	Untitled
-148 152 204	Untitled
-148 152 204	Untitled
-148 152 204	Untitled
-144 152 204	Untitled
-144 152 204	Untitled
-144 152 204	Untitled
-140 152 204	Untitled
-140 148 204	Untitled
-140 148 200	Untitled
-140 148 200	Untitled
-136 148 200	Untitled
-136 148 200	Untitled
-136 148 200	Untitled
-136 148 200	Untitled
-132 148 200	Untitled
-132 148 200	Untitled
-132 144 196	Untitled
-128 144 196	Untitled
-128 144 196	Untitled
-128 144 196	Untitled
-128 144 196	Untitled
-124 144 196	Untitled
-124 144 196	Untitled
-124 144 192	Untitled
-124 140 192	Untitled
-120 140 192	Untitled
-120 140 192	Untitled
-120 140 192	Untitled
-116 140 192	Untitled
-116 140 192	Untitled
-116 140 192	Untitled
-116 140 188	Untitled
-112 140 188	Untitled
-112 136 188	Untitled
-112 136 188	Untitled
-112 136 188	Untitled
-108 136 188	Untitled
-108 136 188	Untitled
-108 136 188	Untitled
-104 136 184	Untitled
-104 136 184	Untitled
-104 136 184	Untitled
-104 132 184	Untitled
-100 132 184	Untitled
-100 132 184	Untitled
-100 132 184	Untitled
-100 132 184	Untitled
- 96 132 180	Untitled
- 96 132 180	Untitled
- 96 132 180	Untitled
- 92 132 180	Untitled
- 92 128 180	Untitled
- 92 128 180	Untitled
- 92 128 180	Untitled
- 88 128 180	Untitled
- 88 128 176	Untitled
- 88 128 176	Untitled
- 88 128 176	Untitled
- 84 128 176	Untitled
- 84 124 176	Untitled
- 84 124 176	Untitled
- 80 124 176	Untitled
- 80 124 176	Untitled
- 80 124 172	Untitled
- 80 124 172	Untitled
- 76 124 172	Untitled
- 76 124 172	Untitled
- 76 124 172	Untitled
- 76 120 172	Untitled
- 72 120 172	Untitled
- 72 120 172	Untitled
- 72 120 168	Untitled
- 68 120 168	Untitled
- 68 120 168	Untitled
- 68 120 168	Untitled
- 68 120 168	Untitled
- 64 120 168	Untitled
- 64 116 168	Untitled
- 64 116 168	Untitled
- 64 116 164	Untitled
- 60 116 164	Untitled
- 60 116 164	Untitled
- 60 116 164	Untitled
- 56 116 164	Untitled
- 56 116 164	Untitled
- 56 116 164	Untitled
- 56 112 164	Untitled
- 52 112 160	Untitled
- 52 112 160	Untitled
- 52 112 160	Untitled
- 52 112 160	Untitled
- 48 112 160	Untitled
- 48 112 160	Untitled
- 48 112 160	Untitled
- 44 116 156	Untitled
- 48 112 160	Untitled
- 48 112 160	Untitled
- 48 112 160	Untitled
- 48 112 160	Untitled
- 48 112 160	Untitled
- 48 112 160	Untitled
- 48 112 160	Untitled
- 48 112 160	Untitled
- 48 112 160	Untitled
- 48 112 160	Untitled
- 52 112 160	Untitled
- 52 112 160	Untitled
- 52 112 160	Untitled
- 52 112 160	Untitled
- 52 112 160	Untitled
- 52 112 160	Untitled
- 52 112 160	Untitled
- 52 112 160	Untitled
- 52 112 160	Untitled
- 52 112 160	Untitled
- 52 112 160	Untitled
- 56 112 160	Untitled
- 56 112 160	Untitled
- 56 112 160	Untitled
- 56 112 160	Untitled
- 56 112 160	Untitled
-160  68 108	Untitled
-156  68 108	Untitled
-156  68 108	Untitled
-152  72 112	Untitled
-152  72 112	Untitled
-148  72 112	Untitled
-144  72 112	Untitled
-144  76 116	Untitled
-140  76 116	Untitled
-140  76 116	Untitled
-136  76 116	Untitled
-132  80 120	Untitled
-132  80 120	Untitled
-128  80 120	Untitled
-128  80 120	Untitled
-124  84 124	Untitled
-120  84 124	Untitled
-120  84 124	Untitled
-116  84 124	Untitled
-116  88 128	Untitled
-112  88 128	Untitled
diff --git a/krita/data/palettes/China.gpl b/krita/data/palettes/China.gpl
deleted file mode 100644
index 670578ad6..000000000
--- a/krita/data/palettes/China.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: China
-#
-224  76 240	Untitled
-224  76 240	Untitled
-224  80 240	Untitled
-224  84 240	Untitled
-228  88 240	Untitled
-228  92 240	Untitled
-228  96 240	Untitled
-228  96 240	Untitled
-228 100 240	Untitled
-228 104 240	Untitled
-228 108 240	Untitled
-232 112 240	Untitled
-232 116 240	Untitled
-232 120 240	Untitled
-232 120 240	Untitled
-232 124 240	Untitled
-232 128 240	Untitled
-232 132 240	Untitled
-232 136 240	Untitled
-236 140 240	Untitled
-236 140 240	Untitled
-236 144 240	Untitled
-236 148 240	Untitled
-236 152 240	Untitled
-236 156 240	Untitled
-236 160 240	Untitled
-240 164 240	Untitled
-232 156 236	Untitled
-220 148 232	Untitled
-208 140 228	Untitled
-196 128 220	Untitled
-184 120 216	Untitled
-172 112 212	Untitled
-160 104 208	Untitled
-148  92 200	Untitled
-136  68 204	Untitled
-124  40 208	Untitled
-108  12 216	Untitled
-108  12 216	Untitled
-108  12 216	Untitled
-108  12 216	Untitled
-108  12 216	Untitled
-112   8 216	Untitled
-112   8 216	Untitled
-112   8 216	Untitled
-112   8 216	Untitled
-112   8 216	Untitled
-116   4 216	Untitled
-116   4 216	Untitled
-116   4 216	Untitled
-116   4 216	Untitled
-120   0 216	Untitled
-120  12 216	Untitled
-124  24 220	Untitled
-128  36 224	Untitled
-128  48 228	Untitled
-132  64 232	Untitled
-136  76 232	Untitled
-136  88 236	Untitled
-140 100 240	Untitled
-144 112 244	Untitled
-148 128 248	Untitled
-148 128 248	Untitled
-148 128 248	Untitled
-148 132 248	Untitled
-148 132 248	Untitled
-148 132 248	Untitled
-148 136 248	Untitled
-148 136 248	Untitled
-144 136 248	Untitled
-144 140 248	Untitled
-144 140 248	Untitled
-144 140 248	Untitled
-144 144 248	Untitled
-144 144 248	Untitled
-144 144 248	Untitled
-144 148 248	Untitled
-140 148 248	Untitled
-140 152 248	Untitled
-140 152 248	Untitled
-140 152 248	Untitled
-140 156 248	Untitled
-140 156 248	Untitled
-140 156 248	Untitled
-140 160 248	Untitled
-136 160 248	Untitled
-136 160 248	Untitled
-136 164 248	Untitled
-136 164 248	Untitled
-136 164 248	Untitled
-136 168 248	Untitled
-136 168 248	Untitled
-132 172 244	Untitled
-132 168 244	Untitled
-128 164 244	Untitled
-128 160 244	Untitled
-124 156 244	Untitled
-124 152 244	Untitled
-120 148 244	Untitled
-120 144 244	Untitled
-116 136 244	Untitled
-116 132 244	Untitled
-112 128 244	Untitled
-112 124 244	Untitled
-108 120 244	Untitled
-108 116 244	Untitled
-104 112 244	Untitled
-104 108 244	Untitled
-100 100 244	Untitled
-100  96 244	Untitled
- 96  92 244	Untitled
- 96  88 244	Untitled
- 92  84 244	Untitled
- 92  80 244	Untitled
- 88  76 244	Untitled
- 88  68 244	Untitled
- 84  64 244	Untitled
- 84  60 244	Untitled
- 80  56 244	Untitled
- 80  52 244	Untitled
- 76  48 244	Untitled
- 76  44 244	Untitled
- 72  40 244	Untitled
- 72  32 244	Untitled
- 68  28 244	Untitled
- 68  24 244	Untitled
- 64  20 244	Untitled
- 64  16 244	Untitled
- 60  12 244	Untitled
- 60   8 244	Untitled
- 56   0 248	Untitled
- 56   4 248	Untitled
- 56   8 244	Untitled
- 52  16 240	Untitled
- 52  20 236	Untitled
- 52  28 232	Untitled
- 48  32 228	Untitled
- 48  40 228	Untitled
- 44  44 224	Untitled
- 44  52 220	Untitled
- 44  56 216	Untitled
- 40  64 212	Untitled
- 40  68 208	Untitled
- 36  76 204	Untitled
- 36  80 204	Untitled
- 36  84 200	Untitled
- 32  92 196	Untitled
- 32  96 192	Untitled
- 32 104 188	Untitled
- 28 108 184	Untitled
- 28 116 184	Untitled
- 24 120 180	Untitled
- 24 128 176	Untitled
- 24 132 172	Untitled
- 20 140 168	Untitled
- 20 144 164	Untitled
- 16 152 160	Untitled
- 20 152 160	Untitled
- 24 152 160	Untitled
- 28 152 160	Untitled
- 32 152 160	Untitled
- 40 148 164	Untitled
- 44 148 164	Untitled
- 48 148 164	Untitled
- 52 148 164	Untitled
- 56 148 168	Untitled
- 64 144 168	Untitled
- 68 144 168	Untitled
- 72 144 168	Untitled
- 76 144 172	Untitled
- 80 144 172	Untitled
- 88 140 172	Untitled
- 92 140 172	Untitled
- 96 140 176	Untitled
-100 140 176	Untitled
-108 136 176	Untitled
-112 136 176	Untitled
-116 136 176	Untitled
-120 136 180	Untitled
-124 136 180	Untitled
-132 132 180	Untitled
-136 132 180	Untitled
-140 132 184	Untitled
-144 132 184	Untitled
-148 132 184	Untitled
-156 128 184	Untitled
-160 128 188	Untitled
-164 128 188	Untitled
-168 128 188	Untitled
-172 128 188	Untitled
-180 124 192	Untitled
-184 124 192	Untitled
-188 124 192	Untitled
-192 124 192	Untitled
-200 120 196	Untitled
-160 132 176	Untitled
-116 148 152	Untitled
- 76 160 128	Untitled
- 32 176 104	Untitled
- 32 176 104	Untitled
- 36 172 104	Untitled
- 40 168 108	Untitled
- 44 164 108	Untitled
- 48 160 108	Untitled
- 52 156 112	Untitled
- 56 152 112	Untitled
- 60 148 112	Untitled
- 64 144 116	Untitled
- 68 140 116	Untitled
- 72 136 120	Untitled
- 76 132 120	Untitled
- 80 128 120	Untitled
- 84 124 124	Untitled
- 88 120 124	Untitled
- 92 116 124	Untitled
- 96 112 128	Untitled
-100 108 128	Untitled
-104 104 128	Untitled
-108 100 132	Untitled
-108 100 132	Untitled
-112  96 136	Untitled
-116  92 136	Untitled
-120  88 136	Untitled
-124  84 140	Untitled
-128  80 140	Untitled
-132  76 140	Untitled
-136  72 144	Untitled
-140  68 144	Untitled
-144  64 144	Untitled
-148  60 148	Untitled
-152  56 148	Untitled
-156  52 152	Untitled
-160  48 152	Untitled
-164  44 152	Untitled
-168  40 156	Untitled
-172  36 156	Untitled
-176  32 156	Untitled
-180  28 160	Untitled
-184  24 160	Untitled
-188  20 164	Untitled
-188  24 164	Untitled
-184  28 164	Untitled
-180  32 164	Untitled
-176  36 164	Untitled
-176  40 164	Untitled
-172  48 164	Untitled
-168  52 164	Untitled
-164  56 164	Untitled
-164  60 164	Untitled
-160  64 164	Untitled
-156  72 164	Untitled
-152  76 164	Untitled
-152  80 164	Untitled
-148  84 164	Untitled
-144  88 164	Untitled
-140  96 168	Untitled
diff --git a/krita/data/palettes/Coldfire.gpl b/krita/data/palettes/Coldfire.gpl
deleted file mode 100644
index 6c25698ac..000000000
--- a/krita/data/palettes/Coldfire.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Coldfire
-#
-  0 172 252	Untitled
-  0 172 252	Untitled
-  0 172 252	Untitled
-  0 168 252	Untitled
-  0 164 252	Untitled
-  0 160 252	Untitled
-  0 156 252	Untitled
-  0 152 252	Untitled
-  0 152 252	Untitled
-  0 148 252	Untitled
-  0 144 252	Untitled
-  0 140 252	Untitled
-  0 136 252	Untitled
-  0 132 252	Untitled
-  0 132 252	Untitled
-  0 128 252	Untitled
-  0 124 252	Untitled
-  0 120 252	Untitled
-  0 116 252	Untitled
-  0 112 252	Untitled
-  0 112 252	Untitled
-  0 108 252	Untitled
-  0 104 252	Untitled
-  0 100 252	Untitled
-  0  96 252	Untitled
-  0  92 252	Untitled
-  0  92 252	Untitled
-  0  88 252	Untitled
-  0  84 252	Untitled
-  0  80 252	Untitled
-  0  76 252	Untitled
-  0  72 252	Untitled
-  0  68 252	Untitled
-  0  64 252	Untitled
-  0  60 252	Untitled
-  0  56 252	Untitled
-  0  52 252	Untitled
-  0  48 252	Untitled
-  0  44 252	Untitled
-  0  40 252	Untitled
-  0  36 252	Untitled
-  0  32 252	Untitled
-  0  28 252	Untitled
-  0  24 252	Untitled
-  0  20 252	Untitled
-  0  16 252	Untitled
-  0  12 252	Untitled
-  0   8 252	Untitled
-  0   4 252	Untitled
-  0   4 252	Untitled
-  4   4 248	Untitled
-  4   4 248	Untitled
-  8   4 244	Untitled
-  8   8 240	Untitled
- 12   8 240	Untitled
- 12   8 236	Untitled
- 16   8 232	Untitled
- 16  12 232	Untitled
- 20  12 228	Untitled
- 20  12 224	Untitled
- 24  12 224	Untitled
- 24  16 220	Untitled
- 28  16 216	Untitled
- 28  16 216	Untitled
- 32  16 212	Untitled
- 32  20 212	Untitled
- 36  20 208	Untitled
- 36  20 204	Untitled
- 40  20 204	Untitled
- 40  24 200	Untitled
- 44  24 196	Untitled
- 44  24 196	Untitled
- 48  24 192	Untitled
- 48  24 188	Untitled
- 52  28 188	Untitled
- 52  28 184	Untitled
- 56  28 180	Untitled
- 56  28 180	Untitled
- 60  32 176	Untitled
- 60  32 172	Untitled
- 64  32 172	Untitled
- 64  32 168	Untitled
- 68  36 168	Untitled
- 68  36 164	Untitled
- 72  36 160	Untitled
- 72  36 160	Untitled
- 76  40 156	Untitled
- 76  40 152	Untitled
- 80  40 152	Untitled
- 80  40 148	Untitled
- 84  44 144	Untitled
- 84  44 144	Untitled
- 88  44 140	Untitled
- 88  44 136	Untitled
- 92  48 136	Untitled
- 92  48 132	Untitled
- 96  48 128	Untitled
-100  48 128	Untitled
-100  48 124	Untitled
-104  52 124	Untitled
-104  52 120	Untitled
-108  52 116	Untitled
-108  52 116	Untitled
-112  56 112	Untitled
-112  56 108	Untitled
-116  56 108	Untitled
-116  56 104	Untitled
-120  60 100	Untitled
-120  60 100	Untitled
-124  60  96	Untitled
-124  60  92	Untitled
-128  64  92	Untitled
-128  64  88	Untitled
-132  64  88	Untitled
-132  64  84	Untitled
-136  68  80	Untitled
-136  68  80	Untitled
-140  68  76	Untitled
-140  68  72	Untitled
-144  72  72	Untitled
-144  72  68	Untitled
-148  72  64	Untitled
-148  72  64	Untitled
-152  72  60	Untitled
-152  76  56	Untitled
-156  76  56	Untitled
-156  76  52	Untitled
-160  76  48	Untitled
-160  80  48	Untitled
-164  80  44	Untitled
-164  80  44	Untitled
-168  80  40	Untitled
-168  84  36	Untitled
-172  84  36	Untitled
-172  84  32	Untitled
-176  84  28	Untitled
-176  88  28	Untitled
-180  88  24	Untitled
-180  88  20	Untitled
-184  88  20	Untitled
-184  92  16	Untitled
-188  92  12	Untitled
-188  92  12	Untitled
-192  92   8	Untitled
-196  96   4	Untitled
-196  96   4	Untitled
-196 100   4	Untitled
-196 100   4	Untitled
-196 104   4	Untitled
-200 108   4	Untitled
-200 108   4	Untitled
-200 112   4	Untitled
-200 112   4	Untitled
-200 116   4	Untitled
-204 120   4	Untitled
-204 120   4	Untitled
-204 124   4	Untitled
-204 124   4	Untitled
-208 128   4	Untitled
-208 132   4	Untitled
-208 132   4	Untitled
-208 136   4	Untitled
-208 136   4	Untitled
-212 140   4	Untitled
-212 144   4	Untitled
-212 144   4	Untitled
-212 148   4	Untitled
-216 152   4	Untitled
-216 152   4	Untitled
-216 156   4	Untitled
-216 156   4	Untitled
-216 160   4	Untitled
-220 164   4	Untitled
-220 164   4	Untitled
-220 168   4	Untitled
-220 168   4	Untitled
-224 172   4	Untitled
-224 176   4	Untitled
-224 176   4	Untitled
-224 180   4	Untitled
-224 180   4	Untitled
-228 184   4	Untitled
-228 188   4	Untitled
-228 188   4	Untitled
-228 192   4	Untitled
-228 192   4	Untitled
-232 196   4	Untitled
-232 200   4	Untitled
-232 200   4	Untitled
-232 204   4	Untitled
-236 208   4	Untitled
-236 208   4	Untitled
-236 212   4	Untitled
-236 212   4	Untitled
-236 216   4	Untitled
-240 220   4	Untitled
-240 220   4	Untitled
-240 224   4	Untitled
-240 224   4	Untitled
-244 228   4	Untitled
-244 232   4	Untitled
-244 232   4	Untitled
-244 236   4	Untitled
-244 236   4	Untitled
-248 240   4	Untitled
-248 244   4	Untitled
-248 244   4	Untitled
-248 248   4	Untitled
-252 252   0	Untitled
-252 252 104	Untitled
-252 252 104	Untitled
-252 252 108	Untitled
-252 252 112	Untitled
-252 252 116	Untitled
-252 252 120	Untitled
-252 252 120	Untitled
-252 252 124	Untitled
-252 252 128	Untitled
-252 252 132	Untitled
-252 252 136	Untitled
-252 252 136	Untitled
-252 252 140	Untitled
-252 252 144	Untitled
-252 252 148	Untitled
-252 252 152	Untitled
-252 252 152	Untitled
-252 252 156	Untitled
-252 252 160	Untitled
-252 252 164	Untitled
-252 252 168	Untitled
-252 252 168	Untitled
-252 252 172	Untitled
-252 252 176	Untitled
-252 252 180	Untitled
-252 252 184	Untitled
-252 252 184	Untitled
-252 252 188	Untitled
-252 252 192	Untitled
-252 252 196	Untitled
-252 252 200	Untitled
-252 252 200	Untitled
-252 252 204	Untitled
-252 252 208	Untitled
-252 252 212	Untitled
-252 252 216	Untitled
-252 252 216	Untitled
-252 252 220	Untitled
-252 252 224	Untitled
-252 252 228	Untitled
-252 252 232	Untitled
-252 252 232	Untitled
-252 252 236	Untitled
-252 252 240	Untitled
-252 252 244	Untitled
-252 252 248	Untitled
-252 252 252	grey99
diff --git a/krita/data/palettes/Cool_Colors.gpl b/krita/data/palettes/Cool_Colors.gpl
deleted file mode 100644
index 3a1b83a5c..000000000
--- a/krita/data/palettes/Cool_Colors.gpl
+++ /dev/null
@@ -1,11 +0,0 @@
-GIMP Palette
-Name: Cool Colors
-#
- 17  42 198	Untitled
- 83 155 226	Untitled
- 22  16 102	Untitled
- 64  35  76	Untitled
-  7  63 147	Untitled
- 44 108 204	Untitled
- 38  81  33	Untitled
-  4  66  44	Untitled
diff --git a/krita/data/palettes/Cranes.gpl b/krita/data/palettes/Cranes.gpl
deleted file mode 100644
index 6ea0714ed..000000000
--- a/krita/data/palettes/Cranes.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Cranes
-#
-  8   8   8	grey3
-192 176 144	Untitled
-192 164 128	Untitled
- 80  72  68	Untitled
-112 140  88	Untitled
-104 132  96	Untitled
- 92 104  84	Untitled
- 24   8  12	Untitled
- 96 108  92	Untitled
-128 104  76	Untitled
- 44  28  24	Untitled
-156 140 116	Untitled
-156 148 116	Untitled
- 68  68  60	Untitled
-212 196 148	Untitled
-144 136 108	Untitled
-160 148 128	Untitled
-216 220 216	Untitled
- 44  28  40	Untitled
- 68  12  16	Untitled
- 12   8  32	Untitled
- 56   8  48	Untitled
- 48   8  40	Untitled
- 44  20  40	Untitled
-104 104  92	Untitled
- 52  28  48	Untitled
-156 176 124	Untitled
-124 160  96	Untitled
- 44  40  24	Untitled
-168 168 172	Untitled
-196 188 168	Untitled
-  8  28  20	Untitled
-160  60  60	Untitled
-180 144 100	Untitled
-192 144 112	Untitled
-132  40  60	Untitled
- 48   8  24	Untitled
-156 176 144	Untitled
- 80  84  64	Untitled
-136 148 136	Untitled
-120 160 116	Untitled
- 44  20  24	Untitled
-128  84  80	Untitled
-128  20  56	Untitled
-168  68  76	Untitled
- 64  56  44	Untitled
- 56  40  40	Untitled
-156 172 164	Untitled
-100  92  72	Untitled
-124 116  88	Untitled
- 32   8  28	Untitled
-176 180 180	Untitled
-156  44  68	Untitled
-172 176 156	Untitled
-176 168 144	Untitled
-188   8  88	Untitled
-148   8  52	Untitled
- 20  48  52	Untitled
- 68  60  68	Untitled
-216 204 160	Untitled
-140 160 112	Untitled
-112 116  88	Untitled
-152 160 164	Untitled
-116 156 104	Untitled
-192 192 184	Untitled
- 80  84  72	Untitled
- 56  24  24	Untitled
- 24  36  40	Untitled
- 48  56  52	Untitled
- 92  84  64	Untitled
-180 160 120	Untitled
-112 100  76	Untitled
-156 120  88	Untitled
- 96  96  84	Untitled
-148 160 152	Untitled
-192 200 144	Untitled
- 68  56  56	Untitled
-100  48  96	Untitled
-108 144 100	Untitled
-188 180 160	Untitled
- 60  48  68	Untitled
- 80  48  52	Untitled
-188  56  72	Untitled
-196 176 128	Untitled
-220 180 164	Untitled
-132 116 100	Untitled
- 68  36  52	Untitled
-168 132 100	Untitled
-180 168 132	Untitled
-148 156 140	Untitled
-120 128 108	Untitled
-108  12  48	Untitled
-108  80  68	Untitled
- 44  40  56	Untitled
-140 124 104	Untitled
- 24  28  20	Untitled
-204 172 120	Untitled
-164 156 132	Untitled
-116 104  96	Untitled
-144 152 148	Untitled
- 84  92  72	Untitled
-120 148 100	Untitled
-120 112 108	Untitled
- 60  64  56	Untitled
-204 176 140	Untitled
-212 140 128	Untitled
- 80  56  64	Untitled
-152 140 108	Untitled
- 72  72  76	Untitled
- 20  12  48	Untitled
-140 152 128	Untitled
-208 100  88	Untitled
-  8  36  48	Untitled
- 80 104  68	Untitled
- 44  40   8	Untitled
- 76  60  84	Untitled
- 56  40  24	Untitled
-112  52  64	Untitled
-212 124 112	Untitled
-152  72  76	Untitled
-212 124 128	Untitled
- 88  88  96	Untitled
- 16  68   8	Untitled
- 36   8  40	Untitled
-128 168 112	Untitled
-208 212 196	Untitled
-216 208 176	Untitled
- 76  68  56	Untitled
- 40  44  28	Untitled
- 32  20  80	Untitled
-136  64  68	Untitled
- 60  76  64	Untitled
-200 104  96	Untitled
- 92  84  80	Untitled
-164 148 116	Untitled
-116 108  84	Untitled
-148 128 100	Untitled
- 80  80  84	Untitled
-136 140 128	Untitled
- 88  16  76	Untitled
-124  12   8	Untitled
-100  96 104	Untitled
-132  52  36	Untitled
- 56  28  40	Untitled
-196  96  88	Untitled
- 64  84  44	Untitled
-164 188 132	Untitled
-204 196 168	Untitled
-216 220 208	Untitled
-136 172 100	Untitled
-148 188 124	Untitled
- 52  72  32	Untitled
-108 108 116	Untitled
-136 172 132	Untitled
- 60  60  64	Untitled
-108  92  92	Untitled
-216 156 144	Untitled
-104  96  84	Untitled
-172 180 172	Untitled
-140 108  88	Untitled
-160 164 156	Untitled
-148 132 108	Untitled
-128 140 120	Untitled
- 40  84  56	Untitled
-132  56 108	Untitled
- 96  32  56	Untitled
-164  88  84	Untitled
- 96 104  72	Untitled
-172 192 152	Untitled
-192 196 172	Untitled
-208 108 100	Untitled
- 68  84  72	Untitled
-140 128  96	Untitled
-224 228 224	Untitled
-128 128 132	Untitled
- 76  96  56	Untitled
- 88  76 100	Untitled
- 72  12  52	Untitled
- 56  44  56	Untitled
- 68  48  68	Untitled
- 60  20  64	Untitled
- 44  12  56	Untitled
- 84  68  76	Untitled
- 44   8   8	Untitled
-148 136 100	Untitled
-148 180 108	Untitled
-184  52  20	Untitled
-  0   0   0			grey0
- 40   0   0	Untitled
-  0  56  92	Untitled
-  0   0   4	Untitled
-  0   0   0			grey0
- 60  56  56	Untitled
- 56  20  40	Untitled
-192  28  36	Untitled
- 72  80  60	Untitled
- 72  92  68	Untitled
- 88 100  76	Untitled
- 88 116  72	Untitled
-  0   0   0	grey0
- 56  40  56	Untitled
- 72  76  68	Untitled
-128  48  52	Untitled
-168  36  60	Untitled
- 76  96  76	Untitled
- 80 108  80	Untitled
-128 120 108	Untitled
-184  72  80	Untitled
-104 128  84	Untitled
-136 132 108	Untitled
-148 140 116	Untitled
-112 152  92	Untitled
-208 184 132	Untitled
-104 116 100	Untitled
-132 128 116	Untitled
-136 120  88	Untitled
-  0   0   0	grey0
-116 124 120	Untitled
-136 152 152	Untitled
-144 156 160	Untitled
-156 168 176	Untitled
-184 184 176	Untitled
-152 172 184	Untitled
-184 188 188	Untitled
-196 200 196	Untitled
-212 212 208	Untitled
-148 164 172	Untitled
- 84  96  84	Untitled
- 96   8  20	Untitled
-100 116  80	Untitled
- 96 120  92	Untitled
-164 176 184	Untitled
-204 188 152	Untitled
-128 128 100	Untitled
- 44  40  40	Untitled
-204 204 188	Untitled
- 92 128  80	Untitled
-100 140  88	Untitled
- 56  48  44	Untitled
-128 148 112	Untitled
- 36  28  40	Untitled
-196 160 112	Untitled
-124 116  96	Untitled
-104 104  84	Untitled
-132 140 140	Untitled
-140 132 116	Untitled
-204 208 200	Untitled
-196  80  84	Untitled
-116 112  96	Untitled
- 88 116  84	Untitled
- 64  44  56	Untitled
- 44  24   8	Untitled
-196 116 116	Untitled
-180 148 116	Untitled
-136 176 116	Untitled
-148 140 124	Untitled
diff --git a/krita/data/palettes/DMC.gpl b/krita/data/palettes/DMC.gpl
deleted file mode 100644
index 7e9a0c0c3..000000000
--- a/krita/data/palettes/DMC.gpl
+++ /dev/null
@@ -1,458 +0,0 @@
-GIMP Palette
-Name: DMC
-#
-255 255 255	BLANC
-255 247 231	ECRU
-207   0  83	150 Bright Red
-255 203 215	151 Pink
-225 161 161	152 Flesh - DK
-234 197 235	153 Lilac
- 75  35  58	154 Red - VY DK
-151 116 182	155 Forget-me-not Blue
-133 119 180	156 Blue - MED
-181 184 234	157 Blue - LT
- 57  48 104	158 Blue - DK
-188 181 222	159 Petrol Blue - LT
-129 120 169	160 Petrol Blue - MED
- 96  86 139	161 Petrol Blue - DK
-202 231 240	162 Baby Blue - LT
- 85 122  96	163 Green
-186 228 182	164 Green - LT
-225 244 119	165 Green - BRIGHT
-173 194  56	166 Lime Green
-133  93  49	167 Khaki Brown
-177 174 183	168 Silver Grey
-130 125 125	169 Pewter Grey
-148  91 128	208 Lavender - VY DK
-206 148 186	209 Lavender - DK
-236 207 225	210 Lavender - MED
-243 218 228	211 Lavender - LT
-156  41  74	221 Shell Pink - VY DK
-219 128 115	223 Shell Pink - LT
-255 199 176	224 Shell Pink - VY LT
-255 240 228	225 Shell Pink - ULT VY LT
-143  57  38	300 Mahogany - VY DK
-209 102  84	301 Mahogany - MED
-188   0  97	304 Christmas Red - MED
-255 231 109	307 Lemon
-214  43  91	309 Rose - DEEP
-  0   0  0	310 Black
-  0  79  97	311 Navy Blue - MED
- 58  84 103	312 Navy Blue - LT
-163  90  91	315 Antique Mauve - VY DK
-220 141 141	316 Antique Mauve - MED
-167 139 136	317 Pewter Grey
-197 198 190	318 Steel Grey - LT
- 85  95  82	319 Pistachio Green - VY DK
-138 153 120	320 Pistachio Green - MED
-231  18  97	321 Christmas Red
- 81 109 135	322 Navy Blue - VY LT
-188  22  65	326 Rose - VY DEEP
- 61   0 103	327 Violet - DK
-127  84 130	333 Blue Violet - VY DK
-115 140 170	334 Baby Blue - MED
-219  36  79	335 Rose
- 36  73 103	336 Navy Blue
-162 121 164	340 Blue Violet - MED
-145 180 197	341 Blue Violet - LT
-194  36  67	347 Salmon - VY DK
-220  61  91	349 Coral - DK
-237  69  90	350 Coral - MED
-255 128 135	351 Coral
-255 157 144	352 Coral - LT
-255 196 184	353 Peach Flesh
-189  73  47	355 Terracotta - DK
-226 114  91	356 Terracotta - MED
- 95 112  91	367 Pistachio Green - DK
-181 206 162	368 Pistachio Green - LT
-243 250 209	369 Pistachio Green - VY LT
-184 138  87	370 Mustard - MED
-196 155 100	371 Mustard
-203 162 107	372 Mustard - LT
-157  60  39	400 Mahogany - DK
-255 190 164	402 Mahogany - VY LT
-194 101  76	407 Sportsman Flesh - VY DK
-109  95  95	413 Pewter Grey - DK
-167 139 136	414 Steel Grey - DK
-221 221 218	415 Pearl Grey
-140  91  43	420 Hazelnut Brown - DK
-237 172 123	422 Hazelnut Brown - LT
-151  84  20	433 Brown - MED
-178 103  70	434 Brown - LT
-187 107  57	435 Brown - VY LT
-231 152 115	436 Tan
-238 171 121	437 Tan - LT
-255 176   0	444 Lemon - DK
-255 255 190	445 Lemon - LT
-179 151 143	451 Shell Grey - DK
-210 185 175	452 Shell Grey - MED
-235 207 185	453 Shell Grey - LT
-116 114  92	469 Avocado Green
-133 143 108	470 Avocado Green - LT
-176 187 140	471 Avocado Green - VY LT
-238 255 182	472 Avocado Green - ULT LT
-187   0  97	498 Christmas Red - LT
- 43  57  41	500 Blue Green - VY DK
- 67  85  73	501 Blue Green - DK
-134 158 134	502 Blue Green
-195 206 183	503 Blue Green - MED
-206 221 193	504 Blue Green - LT
- 58  99  64	505 Grass Green - DK
- 16 127 135	517 Wedgwood - MED
-102 148 154	518 Wedgwood - LT
-194 209 207	519 Sky Blue
- 55  73  18	520 Fern Green - DK
-159 169 142	522 Fern Green
-172 183 142	523 Fern Green - LT
-205 182 158	524 Fern Green - VY LT
- 85  85  89	535 Ash Grey - VY LT
-239 214 188	543 Beige Brown - ULT VY LT
-109  18  97	550 Violet - VY LT
-146  85 130	552 Violet - MED
-160 100 146	553 Violet
-243 206 225	554 Violet - LT
- 59  96  76	561 Jade - VY DK
- 97 134  97	562 Jade - MED
-182 212 180	563 Jade - LT
-214 230 204	564 Jade - VY LT
-  0 103   0	580 Moss Green - DK
-151 152  49	581 Moss Green
-128 151 132	597 Turquoise
-208 223 205	598 Turquoise - LT
-208  57 106	600 Cranberry - VY DK
-222  57 105	601 Cranberry - DK
-231  84 122	602 Cranberry - MED
-255 115 140	603 Cranberry
-255 189 202	604 Cranberry - LT
-255 207 214	605 Cranberry - VY LT
-255   0   0	606 Bright Orange-Red
-255  91   0	608 Bright Orange
-151 104  84	610 Drab Brown - VY DK
-158 109  91	611 Drab Brown - DK
-203 152 103	612 Drab Brown - MED
-219 176 122	613 Drab Brown - LT
-162  77  52	632 Negro Flesh - MED
-163 163 157	640 Beige Grey - VY DK
-174 176 170	642 Beige Grey - DK
-224 224 215	644 Beige Grey - MED
-113 113 113	645 Beaver Grey - VY DK
-121 121 121	646 Beaver Grey - DK
-190 190 185	647 Beaver Grey - MED
-202 202 202	648 Beaver Grey - LT
-213  39  86	666 Christmas Red - LT
-255 206 158	676 Old Gold - LT
-255 231 182	677 Old Gold - VY LT
-209 140 103	680 Old Gold - DK
-  0  91   6	699 Christmas Green
-  0  96  47	700 Christmas Green - BRIGHT
- 79 108  69	701 Christmas Green - LT
- 79 121  66	702 Kelly Green
-121 144  76	703 Chartreuse
-165 164 103	704 Chartreuse - BRIGHT
-245 240 219	712 Cream
-219  55 121	718 Plum
-200  36  43	720 Orange Spice - DK
-255 115  97	721 Orange Spice - MED
-255 146 109	722 Orange Spice - LT
-255 200 124	725 Topaz
-255 224 128	726 Topaz - LT
-255 235 168	727 Topaz - VY LT
-242 174  63	728 Golden Yellow
-243 176 128	729 Old Gold - MED
-132 102   0	730 Olive Green - VY DK
-140 103   0	731 Olive Green - DK
-145 104   0	732 Olive Green
-206 155  97	733 Olive Green - MED
-221 166 107	734 Olive Green - LT
-244 195 139	738 Tan - VY LT
-244 233 202	739 Tan - ULT VY LT
-255 131  19	740 Tangerine
-255 142  4	741 Tangerine - MED
-255 183  85	742 Tangerine - LT
-255 230 146	743 Yellow - MED
-255 239 170	744 Yellow - PALE
-255 240 197	745 Yellow - LT PALE
-246 234 219	746 Off White
-240 247 239	747 Sky Blue - VY LT
-251 227 209	754 Peach Flesh - LT
-255 177 147	758 Terracotta - VY LT
-249 160 146	760 Salmon
-255 201 188	761 Salmon - LT
-232 232 229	762 Pearl Grey - VY LT
-231 249 203	772 Pine Green - LT
-247 246 248	775 Baby Blue - VY LT
-255 177 174	776 Pink - MED
-155   0  66	777 Red - DEEP
-255 199 184	778 Antique Mauve - VY LT
- 83  51  45	779 Brown
-181  98  46	780 Topaz - ULT VY DK
-181 107  56	781 Topaz - VY DK
-204 119  66	782 Topaz - DK
-225 146  85	783 Topaz - MED
- 71  55  93	791 Cornflower Blue - VY DK
- 97  97 128	792 Cornflower Blue - DK
-147 139 164	793 Cornflower Blue - MED
-187 208 218	794 Cornflower Blue - LT
- 30  58  95	796 Royal Blue - DK
- 30  66  99	797 Royal Blue
-103 115 141	798 Delft - DK
-132 156 182	799 Delft - MED
-233 238 233	800 Delft - PALE
-123  71  20	801 Coffee Brown - DK
- 32  39  84	803 Blue - DEEP
- 30 130 133	806 Peacock Blue - DK
-128 167 160	807 Peacock Blue
-190 193 205	809 Delft
-175 195 205	813 Blue - LT
-162   0  88	814 Garnet - DK
-166   0  91	815 Garnet - MED
-179   0  91	816 Garnet
-219  24  85	817 Coral Red - VY DK
-255 234 235	818 Baby Pink
-248 247 221	819 Baby Pink - LT
- 30  54  85	820 Royal Blue - VY DK
-242 234 219	822 Beige Grey - LT
-  0   0  73	823 Navy Blue - DK
- 71  97 116	824 Blue - VY DK
- 85 108 128	825 Blue - DK
-115 138 153	826 Blue - MED
-213 231 232	827 Blue - VY LT
-237 247 238	828 Blue - ULT VY LT
-130  90   8	829 Golden Olive - VY DK
-136  95  18	830 Golden Olive - DK
-144 103  18	831 Golden Olive - MED
-178 119  55	832 Golden Olive
-219 182 128	833 Golden Olive - LT
-242 209 142	834 Golden Olive - VY LT
- 94  56  27	838 Beige Brown - VY DK
-109  66  39	839 Beige Brown - DK
-128  85  30	840 Beige Brown - MED
-188 134 107	841 Beige Brown - LT
-219 194 164	842 Beige Brown - VY LT
-107 103 102	844 Beaver Brown - ULT DK
-153  92  48	868 Hazelnut Brown - VY DK
-153  92  48	869 Hazelnut Brown - VY DK
- 79  86  76	890 Pistachio Green - ULT DK
-241  49  84	891 Carnation - DK
-249  90  97	892 Carnation - MED
-243 149 157	893 Carnation - LT
-255 194 191	894 Carnation - VY LT
- 89  92  78	895 Hunter Green - VY DK
-118  55  19	898 Coffee Brown - VY DK
-233 109 115	899 Rose - MED
-206  43   0	900 Burnt Orange - DK
-138  24  77	902 Garnet - VY DK
- 78  95  57	904 Parrot Green - VY DK
- 98 119  57	905 Parrot Green - DK
-143 163  89	906 Parrot Green - MED
-185 200 102	907 Parrot Green - LT
- 49 105  85	909 Emerald Green - VY DK
- 48 116  91	910 Emerald Green - DK
- 49 128  97	911 Emerald Green - MED
-115 158 115	912 Emerald Green - LT
-153 188 149	913 Nile Green - MED
-170  24  91	915 Plum - DK
-171  22  95	917 Plum - MED
-168  68  76	918 Red Copper - DK
-180  75  82	919 Red Copper
-197  94  88	920 Copper - MED
-206 103  91	921 Copper
-237 134 115	922 Copper - LT
- 86  99 100	924 Grey Green - VY DK
- 96 116 115	926 Grey Green - DK
-200 198 194	927 Grey Green - LT
-225 224 216	928 Grey Green - VY LT
-102 122 140	930 Antique Blue - DK
-124 135 145	931 Antique Blue - MED
-182 186 194	932 Antique Blue - LT
- 62  59  40	934 Black Avocado Green
- 67  63  47	935 Avocado Green - DK
- 69  69  49	936 Avocado Green - VY DK
- 73  86  55	937 Avocado Green - MED
- 99  39  16	938 Coffee Brown - ULT DK
-  0   0  49	939 Navy Blue - VY DK
-  0 162 117	943 Aquamarine - MED
-255 206 164	945 Flesh - MED
-244  73   0	946 Burnt Orange - MED
-255  91   0	947 Burnt Orange
-255 243 231	948 Peach Flesh - VY LT
-239 162 127	950 Sportsman Flesh
-255 229 188	951 Flesh
-170 213 164	954 Nile Green
-214 230 204	955 Nile Green - LT
-255 109 115	956 Geranium
-255 204 208	957 Geranium - PALE
-  0 160 130	958 Sea Green - DK
-171 206 177	959 Sea Green - MED
-243 108 123	961 Dusty Rose - DK
-253 134 141	962 Dusty Rose - MED
-255 233 233	963 Dusty Rose - ULT VY LT
-208 224 210	964 Sea Green - LT
-206 213 176	966 Baby Green - MED
-255 194 172	967 Peach - LT
-255 117  24	970 Pumpkin - LT
-255 106   0	971 Pumpkin
-255 146   0	972 Canary - DEEP
-255 194  67	973 Canary - BRIGHT
-158  67  18	975 Golden Brown - DK
-246 141  57	976 Golden Brown - MED
-255 164  73	977 Golden Brown - LT
- 58  82  65	986 Forest Green - VY DK
- 83  97  73	987 Forest Green - DK
-134 145 110	988 Forest Green - MED
-134 153 110	989 Forest Green
- 47  91  73	991 Aquamarine - DK
-146 183 165	992 Aquamarine
-192 224 200	993 Aquamarine - LT
-  0 123 134	995 Electric Blue - DK
-170 222 225	996 Electric Blue - MED
-123  91  64	3011 Khaki Green - DK
-170 134 103	3012 Khaki Green - MED
-208 195 164	3013 Khaki Green - LT
-115  91  93	3021 Brown Grey - VY DK
-172 172 170	3022 Brown Grey - MED
-198 190 173	3023 Brown Grey - LT
-210 208 205	3024 Brown Grey - VY LT
- 84  56  23	3031 Mocha Brown - VY DK
-188 156 120	3032 Mocha Brown - MED
-239 219 190	3033 Mocha Brown - VY LT
-190 155 167	3041 Antique Violet - MED
-225 205 200	3042 Antique Violet - LT
-216 151 105	3045 Yellow Beige - DK
-229 193 139	3046 Yellow Beige - MED
-255 236 211	3047 Yellow Beige - LT
- 85  73   0	3051 Green Grey - DK
-137 141 114	3052 Green Grey - MED
-187 179 148	3053 Green Grey
-194 101  76	3064 Sportsman Flesh - VY DK
-233 233 223	3072 Beaver Grey - VY LT
-255 255 220	3078 Golden Yellow - VY LT
-202 226 229	3325 Baby Blue - LT
-255 157 150	3326 Rose - LT
-188  64  85	3328 Salmon - DK
-255 123 103	3340 Apricot - MED
-255 172 162	3341 Apricot
- 97 100  82	3345 Hunter Green - DK
-120 134 107	3346 Hunter Green
-128 152 115	3347 Yellow Green - MED
-225 249 190	3348 Yellow Green - LT
-201  79  91	3350 Dusty Rose - ULT DK
-255 214 209	3354 Dusty Rose - LT
- 96  95  84	3362 Pine Green - DK
-116 127  96	3363 Pine Green - MED
-161 167 135	3364 Pine Green
- 83  37  16	3371 Black Brown
-231  79 134	3607 Plum - LT
-247 152 182	3608 Plum - VY LT
-255 214 229	3609 Plum - ULT LT
-161  53  79	3685 Mauve - DK
-203  78  97	3687 Mauve
-250 151 144	3688 Mauve - MED
-255 213 216	3689 Mauve - LT
-255  85  91	3705 Melon - DK
-255 128 109	3706 Melon - MED
-254 212 219	3708 Melon - LT
-230 101 107	3712 Salmon - MED
-253 229 217	3713 Salmon - VY LT
-255 211 212	3716 Dusty Rose - VY LT
-184  75  77	3721 Shell Pink - DK
-184  89  88	3722 Shell Pink - MED
-195 118 123	3726 Antique Mauve - DK
-255 199 196	3727 Antique Mauve - LT
-209  93 103	3731 Dusty Rose - VY DK
-255 154 148	3733 Dusty Rose
-156 125 133	3740 Antique Violet - DK
-235 235 231	3743 Antique Violet - VY LT
-149 102 162	3746 Blue Violet - DK
-230 236 232	3747 Blue Violet - VY LT
- 12  91 108	3750 Antique Blue - VY DK
-194 209 206	3752 Antique Blue - VY LT
-237 247 247	3753 Antique Blue - ULT VY LT
-158 176 206	3755 Baby Blue
-248 248 252	3756 Baby Blue - ULT VY LT
-102 142 152	3760 Wedgwood
-227 234 230	3761 Sky Blue - LT
- 24 128 134	3765 Peacock Blue - VY DK
- 24 101 111	3766 Peacock Blue - LT
- 92 110 108	3768 Grey Green - DK
-255 250 224	3770 Flesh - VY LT
-232 172 155	3771 Peach - DK
-173  83  62	3772 Negro Flesh
-231 134 103	3773 Sportsman Flesh - MED
-255 220 193	3774 Sportsman Flesh - VY LT
-221 109  91	3776 Mahogany - LT
-191  64  36	3777 Terracotta - VY DK
-237 122 100	3778 Terracotta - LT
-255 177 152	3779 Terracotta - ULT VY LT
-113  71  42	3781 Mocha Brown - DK
-206 175 144	3782 Mocha Brown - LT
-139 109 115	3787 Brown Grey - DK
-140 117 109	3790 Beige Grey - ULT DK
- 81  76  83	3799 Pewter Grey - VY DK
-231  71  79	3801 Christmas Red - LT
-127  43  59	3802 Antique Mauve - VY DK
-171  51  87	3803 Mauve - MED
-231  59 127	3804 Cyclamen Pink - DK
-243  71 139	3805 Cyclamen Pink
-255  87 155	3806 Cyclamen Pink - LT
- 59  75 131	3807 Cornflower Blue
- 11  83  95	3808 Turquoise - ULT VY DK
- 31 107 123	3809 Turquoise - VY DK
- 59 135 151	3810 Turquoise - DK
-187 227 235	3811 Turquoise - VY LT
- 23 147 119	3812 Sea Green - VY DK
-151 195 171	3813 Blue Green - LT
- 35 143 107	3814 Aquamarine
- 99 127 107	3815 Celadon Green - DK
-135 167 147	3816 Celadon Green
-175 207 191	3817 Celadon Green - LT
-  0 107  46	3818 Emerald Green - ULT VY DK
-231 235 123	3819 Moss Green - LT
-231 179  75	3820 Straw - DK
-243 195  91	3821 Straw
-255 211 107	3822 Straw - LT
-255 251 227	3823 Yellow - ULT PALE
-247 191 183	3824 Apricot - LT
-255 171 131	3825 Pumpkin - PALE
-227 155  79	3826 Golden Brown
-247 187 119	3827 Golden Brown - PALE
-187 135  63	3828 Hazelnut Brown
-203 111   0	3829 Old Gold - VY DK
-199  79  71	3830 Terracotta
-170  68  77	3831 Raspberry - DK
-215  95 104	3832 Raspberry - MED
-224 124 134	3833 Raspberry - LT
- 76  50  69	3834 Grape - DK
-113  80 105	3835 Grape - MED
-175 130 158	3836 Grape - LT
-109  69 137	3837 Lavender - ULT DK
- 80  90 162	3838 Lavender Blue - DK
-107 123 189	3839 Lavender Blue - MED
-162 186 238	3840 Lavender Blue - LT
-199 221 235	3841 Baby Blue - PALE
- 12  65  88	3842 Wedgwood - DK
- 12 170 224	3843 Electric Blue
- 43  91 155	3844 Bright Turquoise - DK
- 63 145 213	3845 Bright Turquoise - MED
- 82 173 234	3846 Bright Turquoise - LT
- 48  77  68	3847 Teal Green - DK
- 65 105  97	3848 Teal Green - MED
- 90 165 140	3849 Teal Green - LT
- 50 125 100	3850 Bright Green - DK
- 90 165 140	3851 Bright Green - LT
-220 163  59	3852 Straw - VY DK
-229 121  75	3853 Autumn Gold - DK
-248 171  99	3854 Autumn Gold - MED
-253 228 174	3855 Autumn Gold - LT
-255 190 130	3856 Mahogany - ULT VY LT
- 72  43  47	3857 Rosewood - DK
-102  63  65	3858 Rosewood - MED
-177 114 106	3859 Rosewood - LT
- 98  77  76	3860 Cocoa
-146 121 120	3861 Cocoa - LT
-107  83  71	3862 Mocha Beige - DK
-134 106 88	3863 Mocha Beige - MED
-196 166 141	3864 Mocha Beige - LT
-255 251 244	3865 Winter White
-245 233 213	3866 Mocha Brown - ULT VY LT
-255 255 255	B5200 Bright Wite
diff --git a/krita/data/palettes/Dark_pastels.gpl b/krita/data/palettes/Dark_pastels.gpl
deleted file mode 100644
index 3802cd00d..000000000
--- a/krita/data/palettes/Dark_pastels.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Dark Pastels
-#
- 56 104 184	Untitled
- 52 104 180	Untitled
- 52 104 180	Untitled
- 52 104 176	Untitled
- 52 104 176	Untitled
- 48 104 172	Untitled
- 48 104 172	Untitled
- 48 100 168	Untitled
- 48 100 168	Untitled
- 44 100 164	Untitled
- 44 100 164	Untitled
- 44 100 164	Untitled
- 44 100 160	Untitled
- 44 100 160	Untitled
- 40 100 156	Untitled
- 40 100 156	Untitled
- 40  96 152	Untitled
- 40  96 152	Untitled
- 36  96 148	Untitled
- 36  96 148	Untitled
- 36  96 144	Untitled
- 36  96 144	Untitled
- 32  96 140	Untitled
- 32  96 140	Untitled
- 32  96 136	Untitled
- 32  92 136	Untitled
- 28  92 132	Untitled
- 28  92 132	Untitled
- 28  92 128	Untitled
- 28  92 128	Untitled
- 24  92 124	Untitled
- 24  92 124	Untitled
- 24  92 120	Untitled
- 24  92 120	Untitled
- 24  92 120	Untitled
- 60 108 112	Untitled
- 96 120 104	Untitled
-128 132 100	Untitled
-164 148  92	Untitled
-200 160  84	Untitled
-232 172  80	Untitled
-228 168  84	Untitled
-228 164  88	Untitled
-224 160  88	Untitled
-224 156  92	Untitled
-224 152  92	Untitled
-220 148  96	Untitled
-220 144  96	Untitled
-220 144 100	Untitled
-216 140 100	Untitled
-216 136 104	Untitled
-216 132 104	Untitled
-212 128 108	Untitled
-212 124 112	Untitled
-208 120 112	Untitled
-208 120 116	Untitled
-208 116 116	Untitled
-204 112 120	Untitled
-204 108 120	Untitled
-204 104 124	Untitled
-200 100 124	Untitled
-200  96 128	Untitled
-200  96 128	Untitled
-196 100 124	Untitled
-192 104 124	Untitled
-188 108 124	Untitled
-184 112 124	Untitled
- 76 196 112	Untitled
- 72 200 112	Untitled
- 64 204 108	Untitled
- 60 208 108	Untitled
- 56 208 108	Untitled
- 60 204 112	Untitled
- 64 204 112	Untitled
- 64 204 116	Untitled
- 68 200 116	Untitled
- 68 200 120	Untitled
- 72 200 120	Untitled
- 76 200 124	Untitled
- 76 196 124	Untitled
- 80 196 128	Untitled
- 80 196 128	Untitled
- 84 196 132	Untitled
- 88 192 132	Untitled
- 88 192 132	Untitled
- 92 192 136	Untitled
- 92 192 136	Untitled
- 96 188 140	Untitled
-100 188 140	Untitled
-100 188 144	Untitled
-104 188 144	Untitled
-104 184 148	Untitled
-108 184 148	Untitled
-112 184 152	Untitled
-112 180 152	Untitled
-116 180 156	Untitled
-116 180 156	Untitled
-120 180 156	Untitled
-120 176 160	Untitled
-124 176 160	Untitled
-128 176 164	Untitled
-128 176 164	Untitled
-132 172 168	Untitled
-132 172 168	Untitled
-136 172 172	Untitled
-140 172 172	Untitled
-140 168 176	Untitled
-144 168 176	Untitled
-144 168 180	Untitled
-148 168 180	Untitled
-152 164 180	Untitled
-152 164 184	Untitled
-156 164 184	Untitled
-156 160 188	Untitled
-160 160 188	Untitled
-164 160 192	Untitled
-164 160 192	Untitled
-168 156 196	Untitled
-168 156 196	Untitled
-172 156 200	Untitled
-176 156 200	Untitled
-176 152 204	Untitled
-180 152 204	Untitled
-180 152 204	Untitled
-184 152 208	Untitled
-184 148 208	Untitled
-188 148 212	Untitled
-192 148 212	Untitled
-192 148 216	Untitled
-196 144 216	Untitled
-196 144 220	Untitled
-200 144 220	Untitled
-204 140 224	Untitled
-204 140 224	Untitled
-208 140 228	Untitled
-208 140 228	Untitled
-212 136 228	Untitled
-216 136 232	Untitled
-216 136 232	Untitled
-220 136 236	Untitled
-220 132 236	Untitled
-224 132 240	Untitled
-228 132 240	Untitled
-228 132 244	Untitled
-232 128 244	Untitled
-232 128 248	Untitled
-236 128 248	Untitled
-236 128 248	Untitled
-232 124 240	Untitled
-228 124 236	Untitled
-224 124 232	Untitled
-220 120 224	Untitled
-216 120 220	Untitled
-212 120 216	Untitled
-212 116 212	Untitled
-208 116 204	Untitled
-204 116 200	Untitled
-200 112 196	Untitled
-196 112 192	Untitled
-192 112 184	Untitled
-188 108 180	Untitled
-188 108 176	Untitled
-184 108 168	Untitled
-180 104 164	Untitled
-176 104 160	Untitled
-172 104 156	Untitled
-168 100 148	Untitled
-164 100 144	Untitled
-164 100 140	Untitled
-160 100 136	Untitled
-156  96 128	Untitled
-152  96 124	Untitled
-148  96 120	Untitled
-144  92 116	Untitled
-140  92 108	Untitled
-140  92 104	Untitled
-136  88 100	Untitled
-132  88  92	Untitled
-128  88  88	Untitled
-124  84  84	Untitled
-120  84  80	Untitled
-116  84  72	Untitled
-116  80  68	Untitled
-112  80  64	Untitled
-108  80  60	Untitled
-104  76  52	Untitled
-100  76  48	Untitled
- 96  76  44	Untitled
- 96  76  40	Untitled
- 92  80  44	Untitled
- 92  80  48	Untitled
- 92  80  52	Untitled
- 92  80  56	Untitled
- 92  80  56	Untitled
- 92  80  60	Untitled
- 92  84  64	Untitled
- 88  84  68	Untitled
- 88  84  68	Untitled
- 88  84  72	Untitled
- 88  84  76	Untitled
- 88  84  80	Untitled
- 88  88  80	Untitled
- 88  88  84	Untitled
- 88  88  88	Untitled
- 84  88  92	Untitled
- 84  88  92	Untitled
- 84  88  96	Untitled
- 84  92 100	Untitled
- 84  92 104	Untitled
- 84  92 108	Untitled
- 84  92 108	Untitled
- 84  92 112	Untitled
- 80  92 116	Untitled
- 80  96 120	Untitled
- 80  96 120	Untitled
- 80  96 124	Untitled
- 80  96 128	Untitled
- 80  96 132	Untitled
- 80  96 132	Untitled
- 80 100 136	Untitled
- 76 100 140	Untitled
- 76 100 144	Untitled
- 76 100 144	Untitled
- 76 100 148	Untitled
- 76 100 152	Untitled
- 76 104 156	Untitled
- 76 104 160	Untitled
- 76 104 160	Untitled
- 72 104 164	Untitled
- 72 104 168	Untitled
- 72 104 172	Untitled
- 72 108 172	Untitled
- 72 108 176	Untitled
- 72 108 180	Untitled
- 72 108 184	Untitled
- 72 108 184	Untitled
- 68 108 188	Untitled
- 68 112 192	Untitled
- 68 112 196	Untitled
- 68 112 196	Untitled
- 68 112 200	Untitled
- 68 112 204	Untitled
- 68 112 208	Untitled
- 68 112 208	Untitled
- 64 108 204	Untitled
- 64 108 204	Untitled
- 64 108 200	Untitled
- 64 108 200	Untitled
- 60 108 196	Untitled
- 60 108 196	Untitled
- 60 108 192	Untitled
- 60 108 192	Untitled
- 56 108 188	Untitled
- 56 104 188	Untitled
- 56 104 184	Untitled
- 56 104 184	Untitled
diff --git a/krita/data/palettes/Default.gpl b/krita/data/palettes/Default.gpl
deleted file mode 100644
index b2541c359..000000000
--- a/krita/data/palettes/Default.gpl
+++ /dev/null
@@ -1,26 +0,0 @@
-GIMP Palette
-Name: Default
-#
-255   0   0	Red
-255   0 255	Magenta
-  0   0 255	Blue
-  0 255 255	Cyan
-  0 255   0	Green
-255 255   0	Yellow
-127   0   0	Dark Red
-127   0 127	Dark Magenta
-  0   0 127	Dark Blue
-  0 127 127	Dark Cyan
-  0 127   0	Dark Green
-130 127   0	Dark Yellow
-  0   0   0	Black
- 25  25  25	Gray 10%
- 51  51  51	Gray 20%
- 76  76  76	Gray 30%
-102 102 102	Gray 40%
-127 127 127	Gray 50%
-153 153 153	Gray 60%
-178 178 178	Gray 70%
-204 204 204	Gray 80%
-229 229 229	Gray 90%
-255 255 255	White
diff --git a/krita/data/palettes/Ega.gpl b/krita/data/palettes/Ega.gpl
deleted file mode 100644
index 80b6d06d5..000000000
--- a/krita/data/palettes/Ega.gpl
+++ /dev/null
@@ -1,244 +0,0 @@
-GIMP Palette
-Name: Ega
-Columns: 16
-#
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
-  0   0   0	grey0
-168   0 168	Untitled
-252  84  84	Untitled
-252  84 168	Untitled
-252  84 252	Untitled
-252 168 252	Untitled
-252 252   0	Untitled
-252 252 168	Untitled
-252 252 252	grey99
-168 252 252	Untitled
-  0 252 252	Untitled
- 84 168 252	Untitled
-  0   0 252	Untitled
-  0  84 168	Untitled
-  0   0  84	Untitled
- 84  84  84	grey33
diff --git a/krita/data/palettes/Firecode.gpl b/krita/data/palettes/Firecode.gpl
deleted file mode 100644
index 252b738e6..000000000
--- a/krita/data/palettes/Firecode.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Firecode
-#
-  0   0   0	grey0
-  0   0  24	Untitled
-  0   0  24	Untitled
-  0   0  28	Untitled
-  0   0  32	Untitled
-  0   0  32	Untitled
-  0   0  36	Untitled
-  0   0  40	Untitled
-  8   0  40	Untitled
- 16   0  36	Untitled
- 24   0  36	Untitled
- 32   0  32	Untitled
- 40   0  28	Untitled
- 48   0  28	Untitled
- 56   0  24	Untitled
- 64   0  20	Untitled
- 72   0  20	Untitled
- 80   0  16	Untitled
- 88   0  16	Untitled
- 96   0  12	Untitled
-104   0   8	Untitled
-112   0   8	Untitled
-120   0   4	Untitled
-128   0   0	Untitled
-128   0   0	Untitled
-132   0   0	Untitled
-136   0   0	Untitled
-140   0   0	Untitled
-144   0   0	Untitled
-144   0   0	Untitled
-148   0   0	Untitled
-152   0   0	Untitled
-156   0   0	Untitled
-160   0   0	Untitled
-160   0   0	Untitled
-164   0   0	Untitled
-168   0   0	Untitled
-172   0   0	Untitled
-176   0   0	Untitled
-180   0   0	Untitled
-184   4   0	Untitled
-188   4   0	Untitled
-192   8   0	Untitled
-196   8   0	Untitled
-200  12   0	Untitled
-204  12   0	Untitled
-208  16   0	Untitled
-212  16   0	Untitled
-216  20   0	Untitled
-220  20   0	Untitled
-224  24   0	Untitled
-228  24   0	Untitled
-232  28   0	Untitled
-236  28   0	Untitled
-240  32   0	Untitled
-244  32   0	Untitled
-252  36   0	Untitled
-252  36   0	Untitled
-252  40   0	Untitled
-252  40   0	Untitled
-252  44   0	Untitled
-252  44   0	Untitled
-252  48   0	Untitled
-252  48   0	Untitled
-252  52   0	Untitled
-252  52   0	Untitled
-252  56   0	Untitled
-252  56   0	Untitled
-252  60   0	Untitled
-252  60   0	Untitled
-252  64   0	Untitled
-252  64   0	Untitled
-252  68   0	Untitled
-252  68   0	Untitled
-252  72   0	Untitled
-252  72   0	Untitled
-252  76   0	Untitled
-252  76   0	Untitled
-252  80   0	Untitled
-252  80   0	Untitled
-252  84   0	Untitled
-252  84   0	Untitled
-252  88   0	Untitled
-252  88   0	Untitled
-252  92   0	Untitled
-252  96   0	Untitled
-252  96   0	Untitled
-252 100   0	Untitled
-252 100   0	Untitled
-252 104   0	Untitled
-252 104   0	Untitled
-252 108   0	Untitled
-252 108   0	Untitled
-252 112   0	Untitled
-252 112   0	Untitled
-252 116   0	Untitled
-252 116   0	Untitled
-252 120   0	Untitled
-252 120   0	Untitled
-252 124   0	Untitled
-252 124   0	Untitled
-252 128   0	Untitled
-252 128   0	Untitled
-252 132   0	Untitled
-252 132   0	Untitled
-252 136   0	Untitled
-252 136   0	Untitled
-252 140   0	Untitled
-252 140   0	Untitled
-252 144   0	Untitled
-252 144   0	Untitled
-252 148   0	Untitled
-252 152   0	Untitled
-252 152   0	Untitled
-252 156   0	Untitled
-252 156   0	Untitled
-252 160   0	Untitled
-252 160   0	Untitled
-252 164   0	Untitled
-252 164   0	Untitled
-252 168   0	Untitled
-252 168   0	Untitled
-252 172   0	Untitled
-252 172   0	Untitled
-252 176   0	Untitled
-252 176   0	Untitled
-252 180   0	Untitled
-252 180   0	Untitled
-252 184   0	Untitled
-252 184   0	Untitled
-252 188   0	Untitled
-252 188   0	Untitled
-252 192   0	Untitled
-252 192   0	Untitled
-252 196   0	Untitled
-252 196   0	Untitled
-252 200   0	Untitled
-252 200   0	Untitled
-252 204   0	Untitled
-252 208   0	Untitled
-252 208   0	Untitled
-252 208   0	Untitled
-252 208   0	Untitled
-252 208   0	Untitled
-252 212   0	Untitled
-252 212   0	Untitled
-252 212   0	Untitled
-252 212   0	Untitled
-252 216   0	Untitled
-252 216   0	Untitled
-252 216   0	Untitled
-252 216   0	Untitled
-252 216   0	Untitled
-252 220   0	Untitled
-252 220   0	Untitled
-252 220   0	Untitled
-252 220   0	Untitled
-252 224   0	Untitled
-252 224   0	Untitled
-252 224   0	Untitled
-252 224   0	Untitled
-252 228   0	Untitled
-252 228   0	Untitled
-252 228   0	Untitled
-252 228   0	Untitled
-252 228   0	Untitled
-252 232   0	Untitled
-252 232   0	Untitled
-252 232   0	Untitled
-252 232   0	Untitled
-252 236   0	Untitled
-252 236   0	Untitled
-252 236   0	Untitled
-252 236   0	Untitled
-252 240   0	Untitled
-252 240   0	Untitled
-252 240   0	Untitled
-252 240   0	Untitled
-252 240   0	Untitled
-252 244   0	Untitled
-252 244   0	Untitled
-252 244   0	Untitled
-252 244   0	Untitled
-252 248   0	Untitled
-252 248   0	Untitled
-252 248   0	Untitled
-252 248   0	Untitled
-252 252   0	Untitled
-252 252   4	Untitled
-252 252   8	Untitled
-252 252  12	Untitled
-252 252  16	Untitled
-252 252  20	Untitled
-252 252  24	Untitled
-252 252  28	Untitled
-252 252  32	Untitled
-252 252  36	Untitled
-252 252  40	Untitled
-252 252  40	Untitled
-252 252  44	Untitled
-252 252  48	Untitled
-252 252  52	Untitled
-252 252  56	Untitled
-252 252  60	Untitled
-252 252  64	Untitled
-252 252  68	Untitled
-252 252  72	Untitled
-252 252  76	Untitled
-252 252  80	Untitled
-252 252  84	Untitled
-252 252  84	Untitled
-252 252  88	Untitled
-252 252  92	Untitled
-252 252  96	Untitled
-252 252 100	Untitled
-252 252 104	Untitled
-252 252 108	Untitled
-252 252 112	Untitled
-252 252 116	Untitled
-252 252 120	Untitled
-252 252 124	Untitled
-252 252 124	Untitled
-252 252 128	Untitled
-252 252 132	Untitled
-252 252 136	Untitled
-252 252 140	Untitled
-252 252 144	Untitled
-252 252 148	Untitled
-252 252 152	Untitled
-252 252 156	Untitled
-252 252 160	Untitled
-252 252 164	Untitled
-252 252 168	Untitled
-252 252 168	Untitled
-252 252 172	Untitled
-252 252 176	Untitled
-252 252 180	Untitled
-252 252 184	Untitled
-252 252 188	Untitled
-252 252 192	Untitled
-252 252 196	Untitled
-252 252 200	Untitled
-252 252 204	Untitled
-252 252 208	Untitled
-252 252 208	Untitled
-252 252 212	Untitled
-252 252 216	Untitled
-252 252 220	Untitled
-252 252 224	Untitled
-252 252 228	Untitled
-252 252 232	Untitled
-252 252 236	Untitled
-252 252 240	Untitled
-252 252 244	Untitled
-252 252 248	Untitled
-252 252 252	grey99
diff --git a/krita/data/palettes/Gold.gpl b/krita/data/palettes/Gold.gpl
deleted file mode 100644
index 86ccca81f..000000000
--- a/krita/data/palettes/Gold.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Gold
-#
-252 252 128	Untitled
-252 252 128	Untitled
-252 248 124	Untitled
-252 248 124	Untitled
-252 244 120	Untitled
-248 244 120	Untitled
-248 240 116	Untitled
-248 240 112	Untitled
-248 236 112	Untitled
-244 236 108	Untitled
-244 232 108	Untitled
-244 232 104	Untitled
-244 228 104	Untitled
-240 228 100	Untitled
-240 224  96	Untitled
-240 224  96	Untitled
-240 220  92	Untitled
-236 220  92	Untitled
-236 216  88	Untitled
-236 216  84	Untitled
-236 212  84	Untitled
-236 212  80	Untitled
-232 208  80	Untitled
-232 208  76	Untitled
-232 204  76	Untitled
-232 204  72	Untitled
-228 200  68	Untitled
-228 200  68	Untitled
-228 196  64	Untitled
-228 196  64	Untitled
-224 192  60	Untitled
-224 192  56	Untitled
-224 188  56	Untitled
-224 188  52	Untitled
-220 184  52	Untitled
-220 184  48	Untitled
-220 180  48	Untitled
-220 180  44	Untitled
-220 176  40	Untitled
-216 176  40	Untitled
-216 172  36	Untitled
-216 172  36	Untitled
-216 168  32	Untitled
-212 168  28	Untitled
-212 164  28	Untitled
-212 164  24	Untitled
-212 160  24	Untitled
-208 160  20	Untitled
-208 156  20	Untitled
-208 156  16	Untitled
-208 152  12	Untitled
-204 152  12	Untitled
-204 148   8	Untitled
-204 148   8	Untitled
-204 144   4	Untitled
-200 140   0	Untitled
-196 136   0	Untitled
-196 136   0	Untitled
-196 136   0	Untitled
-196 136   0	Untitled
-192 132   0	Untitled
-192 132   0	Untitled
-192 132   0	Untitled
-192 132   0	Untitled
-188 128   0	Untitled
-188 128   0	Untitled
-188 128   0	Untitled
-188 128   0	Untitled
-184 124   0	Untitled
-184 124   0	Untitled
-184 124   0	Untitled
-184 124   0	Untitled
-180 120   0	Untitled
-180 120   0	Untitled
-180 120   0	Untitled
-180 120   0	Untitled
-176 116   0	Untitled
-176 116   0	Untitled
-176 116   0	Untitled
-176 116   0	Untitled
-172 112   0	Untitled
-172 112   0	Untitled
-172 112   0	Untitled
-172 112   0	Untitled
-168 108   0	Untitled
-168 108   0	Untitled
-168 108   0	Untitled
-168 108   0	Untitled
-164 104   0	Untitled
-164 104   0	Untitled
-164 104   0	Untitled
-164 104   0	Untitled
-160 100   0	Untitled
-160 100   0	Untitled
-160 100   0	Untitled
-160 100   0	Untitled
-156  96   0	Untitled
-156  96   0	Untitled
-156  96   0	Untitled
-156  96   0	Untitled
-152  92   0	Untitled
-152  92   0	Untitled
-152  92   0	Untitled
-152  92   0	Untitled
-148  88   0	Untitled
-148  88   0	Untitled
-148  88   0	Untitled
-148  88   0	Untitled
-144  84   0	Untitled
-144  84   0	Untitled
-144  84   0	Untitled
-144  84   0	Untitled
-140  80   0	Untitled
-140  80   0	Untitled
-140  80   0	Untitled
-140  80   0	Untitled
-136  76   0	Untitled
-136  76   0	Untitled
-136  76   0	Untitled
-136  76   0	Untitled
-132  72   0	Untitled
-132  72   0	Untitled
-132  72   0	Untitled
-132  72   0	Untitled
-128  68   0	Untitled
-128  68   0	Untitled
-128  68   0	Untitled
-128  68   0	Untitled
-124  64   0	Untitled
-124  64   0	Untitled
-124  64   0	Untitled
-124  64   0	Untitled
-120  60   0	Untitled
-120  60   0	Untitled
-120  60   0	Untitled
-120  60   0	Untitled
-116  56   0	Untitled
-116  56   0	Untitled
-116  56   0	Untitled
-116  56   0	Untitled
-112  52   0	Untitled
-112  52   0	Untitled
-112  52   0	Untitled
-112  52   0	Untitled
-108  48   0	Untitled
-108  48   0	Untitled
-108  48   0	Untitled
-108  48   0	Untitled
-104  44   0	Untitled
-104  44   0	Untitled
-104  44   0	Untitled
-104  44   0	Untitled
-100  40   0	Untitled
-100  40   0	Untitled
-100  40   0	Untitled
-100  40   0	Untitled
- 96  36   0	Untitled
- 96  36   0	Untitled
- 96  36   0	Untitled
- 96  36   0	Untitled
- 92  32   0	Untitled
- 92  32   0	Untitled
- 92  32   0	Untitled
- 92  32   0	Untitled
- 88  28   0	Untitled
- 88  28   0	Untitled
- 88  28   0	Untitled
- 88  28   0	Untitled
- 84  24   0	Untitled
- 84  24   0	Untitled
- 84  24   0	Untitled
- 84  24   0	Untitled
- 80  20   0	Untitled
- 80  20   0	Untitled
- 80  20   0	Untitled
- 80  20   0	Untitled
- 76  16   0	Untitled
- 76  16   0	Untitled
- 76  16   0	Untitled
- 76  16   0	Untitled
- 72  12   0	Untitled
- 72  12   0	Untitled
- 72  12   0	Untitled
- 72  12   0	Untitled
- 68   8   0	Untitled
- 68   8   0	Untitled
- 68   8   0	Untitled
- 68   8   0	Untitled
- 64   4   0	Untitled
- 64   4   0	Untitled
- 64   4   0	Untitled
- 64   4   0	Untitled
- 60   0   0	Untitled
- 60   0   0	Untitled
- 60   0   0	Untitled
- 60   0   0	Untitled
- 56   0   0	Untitled
- 56   0   0	Untitled
- 56   0   0	Untitled
- 56   0   0	Untitled
- 52   0   0	Untitled
- 52   0   0	Untitled
- 52   0   0	Untitled
- 52   0   0	Untitled
- 48   0   0	Untitled
- 48   0   0	Untitled
- 48   0   0	Untitled
- 48   0   0	Untitled
- 44   0   0	Untitled
- 44   0   0	Untitled
- 44   0   0	Untitled
- 44   0   0	Untitled
- 40   0   0	Untitled
- 40   0   0	Untitled
- 40   0   0	Untitled
- 40   0   0	Untitled
- 36   0   0	Untitled
- 36   0   0	Untitled
- 36   0   0	Untitled
- 36   0   0	Untitled
- 32   0   0	Untitled
- 32   0   0	Untitled
- 32   0   0	Untitled
- 32   0   0	Untitled
- 28   0   0	Untitled
- 28   0   0	Untitled
- 28   0   0	Untitled
- 28   0   0	Untitled
- 24   0   0	Untitled
- 24   0   0	Untitled
- 24   0   0	Untitled
- 24   0   0	Untitled
- 20   0   0	Untitled
- 20   0   0	Untitled
- 20   0   0	Untitled
- 20   0   0	Untitled
- 16   0   0	Untitled
- 16   0   0	Untitled
- 16   0   0	Untitled
- 16   0   0	Untitled
- 12   0   0	Untitled
- 12   0   0	Untitled
- 12   0   0	Untitled
- 12   0   0	Untitled
-  8   0   0	Untitled
-  8   0   0	Untitled
-  8   0   0	Untitled
-  8   0   0	Untitled
-  4   0   0	Untitled
-  4   0   0	Untitled
-  4   0   0	Untitled
-  4   0   0	Untitled
-  0   0   0	grey0
-  0   0   0	grey0
-  0   0   0	grey0
-  0   0   0	grey0
diff --git a/krita/data/palettes/GrayViolet.gpl b/krita/data/palettes/GrayViolet.gpl
deleted file mode 100644
index 9bc34021f..000000000
--- a/krita/data/palettes/GrayViolet.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: GrayViolet
-#
-  0   0   0	grey0
-  0   0   0	grey0
-  4   4   4	Untitled
-  4   4   4	Untitled
-  8   8   8	grey3
-  8   8   8	grey3
- 12  12  12	Untitled
- 12  12  12	Untitled
- 16  16  16	Untitled
- 16  16  16	Untitled
- 20  20  20	grey8
- 20  20  20	grey8
- 20  24  24	Untitled
- 24  24  24	Untitled
- 24  28  28	Untitled
- 28  28  28	grey11
- 28  32  32	Untitled
- 32  32  32	Untitled
- 32  32  36	Untitled
- 36  36  36	grey14
- 36  36  40	Untitled
- 40  40  40	Untitled
- 40  40  44	Untitled
- 40  44  44	Untitled
- 44  44  48	Untitled
- 44  48  48	Untitled
- 48  48  52	Untitled
- 48  52  52	Untitled
- 52  52  56	Untitled
- 52  56  56	Untitled
- 56  56  60	Untitled
- 56  60  60	Untitled
- 56  60  64	Untitled
- 60  64  64	Untitled
- 60  64  68	Untitled
- 64  64  68	Untitled
- 64  68  72	Untitled
- 68  68  72	Untitled
- 68  72  76	Untitled
- 72  72  76	Untitled
- 72  76  80	Untitled
- 76  76  80	Untitled
- 76  80  84	Untitled
- 76  80  84	Untitled
- 80  84  88	Untitled
- 80  84  88	Untitled
- 84  88  92	Untitled
- 84  88  92	Untitled
- 88  92  96	Untitled
- 88  92  96	Untitled
- 92  96 100	Untitled
- 92  96 100	Untitled
- 96  96 104	Untitled
- 96 100 104	Untitled
- 96 100 108	Untitled
-100 104 108	Untitled
-100 104 112	Untitled
-104 108 112	Untitled
-104 108 116	Untitled
-108 112 116	Untitled
-108 112 120	Untitled
-112 116 120	Untitled
-112 116 124	Untitled
-116 120 124	Untitled
-116 120 128	Untitled
-116 124 128	Untitled
-120 124 132	Untitled
-120 124 132	Untitled
-124 128 136	Untitled
-124 128 136	Untitled
-128 132 140	Untitled
-128 132 140	Untitled
-132 136 144	Untitled
-132 136 144	Untitled
-136 140 148	Untitled
-136 140 148	Untitled
-136 144 152	Untitled
-140 144 152	Untitled
-140 148 156	Untitled
-144 148 156	Untitled
-144 152 160	Untitled
-148 152 160	Untitled
-148 156 164	Untitled
-152 156 164	Untitled
-152 156 168	Untitled
-156 160 168	Untitled
-156 160 172	Untitled
-156 164 172	Untitled
-160 164 176	Untitled
-160 168 176	Untitled
-164 168 180	Untitled
-164 172 180	Untitled
-168 172 184	Untitled
-168 176 184	Untitled
-172 176 188	Untitled
-172 180 188	Untitled
-172 180 192	Untitled
-176 184 192	Untitled
-176 184 196	Untitled
-180 188 196	Untitled
-180 188 200	Untitled
-184 188 200	Untitled
-184 192 204	Untitled
-188 192 204	Untitled
-188 196 208	Untitled
-192 196 208	Untitled
-192 200 212	Untitled
-192 200 212	Untitled
-196 204 216	Untitled
-196 204 216	Untitled
-200 208 220	Untitled
-200 208 220	Untitled
-204 212 224	Untitled
-204 212 224	Untitled
-208 216 228	Untitled
-208 216 228	Untitled
-212 220 232	Untitled
-212 220 232	Untitled
-240 240 252	Untitled
-228 232 244	Untitled
-240 240 252	Untitled
-224 232 244	Untitled
-236 236 248	Untitled
-220 228 240	Untitled
-232 236 248	Untitled
-220 228 236	Untitled
-228 232 244	Untitled
-216 224 236	Untitled
-224 232 244	Untitled
-212 220 232	Untitled
-220 228 240	Untitled
-208 220 232	Untitled
-220 228 236	Untitled
-204 216 228	Untitled
-216 224 236	Untitled
-200 216 224	Untitled
-212 220 232	Untitled
-200 212 224	Untitled
-208 220 232	Untitled
-196 212 220	Untitled
-204 216 228	Untitled
-192 208 220	Untitled
-200 216 224	Untitled
-188 208 216	Untitled
-200 212 224	Untitled
-180 204 216	Untitled
-196 212 220	Untitled
-188 208 216	Untitled
-196 212 220	Untitled
-184 204 212	Untitled
-192 208 216	Untitled
-180 200 208	Untitled
-188 208 216	Untitled
-180 200 208	Untitled
-184 204 212	Untitled
-180 196 204	Untitled
-180 200 208	Untitled
-176 192 200	Untitled
-180 200 208	Untitled
-176 188 196	Untitled
-180 196 204	Untitled
-172 184 192	Untitled
-176 192 200	Untitled
-172 180 192	Untitled
-176 188 196	Untitled
-168 176 188	Untitled
-172 184 192	Untitled
-168 172 184	Untitled
-172 180 192	Untitled
-164 168 180	Untitled
-168 176 188	Untitled
-164 164 176	Untitled
-168 172 184	Untitled
-160 160 176	Untitled
-164 168 180	Untitled
-160 156 172	Untitled
-164 164 176	Untitled
-156 152 168	Untitled
-160 160 176	Untitled
-156 148 164	Untitled
-160 156 172	Untitled
-152 144 160	Untitled
-156 152 168	Untitled
-152 140 160	Untitled
-156 148 164	Untitled
-148 136 156	Untitled
-152 144 160	Untitled
-148 132 152	Untitled
-152 140 160	Untitled
-144 128 148	Untitled
-148 136 156	Untitled
-144 124 144	Untitled
-148 132 152	Untitled
-140 120 144	Untitled
-144 128 148	Untitled
-140 116 140	Untitled
-144 124 144	Untitled
-136 112 136	Untitled
-140 120 144	Untitled
-136 108 132	Untitled
-140 116 140	Untitled
-132 104 128	Untitled
-136 112 136	Untitled
-132 100 124	Untitled
-136 108 132	Untitled
-128  96 124	Untitled
-132 104 128	Untitled
-128  92 120	Untitled
-132 100 124	Untitled
-124  88 116	Untitled
-128  96 124	Untitled
-124  84 112	Untitled
-128  92 120	Untitled
-120  80 108	Untitled
-124  88 116	Untitled
-120  76 108	Untitled
-124  84 112	Untitled
-116  72 104	Untitled
-120  80 108	Untitled
-116  68 100	Untitled
-120  76 108	Untitled
-112  64  96	Untitled
-116  72 104	Untitled
-112  60  92	Untitled
-116  68 100	Untitled
-108  56  92	Untitled
-112  64  96	Untitled
-108  52  88	Untitled
-112  60  92	Untitled
-104  48  84	Untitled
-108  56  92	Untitled
-104  44  80	Untitled
-108  52  88	Untitled
-100  40  76	Untitled
-104  48  84	Untitled
-100  36  76	Untitled
-104  44  80	Untitled
- 96  32  72	Untitled
-100  40  76	Untitled
- 96  28  68	Untitled
-100  36  76	Untitled
- 92  24  64	Untitled
- 96  32  72	Untitled
- 96  28  68	Untitled
- 76  24  60	Untitled
- 92  24  64	Untitled
- 56  28  52	Untitled
- 76  24  60	Untitled
- 48  28  48	Untitled
- 56  28  52	Untitled
- 28  32  40	Untitled
- 36  28  44	Untitled
-  8  36  32	Untitled
- 20  32  36	Untitled
- 16  24  24	Untitled
-  8  12  12	Untitled
diff --git a/krita/data/palettes/Grayblue.gpl b/krita/data/palettes/Grayblue.gpl
deleted file mode 100644
index 982749dc4..000000000
--- a/krita/data/palettes/Grayblue.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Grayblue
-#
-124 164 128	Untitled
-124 164 128	Untitled
-124 164 124	Untitled
-124 160 124	Untitled
-124 160 124	Untitled
-120 160 124	Untitled
-120 160 124	Untitled
-120 156 124	Untitled
-120 156 124	Untitled
-120 156 120	Untitled
-116 156 120	Untitled
-116 152 120	Untitled
-116 152 120	Untitled
-116 152 120	Untitled
-116 152 120	Untitled
-112 148 116	Untitled
-112 148 116	Untitled
-112 148 116	Untitled
-112 148 116	Untitled
-112 144 116	Untitled
-108 144 116	Untitled
-108 144 112	Untitled
-108 144 112	Untitled
-108 140 112	Untitled
-108 140 112	Untitled
-104 140 112	Untitled
-104 140 112	Untitled
-104 136 108	Untitled
-104 136 108	Untitled
-100 136 108	Untitled
-100 136 108	Untitled
-100 132 108	Untitled
-100 132 108	Untitled
-100 132 104	Untitled
- 96 132 104	Untitled
- 96 128 104	Untitled
- 96 128 104	Untitled
- 96 128 104	Untitled
- 96 128 104	Untitled
- 92 124 100	Untitled
- 92 124 100	Untitled
- 92 124 100	Untitled
- 92 124 100	Untitled
- 92 120 100	Untitled
- 88 120 100	Untitled
- 88 120  96	Untitled
- 88 120  96	Untitled
- 88 116  96	Untitled
- 88 116  96	Untitled
- 84 116  96	Untitled
- 84 116  96	Untitled
- 84 112  96	Untitled
- 84 112  92	Untitled
- 80 112  92	Untitled
- 80 112  92	Untitled
- 80 108  92	Untitled
- 80 108  92	Untitled
- 80 108  92	Untitled
- 76 108  88	Untitled
- 76 104  88	Untitled
- 76 104  88	Untitled
- 76 104  88	Untitled
- 76 100  88	Untitled
- 72 100  88	Untitled
- 72 100  84	Untitled
- 72 100  84	Untitled
- 72  96  84	Untitled
- 72  96  84	Untitled
- 68  96  84	Untitled
- 68  96  84	Untitled
- 68  92  80	Untitled
- 68  92  80	Untitled
- 68  92  80	Untitled
- 64  92  80	Untitled
- 64  88  80	Untitled
- 64  88  80	Untitled
- 64  88  76	Untitled
- 60  88  76	Untitled
- 60  84  76	Untitled
- 60  84  76	Untitled
- 60  84  76	Untitled
- 60  84  76	Untitled
- 56  80  72	Untitled
- 56  80  72	Untitled
- 56  80  72	Untitled
- 56  80  72	Untitled
- 56  76  72	Untitled
- 52  76  72	Untitled
- 52  76  72	Untitled
- 52  76  68	Untitled
- 52  72  68	Untitled
- 52  72  68	Untitled
- 48  72  68	Untitled
- 48  72  68	Untitled
- 48  68  68	Untitled
- 48  68  64	Untitled
- 48  68  64	Untitled
- 44  68  64	Untitled
- 44  64  64	Untitled
- 44  64  64	Untitled
- 44  64  64	Untitled
- 40  64  60	Untitled
- 40  60  60	Untitled
- 40  60  60	Untitled
- 40  60  60	Untitled
- 40  60  60	Untitled
- 36  56  60	Untitled
- 36  56  56	Untitled
- 36  56  56	Untitled
- 36  56  56	Untitled
- 36  52  56	Untitled
- 32  52  56	Untitled
- 32  52  56	Untitled
- 32  52  52	Untitled
- 32  48  52	Untitled
- 32  48  52	Untitled
- 28  48  52	Untitled
- 28  48  52	Untitled
- 28  44  52	Untitled
- 28  44  48	Untitled
- 28  44  48	Untitled
- 24  44  48	Untitled
- 24  40  48	Untitled
- 24  40  48	Untitled
- 24  40  48	Untitled
- 20  36  44	Untitled
- 24  40  48	Untitled
- 24  40  48	Untitled
- 24  40  48	Untitled
- 24  40  48	Untitled
- 24  40  52	Untitled
- 24  40  52	Untitled
- 24  40  52	Untitled
- 28  44  52	Untitled
- 28  44  56	Untitled
- 28  44  56	Untitled
- 28  44  56	Untitled
- 28  44  56	Untitled
- 28  44  56	Untitled
- 28  44  60	Untitled
- 28  48  60	Untitled
- 32  48  60	Untitled
- 32  48  60	Untitled
- 32  48  64	Untitled
- 32  48  64	Untitled
- 32  48  64	Untitled
- 32  48  64	Untitled
- 32  52  64	Untitled
- 36  52  68	Untitled
- 36  52  68	Untitled
- 36  52  68	Untitled
- 36  52  68	Untitled
- 36  52  72	Untitled
- 36  52  72	Untitled
- 36  52  72	Untitled
- 36  56  72	Untitled
- 40  56  72	Untitled
- 40  56  76	Untitled
- 40  56  76	Untitled
- 40  56  76	Untitled
- 40  56  76	Untitled
- 40  56  80	Untitled
- 40  60  80	Untitled
- 44  60  80	Untitled
- 44  60  80	Untitled
- 44  60  80	Untitled
- 44  60  84	Untitled
- 44  60  84	Untitled
- 44  60  84	Untitled
- 44  64  84	Untitled
- 44  64  88	Untitled
- 48  64  88	Untitled
- 48  64  88	Untitled
- 48  64  88	Untitled
- 48  64  88	Untitled
- 48  64  92	Untitled
- 48  64  92	Untitled
- 48  68  92	Untitled
- 48  68  92	Untitled
- 52  68  96	Untitled
- 52  68  96	Untitled
- 52  68  96	Untitled
- 52  68  96	Untitled
- 52  68  96	Untitled
- 52  72 100	Untitled
- 52  72 100	Untitled
- 56  72 100	Untitled
- 56  72 100	Untitled
- 56  72 104	Untitled
- 56  72 104	Untitled
- 56  72 104	Untitled
- 56  76 104	Untitled
- 56  76 104	Untitled
- 56  76 108	Untitled
- 60  76 108	Untitled
- 60  76 108	Untitled
- 60  76 108	Untitled
- 60  76 112	Untitled
- 60  80 112	Untitled
- 60  80 112	Untitled
- 60  80 112	Untitled
- 64  80 112	Untitled
- 64  80 116	Untitled
- 64  80 116	Untitled
- 64  80 116	Untitled
- 64  80 116	Untitled
- 64  84 120	Untitled
- 64  84 120	Untitled
- 64  84 120	Untitled
- 68  84 120	Untitled
- 68  84 120	Untitled
- 68  84 124	Untitled
- 68  84 124	Untitled
- 68  88 124	Untitled
- 68  88 124	Untitled
- 68  88 128	Untitled
- 72  88 128	Untitled
- 72  88 128	Untitled
- 72  88 128	Untitled
- 72  88 128	Untitled
- 72  92 132	Untitled
- 72  92 132	Untitled
- 72  92 132	Untitled
- 72  92 132	Untitled
- 76  92 136	Untitled
- 76  92 136	Untitled
- 76  92 136	Untitled
- 76  92 136	Untitled
- 76  96 140	Untitled
- 76  96 140	Untitled
- 76  96 140	Untitled
- 76  96 140	Untitled
- 80  96 140	Untitled
- 80  96 144	Untitled
- 80  96 144	Untitled
- 80 100 144	Untitled
- 80 100 144	Untitled
- 80 100 148	Untitled
- 80 100 148	Untitled
- 84 100 148	Untitled
- 84 100 148	Untitled
- 84 100 148	Untitled
- 84 104 152	Untitled
- 84 104 152	Untitled
- 84 104 152	Untitled
- 84 104 152	Untitled
- 84 104 156	Untitled
- 88 104 156	Untitled
- 88 104 156	Untitled
- 88 104 156	Untitled
- 88 108 156	Untitled
- 88 108 160	Untitled
- 88 108 160	Untitled
- 88 108 160	Untitled
- 92 108 160	Untitled
- 92 108 164	Untitled
diff --git a/krita/data/palettes/Grays.gpl b/krita/data/palettes/Grays.gpl
deleted file mode 100644
index 49050b22c..000000000
--- a/krita/data/palettes/Grays.gpl
+++ /dev/null
@@ -1,34 +0,0 @@
-GIMP Palette
-Name: Grays
-  0   0   0	gray0
-  7   7   7	gray3
- 15  15  15	gray6
- 23  23  23	gray9
- 31  31  31	gray12
- 39  39  39	gray15
- 47  47  47	gray18
- 55  55  55	gray21
- 63  63  63	gray25
- 71  71  71	gray28
- 79  79  79	gray31
- 87  87  87	gray34
- 95  95  95	gray37
-103 103 103	gray40
-111 111 111	gray43
-119 119 119	gray46
-127 127 127	gray50
-135 135 135	gray53
-143 143 143	gray56
-151 151 151	gray59
-159 159 159	gray62
-167 167 167	gray65
-175 175 175	gray68
-183 183 183	gray71
-191 191 191	gray75
-199 199 199	gray78
-207 207 207	gray81
-215 215 215	gray84
-223 223 223	gray87
-231 231 231	gray90
-239 239 239	gray93
-247 247 247	gray96
diff --git a/krita/data/palettes/Greens.gpl b/krita/data/palettes/Greens.gpl
deleted file mode 100644
index 9da819b4d..000000000
--- a/krita/data/palettes/Greens.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Greens
-#
-  0   0   0	grey0
-  0   0   0	grey0
-  0   4   0	Untitled
-  0  12   0	Untitled
-  0  16   0	Untitled
-  0  24   0	Untitled
-  0  32   0	Untitled
-  0  36   0	Untitled
-  0  44   0	Untitled
-  0  48   0	Untitled
-  0  56   0	Untitled
-  0  64   0	Untitled
-  0  68   0	Untitled
-  0  76   0	Untitled
-  0  80   0	Untitled
-  0  88   0	Untitled
-  0  96   0	Untitled
-  0 100   0	DarkGreen
-  0 108   0	Untitled
-  0 116   0	Untitled
-  0 120   0	Untitled
-  0 128   0	Untitled
-  0 132   0	Untitled
-  0 140   0	Untitled
-  0 148   0	Untitled
-  0 152   0	Untitled
-  0 160   0	Untitled
-  0 164   0	Untitled
-  0 172   0	Untitled
-  0 180   0	Untitled
-  0 184   0	Untitled
-  0 192   0	Untitled
-  0 200   0	Untitled
-  4 200   0	Untitled
- 12 200   0	Untitled
- 16 204   0	Untitled
- 24 204   0	Untitled
- 28 208   0	Untitled
- 36 208   0	Untitled
- 40 208   0	Untitled
- 48 212   0	Untitled
- 56 212   0	Untitled
- 60 216   0	Untitled
- 68 216   0	Untitled
- 72 216   0	Untitled
- 80 220   0	Untitled
- 84 220   0	Untitled
- 92 224   0	Untitled
-100 224   0	Untitled
-104 224   0	Untitled
-112 228   0	Untitled
-116 228   0	Untitled
-124 232   0	Untitled
-128 232   0	Untitled
-136 232   0	Untitled
-140 236   0	Untitled
-148 236   0	Untitled
-156 240   0	Untitled
-160 240   0	Untitled
-168 240   0	Untitled
-172 244   0	Untitled
-180 244   0	Untitled
-184 248   0	Untitled
-192 248   0	Untitled
-200 252   0	Untitled
-200 252   4	Untitled
-200 252  12	Untitled
-204 252  20	Untitled
-204 252  28	Untitled
-208 252  36	Untitled
-208 252  44	Untitled
-208 252  52	Untitled
-212 252  60	Untitled
-212 252  68	Untitled
-216 252  76	Untitled
-216 252  84	Untitled
-216 252  92	Untitled
-220 252 100	Untitled
-220 252 108	Untitled
-224 252 116	Untitled
-224 252 124	Untitled
-224 252 132	Untitled
-228 252 140	Untitled
-228 252 148	Untitled
-232 252 156	Untitled
-232 252 164	Untitled
-232 252 172	Untitled
-236 252 180	Untitled
-236 252 188	Untitled
-240 252 196	Untitled
-240 252 204	Untitled
-240 252 212	Untitled
-244 252 220	Untitled
-244 252 228	Untitled
-248 252 236	Untitled
-248 252 244	Untitled
-252 252 252	grey99
-252 252 248	Untitled
-252 252 244	Untitled
-252 252 240	Untitled
-252 252 232	Untitled
-252 252 228	Untitled
-252 252 224	Untitled
-252 252 216	Untitled
-252 252 212	Untitled
-252 252 208	Untitled
-252 252 200	Untitled
-252 252 196	Untitled
-252 252 192	Untitled
-252 252 184	Untitled
-252 252 180	Untitled
-252 252 176	Untitled
-252 252 168	Untitled
-252 252 164	Untitled
-252 252 160	Untitled
-252 252 156	Untitled
-252 252 148	Untitled
-252 252 144	Untitled
-252 252 140	Untitled
-252 252 132	Untitled
-252 252 128	Untitled
-252 252 124	Untitled
-252 252 116	Untitled
-252 252 112	Untitled
-252 252 108	Untitled
-252 252 100	Untitled
-252 252  96	Untitled
-252 252  92	Untitled
-252 252  84	Untitled
-252 252  80	Untitled
-252 252  76	Untitled
-252 252  72	Untitled
-252 252  64	Untitled
-252 252  60	Untitled
-252 252  56	Untitled
-252 252  48	Untitled
-252 252  44	Untitled
-252 252  40	Untitled
-252 252  32	Untitled
-252 252  28	Untitled
-252 252  24	Untitled
-252 252  16	Untitled
-252 252  12	Untitled
-252 252   8	Untitled
-252 252   0	Untitled
-248 252   0	Untitled
-244 252   0	Untitled
-240 252   0	Untitled
-232 252   0	Untitled
-228 252   0	Untitled
-224 252   0	Untitled
-216 252   0	Untitled
-212 252   0	Untitled
-208 252   0	Untitled
-200 252   0	Untitled
-196 252   0	Untitled
-192 252   0	Untitled
-184 252   0	Untitled
-180 252   0	Untitled
-176 252   0	Untitled
-168 252   0	Untitled
-164 252   0	Untitled
-160 252   0	Untitled
-156 252   0	Untitled
-148 252   0	Untitled
-144 252   0	Untitled
-140 252   0	Untitled
-132 252   0	Untitled
-128 252   0	Untitled
-124 252   0	LawnGreen
-116 252   0	Untitled
-112 252   0	Untitled
-108 252   0	Untitled
-100 252   0	Untitled
- 96 252   0	Untitled
- 92 252   0	Untitled
- 84 252   0	Untitled
- 80 252   0	Untitled
- 76 252   0	Untitled
- 72 252   0	Untitled
- 64 252   0	Untitled
- 60 252   0	Untitled
- 56 252   0	Untitled
- 48 252   0	Untitled
- 44 252   0	Untitled
- 40 252   0	Untitled
- 32 252   0	Untitled
- 28 252   0	Untitled
- 24 252   0	Untitled
- 16 252   0	Untitled
- 12 252   0	Untitled
-  8 252   0	Untitled
-  0 252   0	Untitled
-  0 248   0	Untitled
-  0 244   0	Untitled
-  0 240   0	Untitled
-  0 236   0	Untitled
-  0 232   0	Untitled
-  0 228   0	Untitled
-  0 224   0	Untitled
-  0 220   0	Untitled
-  0 216   0	Untitled
-  0 212   0	Untitled
-  0 208   0	Untitled
-  0 204   0	Untitled
-  0 200   0	Untitled
-  0 196   0	Untitled
-  0 192   0	Untitled
-  0 188   0	Untitled
-  0 184   0	Untitled
-  0 180   0	Untitled
-  0 176   0	Untitled
-  0 172   0	Untitled
-  0 168   0	Untitled
-  0 164   0	Untitled
-  0 160   0	Untitled
-  0 156   0	Untitled
-  0 152   0	Untitled
-  0 148   0	Untitled
-  0 144   0	Untitled
-  0 140   0	Untitled
-  0 136   0	Untitled
-  0 132   0	Untitled
-  0 128   0	Untitled
-  0 124   0	Untitled
-  0 120   0	Untitled
-  0 116   0	Untitled
-  0 112   0	Untitled
-  0 108   0	Untitled
-  0 104   0	Untitled
-  0 100   0	DarkGreen
-  0  96   0	Untitled
-  0  92   0	Untitled
-  0  88   0	Untitled
-  0  84   0	Untitled
-  0  80   0	Untitled
-  0  76   0	Untitled
-  0  72   0	Untitled
-  0  68   0	Untitled
-  0  64   0	Untitled
-  0  60   0	Untitled
-  0  56   0	Untitled
-  0  52   0	Untitled
-  0  48   0	Untitled
-  0  44   0	Untitled
-  0  40   0	Untitled
-  0  36   0	Untitled
-  0  32   0	Untitled
-  0  28   0	Untitled
-  0  24   0	Untitled
-  0  20   0	Untitled
-  0  16   0	Untitled
-  0  12   0	Untitled
-  0   8   0	Untitled
-  0   0   0	grey0
-  0   0   0	grey0
diff --git a/krita/data/palettes/Hilite.gpl b/krita/data/palettes/Hilite.gpl
deleted file mode 100644
index 74b286848..000000000
--- a/krita/data/palettes/Hilite.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Hilite
-#
-164 144 180	Untitled
-160 144 180	Untitled
-160 144 180	Untitled
-160 144 176	Untitled
-160 144 176	Untitled
-160 140 172	Untitled
-160 140 172	Untitled
-160 140 168	Untitled
-160 140 168	Untitled
-160 140 168	Untitled
-160 140 164	Untitled
-160 136 164	Untitled
-156 136 160	Untitled
-156 136 160	Untitled
-156 136 156	Untitled
-156 136 156	Untitled
-156 136 156	Untitled
-156 132 152	Untitled
-156 132 152	Untitled
-156 132 148	Untitled
-156 132 148	Untitled
-156 132 144	Untitled
-156 132 144	Untitled
-152 128 144	Untitled
-152 128 140	Untitled
-152 128 140	Untitled
-152 128 136	Untitled
-152 128 136	Untitled
-152 128 132	Untitled
-152 128 132	Untitled
-152 124 132	Untitled
-152 124 128	Untitled
-152 124 128	Untitled
-152 124 124	Untitled
-148 124 124	Untitled
-148 124 120	Untitled
-148 120 120	Untitled
-148 120 120	Untitled
-148 120 116	Untitled
-148 120 116	Untitled
-148 120 112	Untitled
-148 120 112	Untitled
-148 116 108	Untitled
-148 116 108	Untitled
-144 116 108	Untitled
-144 116 104	Untitled
-144 116 104	Untitled
-144 116 100	Untitled
-144 112 100	Untitled
-144 112  96	Untitled
-144 112  96	Untitled
-144 112  96	Untitled
-144 112  92	Untitled
-144 112  92	Untitled
-144 112  88	Untitled
-140 108  88	Untitled
-140 108  84	Untitled
-140 108  84	Untitled
-140 108  84	Untitled
-140 108  80	Untitled
-140 108  80	Untitled
-140 104  76	Untitled
-140 104  76	Untitled
-140 104  72	Untitled
-140 104  72	Untitled
-140 104  72	Untitled
-136 104  68	Untitled
-136 100  68	Untitled
-136 100  64	Untitled
-136 100  64	Untitled
-136 100  60	Untitled
-136 100  60	Untitled
-136 100  60	Untitled
-136  96  56	Untitled
-136  96  56	Untitled
-136  96  52	Untitled
-136  96  52	Untitled
-132  96  48	Untitled
-132  96  48	Untitled
-132  96  48	Untitled
-132  92  44	Untitled
-132  92  44	Untitled
-132  92  40	Untitled
-132  92  40	Untitled
-132  92  36	Untitled
-132  92  36	Untitled
-132  88  36	Untitled
-132  88  32	Untitled
-128  88  32	Untitled
-128  88  28	Untitled
-128  88  28	Untitled
-128  88  24	Untitled
-128  84  24	Untitled
-128  84  24	Untitled
-128  84  20	Untitled
-128  84  20	Untitled
-128  84  16	Untitled
-128  84  16	Untitled
-124  80  12	Untitled
-124  80  12	Untitled
-124  80  12	Untitled
-124  84  16	Untitled
-128  84  16	Untitled
-128  88  20	Untitled
-128  88  20	Untitled
-128  92  24	Untitled
-132  92  24	Untitled
-132  92  28	Untitled
-132  96  28	Untitled
-136  96  32	Untitled
-136 100  32	Untitled
-136 100  32	Untitled
-136 104  36	Untitled
-140 104  36	Untitled
-140 108  40	Untitled
-140 108  40	Untitled
-144 108  44	Untitled
-144 112  44	Untitled
-144 112  48	Untitled
-144 116  48	Untitled
-148 116  52	Untitled
-148 120  52	Untitled
-148 120  56	Untitled
-152 120  56	Untitled
-152 124  56	Untitled
-152 124  60	Untitled
-152 128  60	Untitled
-156 128  64	Untitled
-156 132  64	Untitled
-156 132  68	Untitled
-160 136  68	Untitled
-160 136  72	Untitled
-160 136  72	Untitled
-160 140  76	Untitled
-164 140  76	Untitled
-164 144  76	Untitled
-164 144  80	Untitled
-164 148  80	Untitled
-168 148  84	Untitled
-168 148  84	Untitled
-168 152  88	Untitled
-172 152  88	Untitled
-172 156  92	Untitled
-172 156  92	Untitled
-172 160  96	Untitled
-176 160  96	Untitled
-176 164 100	Untitled
-176 164 100	Untitled
-180 164 100	Untitled
-180 168 104	Untitled
-180 168 104	Untitled
-180 172 108	Untitled
-184 172 108	Untitled
-184 176 112	Untitled
-184 176 112	Untitled
-188 176 116	Untitled
-188 180 116	Untitled
-188 180 120	Untitled
-188 184 120	Untitled
-192 184 120	Untitled
-192 188 124	Untitled
-192 188 124	Untitled
-196 192 128	Untitled
-196 192 128	Untitled
-196 192 132	Untitled
-196 196 132	Untitled
-200 196 136	Untitled
-200 200 136	Untitled
-200 200 140	Untitled
-200 204 140	Untitled
-204 204 144	Untitled
-204 204 144	Untitled
-204 208 144	Untitled
-208 208 148	Untitled
-208 212 148	Untitled
-208 212 152	Untitled
-208 216 152	Untitled
-212 216 156	Untitled
-212 220 156	Untitled
-212 220 160	Untitled
-216 220 160	Untitled
-216 224 164	Untitled
-216 224 164	Untitled
-216 228 164	Untitled
-220 228 168	Untitled
-220 232 168	Untitled
-220 232 172	Untitled
-224 232 172	Untitled
-224 236 176	Untitled
-224 236 176	Untitled
-224 240 180	Untitled
-228 240 180	Untitled
-228 244 184	Untitled
-228 244 184	Untitled
-232 248 188	Untitled
-232 248 188	Untitled
-232 248 188	Untitled
-232 248 188	Untitled
-228 244 188	Untitled
-228 244 188	Untitled
-228 244 188	Untitled
-224 244 188	Untitled
-224 240 188	Untitled
-224 240 188	Untitled
-220 240 188	Untitled
-220 236 188	Untitled
-220 236 188	Untitled
-216 236 188	Untitled
-216 236 188	Untitled
-216 232 188	Untitled
-212 232 188	Untitled
-212 232 184	Untitled
-212 228 184	Untitled
-208 228 184	Untitled
-208 228 184	Untitled
-208 228 184	Untitled
-204 224 184	Untitled
-204 224 184	Untitled
-204 224 184	Untitled
-204 220 184	Untitled
-200 220 184	Untitled
-200 220 184	Untitled
-200 220 184	Untitled
-196 216 184	Untitled
-196 216 184	Untitled
-196 216 184	Untitled
-192 212 184	Untitled
-192 212 184	Untitled
-192 212 180	Untitled
-188 212 180	Untitled
-188 208 180	Untitled
-188 208 180	Untitled
-184 208 180	Untitled
-184 204 180	Untitled
-184 204 180	Untitled
-180 204 180	Untitled
-180 204 180	Untitled
-180 200 180	Untitled
-176 200 180	Untitled
-176 200 180	Untitled
-176 196 180	Untitled
-172 196 180	Untitled
-172 196 180	Untitled
-172 196 180	Untitled
-172 192 180	Untitled
-168 192 176	Untitled
-168 192 176	Untitled
-168 188 176	Untitled
-164 188 176	Untitled
-164 188 176	Untitled
-164 188 176	Untitled
-160 184 176	Untitled
-160 184 176	Untitled
-160 184 176	Untitled
-156 180 176	Untitled
-156 180 176	Untitled
diff --git a/krita/data/palettes/Khaki.gpl b/krita/data/palettes/Khaki.gpl
deleted file mode 100644
index 88ea22387..000000000
--- a/krita/data/palettes/Khaki.gpl
+++ /dev/null
@@ -1,258 +0,0 @@
-GIMP Palette
-Name: Khaki
-#
-144 132 108	Untitled
-144 132 112	Untitled
-144 132 112	Untitled
-144 132 116	Untitled
-144 136 116	Untitled
-144 136 120	Untitled
-144 136 120	Untitled
-144 140 120	Untitled
-144 140 124	Untitled
-144 140 124	Untitled
-144 140 128	Untitled
-144 144 128	Untitled
-144 144 132	Untitled
-144 144 132	Untitled
-144 144 136	Untitled
-144 148 136	Untitled
-144 148 136	Untitled
-144 148 140	Untitled
-144 152 140	Untitled
-144 152 144	Untitled
-144 152 144	Untitled
-144 152 148	Untitled
-144 156 148	Untitled
-144 156 152	Untitled
-144 156 152	Untitled
-144 160 152	Untitled
-144 160 156	Untitled
-144 160 156	Untitled
-144 160 160	Untitled
-144 164 160	Untitled
-144 164 164	Untitled
-144 164 164	Untitled
-144 164 168	Untitled
-144 168 168	Untitled
-144 168 168	Untitled
-144 168 172	Untitled
-144 172 172	Untitled
-144 172 176	Untitled
-144 172 176	Untitled
-144 172 180	Untitled
-144 176 180	Untitled
-144 176 184	Untitled
-144 176 184	Untitled
-144 180 184	Untitled
-144 180 188	Untitled
-144 180 188	Untitled
-144 180 192	Untitled
-144 184 192	Untitled
-144 184 196	Untitled
-144 184 196	Untitled
-144 184 196	Untitled
-148 188 192	Untitled
-148 188 192	Untitled
-152 188 192	Untitled
-152 188 192	Untitled
-152 188 188	Untitled
-156 188 188	Untitled
-156 188 188	Untitled
-156 188 188	Untitled
-160 188 184	Untitled
-160 188 184	Untitled
-160 188 184	Untitled
-164 188 184	Untitled
-164 188 180	Untitled
-164 192 180	Untitled
-168 192 180	Untitled
-168 192 180	Untitled
-168 192 180	Untitled
-172 192 176	Untitled
-172 192 176	Untitled
-172 192 176	Untitled
-176 192 176	Untitled
-176 192 172	Untitled
-176 192 172	Untitled
-180 192 172	Untitled
-180 192 172	Untitled
-180 192 168	Untitled
-184 192 168	Untitled
-184 196 168	Untitled
-184 196 168	Untitled
-188 196 164	Untitled
-188 196 164	Untitled
-188 196 164	Untitled
-192 196 164	Untitled
-192 196 164	Untitled
-192 196 160	Untitled
-196 196 160	Untitled
-196 196 160	Untitled
-196 196 160	Untitled
-200 196 156	Untitled
-200 196 156	Untitled
-200 200 156	Untitled
-204 200 156	Untitled
-204 200 152	Untitled
-204 200 152	Untitled
-208 200 152	Untitled
-208 200 152	Untitled
-208 200 148	Untitled
-212 200 148	Untitled
-212 200 148	Untitled
-212 200 148	Untitled
-216 200 148	Untitled
-216 200 144	Untitled
-216 200 144	Untitled
-220 200 144	Untitled
-220 204 144	Untitled
-220 204 140	Untitled
-224 204 140	Untitled
-224 204 140	Untitled
-224 204 140	Untitled
-228 204 136	Untitled
-228 204 136	Untitled
-228 204 136	Untitled
-232 204 136	Untitled
-232 204 132	Untitled
-232 204 132	Untitled
-236 204 132	Untitled
-236 204 132	Untitled
-236 204 132	Untitled
-232 200 128	Untitled
-232 200 128	Untitled
-232 200 128	Untitled
-228 200 128	Untitled
-228 196 128	Untitled
-228 196 124	Untitled
-224 196 124	Untitled
-224 196 124	Untitled
-224 196 124	Untitled
-220 192 124	Untitled
-220 192 124	Untitled
-220 192 120	Untitled
-216 192 120	Untitled
-216 192 120	Untitled
-216 188 120	Untitled
-212 188 120	Untitled
-212 188 120	Untitled
-212 188 116	Untitled
-208 188 116	Untitled
-208 184 116	Untitled
-208 184 116	Untitled
-204 184 116	Untitled
-204 184 116	Untitled
-204 184 112	Untitled
-204 180 112	Untitled
-200 180 112	Untitled
-200 180 112	Untitled
-200 180 112	Untitled
-196 180 108	Untitled
-196 176 108	Untitled
-196 176 108	Untitled
-192 176 108	Untitled
-192 176 108	Untitled
-192 176 108	Untitled
-188 172 104	Untitled
-188 172 104	Untitled
-188 172 104	Untitled
-184 172 104	Untitled
-184 172 104	Untitled
-184 168 104	Untitled
-180 168 100	Untitled
-180 168 100	Untitled
-180 168 100	Untitled
-176 168 100	Untitled
-176 164 100	Untitled
-176 164 100	Untitled
-176 164  96	Untitled
-172 164  96	Untitled
-172 164  96	Untitled
-172 160  96	Untitled
-168 160  96	Untitled
-168 160  92	Untitled
-168 160  92	Untitled
-164 160  92	Untitled
-164 156  92	Untitled
-164 156  92	Untitled
-160 156  92	Untitled
-160 156  88	Untitled
-160 156  88	Untitled
-156 152  88	Untitled
-156 152  88	Untitled
-156 152  88	Untitled
-152 152  88	Untitled
-152 152  84	Untitled
-152 148  84	Untitled
-148 148  84	Untitled
-148 148  84	Untitled
-148 148  84	Untitled
-148 148  84	Untitled
-144 144  80	Untitled
-144 144  80	Untitled
-144 144  80	Untitled
-140 144  80	Untitled
-140 140  80	Untitled
-140 140  76	Untitled
-136 140  76	Untitled
-136 140  76	Untitled
-136 140  76	Untitled
-132 136  76	Untitled
-132 136  76	Untitled
-132 136  72	Untitled
-128 136  72	Untitled
-128 136  72	Untitled
-128 132  72	Untitled
-124 132  72	Untitled
-124 132  72	Untitled
-124 132  68	Untitled
-120 132  68	Untitled
-120 128  68	Untitled
-120 128  68	Untitled
-116 128  68	Untitled
-116 128  68	Untitled
-116 128  64	Untitled
-116 124  64	Untitled
-112 124  64	Untitled
-112 124  64	Untitled
-112 124  64	Untitled
-108 124  60	Untitled
-108 120  60	Untitled
-108 120  60	Untitled
-104 120  60	Untitled
-104 120  60	Untitled
-104 120  60	Untitled
-100 116  56	Untitled
-100 116  56	Untitled
-100 116  56	Untitled
- 96 116  56	Untitled
- 96 116  56	Untitled
- 96 112  56	Untitled
- 92 112  52	Untitled
- 92 112  52	Untitled
- 92 112  52	Untitled
- 88 112  52	Untitled
- 88 108  52	Untitled
- 88 108  52	Untitled
- 88 108  48	Untitled
- 84 108  48	Untitled
- 84 108  48	Untitled
- 84 104  48	Untitled
- 80 104  48	Untitled
- 80 104  44	Untitled
- 80 104  44	Untitled
- 76 104  44	Untitled
- 76 100  44	Untitled
- 76 100  44	Untitled
- 72 100  44	Untitled
- 72 100  40	Untitled
- 72 100  40	Untitled
- 68  96  40	Untitled
- 68  96  40	Untitled
- 68  96  40	Untitled
- 64  96  40	Untitled
- 64  96  36	Untitled
- 64  92  36	Untitled
- 60  92  36	Untitled
- 60  92  36	Untitled
diff --git a/krita/data/palettes/Lights.gpl b/krita/data/palettes/Lights.gpl
deleted file mode 100644
index d2330496a..000000000
--- a/krita/data/palettes/Lights.gpl
+++ /dev/null
@@ -1,28 +0,0 @@
-GIMP Palette
-Name: Lights
-#
-255 250 250	Snow
-248 248 255	Ghost White
-245 245 245	White Smoke
-220 220 220	Gainsboro
-255 250 240	Floral White
-253 245 230	Old Lace
-250 240 230	Linen
-250 235 215	Antique White
-255 239 213	Papaya Whip
-255 235 205	Blanched Almond
-255 228 196	Bisque
-255 218 185	Peach Puff
-255 222 173	Navajo White
-255 228 181	Moccasin
-255 248 220	Cornsilk
-255 255 240	Ivory
-255 250 205	Lemon Chiffon
-255 245 238	Seashell
-240 255 240	Honeydew
-245 255 250	Mint Cream
-240 255 255	Azure
-240 248 255	Alice Blue
-230 230 250	Lavender
-255 228 225	Misty Rose
-255 255 255	White
diff --git a/krita/data/palettes/Madeira.gpl b/krita/data/palettes/Madeira.gpl
deleted file mode 100644
index fbf7c30ac..000000000
--- a/krita/data/palettes/Madeira.gpl
+++ /dev/null
@@ -1,372 +0,0 @@
-GIMP Palette
-Name: Madeira
-#
-  0   0   0	Black Black
-243 232 209	Ecru Ecru
-252 252 252	White White
-249 247 219	101 Lemon - VY LT
-249 245 182	102 Lemon - LT
-247 230 127	103 Lemon - MED
-255 222  68	104 Lemon - DK
-255 212  37	105 Lemon - VY DK
-255 196  16	106 Canary Yellow - BRIGHT
-255 175   5	107 Topaz - MED
-255 203  63	108 Topaz - LT
-255 209  73	109 Topaz - VY LT
-255 221 104	110 Topaz - ULT VY LT
-255 232 135	111 Yellow - VY LT
-255 217 126	112 Yellow - LT
-255 188  35	113 Yellow - MED
-245 136  52	114 Yellow - DK
-245 115   0	201 Tangerine - LT
-245 105   0	202 Tangerine
-245  94   0	203 Tangerine - MED
-245  84   0	204 Tangerine - DK
-250  63   0	205 Tangerine - VY DK
-245   5   5	206 Orange Red
-244  42  42	207 Orange
-206   0  21	208 Orange - DK
-226   0  21	209 Orange - VY DK
-212   0  21	210 Christmas Red - LT
-191   0  21	211 Christmas Red - BRIGHT
-207   0  40	212 Christmas Red - DK
-236  17  67	213 Coral - DK
-236  65  77	214 Coral - MED
-245 102  73	301 Peach - MED
-245 123  94	302 Peach - LT
-245 112 105	303 Coral
-245 177 177	304 Coral - LT
-234 201 191	305 Coral - VY LT
-244 211 191	306 Coral - ULT VY LT
-236 118  73	307 Copper - ULT VY LT
-236 108  63	308 Copper - VY LT
-236  82  37	309 Copper - LT
-215 108  73	310 Copper - MED LT
-215  87  52	311 Copper - MED
-173  34  21	312 Copper - MED DK
-163   7  21	313 Copper - DK
-121   7  21	314 Copper - VY DK
-152  41  45	401 Terracotta
-174  79  65	402 Terracotta - MED LT
-216 131 117	403 Terracotta - LT
-239 168 169	404 Salmon - LT
-218 127 137	405 Salmon - MED
-201  74  82	406 Salmon - DK
-152   0   0	407 Salmon - VY DK
-248 112 143	408 Rose
-244  81 111	409 Rose - MED
-213  52  64	410 Rose - DK
-224  31  53	411 Pink - VY DK
-224  42  74	412 Pink - DK
-235  63 111	413 Pink - MED
-235 105 137	414 Pink
-250 209 202	501 Baby Pink - VY LT
-253 200 205	502 Baby Pink - LT
-253 190 205	503 Baby Pink - MED LT
-255 123 165	504 Baby Pink - MED
-236 112 154	505 Baby Pink - DK
-215  70 112	506 Baby Pink - VY DK
-184   0  60	507 Red
-157   0  39	508 Red - MED DK
-147   0  17	509 Red - DK
-180   0  21	510 Christmas Red
-159   0  31	511 Garnet
-149   0  31	512 Garnet - MED
-128   0  31	513 Garnet - DK
- 96   0  31	514 Garnet - VY DK
- 81   0   5	601 Plum - VY DK
-116  20  49	602 Plum - DK
-148  39  66	603 Plum - MED
-168  59  91	604 Plum
-205 107 137	605 Plum - LT
-248 160 185	606 Plum - VY LT
-253 186 200	607 Plum - ULT VY LT
-250 213 216	608 Plum - PALE
-220  95 115	609 Dusty Rose - DK
-199  74  94	610 Dusty Rose - VY DK
-221  64  94	611 Rose - MED DK
-235 117 151	612 Rose - MED LT
-236 149 182	613 Rose - LT
-236 133 182	614 Rose - VY LT
-215  76 132	701 Cerise - LT
-215   7 111	702 Cerise
-184   0  90	703 Cerise - DK
-163   0  69	704 Cerise - VY DK
-131   0  69	705 Mauve - VY DK
-158   0 108	706 Mauve - DK
-179   0 118	707 Mauve - MED DK
-190  52 129	708 Mauve - MED
-216 102 173	709 Mauve - LT
-227 144 194	710 Mauve - VY LT
-179 121 185	711 Violet - LT
-127  37 132	712 Violet - MED
-106  16 111	713 Violet - DK
- 64   0  69	714 Violet - VY DK
-201 165 203	801 Lavender - VY LT
-175 123 177	802 Lavender - LT
-159 107 177	803 Lavender - DK
-117  54 146	804 Lavender - VY DK
-105   0  73	805 Purple
-112  83  87	806 Antique Violet - DK
-175 143 155	807 Antique Violet - LT
-220 182 184	808 Antique Mauve - LT
-186 115 126	809 Antique Mauve - MED
-123  42  52	810 Antique Mauve - DK
-123   5  21	811 Shell Pink - MED DK
-195  86  95	812 Shell Pink - MED
-227 117 127	813 Shell Pink
-247 207 206	814 Shell Pink - LT
-175 178 211	901 Blue Violet - VY LT
-112 115 169	902 Blue Violet - LT
- 58  42 106	903 Blue Violet - MED
-  0  21  95	904 Cornflower Blue - VY DK
- 52  73 137	905 Cornflower Blue - DK
- 79 100 143	906 Cornflower Blue - MED
-121 142 174	907 Cornflower Blue - LT
-165 196 195	908 Blue - ULT VY LT
-144 165 195	909 Delft
- 86 128 164	910 Delft - MED
-23   96 158	911 Delft - DK
-  0  53 110	912 Royal Blue - MED
-  0  32 100	913 Royal Blue - DK
- 21  32  89	914 Royal Blue - VY DK
-187 210 215	1001 Antique Blue - VY LT
-152 181 195	1002 Antique Blue - LT
- 89 127 158	1003 Antique Blue
- 58 106 140	1004 Antique Blue - MED
- 16  74 109	1005 Antique Blue - DK
-  5  43  88	1006 Antique Blue - VY DK
-  0  28  73	1007 Blue - MED DK
-  0   7  42	1008 Blue - DK
-  0   0  31	1009 Blue - VY DK
-  0  81 132	1010 Blue - VY DK
-  0  81 122	1011 Blue - DK
- 23 107 143	1012 Blue - MED
-107 149 174	1013 Blue
-163 191 195	1014 Blue - LT
-173 201 203	1101 Blue - VY LT
-  0  84 215	1102 Electric Blue - DK
-  0 147 215	1103 Electric Blue - MED
-189 228 233	1104 Wedgewood - ULT VY LT
-107 169 188	1105 Wedgewood - LT
- 75 137 156	1106 Wedgewood - MED
- 44 106 146	1107 Wedgewood - DK
- 23 117 135	1108 Misty Blue - DK
- 52 138 146	1109 Misty Blue - MED
- 63 149 156	1110 Misty Blue - MED LT
-105 149 156	1111 Misty Blue - LT
-129 205 186	1112 Turquoise - VY LT
- 97 194 175	1113 Turquoise - LT
-  7 163 144	1114 Turquoise - MED DK
- 97 194 165	1201 Turquoise - MED
-  5 142  96	1202 Turquoise - DK
-  0 131  91	1203 Turquoise - VY DK
-  0  73  65	1204 Turquoise - ULT VY DK
-  0  84  60	1205 Blue Green
- 21 108  52	1206 Jade - DK
- 94 159 117	1207 Jade - MED
-189 233 212	1208 Jade - LT
-178 202 156	1209 Yellow Green - ULT VY LT
-189 233 201	1210 Leaf Green - VY LT
-152 207 165	1211 Leaf Green - LT
- 95 157 107	1212 Leaf Green - MED
- 47 133  81	1213 Leaf Green - DK
- 31 112  60	1214 Leaf Green - VY DK
-  0 123  60	1301 Emerald Green
-  0 112  60	1302 Emerald Green - DK
-  0 102  48	1303 Christmas Green - DK
-  0 102  40	1304 Christmas Green - BRIGHT
-  0 105   0	1305 Christmas Green - MED
- 66 158  54	1306 Chartreuse
-118 200  96	1307 Chartreuse - LT
-165 184  67	1308 Yellow Green
-226 236 219	1309 Pistachio Green - VY LT
-115 142 109	1310 Pistachio Green - LT
- 84 110  77	1311 Pistachio Green - MED
- 52  89  51	1312 Pistachio Green - DK
- 31  68  14	1313 Pistachio Green - VY DK
-  0  28  24	1314 Pistachio Green - ULT VY DK
-147 175 115	1401 Green - VY LT
-100 136  54	1402 Green - LT
- 58 105  17	1403 Green
-  0  80  31	1404 Hunter Green - VY DK
-  0  69  31	1405 Hunter Green - DK
- 47  94  23	1406 Hunter Green - MED
- 68 105  23	1407 Hunter Green
- 89 105  23	1408 Hunter Green - LT
-178 185 107	1409 Forest Green - VY LT
-150 168   0	1410 Forest Green - LT
-114 146   0	1411 Forest Green - MED
-100 147   0	1412 Forest Green - DK
- 68 126  21	1413 Forest Green - VY DK
-193 178  91	1414 Avocado Green - PALE
-185 195 103	1501 Avocado Green - VY LT
-133 153  50	1502 Avocado Green - LT
-123 143  50	1503 Avocado Green - MED LT
- 91 111  19	1504 Avocado Green - MED
- 49  38   0	1505 Fern Green - ULT VY DK
- 60  48  42	1506 Fern Green - VY DK
- 63  63   0	1507 Fern Green - DK
- 68  68   5	1508 Fern Green - MED
-130 128  91	1509 Fern Green - LT
-140 138  96	1510 Fern Green - VY LT
-180 176 157	1511 Gray Green - VY LT
-149 160 136	1512 Gray Green - LT
-123 134 100	1513 Gray Green - MED
- 60  82  47	1514 Gray Green - DK
- 60  92  47	1601 Laurel Green - DK
- 81 103  47	1602 Laurel Green - MED
-144 166  89	1603 Laurel Green - LT
-175 187 131	1604 Laurel Green - VY LT
-165 155  89	1605 Khaki Green - LT
-129 119  53	1606 Khaki Green - MED
-108  93  43	1607 Khaki Green - DK
- 97 101   0	1608 Green - DK
-147 147   0	1609 Green - MED
-200 170  68	1610 Sage Green - VY LT
-161 147   0	1611 Sage Green - LT
-115  98   0	1612 Sage Green
-126 109   0	1613 Sage Green - MED
- 94  77   0	1614 Sage Green - DK
-169 180 165	1701 Sea Foam Green - LT
-137 159 144	1702 Sea Foam Green
- 95 117 102	1703 Sea Foam Green - MED
- 74  96  81	1704 Sea Foam Green - DK
- 21  63  42	1705 Sea Foam Green - ULT DK
-  0  63  73	1706 Blue Gray - DK
- 73 105 115	1707 Blue Gray - MED
-175 185 193	1708 Blue Gray - LT
-175 170 159	1709 Blue Gray - VY LT
-146 164 179	1710 Dusty Blue - LT
- 72 111 127	1711 Dusty Blue - MED
- 51  90 116	1712 Dusty Blue - DK
- 21   0  42	1713 Blue - BLACK
- 97  88 105	1714 Steel Gray - DK
-108  98 108	1801 Steel Gray - MED
-134 130 139	1802 Steel Gray - LT
-153 140 150	1803 Steel Gray - VY LT
-213 208 212	1804 Pearl Gray - VY LT
-213 217 212	1805 Gray Green - ULT VY LT
-166 143 151	1806 Shell Gray - LT
-157 143 151	1807 Shell Gray - MED
-132 111 119	1808 Shell Gray - DK
- 79  69  67	1809 Shell Gray - VY DK
- 58  38  46	1810 Shell Gray - ULT VY DK
- 91  82  67	1811 Beaver Gray - DK
-123 115  98	1812 Beaver Gray - MED
-138 137 119	1813 Beaver Gray - LT
-178 172 156	1814 Beaver Gray - VY LT
-205 203 195	1901 Beige Gray - LT
-179 169 153	1902 Beige Gray - MED
-148 127 111	1903 Beige Gray - DK
- 64  43  27	1904 Beige Gray - ULT VY DK
-106  85  59	1905 Beige Gray - VY DK
-153 127 101	1906 Beige Gray
-216 190 174	1907 Beige Gray - MED LT
-237 221 206	1908 Beige Brown - ULT VY LT
-216 191 176	1909 Beige Brown - VY LT
-213 179 164	1910 Beige Brown - LT
-171 137 122	1911 Beige Brown - MED
-150 112  96	1912 Beige Brown - DK
-118  81  65	1913 Beige Brown - VY DK
- 87  49  17	1914 Beige Brown - ULT VY DK
-216 200 185	2001 Mocha Brown - LT
-150 127  90	2002 Mocha Brown - MED
- 54  23   0	2003 Brown - DK
- 42  21   0	2004 Black Brown
- 73  26   0	2005 Chocolate
- 63  26   0	2006 Tan - ULT VY DK
- 84  37  31	2007 Tan - VY DK
-110  52  31	2008 Tan - DK
-131  63  21	2009 Tan - MED DK
-173  94  52	2010 Tan - MED
-199 126  73	2011 Tan
-231 168  94	2012 Tan - LT
-241 188 126	2013 Tan - VY LT
-248 219 178	2014 Tan - ULT VY LT
-255 247 231	2101 Cream
-220 166 105	2102 Hazelnut Brown - LT
-178 124  63	2103 Hazelnut Brown - LT
-157 102  42	2104 Hazelnut Brown - MED
-110  64   5	2105 Hazelnut Brown - DK
- 79  43   5	2106 Drab Brown - VY DK
- 90  63   5	2107 Drab Brown - DK
-159 124  84	2108 Drab Brown - MED
-212 181 147	2109 Drab Brown - LT
-170 160 105	2110 Avocado - LT
-160 129  63	2111 Avocado - MED
-118  97  31	2112 Avocado - DK
-103  55   0	2113 Hazelnut Brown - VY DK
-103  66   0	2114 Avocado - VY DK
-145  97   0	2201 Old Gold - DK
-155 118   0	2202 Old Gold - MED
-197 139  42	2203 Old Gold
-208 150  52	2204 Old Gold - LT
-246 229 168	2205 Old Gold - VY LT
-213 186 110	2206 Avocado - VY LT
-249 228 163	2207 Gold - VY LT
-229 181 105	2208 Gold - LT
-197 139  52	2209 Gold - MED
-187 118  21	2210 Gold - DK
-197  97   0	2211 Topaz - MED DK
-197 113  21	2212 Topaz - DK
-155  82   0	2213 Topaz - VY DK
-134  71   0	2214 Topaz - ULT VY DK
-229 132  68	2301 Golden Brown - VY LT
-218 101  42	2302 Golden Brown - LT
-155  50   0	2303 Golden Brown - MED
-145  50  42	2304 Mahogany - DK
-171  29   0	2305 Mahogany - MED
-181  61  31	2306 Mahogany - LT
-236 145  65	2307 Mahogany - VY LT
-255 220 199	2308 Flesh - LT
-245 189 168	2309 Flesh - MED
-217 116 119	2310 Flesh - DK
-127  55  63	2311 Peach Flesh - VY DK
-193 107  93	2312 Peach Flesh - MED
-241 169 148	2313 Peach Flesh
-255 236 215	2314 Golden Brown - VY LT
-248 248 248	2402 Off White
-253 253 248	2403 Winter White
-100   0  31	2501 Bright Terracotta - DK
-148   0  42	2502 Bright Terracotta - MED
-255 175 146	2503 Bright Terracotta - LT
-224 236 226	2504 Wedgewood - VY LT
-  0  89 112	2505 Wedgewood - VY DK
-  0 131 136	2506 Misty Green - BRIGHT
-  0 105  95	2507 Misty Green - DK
- 90 142 144	2508 Misty Green - MED
-234 171  73	2509 Golden Yellow - BRIGHT
-196 157  76	2510 Golden Yellow - DK
-238 229 193	2511 Golden Yellow - LT
-238 223 182	2512 Golden Brown - LT
-244 166  93	2513 Golden Brown - BRIGHT
-213 134  72	2514 Golden Brown - MED
-153 110 100	2601 Coffee Brown - VY LT
-110  42  21	2602 Coffee Brown - LT
- 63  89  52	2603 Nile Green - LT
-136 178 136	2604 Nile Green - DK
-245 175 156	2605 Peach - VY LT
- 89   0  31	2606 Peach - ULT VY DK
- 58   0  31	2607 Antique Plum - VY DK
- 79   0  42	2608 Antique Plum - DK
-121  31  84	2609 Antique Plum - MED
-215 163 175	2610 Antique Plum - LT
-179 169 169	2611 Dusty Violet - LT
-164 149 164	2612 Dusty Violet - MED
-136 110 136	2613 Dusty Violet - DK
- 94  68  94	2614 Dusty Violet - VY DK
-  0   0  52	2701 Blue Violet - DK
- 77  96 147	2702 Blue Violet - VY DK
-199 189  42	2703 Yellow Green - LT
-  0  69  35	2704 Christmas Green - DK
-  0  91  87	2705 Misty Turquoise - MED
-  0 133 118	2706 Misty Turquoise - DK
-243 117 154	2707 Bright Pink - LT
-216   0  56	2708 Bright Pink - MED
- 47   0  84	2709 Antique Lavender - LT
- 79  31 115	2710 Antique Lavender - MED
-152 136 178	2711 Antique Lavender - DK
-227 185 195	2712 Pink Purple - LT
-190 131 157	2713 Pink Purple - MED
-115  31  98	2714 Pink Purple - DK
diff --git a/krita/data/palettes/Makefile.am b/krita/data/palettes/Makefile.am
deleted file mode 100644
index bd0166ca9..000000000
--- a/krita/data/palettes/Makefile.am
+++ /dev/null
@@ -1,50 +0,0 @@
-kritapalettesdir = $(prefix)/share/apps/krita/palettes
-
-kritapalettes_DATA = \
-    40_Colors.gpl \
-    Anchor.gpl \
-    Bears.gpl \
-    Bgold.gpl \
-    Blues.gpl \
-    Borders.gpl \
-    Browns_And_Yellows.gpl \
-    Caramel.gpl \
-    Cascade.gpl \
-    China.gpl \
-    Coldfire.gpl \
-    Cool_Colors.gpl \
-    Cranes.gpl \
-    Dark_pastels.gpl \
-    Default.gpl \
-    DMC.gpl \
-    Ega.gpl \
-    Firecode.gpl \
-    Gold.gpl \
-    Grayblue.gpl \
-    Grays.gpl \
-    GrayViolet.gpl \
-    Greens.gpl \
-    Hilite.gpl \
-    Khaki.gpl \
-    Lights.gpl \
-    Madeira.gpl \
-    Makefile.am \
-    Makefile.in \
-    Muted.gpl \
-    Named_Colors.gpl \
-    new_kde.gpl \
-    News3.gpl \
-    Op2.gpl \
-    Paintjet.gpl \
-    Pantone_Coated_Approx.gpl \
-    Pastels.gpl \
-    Plasma.gpl \
-    Reds_And_Purples.gpl \
-    Reds.gpl \
-    Royal.gpl \
-    Topographic.gpl \
-    Visibone_2.gpl \
-    Visibone.gpl \
-    Volcano.gpl \
-    Warm_Colors.gpl \
-    Web.gpl 
diff --git a/krita/data/palettes/Muted.gpl b/krita/data/palettes/Muted.gpl
deleted file mode 100644
index 9d32a02df..000000000
--- a/krita/data/palettes/Muted.gpl
+++ /dev/null
@@ -1,81 +0,0 @@
-GIMP Palette
-Name: Muted
-#
-139 137 137	Snow
-139 134 130	Seashell
-139 131 120	Antique White
-139 125 107	Bisque
-139 119 101	Peach Puff
-139 121  94	Navajo White
-139 137 112	Lemon Chiffon
-139 136 120	Cornsilk
-139 139 131	Ivory
-131 139 131	Honeydew
-139 131 134	Lavender Blush
-139 125 123	Misty Rose
-131 139 139	Azure
- 71  60 139	Slate Blue
- 39  64 139	Royal Blue
-  0   0 139	Blue
- 16  78 139	Dodger Blue
- 54 100 139	Steel Blue
-  0 104 139	Deep Sky Blue
- 74 112 139	Sky Blue
- 96 123 139	Light Sky Blue
-108 123 139	Slate Gray
-110 123 139	Light Steel Blue
-104 131 139	Light Blue
-122 139 139	Light Cyan
-102 139 139	Pale Turquoise
- 83 134 139	Cadet Blue
-  0 134 139	Turquoise
-  0 139 139	Cyan
- 82 139 139	Dark Slate Gray
- 69 139 116	Aquamarine
-105 139 105	Dark Sea Green
- 46 139  87	Sea Green
- 84 139  84	Pale Green
-  0 139  69	Spring Green
-  0 139   0	Green
- 69 139   0	Chartreuse
-105 139  34	Olive Drab
-110 139  61	Dark Olive Green
-139 134  78	Khaki
-139 129  76	Light Goldenrod
-139 139 122	Light Yellow
-139 139   0	Yellow
-139 117   0	Gold
-139 105  20	Goldenrod
-139 101   8	Dark Goldenrod
-139 105 105	Rosy Brown
-139  58  58	Indian Red
-139  71  38	Sienna
-139 115  85	Burlywood
-139 126 102	Wheat
-139  90  43	Tan
-139  69  19	Chocolate
-139  26  26	Firebrick
-139  35  35	Brown
-139  76  57	Salmon
-139  87  66	Light Salmon
-139  90   0	Orange
-139  69   0	Dark Orange
-139  62  47	Coral
-139  54  38	Tomato
-139  37   0	Orange Red
-139   0   0	Red
-139  10  80	Deep Pink
-139  58  98	Hot Pink
-139  99 108	Pink
-139  95 101	Light Pink
-139  71  93	Pale Violet Red
-139  28  98	Maroon
-139  34  82	Violet Red
-139   0 139	Magenta
-139  71 137	Orchid
-139 102 139	Plum
-122  55 139	Medium Orchid
-104  34 139	Dark Orchid
- 85  26 139	Purple
- 93  71 139	Medium Purple
-139 123 139	Thistle
diff --git a/krita/data/palettes/Named_Colors.gpl b/krita/data/palettes/Named_Colors.gpl
deleted file mode 100644
index ce7af0238..000000000
--- a/krita/data/palettes/Named_Colors.gpl
+++ /dev/null
@@ -1,452 +0,0 @@
-GIMP Palette
-Name: Named Colors
-Columns: 16
-#
-255 250 250	snow (255 250 250)
-248 248 255	ghost white (248 248 255)
-245 245 245	white smoke (245 245 245)
-220 220 220	gainsboro (220 220 220)
-255 250 240	floral white (255 250 240)
-253 245 230	old lace (253 245 230)
-250 240 230	linen (250 240 230)
-250 235 215	antique white (250 235 215)
-255 239 213	papaya whip (255 239 213)
-255 235 205	blanched almond (255 235 205)
-255 228 196	bisque (255 228 196)
-255 218 185	peach puff (255 218 185)
-255 222 173	navajo white (255 222 173)
-255 228 181	tqmoccasin (255 228 181)
-255 248 220	cornsilk (255 248 220)
-255 255 240	ivory (255 255 240)
-255 250 205	lemon chiffon (255 250 205)
-255 245 238	seashell (255 245 238)
-240 255 240	honeydew (240 255 240)
-245 255 250	mint cream (245 255 250)
-240 255 255	azure (240 255 255)
-240 248 255	alice blue (240 248 255)
-230 230 250	lavender (230 230 250)
-255 240 245	lavender blush (255 240 245)
-255 228 225	misty rose (255 228 225)
-255 255 255	white (255 255 255)
-  0   0   0	black (  0   0   0)
- 47  79  79	dark slate gray ( 47  79  79)
-105 105 105	dim gray (105 105 105)
-112 128 144	slate gray (112 128 144)
-119 136 153	light slate gray (119 136 153)
-190 190 190	gray (190 190 190)
-211 211 211	light gray (211 211 211)
- 25  25 112	midnight blue ( 25  25 112)
-  0   0 128	navy blue (  0   0 128)
-100 149 237	cornflower blue (100 149 237)
- 72  61 139	dark slate blue ( 72  61 139)
-106  90 205	slate blue (106  90 205)
-123 104 238	medium slate blue (123 104 238)
-132 112 255	light slate blue (132 112 255)
-  0   0 205	medium blue (  0   0 205)
- 65 105 225	royal blue ( 65 105 225)
-  0   0 255	blue (  0   0 255)
- 30 144 255	dodger blue ( 30 144 255)
-  0 191 255	deep sky blue (  0 191 255)
-135 206 235	sky blue (135 206 235)
-135 206 250	light sky blue (135 206 250)
- 70 130 180	steel blue ( 70 130 180)
-176 196 222	light steel blue (176 196 222)
-173 216 230	light blue (173 216 230)
-176 224 230	powder blue (176 224 230)
-175 238 238	pale turquoise (175 238 238)
-  0 206 209	dark turquoise (  0 206 209)
- 72 209 204	medium turquoise ( 72 209 204)
- 64 224 208	turquoise ( 64 224 208)
-  0 255 255	cyan (  0 255 255)
-224 255 255	light cyan (224 255 255)
- 95 158 160	cadet blue ( 95 158 160)
-102 205 170	medium aquamarine (102 205 170)
-127 255 212	aquamarine (127 255 212)
-  0 100   0	dark green (  0 100   0)
- 85 107  47	dark olive green ( 85 107  47)
-143 188 143	dark sea green (143 188 143)
- 46 139  87	sea green ( 46 139  87)
- 60 179 113	medium sea green ( 60 179 113)
- 32 178 170	light sea green ( 32 178 170)
-152 251 152	pale green (152 251 152)
-  0 255 127	spring green (  0 255 127)
-124 252   0	lawn green (124 252   0)
-  0 255   0	green (  0 255   0)
-127 255   0	chartreuse (127 255   0)
-  0 250 154	medium spring green (  0 250 154)
-173 255  47	green yellow (173 255  47)
- 50 205  50	lime green ( 50 205  50)
-154 205  50	yellow green (154 205  50)
- 34 139  34	forest green ( 34 139  34)
-107 142  35	olive drab (107 142  35)
-189 183 107	dark khaki (189 183 107)
-240 230 140	khaki (240 230 140)
-238 232 170	pale goldenrod (238 232 170)
-250 250 210	light goldenrod yellow (250 250 210)
-255 255 224	light yellow (255 255 224)
-255 255   0	yellow (255 255   0)
-255 215   0	gold (255 215   0 )
-238 221 130	light goldenrod (238 221 130)
-218 165  32	goldenrod (218 165  32)
-184 134  11	dark goldenrod (184 134  11)
-188 143 143	rosy brown (188 143 143)
-205  92  92	indian red (205  92  92)
-139  69  19	saddle brown (139  69  19)
-160  82  45	sienna (160  82  45)
-205 133  63	peru (205 133  63)
-222 184 135	burlywood (222 184 135)
-245 245 220	beige (245 245 220)
-245 222 179	wheat (245 222 179)
-244 164  96	sandy brown (244 164  96)
-210 180 140	tan (210 180 140)
-210 105  30	chocolate (210 105  30)
-178  34  34	firebrick (178  34  34)
-165  42  42	brown (165  42  42)
-233 150 122	dark salmon (233 150 122)
-250 128 114	salmon (250 128 114)
-255 160 122	light salmon (255 160 122)
-255 165   0	orange (255 165   0)
-255 140   0	dark orange (255 140   0)
-255 127  80	coral (255 127  80)
-240 128 128	light coral (240 128 128)
-255  99  71	tomato (255  99  71)
-255  69   0	orange red (255  69   0)
-255   0   0	red (255   0   0)
-255 105 180	hot pink (255 105 180)
-255  20 147	deep pink (255  20 147)
-255 192 203	pink (255 192 203)
-255 182 193	light pink (255 182 193)
-219 112 147	pale violet red (219 112 147)
-176  48  96	maroon (176  48  96)
-199  21 133	medium violet red (199  21 133)
-208  32 144	violet red (208  32 144)
-255   0 255	magenta (255   0 255)
-238 130 238	violet (238 130 238)
-221 160 221	plum (221 160 221)
-218 112 214	orchid (218 112 214)
-186  85 211	medium orchid (186  85 211)
-153  50 204	dark orchid (153  50 204)
-148   0 211	dark violet (148   0 211)
-138  43 226	blue violet (138  43 226)
-160  32 240	purple (160  32 240)
-147 112 219	medium purple (147 112 219)
-216 191 216	thistle (216 191 216)
-255 250 250	snow 1 (255 250 250)
-238 233 233	snow 2 (238 233 233)
-205 201 201	snow 3 (205 201 201)
-139 137 137	snow 4 (139 137 137)
-255 245 238	seashell 1 (255 245 238)
-238 229 222	seashell 2 (238 229 222)
-205 197 191	seashell 3 (205 197 191)
-139 134 130	seashell 4 (139 134 130)
-255 239 219	antique white 1 (255 239 219)
-238 223 204	antique white 2 (238 223 204)
-205 192 176	antique white 3 (205 192 176)
-139 131 120	antique white 4 (139 131 120)
-255 228 196	bisque 1 (255 228 196)
-238 213 183	bisque 2 (238 213 183)
-205 183 158	bisque 3 (205 183 158)
-139 125 107	bisque 4 (139 125 107)
-255 218 185	peach puff 1 (255 218 185)
-238 203 173	peach puff 2 (238 203 173)
-205 175 149	peach puff 3 (205 175 149)
-139 119 101	peach puff 4 (139 119 101)
-255 222 173	navajo white 1 (255 222 173)
-238 207 161	navajo white 2 (238 207 161)
-205 179 139	navajo white 3 (205 179 139)
-139 121  94	navajo white 4 (139 121  94)
-255 250 205	lemon chiffon 1 (255 250 205)
-238 233 191	lemon chiffon 2 (238 233 191)
-205 201 165	lemon chiffon 3 (205 201 165)
-139 137 112	lemon chiffon 4 (139 137 112)
-255 248 220	cornsilk 1 (255 248 220)
-238 232 205	cornsilk 2 (238 232 205)
-205 200 177	cornsilk 3 (205 200 177)
-139 136 120	cornsilk 4 (139 136 120)
-255 255 240	ivory 1 (255 255 240)
-238 238 224	ivory 2 (238 238 224)
-205 205 193	ivory 3 (205 205 193)
-139 139 131	ivory 4 (139 139 131)
-240 255 240	honeydew 1 (240 255 240)
-224 238 224	honeydew 2 (224 238 224)
-193 205 193	honeydew 3 (193 205 193)
-131 139 131	honeydew 4 (131 139 131)
-255 240 245	lavender blush 1 (255 240 245)
-238 224 229	lavender blush 2 (238 224 229)
-205 193 197	lavender blush 3 (205 193 197)
-139 131 134	lavender blush 4 (139 131 134)
-255 228 225	misty rose 1 (255 228 225)
-238 213 210	misty rose 2 (238 213 210)
-205 183 181	misty rose 3 (205 183 181)
-139 125 123	misty rose 4 (139 125 123)
-240 255 255	azure 1 (240 255 255)
-224 238 238	azure 2 (224 238 238)
-193 205 205	azure 3 (193 205 205)
-131 139 139	azure 4 (131 139 139)
-131 111 255	slate blue 1 (131 111 255)
-122 103 238	slate blue 2 (122 103 238)
-105  89 205	slate blue 3 (105  89 205)
- 71  60 139	slate blue 4 ( 71  60 139)
- 72 118 255	royal blue 1 ( 72 118 255)
- 67 110 238	royal blue 2 ( 67 110 238)
- 58  95 205	royal blue 3 ( 58  95 205)
- 39  64 139	royal blue 4 ( 39  64 139)
-  0   0 255	blue 1 (  0   0 255)
-  0   0 238	blue 2 (  0   0 238)
-  0   0 205	blue 3 (  0   0 205)
-  0   0 139	blue 4 (  0   0 139)
- 30 144 255	dodger blue 1 ( 30 144 255)
- 28 134 238	dodger blue 2 ( 28 134 238)
- 24 116 205	dodger blue 3 ( 24 116 205)
- 16  78 139	dodger blue 4 ( 16  78 139)
- 99 184 255	steel blue 1 ( 99 184 255)
- 92 172 238	steel blue 2 ( 92 172 238)
- 79 148 205	steel blue 3 ( 79 148 205)
- 54 100 139	steel blue 4 ( 54 100 139)
-  0 191 255	deep sky blue 1 (  0 191 255)
-  0 178 238	deep sky blue 2 (  0 178 238)
-  0 154 205	deep sky blue 3 (  0 154 205)
-  0 104 139	deep sky blue 4 (  0 104 139)
-135 206 255	sky blue 1 (135 206 255)
-126 192 238	sky blue 2 (126 192 238)
-108 166 205	sky blue 3 (108 166 205)
- 74 112 139	sky blue 4 ( 74 112 139)
-176 226 255	light sky blue 1 (176 226 255)
-164 211 238	light sky blue 2 (164 211 238)
-141 182 205	light sky blue 3 (141 182 205)
- 96 123 139	light sky blue 4 ( 96 123 139)
-198 226 255	slate gray 1 (198 226 255)
-185 211 238	slate gray 2 (185 211 238)
-159 182 205	slate gray 3 (159 182 205)
-108 123 139	slate gray 4 (108 123 139)
-202 225 255	light steel blue 1 (202 225 255)
-188 210 238	light steel blue 2 (188 210 238)
-162 181 205	light steel blue 3 (162 181 205)
-110 123 139	light steel blue 4 (110 123 139)
-191 239 255	light blue 1 (191 239 255)
-178 223 238	light blue 2 (178 223 238)
-154 192 205	light blue 3 (154 192 205)
-104 131 139	light blue 4 (104 131 139)
-224 255 255	light cyan 1 (224 255 255)
-209 238 238	light cyan 2 (209 238 238)
-180 205 205	light cyan 3 (180 205 205)
-122 139 139	light cyan 4 (122 139 139)
-187 255 255	pale turquoise 1 (187 255 255)
-174 238 238	pale turquoise 2 (174 238 238)
-150 205 205	pale turquoise 3 (150 205 205)
-102 139 139	pale turquoise 4 (102 139 139)
-152 245 255	cadet blue 1 (152 245 255)
-142 229 238	cadet blue 2 (142 229 238)
-122 197 205	cadet blue 3 (122 197 205)
- 83 134 139	cadet blue 4 ( 83 134 139)
-  0 245 255	turquoise 1 (  0 245 255)
-  0 229 238	turquoise 2 (  0 229 238)
-  0 197 205	turquoise 3 (  0 197 205)
-  0 134 139	turquoise 4 (  0 134 139)
-  0 255 255	cyan 1 (  0 255 255)
-  0 238 238	cyan 2 (  0 238 238)
-  0 205 205	cyan 3 (  0 205 205)
-  0 139 139	cyan 4 (  0 139 139)
-151 255 255	dark slate gray 1 (151 255 255)
-141 238 238	dark slate gray 2 (141 238 238)
-121 205 205	dark slate gray 3 (121 205 205)
- 82 139 139	dark slate gray 4 ( 82 139 139)
-127 255 212	aquamarine 1 (127 255 212)
-118 238 198	aquamarine 2 (118 238 198)
-102 205 170	aquamarine 3 (102 205 170)
- 69 139 116	aquamarine 4 ( 69 139 116)
-193 255 193	dark sea green 1 (193 255 193)
-180 238 180	dark sea green 2 (180 238 180)
-155 205 155	dark sea green 3 (155 205 155)
-105 139 105	dark sea green 4 (105 139 105)
- 84 255 159	sea green 1 ( 84 255 159)
- 78 238 148	sea green 2 ( 78 238 148)
- 67 205 128	sea green 3 ( 67 205 128)
- 46 139  87	sea green 4 ( 46 139)
-154 255 154	pale green 1 (154 255 154)
-144 238 144	pale green 2 (144 238 144)
-124 205 124	pale green 3 (124 205 124)
- 84 139  84	pale green 4 ( 84 139)
-  0 255 127	spring green 1 (  0 255 127)
-  0 238 118	spring green 2 (  0 238 118)
-  0 205 102	spring green 3 (  0 205 102)
-  0 139  69	spring green 4 (  0 139  69)
-  0 255   0	green 1 (  0 255   0)
-  0 238   0	green 2 (  0 238   0)
-  0 205   0	green 3 (  0 205   0)
-  0 139   0	green 4 (  0 139   0)
-127 255   0	chartreuse 1 (127 255   0)
-118 238   0	chartreuse 2 (118 238   0)
-102 205   0	chartreuse 3 (102 205   0)
- 69 139   0	chartreuse 4 ( 69 139   0)
-192 255  62	olive drab 1 (192 255  62)
-179 238  58	olive drab 2 (179 238  58)
-154 205  50	olive drab 3 (154 205  50)
-105 139  34	olive drab 4 (105 139  34)
-202 255 112	dark olive green 1 (202 255 112)
-188 238 104	dark olive green 2 (188 238 104)
-162 205  90	dark olive green 3 (162 205)
-110 139  61	dark olive green 4 (110 139)
-255 246 143	khaki 1 (255 246 143)
-238 230 133	khaki 2 (238 230 133)
-205 198 115	khaki 3 (205 198 115)
-139 134  78	khaki 4 (139 134  78)
-255 236 139	light goldenrod 1 (255 236 139)
-238 220 130	light goldenrod 2 (238 220 130)
-205 190 112	light goldenrod 3 (205 190 112)
-139 129  76	light goldenrod 4 (139 129  76)
-255 255 224	light yellow 1 (255 255 224)
-238 238 209	light yellow 2 (238 238 209)
-205 205 180	light yellow 3 (205 205 180)
-139 139 122	light yellow 4 (139 139 122)
-255 255   0	yellow 1 (255 255   0)
-238 238   0	yellow 2 (238 238   0)
-205 205   0	yellow 3 (205 205   0)
-139 139   0	yellow 4 (139 139   0)
-255 215   0	gold 1 (255 215   0)
-238 201   0	gold 2 (238 201   0)
-205 173   0	gold 3 (205 173   0)
-139 117   0	gold 4 (139 117   0)
-255 193  37	goldenrod 1 (255 193  37)
-238 180  34	goldenrod 2 (238 180  34)
-205 155  29	goldenrod 3 (205 155  29)
-139 105  20	goldenrod 4 (139 105  20)
-255 185  15	dark goldenrod 1 (255 185  15)
-238 173  14	dark goldenrod 2 (238 173  14)
-205 149  12	dark goldenrod 3 (205 149  12)
-139 101   8	dark goldenrod 4 (139 101   8)
-255 193 193	rosy brown 1 (255 193 193)
-238 180 180	rosy brown 2 (238 180 180)
-205 155 155	rosy brown 3 (205 155 155)
-139 105 105	rosy brown 4 (139 105 105)
-255 106 106	indian red 1 (255 106 106)
-238  99  99	indian red 2 (238  99  99)
-205  85  85	indian red 3 (205  85  85)
-139  58  58	indian red 4 (139  58  58)
-255 130  71	sienna 1 (255 130  71)
-238 121  66	sienna 2 (238 121  66)
-205 104  57	sienna 3 (205 104  57)
-139  71  38	sienna 4 (139  71  38)
-255 211 155	burlywood 1 (255 211 155)
-238 197 145	burlywood 2 (238 197 145)
-205 170 125	burlywood 3 (205 170 125)
-139 115  85	burlywood 4 (139 115)
-255 231 186	wheat 1 (255 231 186)
-238 216 174	wheat 2 (238 216 174)
-205 186 150	wheat 3 (205 186 150)
-139 126 102	wheat 4 (139 126 102)
-255 165  79	tan 1 (255 165  79)
-238 154  73	tan 2 (238 154  73)
-205 133  63	tan 3 (205 133  63)
-139  90  43	tan 4 (139  90  43)
-255 127  36	chocolate 1 (255 127  36)
-238 118  33	chocolate 2 (238 118  33)
-205 102  29	chocolate 3 (205 102  29)
-139  69  19	chocolate 4 (139  69  19)
-255  48  48	firebrick 1 (255  48  48)
-238  44  44	firebrick 2 (238  44  44)
-205  38  38	firebrick 3 (205  38  38)
-139  26  26	firebrick 4 (139  26  26)
-255  64  64	brown 1 (255  64  64)
-238  59  59	brown 2 (238  59  59)
-205  51  51	brown 3 (205  51  51)
-139  35  35	brown 4 (139  35  35)
-255 140 105	salmon 1 (255 140 105)
-238 130  98	salmon 2 (238 130  98)
-205 112  84	salmon 3 (205 112  84)
-139  76  57	salmon 4 (139  76  57)
-255 160 122	light salmon 1 (255 160 122)
-238 149 114	light salmon 2 (238 149 114)
-205 129  98	light salmon 3 (205 129  98)
-139  87  66	light salmon 4 (139  87  66)
-255 165   0	orange 1 (255 165   0)
-238 154   0	orange 2 (238 154   0)
-205 133   0	orange 3 (205 133   0)
-139  90   0	orange 4 (139  90   0)
-255 127   0	dark orange 1 (255 127   0)
-238 118   0	dark orange 2 (238 118   0)
-205 102   0	dark orange 3 (205 102   0)
-139  69   0	dark orange 4 (139  69   0)
-255 114  86	coral 1 (255 114  86)
-238 106  80	coral 2 (238 106  80)
-205  91  69	coral 3 (205  91  69)
-139  62  47	coral 4 (139  62  47)
-255  99  71	tomato 1 (255  99  71)
-238  92  66	tomato 2 (238  92  66)
-205  79  57	tomato 3 (205  79  57)
-139  54  38	tomato 4 (139  54  38)
-255  69   0	orange red 1 (255  69   0)
-238  64   0	orange red 2 (238  64   0)
-205  55   0	orange red 3 (205  55   0)
-139  37   0	orange red 4 (139  37   0)
-255   0   0	red 1 (255   0   0)
-238   0   0	red 2 (238   0   0)
-205   0   0	red 3 (205   0   0)
-139   0   0	red 4 (139   0   0)
-255  20 147	deep pink 1 (255  20 147)
-238  18 137	deep pink 2 (238  18 137)
-205  16 118	deep pink 3 (205  16 118)
-139  10  80	deep pink 4 (139  10  80)
-255 110 180	hot pink 1 (255 110 180)
-238 106 167	hot pink 2 (238 106 167)
-205  96 144	hot pink 3 (205  96 144)
-139  58  98	hot pink 4 (139  58  98)
-255 181 197	pink 1 (255 181 197)
-238 169 184	pink 2 (238 169 184)
-205 145 158	pink 3 (205 145 158)
-139  99 108	pink 4 (139  99 108)
-255 174 185	light pink 1 (255 174 185)
-238 162 173	light pink 2 (238 162 173)
-205 140 149	light pink 3 (205 140 149)
-139  95 101	light pink 4 (139  95 101)
-255 130 171	pale violet red 1 (255 130 171)
-238 121 159	pale violet red 2 (238 121 159)
-205 104 137	pale violet red 3 (205 104 137)
-139  71  93	pale violet red 4 (139  71  93)
-255  52 179	maroon 1 (255  52 179)
-238  48 167	maroon 2 (238  48 167)
-205  41 144	maroon 3 (205  41 144)
-139  28  98	maroon 4 (139  28  98)
-255  62 150	violet red 1 (255  62 150)
-238  58 140	violet red 2 (238  58 140)
-205  50 120	violet red 3 (205  50 120)
-139  34  82	violet red 4 (139  34  82)
-255   0 255	magenta 1 (255   0 255)
-238   0 238	magenta 2 (238   0 238)
-205   0 205	magenta 3 (205   0 205)
-139   0 139	magenta 4 (139   0 139)
-255 131 250	orchid 1 (255 131 250)
-238 122 233	orchid 2 (238 122 233)
-205 105 201	orchid 3 (205 105 201)
-139  71 137	orchid 4 (139  71 137)
-255 187 255	plum 1 (255 187 255)
-238 174 238	plum 2 (238 174 238)
-205 150 205	plum 3 (205 150 205)
-139 102 139	plum 4 (139 102 139)
-224 102 255	medium orchid 1 (224 102 255)
-209  95 238	medium orchid 2 (209  95 238)
-180  82 205	medium orchid 3 (180  82 205)
-122  55 139	medium orchid 4 (122  55 139)
-191  62 255	dark orchid 1 (191  62 255)
-178  58 238	dark orchid 2 (178  58 238)
-154  50 205	dark orchid 3 (154  50 205)
-104  34 139	dark orchid 4 (104  34 139)
-155  48 255	purple 1 (155  48 255)
-145  44 238	purple 2 (145  44 238)
-125  38 205	purple 3 (125  38 205)
- 85  26 139	purple 4 ( 85  26 139)
-171 130 255	medium purple 1 (171 130 255)
-159 121 238	medium purple 2 (159 121 238)
-137 104 205	medium purple 3 (137 104 205)
- 93  71 139	medium purple 4 ( 93  71 139)
-255 225 255	thistle 1 (255 225 255)
-238 210 238	thistle 2 (238 210 238)
-205 181 205	thistle 3 (205 181 205)
-139 123 139	thistle 4 (139 123 139)
-169 169 169	dark grey (169 169 169)
-169 169 169	dark gray (169 169 169)
-  0   0 139	dark blue (0     0 139)
-  0 139 139	dark cyan (0   139 139)
-139   0 139	dark magenta (139   0 139)
-139   0   0	dark red (139   0   0)
-144 238 144	light green (144 238 144)
diff --git a/krita/data/palettes/News3.gpl b/krita/data/palettes/News3.gpl
deleted file mode 100644
index 2fb443782..000000000
--- a/krita/data/palettes/News3.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: News3
-#
-236 232   4	Untitled
-236 232   4	Untitled
-232 232   4	Untitled
-228 232   4	Untitled
-228 232   4	Untitled
-224 232   4	Untitled
-220 232   4	Untitled
-220 232   4	Untitled
-216 232   4	Untitled
-212 228   4	Untitled
-212 228   4	Untitled
-208 228   4	Untitled
-204 228   4	Untitled
-204 228   4	Untitled
-200 228   4	Untitled
-196 228   4	Untitled
-196 228   4	Untitled
-192 228   4	Untitled
-188 228   4	Untitled
-188 228   4	Untitled
-184 228   4	Untitled
-180 224   4	Untitled
-180 224   4	Untitled
-176 224   4	Untitled
-172 224   4	Untitled
-172 224   4	Untitled
-168 224   4	Untitled
-164 224   4	Untitled
-164 224   8	Untitled
-160 224   8	Untitled
-156 224   8	Untitled
-156 224   8	Untitled
-152 220   8	Untitled
-148 220   8	Untitled
-148 220   8	Untitled
-144 220   8	Untitled
-140 220   8	Untitled
-140 220   8	Untitled
-136 220   8	Untitled
-132 220   8	Untitled
-132 220   8	Untitled
-128 220   8	Untitled
-124 220   8	Untitled
-124 220   8	Untitled
-120 216   8	Untitled
-116 216   8	Untitled
-112 216   8	Untitled
-112 216   8	Untitled
-108 216   8	Untitled
-104 216   8	Untitled
-104 216   8	Untitled
-100 216   8	Untitled
- 96 216   8	Untitled
- 96 216   8	Untitled
- 92 216   8	Untitled
- 88 212   8	Untitled
- 88 212   8	Untitled
- 84 212   8	Untitled
- 80 212   8	Untitled
- 80 212  12	Untitled
- 76 212  12	Untitled
- 72 212  12	Untitled
- 72 212  12	Untitled
- 68 212  12	Untitled
- 64 212  12	Untitled
- 64 212  12	Untitled
- 60 212  12	Untitled
- 56 208  12	Untitled
- 56 208  12	Untitled
- 52 208  12	Untitled
- 48 208  12	Untitled
- 48 208  12	Untitled
- 44 208  12	Untitled
- 40 208  12	Untitled
- 40 208  12	Untitled
- 36 208  12	Untitled
- 32 208  12	Untitled
- 32 208  12	Untitled
- 28 204  12	Untitled
- 24 204  12	Untitled
- 24 204  12	Untitled
- 20 204  12	Untitled
- 16 204  12	Untitled
- 16 204  12	Untitled
- 12 204  12	Untitled
-  8 204  12	Untitled
-  8 204  12	Untitled
-  4 204  12	Untitled
-  0 204  12	Untitled
-  0 204  12	Untitled
-  8 200  28	Untitled
- 16 196  40	Untitled
- 24 192  52	Untitled
- 32 188  64	Untitled
- 40 188  76	Untitled
- 48 184  88	Untitled
- 56 180 100	Untitled
- 64 176 112	Untitled
- 72 176 124	Untitled
- 68 184 120	Untitled
- 64 188 120	Untitled
- 60 192 116	Untitled
- 56 196 116	Untitled
- 52 204 116	Untitled
- 48 208 112	Untitled
- 44 212 112	Untitled
- 40 216 112	Untitled
- 36 212 116	Untitled
- 36 212 120	Untitled
- 32 212 124	Untitled
- 32 208 124	Untitled
- 28 208 128	Untitled
- 28 208 132	Untitled
- 28 204 136	Untitled
- 24 204 136	Untitled
- 24 204 140	Untitled
- 20 200 144	Untitled
- 20 200 144	Untitled
- 20 200 148	Untitled
- 16 196 152	Untitled
- 16 196 156	Untitled
- 12 196 156	Untitled
- 12 192 160	Untitled
- 12 192 164	Untitled
-  8 192 168	Untitled
-  8 188 168	Untitled
-  4 188 172	Untitled
-  4 188 176	Untitled
-  4 188 176	Untitled
-  8 180 172	Untitled
- 12 172 168	Untitled
- 12 164 168	Untitled
- 16 156 164	Untitled
- 16 148 164	Untitled
- 20 140 160	Untitled
- 20 132 160	Untitled
- 24 124 156	Untitled
- 24 116 156	Untitled
- 28 108 152	Untitled
- 28 100 152	Untitled
- 32  92 148	Untitled
- 32  84 148	Untitled
- 36  76 144	Untitled
- 36  68 144	Untitled
- 40  60 140	Untitled
- 40  52 140	Untitled
- 44  44 136	Untitled
- 44  40 136	Untitled
- 48  36 132	Untitled
- 48  36 132	Untitled
- 48  36 128	Untitled
- 48  36 128	Untitled
- 48  36 128	Untitled
- 48  36 124	Untitled
- 48  36 124	Untitled
- 48  36 124	Untitled
- 48  36 120	Untitled
- 48  36 120	Untitled
- 48  32 116	Untitled
- 48  32 116	Untitled
- 48  32 116	Untitled
- 48  32 112	Untitled
- 48  32 112	Untitled
- 48  32 112	Untitled
- 52  32 108	Untitled
- 52  32 108	Untitled
- 52  32 104	Untitled
- 52  32 104	Untitled
- 52  32 104	Untitled
- 52  28 100	Untitled
- 52  28 100	Untitled
- 52  28 100	Untitled
- 52  28  96	Untitled
- 52  28  96	Untitled
- 52  28  96	Untitled
- 52  28  92	Untitled
- 52  28  92	Untitled
- 52  28  88	Untitled
- 52  28  88	Untitled
- 52  24  88	Untitled
- 52  24  84	Untitled
- 56  24  84	Untitled
- 56  24  84	Untitled
- 56  24  80	Untitled
- 56  24  80	Untitled
- 56  24  76	Untitled
- 56  24  76	Untitled
- 56  24  76	Untitled
- 56  24  72	Untitled
- 56  24  72	Untitled
- 56  20  72	Untitled
- 56  20  68	Untitled
- 56  20  68	Untitled
- 56  20  68	Untitled
- 56  20  64	Untitled
- 56  20  64	Untitled
- 56  20  60	Untitled
- 56  20  60	Untitled
- 60  20  60	Untitled
- 60  20  56	Untitled
- 60  16  56	Untitled
- 60  16  56	Untitled
- 60  16  52	Untitled
- 60  16  52	Untitled
- 60  16  48	Untitled
- 60  16  48	Untitled
- 60  16  48	Untitled
- 60  16  44	Untitled
- 60  16  44	Untitled
- 60  16  44	Untitled
- 60  16  40	Untitled
- 60  12  40	Untitled
- 60  12  40	Untitled
- 60  12  36	Untitled
- 60  12  36	Untitled
- 64  12  32	Untitled
- 64  12  32	Untitled
- 64  12  32	Untitled
- 64  12  28	Untitled
- 64  12  28	Untitled
- 64  12  28	Untitled
- 64   8  24	Untitled
- 64   8  24	Untitled
- 64   8  20	Untitled
- 64   8  20	Untitled
- 64   8  20	Untitled
- 64   8  16	Untitled
- 64   8  16	Untitled
- 64   8  16	Untitled
- 64   8  12	Untitled
- 64   8  12	Untitled
- 64   8  12	Untitled
- 68  12  16	Untitled
- 68  16  16	Untitled
- 68  16  16	Untitled
- 68  20  16	Untitled
- 68  20  20	Untitled
- 72  24  20	Untitled
- 72  24  20	Untitled
- 72  28  20	Untitled
- 72  28  24	Untitled
- 72  32  24	Untitled
- 76  32  24	Untitled
- 76  36  24	Untitled
- 76  36  28	Untitled
- 76  40  28	Untitled
- 76  44  28	Untitled
- 80  44  28	Untitled
- 80  48  32	Untitled
- 80  48  32	Untitled
- 80  52  32	Untitled
- 80  52  32	Untitled
- 84  56  36	Untitled
- 84  56  36	Untitled
- 84  60  36	Untitled
- 84  60  36	Untitled
diff --git a/krita/data/palettes/Op2.gpl b/krita/data/palettes/Op2.gpl
deleted file mode 100644
index 891f1fb47..000000000
--- a/krita/data/palettes/Op2.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Op2
-#
-204 144 100	Untitled
-204 144 100	Untitled
-200 148 104	Untitled
-200 152 108	Untitled
-200 152 112	Untitled
-196 156 116	Untitled
-196 160 120	Untitled
-192 164 124	Untitled
-172 212 180	Untitled
-192 168 128	Untitled
-192 172 132	Untitled
-188 176 136	Untitled
-188 180 140	Untitled
-184 184 144	Untitled
-184 184 148	Untitled
-180 188 152	Untitled
-180 192 156	Untitled
-180 196 160	Untitled
-176 200 164	Untitled
-176 204 168	Untitled
-172 208 172	Untitled
-172 212 176	Untitled
-248  88  24	Untitled
-244  92  28	Untitled
-244  96  32	Untitled
-240  96  36	Untitled
-240 100  36	Untitled
-240 100  40	Untitled
-236 104  44	Untitled
-236 104  44	Untitled
-236 108  48	Untitled
-232 108  52	Untitled
-232 112  52	Untitled
-232 116  56	Untitled
-228 116  60	Untitled
-228 120  64	Untitled
-228 120  64	Untitled
-224 124  68	Untitled
-224 124  72	Untitled
-224 128  72	Untitled
-220 128  76	Untitled
-220 132  80	Untitled
-220 136  80	Untitled
-216 136  84	Untitled
-216 140  88	Untitled
-216 140  92	Untitled
-212 144  92	Untitled
-212 144  96	Untitled
-212 148 100	Untitled
-208 148 100	Untitled
-208 152 104	Untitled
-208 156 108	Untitled
-204 156 108	Untitled
-204 160 112	Untitled
-204 160 116	Untitled
-200 164 116	Untitled
-200 164 120	Untitled
-200 168 124	Untitled
-196 168 128	Untitled
-196 172 128	Untitled
-196 176 132	Untitled
-192 176 136	Untitled
-192 180 136	Untitled
-192 180 140	Untitled
-188 184 144	Untitled
-188 184 144	Untitled
-188 188 148	Untitled
-184 188 152	Untitled
-184 192 156	Untitled
-184 196 156	Untitled
-180 196 160	Untitled
-180 200 164	Untitled
-180 200 164	Untitled
-176 204 168	Untitled
-176 204 172	Untitled
-176 208 172	Untitled
-172 208 176	Untitled
-172 212 180	Untitled
- 12   0 120	Untitled
- 16   4 124	Untitled
- 16   8 124	Untitled
- 20   8 124	Untitled
- 20  12 124	Untitled
- 24  16 124	Untitled
- 24  16 128	Untitled
- 28  20 128	Untitled
- 28  24 128	Untitled
- 32  24 128	Untitled
- 32  28 128	Untitled
- 36  32 132	Untitled
- 36  32 132	Untitled
- 40  36 132	Untitled
- 40  40 132	Untitled
- 44  40 132	Untitled
- 44  44 132	Untitled
- 48  48 136	Untitled
- 48  48 136	Untitled
- 52  52 136	Untitled
- 52  56 136	Untitled
- 56  56 136	Untitled
- 56  60 140	Untitled
- 60  64 140	Untitled
- 60  64 140	Untitled
- 64  68 140	Untitled
- 64  72 140	Untitled
- 68  72 144	Untitled
- 68  76 144	Untitled
- 72  80 144	Untitled
- 72  80 144	Untitled
- 76  84 144	Untitled
- 76  88 144	Untitled
- 80  88 148	Untitled
- 80  92 148	Untitled
- 84  96 148	Untitled
- 84  96 148	Untitled
- 88 100 148	Untitled
- 88 104 152	Untitled
- 92 104 152	Untitled
- 92 108 152	Untitled
- 96 112 152	Untitled
- 96 112 152	Untitled
-100 116 156	Untitled
-100 120 156	Untitled
-104 120 156	Untitled
-104 124 156	Untitled
-108 128 156	Untitled
-108 128 156	Untitled
-112 132 160	Untitled
-112 136 160	Untitled
-116 136 160	Untitled
-116 140 160	Untitled
-120 144 160	Untitled
-120 144 164	Untitled
-124 148 164	Untitled
-124 152 164	Untitled
-128 152 164	Untitled
-128 156 164	Untitled
-132 160 168	Untitled
-132 160 168	Untitled
-136 164 168	Untitled
-136 168 168	Untitled
-140 168 168	Untitled
-140 172 168	Untitled
-144 176 172	Untitled
-144 176 172	Untitled
-148 180 172	Untitled
-148 184 172	Untitled
-152 184 172	Untitled
-152 188 176	Untitled
-156 192 176	Untitled
-156 192 176	Untitled
-160 196 176	Untitled
-160 200 176	Untitled
-164 200 180	Untitled
-164 204 180	Untitled
-168 208 180	Untitled
-168 208 180	Untitled
-172 212 180	Untitled
-240 172 224	Untitled
-236 176 220	Untitled
-236 176 220	Untitled
-236 176 220	Untitled
-236 176 220	Untitled
-236 176 220	Untitled
-236 176 220	Untitled
-232 176 220	Untitled
-232 176 220	Untitled
-232 176 220	Untitled
-232 176 216	Untitled
-232 180 216	Untitled
-232 180 216	Untitled
-228 180 216	Untitled
-228 180 216	Untitled
-228 180 216	Untitled
-228 180 216	Untitled
-228 180 216	Untitled
-228 180 216	Untitled
-224 180 216	Untitled
-224 180 212	Untitled
-224 180 212	Untitled
-224 184 212	Untitled
-224 184 212	Untitled
-224 184 212	Untitled
-220 184 212	Untitled
-220 184 212	Untitled
-220 184 212	Untitled
-220 184 212	Untitled
-220 184 208	Untitled
-220 184 208	Untitled
-220 184 208	Untitled
-216 188 208	Untitled
-216 188 208	Untitled
-216 188 208	Untitled
-216 188 208	Untitled
-216 188 208	Untitled
-216 188 208	Untitled
-212 188 208	Untitled
-212 188 204	Untitled
-212 188 204	Untitled
-212 188 204	Untitled
-212 188 204	Untitled
-212 192 204	Untitled
-208 192 204	Untitled
-208 192 204	Untitled
-208 192 204	Untitled
-208 192 204	Untitled
-208 192 204	Untitled
-208 192 200	Untitled
-204 192 200	Untitled
-204 192 200	Untitled
-204 192 200	Untitled
-204 192 200	Untitled
-204 196 200	Untitled
-204 196 200	Untitled
-204 196 200	Untitled
-200 196 200	Untitled
-200 196 196	Untitled
-200 196 196	Untitled
-200 196 196	Untitled
-200 196 196	Untitled
-200 196 196	Untitled
-196 196 196	grey77
-196 200 196	Untitled
-196 200 196	Untitled
-196 200 196	Untitled
-196 200 196	Untitled
-196 200 192	Untitled
-192 200 192	Untitled
-192 200 192	Untitled
-192 200 192	Untitled
-192 200 192	Untitled
-192 200 192	Untitled
-192 200 192	Untitled
-188 204 192	Untitled
-188 204 192	Untitled
-188 204 192	Untitled
-188 204 188	Untitled
-188 204 188	Untitled
-188 204 188	Untitled
-188 204 188	Untitled
-184 204 188	Untitled
-184 204 188	Untitled
-184 204 188	Untitled
-184 208 188	Untitled
-184 208 188	Untitled
-184 208 184	Untitled
-180 208 184	Untitled
-180 208 184	Untitled
-180 208 184	Untitled
-180 208 184	Untitled
-180 208 184	Untitled
-180 208 184	Untitled
-176 208 184	Untitled
-176 208 184	Untitled
-176 212 184	Untitled
-176 212 180	Untitled
diff --git a/krita/data/palettes/Paintjet.gpl b/krita/data/palettes/Paintjet.gpl
deleted file mode 100644
index c061b6c56..000000000
--- a/krita/data/palettes/Paintjet.gpl
+++ /dev/null
@@ -1,22 +0,0 @@
-GIMP Palette
-Name: Paintjet
-#
-#       A map with the PaintJet's 8 primary colors repeated twice.
-#       Use these colors for 180dpi PaintJet images.
-#
- 24  20  12	Untitled
-244 240 232	Untitled
-196  68  72	Untitled
- 48 132  92	Untitled
-240 232  72	Untitled
- 52  48 116	Untitled
-188  48 108	Untitled
- 40 116 196	Untitled
- 24  20  12	Untitled
-244 240 232	Untitled
-196  68  72	Untitled
- 48 132  92	Untitled
-240 232  72	Untitled
- 52  48 116	Untitled
-188  48 108	Untitled
- 40 116 196	Untitled
diff --git a/krita/data/palettes/Pantone_Coated_Approx.gpl b/krita/data/palettes/Pantone_Coated_Approx.gpl
deleted file mode 100644
index 5ddb0d463..000000000
--- a/krita/data/palettes/Pantone_Coated_Approx.gpl
+++ /dev/null
@@ -1,949 +0,0 @@
-GIMP Palette
-Name: Pantone_Coated_Approx
-Columns: 16
-#
-244 228   0	Process Yellow
-193   0  89	Process Magenta
-  0 143 216	Process Cyan
- 31  31  33	Process Black
-243  53   0	Orange 021
-216   0  29	Red 032
-  9   0 139	Blue 072
-240 233 124	100
-243 232  59	101
-247 228   0	102
-251 217   0	Yellow
-186 160   0	103
-157 139   0	104
-109  97   0	105
-244 228  73	106
-246 223  22	107
-247 217   0	108
-250 203   0	109
-209 167   0	110
-156 130   0	111
-134 115   0	112
-245 221  66	113
-246 219  45	114
-246 218  36	115
-253 160   0	116
-186 143   0	117
-159 126   0	118
-116 100  10	119
-244 221 102	120
-245 217  87	121
-247 205  42	122
-250 183   0	123
-214 148   0	124
-162 120   0	125
-142 113   0	126
-241 227 172	1205
-244 218 131	1215
-250 187  38	1225
-251 157   0	1235
-179 130   0	1245
-144 108   0	1255
-104  80  12	1265
-239 218 110	127
-238 210  82	128
-236 190  25	129
-226 112   0	130
-187 121   0	131
-145 107   0	132
- 92  75  12	133
-246 207 111	134
-250 186  60	135
-251 169  15	136
-251 139   0	137
-210 108   0	138
-155  93   0	139
-105  78  16	140
-246 203 126	1345
-248 189  97	1355
-250 163  49	1365
-250 121   0	1375
-190  94   0	1385
-128  75   0	1395
- 86  58  17	1405
-235 194  91	141
-232 170  50	142
-231 162  38	143
-223 108   0	144
-187 101   0	145
-136  83   0	146
- 90  73  28	147
-247 201 139	148
-249 189 116	149
-251 146  43	150
-248  89   0	151
-210  86   0	152
-164  81   0	153
-128  68   0	154
-254 169  96	1485
-255 134  29	1495
-254  98   0	1505
-243  53   0	Orange 021
-170  53   0	1525
-121  50   0	1535
- 54  28  13	1545
-235 208 165	155
-231 182 125	156
-224 130  59	157
-215  80   8	158
-182  64   0	159
-137  60  10	160
- 76  44  20	161
-249 173 131	1555
-250 143  90	1565
-249 105  42	1575
-244  72   0	1585
-189  63   0	1595
-136  59  19	1605
-109  48  17	1615
-248 185 158	162
-251 126  83	163
-248  92  38	164
-236  16   0	165
-203  52   0	166
-161  54  10	167
- 86  36  17	168
-250 150 128	1625
-250 118  93	1635
-247  86  52	1645
-240  53   0	1655
-209  51   9	1665
-146  47  21	1675
-115  45  26	1685
-250 168 162	169
-250 104  92	170
-245  63  44	171
-236  30   0	172
-189  46  23	173
-118  31  17	174
- 82  35  27	175
-249 150 163	176
-249  93 111	177
-243  53  68	178
-225   0   0	Warm Red
-203  33  37	179
-166  39  42	180
-102  33  34	181
-245 132 157	1765
-243 105 135	1775
-235  54  89	1785
-212   0   0	1788
-192   0  39	1795
-154  24  43	1805
-105  27  37	1815
-240 162 181	1767
-236  72 107	1777
-228  16  62	1787
-216   0  29	Red 032
-180  22  44	1797
-128  29  40	1807
- 66  37  36	1817
-243 175 197	182
-239 107 145	183
-230  52 100	184
-204   0   0	185
-181   0  39	186
-145  10  43	187
-100  31  45	188
-238 135 174	189
-232  84 135	190
-224  37  98	191
-210   0  57	192
-163   0  48	193
-129  25  55	194
- 92  36  50	195
-237 164 197	1895
-234 125 171	1905
-222  44 114	1915
-206   0  66	1925
-173   0  52	1935
-139   0  53	1945
-125  25  60	1955
-230 186 202	196
-223 134 165	197
-211  59 105	198
-198   0  60	199
-169   0  52	200
-137  21  54	201
-115  29  52	202
-226 160 198	203
-218 101 160	204
-209  52 124	205
-194   0  68	206
-154   0  64	207
-117  27  64	208
- 96  34  59	209
-240 132 188	210
-234  86 159	211
-225  44 132	212
-208   0  95	213
-178   0  77	214
-135   0  63	215
-100  30  59	216
-228 173 215	217
-216  90 174	218
-205  18 131	219
-181   0  49	Rubine Red
-145   0  70	220
-122   0  64	221
- 86  24  56	222
-227 129 201	223
-219  73 173	224
-209  15 143	225
-192   0 103	226
-145   0  81	227
-112   0  72	228
- 85  29  59	229
-238 145 212	230
-229  77 185	231
-221  41 168	232
-190   0 106	Rhodamine Red
-177   0 114	233
-138   0  90	234
-116   6  76	235
-232 149 215	236
-220  93 194	237
-207  45 173	238
-172   0 117	239
-161   0 126	240
-139   0 107	241
- 95  20  72	242
-231 182 224	2365
-205  76 193	2375
-187   0 166	2385
-164   0 131	2395
-133   0 112	2405
-119   0 101	2415
-105   9  90	2425
-224 166 223	243
-217 138 217	244
-204  99 203	245
-172   0 158	246
-150   0 138	247
-127   0 118	248
-101  32  91	249
-223 189 229	250
-203 136 221	251
-181  76 203	252
-135   0 153	Purple
-146   0 160	253
-127  24 140	254
- 95  36  98	255
-209 179 219	256
-188 144 204	257
-126  59 147	258
- 86  17 102	259
- 76  22  83	260
- 73  30  76	261
- 65  31  64	262
-193 150 226	2562
-166 106 215	2572
-130  50 191	2582
-103   0 164	2592
- 92   6 138	2602
- 78  24 103	2612
- 73  40  80	2622
-170 123 203	2563
-142  84 183	2573
-111  46 156	2583
- 86  17 125	2593
- 74  15 101	2603
- 71  18  92	2613
- 67  17  83	2623
-161 122 207	2567
-131  84 188	2577
- 99  43 160	2587
- 68  10 126	2597
- 63  15 109	2607
- 59  20  96	2617
- 53  21  79	2627
-208 194 229	263
-169 146 224	264
-107  73 200	265
- 65  25 167	266
- 54  20 135	267
- 51  25  98	268
- 47  26  75	269
-173 156 225	2635
-144 122 216	2645
-112  84 201	2655
- 91  53 183	2665
- 29   0  99	Violet
- 50  13 123	2685
- 49  31  80	2695
-168 164 217	270
-136 131 203	271
-107 101 187	272
- 37  27 115	273
- 36  26  97	274
- 32  23  79	275
- 38  31  62	276
-143 135 220	2705
-109  99 206	2715
- 74  58 187	2725
- 41  10 146	2735
- 35  14 118	2745
- 35  21 103	2755
- 37  26  87	2765
-187 192 230	2706
-129 139 219	2716
- 62  69 186	2726
- 43  37 163	2736
- 36  36 138	2746
- 34  37 102	2756
- 34  36  79	2766
-169 188 231	2707
-129 158 230	2717
- 39  84 211	2727
-  9   0 139	Blue 072
-  8  16  83	2747
- 11  18  60	2757
- 16  19  33	2767
-154 174 224	2708
- 65  96 199	2718
- 22  48 166	2728
- 13  15 132	2738
- 14  27 100	2748
- 15  25  79	2758
- 16  22  50	2768
-172 196 229	277
-136 173 227	278
- 66 120 211	279
-  0  14 120	Reflex Blue
-  0  35 105	280
-  0  28  77	281
- 12  30  60	282
-141 182 228	283
-101 155 223	284
- 17  96 198	285
-  0  45 154	286
-  0  37 119	287
-  0  35 100	288
- 11  32  58	289
-175 207 232	290
-133 184 232	291
- 87 155 225	292
-  0  65 173	293
-  0  53 116	294
-  0  46  89	295
- 17  39  56	296
-133 187 228	2905
- 83 158 222	2915
- 15 122 209	2925
-  0  68 173	2935
-  0  60 135	2945
-  0  45  84	2955
-  7  36  56	2965
-123 192 232	297
- 62 161 226	298
-  0 100 196	299
-  0  79 179	300
-  0  63 128	301
-  0  54  87	302
- 12  53  70	303
-154 210 231	2975
- 65 172 227	2985
-  0 142 216	2995
-  0 104 195	3005
-  0  88 147	3015
-  0  66  94	3025
- 10  56  70	3035
-151 213 229	304
- 92 193 231	305
-  0 148 216	306
-  0  95 185	Process Blue
-  0 101 165	307
-  0  72 107	308
- 11  60  70	309
- 98 197 224	310
- 58 184 219	311
-  0 154 203	312
-  0 121 177	313
-  0  97 138	314
-  0  76 100	315
- 13  61  68	316
-120 206 219	3105
- 55 184 209	3115
-  0 168 198	3125
-  0 135 172	3135
-  0 112 135	3145
-  0  93 110	3155
-  0  71  80	3165
-183 226 224	317
-134 214 219	318
- 64 192 203	319
-  0 110 127	320
-  0 116 128	321
-  0  97 104	322
-  0  84  87	323
-159 216 215	324
- 87 191 189	325
-  0 161 155	326
-  0  94  75	327
-  0 101  92	328
-  0  90  82	329
- 25  73  68	330
-133 217 209	3242
- 82 203 194	3252
-  0 182 173	3262
-  0 155 145	3272
-  0 119 110	3282
-  0  77  69	3292
- 17  56  50	3302
-132 219 204	3245
- 78 206 186	3255
-  0 185 162	3265
-  0 163 137	3275
-  0 133 113	3285
-  0 113  96	3295
- 25  68  57	3305
-125 204 189	3248
- 70 183 160	3258
-  0 158 128	3268
-  0 137 103	3278
-  0 113  87	3288
-  0  86  68	3298
- 21  54  44	3308
-181 230 216	331
-147 226 206	332
- 83 212 183	333
-  0 131  86	Green
-  0 136 100	334
-  0 108  82	335
- 13  87  67	336
-145 211 188	337
-106 198 165	338
- 12 163 115	339
-  0 133  79	340
-  0  97  63	341
-  9  83  57	342
- 29  69  51	343
-142 225 192	3375
- 98 214 168	3385
- 29 195 133	3395
-  0 169  95	3405
-  0 111  70	3415
- 22  90  59	3425
- 25  62  42	3435
-163 217 178	344
-133 207 155	345
- 95 191 127	346
-  0 136  52	347
-  0 112  48	348
- 21  85  43	349
- 37  62  40	350
-170 229 186	351
-142 224 165	352
-116 218 146	353
-  0 139  13	354
-  0 138  41	355
- 13 105  40	356
- 42  80  46	357
-158 214 122	358
-144 208 107	359
- 94 185  53	360
- 53 162  17	361
- 61 138  26	362
- 63 123  28	363
- 59 101  29	364
-202 227 148	365
-183 221 117	366
-154 210  77	367
- 40 149   0	368
- 79 151   0	369
- 77 121   0	370
- 70  85  26	371
-209 233 132	372
-195 230 101	373
-174 226  57	374
- 79 186   0	375
-112 175   0	376
- 98 134   0	377
- 71  82  17	378
-220 229  87	379
-210 225  49	380
-197 219   0	381
-143 190   0	382
-150 162   0	383
-132 139   0	384
-101  99  20	385
-225 232  67	386
-219 230  31	387
-207 226   0	388
-193 220   0	389
-168 183   0	390
-141 143   0	391
-116 114   0	392
-236 233 107	393
-232 231  31	394
-226 228   0	395
-214 222   0	396
-181 181   0	397
-163 159   0	398
-142 135   0	399
-239 232  76	3935
-237 227   0	3945
-230 218   0	3955
-227 214   0	3965
-169 154   0	3975
-131 118   0	3985
- 85  75   0	3995
-193 186 176	400
-170 162 152	401
-145 137 127	402
-128 120 109	403
-103  95  84	404
- 83  75  66	405
- 49  46  43	Black
-189 178 172	406
-166 154 148	407
-145 133 127	408
-130 117 112	409
-107  94  88	410
- 85  72  67	411
- 43  36  34	412
-183 182 171	413
-165 164 153	414
-146 145 134	415
-120 120 108	416
- 98  98  86	417
- 79  79  68	418
- 39  40  34	419
-198 196 193	420
-178 177 174	421
-158 157 155	422
-133 133 131	423
-108 109 107	424
- 79  80  80	425
- 42  42  42	426
-209 209 207	427
-184 186 186	428
-150 154 156	429
-118 123 127	430
- 80  86  91	431
- 56  61  66	432
- 10  13  16	433
-205 193 196	434
-187 172 178	435
-160 142 150	436
-113  94 102	437
- 66  51  55	438
- 51  40  42	439
- 47  40  39	440
-191 198 196	441
-167 177 177	442
-140 151 154	443
-114 126 130	444
- 69  77  82	445
- 57  62  63	446
- 49  51  48	447
-216 209 198	Warm Gray 1
-202 194 184	Warm Gray 2
-184 175 165	Warm Gray 3
-170 160 151	Warm Gray 4
-159 149 139	Warm Gray 5
-149 138 129	Warm Gray 6
-137 126 117	Warm Gray 7
-126 116 106	Warm Gray 8
-116 105  95	Warm Gray 9
-107  96  87	Warm Gray 10
- 86  75  66	Warm Gray 11
-219 215 210	Cool Gray 1
-203 201 198	Cool Gray 2
-192 190 189	Cool Gray 3
-177 175 174	Cool Gray 4
-166 164 165	Cool Gray 5
-157 156 157	Cool Gray 6
-140 139 141	Cool Gray 7
-124 123 126	Cool Gray 8
-114 114 116	Cool Gray 9
- 93  93  96	Cool Gray 10
- 81  81  84	Cool Gray 11
- 65  57  39	448
- 72  62  38	449
- 79  70  40	450
-149 142 108	451
-175 169 139	452
-197 192 167	453
-211 207 186	454
- 71  56  17	4485
-108  91  35	4495
-137 121  64	4505
-168 154 102	4515
-187 175 130	4525
-207 197 162	4535
-218 210 179	4545
- 82  70  16	455
-130 110   0	456
-157 129   0	457
-206 187  78	458
-218 204 112	459
-226 215 142	460
-232 224 167	461
- 76  57  31	462
-103  70  33	463
- 93  49  16	464
-176 145  95	465
-197 173 129	466
-206 186 146	467
-217 201 167	468
- 58  30  18	4625
-111  65  34	4635
-152 107  76	4645
-179 138 110	4655
-200 165 141	4665
-214 185 164	4675
-223 200 182	4685
- 80  43  21	469
-128  57  17	470
-140  44   0	471
-221 147 106	472
-232 177 144	473
-236 194 166	474
-238 204 180	475
- 65  35  30	4695
-103  63  54	4705
-132  94  83	4715
-161 127 116	4725
-187 158 149	4735
-200 176 166	4745
-214 195 186	4755
- 73  46  37	476
- 82  40  32	477
- 99  44  36	478
-161 116  98	479
-196 165 150	480
-212 189 176	481
-221 204 192	482
- 91  41  34	483
-136  32  31	484
-192   0   0	485
-223 131 122	486
-228 165 157	487
-231 187 178	488
-233 203 195	489
- 71  28  33	490
- 98  30  38	491
-123  36  49	492
-199 107 131	493
-226 159 178	494
-232 176 190	495
-236 192 202	496
- 60  34  35	497
- 84  41  42	498
- 95  44  43	499
-180 115 128	500
-214 163 174	501
-227 188 196	502
-233 205 209	503
- 56  28  30	4975
-105  56  64	4985
-142  91 100	4995
-167 118 127	5005
-196 155 162	5015
-207 172 177	5025
-219 191 192	5035
- 64  25  34	504
- 85  25  42	505
-101  27  50	506
-187 106 139	507
-210 142 170	508
-223 169 190	509
-230 187 202	510
- 64  26  55	511
- 94  27  93	512
-115  28 125	513
-185 106 185	514
-207 141 202	515
-220 168 213	516
-228 190 219	517
- 62  30  54	5115
- 94  55  87	5125
-123  86 119	5135
-150 117 145	5145
-189 163 185	5155
-209 190 204	5165
-219 204 213	5175
- 61  38  61	518
- 74  39  85	519
- 79  39 100	520
-153 116 176	521
-173 141 192	522
-193 167 205	523
-209 189 214	524
- 50  32  44	5185
- 68  42  58	5195
-112  80 101	5205
-150 120 138	5215
-176 150 164	5225
-203 183 192	5235
-215 200 204	5245
- 60  32  74	525
- 70  27 112	526
- 80  23 148	527
-138  93 197	528
-177 140 217	529
-191 159 222	530
-206 181 224	531
- 38  31  59	5255
- 53  45  87	5265
- 75  67 111	5275
-115 109 148	5285
-153 147 178	5295
-179 173 197	5305
-200 194 209	5315
- 46  46  61	532
- 45  52  84	533
- 46  58 105	534
-131 142 181	535
-156 164 195	536
-180 186 208	537
-197 201 215	538
- 20  42  61	539
-  1  45  82	540
-  0  53 108	541
- 76 130 185	542
-126 166 209	543
-160 190 219	544
-180 202 222	545
- 21  38  53	5395
- 50  76  98	5405
- 81 106 127	5415
-113 135 154	5425
-151 168 183	5435
-181 192 202	5445
-203 209 215	5455
- 16  36  43	546
-  0  44  58	547
-  0  54  74	548
- 80 132 159	549
-118 161 184	550
-150 183 201	551
-187 206 216	552
- 21  50  54	5463
- 44  86  92	5473
- 87 128 133	5483
-125 160 164	5493
-159 185 188	5503
-191 208 208	5513
-208 219 217	5523
- 26  40  38	5467
- 53  73  69	5477
- 85 104 101	5487
-126 142 139	5497
-156 170 167	5507
-181 191 188	5517
-198 205 201	5527
- 39  60  45	553
- 39  79  58	554
- 36  91  64	555
-114 156 133	556
-150 182 165	557
-173 198 184	558
-194 210 198	559
- 33  52  43	5535
- 69  95  83	5545
-103 127 114	5555
-130 152 140	5565
-165 182 171	5575
-179 194 182	5585
-200 209 198	5595
- 41  64  56	560
- 40  87  78	561
- 41 110 102	562
-114 177 167	563
-145 197 187	564
-173 213 203	565
-198 223 214	566
- 30  43  33	5605
- 65  81  66	5615
- 97 112  97	5625
-139 151 138	5635
-168 177 165	5645
-186 193 182	5655
-205 209 199	5665
- 38  66  56	567
- 30  92  79	568
- 20 118 104	569
-109 187 173	570
-149 208 196	571
-175 219 208	572
-194 224 215	573
- 58  69  30	574
- 68  94  28	575
- 81 122  35	576
-160 187 116	577
-177 198 137	578
-192 208 155	579
-205 216 173	580
- 50  56  28	5743
- 76  82  42	5753
-100 105  64	5763
-138 143 104	5773
-163 166 131	5783
-189 191 162	5793
-208 208 185	5803
- 50  55  19	5747
- 87  92  34	5757
-120 125  64	5767
-152 155  99	5777
-185 186 141	5787
-203 203 167	5797
-214 212 182	5807
- 81  77  10	581
-117 119   0	582
-151 167   0	583
-199 208  57	584
-210 216  88	585
-217 221 112	586
-226 226 146	587
- 61  57  16	5815
- 98  92  30	5825
-140 135  72	5835
-163 158 101	5845
-191 186 138	5855
-202 198 155	5865
-214 209 174	5875
-237 233 183	600
-237 231 149	601
-235 228 120	602
-233 224  76	603
-228 214   0	604
-212 191   0	605
-207 185   0	606
-234 230 194	607
-233 228 175	608
-229 223 146	609
-221 213 108	610
-205 193  50	611
-188 173   0	612
-162 145   0	613
-223 217 179	614
-219 214 170	615
-212 205 150	616
-194 186 116	617
-166 156  72	618
-129 118  24	619
-118 107  19	620
-200 212 201	621
-179 197 185	622
-141 168 154	623
-107 139 124	624
- 72 108  92	625
- 28  60  47	626
- 18  39  30	627
-188 218 220	628
-165 208 216	629
-125 190 207	630
- 78 165 190	631
- 39 143 174	632
-  0 107 142	633
-  0  78 114	634
-174 217 226	635
-144 207 225	636
-106 192 222	637
- 45 167 211	638
-  0 141 196	639
-  0 119 180	640
-  0 102 165	641
-189 201 215	642
-173 189 209	643
-131 155 187	644
-103 131 169	645
- 73 104 146	646
- 32  65 108	647
- 17  43  81	648
-190 198 216	649
-165 179 206	650
-126 145 185	651
- 82 106 154	652
- 34  61 113	653
- 11  31  74	654
-  9  21  52	655
-198 207 229	656
-165 182 224	657
-127 153 215	658
- 84 117 198	659
- 41  80 174	660
- 11  48 144	661
-  0  23 103	662
-210 201 215	663
-193 182 204	664
-170 157 187	665
-137 122 161	666
- 96  80 125	667
- 71  53 100	668
- 51  36  76	669
-230 202 221	670
-227 189 217	671
-216 153 200	672
-204 119 180	673
-187  82 154	674
-162  35 116	675
-142   0  88	676
-227 206 216	677
-219 190 209	678
-211 173 199	679
-187 132 170	680
-156  88 134	681
-133  59 108	682
-102  31  72	683
-223 191 204	684
-214 173 194	685
-201 152 179	686
-175 115 150	687
-147  82 122	688
-114  46  87	689
- 82  28  57	690
-227 199 202	691
-218 178 185	692
-203 150 161	693
-185 123 137	694
-152  82  98	695
-116  46  61	696
- 98  36  45	697
-234 194 200	698
-230 171 184	699
-222 142 161	700
-207 108 132	701
-185  69  97	702
-149  29  53	703
-128  16  31	704
-240 214 218	705
-240 185 198	706
-238 148 170	707
-231 108 138	708
-220  65 101	709
-199  21  58	710
-183   6  41	711
-244 208 174	712
-245 196 152	713
-244 169 108	714
-238 141  64	715
-223 107   0	716
-202  78   0	717
-181  60   0	718
-233 203 173	719
-229 190 154	720
-216 164 118	721
-190 125  68	722
-172 104  43	723
-121  56   0	724
- 97  41   0	725
-222 194 164	726
-210 175 141	727
-196 155 116	728
-174 128  85	729
-148  97  51	730
- 83  41   5	731
- 70  35   9	732
- 48  44  33	Black 2
- 31  35  29	Black 3
- 40  33  26	Black 4
- 43  32  33	Black 5
- 25  31  37	Black 6
- 49  46  43	Black 7
diff --git a/krita/data/palettes/Pastels.gpl b/krita/data/palettes/Pastels.gpl
deleted file mode 100644
index bcfd93429..000000000
--- a/krita/data/palettes/Pastels.gpl
+++ /dev/null
@@ -1,21 +0,0 @@
-GIMP Palette
-Name: Pastels
-#
-226 145 145	Untitled
-153 221 146	Untitled
-147 216 185	Untitled
-148 196 211	Untitled
-148 154 206	Untitled
-179 148 204	Untitled
-204 150 177	Untitled
-204 164 153	Untitled
-223 229 146	Untitled
-255 165  96	Untitled
-107 255  99	Untitled
-101 255 204	Untitled
-101 196 255	Untitled
-101 107 255	Untitled
-173 101 255	Untitled
-255 101 244	Untitled
-255 101 132	Untitled
-255 101 101	Untitled
diff --git a/krita/data/palettes/Plasma.gpl b/krita/data/palettes/Plasma.gpl
deleted file mode 100644
index db3982bc1..000000000
--- a/krita/data/palettes/Plasma.gpl
+++ /dev/null
@@ -1,260 +0,0 @@
-GIMP Palette
-Name: Plasma
-Columns: 16
-#
-240 240   0	Untitled
-240 224   0	Untitled
-240 208   0	Untitled
-240 192   0	Untitled
-240 176   0	Untitled
-240 160   0	Untitled
-240 144   0	Untitled
-240 128   0	Untitled
-240 112   0	Untitled
-240  96   0	Untitled
-240  80   0	Untitled
-240  64   0	Untitled
-240  48   0	Untitled
-240  32   0	Untitled
-240  16   0	Untitled
-240   0   0	Untitled
-224 224  16	Untitled
-224 212  16	Untitled
-224 200  16	Untitled
-224 184  16	Untitled
-224 172  12	Untitled
-224 156  12	Untitled
-224 144  12	Untitled
-224 128  12	Untitled
-224 116   8	Untitled
-224 100   8	Untitled
-224  88   8	Untitled
-224  72   8	Untitled
-224  60   4	Untitled
-224  44   4	Untitled
-224  32   4	Untitled
-224  16   0	Untitled
-208 208  32	Untitled
-208 200  32	Untitled
-208 188  28	Untitled
-208 176  28	Untitled
-208 164  24	Untitled
-208 152  24	Untitled
-208 140  20	Untitled
-208 128  20	Untitled
-208 116  16	Untitled
-208 104  16	Untitled
-208  92  12	Untitled
-208  80  12	Untitled
-208  68   8	Untitled
-208  56   8	Untitled
-208  44   4	Untitled
-208  32   0	Untitled
-192 192  48	Untitled
-192 184  48	Untitled
-192 176  44	Untitled
-192 164  40	Untitled
-192 156  36	Untitled
-192 144  32	Untitled
-192 136  32	Untitled
-192 128  28	Untitled
-192 116  24	Untitled
-192 108  20	Untitled
-192  96  16	Untitled
-192  88  16	Untitled
-192  80  12	Untitled
-192  68   8	Untitled
-192  60   4	Untitled
-192  48   0	Untitled
-176 176  64	Untitled
-176 172  60	Untitled
-176 164  56	Untitled
-176 156  52	Untitled
-176 148  48	Untitled
-176 140  44	Untitled
-176 132  40	Untitled
-176 124  36	Untitled
-176 120  32	Untitled
-176 112  28	Untitled
-176 104  24	Untitled
-176  96  20	Untitled
-176  88  16	Untitled
-176  80  12	Untitled
-176  72   8	Untitled
-176  64   0	Untitled
-160 160  80	Untitled
-160 156  76	Untitled
-160 152  72	Untitled
-160 144  64	Untitled
-160 140  60	Untitled
-160 136  56	Untitled
-160 128  48	Untitled
-160 124  44	Untitled
-160 120  40	Untitled
-160 112  32	Untitled
-160 108  28	Untitled
-160 104  24	Untitled
-160  96  16	Untitled
-160  92  12	Untitled
-160  88   8	Untitled
-160  80   0	Untitled
-144 144  96	Untitled
-144 144  92	Untitled
-144 140  84	Untitled
-144 136  80	Untitled
-144 132  72	Untitled
-144 128  64	Untitled
-144 128  60	Untitled
-144 124  52	Untitled
-144 120  48	Untitled
-144 116  40	Untitled
-144 112  32	Untitled
-144 112  28	Untitled
-144 108  20	Untitled
-144 104  16	Untitled
-144 100   8	Untitled
-144  96   0	Untitled
-128 128 112	Untitled
-128 128 108	Untitled
-128 128 100	Untitled
-128 128  92	Untitled
-128 124  84	Untitled
-128 124  76	Untitled
-128 124  68	Untitled
-128 124  60	Untitled
-128 120  56	Untitled
-128 120  48	Untitled
-128 120  40	Untitled
-128 120  32	Untitled
-128 116  24	Untitled
-128 116  16	Untitled
-128 116   8	Untitled
-128 112   0	Untitled
-112 112 128	Untitled
-112 112 120	Untitled
-112 112 112	grey44
-112 112 104	Untitled
-112 116  96	Untitled
-112 116  88	Untitled
-112 116  80	Untitled
-112 116  72	Untitled
-112 120  60	Untitled
-112 120  52	Untitled
-112 120  44	Untitled
-112 120  36	Untitled
-112 124  28	Untitled
-112 124  20	Untitled
-112 124  12	Untitled
-112 128   0	Untitled
- 96  96 144	Untitled
- 96  96 136	Untitled
- 96 100 128	Untitled
- 96 104 116	Untitled
- 96 108 108	Untitled
- 96 112  96	Untitled
- 96 112  88	Untitled
- 96 116  80	Untitled
- 96 120  68	Untitled
- 96 124  60	Untitled
- 96 128  48	Untitled
- 96 128  40	Untitled
- 96 132  32	Untitled
- 96 136  20	Untitled
- 96 140  12	Untitled
- 96 144   0	Untitled
- 80  80 160	Untitled
- 80  84 152	Untitled
- 80  88 140	Untitled
- 80  96 128	Untitled
- 80 100 120	Untitled
- 80 104 108	Untitled
- 80 112  96	Untitled
- 80 116  88	Untitled
- 80 120  76	Untitled
- 80 128  64	Untitled
- 80 132  56	Untitled
- 80 136  44	Untitled
- 80 144  32	Untitled
- 80 148  24	Untitled
- 80 152  12	Untitled
- 80 160   0	Untitled
- 64  64 176	Untitled
- 64  68 168	Untitled
- 64  76 156	Untitled
- 64  84 144	Untitled
- 64  92 132	Untitled
- 64 100 120	Untitled
- 64 108 108	Untitled
- 64 116  96	Untitled
- 64 120  84	Untitled
- 64 128  72	Untitled
- 64 136  60	Untitled
- 64 144  48	Untitled
- 64 152  36	Untitled
- 64 160  24	Untitled
- 64 168  12	Untitled
- 64 176   0	Untitled
- 48  48 192	Untitled
- 48  56 180	Untitled
- 48  64 168	Untitled
- 48  76 156	Untitled
- 48  84 144	Untitled
- 48  96 128	Untitled
- 48 104 116	Untitled
- 48 112 104	Untitled
- 48 124  92	Untitled
- 48 132  80	Untitled
- 48 144  64	Untitled
- 48 152  52	Untitled
- 48 160  40	Untitled
- 48 172  28	Untitled
- 48 180  16	Untitled
- 48 192   0	Untitled
- 32  32 208	Untitled
- 32  40 196	Untitled
- 32  52 184	Untitled
- 32  64 168	Untitled
- 32  76 156	Untitled
- 32  88 140	Untitled
- 32 100 128	Untitled
- 32 112 112	Untitled
- 32 124 100	Untitled
- 32 136  84	Untitled
- 32 148  72	Untitled
- 32 160  56	Untitled
- 32 172  44	Untitled
- 32 184  28	Untitled
- 32 196  16	Untitled
- 32 208   0	Untitled
- 16  16 224	Untitled
- 16  28 212	Untitled
- 16  40 196	Untitled
- 16  56 180	Untitled
- 16  68 168	Untitled
- 16  84 152	Untitled
- 16  96 136	Untitled
- 16 112 120	Untitled
- 16 124 108	Untitled
- 16 140  92	Untitled
- 16 152  76	Untitled
- 16 168  60	Untitled
- 16 180  48	Untitled
- 16 196  32	Untitled
- 16 208  16	Untitled
- 16 224   0	Untitled
-  0   0 240	Untitled
-  0  16 224	Untitled
-  0  32 208	Untitled
-  0  48 192	Untitled
-  0  64 176	Untitled
-  0  80 160	Untitled
-  0  96 144	Untitled
-  0 112 128	Untitled
-  0 128 112	Untitled
-  0 144  96	Untitled
-  0 160  80	Untitled
-  0 176  64	Untitled
-  0 192  48	Untitled
-  0 208  32	Untitled
-  0 224  16	Untitled
-  0 240   0	Untitled
diff --git a/krita/data/palettes/Reds.gpl b/krita/data/palettes/Reds.gpl
deleted file mode 100644
index 8297e143d..000000000
--- a/krita/data/palettes/Reds.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Reds
-#
-  0   0   0	grey0
- 76   0   0	Untitled
- 76   0   0	Untitled
- 72   0   0	Untitled
- 68   0   0	Untitled
- 68   0   0	Untitled
- 64   0   0	Untitled
- 60   0   0	Untitled
- 56   0   0	Untitled
- 56   0   0	Untitled
- 52   0   0	Untitled
- 48   0   0	Untitled
- 48   0   0	Untitled
- 44   0   0	Untitled
- 40   0   0	Untitled
- 40   0   0	Untitled
- 36   0   0	Untitled
- 32   0   0	Untitled
- 28   0   0	Untitled
- 28   0   0	Untitled
- 24   0   0	Untitled
- 20   0   0	Untitled
- 20   0   0	Untitled
- 16   0   0	Untitled
- 12   0   0	Untitled
- 12   0   0	Untitled
-  8   0   0	Untitled
-  4   0   0	Untitled
-  0   0   0	grey0
-  0   0   0	grey0
-  0   0   0	grey0
-  4   0   0	Untitled
-  4   0   0	Untitled
-  4   4   4	Untitled
-  8   4   4	Untitled
-  8   4   4	Untitled
-  8   4   4	Untitled
- 12   8   8	Untitled
- 12   8   8	Untitled
- 16   8   8	Untitled
- 16   8   8	Untitled
- 16  12  12	Untitled
- 20  12  12	Untitled
- 20  12  12	Untitled
- 20  12  12	Untitled
- 24  16  16	Untitled
- 24  16  16	Untitled
- 28  16  16	Untitled
- 28  16  16	Untitled
- 28  20  20	Untitled
- 32  20  20	Untitled
- 32  20  20	Untitled
- 32  20  20	Untitled
- 36  24  24	Untitled
- 36  24  24	Untitled
- 36  24  24	Untitled
- 40  24  24	Untitled
- 40  28  28	Untitled
- 44  28  28	Untitled
- 44  28  28	Untitled
- 44  28  28	Untitled
- 48  32  32	Untitled
- 48  32  32	Untitled
- 48  32  32	Untitled
- 52  32  32	Untitled
- 52  36  36	Untitled
- 56  36  36	Untitled
- 56  36  36	Untitled
- 56  36  36	Untitled
- 60  40  40	Untitled
- 60  40  40	Untitled
- 60  40  40	Untitled
- 64  40  40	Untitled
- 64  44  44	Untitled
- 64  44  44	Untitled
- 68  44  44	Untitled
- 68  44  44	Untitled
- 72  48  48	Untitled
- 72  48  48	Untitled
- 72  48  48	Untitled
- 76  48  48	Untitled
- 76  52  52	Untitled
- 76  52  52	Untitled
- 80  52  52	Untitled
- 80  52  52	Untitled
- 84  56  56	Untitled
- 84  56  56	Untitled
- 84  56  56	Untitled
- 88  56  56	Untitled
- 88  60  60	Untitled
- 88  60  60	Untitled
- 92  60  60	Untitled
- 92  60  60	Untitled
- 92  64  64	Untitled
- 96  64  64	Untitled
- 96  64  64	Untitled
-100  64  64	Untitled
-100  68  68	Untitled
-100  68  68	Untitled
-104  68  68	Untitled
-104  68  68	Untitled
-104  72  72	Untitled
-108  72  72	Untitled
-108  72  72	Untitled
-112  72  72	Untitled
-112  76  76	Untitled
-112  76  76	Untitled
-116  76  76	Untitled
-116  76  76	Untitled
-116  80  80	Untitled
-120  80  80	Untitled
-120  80  80	Untitled
-120  80  80	Untitled
-124  84  84	Untitled
-124  84  84	Untitled
-128  84  84	Untitled
-128  84  84	Untitled
-128  88  88	Untitled
-132  88  88	Untitled
-132  88  88	Untitled
-132  88  88	Untitled
-252 252 252	grey99
-252 252 252	grey99
-252 248 248	Untitled
-252 244 244	Untitled
-252 240 240	Untitled
-252 236 236	Untitled
-252 232 232	Untitled
-252 228 228	Untitled
-252 224 224	Untitled
-252 224 224	Untitled
-252 220 220	Untitled
-252 216 216	Untitled
-252 212 212	Untitled
-252 208 208	Untitled
-252 204 204	Untitled
-252 200 200	Untitled
-252 196 196	Untitled
-252 196 196	Untitled
-252 192 192	Untitled
-252 188 188	Untitled
-252 184 184	Untitled
-252 180 180	Untitled
-252 176 176	Untitled
-252 172 172	Untitled
-252 168 168	Untitled
-252 168 168	Untitled
-252 164 164	Untitled
-252 160 160	Untitled
-252 156 156	Untitled
-252 152 152	Untitled
-252 148 148	Untitled
-252 144 144	Untitled
-252 140 140	Untitled
-252 140 140	Untitled
-252 136 136	Untitled
-252 132 132	Untitled
-252 128 128	Untitled
-252 124 124	Untitled
-252 120 120	Untitled
-252 116 116	Untitled
-252 112 112	Untitled
-252 112 112	Untitled
-252 108 108	Untitled
-252 104 104	Untitled
-252 100 100	Untitled
-252  96  96	Untitled
-252  92  92	Untitled
-252  88  88	Untitled
-252  84  84	Untitled
-252  84  84	Untitled
-252  80  80	Untitled
-252  76  76	Untitled
-252  72  72	Untitled
-252  68  68	Untitled
-252  64  64	Untitled
-252  60  60	Untitled
-252  56  56	Untitled
-252  56  56	Untitled
-252  52  52	Untitled
-252  48  48	Untitled
-252  44  44	Untitled
-252  40  40	Untitled
-252  36  36	Untitled
-252  32  32	Untitled
-252  28  28	Untitled
-252  28  28	Untitled
-252  24  24	Untitled
-252  20  20	Untitled
-252  16  16	Untitled
-252  12  12	Untitled
-252   8   8	Untitled
-252   4   4	Untitled
-252   0   0	Untitled
-252   0   0	Untitled
-248   0   0	Untitled
-244   0   0	Untitled
-244   0   0	Untitled
-240   0   0	Untitled
-236   0   0	Untitled
-236   0   0	Untitled
-232   0   0	Untitled
-228   0   0	Untitled
-224   0   0	Untitled
-224   0   0	Untitled
-220   0   0	Untitled
-216   0   0	Untitled
-216   0   0	Untitled
-212   0   0	Untitled
-208   0   0	Untitled
-208   0   0	Untitled
-204   0   0	Untitled
-200   0   0	Untitled
-196   0   0	Untitled
-196   0   0	Untitled
-192   0   0	Untitled
-188   0   0	Untitled
-188   0   0	Untitled
-184   0   0	Untitled
-180   0   0	Untitled
-180   0   0	Untitled
-176   0   0	Untitled
-172   0   0	Untitled
-168   0   0	Untitled
-168   0   0	Untitled
-164   0   0	Untitled
-160   0   0	Untitled
-160   0   0	Untitled
-156   0   0	Untitled
-152   0   0	Untitled
-152   0   0	Untitled
-148   0   0	Untitled
-144   0   0	Untitled
-140   0   0	Untitled
-140   0   0	Untitled
-136   0   0	Untitled
-132   0   0	Untitled
-132   0   0	Untitled
-128   0   0	Untitled
-124   0   0	Untitled
-124   0   0	Untitled
-120   0   0	Untitled
-116   0   0	Untitled
-112   0   0	Untitled
-112   0   0	Untitled
-108   0   0	Untitled
-104   0   0	Untitled
-104   0   0	Untitled
-100   0   0	Untitled
- 96   0   0	Untitled
- 96   0   0	Untitled
- 92   0   0	Untitled
- 88   0   0	Untitled
- 84   0   0	Untitled
- 84   0   0	Untitled
- 80   0   0	Untitled
diff --git a/krita/data/palettes/Reds_And_Purples.gpl b/krita/data/palettes/Reds_And_Purples.gpl
deleted file mode 100644
index 6096547c0..000000000
--- a/krita/data/palettes/Reds_And_Purples.gpl
+++ /dev/null
@@ -1,33 +0,0 @@
-GIMP Palette
-Name: Reds and Purples
-#
-205  92  92	Indian Red
-178  34  34	Firebrick
-165  42  42	Brown Red
-233 150 122	Dark Salmon
-250 128 114	Salmon
-255 160 122	Light Salmon
-255 127  80	Coral
-240 128 128	Light Coral
-255  99  71	Tomato
-255  69   0	Orange Red
-255   0   0	Red
-255 105 180	Hot Pink
-255  20 147	Deep Pink
-255 192 203	Pink
-255 182 193	Light Pink
-219 112 147	Pale Violet Red
-176  48  96	Maroon
-199  21 133	Medium Violet Red
-208  32 144	Violet Red
-255   0 255	Magenta
-238 130 238	Violet
-221 160 221	Plum
-218 112 214	Orchid
-186  85 211	Medium Orchid
-153  50 204	Dark Orchid
-148   0 211	Dark Violet
-138  43 226	Blue Violet
-160  32 240	Purple
-147 112 219	Medium Purple
-216 191 216	Thistle
diff --git a/krita/data/palettes/Royal.gpl b/krita/data/palettes/Royal.gpl
deleted file mode 100644
index 67c5bbb7a..000000000
--- a/krita/data/palettes/Royal.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Royal
-#
-  0   0   0	grey0
- 60   0  80	Untitled
- 60   0  80	Untitled
- 60   0  84	Untitled
- 64   0  84	Untitled
- 64   0  84	Untitled
- 64   0  88	Untitled
- 64   0  88	Untitled
- 68   0  88	Untitled
- 68   0  92	Untitled
- 68   0  92	Untitled
- 68   0  92	Untitled
- 72   0  96	Untitled
- 72   0  96	Untitled
- 72   0  96	Untitled
- 72   0 100	Untitled
- 76   0 100	Untitled
- 76   0 100	Untitled
- 76   0 104	Untitled
- 76   0 104	Untitled
- 76   0 104	Untitled
- 80   0 104	Untitled
- 80   0 108	Untitled
- 80   0 108	Untitled
- 80   0 108	Untitled
- 84   0 112	Untitled
- 84   0 112	Untitled
- 84   0 112	Untitled
- 84   0 116	Untitled
- 88   0 116	Untitled
- 88   0 116	Untitled
- 88   0 120	Untitled
- 88   0 120	Untitled
- 92   0 120	Untitled
- 92   0 124	Untitled
- 92   0 124	Untitled
- 92   0 124	Untitled
- 96   0 128	Untitled
- 96   0 128	Untitled
- 96   0 128	Untitled
- 96   0 132	Untitled
- 96   0 132	Untitled
-100   0 132	Untitled
-100   0 132	Untitled
-100   0 136	Untitled
-100   0 136	Untitled
-104   0 136	Untitled
-104   0 140	Untitled
-104   0 140	Untitled
-104   0 140	Untitled
-108   0 144	Untitled
-108   0 144	Untitled
-108   0 144	Untitled
-108   0 148	Untitled
-112   0 148	Untitled
-112   0 148	Untitled
-112   0 152	Untitled
-112   0 152	Untitled
-116   0 152	Untitled
-116   0 156	Untitled
-116   0 156	Untitled
-116   0 156	Untitled
-120   0 160	Untitled
-120   0 160	Untitled
-124   4 160	Untitled
-124   8 164	Untitled
-128  12 164	Untitled
-128  16 164	Untitled
-132  20 168	Untitled
-132  24 168	Untitled
-136  28 168	Untitled
-136  32 172	Untitled
-140  36 172	Untitled
-140  40 172	Untitled
-144  44 176	Untitled
-144  48 176	Untitled
-148  52 180	Untitled
-148  56 180	Untitled
-152  60 180	Untitled
-152  64 184	Untitled
-156  68 184	Untitled
-156  72 184	Untitled
-160  76 188	Untitled
-160  80 188	Untitled
-164  84 188	Untitled
-164  88 192	Untitled
-168  92 192	Untitled
-168  96 192	Untitled
-172 100 196	Untitled
-172 104 196	Untitled
-176 108 200	Untitled
-176 112 200	Untitled
-180 116 200	Untitled
-180 120 204	Untitled
-184 124 204	Untitled
-188 128 204	Untitled
-188 132 208	Untitled
-192 136 208	Untitled
-192 140 208	Untitled
-196 144 212	Untitled
-196 148 212	Untitled
-200 152 216	Untitled
-200 156 216	Untitled
-204 160 216	Untitled
-204 164 220	Untitled
-208 168 220	Untitled
-208 172 220	Untitled
-212 176 224	Untitled
-212 180 224	Untitled
-216 184 224	Untitled
-216 188 228	Untitled
-220 192 228	Untitled
-220 196 228	Untitled
-224 200 232	Untitled
-224 204 232	Untitled
-228 208 236	Untitled
-228 212 236	Untitled
-232 216 236	Untitled
-232 220 240	Untitled
-236 224 240	Untitled
-236 228 240	Untitled
-240 232 244	Untitled
-240 236 244	Untitled
-244 240 244	Untitled
-244 244 248	Untitled
-248 248 248	Untitled
-252 252 252	grey99
-252 252 252	grey99
-252 252 248	Untitled
-252 252 244	Untitled
-252 252 240	Untitled
-252 252 236	Untitled
-252 252 232	Untitled
-252 252 228	Untitled
-252 252 224	Untitled
-252 252 220	Untitled
-252 252 216	Untitled
-252 252 212	Untitled
-252 252 208	Untitled
-252 252 204	Untitled
-252 252 200	Untitled
-252 252 196	Untitled
-252 252 192	Untitled
-252 252 188	Untitled
-252 252 184	Untitled
-252 252 180	Untitled
-252 252 176	Untitled
-252 252 172	Untitled
-252 252 168	Untitled
-252 252 164	Untitled
-252 252 160	Untitled
-252 252 156	Untitled
-252 252 152	Untitled
-252 252 148	Untitled
-252 252 144	Untitled
-252 252 140	Untitled
-252 252 136	Untitled
-252 252 132	Untitled
-252 252 128	Untitled
-252 252 124	Untitled
-252 252 120	Untitled
-252 252 116	Untitled
-252 252 112	Untitled
-252 252 108	Untitled
-252 252 104	Untitled
-252 252 100	Untitled
-252 252  96	Untitled
-252 252  92	Untitled
-252 252  88	Untitled
-252 252  84	Untitled
-252 252  80	Untitled
-252 252  76	Untitled
-252 252  72	Untitled
-252 252  68	Untitled
-252 252  64	Untitled
-252 252  60	Untitled
-252 252  56	Untitled
-252 252  52	Untitled
-252 252  48	Untitled
-252 252  44	Untitled
-252 252  40	Untitled
-252 252  36	Untitled
-252 252  32	Untitled
-252 252  28	Untitled
-252 252  24	Untitled
-252 252  20	Untitled
-252 252  16	Untitled
-252 252  12	Untitled
-252 252   8	Untitled
-252 252   4	Untitled
-252 252   0	Untitled
-252 248   0	Untitled
-248 244   0	Untitled
-244 240   0	Untitled
-240 236   4	Untitled
-240 232   4	Untitled
-236 228   4	Untitled
-232 224   8	Untitled
-228 220   8	Untitled
-228 216   8	Untitled
-224 212  12	Untitled
-220 208  12	Untitled
-216 204  12	Untitled
-212 200  16	Untitled
-212 196  16	Untitled
-208 192  16	Untitled
-204 188  20	Untitled
-200 184  20	Untitled
-200 180  20	Untitled
-196 176  24	Untitled
-192 172  24	Untitled
-188 168  24	Untitled
-184 164  28	Untitled
-184 160  28	Untitled
-180 156  28	Untitled
-176 152  32	Untitled
-172 148  32	Untitled
-172 144  32	Untitled
-168 140  36	Untitled
-164 136  36	Untitled
-160 132  36	Untitled
-160 128  36	Untitled
-156 124  40	Untitled
-152 120  40	Untitled
-148 116  40	Untitled
-144 112  44	Untitled
-144 108  44	Untitled
-140 104  44	Untitled
-136 100  48	Untitled
-132  96  48	Untitled
-132  92  48	Untitled
-128  88  52	Untitled
-124  84  52	Untitled
-120  80  52	Untitled
-116  76  56	Untitled
-116  72  56	Untitled
-112  68  56	Untitled
-108  64  60	Untitled
-104  60  60	Untitled
-104  56  60	Untitled
-100  52  64	Untitled
- 96  48  64	Untitled
- 92  44  64	Untitled
- 88  40  68	Untitled
- 88  36  68	Untitled
- 84  32  68	Untitled
- 80  28  72	Untitled
- 76  24  72	Untitled
- 76  20  72	Untitled
- 72  16  76	Untitled
- 68  12  76	Untitled
- 64   8  76	Untitled
- 60   0  80	Untitled
- 60   0  80	Untitled
- 60   0  80	Untitled
- 60   0  80	Untitled
diff --git a/krita/data/palettes/Topographic.gpl b/krita/data/palettes/Topographic.gpl
deleted file mode 100644
index 8361edc72..000000000
--- a/krita/data/palettes/Topographic.gpl
+++ /dev/null
@@ -1,265 +0,0 @@
-GIMP Palette
-Name: Topographic
-#
-#   "Topographic" color map - M. Davis
-#  waterline
-#       Rocks
-#       Snow
-#      Rocks
-#
-  0   0   0	grey0
-  0   0 168	Untitled
-  4   0 172	Untitled
-  4   8 172	Untitled
-  4  12 172	Untitled
-  4  16 172	Untitled
-  8  20 176	Untitled
-  8  24 176	Untitled
-  8  28 176	Untitled
- 12  32 176	Untitled
- 12  36 180	Untitled
- 16  40 184	Untitled
- 16  44 184	Untitled
- 20  48 184	Untitled
- 20  52 188	Untitled
- 24  56 192	Untitled
- 24  60 192	Untitled
- 28  64 192	Untitled
- 28  68 196	Untitled
- 32  72 200	Untitled
- 32  76 200	Untitled
- 36  80 200	Untitled
- 36  84 204	Untitled
- 40  88 208	Untitled
- 40  92 208	Untitled
- 44  96 208	Untitled
- 44 100 212	Untitled
- 48 104 216	Untitled
- 48 108 216	Untitled
- 52 112 216	Untitled
- 52 116 220	Untitled
- 56 120 224	Untitled
- 60 124 224	Untitled
- 60 128 224	Untitled
- 64 132 228	Untitled
- 64 136 232	Untitled
- 68 132 232	Untitled
- 68 136 232	Untitled
- 68 140 232	Untitled
- 68 144 232	Untitled
- 72 148 236	Untitled
- 72 152 240	Untitled
- 76 156 240	Untitled
- 76 160 240	Untitled
- 80 164 244	Untitled
- 80 168 248	Untitled
- 84 172 248	Untitled
- 84 176 248	Untitled
- 40 124   0	Untitled
- 40 124   0	Untitled
- 44 124   0	Untitled
- 44 124   0	Untitled
- 44 124   4	Untitled
- 44 124   4	Untitled
- 44 128   4	Untitled
- 44 128   4	Untitled
- 48 128   4	Untitled
- 48 128   4	Untitled
- 48 128   8	Untitled
- 48 128   8	Untitled
- 48 132   8	Untitled
- 48 132   8	Untitled
- 52 132   8	Untitled
- 52 132   8	Untitled
- 56 132  12	Untitled
- 56 132  12	Untitled
- 60 132  12	Untitled
- 60 132  12	Untitled
- 60 136  12	Untitled
- 60 136  12	Untitled
- 60 136  16	Untitled
- 60 136  16	Untitled
- 60 140  16	Untitled
- 60 140  16	Untitled
- 64 140  16	Untitled
- 64 140  16	Untitled
- 64 140  20	Untitled
- 64 140  20	Untitled
- 64 144  20	Untitled
- 64 144  20	Untitled
- 68 144  20	Untitled
- 68 144  20	Untitled
- 68 144  24	Untitled
- 68 144  24	Untitled
- 68 148  24	Untitled
- 72 148  24	Untitled
- 72 148  28	Untitled
- 72 152  28	Untitled
- 72 152  32	Untitled
- 76 152  32	Untitled
- 76 156  32	Untitled
- 80 156  32	Untitled
- 80 156  36	Untitled
- 80 160  36	Untitled
- 80 160  40	Untitled
- 84 160  40	Untitled
- 84 164  40	Untitled
- 88 164  40	Untitled
- 88 164  44	Untitled
- 88 168  44	Untitled
- 88 168  48	Untitled
- 92 168  48	Untitled
- 92 172  48	Untitled
- 96 172  48	Untitled
- 96 172  52	Untitled
- 96 176  52	Untitled
-100 176  52	Untitled
-100 176  56	Untitled
-100 180  56	Untitled
-100 180  56	Untitled
-104 180  60	Untitled
-104 184  60	Untitled
-104 184  64	Untitled
-108 184  64	Untitled
-108 188  64	Untitled
-108 188  68	Untitled
-112 188  68	Untitled
-112 188  72	Untitled
-112 192  72	Untitled
-112 192  76	Untitled
-116 192  76	Untitled
-116 196  76	Untitled
-116 196  80	Untitled
-120 196  80	Untitled
-120 200  80	Untitled
-120 200  84	Untitled
-124 200  84	Untitled
-124 204  84	Untitled
-124 204  88	Untitled
-128 204  88	Untitled
-128 208  88	Untitled
-128 208  92	Untitled
-132 208  92	Untitled
-132 212  92	Untitled
-136 212  92	Untitled
-136 212  96	Untitled
-136 216  96	Untitled
-136 216 100	Untitled
-140 216 100	Untitled
-140 220 100	Untitled
-140 220 104	Untitled
-144 220 104	Untitled
-144 224 104	Untitled
-144 224 108	Untitled
-148 224 108	Untitled
-148 228 108	Untitled
-152 228 108	Untitled
-152 228 108	Untitled
-156 228 108	Untitled
-156 228 108	Untitled
-160 228 108	Untitled
-164 228 108	Untitled
-168 228 108	Untitled
-168 228 108	Untitled
-172 228 108	Untitled
-172 228 108	Untitled
-176 228 108	Untitled
-176 228 108	Untitled
-180 228 108	Untitled
-180 228 108	Untitled
-184 228 108	Untitled
-184 228 108	Untitled
-188 228 108	Untitled
-188 228 108	Untitled
-192 228 108	Untitled
-196 228 108	Untitled
-196 228 108	Untitled
-200 228 108	Untitled
-204 228 108	Untitled
-204 228 108	Untitled
-208 228 108	Untitled
-208 228 108	Untitled
-212 228 108	Untitled
-212 228 108	Untitled
-216 228 108	Untitled
-220 228 108	Untitled
-220 228 108	Untitled
-224 228 108	Untitled
-228 228 108	Untitled
-228 228 108	Untitled
-232 228 108	Untitled
-232 228 108	Untitled
-232 228 104	Untitled
-232 228 104	Untitled
-232 228 100	Untitled
-232 228 100	Untitled
-232 228  96	Untitled
-232 228  96	Untitled
-232 228  92	Untitled
-232 224  92	Untitled
-232 224  92	Untitled
-232 220  88	Untitled
-232 216  84	Untitled
-232 216  80	Untitled
-232 212  80	Untitled
-232 212  76	Untitled
-232 208  76	Untitled
-232 204  72	Untitled
-232 204  68	Untitled
-232 200  68	Untitled
-232 200  64	Untitled
-232 200  64	Untitled
-232 196  64	Untitled
-232 196  60	Untitled
-232 192  60	Untitled
-232 192  56	Untitled
-232 188  56	Untitled
-232 188  52	Untitled
-232 184  52	Untitled
-232 184  48	Untitled
-232 180  48	Untitled
-232 180  44	Untitled
-232 180  44	Untitled
-232 176  44	Untitled
-232 176  44	Untitled
-232 176  40	Untitled
-232 176  40	Untitled
-232 172  40	Untitled
-232 172  36	Untitled
-232 168  36	Untitled
-232 168  36	Untitled
-228 164  32	Untitled
-228 164  32	Untitled
-228 160  32	Untitled
-228 160  32	Untitled
-224 156  28	Untitled
-224 152  24	Untitled
-224 152  24	Untitled
-224 148  20	Untitled
-220 148  20	Untitled
-220 140  16	Untitled
-220 140  16	Untitled
-220 132  16	Untitled
-216 132  16	Untitled
-216 124   8	Untitled
-216 124   8	Untitled
-216 116   8	Untitled
-128 128 128	Untitled
-128 128 128	Untitled
-252 252 252	grey99
-252 252 252	grey99
-252 252 252	grey99
-252 252 252	grey99
-252 252 252	grey99
-252 252 252	grey99
-252 252 252	grey99
-252 252 252	grey99
-192 192 192	Untitled
-192 192 192	Untitled
-252 252 252	grey99
-252 252 252	grey99
-252 252 252	grey99
-252 252 252	grey99
-252 252 252	grey99
-252 252 252	grey99
-252 252 252	grey99
diff --git a/krita/data/palettes/Visibone.gpl b/krita/data/palettes/Visibone.gpl
deleted file mode 100644
index 17c357b9f..000000000
--- a/krita/data/palettes/Visibone.gpl
+++ /dev/null
@@ -1,346 +0,0 @@
-GIMP Palette
-Name: Visibone
-Columns: 16
-#
-# Visibone -- GIMP Palette file
-#
-#  Arrangement idea from www.visibone.com
-#  Conversion to GIMP Palette and addition of
-#  hex codes and color names by Tigert <tigert@gimp.org>
-# 
-255 255 255	#FFFFFF - White
-204 204 204	#CCCCCC - Pale Gray
-153 153 153	#999999 - Light Gray
-102 102 102	#666666 - Dark Gray
- 51  51  51	#333333 - Obscure Gray
-  0   0   0	#000000 - Black
-255 204   0	#FFCC00 - Yellow-Yellow-Orange
-255 153   0	#FF9900 - Orange-Orange-Yellow
-255 102   0	#FF6600 - Orange-Orange-Red
-255  51   0	#FF3300 - Red-Red-Orange
-  0   0   0	#000000 - Black
- 51  51  51	#333333 - Obscure Gray
-102 102 102	#666666 - Dark Gray
-153 153 153	#999999 - Light Gray
-204 204 204	#CCCCCC - Pale Gray
-255 255 255	#FFFFFF - White
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-255 204  51	#FFCC33 - Light Yellow-Orange
-255 204 102	#FFCC66 - Light Orange-Yellow
-255 153 102	#FF9966 - Light Orange-Red
-255 102  51	#FF6633 - Light Red-Orange
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-204 153   0	#CC9900 - Dark Yellow-Orange
-204 153  51	#CC9933 - Medium Orange-Yellow
-204 102  51	#CC6633 - Medium Orange-Red
-204  51   0	#CC3300 - Dark Red-Orange
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
- 51  51   0	#333300 - Obscure Weak Yellow
-102 102   0	#666600 - Obscure Dull Yellow
-153 153   0	#999900 - Dark Faded Yellow
-204 204   0	#CCCC00 - Dark Hard Yellow
-255 255   0	#FFFF00 - Yellow
-153 102   0	#996600 - Dark Orange-Yellow
-153  51   0	#993300 - Dark Orange-Red
- 51   0   0	#330000 - Obscure Weak Red
-102   0   0	#660000 - Obscure Dull Red
-153   0   0	#990000 - Dark Faded Red
-204   0   0	#CC0000 - Dark Hard Red
-255   0   0	#FF0000 - Red
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-204 255   0	#CCFF00 - Yellow-Yellow-Spring
-204 255  51	#CCFF33 - Light Yellow-Spring
-153 204   0	#99CC00 - Dark Yellow-Spring
-102 102  51	#666633 - Dark Weak Yellow
-153 153  51	#999933 - Dark Dull Yellow
-204 204  51	#CCCC33 - Medium Faded Yellow
-255 255  51	#FFFF33 - Light Hard Yellow
-102  51   0	#663300 - Obscure Dull Orange
-  0   0   0	#000000 - Black
-102  51  51	#663333 - Dark Weak Red
-153  51  51	#993333 - Dark Dull Red
-204  51  51	#CC3333 - Medium Faded Red
-255  51  51	#FF3333 - Light Hard Red
-204   0  51	#CC0033 - Dark Red-Pink
-255  51 102	#FF3366 - Light Red-Pink
-255   0  51	#FF0033 - Red-Red-Pink 
-153 255   0	#99FF00 - Spring-Spring-Yellow
-204 255 102	#CCFF66 - Light Spring-Yellow
-153 204  51	#99CC33 - Medium Spring-Yellow
-102 153   0	#669900 - Dark Spring-Yellow
-153 153 102	#999966 - Medium Weak Yellow
-204 204 102	#CCCC66 - Light Dull Yellow
-255 255 102	#FFFF66 - Light Faded Yellow
-153 102  51	#996633 - Dark Dull Orange
-204 102   0	#CC6600 - Dark Hard Orange
-153 102 102	#996666 - Medium Weak Red
-204 102 102	#CC6666 - Light Dull Red
-255 102 102	#FF6666 - Light Faded Red
-153   0  51	#990033 - Dark Pink-Red
-204  51 102	#CC3366 - Medium Pink-Red
-255 102 153	#FF6699 - Light Pink-Red
-255   0 102	#FF0066 - Pink-Pink-Red
-102 255   0	#66FF00 - Spring-Spring-Green
-153 255 102	#99FF66 - Light Spring-Green
-102 204  51	#66CC33 - Medium Spring-Green
- 51 153   0	#339900 - Dark Spring-Green
-  0   0   0	#000000 - Black
-204 204 153	#CCCC99 - Light Weak Yellow
-255 255 153	#FFFF99 - Pale Dull Yellow
-204 153 102	#CC9966 - Light Dull Orange
-255 153  51	#FF9933 - Light Hard Orange
-204 153 153	#CC9999 - Light Weak Red
-255 153 153	#FF9999 - Pale Dull Red
-  0   0   0	#000000 - Black
-153   0 102	#990066 - Dark Pink-Magenta
-204  51 153	#CC3399 - Medium Pink-Magenta
-255 102 204	#FF66CC - Light Pink-Magenta
-255   0 153	#FF0099 - Pink-Pink-Magenta
- 51 255   0	#33FF00 - Green-Green-Spring
-102 255  51	#66FF33 - Light Green-Spring
- 51 204   0	#33CC00 - Dark Green-Spring
- 51 102   0	#336600 - Obscure Dull Spring
-102 204   0	#66CC00 - Dark Hard Spring
-153 255  51	#99FF33 - Light Hard Spring
-255 255 204	#FFFFCC - Pale Weak Yellow
-255 204 153	#FFCC99 - Pale Dull Orange
-  0   0   0	#000000 - Black
-255 204 204	#FFCCCC - Pale Weak Red
-204 102 153	#CC6699 - Light Dull Pink
-153  51 102	#993366 - Dark Dull Pink
-102   0  51	#660033 - Obscure Dull Pink
-204   0 153	#CC0099 - Dark Magenta-Pink
-255  51 204	#FF33CC - Light Magenta-Pink
-255   0 204	#FF00CC - Magenta-Magenta-Pink
-  0 255   0	#00FF00 - Green
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-102 153  51	#669933 - Dark Dull Spring
-153 204 102	#99CC66 - Light Dull Spring
-204 255 153	#CCFF99 - Pale Dull Spring
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-255 153 204	#FF99CC - Pale Dull Pink
-255  51 153	#FF3399 - Light Hard Pink
-204   0 102	#CC0066 - Dark Hard Pink
-  0   0   0	#000000 - Black
-102  51 102	#663366 - Dark Weak Magenta
- 51   0  51	#330033 - Obscure Weak Magenta
-  0 204   0	#00CC00 - Dark Hard Green
- 51 255  51	#33FF33 - Light Hard Green
-102 255 102	#66FF66 - Light Faded Green
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-204 153 204	#CC99CC - Light Weak Magenta
-153 102 153	#996699 - Medium Weak Magenta
-153  51 153	#993399 - Dark Dull Magenta
-102   0 102	#660066 - Obscure Dull Magenta
-  0 153   0	#009900 - Dark Faded Green
- 51 204  51	#33CC33 - Medium Faded Green
-102 204 102	#66CC66 - Light Dull Green
-153 255 153	#99FF99 - Pale Dull Green
-204 255 204	#CCFFCC - Pale Weak Green
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-255 204 255	#FFCCFF - Pale Weak Magenta
-255 153 255	#FF99FF - Pale Dull Magenta
-204 102 204	#CC66CC - Light Dull Magenta
-204  51 204	#CC33CC - Medium Faded Magenta
-153   0 153	#990099 - Dark Faded Magenta
-  0 102   0	#006600 - Obscure Dull Green
- 51 153  51	#339933 - Dark Dull Green
-102 153 102	#669966 - Medium Weak Green
-153 204 153	#99CC99 - Light Weak Green
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-255 102 255	#FF66FF - Light Faded Magenta
-255  51 255	#FF33FF - Light Hard Magenta
-204   0 204	#CC00CC - Dark Hard Magenta
-  0  51   0	#003300 - Obscure Weak Green
- 51 102  51	#336633 - Dark Weak Green
-  0   0   0	#000000 - Black
-  0 204 102	#00CC66 - Dark Hard Teal
- 51 255 153	#33FF99 - Light Hard Teal
-153 255 204	#99FFCC - Pale Dull Teal
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-204 153 255	#CC99FF - Pale Dull Violet
-153 102 204	#9966CC - Light Dull Violet
-102  51 153	#663399 - Dark Dull Violet
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-255   0 255	#FF00FF - Magenta
-  0 255  51	#00FF33 - Green-Green-Teal
- 51 255 102	#33FF66 - Light Green-Teal
-  0 204  51	#00CC33 - Dark Green-Teal
-  0 102  51	#006633 - Obscure Dull Teal
- 51 153 102	#339966 - Dark Dull Teal
-102 204 153	#66CC99 - Light Dull Teal
-204 255 255	#CCFFFF - Pale Weak Cyan
-  0   0   0	#000000 - Black
-153 204 255	#99CCFF - Pale Dull Azure
-204 204 255	#CCCCFF - Pale Weak Blue
-153  51 255	#9933FF - Light Hard Violet
-102   0 204	#6600CC - Dark Hard Violet
- 51   0 102	#330066 - Obscure Dull Violet
-153   0 204	#9900CC - Dark Magenta-Violet
-204  51 255	#CC33FF - Light Magenta-Violet
-204   0 255	#CC00FF - Magenta-Magenta-Violet
-  0 255 102	#00FF66 - Teal-Teal-Green
-102 255 153	#66FF99 - Light Teal-Green
- 51 204 102	#33CC66 - Medium Teal-Green
-  0 153  51	#009933 - Dark Teal-Green
-  0   0   0	#000000 - Black
-153 255 255	#99FFFF - Pale Dull Cyan
-153 204 204	#99CCCC - Light Weak Cyan
- 51 153 255	#3399FF - Light Hard Azure
-102 153 204	#6699CC - Light Dull Azure
-153 153 255	#9999FF - Pale Dull Blue
-153 153 204	#9999CC - Light Weak Blue
-  0   0   0	#000000 - Black
-102   0 153	#660099 - Dark Violet-Magenta
-153  51 204	#9933CC - Medium Violet-Magenta
-204 102 255	#CC66FF - Light Violet-Magenta
-153   0 255	#9900FF - Violet-Violet-Magenta
-  0 255 153	#00FF99 - Teal-Teal-Cyan
-102 255 204	#66FFCC - Light Teal-Cyan
- 51 204 153	#33CC99 - Medium Teal-Cyan
-  0 153 102	#009966 - Dark Teal-Cyan
-102 255 255	#66FFFF - Light Faded Cyan
-102 204 204	#66CCCC - Light Dull Cyan
-102 153 153	#669999 - Medium Weak Cyan
-  0 102 204	#0066CC - Dark Hard Azure
- 51 102 153	#336699 - Dark Dull Azure
-102 102 255	#6666FF - Light Faded Blue
-102 102 204	#6666CC - Light Dull Blue
-102 102 153	#666699 - Medium Weak Blue
-102   0 153	#660099 - Dark Violet-Magenta
-153  51 204	#9933CC - Medium Violet-Magenta
-204 102 255	#CC66FF - Light Violet-Magenta
-153   0 255	#9900FF - Violet-Violet-Magenta
-  0 255 204	#00FFCC - Cyan-Cyan-Teal
- 51 255 204	#33FFCC - Light Cyan-Teal
-  0 204 153	#00CC99 - Dark Cyan-Teal
- 51 255 255	#33FFFF - Light Hard Cyan
- 51 204 204	#33CCCC - Medium Faded Cyan
- 51 153 153	#339999 - Dark Dull Cyan
- 51 102 102	#336666 - Dark Weak Cyan
-  0   0   0	#000000 - Black
-  0  51 102	#003366 - Obscure Dull Azure
- 51  51 255	#3333FF - Light Hard Blue
- 51  51 204	#3333CC - Medium Faded Blue
- 51  51 153	#333399 - Dark Dull Blue
- 51  51 102	#333366 - Dark Weak Blue
- 51   0 204	#3300CC - Dark Blue-Violet
-102  51 255	#6633FF - Light Blue-Violet
- 51   0 255	#3300FF - Blue-Blue-Violet
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0 255 255	#00FFFF - Cyan
-  0 204 204	#00CCCC - Dark Hard Cyan
-  0 153 153	#009999 - Dark Faded Cyan
-  0 102 102	#006666 - Obscure Dull Cyan
-  0  51  51	#003333 - Obscure Weak Cyan
-  0 102 153	#006699 - Dark Azure-Cyan
-  0  51 153	#003399 - Dark Azure-Blue
-  0   0 255	#0000FF - Blue
-  0   0 204	#0000CC - Dark Hard Blue
-  0   0 153	#000099 - Dark Faded Blue
-  0   0 102	#000066 - Obscure Dull Blue
-  0   0  51	#000033 - Obscure Weak Blue
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0 153 204	#0099CC - Dark Cyan-Azure
- 51 153 204	#3399CC - Medium Azure-Cyan
- 51 102 204	#3366CC - Medium Azure-Blue
-  0  51 204	#0033CC - Dark Blue-Azure
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
- 51 204 255	#33CCFF - Light Cyan-Azure
-102 204 255	#66CCFF - Light Azure-Cyan
-102 153 255	#6699FF - Light Azure-Blue
- 51 102 255	#3366FF - Light Blue-Azure
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-  0   0   0	#000000 - Black
-255 255 255	#FFFFFF - White
-204 204 204	#CCCCCC - Pale Gray
-153 153 153	#999999 - Light Gray
-102 102 102	#666666 - Dark Gray
- 51  51  51	#333333 - Obscure Gray
-  0   0   0	#000000 - Black
-  0 204 255	#00CCFF - Cyan-Cyan-Azure
-  0 153 255	#0099FF - Azure-Azure-Cyan
-  0 102 255	#0066FF - Azure-Azure-Blue
-  0  51 255	#0033FF - Blue-Blue-Azure
-  0   0   0	#000000 - Black
- 51  51  51	#333333 - Obscure Gray
-102 102 102	#666666 - Dark Gray
-153 153 153	#999999 - Light Gray
-204 204 204	#CCCCCC - Pale Gray
-255 255 255	#FFFFFF - White
diff --git a/krita/data/palettes/Visibone_2.gpl b/krita/data/palettes/Visibone_2.gpl
deleted file mode 100644
index affacd187..000000000
--- a/krita/data/palettes/Visibone_2.gpl
+++ /dev/null
@@ -1,266 +0,0 @@
-GIMP Palette
-Name: Visibone 2
-Columns: 16
-#
-# Visibone 2 -- GIMP Palette file
-#
-#  Arrangement idea from www.visibone.com
-#  Conversion to GIMP Palette and addition of
-#  RGB and hex codes by Carey Bunks <cbunks@bbn.com>
-# 
-255 255 255	(255 255 255) #FFFFFF
-204 204 204	(204 204 204) #CCCCCC
-153 153 153	(153 153 153) #999999
-102 102 102	(102 102 102) #666666
- 51  51  51	( 51  51  51) #333333
-  0   0   0	(  0   0   0) #000000
-255 204   0	(255 204   0) #FFCC00
-255 153   0	(255 153   0) #FF9900
-255 102   0	(255 102   0) #FF6600
-255  51   0	(255  51   0) #FF3300
-  0   0   0	(  0   0   0) #000000
- 51  51  51	( 51  51  51) #333333
-102 102 102	(102 102 102) #666666
-153 153 153	(153 153 153) #999999
-204 204 204	(204 204 204) #CCCCCC
-255 255 255	(255 255 255) #FFFFFF
-153 204   0	(153 204   0) #99CC00
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-204 153   0	(204 153   0) #CC9900
-255 204  51	(255 204  51) #FFCC33
-255 204 102	(255 204 102) #FFCC66
-255 153 102	(255 153 102) #FF9966
-255 102  51	(255 102  51) #FF6633
-204  51   0	(204  51   0) #CC3300
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-204   0  51	(204   0  51) #CC0033
-204 255   0	(204 255   0) #CCFF00
-204 255  51	(204 255  51) #CCFF33
- 51  51   0	( 51  51   0) #333300
-102 102   0	(102 102   0) #666600
-153 153   0	(153 153   0) #999900
-204 204   0	(204 204   0) #CCCC00
-255 255   0	(255 255   0) #FFFF00
-204 153  51	(204 153  51) #CC9933
-204 102  51	(204 102  51) #CC6633
- 51   0   0	( 51   0   0) #330000
-102   0   0	(102   0   0) #660000
-153   0   0	(153   0   0) #990000
-204   0   0	(204   0   0) #CC0000
-255   0   0	(255   0   0) #FF0000
-255  51 102	(255  51 102) #FF3366
-255   0  51	(255   0  51) #FF0033
-153 255   0	(153 255   0) #99FF00
-204 255 102	(204 255 102) #CCFF66
-153 204  51	(153 204  51) #99CC33
-102 102  51	(102 102  51) #666633
-153 153  51	(153 153  51) #999933
-204 204  51	(204 204  51) #CCCC33
-255 255  51	(255 255  51) #FFFF33
-153 102   0	(153 102   0) #996600
-153  51   0	(153  51   0) #993300
-102  51  51	(102  51  51) #663333
-153  51  51	(153  51  51) #993333
-204  51  51	(204  51  51) #CC3333
-255  51  51	(255  51  51) #FF3333
-204  51 102	(204  51 102) #CC3366
-255 102 153	(255 102 153) #FF6699
-255   0 102	(255   0 102) #FF0066
-102 255   0	(102 255   0) #66FF00
-153 255 102	(153 255 102) #99FF66
-102 204  51	(102 204  51) #66CC33
-102 153   0	(102 153   0) #669900
-153 153 102	(153 153 102) #999966
-204 204 102	(204 204 102) #CCCC66
-255 255 102	(255 255 102) #FFFF66
-153 102  51	(153 102  51) #996633
-102  51   0	(102  51   0) #663300
-153 102 102	(153 102 102) #996666
-204 102 102	(204 102 102) #CC6666
-255 102 102	(255 102 102) #FF6666
-153   0  51	(153   0  51) #990033
-204  51 153	(204  51 153) #CC3399
-255 102 204	(255 102 204) #FF66CC
-255   0 153	(255   0 153) #FF0099
- 51 255   0	( 51 255   0) #33FF00
-102 255  51	(102 255  51) #66FF33
- 51 153   0	( 51 153   0) #339900
-102 204   0	(102 204   0) #66CC00
-153 255  51	(153 255  51) #99FF33
-204 204 153	(204 204 153) #CCCC99
-255 255 153	(255 255 153) #FFFF99
-204 153 102	(204 153 102) #CC9966
-204 102   0	(204 102   0) #CC6600
-204 153 153	(204 153 153) #CC9999
-255 153 153	(255 153 153) #FF9999
-255  51 153	(255  51 153) #FF3399
-204   0 102	(204   0 102) #CC0066
-153   0 102	(153   0 102) #990066
-255  51 204	(255  51 204) #FF33CC
-255   0 204	(255   0 204) #FF00CC
-  0 204   0	(  0 204   0) #00CC00
- 51 204   0	( 51 204   0) #33CC00
- 51 102   0	( 51 102   0) #336600
-102 153  51	(102 153  51) #669933
-153 204 102	(153 204 102) #99CC66
-204 255 153	(204 255 153) #CCFF99
-255 255 204	(255 255 204) #FFFFCC
-255 204 153	(255 204 153) #FFCC99
-255 153  51	(255 153  51) #FF9933
-255 204 204	(255 204 204) #FFCCCC
-255 153 204	(255 153 204) #FF99CC
-204 102 153	(204 102 153) #CC6699
-153  51 102	(153  51 102) #993366
-102   0  51	(102   0  51) #660033
-204   0 153	(204   0 153) #CC0099
- 51   0  51	( 51   0  51) #330033
- 51 204  51	( 51 204  51) #33CC33
-102 204 102	(102 204 102) #66CC66
-  0 255   0	(  0 255   0) #00FF00
- 51 255  51	( 51 255  51) #33FF33
-102 255 102	(102 255 102) #66FF66
-153 255 153	(153 255 153) #99FF99
-204 255 204	(204 255 204) #CCFFCC
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-204 153 204	(204 153 204) #CC99CC
-153 102 153	(153 102 153) #996699
-153  51 153	(153  51 153) #993399
-153   0 153	(153   0 153) #990099
-102  51 102	(102  51 102) #663366
-102   0 102	(102   0 102) #660066
-  0 102   0	(  0 102   0) #006600
- 51 102  51	( 51 102  51) #336633
-  0 153   0	(  0 153   0) #009900
- 51 153  51	( 51 153  51) #339933
-102 153 102	(102 153 102) #669966
-153 204 153	(153 204 153) #99CC99
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-255 204 255	(255 204 255) #FFCCFF
-255 153 255	(255 153 255) #FF99FF
-255 102 255	(255 102 255) #FF66FF
-255  51 255	(255  51 255) #FF33FF
-255   0 255	(255   0 255) #FF00FF
-204 102 204	(204 102 204) #CC66CC
-204  51 204	(204  51 204) #CC33CC
-  0  51   0	(  0  51   0) #003300
-  0 204  51	(  0 204  51) #00CC33
-  0 102  51	(  0 102  51) #006633
- 51 153 102	( 51 153 102) #339966
-102 204 153	(102 204 153) #66CC99
-153 255 204	(153 255 204) #99FFCC
-204 255 255	(204 255 255) #CCFFFF
- 51 153 255	( 51 153 255) #3399FF
-153 204 255	(153 204 255) #99CCFF
-204 204 255	(204 204 255) #CCCCFF
-204 153 255	(204 153 255) #CC99FF
-153 102 204	(153 102 204) #9966CC
-102  51 153	(102  51 153) #663399
- 51   0 102	( 51   0 102) #330066
-153   0 204	(153   0 204) #9900CC
-204   0 204	(204   0 204) #CC00CC
-  0 255  51	(  0 255  51) #00FF33
- 51 255 102	( 51 255 102) #33FF66
-  0 153  51	(  0 153  51) #009933
-  0 204 102	(  0 204 102) #00CC66
- 51 255 153	( 51 255 153) #33FF99
-153 255 255	(153 255 255) #99FFFF
-153 204 204	(153 204 204) #99CCCC
-  0 102 204	(  0 102 204) #0066CC
-102 153 204	(102 153 204) #6699CC
-153 153 255	(153 153 255) #9999FF
-153 153 204	(153 153 204) #9999CC
-153  51 255	(153  51 255) #9933FF
-102   0 204	(102   0 204) #6600CC
-102   0 153	(102   0 153) #660099
-204  51 255	(204  51 255) #CC33FF
-204   0 255	(204   0 255) #CC00FF
-  0 255 102	(  0 255 102) #00FF66
-102 255 153	(102 255 153) #66FF99
- 51 204 102	( 51 204 102) #33CC66
-  0 153 102	(  0 153 102) #009966
-102 255 255	(102 255 255) #66FFFF
-102 204 204	(102 204 204) #66CCCC
-102 153 153	(102 153 153) #669999
-  0  51 102	(  0  51 102) #003366
- 51 102 153	( 51 102 153) #336699
-102 102 255	(102 102 255) #6666FF
-102 102 204	(102 102 204) #6666CC
-102 102 153	(102 102 153) #666699
- 51   0 153	( 51   0 153) #330099
-153  51 204	(153  51 204) #9933CC
-204 102 255	(204 102 255) #CC66FF
-153   0 255	(153   0 255) #9900FF
-  0 255 153	(  0 255 153) #00FF99
-102 255 204	(102 255 204) #66FFCC
- 51 204 153	( 51 204 153) #33CC99
- 51 255 255	( 51 255 255) #33FFFF
- 51 204 204	( 51 204 204) #33CCCC
- 51 153 153	( 51 153 153) #339999
- 51 102 102	( 51 102 102) #336666
-  0 102 153	(  0 102 153) #006699
-  0  51 153	(  0  51 153) #003399
- 51  51 255	( 51  51 255) #3333FF
- 51  51 204	( 51  51 204) #3333CC
- 51  51 153	( 51  51 153) #333399
- 51  51 102	( 51  51 102) #333366
-102  51 204	(102  51 204) #6633CC
-153 102 255	(153 102 255) #9966FF
-102   0 255	(102   0 255) #6600FF
-  0 255 204	(  0 255 204) #00FFCC
- 51 255 204	( 51 255 204) #33FFCC
-  0 255 255	(  0 255 255) #00FFFF
-  0 204 204	(  0 204 204) #00CCCC
-  0 153 153	(  0 153 153) #009999
-  0 102 102	(  0 102 102) #006666
-  0  51  51	(  0  51  51) #003333
- 51 153 204	( 51 153 204) #3399CC
- 51 102 204	( 51 102 204) #3366CC
-  0   0 255	(  0   0 255) #0000FF
-  0   0 204	(  0   0 204) #0000CC
-  0   0 153	(  0   0 153) #000099
-  0   0 102	(  0   0 102) #000066
-  0   0  51	(  0   0  51) #000033
-102  51 255	(102  51 255) #6633FF
- 51   0 255	( 51   0 255) #3300FF
-  0 204 153	(  0 204 153) #00CC99
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-  0 153 202	(  0 153 202) #0099CA
- 51 204 255	( 51 204 255) #33CCFF
-102 204 255	(102 204 255) #66CCFF
-102 153 255	(102 153 255) #6699FF
- 51 102 255	( 51 102 255) #3366FF
-  0  51 204	(  0  51 204) #0033CC
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
-  0   0   0	(  0   0   0) #000000
- 51   0 204	( 51   0 204) #3300CC
-255 255 255	(255 255 255) #FFFFFF
-204 204 204	(204 204 204) #CCCCCC
-153 153 153	(153 153 153) #999999
-102 102 102	(102 102 102) #666666
- 51  51  51	( 51  51  51) #333333
-  0   0   0	(  0   0   0) #000000
-  0 204 255	(  0 204 255) #00CCFF
-  0 153 255	(  0 153 255) #0099FF
-  0 102 255	(  0 102 255) #0066FF
-  0  51 255	(  0  51 255) #0033FF
-  0   0   0	(  0   0   0) #000000
- 51  51  51	( 51  51  51) #333333
-102 102 102	(102 102 102) #666666
-153 153 153	(153 153 153) #999999
-204 204 204	(204 204 204) #CCCCCC
-255 255 255	(255 255 255) #FFFFFF
diff --git a/krita/data/palettes/Volcano.gpl b/krita/data/palettes/Volcano.gpl
deleted file mode 100644
index f9031e3df..000000000
--- a/krita/data/palettes/Volcano.gpl
+++ /dev/null
@@ -1,259 +0,0 @@
-GIMP Palette
-Name: Volcano
-#
-  0   0   0	grey0
-  0   0   0	grey0
-  0   0   8	Untitled
-  0   0  16	Untitled
-  0   0  24	Untitled
-  0   0  32	Untitled
-  0   0  40	Untitled
-  0   0  48	Untitled
-  0   0  56	Untitled
-  0   0  64	Untitled
-  0   0  72	Untitled
-  0   0  84	Untitled
-  0   0  92	Untitled
-  0   0 100	Untitled
-  0   0 108	Untitled
-  0   0 116	Untitled
-  0   0 124	Untitled
-  0   0 132	Untitled
-  0   0 140	Untitled
-  0   0 148	Untitled
-  0   0 156	Untitled
-  0   0 168	Untitled
-  0   0 176	Untitled
-  0   0 184	Untitled
-  0   0 192	Untitled
-  0   0 200	Untitled
-  0   0 208	Untitled
-  0   0 216	Untitled
-  0   0 224	Untitled
-  0   0 232	Untitled
-  0   0 240	Untitled
-  0   0 252	Untitled
-  8   0 252	Untitled
- 16   0 252	Untitled
- 24   0 252	Untitled
- 32   0 252	Untitled
- 40   0 252	Untitled
- 48   0 252	Untitled
- 56   0 252	Untitled
- 64   0 252	Untitled
- 72   0 252	Untitled
- 84   0 252	Untitled
- 92   0 252	Untitled
-100   0 252	Untitled
-108   0 252	Untitled
-116   0 252	Untitled
-124   0 252	Untitled
-132   0 252	Untitled
-140   0 252	Untitled
-148   0 252	Untitled
-156   0 252	Untitled
-168   0 252	Untitled
-176   0 252	Untitled
-184   0 252	Untitled
-192   0 252	Untitled
-200   0 252	Untitled
-208   0 252	Untitled
-216   0 252	Untitled
-224   0 252	Untitled
-232   0 252	Untitled
-240   0 252	Untitled
-252   0 252	Untitled
-252   0 244	Untitled
-252   0 236	Untitled
-252   0 228	Untitled
-252   0 220	Untitled
-252   0 212	Untitled
-252   0 200	Untitled
-252   0 192	Untitled
-252   0 184	Untitled
-252   0 176	Untitled
-252   0 168	Untitled
-252   0 160	Untitled
-252   0 148	Untitled
-252   0 140	Untitled
-252   0 132	Untitled
-252   0 124	Untitled
-252   0 116	Untitled
-252   0 108	Untitled
-252   0  96	Untitled
-252   0  88	Untitled
-252   0  80	Untitled
-252   0  72	Untitled
-252   0  64	Untitled
-252   0  56	Untitled
-252   0  44	Untitled
-252   0  36	Untitled
-252   0  28	Untitled
-252   0  20	Untitled
-252   0  12	Untitled
-252   0   0	Untitled
-252   8   0	Untitled
-252  16   0	Untitled
-252  24   0	Untitled
-252  32   0	Untitled
-252  40   0	Untitled
-252  48   0	Untitled
-252  56   0	Untitled
-252  64   0	Untitled
-252  72   0	Untitled
-252  80   0	Untitled
-252  88   0	Untitled
-252  96   0	Untitled
-252 104   0	Untitled
-252 112   0	Untitled
-252 120   0	Untitled
-252 128   0	Untitled
-252 128   0	Untitled
-252 132   0	Untitled
-252 136   0	Untitled
-252 140   0	Untitled
-252 144   0	Untitled
-252 148   0	Untitled
-252 152   0	Untitled
-252 156   0	Untitled
-252 160   0	Untitled
-252 164   0	Untitled
-252 168   0	Untitled
-252 172   0	Untitled
-252 176   0	Untitled
-252 180   0	Untitled
-252 184   0	Untitled
-252 188   0	Untitled
-252 192   0	Untitled
-252 196   0	Untitled
-252 200   0	Untitled
-252 204   0	Untitled
-252 208   0	Untitled
-252 212   0	Untitled
-252 216   0	Untitled
-252 220   0	Untitled
-252 224   0	Untitled
-252 228   0	Untitled
-252 232   0	Untitled
-252 236   0	Untitled
-252 240   0	Untitled
-252 244   0	Untitled
-252 248   0	Untitled
-252 252   0	Untitled
-248 252   0	Untitled
-240 252   0	Untitled
-232 252   0	Untitled
-224 252   0	Untitled
-216 252   0	Untitled
-208 252   0	Untitled
-200 252   0	Untitled
-192 252   0	Untitled
-184 252   0	Untitled
-176 252   0	Untitled
-168 252   0	Untitled
-160 252   0	Untitled
-152 252   0	Untitled
-144 252   0	Untitled
-136 252   0	Untitled
-128 252   0	Untitled
-124 252   0	LawnGreen
-116 252   0	Untitled
-108 252   0	Untitled
-100 252   0	Untitled
- 92 252   0	Untitled
- 84 252   0	Untitled
- 76 252   0	Untitled
- 68 252   0	Untitled
- 60 252   0	Untitled
- 52 252   0	Untitled
- 44 252   0	Untitled
- 36 252   0	Untitled
- 28 252   0	Untitled
- 20 252   0	Untitled
- 12 252   0	Untitled
-  4 252   0	Untitled
- 12 252   0	Untitled
- 20 252   0	Untitled
- 28 252   0	Untitled
- 36 252   0	Untitled
- 44 252   0	Untitled
- 52 252   0	Untitled
- 60 252   0	Untitled
- 68 252   0	Untitled
- 76 252   0	Untitled
- 84 252   0	Untitled
- 92 252   0	Untitled
-100 252   0	Untitled
-108 252   0	Untitled
-116 252   0	Untitled
-124 252   0	LawnGreen
-128 252   0	Untitled
-132 252   0	Untitled
-136 252   0	Untitled
-140 252   0	Untitled
-144 252   0	Untitled
-148 252   0	Untitled
-152 252   0	Untitled
-156 252   0	Untitled
-160 252   0	Untitled
-164 252   0	Untitled
-168 252   0	Untitled
-172 252   0	Untitled
-176 252   0	Untitled
-180 252   0	Untitled
-184 252   0	Untitled
-188 252   0	Untitled
-192 252   0	Untitled
-196 252   0	Untitled
-200 252   0	Untitled
-204 252   0	Untitled
-208 252   0	Untitled
-212 252   0	Untitled
-216 252   0	Untitled
-220 252   0	Untitled
-224 252   0	Untitled
-228 252   0	Untitled
-232 252   0	Untitled
-236 252   0	Untitled
-240 252   0	Untitled
-244 252   0	Untitled
-248 252   0	Untitled
-252 252   0	Untitled
-252 232   0	Untitled
-252 208   0	Untitled
-252 184   0	Untitled
-252 164   0	Untitled
-252 140   0	Untitled
-252 116   0	Untitled
-252  92   0	Untitled
-252  72   0	Untitled
-252  48   0	Untitled
-252  24   0	Untitled
-252   0   0	Untitled
-252   8   0	Untitled
-252  20   0	Untitled
-252  32   0	Untitled
-252  44   0	Untitled
-252  56   0	Untitled
-252  68   0	Untitled
-252  80   0	Untitled
-252  88   0	Untitled
-252 100   0	Untitled
-252 112   0	Untitled
-252 124   0	Untitled
-252 136   0	Untitled
-252 148   0	Untitled
-252 160   0	Untitled
-252 168   0	Untitled
-252 180   0	Untitled
-252 192   0	Untitled
-252 204   0	Untitled
-252 216   0	Untitled
-252 228   0	Untitled
-252 240   0	Untitled
-252 252   0	Untitled
-  0   0   0	grey0
-  0   0   0	grey0
-  0   0   0	grey0
-  0   0   0	grey0
-  0   0   0	grey0
diff --git a/krita/data/palettes/Warm_Colors.gpl b/krita/data/palettes/Warm_Colors.gpl
deleted file mode 100644
index 654ad5da4..000000000
--- a/krita/data/palettes/Warm_Colors.gpl
+++ /dev/null
@@ -1,10 +0,0 @@
-GIMP Palette
-Name: Warm Colors
-#
-196   9   9	Untitled
-216 213   8	Untitled
-237 110   0	Untitled
-232   0  50	Untitled
-140  11  11	Untitled
-228 170   4	Untitled
-117   0   0	Untitled
diff --git a/krita/data/palettes/Web.gpl b/krita/data/palettes/Web.gpl
deleted file mode 100644
index 0b907f796..000000000
--- a/krita/data/palettes/Web.gpl
+++ /dev/null
@@ -1,220 +0,0 @@
-GIMP Palette
-Name: Web
-Columns: 6
-#
-255 255 255	Untitled
-255 255 204	Untitled
-255 255 153	Untitled
-255 255 102	Untitled
-255 255  51	Untitled
-255 255   0	Untitled
-255 204 255	Untitled
-255 204 204	Untitled
-255 204 153	Untitled
-255 204 102	Untitled
-255 204  51	Untitled
-255 204   0	Untitled
-255 153 255	Untitled
-255 153 204	Untitled
-255 153 153	Untitled
-255 153 102	Untitled
-255 153  51	Untitled
-255 153   0	Untitled
-255 102 255	Untitled
-255 102 204	Untitled
-255 102 153	Untitled
-255 102 102	Untitled
-255 102  51	Untitled
-255 102   0	Untitled
-255  51 255	Untitled
-255  51 204	Untitled
-255  51 153	Untitled
-255  51 102	Untitled
-255  51  51	Untitled
-255  51   0	Untitled
-255   0 255	Untitled
-255   0 204	Untitled
-255   0 153	Untitled
-255   0 102	Untitled
-255   0  51	Untitled
-255   0   0	Untitled
-204 255 255	Untitled
-204 255 204	Untitled
-204 255 153	Untitled
-204 255 102	Untitled
-204 255  51	Untitled
-204 255   0	Untitled
-204 204 255	Untitled
-204 204 204	Untitled
-204 204 153	Untitled
-204 204 102	Untitled
-204 204  51	Untitled
-204 204   0	Untitled
-204 153 255	Untitled
-204 153 204	Untitled
-204 153 153	Untitled
-204 153 102	Untitled
-204 153  51	Untitled
-204 153   0	Untitled
-204 102 255	Untitled
-204 102 204	Untitled
-204 102 153	Untitled
-204 102 102	Untitled
-204 102  51	Untitled
-204 102   0	Untitled
-204  51 255	Untitled
-204  51 204	Untitled
-204  51 153	Untitled
-204  51 102	Untitled
-204  51  51	Untitled
-204  51   0	Untitled
-204   0 255	Untitled
-204   0 204	Untitled
-204   0 153	Untitled
-204   0 102	Untitled
-204   0  51	Untitled
-204   0   0	Untitled
-153 255 255	Untitled
-153 255 204	Untitled
-153 255 153	Untitled
-153 255 102	Untitled
-153 255  51	Untitled
-153 255   0	Untitled
-153 204 255	Untitled
-153 204 204	Untitled
-153 204 153	Untitled
-153 204 102	Untitled
-153 204  51	Untitled
-153 204   0	Untitled
-153 153 255	Untitled
-153 153 204	Untitled
-153 153 153	Untitled
-153 153 102	Untitled
-153 153  51	Untitled
-153 153   0	Untitled
-153 102 255	Untitled
-153 102 204	Untitled
-153 102 153	Untitled
-153 102 102	Untitled
-153 102  51	Untitled
-153 102   0	Untitled
-153  51 255	Untitled
-153  51 204	Untitled
-153  51 153	Untitled
-153  51 102	Untitled
-153  51  51	Untitled
-153  51   0	Untitled
-153   0 255	Untitled
-153   0 204	Untitled
-153   0 153	Untitled
-153   0 102	Untitled
-153   0  51	Untitled
-153   0   0	Untitled
-102 255 255	Untitled
-102 255 204	Untitled
-102 255 153	Untitled
-102 255 102	Untitled
-102 255  51	Untitled
-102 255   0	Untitled
-102 204 255	Untitled
-102 204 204	Untitled
-102 204 153	Untitled
-102 204 102	Untitled
-102 204  51	Untitled
-102 204   0	Untitled
-102 153 255	Untitled
-102 153 204	Untitled
-102 153 153	Untitled
-102 153 102	Untitled
-102 153  51	Untitled
-102 153   0	Untitled
-102 102 255	Untitled
-102 102 204	Untitled
-102 102 153	Untitled
-102 102 102	Untitled
-102 102  51	Untitled
-102 102   0	Untitled
-102  51 255	Untitled
-102  51 204	Untitled
-102  51 153	Untitled
-102  51 102	Untitled
-102  51  51	Untitled
-102  51   0	Untitled
-102   0 255	Untitled
-102   0 204	Untitled
-102   0 153	Untitled
-102   0 102	Untitled
-102   0  51	Untitled
-102   0   0	Untitled
- 51 255 255	Untitled
- 51 255 204	Untitled
- 51 255 153	Untitled
- 51 255 102	Untitled
- 51 255  51	Untitled
- 51 255   0	Untitled
- 51 204 255	Untitled
- 51 204 204	Untitled
- 51 204 153	Untitled
- 51 204 102	Untitled
- 51 204  51	Untitled
- 51 204   0	Untitled
- 51 153 255	Untitled
- 51 153 204	Untitled
- 51 153 153	Untitled
- 51 153 102	Untitled
- 51 153  51	Untitled
- 51 153   0	Untitled
- 51 102 255	Untitled
- 51 102 204	Untitled
- 51 102 153	Untitled
- 51 102 102	Untitled
- 51 102  51	Untitled
- 51 102   0	Untitled
- 51  51 255	Untitled
- 51  51 204	Untitled
- 51  51 153	Untitled
- 51  51 102	Untitled
- 51  51  51	Untitled
- 51  51   0	Untitled
- 51   0 255	Untitled
- 51   0 204	Untitled
- 51   0 153	Untitled
- 51   0 102	Untitled
- 51   0  51	Untitled
- 51   0   0	Untitled
-  0 255 255	Untitled
-  0 255 204	Untitled
-  0 255 153	Untitled
-  0 255 102	Untitled
-  0 255  51	Untitled
-  0 255   0	Untitled
-  0 204 255	Untitled
-  0 204 204	Untitled
-  0 204 153	Untitled
-  0 204 102	Untitled
-  0 204  51	Untitled
-  0 204   0	Untitled
-  0 153 255	Untitled
-  0 153 204	Untitled
-  0 153 153	Untitled
-  0 153 102	Untitled
-  0 153  51	Untitled
-  0 153   0	Untitled
-  0 102 255	Untitled
-  0 102 204	Untitled
-  0 102 153	Untitled
-  0 102 102	Untitled
-  0 102  51	Untitled
-  0 102   0	Untitled
-  0  51 255	Untitled
-  0  51 204	Untitled
-  0  51 153	Untitled
-  0  51 102	Untitled
-  0  51  51	Untitled
-  0  51   0	Untitled
-  0   0 255	Untitled
-  0   0 204	Untitled
-  0   0 153	Untitled
-  0   0 102	Untitled
-  0   0  51	Untitled
-  0   0   0	Untitled
diff --git a/krita/data/palettes/new_kde.gpl b/krita/data/palettes/new_kde.gpl
deleted file mode 100644
index 336476068..000000000
--- a/krita/data/palettes/new_kde.gpl
+++ /dev/null
@@ -1,48 +0,0 @@
-GIMP Palette
-Name: KDE (new)
-Columns: 4
-#
-82 34 0
-159 95 0
-217 174 126
-243 223 198
-181 0 47
-231 35 0
-240 164 185
-246 207 221
-249 186 7
-255 220 0
-255 233 68
-255 245 146
-83 147 22
-99 176 31
-127 187 86
-180 213 151
-0 102 47
-0 151 84
-128 195 155
-171 215 188
-0 65 136
-0 113 188
-0 148 213
-179 221 245
-27 45 131
-74 108 179
-95 143 203
-197 217 240
-85 18 123
-121 103 171
-164 158 205
-191 184 216
-123 12 130
-155 87 159
-186 144 192
-209 176 210
-0 0 28
-11 17 45
-68 78 90
-109 113 121
-157 161 166
-187 191 195
-218 221 224
-235 236 237
\ No newline at end of file
diff --git a/krita/data/patterns/3dgreen.pat b/krita/data/patterns/3dgreen.pat
deleted file mode 100644
index 763f912b5..000000000
Binary files a/krita/data/patterns/3dgreen.pat and /dev/null differ
diff --git a/krita/data/patterns/Craters.pat b/krita/data/patterns/Craters.pat
deleted file mode 100644
index 4590349d0..000000000
Binary files a/krita/data/patterns/Craters.pat and /dev/null differ
diff --git a/krita/data/patterns/Makefile.am b/krita/data/patterns/Makefile.am
deleted file mode 100644
index 4b95bf039..000000000
--- a/krita/data/patterns/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-
-kritapatternsdir = $(prefix)/share/apps/krita/patterns
-
-kritapatterns_DATA = 3dgreen.pat Craters.pat Moonfoot.pat Stripes1px.pat Stripes2px.pat amethyst.pat bark.pat blue.pat bluegrid.pat bluesquares.pat blueweb.pat brick.pat burlap.pat burlwood.pat choc_swirl.pat corkboard.pat cracked.pat crinklepaper.pat electric.pat fibers.pat granite1.pat ground1.pat ice.pat java.pat leather.pat leaves.pat leopard.pat lightning.pat marble1.pat marble2.pat marble3.pat nops.pat paper.pat parque1.pat parque2.pat parque3.pat pastel.pat pine.pat pink_marble.pat pool.pat qube1.pat rain.pat recessed.pat redcube.pat rock.pat sky.pat slate.pat sm_squares.pat starfield.pat stone33.pat terra.pat walnut.pat warning.pat wood1.pat wood2.pat wood3.pat wood4.pat wood5.pat 
-
diff --git a/krita/data/patterns/Moonfoot.pat b/krita/data/patterns/Moonfoot.pat
deleted file mode 100644
index 4c9236c60..000000000
Binary files a/krita/data/patterns/Moonfoot.pat and /dev/null differ
diff --git a/krita/data/patterns/Stripes1px.pat b/krita/data/patterns/Stripes1px.pat
deleted file mode 100644
index ddfd0c700..000000000
Binary files a/krita/data/patterns/Stripes1px.pat and /dev/null differ
diff --git a/krita/data/patterns/Stripes2px.pat b/krita/data/patterns/Stripes2px.pat
deleted file mode 100644
index 411e1b341..000000000
Binary files a/krita/data/patterns/Stripes2px.pat and /dev/null differ
diff --git a/krita/data/patterns/amethyst.pat b/krita/data/patterns/amethyst.pat
deleted file mode 100644
index f83eb861e..000000000
Binary files a/krita/data/patterns/amethyst.pat and /dev/null differ
diff --git a/krita/data/patterns/bark.pat b/krita/data/patterns/bark.pat
deleted file mode 100644
index ba137b12e..000000000
Binary files a/krita/data/patterns/bark.pat and /dev/null differ
diff --git a/krita/data/patterns/blue.pat b/krita/data/patterns/blue.pat
deleted file mode 100644
index f13209545..000000000
Binary files a/krita/data/patterns/blue.pat and /dev/null differ
diff --git a/krita/data/patterns/bluegrid.pat b/krita/data/patterns/bluegrid.pat
deleted file mode 100644
index 33bf092cc..000000000
Binary files a/krita/data/patterns/bluegrid.pat and /dev/null differ
diff --git a/krita/data/patterns/bluesquares.pat b/krita/data/patterns/bluesquares.pat
deleted file mode 100644
index 2bce749fd..000000000
Binary files a/krita/data/patterns/bluesquares.pat and /dev/null differ
diff --git a/krita/data/patterns/blueweb.pat b/krita/data/patterns/blueweb.pat
deleted file mode 100644
index fce2c1f69..000000000
Binary files a/krita/data/patterns/blueweb.pat and /dev/null differ
diff --git a/krita/data/patterns/brick.pat b/krita/data/patterns/brick.pat
deleted file mode 100644
index 9e018230e..000000000
Binary files a/krita/data/patterns/brick.pat and /dev/null differ
diff --git a/krita/data/patterns/burlap.pat b/krita/data/patterns/burlap.pat
deleted file mode 100644
index f2fc3c4e4..000000000
Binary files a/krita/data/patterns/burlap.pat and /dev/null differ
diff --git a/krita/data/patterns/burlwood.pat b/krita/data/patterns/burlwood.pat
deleted file mode 100644
index 2d89ba145..000000000
Binary files a/krita/data/patterns/burlwood.pat and /dev/null differ
diff --git a/krita/data/patterns/choc_swirl.pat b/krita/data/patterns/choc_swirl.pat
deleted file mode 100644
index b6551129f..000000000
Binary files a/krita/data/patterns/choc_swirl.pat and /dev/null differ
diff --git a/krita/data/patterns/corkboard.pat b/krita/data/patterns/corkboard.pat
deleted file mode 100644
index ffb912e5e..000000000
Binary files a/krita/data/patterns/corkboard.pat and /dev/null differ
diff --git a/krita/data/patterns/cracked.pat b/krita/data/patterns/cracked.pat
deleted file mode 100644
index a13cc556a..000000000
Binary files a/krita/data/patterns/cracked.pat and /dev/null differ
diff --git a/krita/data/patterns/crinklepaper.pat b/krita/data/patterns/crinklepaper.pat
deleted file mode 100644
index 2efa9f769..000000000
Binary files a/krita/data/patterns/crinklepaper.pat and /dev/null differ
diff --git a/krita/data/patterns/electric.pat b/krita/data/patterns/electric.pat
deleted file mode 100644
index 342633001..000000000
Binary files a/krita/data/patterns/electric.pat and /dev/null differ
diff --git a/krita/data/patterns/fibers.pat b/krita/data/patterns/fibers.pat
deleted file mode 100644
index 66d743375..000000000
Binary files a/krita/data/patterns/fibers.pat and /dev/null differ
diff --git a/krita/data/patterns/granite1.pat b/krita/data/patterns/granite1.pat
deleted file mode 100644
index e798a389f..000000000
Binary files a/krita/data/patterns/granite1.pat and /dev/null differ
diff --git a/krita/data/patterns/ground1.pat b/krita/data/patterns/ground1.pat
deleted file mode 100644
index 88874598a..000000000
Binary files a/krita/data/patterns/ground1.pat and /dev/null differ
diff --git a/krita/data/patterns/ice.pat b/krita/data/patterns/ice.pat
deleted file mode 100644
index ffb8439ff..000000000
Binary files a/krita/data/patterns/ice.pat and /dev/null differ
diff --git a/krita/data/patterns/java.pat b/krita/data/patterns/java.pat
deleted file mode 100644
index 60f8d2ca9..000000000
Binary files a/krita/data/patterns/java.pat and /dev/null differ
diff --git a/krita/data/patterns/leather.pat b/krita/data/patterns/leather.pat
deleted file mode 100644
index 133c9c157..000000000
Binary files a/krita/data/patterns/leather.pat and /dev/null differ
diff --git a/krita/data/patterns/leaves.pat b/krita/data/patterns/leaves.pat
deleted file mode 100644
index 6ebdeba0a..000000000
Binary files a/krita/data/patterns/leaves.pat and /dev/null differ
diff --git a/krita/data/patterns/leopard.pat b/krita/data/patterns/leopard.pat
deleted file mode 100644
index 62f780b69..000000000
Binary files a/krita/data/patterns/leopard.pat and /dev/null differ
diff --git a/krita/data/patterns/lightning.pat b/krita/data/patterns/lightning.pat
deleted file mode 100644
index 1e0226769..000000000
Binary files a/krita/data/patterns/lightning.pat and /dev/null differ
diff --git a/krita/data/patterns/marble1.pat b/krita/data/patterns/marble1.pat
deleted file mode 100644
index 7be031b1e..000000000
Binary files a/krita/data/patterns/marble1.pat and /dev/null differ
diff --git a/krita/data/patterns/marble2.pat b/krita/data/patterns/marble2.pat
deleted file mode 100644
index 447c32dfa..000000000
Binary files a/krita/data/patterns/marble2.pat and /dev/null differ
diff --git a/krita/data/patterns/marble3.pat b/krita/data/patterns/marble3.pat
deleted file mode 100644
index c3b57e97a..000000000
Binary files a/krita/data/patterns/marble3.pat and /dev/null differ
diff --git a/krita/data/patterns/nops.pat b/krita/data/patterns/nops.pat
deleted file mode 100644
index 52d49fba9..000000000
Binary files a/krita/data/patterns/nops.pat and /dev/null differ
diff --git a/krita/data/patterns/paper.pat b/krita/data/patterns/paper.pat
deleted file mode 100644
index 26fa02631..000000000
Binary files a/krita/data/patterns/paper.pat and /dev/null differ
diff --git a/krita/data/patterns/parque1.pat b/krita/data/patterns/parque1.pat
deleted file mode 100644
index d647761b2..000000000
Binary files a/krita/data/patterns/parque1.pat and /dev/null differ
diff --git a/krita/data/patterns/parque2.pat b/krita/data/patterns/parque2.pat
deleted file mode 100644
index 0d493c6a6..000000000
Binary files a/krita/data/patterns/parque2.pat and /dev/null differ
diff --git a/krita/data/patterns/parque3.pat b/krita/data/patterns/parque3.pat
deleted file mode 100644
index aa43ec0d3..000000000
Binary files a/krita/data/patterns/parque3.pat and /dev/null differ
diff --git a/krita/data/patterns/pastel.pat b/krita/data/patterns/pastel.pat
deleted file mode 100644
index 09b3efb13..000000000
Binary files a/krita/data/patterns/pastel.pat and /dev/null differ
diff --git a/krita/data/patterns/pine.pat b/krita/data/patterns/pine.pat
deleted file mode 100644
index 284d7b4e0..000000000
Binary files a/krita/data/patterns/pine.pat and /dev/null differ
diff --git a/krita/data/patterns/pink_marble.pat b/krita/data/patterns/pink_marble.pat
deleted file mode 100644
index 03b4060c6..000000000
Binary files a/krita/data/patterns/pink_marble.pat and /dev/null differ
diff --git a/krita/data/patterns/pool.pat b/krita/data/patterns/pool.pat
deleted file mode 100644
index 748f9fa12..000000000
Binary files a/krita/data/patterns/pool.pat and /dev/null differ
diff --git a/krita/data/patterns/qube1.pat b/krita/data/patterns/qube1.pat
deleted file mode 100644
index de49fb2a1..000000000
Binary files a/krita/data/patterns/qube1.pat and /dev/null differ
diff --git a/krita/data/patterns/rain.pat b/krita/data/patterns/rain.pat
deleted file mode 100644
index d00aadb2a..000000000
Binary files a/krita/data/patterns/rain.pat and /dev/null differ
diff --git a/krita/data/patterns/recessed.pat b/krita/data/patterns/recessed.pat
deleted file mode 100644
index 04d86f374..000000000
Binary files a/krita/data/patterns/recessed.pat and /dev/null differ
diff --git a/krita/data/patterns/redcube.pat b/krita/data/patterns/redcube.pat
deleted file mode 100644
index 7411b5584..000000000
Binary files a/krita/data/patterns/redcube.pat and /dev/null differ
diff --git a/krita/data/patterns/rock.pat b/krita/data/patterns/rock.pat
deleted file mode 100644
index 8c545fd26..000000000
Binary files a/krita/data/patterns/rock.pat and /dev/null differ
diff --git a/krita/data/patterns/sky.pat b/krita/data/patterns/sky.pat
deleted file mode 100644
index 0add1646e..000000000
Binary files a/krita/data/patterns/sky.pat and /dev/null differ
diff --git a/krita/data/patterns/slate.pat b/krita/data/patterns/slate.pat
deleted file mode 100644
index 152da130c..000000000
Binary files a/krita/data/patterns/slate.pat and /dev/null differ
diff --git a/krita/data/patterns/sm_squares.pat b/krita/data/patterns/sm_squares.pat
deleted file mode 100644
index 93ddc976d..000000000
Binary files a/krita/data/patterns/sm_squares.pat and /dev/null differ
diff --git a/krita/data/patterns/starfield.pat b/krita/data/patterns/starfield.pat
deleted file mode 100644
index f53ba402e..000000000
Binary files a/krita/data/patterns/starfield.pat and /dev/null differ
diff --git a/krita/data/patterns/stone33.pat b/krita/data/patterns/stone33.pat
deleted file mode 100644
index 08646912b..000000000
Binary files a/krita/data/patterns/stone33.pat and /dev/null differ
diff --git a/krita/data/patterns/terra.pat b/krita/data/patterns/terra.pat
deleted file mode 100644
index 79bc2ec42..000000000
Binary files a/krita/data/patterns/terra.pat and /dev/null differ
diff --git a/krita/data/patterns/walnut.pat b/krita/data/patterns/walnut.pat
deleted file mode 100644
index 7007dd812..000000000
Binary files a/krita/data/patterns/walnut.pat and /dev/null differ
diff --git a/krita/data/patterns/warning.pat b/krita/data/patterns/warning.pat
deleted file mode 100644
index a62d98adc..000000000
Binary files a/krita/data/patterns/warning.pat and /dev/null differ
diff --git a/krita/data/patterns/wood1.pat b/krita/data/patterns/wood1.pat
deleted file mode 100644
index 07fa24cab..000000000
Binary files a/krita/data/patterns/wood1.pat and /dev/null differ
diff --git a/krita/data/patterns/wood2.pat b/krita/data/patterns/wood2.pat
deleted file mode 100644
index 7da760e6d..000000000
Binary files a/krita/data/patterns/wood2.pat and /dev/null differ
diff --git a/krita/data/patterns/wood3.pat b/krita/data/patterns/wood3.pat
deleted file mode 100644
index 0712c2de7..000000000
Binary files a/krita/data/patterns/wood3.pat and /dev/null differ
diff --git a/krita/data/patterns/wood4.pat b/krita/data/patterns/wood4.pat
deleted file mode 100644
index 1fc27822a..000000000
Binary files a/krita/data/patterns/wood4.pat and /dev/null differ
diff --git a/krita/data/patterns/wood5.pat b/krita/data/patterns/wood5.pat
deleted file mode 100644
index 5f415ce69..000000000
Binary files a/krita/data/patterns/wood5.pat and /dev/null differ
diff --git a/krita/data/profiles/Adobe.icm b/krita/data/profiles/Adobe.icm
deleted file mode 100644
index ae368c6d1..000000000
Binary files a/krita/data/profiles/Adobe.icm and /dev/null differ
diff --git a/krita/data/profiles/Apple.icm b/krita/data/profiles/Apple.icm
deleted file mode 100644
index 6113a226e..000000000
Binary files a/krita/data/profiles/Apple.icm and /dev/null differ
diff --git a/krita/data/profiles/CIE.icm b/krita/data/profiles/CIE.icm
deleted file mode 100644
index bd5e20a8e..000000000
Binary files a/krita/data/profiles/CIE.icm and /dev/null differ
diff --git a/krita/data/profiles/CMY.icm b/krita/data/profiles/CMY.icm
deleted file mode 100644
index acc71ddd9..000000000
Binary files a/krita/data/profiles/CMY.icm and /dev/null differ
diff --git a/krita/data/profiles/ColorMatch.icm b/krita/data/profiles/ColorMatch.icm
deleted file mode 100644
index d1c1a1f87..000000000
Binary files a/krita/data/profiles/ColorMatch.icm and /dev/null differ
diff --git a/krita/data/profiles/Makefile.am b/krita/data/profiles/Makefile.am
deleted file mode 100644
index e42f1dbb0..000000000
--- a/krita/data/profiles/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-
-kritaprofilesdir = $(prefix)/share/apps/krita/profiles
-
-kritaprofiles_DATA = Adobe.icm Apple.icm CIE.icm CMY.icm cmyk.icm ColorMatch.icm fogra27l.icm lcmslabi.icm lcmsxyzi.icm monoscnr.icm NTSC.icm PAL.icm SMPTE-C.icm srgb_color_space_profile.icm sRGB.icm srgbspac.icm tifflab8spac.icm WideGamut.icm ycc601.icm ycc709.icm
diff --git a/krita/data/profiles/NTSC.icm b/krita/data/profiles/NTSC.icm
deleted file mode 100644
index abe4dcfb8..000000000
Binary files a/krita/data/profiles/NTSC.icm and /dev/null differ
diff --git a/krita/data/profiles/PAL.icm b/krita/data/profiles/PAL.icm
deleted file mode 100644
index 173a0d2ba..000000000
Binary files a/krita/data/profiles/PAL.icm and /dev/null differ
diff --git a/krita/data/profiles/README b/krita/data/profiles/README
deleted file mode 100644
index f0a757980..000000000
--- a/krita/data/profiles/README
+++ /dev/null
@@ -1,5 +0,0 @@
-The icm profile files have been downloaded from the littlecms
-(http://www.littlecms.com) and from the Scarse website
-(http://www.scarse.org). The Scarse profiles have been available under
-the GPL; the littlecms profiles appear to be public domain.
-The cmyk.icm profile is taken from the GPL version jpedal.
diff --git a/krita/data/profiles/SMPTE-C.icm b/krita/data/profiles/SMPTE-C.icm
deleted file mode 100644
index 7f4ef578a..000000000
Binary files a/krita/data/profiles/SMPTE-C.icm and /dev/null differ
diff --git a/krita/data/profiles/WideGamut.icm b/krita/data/profiles/WideGamut.icm
deleted file mode 100644
index 120a99a17..000000000
Binary files a/krita/data/profiles/WideGamut.icm and /dev/null differ
diff --git a/krita/data/profiles/cmyk.icm b/krita/data/profiles/cmyk.icm
deleted file mode 100644
index 65bc4e854..000000000
Binary files a/krita/data/profiles/cmyk.icm and /dev/null differ
diff --git a/krita/data/profiles/fogra27l.icm b/krita/data/profiles/fogra27l.icm
deleted file mode 100644
index 1cf03c3aa..000000000
Binary files a/krita/data/profiles/fogra27l.icm and /dev/null differ
diff --git a/krita/data/profiles/lcmslabi.icm b/krita/data/profiles/lcmslabi.icm
deleted file mode 100644
index f86821b5c..000000000
Binary files a/krita/data/profiles/lcmslabi.icm and /dev/null differ
diff --git a/krita/data/profiles/lcmsxyzi.icm b/krita/data/profiles/lcmsxyzi.icm
deleted file mode 100644
index 099006aaf..000000000
Binary files a/krita/data/profiles/lcmsxyzi.icm and /dev/null differ
diff --git a/krita/data/profiles/monoscnr.icm b/krita/data/profiles/monoscnr.icm
deleted file mode 100644
index 411a9728f..000000000
Binary files a/krita/data/profiles/monoscnr.icm and /dev/null differ
diff --git a/krita/data/profiles/sRGB.icm b/krita/data/profiles/sRGB.icm
deleted file mode 100644
index 878fdf128..000000000
Binary files a/krita/data/profiles/sRGB.icm and /dev/null differ
diff --git a/krita/data/profiles/srgb_color_space_profile.icm b/krita/data/profiles/srgb_color_space_profile.icm
deleted file mode 100644
index 7f9d18d09..000000000
Binary files a/krita/data/profiles/srgb_color_space_profile.icm and /dev/null differ
diff --git a/krita/data/profiles/srgbspac.icm b/krita/data/profiles/srgbspac.icm
deleted file mode 100644
index 83563ef93..000000000
Binary files a/krita/data/profiles/srgbspac.icm and /dev/null differ
diff --git a/krita/data/profiles/tifflab8spac.icm b/krita/data/profiles/tifflab8spac.icm
deleted file mode 100644
index 0b6543cce..000000000
Binary files a/krita/data/profiles/tifflab8spac.icm and /dev/null differ
diff --git a/krita/data/profiles/ycc601.icm b/krita/data/profiles/ycc601.icm
deleted file mode 100644
index 7ee086dbb..000000000
Binary files a/krita/data/profiles/ycc601.icm and /dev/null differ
diff --git a/krita/data/profiles/ycc709.icm b/krita/data/profiles/ycc709.icm
deleted file mode 100644
index d9f5a5a5d..000000000
Binary files a/krita/data/profiles/ycc709.icm and /dev/null differ
diff --git a/krita/data/templates/.directory b/krita/data/templates/.directory
deleted file mode 100644
index 66f4bc3ca..000000000
--- a/krita/data/templates/.directory
+++ /dev/null
@@ -1,56 +0,0 @@
-[Desktop Entry]
-Name=Empty
-Name[bg]=Празен документ
-Name[br]=Goullonderiñ
-Name[ca]=Buit
-Name[cs]=Prázdné
-Name[cy]=Gwag
-Name[da]=Tom
-Name[de]=Leer
-Name[el]=Κενό
-Name[eo]=Malplena
-Name[es]=Vacío
-Name[et]=Tühi
-Name[eu]=Hutsa
-Name[fa]=خالی
-Name[fi]=Tyhjä
-Name[fr]=Neutre
-Name[fy]=Leech
-Name[ga]=Folamh
-Name[gl]=Valeira
-Name[he]=ריק
-Name[hi]=खाली
-Name[hr]=Prazno
-Name[hu]=Üres
-Name[is]=Tómt
-Name[it]=Vuoto
-Name[ja]=空
-Name[km]=ទទេ
-Name[lt]=Tuščias
-Name[lv]=Tukšs
-Name[ms]=Kosong
-Name[nb]=Tom
-Name[nds]=Leddig
-Name[ne]=खाली
-Name[nl]=Leeg
-Name[nn]=Tomt
-Name[pl]=Pusta
-Name[pt]=Vazio
-Name[pt_BR]=Vazio
-Name[ru]=Чистый лист
-Name[se]=Guorus
-Name[sk]=Prázdna
-Name[sl]=Prazno
-Name[sr]=Празно
-Name[sr@Latn]=Prazno
-Name[sv]=Tom
-Name[ta]= வெற்று
-Name[tg]=Ҳолӣ
-Name[tr]=Boş
-Name[uk]=Порожня
-Name[uz]=Boʻsh
-Name[uz@cyrillic]=Бўш
-Name[wa]=Vude
-Name[zh_CN]=空
-Name[zh_TW]=空白
-X-KDE-DefaultTab=true
diff --git a/krita/design.h b/krita/design.h
deleted file mode 100644
index 2f7db4021..000000000
--- a/krita/design.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
-  @mainpage Krita Image manipulation and paint application
-
-  Krita is an advanced and modular paint and image manipulation
-  application.
-
-  Krita is built around two core libraries: kritacolor and kritaimage.
-
-  The kritacolor library abstracts colorspaces and color
-  transformations. Colorspaces provide functions to manipulate pixels. The
-  kritcolor library loads colorspace plugins to extend the range of
-  available colorspaces.
-
-  The kritaimage library abstracts the storage, creation, inspection
-  and manipulation of pixels stored in a rectangular area. It provides
-  layers, filters, iterators and painters. Filters and paint operations
-  are provided as service plugins loaded through the appropriate trader
-  queries.
-
-  Both libraries are used by the user interface, which is a KOffice
-  part. the user interface loads tools and other plugins.
-
- */
-#ifndef DESIGN
-#define DESIGN
-// Let's keep icefox.net/kde/tests.headerincluded_koffice.html happy
-#endif
\ No newline at end of file
diff --git a/krita/doc/DESIGN.obsolete b/krita/doc/DESIGN.obsolete
deleted file mode 100644
index 6f762d1d0..000000000
--- a/krita/doc/DESIGN.obsolete
+++ /dev/null
@@ -1,179 +0,0 @@
-A Perspective on Krita's Design
-
-  Krita's codebase has been through as many changes as the app's name
-  itself. It started with KImageShop (hence the 'kis' prefix one finds
-  everwhere, and which would have been unnessary had Krita used
-  namespaces, one fancies), then became Krayon to end up as Krita. The
-  stated design goal was to create a application geared towards the
-  more artistic user; the kind of user who settles down with his
-  tablet to create a spot of Art. It ended up as a Gimp-clone, a Kimp,
-  so to say.
-
-  This document was the basis for a discussion on the krita mailinglist:
-  http://lists.kde.org/?l=kde-kimageshop&m=106530035202770&w=2. See the
-  answer for some answers to the questions at the end.
-  
-Design Patterns
-
-  Patrick Julien restructured Krita to use a lot design patterns. Krita
-  appears to have a very solid base for blasting pixels to the screen,
-  zooming, selecting and moving. These are what I recognize as his
-  changes:
-
-            * Change brushes handling to a generic Mediator pattern
-              (kis_resource_mediator). Resources are brush tqshapes,
-              patterns (and colours, too?) Patrick intended a Flyweight
-              here.
-
-            * The composite pattern is used in paint devices, layers, channels,
-              etc. (What about tqmasks?)
-
-            * Change colourspace handling to a Strategy pattern
-              (strategy/kis_strategy_color)
-
-            * Change moving chunks of painting to a Strategy pattern
-              (strategy/kis_strategy_move)
-
-            * kis_factory points towards a Factory pattern Creates the 
-              pluginserver and resourceserver.
-
-            * Tools are created by a Factory pattern (but it isn't
-              dynamic yet): kis_tool_factory. Tools are intended to
-              become kparts.
-
-            * There's the start of a Memento pattern for tools, but it
-              doesn't seem to be used (kis_tool_memento). It was an 
-              experiment that didn't pan out.
-
-            * The Builder pattern is used to do conversion to and/or
-              from ImageMagick. I guess this is used for importing
-              images in other file-formats than .krita. An idea at one
-              was to use Koffice filters, but that didn't work because
-              images are rather different from other office documents.
-
-            * Flyweight pattern used for background tiles.
-              kis_background.
-
-            * Nameserver. Perhaps not a pattern -- at least not one
-              with an obvious GOF name. Appears to be computing a
-              number for new layers and new documents.
-
-            * kis_render. Interface implemented by kis_paint_device
-              and kis_image.
-
-            * Rename kisTool to kisToolInterface -- but the file is
-              still called kis_tool. (This is intentional, and should
-              be kept in the style guide.)
-
-            * Addition of kis_types. Defines shared pointer pointers
-              to core krita objects: image, paintdevice, channel,
-              tqmask, layer etc.
-             
-            * Tile architecture. There's Mediator and a Singleton
-              pattern here at least. This stuff seems to work, doesn't
-              need hacking at the moment.
-              
-            * Visitor pattern used to flatten an image or merge 
-              layers. Merging exposes a funny bug where the tiles
-              are re-arranged in an interesting mosaic pattern.
-
-
-User interface
-
-  Krita uses a fairly ugly side-panel to collect what are palettes
-  in other applications. I would prefer dockable, attachable
-  palettes myself. Doesn't KDE have a lib for that already?
-
-
-  ui/labels
-
-        These classes are used in the statusbar.
-
-  ui
-
-        The dialogs appear to be created by hand, not with Qt
-        Designer. Besides, many are inoperational.
-        
-  other
-
-        The canvas, rules and sidebar panels are defined here, too,
-        nicely separated.
-
-Tools
-
-  Working: select_rectangular, test, zoom, colorpicker, paste, move
-
-  Not working: airbrush, brush, colorchanger (no idea what it should
-  do), ellipse, eraser, fill, line, pen, polygon, polyline, 
-  rectangle, select_contiguous, select_elliptical, select_freehand,
-  select_polygonal, stamp
-
-  Missing tools: convolve, smear, smudge, whirl, charcoal, chalk,
-  oils, clone, select_by_colour
-
-Plugins
-
-  The single plugin example has been present in krita since about day
-  one, as far as I can see. It doesn't show anything about what one
-  can do with plugins.
-
-  To judge from the code in kis_plugin_server, it never got beyond
-  an idea. (kdDebug() << "hallo\n"...)
-
-  (This code should be removed.)
-
-ImageMagick
-
-  There still appear to be some dependencies upon ImageMagick (builder
-  subdir). What are these for, and should they stay? Is it for
-  importing/exporting foreign file formats?
-
-Undo/Redo
-
-  Undo and Redo make use of the standard KDE mechanism, which I don't
-  really understand either.
-
-
-Obsolete files
-
-  The following files appear to be unused:
-
-    core/helper/kis_timer
-    core/helper/kis_scopedlock (Replaced with QMutexlocker)
-    core/kis_krayon (was predecessor of kis_resource)
-    core/kis_tqmask
-    core/kis_util
-    ui/kis_krayon_widget
-
-Random head-scratchings
-
-
-       - Why the QUANTUM redefinition: the number of bits per channel,
-         8 for 32-bit colour, 16 for 64-bit colour.
-
-       - is_tqmask unimplemented? What was it meant to do, or is it an
-       interface?
-
-       - nameserver presents unique numbers for new layers and images.
-
-       - what does 'upscale' do?  in 8 bit/channel color mode, upscale
-         doesn't do anything.  However, downscale and upscale in > 8 bit,
-         this is needed to covert the color for the actual display 
-         rendering, i.e. X, etc, only do 8 bit color. Using this 
-         everywhere you work on color will keep krita color channel
-         bit depth independent.
-
-
-       - Is KisVector only used in obsolete tools?
-
-       - I take it that the two tests that are present in krita/test
-       are obsolete?
-
-       - what with the dummmmmy.cc?
-
-       - which bits of the krita/ui files are still relevant?
-
-       - kis_selection.h needs to be included to compile code that
-         uses kis_paint_device, and I wonder why.
-
-       - what is paint-offset?
diff --git a/krita/doc/Developing Krita Plugins.odt b/krita/doc/Developing Krita Plugins.odt
deleted file mode 100644
index 1e74bff82..000000000
Binary files a/krita/doc/Developing Krita Plugins.odt and /dev/null differ
diff --git a/krita/doc/autoextending paintdevices b/krita/doc/autoextending paintdevices
deleted file mode 100644
index a42dc6835..000000000
--- a/krita/doc/autoextending paintdevices	
+++ /dev/null
@@ -1,54 +0,0 @@
- 
-This is an attempt to explain how autosizing paintdevices work
-
-The tileddatamanager which is the underlying object that organizes the pixel
-storage is autoextending. So it starts with zero tiles, and as writing is
-being done new tiles are added as needed.
-
-There is also a default tile that is only readable (in theory). Whenever
-access is only readaccess you get this tile for areas that don't have their
-own tile yet. The idea is that the default tile is filled with transparent
-pixels. (Or, with special layers like the background pattern or the selection,
-with something else relevant. bsar)
-
-
-So imagine a new image of size 640x640. The layer has no tiles, but when the
-layer is being read (for viewing) we probe all over the image (640x640) and
-read from the default tile wherever we probe.
-
-The extent of the layer (paintdevice) is 0x0 because nothing has been
-written yet.
-
-Then some drawing is done in one corner and a tile is created automatically.
-Now the extent is 64x64 (tilesize defined at compilation) because a single
-tile exists.
-
-If some drawing is done in the opposite corner another tile is created. The
-extent is now 640x640, but only two tiles exist (one in each opposite
-corner). When probing for viewing the default tile is what you get except
-for the two tiles.
-
-If we now apply a filer that lightens the colors (or something else) we
-could iterate over the extent. That way we are sure to get all the real
-tiles that have been created.
-
-As there is no way for us to know which pixel have true tiles and which have
-the default, we would write to all the pixels within the extent, which would
-automatically create ALL the tiles inside the extent.
-(XXX: Of course, the tile manager could decide that the written value
-is the same as the default value, and if that's true for all pixels in a tile, 
-not create a tile at all) (bsar))
-
-In other cases like a gradient fill we would probably want to fill the
-current image area, so we we would just write to the paintdevice, and tiles
-would be automatically created for us.
-
-So in short: if you read - data will be available (either real tiles or a
-default) - and if you write to the paintdevice - tiles will be created as
-needed. So simply don't worry.
-
-But in some cases, when you want to modify already written pixels, as in
-some filters you want to know where true data have been written. Otherwise
-we would have to modify an infinite number of pixels to be sure everything is
-changed. This is where the extent comes in handy. If you have absolutely 
-no leeway, use exactBounds which is slow, but sure.
diff --git a/krita/doc/background_paper.txt b/krita/doc/background_paper.txt
deleted file mode 100644
index f0cfec8a1..000000000
--- a/krita/doc/background_paper.txt
+++ /dev/null
@@ -1,84 +0,0 @@
-Background, paper, layers, blobs
-
-An image in Krita is imposed upon a plane. Perhaps, using OpenGL,
-we'll be able to rotate and elevate that plane at the users' whim.
-If we can elevate the plane, there will be a direction of gravity
-that naturalistic media can play with. Note: Wet & Sticky make it
-possible to "paint" gravity. This looks like a fun feature, but
-that needs to be done per-layer, and not for the whole image.
-
-The plane is represented by the checkered background. Ideally,
-we'd be able to set the color of the checks & the size, and the
-size shouldn't change with the zoomlevel. The checks are one
-pattern, repeated for the whole image:
-
-O#
-#O
-
-Placed on the plane is optionally the substrate -- a naturalistic
-representation of canvas, linen, paper, board, wood, levkas. Or
-something weird, kopper, rock, sand... There is one substrate
-per image. The substrate can be a small texture repeated for the
-whole image, or as big as the image -- the latter is important
-if we want to make it possible to perturb the substrate (think scoring
-lines into levkas or erasing through the paper).
-
-Provisionally, the substrate has the following properties:
-
-height
-smoothness
-absorbency
-reflectiveness
-
-(Of course, layers below the current layer can influence these values
-for layers on top of them.)
-
-I have a hunch that the effect of these properties are really easy to 
-render using OpenGL, but not so easy using plain QPainter. In any case,
-media layers will need to know these values at every pixel. We need
-a really easy & fast way to acquire them.
-
-We need to avoid the Corel Painter feature where you can use a naturalistic
-paper and then paint away the paper structure, mixing the color of the paper
-with your paint as if the paper were paint. So, we need to separate paper
-and paint thoroughly.
-
-On top of the substrate and background are the layers themselves.
-Some layers are just color; others contain media. Media means color,
-but possibly in a kubelka-munk colorspace, and properties like:
-
-height
-graininess
-viscosity
-wetness
-smoothness
-absorbency
-stickiness (i.e, charcoal isn't sticky at all, acryl paints very
-sticky)
-
-Note: Impasto models thick, 3-d paint, where tufts of thick oipaint can
-cast shadows...
-
-Ordinary color layers (Shoup layers in the terminology of Cockshott) can
-make use of the substrate parameters using special paint ops, and ordinary
-color can be painted on a media layer, but the ordinary color paintops
-do not deposit the above properties. Media paint just leaves color on the 
-color layers. We need to avoid at all costs the Corel Painter effect where
-trying to use a pencil on a watercolor layer causes a nasty flow-impeding
-useless error box to popup.
-
-Media and ordinary layers can be grouped and mixed at will, together with adjustment
-layers. Adjustment layers can also be attached to selection tqmasks, per layer.
-
-The composited layers is either scaled and color corrected, or color corrected and
-then scaled, depending on whether the zoom > 100% or < 100%.
-
-Note: do we need a visualisation layer on top of the layers for things
-like wetness, reflectiveness, height? Perhaps this is the right place for that.
-We need perhaps to add a light source or two, in OpenGL mode... I think
-we do.
-
-On top of the layers are what Xara calls blobs: the temporary droppings of
-tools, like rubber bands, vector paths, brush tqshape cursors.
-
-
diff --git a/krita/doc/brush.txt b/krita/doc/brush.txt
deleted file mode 100644
index acab60898..000000000
--- a/krita/doc/brush.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-Painting with brushes
-
-:.,I don't know anything, nada, zilch, noppes about writing paint applications. So
-when I started working on Krita, I felt I needed examples. I used the following
-sources:
-
-* The old Krita brush code (http://webcvs.kde.org/cgi-bin/cvsweb.cgi/koffice/krita/tools/kis_tool_brush.cc?rev=1.58&content-type=text/x-cvsweb-markup)
-* Peter Jodda's Perico (http://software.jodda.de/perico.html)
-* The source of the Gimp (both current and 0.99.11 -- the oldest version I could tqfind) (http://www.gimp.org)
-* David Hodson's article on Gimp brushes (http://members.ozemail.com.au/~hodsond/gimpbrush.html)
-* Raph Levien's article on Gimp brushes (http://www.levien.com/gimp/brush-arch.html)
-
-Krita uses the gimp's brush file formats: .gbr and .gih, for singe
-and pipeline brushes, respectively. These brushes contain one or more
-grayscale or rgba images. If the image is grayscale, the gray image is
-intended to be used as an alpha tqmask: each gray level corresponds to
-a certain alpha level, and when painting the current painting colour
-is composited in the image with this level as its alpha component. The
-image brushes should be tqmasked -- i.e., these are coloured images placed
-on a white background. The white background should be made transparent,
-and then the brush image can be composited onto our image.
-
-This is currently only half supported: I make tqmasks of everything,
-partly because I like that better, partly because until very recently
-there was no way of making out the difference between gray and rgb
-brushes because KisBrush didn't remember that bit of data.
-
-Making the initial tqmask of a brush is however by now pretty well done; the next
-problem is painting with those tqmasks.
-
-Here we have two situations, one easy, one difficult. The easy one is the single
-mouse click. If the user clicks or taps with his stylus, we can composite the 
-tqmask or the image at the pixel position of the mouse click.
-
-The difficult situation is drawing a line. This line needs to be antialiased.
-
diff --git a/krita/doc/channels_masks_selections b/krita/doc/channels_masks_selections
deleted file mode 100644
index 4ce65414f..000000000
--- a/krita/doc/channels_masks_selections
+++ /dev/null
@@ -1,12 +0,0 @@
-We did a rethink on channels, selections and tqmasks last summer.
-
-Traditionally, a tqmask is seen as an extra channel for an image, analogous
-to the alpha channel. We want to do away with that idea.
-
-A layer can have a number of permanent selections associated with it.
-Such a selection can handle a composite method (determining the composition method
-for the selected pixels) or a filter (making it an adjustment layer). 
-
-Of course, a selection is just an 8-bit per pixel single channel layer that
-belongs to a layer, so all filters can work automatically on a selection,
-except that we don't have the ui for that yet.
diff --git a/krita/doc/colordiff b/krita/doc/colordiff
deleted file mode 100644
index b84a98fa8..000000000
--- a/krita/doc/colordiff
+++ /dev/null
@@ -1,68 +0,0 @@
-From: Mathew Brennesholtz <msb@philabs.research.philips.com>
-Subject: Re: contrast of color
-Date: 01 Oct 1999 00:00:00 GMT
-Message-ID: <37F4DD62.3AABA5D2@philabs.research.philips.com>
-Content-Transfer-Encoding: 7bit
-References: <37F3395E.484C921A@netvision.net.il>
-Content-Type: text/plain; charset=us-ascii
-X-Complaints-To: usenet@philabs.research.philips.com
-X-Trace: news.philabs.research.philips.com 938783269 3770 130.140.53.137 (1 Oct 1999 13:07:49 GMT)
-Organization: Philips Research, Briarcliff Manor, NY
-Mime-Version: 1.0
-NNTP-Posting-Date: 1 Oct 1999 13:07:49 GMT
-Newsgroups: sci.engr.color
-
-One intention of the L*a*b* formulation is that when you calculate:
-
-    delta-E = sqrt((delta-L*)^2 + (delta-a*)^2 + (delta-b*)^2),
-
-a delta-E = 1 should be just barely percievable to some viewers.  If you
-want most people to be able to distinguish between two colors most of the
-time, a delta-E = 3 is needed. Delta-E = 3 is called a MPCD (minimum
-perceptible color difference) or a JND (just noticable difference) by
-some authors.  Keep in mind that the L*a*b* space is not a perfectly
-uniform space, so the delta-E value that is percievable depends on
-location in x-y space and the direction between the two colors.
-
-Using a delta-E = 1 threshold, M. R. Pointer (The Number of Discernible
-Colours, Color Research and Application, 23:1 February 1998) calculated
-that there are 2.28 million discernable color/luminance combinations.
-Other studies (see references in Pointer) show that printing inks give
-1.6 million colors and EBU phosphors give 1.35 million colors.  These are
-far less than the 16 million colors claimed by 8 bit/color video cards,
-never mind 10 or 12 bit video systems.  Obviously, some of these
-color/luminance combinations are indistiguishable from each other.
-
-Hope that helps.
-
-IPLAB wrote:
-
-> Hallow !!
-> I understand that to measure contrast between two objects in color
-> picture, I can calculate the vector distance on  L a b space (between
-> the two objects).
-> Does anyone can tell me what is the minimum of the Vector distance
-> ,that eye can see ??
->
-> Thanks
->
-> from sally
-
-http://www.compuphase.com/cmetric.htm:
-
-
-typedef struct {
-   unsigned char r, g, b;
-} RGB;
-
-long ColourDistance(RGB e1, RGB e2)
-{
-  long r,g,b;
-  long rmean;
-
-  rmean = ( (int)e1.r + (int)e2.r ) / 2;
-  r = (int)e1.r - (int)e2.r;
-  g = (int)e1.g - (int)e2.g;
-  b = (int)e1.b - (int)e2.b;
-  return (((512+rmean)*r*r)>>8) + 4*g*g + (((767-rmean)*b*b)>>8);
-}
diff --git a/krita/doc/colorspaces.xmi b/krita/doc/colorspaces.xmi
deleted file mode 100644
index 5583e61d0..000000000
--- a/krita/doc/colorspaces.xmi
+++ /dev/null
@@ -1,41965 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<XMI xmlns:UML="http://schema.omg.org/spec/UML/1.3" verified="false" timestamp="2005-08-15T16:41:24" xmi.version="1.2" >
- <XMI.header>
-  <XMI.documentation>
-   <XMI.exporter>umbrello uml modeller http://uml.sf.net</XMI.exporter>
-   <XMI.exporterVersion>1.4.2</XMI.exporterVersion>
-   <XMI.exporterEncoding>UnicodeUTF8</XMI.exporterEncoding>
-  </XMI.documentation>
-  <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
- </XMI.header>
- <XMI.content>
-  <UML:Model isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" >
-   <UML:Namespace.ownedElement>
-    <UML:Stereotype isSpecification="false" isLeaf="false" visibility="public" xmi.id="3" isRoot="false" isAbstract="false" name="datatype" />
-    <UML:Stereotype isSpecification="false" isLeaf="false" visibility="public" xmi.id="16" isRoot="false" isAbstract="false" name="typedef" />
-    <UML:Stereotype isSpecification="false" isLeaf="false" visibility="public" xmi.id="1766" isRoot="false" isAbstract="false" name="enum" />
-    <UML:Stereotype isSpecification="false" isLeaf="false" visibility="public" xmi.id="12051" isRoot="false" isAbstract="false" name="interface" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="2" isRoot="false" isAbstract="false" name="int" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="4" isRoot="false" isAbstract="false" name="char" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="5" isRoot="false" isAbstract="false" name="boolean" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="6" isRoot="false" isAbstract="false" name="float" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="7" isRoot="false" isAbstract="false" name="double" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="8" isRoot="false" isAbstract="false" name="byte" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="9" isRoot="false" isAbstract="false" name="short" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="10" isRoot="false" isAbstract="false" name="string" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="32" isRoot="false" isAbstract="false" name="void" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="34" isRoot="false" isAbstract="false" name="const KisID&amp;" elementReference="33" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="54" isRoot="false" isAbstract="false" name="const Q_UINT8*" elementReference="53" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="76" isRoot="false" isAbstract="false" name="const QColor&amp;" elementReference="75" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="78" isRoot="false" isAbstract="false" name="Q_UINT8*" elementReference="53" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="90" isRoot="false" isAbstract="false" name="QColor*" elementReference="75" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="96" isRoot="false" isAbstract="false" name="QUANTUM*" elementReference="84" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="109" isRoot="false" isAbstract="false" name="KisPixel&amp;" elementReference="13" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="126" isRoot="false" isAbstract="false" name="KisAbstractColorSpace*" elementReference="26" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="151" isRoot="false" isAbstract="false" name="Q_UINT16*" elementReference="150" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="154" isRoot="false" isAbstract="false" name="KisColorAdjustment*" elementReference="153" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="165" isRoot="false" isAbstract="false" name="const Q_UINT8**" elementReference="53" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="171" isRoot="false" isAbstract="false" name="Q_UINT8**" elementReference="53" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="173" isRoot="false" isAbstract="false" name="Q_INT32*" elementReference="44" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="202" isRoot="false" isAbstract="false" name="const KisCompositeOp&amp;" elementReference="201" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="240" isRoot="false" isAbstract="false" name="const KisAbstractColorSpace&amp;" elementReference="26" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="244" isRoot="false" isAbstract="false" name="KisAbstractColorSpace&amp;" elementReference="26" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="362" isRoot="false" isAbstract="false" name="const Q_UINT16" elementReference="150" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="569" isRoot="false" isAbstract="false" name="const Q_UINT8" elementReference="53" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="871" isRoot="false" isAbstract="false" name="QObject*" elementReference="870" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="873" isRoot="false" isAbstract="false" name="const char*" elementReference="4" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="875" isRoot="false" isAbstract="false" name="const QStringList&amp;" elementReference="226" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="893" isRoot="false" isAbstract="false" name="float*" elementReference="6" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1749" isRoot="false" isAbstract="false" name="WetPix*" elementReference="1639" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1753" isRoot="false" isAbstract="false" name="WetPack*" elementReference="1641" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1756" isRoot="false" isAbstract="false" name="Q_UINT32*" elementReference="20" />
-    <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1773" isRoot="false" isAbstract="false" name="CELL_PTR" elementReference="1772" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="11" isRoot="false" isAbstract="false" name="QPainter" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="12" isRoot="false" isAbstract="false" name="KisIteratorPixel" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="13" isRoot="false" isAbstract="false" name="KisPixel" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="14" isRoot="false" isAbstract="false" name="KisPixelRO" />
-    <UML:Class stereotype="16" isSpecification="false" isLeaf="false" visibility="public" xmi.id="15" isRoot="false" isAbstract="false" name="KisProfilePair" />
-    <UML:Class comment="// This would be better, I guess." isSpecification="false" isLeaf="false" visibility="public" xmi.id="17" isRoot="false" isAbstract="false" name="transform" >
-     <UML:Classifier.feature>
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="19" isRoot="false" initialValue="" type="18" isAbstract="false" name="srcProfile" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="21" isRoot="false" initialValue="" type="20" isAbstract="false" name="srcCmType" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="22" isRoot="false" initialValue="" type="18" isAbstract="false" name="dstProfile" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="23" isRoot="false" initialValue="" type="20" isAbstract="false" name="dstType" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="24" isRoot="false" initialValue="" type="20" isAbstract="false" name="renderIntent" />
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="18" isRoot="false" isAbstract="false" name="KisProfile" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="20" isRoot="false" isAbstract="false" name="Q_UINT32" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="25" isRoot="false" isAbstract="false" name="struct KisColorAdjustment" />
-    <UML:Class comment="A colorspace strategy is the definition of a certain color model
-in Krita." isSpecification="false" isLeaf="false" visibility="public" xmi.id="26" isRoot="false" isAbstract="false" name="KisAbstractColorSpace" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="28" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="protected" xmi.id="227" isRoot="false" initialValue="" type="226" isAbstract="false" name="m_profileFilenames" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="protected" xmi.id="228" isRoot="false" initialValue="" type="80" isAbstract="false" name="m_defaultProfile" />
-      <UML:Attribute comment="// A small buffer for conversion from and to qcolor." isSpecification="false" isLeaf="false" visibility="protected" xmi.id="229" isRoot="false" initialValue="" type="78" isAbstract="false" name="m_qcolordata" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="protected" xmi.id="230" isRoot="false" initialValue="" type="44" isAbstract="false" name="m_alphaPos" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="protected" xmi.id="231" isRoot="false" initialValue="" type="44" isAbstract="false" name="m_alphaSize" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="protected" xmi.id="232" isRoot="false" initialValue="" type="222" isAbstract="false" name="m_defaultToRGB" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="protected" xmi.id="233" isRoot="false" initialValue="" type="222" isAbstract="false" name="m_defaultFromRGB" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="234" isRoot="false" initialValue="" type="33" isAbstract="false" name="m_id" />
-      <UML:Attribute comment="// The colorspace type as defined by littlecms" isSpecification="false" isLeaf="false" visibility="private" xmi.id="235" isRoot="false" initialValue="" type="36" isAbstract="false" name="m_cmType" />
-      <UML:Attribute comment="// The colorspace signature as defined in icm/icc files" isSpecification="false" isLeaf="false" visibility="private" xmi.id="236" isRoot="false" initialValue="" type="38" isAbstract="false" name="m_colorSpaceSignature" />
-      <UML:Attribute comment="// Cache for existing transforms" isSpecification="false" isLeaf="false" visibility="private" xmi.id="238" isRoot="false" initialValue="" type="237" isAbstract="false" name="m_transforms" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="245" isRoot="false" initialValue="" type="20" isAbstract="false" name="m_cachesize" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="246" isRoot="false" initialValue="" type="78" isAbstract="false" name="m_conversionCache" />
-      <UML:Operation comment="Create a new colorspace strategy.
-
-@param id The Krita identification of this color model.
-@param cmType The littlecms colorstrategy type we wrap.
-@param colorSpaceSignature The icc signature for the colorspace we are." isSpecification="false" isLeaf="false" visibility="public" xmi.id="31" isRoot="false" isAbstract="false" name="KisAbstractColorSpace" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="35" isRoot="false" value="" type="34" isAbstract="false" name="id" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="37" isRoot="false" value="" type="36" isAbstract="false" name="cmType" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="39" isRoot="false" value="" type="38" isAbstract="false" name="colorSpaceSignature" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="40" isRoot="false" isAbstract="false" name="~ KisAbstractColorSpace" />
-      <UML:Operation comment="//========== Channels =====================================================//// Return a vector describing all the channels this color model has." isSpecification="false" isLeaf="false" visibility="public" xmi.id="41" isRoot="false" isAbstract="true" name="channels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12481" type="42" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="The total number of channels for a single pixel in this color model" isSpecification="false" isLeaf="false" visibility="public" xmi.id="43" isRoot="false" isAbstract="true" name="nChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12482" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="The total number of color channels (excludes alpha and substance) for a single
-pixel in this color model." isSpecification="false" isLeaf="false" visibility="public" xmi.id="45" isRoot="false" isAbstract="true" name="nColorChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12483" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="46" isRoot="false" isAbstract="false" name="nSubstanceChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12484" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="The size in bytes of a single pixel in this color model" isSpecification="false" isLeaf="false" visibility="public" xmi.id="47" isRoot="false" isAbstract="true" name="pixelSize" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12485" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Whether this color model has a channel of type ALPHA" isSpecification="false" isLeaf="false" visibility="public" xmi.id="48" isRoot="false" isAbstract="true" name="hasAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12486" type="49" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="50" isRoot="false" isAbstract="false" name="alphaPos" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12487" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="51" isRoot="false" isAbstract="false" name="alphaSize" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12488" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Return a string with the channel's value suitable for display in the gui." isSpecification="false" isLeaf="false" visibility="public" xmi.id="52" isRoot="false" isAbstract="true" name="channelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12489" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="55" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="56" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Return a string with the channel's value with integer
-channels normalised to the floating point range 0 to 1, if appropriate." isSpecification="false" isLeaf="false" visibility="public" xmi.id="58" isRoot="false" isAbstract="true" name="normalisedChannelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12490" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="59" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="60" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="61" isRoot="false" isAbstract="false" name="id" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12491" type="33" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="62" isRoot="false" isAbstract="false" name="setColorSpaceType" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="63" isRoot="false" value="" type="20" isAbstract="false" name="type" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="64" isRoot="false" isAbstract="false" name="colorSpaceType" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12492" type="20" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="65" isRoot="false" isAbstract="false" name="setColorSpaceSignature" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="66" isRoot="false" value="" type="38" isAbstract="false" name="signature" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="67" isRoot="false" isAbstract="false" name="colorSpaceSignature" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12493" type="38" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="//========== Capabilities =================================================///**
-Returns the list of user-visible composite ops supported by this colourspace. Internal
-ops such as COPY, CLEAR, and ERASE, are not included as these make no sense
-for layers in the full image model." isSpecification="false" isLeaf="false" visibility="public" xmi.id="68" isRoot="false" isAbstract="true" name="userVisiblecompositeOps" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12494" type="69" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="70" isRoot="false" isAbstract="false" name="valid" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12495" type="49" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="//========== Display profiles =============================================///**
-Get a list of profiles that apply to this color space" isSpecification="false" isLeaf="false" visibility="public" xmi.id="71" isRoot="false" isAbstract="false" name="profiles" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12496" type="72" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Return the number of profiles available for this color space" isSpecification="false" isLeaf="false" visibility="public" xmi.id="73" isRoot="false" isAbstract="false" name="profileCount" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12497" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="//================= Conversion functions ==================================///**
-The nativeColor methods take a given color defined as an RGB QColor
-and fills a byte array with the corresponding color in the
-the colorspace managed by this strategy.
-
-The profile parameter is the profile of the paint device; the other profile
-is the display profile -- since we are moving from QColor
-that have most likely been picked from the display itself.
-
-XXX: We actually do not use the display yet, nor the paint device profile" isSpecification="false" isLeaf="false" visibility="public" xmi.id="74" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="77" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="79" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="81" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="82" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="83" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="85" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="86" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="87" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="The toQColor methods take a byte array that is at least pixelSize() long
-and converts the contents to a QColor, using the given profile as a source
-profile and the display profile as a destination profile.
-
-XXX: We actually do not use the display yet, nor the paint device profile
-" isSpecification="false" isLeaf="false" visibility="public" xmi.id="88" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="89" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="91" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="92" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="93" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="94" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="95" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="97" isRoot="false" value="" type="96" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="98" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Get the alpha value of the given pixel.
-XXX: Change to float/int to match setAlpha() when that changes." isSpecification="false" isLeaf="false" visibility="public" xmi.id="99" isRoot="false" isAbstract="true" name="getAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="100" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="101" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="102" isRoot="false" isAbstract="true" name="toKisPixelRO" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12498" type="14" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="103" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="104" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="105" isRoot="false" isAbstract="true" name="toKisPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12499" type="13" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="106" isRoot="false" value="" type="78" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="107" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="This function is used to convert a KisPixelRepresentation from this color strategy to the specified
-color strategy." isSpecification="false" isLeaf="false" visibility="public" xmi.id="108" isRoot="false" isAbstract="false" name="convertTo" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12500" type="49" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="110" isRoot="false" value="" type="109" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="111" isRoot="false" value="" type="109" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="112" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Convert the pixels in data to (8-bit BGRA) QImage using the specified profiles.
-The pixels are supposed to be encoded in this color model.
-
-@param data A pointer to a contiguous memory region containing width * height pixels
-@param width in pixels
-@param height in pixels
-@param srcProfile source profile
-@param dstProfile destination profile
-@param renderingIntent the rendering intent
-@param exposure The exposure setting for rendering a preview of a high dynamic range image." isSpecification="false" isLeaf="false" visibility="public" xmi.id="113" isRoot="false" isAbstract="true" name="convertToQImage" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12501" type="121" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="114" isRoot="false" value="" type="54" isAbstract="false" name="data" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="115" isRoot="false" value="" type="44" isAbstract="false" name="width" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="116" isRoot="false" value="" type="44" isAbstract="false" name="height" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="117" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="118" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="119" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="120" isRoot="false" value="" type="6" isAbstract="false" name="exposure" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Convert a byte array of srcLen pixels *src to the specified color space
-and put the converted bytes into the prepared byte array *dst.
-
-Returns false if the conversion failed, true if it succeeded" isSpecification="false" isLeaf="false" visibility="public" xmi.id="122" isRoot="false" isAbstract="false" name="convertPixelsTo" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12502" type="49" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="123" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="124" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="125" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="127" isRoot="false" value="" type="126" isAbstract="false" name="dstColorStrategy" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="128" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="129" isRoot="false" value="" type="20" isAbstract="false" name="numPixels" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="130" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Convert the value of the channel at the specified position into
-an 8-bit value." isSpecification="false" isLeaf="false" visibility="public" xmi.id="131" isRoot="false" isAbstract="false" name="scaleToU8" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12503" type="53" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="132" isRoot="false" value="" type="54" isAbstract="false" name="srcPixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="133" isRoot="false" value="" type="44" isAbstract="false" name="channelPos" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Convert the value of the channel at the specified position into
-a 16-bit value. This may be upscaling or downscaling, depending
-on the defined value of the channel" isSpecification="false" isLeaf="false" visibility="public" xmi.id="134" isRoot="false" isAbstract="false" name="scaleToU16" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12504" type="53" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="135" isRoot="false" value="" type="54" isAbstract="false" name="srcPixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="136" isRoot="false" value="" type="44" isAbstract="false" name="channelPos" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="//============================== Manipulation fucntions ==========================//// // The manipulation functions have default implementations that _convert_ the pixel// to a QColor and back. Reimplement these methods in your color strategy!///**
-Set the alpha channel to the given value.
-
-pixels -- a pointer to the pixels that will have their alpha set to this value
-alpha --  XXX: This must become int or float
-nPixels -- the number of pixels
-
-XXX: Also add a function that modifies the current alpha with the given alpha, i.e., premultiply them?" isSpecification="false" isLeaf="false" visibility="public" xmi.id="137" isRoot="false" isAbstract="false" name="setAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="138" isRoot="false" value="" type="78" isAbstract="false" name="pixels" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="139" isRoot="false" value="" type="53" isAbstract="false" name="alpha" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="140" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Applies the specified 8-bit alpha tqmask to the pixels. We assume that there are just
-as many alpha values as pixels but we do not check this." isSpecification="false" isLeaf="false" visibility="public" xmi.id="141" isRoot="false" isAbstract="false" name="applyAphaU8Mask" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="142" isRoot="false" value="" type="78" isAbstract="false" name="pixels" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="143" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="144" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Applies the inverted 8-bit alpha tqmask to the pixels. We assume that there are just
-as many alpha values as pixels but we do not check this." isSpecification="false" isLeaf="false" visibility="public" xmi.id="145" isRoot="false" isAbstract="false" name="applyInverseAlphaU8Mask" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="146" isRoot="false" value="" type="78" isAbstract="false" name="pixels" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="147" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="148" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Create an adjustment object for adjusting the brightness and contrast
-transferValues is a 256 bins array with values from 0 to 0xFFFF" isSpecification="false" isLeaf="false" visibility="public" xmi.id="149" isRoot="false" isAbstract="false" name="createBrightnessContrastAdjustment" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12505" type="154" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="152" isRoot="false" value="" type="151" isAbstract="false" name="transferValues" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Apply the adjustment created with onr of the other functions" isSpecification="false" isLeaf="false" visibility="public" xmi.id="155" isRoot="false" isAbstract="false" name="applyAdjustment" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="156" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="157" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="158" isRoot="false" value="" type="154" isAbstract="false" name="" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="159" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="// XXX: What with alpha channels? YYY: Add an overloaded function that takes alpha into account?/**
-Get the difference between 2 colors, normalized in the range (0,255)" isSpecification="false" isLeaf="false" visibility="public" xmi.id="160" isRoot="false" isAbstract="false" name="difference" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12506" type="163" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="161" isRoot="false" value="" type="54" isAbstract="false" name="src1" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="162" isRoot="false" value="" type="54" isAbstract="false" name="src2" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Mix the colors given their weights and return in dst
-The sum of weights is assumed 255" isSpecification="false" isLeaf="false" visibility="public" xmi.id="164" isRoot="false" isAbstract="false" name="mixColors" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="166" isRoot="false" value="" type="165" isAbstract="false" name="colors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="167" isRoot="false" value="" type="54" isAbstract="false" name="weights" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="168" isRoot="false" value="" type="20" isAbstract="false" name="nColors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="169" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Convolve the given array of pointers to pixels and return the result
-in dst. The kernel values are clamped between -128 and 128" isSpecification="false" isLeaf="false" visibility="public" xmi.id="170" isRoot="false" isAbstract="false" name="convolveColors" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="172" isRoot="false" value="" type="171" isAbstract="false" name="colors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="174" isRoot="false" value="" type="173" isAbstract="false" name="kernelValues" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="176" isRoot="false" value="" type="175" isAbstract="false" name="channelFlags" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="177" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="178" isRoot="false" value="" type="44" isAbstract="false" name="factor" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="179" isRoot="false" value="" type="44" isAbstract="false" name="offset" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="180" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Darken all color channels with the given amount. If compensate is true,
-the compensation factor will be used to limit the darkening.
-
-(See the bumpmap filter)" isSpecification="false" isLeaf="false" visibility="public" xmi.id="181" isRoot="false" isAbstract="false" name="darken" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="182" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="183" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="184" isRoot="false" value="" type="44" isAbstract="false" name="shade" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="185" isRoot="false" value="" type="49" isAbstract="false" name="compensate" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="186" isRoot="false" value="" type="7" isAbstract="false" name="compensation" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="187" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Calculate the intensity of the given pixel, scaled down to the range 0-255. XXX: Maybe this should be more flexible" isSpecification="false" isLeaf="false" visibility="public" xmi.id="188" isRoot="false" isAbstract="false" name="intensity8" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12507" type="53" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="189" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Compose two arrays of pixels together. If source and target
-are not the same colour model, the source pixels will be
-converted to the target model." isSpecification="false" isLeaf="false" visibility="public" xmi.id="190" isRoot="false" isAbstract="false" name="bitBlt" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="191" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="192" isRoot="false" value="" type="44" isAbstract="false" name="dststride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="193" isRoot="false" value="" type="126" isAbstract="false" name="srcSpace" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="194" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="195" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="196" isRoot="false" value="" type="54" isAbstract="false" name="srcAlphaMask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="197" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="198" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="199" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="200" isRoot="false" value="" type="44" isAbstract="false" name="cols" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="203" isRoot="false" value="" type="202" isAbstract="false" name="op" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="204" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="205" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Compose two byte arrays containing pixels in the same color
-model together." isSpecification="false" isLeaf="false" visibility="protected" xmi.id="206" isRoot="false" isAbstract="true" name="bitBlt" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="207" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="208" isRoot="false" value="" type="44" isAbstract="false" name="dstRowSize" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="209" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="210" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="211" isRoot="false" value="" type="54" isAbstract="false" name="srcAlphaMask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="212" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="213" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="214" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="215" isRoot="false" value="" type="44" isAbstract="false" name="cols" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="216" isRoot="false" value="" type="202" isAbstract="false" name="op" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="217" isRoot="false" isAbstract="false" name="createTransform" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12508" type="222" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="218" isRoot="false" value="" type="126" isAbstract="false" name="dstColorStrategy" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="219" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="220" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="221" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="223" isRoot="false" isAbstract="false" name="getDefaultProfile" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12509" type="80" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="224" isRoot="false" isAbstract="false" name="setDefaultProfile" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="225" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="239" isRoot="false" isAbstract="false" name="KisAbstractColorSpace" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="241" isRoot="false" value="" type="240" isAbstract="false" name="" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="242" isRoot="false" isAbstract="false" name="operator =" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12510" type="244" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="243" isRoot="false" value="" type="240" isAbstract="false" name="" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-     </UML:Classifier.feature>
-     <UML:Namespace.ownedElement>
-      <UML:Class stereotype="16" isSpecification="false" isLeaf="false" visibility="public" xmi.id="237" isRoot="false" isAbstract="false" name="TransformMap" />
-     </UML:Namespace.ownedElement>
-    </UML:Class>
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="27" isRoot="false" isAbstract="false" name="KShared" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="33" isRoot="false" isAbstract="false" name="KisID" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="36" isRoot="false" isAbstract="false" name="DWORD" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="38" isRoot="false" isAbstract="false" name="icColorSpaceSignature" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="42" isRoot="false" isAbstract="false" name="vKisChannelInfoSP" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="44" isRoot="false" isAbstract="false" name="Q_INT32" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="49" isRoot="false" isAbstract="false" name="bool" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="53" isRoot="false" isAbstract="false" name="Q_UINT8" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="57" isRoot="false" isAbstract="false" name=TQSTRING_OBJECT_NAME_STRING />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="69" isRoot="false" isAbstract="false" name="KisCompositeOpList" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="72" isRoot="false" isAbstract="false" name="vKisProfileSP" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="75" isRoot="false" isAbstract="false" name="QColor" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="80" isRoot="false" isAbstract="false" name="KisProfileSP" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="84" isRoot="false" isAbstract="false" name="QUANTUM" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="121" isRoot="false" isAbstract="false" name="QImage" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="150" isRoot="false" isAbstract="false" name="Q_UINT16" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="153" isRoot="false" isAbstract="false" name="KisColorAdjustment" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="163" isRoot="false" isAbstract="false" name="Q_INT8" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="175" isRoot="false" isAbstract="false" name="enumChannelFlags" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="201" isRoot="false" isAbstract="false" name="KisCompositeOp" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="222" isRoot="false" isAbstract="false" name="cmsHTRANSFORM" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="226" isRoot="false" isAbstract="false" name=TQSTRINGLIST_OBJECT_NAME_STRING />
-    <UML:Class comment=" Copyright (c) 2005 Boudewijn Rempt &lt;boud@valdyas.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//**
-This class is the base for all 8-bit/channel colorspaces" isSpecification="false" isLeaf="false" visibility="public" xmi.id="247" isRoot="false" isAbstract="false" name="KisU8BaseColorSpace" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="248" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="251" isRoot="false" isAbstract="false" name="KisU8BaseColorSpace" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="252" isRoot="false" value="" type="34" isAbstract="false" name="id" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="253" isRoot="false" value="" type="36" isAbstract="false" name="cmType" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="254" isRoot="false" value="" type="38" isAbstract="false" name="colorSpaceSignature" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class comment=" Copyright (c) 2004 Boudewijn Rempt &lt;boud@valdyas.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//**
-The alpha tqmask is a special color strategy that treats all pixels as
-alpha value with a colour common to the tqmask. The default color is white." isSpecification="false" isLeaf="false" visibility="public" xmi.id="255" isRoot="false" isAbstract="false" name="KisAlphaColorSpace" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="256" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="349" isRoot="false" initialValue="" type="42" isAbstract="false" name="m_channels" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="259" isRoot="false" isAbstract="false" name="KisAlphaColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="260" isRoot="false" isAbstract="false" name="~ KisAlphaColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="261" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="262" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="263" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="264" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="265" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="266" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="267" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="268" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="269" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="270" isRoot="false" isAbstract="false" name="getAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="271" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="272" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="273" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="274" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="275" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="276" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="277" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="278" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="279" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="280" isRoot="false" value="" type="96" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="281" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="282" isRoot="false" isAbstract="false" name="toKisPixelRO" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12511" type="14" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="283" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="284" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="285" isRoot="false" isAbstract="false" name="toKisPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12512" type="13" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="286" isRoot="false" value="" type="78" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="287" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="288" isRoot="false" isAbstract="false" name="difference" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12513" type="163" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="289" isRoot="false" value="" type="54" isAbstract="false" name="src1" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="290" isRoot="false" value="" type="54" isAbstract="false" name="src2" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="291" isRoot="false" isAbstract="false" name="mixColors" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="292" isRoot="false" value="" type="165" isAbstract="false" name="colors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="293" isRoot="false" value="" type="54" isAbstract="false" name="weights" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="294" isRoot="false" value="" type="20" isAbstract="false" name="nColors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="295" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="296" isRoot="false" isAbstract="false" name="channels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12514" type="42" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="297" isRoot="false" isAbstract="false" name="hasAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12515" type="49" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="298" isRoot="false" isAbstract="false" name="nChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12516" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="299" isRoot="false" isAbstract="false" name="nColorChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12517" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="300" isRoot="false" isAbstract="false" name="pixelSize" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12518" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="301" isRoot="false" isAbstract="false" name="channelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12519" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="302" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="303" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="304" isRoot="false" isAbstract="false" name="normalisedChannelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12520" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="305" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="306" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="307" isRoot="false" isAbstract="false" name="convertToQImage" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12521" type="121" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="308" isRoot="false" value="" type="54" isAbstract="false" name="data" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="309" isRoot="false" value="" type="44" isAbstract="false" name="width" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="310" isRoot="false" value="" type="44" isAbstract="false" name="height" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="311" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="312" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="313" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="314" isRoot="false" value="" type="6" isAbstract="false" name="exposure" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="315" isRoot="false" isAbstract="false" name="adjustBrightnessContrast" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="316" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="317" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="318" isRoot="false" value="" type="163" isAbstract="false" name="brightness" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="319" isRoot="false" value="" type="163" isAbstract="false" name="contrast" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="320" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="321" isRoot="false" isAbstract="false" name="convolveColors" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="322" isRoot="false" value="" type="171" isAbstract="false" name="colors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="323" isRoot="false" value="" type="173" isAbstract="false" name="kernelValues" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="324" isRoot="false" value="" type="175" isAbstract="false" name="channelFlags" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="325" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="326" isRoot="false" value="" type="44" isAbstract="false" name="factor" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="327" isRoot="false" value="" type="44" isAbstract="false" name="offset" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="328" isRoot="false" value="" type="44" isAbstract="false" name="nColors" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Convert a byte array of srcLen pixels *src to the specified color space
-and put the converted bytes into the prepared byte array *dst.
-
-Returns false if the conversion failed, true if it succeeded" isSpecification="false" isLeaf="false" visibility="protected" xmi.id="329" isRoot="false" isAbstract="false" name="convertPixelsTo" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12522" type="49" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="330" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="331" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="332" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="333" isRoot="false" value="" type="126" isAbstract="false" name="dstColorStrategy" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="334" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="335" isRoot="false" value="" type="20" isAbstract="false" name="numPixels" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="336" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="337" isRoot="false" isAbstract="false" name="bitBlt" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="338" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="339" isRoot="false" value="" type="44" isAbstract="false" name="dststride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="340" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="341" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="342" isRoot="false" value="" type="54" isAbstract="false" name="srcAlphaMask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="343" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="344" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="345" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="346" isRoot="false" value="" type="44" isAbstract="false" name="cols" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="347" isRoot="false" value="" type="202" isAbstract="false" name="op" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="348" isRoot="false" isAbstract="false" name="userVisiblecompositeOps" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12523" type="69" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class comment=" Copyright (c) 2004 Boudewijn Rempt &lt;boud@valdyas.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//**
-This class is the base for all 32-bit float colorspaces." isSpecification="false" isLeaf="false" visibility="public" xmi.id="350" isRoot="false" isAbstract="false" name="KisF32BaseColorSpace" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="351" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="354" isRoot="false" isAbstract="false" name="KisF32BaseColorSpace" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="355" isRoot="false" value="" type="34" isAbstract="false" name="id" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="356" isRoot="false" value="" type="36" isAbstract="false" name="cmType" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="357" isRoot="false" value="" type="38" isAbstract="false" name="colorSpaceSignature" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class comment=" Copyright (c) 2005 Boudewijn Rempt &lt;boud@valdyas.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//**
-This is the base class for 16-bit/channel colorspaces. It defines
-a number of common methods, like handling 16-bit alpha and up-
-and down-scaling of channels." isSpecification="false" isLeaf="false" visibility="public" xmi.id="358" isRoot="false" isAbstract="false" name="KisU16BaseColorSpace" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="359" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="363" isRoot="false" initialValue="" type="362" isAbstract="false" name="U16_OPACITY_OPAQUE" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="364" isRoot="false" initialValue="" type="362" isAbstract="false" name="U16_OPACITY_TRANSPARENT" ownerScope="classifier" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="365" isRoot="false" isAbstract="false" name="KisU16BaseColorSpace" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="366" isRoot="false" value="" type="34" isAbstract="false" name="id" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="367" isRoot="false" value="" type="36" isAbstract="false" name="cmType" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="368" isRoot="false" value="" type="38" isAbstract="false" name="colorSpaceSignature" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class comment=" Copyright (c) 2005 Boudewijn Rempt (boud@valdyas.org)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." isSpecification="false" isLeaf="false" visibility="public" xmi.id="369" isRoot="false" isAbstract="false" name="KisXyzColorSpace" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="370" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="566" isRoot="false" initialValue="" type="42" isAbstract="false" name="m_channels" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="567" isRoot="false" initialValue="" type="222" isAbstract="false" name="m_defaultToRGB" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="568" isRoot="false" initialValue="" type="222" isAbstract="false" name="m_defaultFromRGB" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="570" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_X" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="571" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_Y" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="572" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_Z" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="573" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_ALPHA" ownerScope="classifier" />
-      <UML:Attribute comment="// A small buffer for conversion from and to qcolor." isSpecification="false" isLeaf="false" visibility="private" xmi.id="574" isRoot="false" initialValue="" type="78" isAbstract="false" name="m_qcolordata" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="378" isRoot="false" isAbstract="false" name="KisXyzColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="379" isRoot="false" isAbstract="false" name="~ KisXyzColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="380" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="381" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="382" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="383" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="384" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="385" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="386" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="387" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="388" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="389" isRoot="false" isAbstract="false" name="getAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="390" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="391" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="392" isRoot="false" isAbstract="false" name="setAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="393" isRoot="false" value="" type="78" isAbstract="false" name="pixels" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="394" isRoot="false" value="" type="53" isAbstract="false" name="alpha" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="395" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="396" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="397" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="398" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="399" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="400" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="401" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="402" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="403" isRoot="false" value="" type="96" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="404" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="405" isRoot="false" isAbstract="false" name="toKisPixelRO" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12524" type="14" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="406" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="407" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="408" isRoot="false" isAbstract="false" name="toKisPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12525" type="13" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="409" isRoot="false" value="" type="78" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="410" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="411" isRoot="false" isAbstract="false" name="difference" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12526" type="163" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="412" isRoot="false" value="" type="54" isAbstract="false" name="src1" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="413" isRoot="false" value="" type="54" isAbstract="false" name="src2" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="414" isRoot="false" isAbstract="false" name="mixColors" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="415" isRoot="false" value="" type="165" isAbstract="false" name="colors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="416" isRoot="false" value="" type="54" isAbstract="false" name="weights" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="417" isRoot="false" value="" type="20" isAbstract="false" name="nColors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="418" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="419" isRoot="false" isAbstract="false" name="channels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12527" type="42" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="420" isRoot="false" isAbstract="false" name="hasAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12528" type="49" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="421" isRoot="false" isAbstract="false" name="nChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12529" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="422" isRoot="false" isAbstract="false" name="nColorChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12530" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="423" isRoot="false" isAbstract="false" name="pixelSize" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12531" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="424" isRoot="false" isAbstract="false" name="channelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12532" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="425" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="426" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="427" isRoot="false" isAbstract="false" name="normalisedChannelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12533" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="428" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="429" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="430" isRoot="false" isAbstract="false" name="convertToQImage" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12534" type="121" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="431" isRoot="false" value="" type="54" isAbstract="false" name="data" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="432" isRoot="false" value="" type="44" isAbstract="false" name="width" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="433" isRoot="false" value="" type="44" isAbstract="false" name="height" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="434" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="435" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="436" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="437" isRoot="false" value="" type="6" isAbstract="false" name="exposure" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="438" isRoot="false" isAbstract="false" name="adjustBrightnessContrast" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="439" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="440" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="441" isRoot="false" value="" type="163" isAbstract="false" name="brightness" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="442" isRoot="false" value="" type="163" isAbstract="false" name="contrast" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="443" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="444" isRoot="false" isAbstract="false" name="bitBlt" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="445" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="446" isRoot="false" value="" type="44" isAbstract="false" name="dststride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="447" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="448" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="449" isRoot="false" value="" type="54" isAbstract="false" name="srcAlphaMask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="450" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="451" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="452" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="453" isRoot="false" value="" type="44" isAbstract="false" name="cols" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="454" isRoot="false" value="" type="202" isAbstract="false" name="op" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="455" isRoot="false" isAbstract="false" name="userVisiblecompositeOps" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12535" type="69" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="456" isRoot="false" isAbstract="false" name="compositeOver" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="457" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="458" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="459" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="460" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="461" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="462" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="463" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="464" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="465" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="466" isRoot="false" isAbstract="false" name="compositeMultiply" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="467" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="468" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="469" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="470" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="471" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="472" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="473" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="474" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="475" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="476" isRoot="false" isAbstract="false" name="compositeDivide" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="477" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="478" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="479" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="480" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="481" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="482" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="483" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="484" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="485" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="486" isRoot="false" isAbstract="false" name="compositeScreen" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="487" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="488" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="489" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="490" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="491" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="492" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="493" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="494" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="495" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="496" isRoot="false" isAbstract="false" name="compositeOverlay" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="497" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="498" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="499" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="500" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="501" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="502" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="503" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="504" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="505" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="506" isRoot="false" isAbstract="false" name="compositeDodge" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="507" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="508" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="509" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="510" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="511" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="512" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="513" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="514" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="515" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="516" isRoot="false" isAbstract="false" name="compositeBurn" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="517" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="518" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="519" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="520" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="521" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="522" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="523" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="524" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="525" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="526" isRoot="false" isAbstract="false" name="compositeDarken" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="527" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="528" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="529" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="530" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="531" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="532" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="533" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="534" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="535" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="536" isRoot="false" isAbstract="false" name="compositeLighten" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="537" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="538" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="539" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="540" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="541" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="542" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="543" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="544" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="545" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="546" isRoot="false" isAbstract="false" name="compositeErase" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="547" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="548" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="549" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="550" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="551" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="552" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="553" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="554" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="555" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="556" isRoot="false" isAbstract="false" name="compositeCopy" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="557" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="558" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="559" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="560" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="561" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="562" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="563" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="564" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="565" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-     </UML:Classifier.feature>
-     <UML:Namespace.ownedElement>
-      <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="373" isRoot="false" isAbstract="false" name="Pixel" >
-       <UML:Classifier.feature>
-        <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="374" isRoot="false" initialValue="" type="150" isAbstract="false" name="X" />
-        <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="375" isRoot="false" initialValue="" type="150" isAbstract="false" name="Y" />
-        <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="376" isRoot="false" initialValue="" type="150" isAbstract="false" name="Z" />
-        <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="377" isRoot="false" initialValue="" type="150" isAbstract="false" name="alpha" />
-        <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="1130" isRoot="false" initialValue="" type="6" isAbstract="false" name="blue" />
-        <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="1131" isRoot="false" initialValue="" type="6" isAbstract="false" name="green" />
-        <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="1132" isRoot="false" initialValue="" type="6" isAbstract="false" name="red" />
-       </UML:Classifier.feature>
-      </UML:Class>
-     </UML:Namespace.ownedElement>
-    </UML:Class>
-    <UML:Class comment=" Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." isSpecification="false" isLeaf="false" visibility="public" xmi.id="575" isRoot="false" isAbstract="false" name="KisCmykColorSpace" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="576" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="660" isRoot="false" initialValue="" type="42" isAbstract="false" name="m_channels" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="661" isRoot="false" initialValue="" type="222" isAbstract="false" name="m_defaultToRGB" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="662" isRoot="false" initialValue="" type="222" isAbstract="false" name="m_defaultFromRGB" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="663" isRoot="false" initialValue="" type="78" isAbstract="false" name="m_qcolordata" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="664" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_CYAN" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="665" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_MAGENTA" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="666" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_YELLOW" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="667" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_BLACK" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="668" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_CMYK_ALPHA" ownerScope="classifier" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="579" isRoot="false" isAbstract="false" name="KisCmykColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="580" isRoot="false" isAbstract="false" name="~ KisCmykColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="581" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="582" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="583" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="584" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="585" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="586" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="587" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="588" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="589" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="590" isRoot="false" isAbstract="false" name="getAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="591" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="592" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="593" isRoot="false" isAbstract="false" name="setAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="594" isRoot="false" value="" type="78" isAbstract="false" name="pixels" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="595" isRoot="false" value="" type="53" isAbstract="false" name="alpha" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="596" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="597" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="598" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="599" isRoot="false" value="" type="90" isAbstract="false" name="color" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="600" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="601" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="602" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="603" isRoot="false" value="" type="90" isAbstract="false" name="color" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="604" isRoot="false" value="" type="96" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="605" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="606" isRoot="false" isAbstract="false" name="toKisPixelRO" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12536" type="14" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="607" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="608" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="609" isRoot="false" isAbstract="false" name="toKisPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12537" type="13" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="610" isRoot="false" value="" type="78" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="611" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="612" isRoot="false" isAbstract="false" name="mixColors" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="613" isRoot="false" value="" type="165" isAbstract="false" name="colors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="614" isRoot="false" value="" type="54" isAbstract="false" name="weights" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="615" isRoot="false" value="" type="20" isAbstract="false" name="nColors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="616" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="617" isRoot="false" isAbstract="false" name="channels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12538" type="42" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="618" isRoot="false" isAbstract="false" name="hasAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12539" type="49" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="619" isRoot="false" isAbstract="false" name="nChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12540" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="620" isRoot="false" isAbstract="false" name="nColorChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12541" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="621" isRoot="false" isAbstract="false" name="pixelSize" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12542" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="622" isRoot="false" isAbstract="false" name="channelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12543" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="623" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="624" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="625" isRoot="false" isAbstract="false" name="normalisedChannelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12544" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="626" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="627" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="628" isRoot="false" isAbstract="false" name="convertToQImage" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12545" type="121" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="629" isRoot="false" value="" type="54" isAbstract="false" name="data" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="630" isRoot="false" value="" type="44" isAbstract="false" name="width" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="631" isRoot="false" value="" type="44" isAbstract="false" name="height" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="632" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="633" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="634" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="635" isRoot="false" value="" type="6" isAbstract="false" name="exposure" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="636" isRoot="false" isAbstract="false" name="adjustBrightness" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="637" isRoot="false" value="" type="78" isAbstract="false" name="src1" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="638" isRoot="false" value="" type="163" isAbstract="false" name="adjust" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="639" isRoot="false" isAbstract="false" name="bitBlt" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="640" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="641" isRoot="false" value="" type="44" isAbstract="false" name="dstRowSize" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="642" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="643" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="644" isRoot="false" value="" type="54" isAbstract="false" name="srcAlphaMask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="645" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="646" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="647" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="648" isRoot="false" value="" type="44" isAbstract="false" name="cols" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="649" isRoot="false" value="" type="202" isAbstract="false" name="op" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="650" isRoot="false" isAbstract="false" name="valid" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12546" type="49" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="651" isRoot="false" isAbstract="false" name="userVisiblecompositeOps" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12547" type="69" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="652" isRoot="false" isAbstract="false" name="compositeOver" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="653" isRoot="false" value="" type="78" isAbstract="false" name="dstRowStart" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="654" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="655" isRoot="false" value="" type="54" isAbstract="false" name="srcRowStart" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="656" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="657" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="658" isRoot="false" value="" type="44" isAbstract="false" name="numColumns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="659" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class comment=" Copyright (c) 2004 Cyrille Berger &lt;cberger@cberger.net>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." isSpecification="false" isLeaf="false" visibility="public" xmi.id="669" isRoot="false" isAbstract="false" name="KisGrayColorSpace" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="670" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="860" isRoot="false" initialValue="" type="42" isAbstract="false" name="m_channels" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="861" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_GRAY" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="862" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_GRAY_ALPHA" ownerScope="classifier" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="673" isRoot="false" isAbstract="false" name="KisGrayColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="674" isRoot="false" isAbstract="false" name="~ KisGrayColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="675" isRoot="false" isAbstract="false" name="setPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="676" isRoot="false" value="" type="78" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="677" isRoot="false" value="" type="53" isAbstract="false" name="gray" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="678" isRoot="false" value="" type="53" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="679" isRoot="false" isAbstract="false" name="getPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="680" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="681" isRoot="false" value="" type="78" isAbstract="false" name="gray" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="682" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="683" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="684" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="685" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="686" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="687" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="688" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="689" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="690" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="691" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="692" isRoot="false" isAbstract="false" name="getAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="693" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="694" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="695" isRoot="false" isAbstract="false" name="setAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="696" isRoot="false" value="" type="78" isAbstract="false" name="pixels" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="697" isRoot="false" value="" type="53" isAbstract="false" name="alpha" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="698" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="699" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="700" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="701" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="702" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="703" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="704" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="705" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="706" isRoot="false" value="" type="96" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="707" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="708" isRoot="false" isAbstract="false" name="toKisPixelRO" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12548" type="14" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="709" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="710" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="711" isRoot="false" isAbstract="false" name="toKisPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12549" type="13" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="712" isRoot="false" value="" type="78" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="713" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="714" isRoot="false" isAbstract="false" name="difference" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12550" type="163" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="715" isRoot="false" value="" type="54" isAbstract="false" name="src1" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="716" isRoot="false" value="" type="54" isAbstract="false" name="src2" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="717" isRoot="false" isAbstract="false" name="mixColors" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="718" isRoot="false" value="" type="165" isAbstract="false" name="colors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="719" isRoot="false" value="" type="54" isAbstract="false" name="weights" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="720" isRoot="false" value="" type="20" isAbstract="false" name="nColors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="721" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="722" isRoot="false" isAbstract="false" name="channels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12551" type="42" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="723" isRoot="false" isAbstract="false" name="hasAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12552" type="49" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="724" isRoot="false" isAbstract="false" name="nChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12553" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="725" isRoot="false" isAbstract="false" name="nColorChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12554" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="726" isRoot="false" isAbstract="false" name="pixelSize" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12555" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="727" isRoot="false" isAbstract="false" name="channelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12556" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="728" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="729" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="730" isRoot="false" isAbstract="false" name="normalisedChannelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12557" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="731" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="732" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="733" isRoot="false" isAbstract="false" name="convertToQImage" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12558" type="121" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="734" isRoot="false" value="" type="54" isAbstract="false" name="data" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="735" isRoot="false" value="" type="44" isAbstract="false" name="width" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="736" isRoot="false" value="" type="44" isAbstract="false" name="height" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="737" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="738" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="739" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="740" isRoot="false" value="" type="6" isAbstract="false" name="exposure" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="741" isRoot="false" isAbstract="false" name="adjustBrightnessContrast" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="742" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="743" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="744" isRoot="false" value="" type="163" isAbstract="false" name="brightness" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="745" isRoot="false" value="" type="163" isAbstract="false" name="contrast" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="746" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="747" isRoot="false" isAbstract="false" name="bitBlt" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="748" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="749" isRoot="false" value="" type="44" isAbstract="false" name="dststride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="750" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="751" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="752" isRoot="false" value="" type="54" isAbstract="false" name="srcAlphaMask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="753" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="754" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="755" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="756" isRoot="false" value="" type="44" isAbstract="false" name="cols" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="757" isRoot="false" value="" type="202" isAbstract="false" name="op" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="758" isRoot="false" isAbstract="false" name="userVisiblecompositeOps" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12559" type="69" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="759" isRoot="false" isAbstract="false" name="compositeOver" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="760" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="761" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="762" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="763" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="764" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="765" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="766" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="767" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="768" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="769" isRoot="false" isAbstract="false" name="compositeMultiply" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="770" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="771" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="772" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="773" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="774" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="775" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="776" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="777" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="778" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="779" isRoot="false" isAbstract="false" name="compositeDivide" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="780" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="781" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="782" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="783" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="784" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="785" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="786" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="787" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="788" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="789" isRoot="false" isAbstract="false" name="compositeScreen" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="790" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="791" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="792" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="793" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="794" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="795" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="796" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="797" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="798" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="799" isRoot="false" isAbstract="false" name="compositeOverlay" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="800" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="801" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="802" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="803" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="804" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="805" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="806" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="807" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="808" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="809" isRoot="false" isAbstract="false" name="compositeDodge" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="810" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="811" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="812" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="813" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="814" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="815" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="816" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="817" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="818" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="819" isRoot="false" isAbstract="false" name="compositeBurn" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="820" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="821" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="822" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="823" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="824" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="825" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="826" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="827" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="828" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="829" isRoot="false" isAbstract="false" name="compositeDarken" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="830" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="831" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="832" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="833" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="834" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="835" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="836" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="837" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="838" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="839" isRoot="false" isAbstract="false" name="compositeLighten" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="840" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="841" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="842" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="843" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="844" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="845" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="846" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="847" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="848" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="849" isRoot="false" isAbstract="false" name="compositeErase" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="850" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="851" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="852" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="853" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="854" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="855" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="856" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="857" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="858" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="859" isRoot="false" isAbstract="false" name="KisGrayColorSpaceTester" />
-    <UML:Class comment=" Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-//**
-A plugin wrapper around the RGB F32 colour space strategy." isSpecification="false" isLeaf="false" visibility="public" xmi.id="863" isRoot="false" isAbstract="false" name="RGBF32Plugin" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="866" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="878" isRoot="false" initialValue="" type="126" isAbstract="false" name="m_ColorSpaceRGBF32" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="869" isRoot="false" isAbstract="false" name="RGBF32Plugin" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="872" isRoot="false" value="" type="871" isAbstract="false" name="tqparent" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="874" isRoot="false" value="" type="873" isAbstract="false" name="name" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="876" isRoot="false" value="" type="875" isAbstract="false" name="" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="877" isRoot="false" isAbstract="false" name="~ RGBF32Plugin" />
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="864" isRoot="false" isAbstract="false" name="KParts" >
-     <UML:Namespace.ownedElement>
-      <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="865" isRoot="false" isAbstract="false" name="Plugin" />
-     </UML:Namespace.ownedElement>
-    </UML:Class>
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="870" isRoot="false" isAbstract="false" name=TQOBJECT_OBJECT_NAME_STRING />
-    <UML:Class comment=" Copyright (c) 2002 Patrick Julien  &lt;freak@codepimps.org>
- Copyright (c) 2005 Adrian Page &lt;adrian@pagenet.plus.com>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA." isSpecification="false" isLeaf="false" visibility="public" xmi.id="879" isRoot="false" isAbstract="false" name="KisF32RgbColorSpace" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="880" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1125" isRoot="false" initialValue="" type="42" isAbstract="false" name="m_channels" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1126" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_BLUE" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1127" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_GREEN" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1128" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_RED" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1129" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_ALPHA" ownerScope="classifier" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="883" isRoot="false" isAbstract="false" name="KisF32RgbColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="884" isRoot="false" isAbstract="false" name="~ KisF32RgbColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="885" isRoot="false" isAbstract="false" name="setPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="886" isRoot="false" value="" type="78" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="887" isRoot="false" value="" type="6" isAbstract="false" name="red" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="888" isRoot="false" value="" type="6" isAbstract="false" name="green" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="889" isRoot="false" value="" type="6" isAbstract="false" name="blue" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="890" isRoot="false" value="" type="6" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="891" isRoot="false" isAbstract="false" name="getPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="892" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="894" isRoot="false" value="" type="893" isAbstract="false" name="red" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="895" isRoot="false" value="" type="893" isAbstract="false" name="green" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="896" isRoot="false" value="" type="893" isAbstract="false" name="blue" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="897" isRoot="false" value="" type="893" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="898" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="899" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="900" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="901" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="902" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="903" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="904" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="905" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="906" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="907" isRoot="false" isAbstract="false" name="getAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="908" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="909" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="910" isRoot="false" isAbstract="false" name="setAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="911" isRoot="false" value="" type="78" isAbstract="false" name="pixels" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="912" isRoot="false" value="" type="53" isAbstract="false" name="alpha" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="913" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="914" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="915" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="916" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="917" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="918" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="919" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="920" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="921" isRoot="false" value="" type="96" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="922" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="923" isRoot="false" isAbstract="false" name="toKisPixelRO" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12560" type="14" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="924" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="925" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="926" isRoot="false" isAbstract="false" name="toKisPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12561" type="13" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="927" isRoot="false" value="" type="78" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="928" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="929" isRoot="false" isAbstract="false" name="difference" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12562" type="163" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="930" isRoot="false" value="" type="54" isAbstract="false" name="src1" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="931" isRoot="false" value="" type="54" isAbstract="false" name="src2" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="932" isRoot="false" isAbstract="false" name="mixColors" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="933" isRoot="false" value="" type="165" isAbstract="false" name="colors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="934" isRoot="false" value="" type="54" isAbstract="false" name="weights" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="935" isRoot="false" value="" type="20" isAbstract="false" name="nColors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="936" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="937" isRoot="false" isAbstract="false" name="channels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12563" type="42" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="938" isRoot="false" isAbstract="false" name="hasAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12564" type="49" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="939" isRoot="false" isAbstract="false" name="nChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12565" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="940" isRoot="false" isAbstract="false" name="nColorChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12566" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="941" isRoot="false" isAbstract="false" name="pixelSize" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12567" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="942" isRoot="false" isAbstract="false" name="channelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12568" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="943" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="944" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="945" isRoot="false" isAbstract="false" name="normalisedChannelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12569" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="946" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="947" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="948" isRoot="false" isAbstract="false" name="convertToQImage" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12570" type="121" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="949" isRoot="false" value="" type="54" isAbstract="false" name="data" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="950" isRoot="false" value="" type="44" isAbstract="false" name="width" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="951" isRoot="false" value="" type="44" isAbstract="false" name="height" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="952" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="953" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="954" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="955" isRoot="false" value="" type="6" isAbstract="false" name="exposure" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="956" isRoot="false" isAbstract="false" name="userVisiblecompositeOps" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12571" type="69" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="957" isRoot="false" isAbstract="false" name="adjustBrightnessContrast" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="958" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="959" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="960" isRoot="false" value="" type="163" isAbstract="false" name="brightness" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="961" isRoot="false" value="" type="163" isAbstract="false" name="contrast" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="962" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="963" isRoot="false" isAbstract="false" name="bitBlt" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="964" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="965" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="966" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="967" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="968" isRoot="false" value="" type="54" isAbstract="false" name="srcAlphaMask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="969" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="970" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="971" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="972" isRoot="false" value="" type="44" isAbstract="false" name="cols" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="973" isRoot="false" value="" type="202" isAbstract="false" name="op" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="974" isRoot="false" isAbstract="false" name="compositeOver" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="975" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="976" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="977" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="978" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="979" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="980" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="981" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="982" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="983" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="984" isRoot="false" isAbstract="false" name="compositeMultiply" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="985" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="986" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="987" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="988" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="989" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="990" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="991" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="992" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="993" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="994" isRoot="false" isAbstract="false" name="compositeDivide" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="995" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="996" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="997" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="998" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="999" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1000" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1001" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1002" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1003" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1004" isRoot="false" isAbstract="false" name="compositeScreen" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1005" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1006" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1007" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1008" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1009" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1010" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1011" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1012" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1013" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1014" isRoot="false" isAbstract="false" name="compositeOverlay" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1015" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1016" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1017" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1018" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1019" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1020" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1021" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1022" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1023" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1024" isRoot="false" isAbstract="false" name="compositeDodge" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1025" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1026" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1027" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1028" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1029" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1030" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1031" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1032" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1033" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1034" isRoot="false" isAbstract="false" name="compositeBurn" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1035" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1036" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1037" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1038" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1039" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1040" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1041" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1042" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1043" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1044" isRoot="false" isAbstract="false" name="compositeDarken" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1045" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1046" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1047" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1048" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1049" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1050" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1051" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1052" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1053" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1054" isRoot="false" isAbstract="false" name="compositeLighten" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1055" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1056" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1057" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1058" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1059" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1060" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1061" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1062" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1063" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1064" isRoot="false" isAbstract="false" name="compositeHue" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1065" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1066" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1067" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1068" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1069" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1070" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1071" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1072" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1073" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1074" isRoot="false" isAbstract="false" name="compositeSaturation" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1075" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1076" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1077" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1078" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1079" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1080" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1081" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1082" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1083" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1084" isRoot="false" isAbstract="false" name="compositeValue" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1085" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1086" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1087" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1088" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1089" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1090" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1091" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1092" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1093" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1094" isRoot="false" isAbstract="false" name="compositeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1095" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1096" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1097" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1098" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1099" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1100" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1101" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1102" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1103" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1104" isRoot="false" isAbstract="false" name="compositeErase" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1105" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1106" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1107" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1108" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1109" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1110" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1111" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1112" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1113" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1114" isRoot="false" isAbstract="false" name="compositeCopy" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1115" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1116" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1117" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1118" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1119" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1120" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1121" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1122" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1123" isRoot="false" value="" type="6" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="1124" isRoot="false" isAbstract="false" name="KisF32RgbColorSpaceTester" />
-    <UML:Class stereotype="16" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1133" isRoot="false" isAbstract="false" name="KisF32RgbColorSpaceSP" />
-    <UML:Class comment=" Copyright (c) 2002 Patrick Julien  &lt;freak@codepimps.org>
- Copyright (c) 2005 Adrian Page &lt;adrian@pagenet.plus.com>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." isSpecification="false" isLeaf="false" visibility="public" xmi.id="1134" isRoot="false" isAbstract="false" name="KisRgbU16ColorSpace" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="1135" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="1138" isRoot="false" initialValue="" type="362" isAbstract="false" name="U16_OPACITY_OPAQUE" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="public" xmi.id="1139" isRoot="false" initialValue="" type="362" isAbstract="false" name="U16_OPACITY_TRANSPARENT" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1381" isRoot="false" initialValue="" type="42" isAbstract="false" name="m_channels" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1382" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_BLUE" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1383" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_GREEN" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1384" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_RED" ownerScope="classifier" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1385" isRoot="false" initialValue="" type="569" isAbstract="false" name="PIXEL_ALPHA" ownerScope="classifier" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1140" isRoot="false" isAbstract="false" name="KisRgbU16ColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1141" isRoot="false" isAbstract="false" name="~ KisRgbU16ColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1142" isRoot="false" isAbstract="false" name="setPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1143" isRoot="false" value="" type="78" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1144" isRoot="false" value="" type="150" isAbstract="false" name="red" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1145" isRoot="false" value="" type="150" isAbstract="false" name="green" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1146" isRoot="false" value="" type="150" isAbstract="false" name="blue" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1147" isRoot="false" value="" type="150" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1148" isRoot="false" isAbstract="false" name="getPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1149" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1150" isRoot="false" value="" type="151" isAbstract="false" name="red" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1151" isRoot="false" value="" type="151" isAbstract="false" name="green" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1152" isRoot="false" value="" type="151" isAbstract="false" name="blue" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1153" isRoot="false" value="" type="151" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1154" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1155" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1156" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1157" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1158" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1159" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1160" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1161" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1162" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1163" isRoot="false" isAbstract="false" name="getAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1164" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1165" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1166" isRoot="false" isAbstract="false" name="setAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1167" isRoot="false" value="" type="78" isAbstract="false" name="pixels" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1168" isRoot="false" value="" type="53" isAbstract="false" name="alpha" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1169" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1170" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1171" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1172" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1173" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1174" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1175" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1176" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1177" isRoot="false" value="" type="96" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1178" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1179" isRoot="false" isAbstract="false" name="toKisPixelRO" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12572" type="14" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1180" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1181" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1182" isRoot="false" isAbstract="false" name="toKisPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12573" type="13" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1183" isRoot="false" value="" type="78" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1184" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1185" isRoot="false" isAbstract="false" name="difference" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12574" type="163" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1186" isRoot="false" value="" type="54" isAbstract="false" name="src1" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1187" isRoot="false" value="" type="54" isAbstract="false" name="src2" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1188" isRoot="false" isAbstract="false" name="mixColors" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1189" isRoot="false" value="" type="165" isAbstract="false" name="colors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1190" isRoot="false" value="" type="54" isAbstract="false" name="weights" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1191" isRoot="false" value="" type="20" isAbstract="false" name="nColors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1192" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1193" isRoot="false" isAbstract="false" name="channels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12575" type="42" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1194" isRoot="false" isAbstract="false" name="hasAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12576" type="49" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1195" isRoot="false" isAbstract="false" name="nChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12577" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1196" isRoot="false" isAbstract="false" name="nColorChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12578" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1197" isRoot="false" isAbstract="false" name="pixelSize" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12579" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1198" isRoot="false" isAbstract="false" name="channelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12580" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1199" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1200" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1201" isRoot="false" isAbstract="false" name="normalisedChannelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12581" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1202" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1203" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1204" isRoot="false" isAbstract="false" name="convertToQImage" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12582" type="121" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1205" isRoot="false" value="" type="54" isAbstract="false" name="data" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1206" isRoot="false" value="" type="44" isAbstract="false" name="width" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1207" isRoot="false" value="" type="44" isAbstract="false" name="height" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1208" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1209" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1210" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1211" isRoot="false" value="" type="6" isAbstract="false" name="exposure" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1212" isRoot="false" isAbstract="false" name="userVisiblecompositeOps" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12583" type="69" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1213" isRoot="false" isAbstract="false" name="adjustBrightnessContrast" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1214" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1215" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1216" isRoot="false" value="" type="163" isAbstract="false" name="brightness" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1217" isRoot="false" value="" type="163" isAbstract="false" name="contrast" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1218" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1219" isRoot="false" isAbstract="false" name="bitBlt" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1220" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1221" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1222" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1223" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1224" isRoot="false" value="" type="54" isAbstract="false" name="srcAlphaMask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1225" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1226" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1227" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1228" isRoot="false" value="" type="44" isAbstract="false" name="cols" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1229" isRoot="false" value="" type="202" isAbstract="false" name="op" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1230" isRoot="false" isAbstract="false" name="compositeOver" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1231" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1232" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1233" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1234" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1235" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1236" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1237" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1238" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1239" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1240" isRoot="false" isAbstract="false" name="compositeMultiply" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1241" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1242" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1243" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1244" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1245" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1246" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1247" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1248" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1249" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1250" isRoot="false" isAbstract="false" name="compositeDivide" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1251" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1252" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1253" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1254" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1255" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1256" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1257" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1258" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1259" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1260" isRoot="false" isAbstract="false" name="compositeScreen" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1261" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1262" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1263" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1264" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1265" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1266" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1267" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1268" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1269" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1270" isRoot="false" isAbstract="false" name="compositeOverlay" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1271" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1272" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1273" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1274" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1275" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1276" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1277" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1278" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1279" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1280" isRoot="false" isAbstract="false" name="compositeDodge" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1281" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1282" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1283" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1284" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1285" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1286" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1287" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1288" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1289" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1290" isRoot="false" isAbstract="false" name="compositeBurn" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1291" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1292" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1293" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1294" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1295" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1296" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1297" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1298" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1299" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1300" isRoot="false" isAbstract="false" name="compositeDarken" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1301" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1302" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1303" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1304" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1305" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1306" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1307" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1308" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1309" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1310" isRoot="false" isAbstract="false" name="compositeLighten" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1311" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1312" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1313" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1314" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1315" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1316" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1317" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1318" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1319" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1320" isRoot="false" isAbstract="false" name="compositeHue" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1321" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1322" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1323" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1324" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1325" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1326" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1327" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1328" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1329" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1330" isRoot="false" isAbstract="false" name="compositeSaturation" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1331" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1332" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1333" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1334" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1335" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1336" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1337" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1338" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1339" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1340" isRoot="false" isAbstract="false" name="compositeValue" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1341" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1342" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1343" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1344" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1345" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1346" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1347" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1348" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1349" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1350" isRoot="false" isAbstract="false" name="compositeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1351" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1352" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1353" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1354" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1355" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1356" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1357" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1358" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1359" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1360" isRoot="false" isAbstract="false" name="compositeErase" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1361" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1362" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1363" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1364" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1365" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1366" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1367" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1368" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1369" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1370" isRoot="false" isAbstract="false" name="compositeCopy" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1371" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1372" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1373" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1374" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1375" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1376" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1377" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1378" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1379" isRoot="false" value="" type="150" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="1380" isRoot="false" isAbstract="false" name="KisRgbU16ColorSpaceTester" />
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="1386" isRoot="false" isAbstract="false" name="KisRgbColorSpace" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="1387" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1638" isRoot="false" initialValue="" type="42" isAbstract="false" name="m_channels" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1390" isRoot="false" isAbstract="false" name="KisRgbColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1391" isRoot="false" isAbstract="false" name="~ KisRgbColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1392" isRoot="false" isAbstract="false" name="setPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1393" isRoot="false" value="" type="78" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1394" isRoot="false" value="" type="53" isAbstract="false" name="red" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1395" isRoot="false" value="" type="53" isAbstract="false" name="green" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1396" isRoot="false" value="" type="53" isAbstract="false" name="blue" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1397" isRoot="false" value="" type="53" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1398" isRoot="false" isAbstract="false" name="getPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1399" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1400" isRoot="false" value="" type="78" isAbstract="false" name="red" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1401" isRoot="false" value="" type="78" isAbstract="false" name="green" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1402" isRoot="false" value="" type="78" isAbstract="false" name="blue" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1403" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1404" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1405" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1406" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1407" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1408" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1409" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1410" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1411" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1412" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1413" isRoot="false" isAbstract="false" name="getAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1414" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1415" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1416" isRoot="false" isAbstract="false" name="setAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1417" isRoot="false" value="" type="78" isAbstract="false" name="pixels" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1418" isRoot="false" value="" type="53" isAbstract="false" name="alpha" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1419" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1420" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1421" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1422" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1423" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1424" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1425" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1426" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1427" isRoot="false" value="" type="96" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1428" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1429" isRoot="false" isAbstract="false" name="toKisPixelRO" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12584" type="14" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1430" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1431" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1432" isRoot="false" isAbstract="false" name="toKisPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12585" type="13" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1433" isRoot="false" value="" type="78" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1434" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1435" isRoot="false" isAbstract="false" name="difference" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12586" type="163" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1436" isRoot="false" value="" type="54" isAbstract="false" name="src1" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1437" isRoot="false" value="" type="54" isAbstract="false" name="src2" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1438" isRoot="false" isAbstract="false" name="mixColors" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1439" isRoot="false" value="" type="165" isAbstract="false" name="colors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1440" isRoot="false" value="" type="54" isAbstract="false" name="weights" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1441" isRoot="false" value="" type="20" isAbstract="false" name="nColors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1442" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1443" isRoot="false" isAbstract="false" name="convolveColors" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1444" isRoot="false" value="" type="171" isAbstract="false" name="colors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1445" isRoot="false" value="" type="173" isAbstract="false" name="kernelValues" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1446" isRoot="false" value="" type="175" isAbstract="false" name="channelFlags" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1447" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1448" isRoot="false" value="" type="44" isAbstract="false" name="factor" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1449" isRoot="false" value="" type="44" isAbstract="false" name="offset" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1450" isRoot="false" value="" type="44" isAbstract="false" name="nColors" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1451" isRoot="false" isAbstract="false" name="channels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12587" type="42" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1452" isRoot="false" isAbstract="false" name="hasAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12588" type="49" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1453" isRoot="false" isAbstract="false" name="nChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12589" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1454" isRoot="false" isAbstract="false" name="nColorChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12590" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1455" isRoot="false" isAbstract="false" name="pixelSize" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12591" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1456" isRoot="false" isAbstract="false" name="channelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12592" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1457" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1458" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1459" isRoot="false" isAbstract="false" name="normalisedChannelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12593" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1460" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1461" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1462" isRoot="false" isAbstract="false" name="convertToQImage" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12594" type="121" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1463" isRoot="false" value="" type="54" isAbstract="false" name="data" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1464" isRoot="false" value="" type="44" isAbstract="false" name="width" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1465" isRoot="false" value="" type="44" isAbstract="false" name="height" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1466" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1467" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1468" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1469" isRoot="false" value="" type="6" isAbstract="false" name="exposure" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1470" isRoot="false" isAbstract="false" name="userVisiblecompositeOps" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12595" type="69" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1471" isRoot="false" isAbstract="false" name="createBrightnessContrastAdjustment" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12596" type="154" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1472" isRoot="false" value="" type="151" isAbstract="false" name="transferValues" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1473" isRoot="false" isAbstract="false" name="applyAdjustment" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1474" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1475" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1476" isRoot="false" value="" type="154" isAbstract="false" name="" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1477" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="Darken all color channels with the given amount. If compensate is true,
-the compensation factor will be used to limit the darkening.
-
-(See the bumpmap filter)" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1478" isRoot="false" isAbstract="false" name="darken" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1479" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1480" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1481" isRoot="false" value="" type="44" isAbstract="false" name="shade" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1482" isRoot="false" value="" type="49" isAbstract="false" name="compensate" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1483" isRoot="false" value="" type="7" isAbstract="false" name="compensation" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1484" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1485" isRoot="false" isAbstract="false" name="intensity8" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12597" type="53" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1486" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1487" isRoot="false" isAbstract="false" name="bitBlt" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1488" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1489" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1490" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1491" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1492" isRoot="false" value="" type="54" isAbstract="false" name="srcAlphaMask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1493" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1494" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1495" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1496" isRoot="false" value="" type="44" isAbstract="false" name="cols" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1497" isRoot="false" value="" type="202" isAbstract="false" name="op" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1498" isRoot="false" isAbstract="false" name="compositeOver" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1499" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1500" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1501" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1502" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1503" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1504" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1505" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1506" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1507" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1508" isRoot="false" isAbstract="false" name="compositeMultiply" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1509" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1510" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1511" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1512" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1513" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1514" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1515" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1516" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1517" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1518" isRoot="false" isAbstract="false" name="compositeDivide" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1519" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1520" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1521" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1522" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1523" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1524" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1525" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1526" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1527" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1528" isRoot="false" isAbstract="false" name="compositeScreen" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1529" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1530" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1531" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1532" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1533" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1534" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1535" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1536" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1537" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1538" isRoot="false" isAbstract="false" name="compositeOverlay" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1539" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1540" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1541" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1542" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1543" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1544" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1545" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1546" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1547" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1548" isRoot="false" isAbstract="false" name="compositeDodge" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1549" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1550" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1551" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1552" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1553" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1554" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1555" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1556" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1557" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1558" isRoot="false" isAbstract="false" name="compositeBurn" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1559" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1560" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1561" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1562" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1563" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1564" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1565" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1566" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1567" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1568" isRoot="false" isAbstract="false" name="compositeDarken" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1569" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1570" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1571" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1572" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1573" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1574" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1575" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1576" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1577" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1578" isRoot="false" isAbstract="false" name="compositeLighten" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1579" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1580" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1581" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1582" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1583" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1584" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1585" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1586" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1587" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1588" isRoot="false" isAbstract="false" name="compositeHue" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1589" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1590" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1591" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1592" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1593" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1594" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1595" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1596" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1597" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1598" isRoot="false" isAbstract="false" name="compositeSaturation" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1599" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1600" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1601" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1602" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1603" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1604" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1605" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1606" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1607" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1608" isRoot="false" isAbstract="false" name="compositeValue" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1609" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1610" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1611" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1612" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1613" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1614" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1615" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1616" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1617" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1618" isRoot="false" isAbstract="false" name="compositeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1619" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1620" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1621" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1622" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1623" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1624" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1625" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1626" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1627" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1628" isRoot="false" isAbstract="false" name="compositeErase" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1629" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1630" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1631" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1632" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1633" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1634" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1635" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1636" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1637" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class stereotype="16" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1639" isRoot="false" isAbstract="false" name="WetPix" />
-    <UML:Class stereotype="16" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1640" isRoot="false" isAbstract="false" name="WetPixDbl" />
-    <UML:Class stereotype="16" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1641" isRoot="false" isAbstract="false" name="WetPack" />
-    <UML:Class comment="White is made up of myth-red, myth-green, and myth-blue. Myth-red
-looks red when viewed reflectively, but cyan when viewed
-transmissively (thus, it vaguely resembles a dichroic
-filter). Myth-red over black is red, and myth-red over white is
-white.
-
-Total red channel concentration is myth-red concentration plus
-cyan concentration." isSpecification="false" isLeaf="false" visibility="public" xmi.id="1642" isRoot="false" isAbstract="false" name="_WetPix" >
-     <UML:Classifier.feature>
-      <UML:Attribute comment="Total red channel concentration" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1643" isRoot="false" initialValue="" type="150" isAbstract="false" name="rd" />
-      <UML:Attribute comment="Myth-red concentration" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1644" isRoot="false" initialValue="" type="150" isAbstract="false" name="rw" />
-      <UML:Attribute comment="Total green channel concentration" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1645" isRoot="false" initialValue="" type="150" isAbstract="false" name="gd" />
-      <UML:Attribute comment="Myth-green concentration" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1646" isRoot="false" initialValue="" type="150" isAbstract="false" name="gw" />
-      <UML:Attribute comment="Total blue channel concentration" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1647" isRoot="false" initialValue="" type="150" isAbstract="false" name="bd" />
-      <UML:Attribute comment="Myth-blue concentration" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1648" isRoot="false" initialValue="" type="150" isAbstract="false" name="bw" />
-      <UML:Attribute comment="Water volume" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1649" isRoot="false" initialValue="" type="150" isAbstract="false" name="w" />
-      <UML:Attribute comment="Height of paper surface XXX: This might just as well be a single
-channel in our colour model that has two of
-these wetpix structs for every paint device pixel" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1650" isRoot="false" initialValue="" type="150" isAbstract="false" name="h" />
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="1651" isRoot="false" isAbstract="false" name="_WetPack" >
-     <UML:Classifier.feature>
-      <UML:Attribute comment="Paint layer" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1652" isRoot="false" initialValue="" type="1639" isAbstract="false" name="paint" />
-      <UML:Attribute comment="Adsorbtion layer" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1653" isRoot="false" initialValue="" type="1639" isAbstract="false" name="adsorb" />
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="1654" isRoot="false" isAbstract="false" name="_WetPixDbl" >
-     <UML:Classifier.feature>
-      <UML:Attribute comment="Total red channel concentration" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1655" isRoot="false" initialValue="" type="7" isAbstract="false" name="rd" />
-      <UML:Attribute comment="Myth-red concentration" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1656" isRoot="false" initialValue="" type="7" isAbstract="false" name="rw" />
-      <UML:Attribute comment="Total green channel concentration" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1657" isRoot="false" initialValue="" type="7" isAbstract="false" name="gd" />
-      <UML:Attribute comment="Myth-green concentration" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1658" isRoot="false" initialValue="" type="7" isAbstract="false" name="gw" />
-      <UML:Attribute comment="Total blue channel concentration" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1659" isRoot="false" initialValue="" type="7" isAbstract="false" name="bd" />
-      <UML:Attribute comment="Myth-blue concentration" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1660" isRoot="false" initialValue="" type="7" isAbstract="false" name="bw" />
-      <UML:Attribute comment="Water volume" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1661" isRoot="false" initialValue="" type="7" isAbstract="false" name="w" />
-      <UML:Attribute comment="Height of paper surface" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1662" isRoot="false" initialValue="" type="7" isAbstract="false" name="h" />
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="1663" isRoot="false" isAbstract="false" name="KisWetColorSpace" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="1664" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1755" isRoot="false" initialValue="" type="42" isAbstract="false" name="m_channels" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1757" isRoot="false" initialValue="" type="1756" isAbstract="false" name="wet_render_tab" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1758" isRoot="false" initialValue="" type="226" isAbstract="false" name="m_paintNames" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1760" isRoot="false" initialValue="" type="1759" isAbstract="false" name="m_conversionMap" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1761" isRoot="false" initialValue="" type="49" isAbstract="false" name="m_paintwetness" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1762" isRoot="false" initialValue="" type="2" isAbstract="false" name="phase" />
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1763" isRoot="false" initialValue="" type="2" isAbstract="false" name="phasebig" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1667" isRoot="false" isAbstract="false" name="KisWetColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1668" isRoot="false" isAbstract="false" name="~ KisWetColorSpace" />
-      <UML:Operation comment="// Semi-clever: we have only fifteen wet paint colors that are mapped to the// qcolors that are put in the painter by the special wet paint palette. Other// QColors are mapped to plain water..." isSpecification="false" isLeaf="false" visibility="public" xmi.id="1669" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1670" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1671" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1672" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1673" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1674" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1675" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1676" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1677" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1678" isRoot="false" isAbstract="false" name="getAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1679" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1680" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1681" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1682" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1683" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1684" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1685" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1686" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1687" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1688" isRoot="false" value="" type="96" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1689" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1690" isRoot="false" isAbstract="false" name="toKisPixelRO" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12598" type="14" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1691" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1692" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1693" isRoot="false" isAbstract="false" name="toKisPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12599" type="13" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1694" isRoot="false" value="" type="78" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1695" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1696" isRoot="false" isAbstract="false" name="mixColors" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1697" isRoot="false" value="" type="165" isAbstract="false" name="colors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1698" isRoot="false" value="" type="54" isAbstract="false" name="weights" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1699" isRoot="false" value="" type="20" isAbstract="false" name="nColors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1700" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1701" isRoot="false" isAbstract="false" name="channels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12600" type="42" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1702" isRoot="false" isAbstract="false" name="hasAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12601" type="49" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1703" isRoot="false" isAbstract="false" name="nChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12602" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1704" isRoot="false" isAbstract="false" name="nColorChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12603" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1705" isRoot="false" isAbstract="false" name="nSubstanceChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12604" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1706" isRoot="false" isAbstract="false" name="pixelSize" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12605" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1707" isRoot="false" isAbstract="false" name="channelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12606" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1708" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1709" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1710" isRoot="false" isAbstract="false" name="normalisedChannelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12607" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1711" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1712" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1713" isRoot="false" isAbstract="false" name="convertToQImage" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12608" type="121" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1714" isRoot="false" value="" type="54" isAbstract="false" name="data" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1715" isRoot="false" value="" type="44" isAbstract="false" name="width" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1716" isRoot="false" value="" type="44" isAbstract="false" name="height" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1717" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1718" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1719" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1720" isRoot="false" value="" type="6" isAbstract="false" name="exposure" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1721" isRoot="false" isAbstract="false" name="adjustBrightness" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1722" isRoot="false" value="" type="78" isAbstract="false" name="src1" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1723" isRoot="false" value="" type="163" isAbstract="false" name="adjust" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1724" isRoot="false" isAbstract="false" name="adjustBrightnessContrast" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1725" isRoot="false" value="" type="54" isAbstract="false" name="" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1726" isRoot="false" value="" type="78" isAbstract="false" name="" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1727" isRoot="false" value="" type="163" isAbstract="false" name="" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1728" isRoot="false" value="" type="163" isAbstract="false" name="" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1729" isRoot="false" value="" type="44" isAbstract="false" name="" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1730" isRoot="false" isAbstract="false" name="userVisiblecompositeOps" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12609" type="69" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1731" isRoot="false" isAbstract="false" name="setPaintWetness" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1732" isRoot="false" value="" type="49" isAbstract="false" name="b" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1733" isRoot="false" isAbstract="false" name="paintWetness" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12610" type="49" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1734" isRoot="false" isAbstract="false" name="resetPhase" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1735" isRoot="false" isAbstract="false" name="bitBlt" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1736" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1737" isRoot="false" value="" type="44" isAbstract="false" name="dstRowSize" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1738" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1739" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1740" isRoot="false" value="" type="54" isAbstract="false" name="srcAlphaMask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1741" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1742" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1743" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1744" isRoot="false" value="" type="44" isAbstract="false" name="cols" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1745" isRoot="false" value="" type="202" isAbstract="false" name="op" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation comment="// This was static, but since we have only one instance of the color strategy,// it can be just as well a private member variable." isSpecification="false" isLeaf="false" visibility="private" xmi.id="1746" isRoot="false" isAbstract="false" name="wet_init_render_tab" />
-      <UML:Operation comment="// Convert a single pixel from its wet representation to rgb" isSpecification="false" isLeaf="false" visibility="private" xmi.id="1747" isRoot="false" isAbstract="false" name="wet_composite" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1748" isRoot="false" value="" type="78" isAbstract="false" name="rgb" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1750" isRoot="false" value="" type="1749" isAbstract="false" name="wet" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="1751" isRoot="false" isAbstract="false" name="wet_render_wetness" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1752" isRoot="false" value="" type="78" isAbstract="false" name="rgb" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1754" isRoot="false" value="" type="1753" isAbstract="false" name="pack" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="1759" isRoot="false" isAbstract="false" name="QMap" />
-    <UML:Package comment=" Copyright (c) 2005 Boudewijn Rempt &lt;boud@valdyas.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." isSpecification="false" isLeaf="false" visibility="public" xmi.id="1764" isRoot="false" isAbstract="false" name="WetAndSticky" >
-     <UML:Namespace.ownedElement>
-      <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1773" isRoot="false" isAbstract="false" name="CELL_PTR" elementReference="1772" />
-      <UML:Enumeration stereotype="1766" comment="A color is specified as a vector in HLS space.  Hue is a value
-in the range 0..360 degrees with 0 degrees being red.  Saturation
-and Lightness are both in the range [0,1].  A lightness of 0 means
-black, with 1 being white.  A totally saturated color has saturation
-of 1." isSpecification="false" isLeaf="false" visibility="public" xmi.id="1765" isRoot="false" isAbstract="false" name="enumDirection" >
-       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" xmi.id="1767" isRoot="false" isAbstract="false" name="UP" />
-       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" xmi.id="1768" isRoot="false" isAbstract="false" name="DOWN" />
-       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" xmi.id="1769" isRoot="false" isAbstract="false" name="LEFT" />
-       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" xmi.id="1770" isRoot="false" isAbstract="false" name="RIGHT" />
-      </UML:Enumeration>
-      <UML:Class stereotype="16" isSpecification="false" isLeaf="false" visibility="public" xmi.id="1771" isRoot="false" isAbstract="false" name="CELL" />
-      <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="1772" isRoot="false" isAbstract="false" name="cell" />
-     </UML:Namespace.ownedElement>
-    </UML:Package>
-    <UML:Class isSpecification="false" isLeaf="false" visibility="public" xmi.id="1774" isRoot="false" isAbstract="false" name="KisWetStickyColorSpace" >
-     <UML:GeneralizableElement.generalization>
-      <UML:Generalization xmi.idref="1775" />
-     </UML:GeneralizableElement.generalization>
-     <UML:Classifier.feature>
-      <UML:Attribute isSpecification="false" isLeaf="false" visibility="private" xmi.id="1895" isRoot="false" initialValue="" type="42" isAbstract="false" name="m_channels" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1778" isRoot="false" isAbstract="false" name="KisWetStickyColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1779" isRoot="false" isAbstract="false" name="~ KisWetStickyColorSpace" />
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1780" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1781" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1782" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1783" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1784" isRoot="false" isAbstract="false" name="nativeColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1785" isRoot="false" value="" type="76" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1786" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1787" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1788" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1789" isRoot="false" isAbstract="false" name="getAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1790" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1791" isRoot="false" value="" type="78" isAbstract="false" name="alpha" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1792" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1793" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1794" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1795" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1796" isRoot="false" isAbstract="false" name="toQColor" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1797" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1798" isRoot="false" value="" type="90" isAbstract="false" name="c" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1799" isRoot="false" value="" type="96" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1800" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1801" isRoot="false" isAbstract="false" name="toKisPixelRO" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12611" type="14" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1802" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1803" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1804" isRoot="false" isAbstract="false" name="toKisPixel" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12612" type="13" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1805" isRoot="false" value="" type="78" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1806" isRoot="false" value="" type="80" isAbstract="false" name="profile" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1807" isRoot="false" isAbstract="false" name="channels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12613" type="42" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1808" isRoot="false" isAbstract="false" name="hasAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12614" type="49" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1809" isRoot="false" isAbstract="false" name="nChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12615" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1810" isRoot="false" isAbstract="false" name="nColorChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12616" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1811" isRoot="false" isAbstract="false" name="nSubstanceChannels" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12617" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1812" isRoot="false" isAbstract="false" name="pixelSize" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12618" type="44" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1813" isRoot="false" isAbstract="false" name="channelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12619" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1814" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1815" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1816" isRoot="false" isAbstract="false" name="normalisedChannelValueText" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12620" type="57" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1817" isRoot="false" value="" type="54" isAbstract="false" name="pixel" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1818" isRoot="false" value="" type="20" isAbstract="false" name="channelIndex" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1819" isRoot="false" isAbstract="false" name="convertToQImage" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12621" type="121" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1820" isRoot="false" value="" type="54" isAbstract="false" name="data" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1821" isRoot="false" value="" type="44" isAbstract="false" name="width" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1822" isRoot="false" value="" type="44" isAbstract="false" name="height" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1823" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1824" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1825" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1826" isRoot="false" value="" type="6" isAbstract="false" name="exposure" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1827" isRoot="false" isAbstract="false" name="adjustBrightness" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1828" isRoot="false" value="" type="78" isAbstract="false" name="src1" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1829" isRoot="false" value="" type="163" isAbstract="false" name="adjust" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1830" isRoot="false" isAbstract="false" name="adjustBrightnessContrast" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1831" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1832" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1833" isRoot="false" value="" type="163" isAbstract="false" name="brightness" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1834" isRoot="false" value="" type="163" isAbstract="false" name="contrast" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1835" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1836" isRoot="false" isAbstract="false" name="mixColors" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1837" isRoot="false" value="" type="165" isAbstract="false" name="colors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1838" isRoot="false" value="" type="54" isAbstract="false" name="weights" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1839" isRoot="false" value="" type="20" isAbstract="false" name="nColors" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1840" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1841" isRoot="false" isAbstract="false" name="setAlpha" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1842" isRoot="false" value="" type="78" isAbstract="false" name="pixels" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1843" isRoot="false" value="" type="53" isAbstract="false" name="alpha" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1844" isRoot="false" value="" type="44" isAbstract="false" name="nPixels" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="1845" isRoot="false" isAbstract="false" name="userVisiblecompositeOps" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12622" type="69" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1846" isRoot="false" isAbstract="false" name="bitBlt" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1847" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1848" isRoot="false" value="" type="44" isAbstract="false" name="dstRowSize" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1849" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1850" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1851" isRoot="false" value="" type="54" isAbstract="false" name="srcAlphaMask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1852" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1853" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1854" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1855" isRoot="false" value="" type="44" isAbstract="false" name="cols" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1856" isRoot="false" value="" type="202" isAbstract="false" name="op" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="1857" isRoot="false" isAbstract="false" name="convertPixelsTo" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter kind="return" xmi.id="12623" type="49" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1858" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1859" isRoot="false" value="" type="80" isAbstract="false" name="srcProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1860" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1861" isRoot="false" value="" type="126" isAbstract="false" name="dstColorStrategy" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1862" isRoot="false" value="" type="80" isAbstract="false" name="dstProfile" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1863" isRoot="false" value="" type="20" isAbstract="false" name="numPixels" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1864" isRoot="false" value="" type="44" isAbstract="false" name="renderingIntent" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="1865" isRoot="false" isAbstract="false" name="compositeOver" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1866" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1867" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1868" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1869" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1870" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1871" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1872" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1873" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1874" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="1875" isRoot="false" isAbstract="false" name="compositeClear" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1876" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1877" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1878" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1879" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1880" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1881" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1882" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1883" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1884" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="1885" isRoot="false" isAbstract="false" name="compositeCopy" >
-       <UML:BehavioralFeature.parameter>
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1886" isRoot="false" value="" type="78" isAbstract="false" name="dst" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1887" isRoot="false" value="" type="44" isAbstract="false" name="dstRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1888" isRoot="false" value="" type="54" isAbstract="false" name="src" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1889" isRoot="false" value="" type="44" isAbstract="false" name="srcRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1890" isRoot="false" value="" type="54" isAbstract="false" name="tqmask" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1891" isRoot="false" value="" type="44" isAbstract="false" name="tqmaskRowStride" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1892" isRoot="false" value="" type="44" isAbstract="false" name="rows" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1893" isRoot="false" value="" type="44" isAbstract="false" name="columns" />
-        <UML:Parameter isSpecification="false" isLeaf="false" visibility="private" xmi.id="1894" isRoot="false" value="" type="84" isAbstract="false" name="opacity" />
-       </UML:BehavioralFeature.parameter>
-      </UML:Operation>
-     </UML:Classifier.feature>
-    </UML:Class>
-    <UML:Interface stereotype="12051" isSpecification="false" isLeaf="false" visibility="public" xmi.id="12050" isRoot="false" isAbstract="true" name="KisColorSpaceDescriptor" />
-    <UML:Generalization isSpecification="false" child="26" visibility="public" xmi.id="28" tqparent="27" discriminator="" name="" />
-    <UML:Generalization isSpecification="false" child="247" visibility="public" xmi.id="248" tqparent="26" discriminator="" name="" />
-    <UML:Generalization isSpecification="false" child="255" visibility="public" xmi.id="256" tqparent="247" discriminator="" name="" />
-    <UML:Generalization isSpecification="false" child="350" visibility="public" xmi.id="351" tqparent="26" discriminator="" name="" />
-    <UML:Generalization isSpecification="false" child="358" visibility="public" xmi.id="359" tqparent="26" discriminator="" name="" />
-    <UML:Generalization isSpecification="false" child="369" visibility="public" xmi.id="370" tqparent="358" discriminator="" name="" />
-    <UML:Generalization isSpecification="false" child="575" visibility="public" xmi.id="576" tqparent="247" discriminator="" name="" />
-    <UML:Generalization isSpecification="false" child="669" visibility="public" xmi.id="670" tqparent="247" discriminator="" name="" />
-    <UML:Generalization isSpecification="false" child="863" visibility="public" xmi.id="866" tqparent="865" discriminator="" name="" />
-    <UML:Generalization isSpecification="false" child="879" visibility="public" xmi.id="880" tqparent="350" discriminator="" name="" />
-    <UML:Generalization isSpecification="false" child="1134" visibility="public" xmi.id="1135" tqparent="358" discriminator="" name="" />
-    <UML:Generalization isSpecification="false" child="1386" visibility="public" xmi.id="1387" tqparent="247" discriminator="" name="" />
-    <UML:Generalization isSpecification="false" child="1663" visibility="public" xmi.id="1664" tqparent="26" discriminator="" name="" />
-    <UML:Generalization isSpecification="false" child="1774" visibility="public" xmi.id="1775" tqparent="26" discriminator="" name="" />
-   </UML:Namespace.ownedElement>
-  </UML:Model>
- </XMI.content>
- <XMI.extensions xmi.extender="umbrello" >
-  <docsettings viewid="1" documentation="" uniqueid="12623" />
-  <diagrams>
-   <diagram snapgrid="1" showattsig="1" fillcolor="#ffffc0" linewidth="0" zoom="75" showgrid="1" showopsig="1" usefillcolor="1" snapx="10" canvaswidth="1661" snapy="10" showatts="1" xmi.id="1" documentation="" type="402" showops="1" showpackage="0" name="class diagram" localid="900000" showstereotype="0" showscope="1" snapcsgrid="0" font="Bitstream Vera Sans,11,-1,5,50,0,0,0,0,0" linecolor="#ff0000" canvasheight="1375" >
-    <widgets>
-     <classwidget usesdiagramfillcolour="1" width="201" showattsigs="601" usesdiagramusefillcolour="1" x="460" linecolour="none" y="68" showopsigs="601" linewidth="none" usesdiagramlinewidth="1" usesdiagramlinecolour="1" fillcolour="none" height="38" usefillcolor="1" showpubliconly="1" showattributes="0" isinstance="0" xmi.id="26" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Bitstream Vera Sans,11,-1,5,75,0,0,0,0,0" />
-     <classwidget usesdiagramfillcolour="1" width="178" showattsigs="601" usesdiagramusefillcolour="1" x="801" linecolour="none" y="761" showopsigs="601" linewidth="none" usesdiagramlinewidth="1" usesdiagramlinecolour="1" fillcolour="none" height="38" usefillcolor="1" showpubliconly="0" showattributes="0" isinstance="0" xmi.id="255" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Bitstream Vera Sans,11,-1,5,75,0,0,0,0,0" />
-     <classwidget usesdiagramfillcolour="1" width="176" showattsigs="601" usesdiagramusefillcolour="1" x="992" linecolour="none" y="761" showopsigs="601" linewidth="none" usesdiagramlinewidth="1" usesdiagramlinecolour="1" fillcolour="none" height="38" usefillcolor="1" showpubliconly="0" showattributes="0" isinstance="0" xmi.id="575" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Bitstream Vera Sans,11,-1,5,75,0,0,0,0,0" />
-     <classwidget usesdiagramfillcolour="1" width="199" showattsigs="601" usesdiagramusefillcolour="1" x="61" linecolour="none" y="292" showopsigs="601" linewidth="none" usesdiagramlinewidth="1" usesdiagramlinecolour="1" fillcolour="none" height="37" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="350" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Bitstream Vera Sans,11,-1,5,75,0,0,0,0,0" />
-     <classwidget usesdiagramfillcolour="1" width="193" showattsigs="601" usesdiagramusefillcolour="1" x="24" linecolour="none" y="421" showopsigs="601" linewidth="none" usesdiagramlinewidth="1" usesdiagramlinecolour="1" fillcolour="none" height="38" usefillcolor="1" showpubliconly="0" showattributes="0" isinstance="0" xmi.id="879" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Bitstream Vera Sans,11,-1,5,75,0,0,0,0,0" />
-     <classwidget usesdiagramfillcolour="1" width="168" showattsigs="601" usesdiagramusefillcolour="1" x="616" linecolour="none" y="761" showopsigs="601" linewidth="none" usesdiagramlinewidth="1" usesdiagramlinecolour="1" fillcolour="none" height="38" usefillcolor="1" showpubliconly="0" showattributes="0" isinstance="0" xmi.id="669" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Bitstream Vera Sans,11,-1,5,75,0,0,0,0,0" />
-     <classwidget usesdiagramfillcolour="1" width="163" showattsigs="601" usesdiagramusefillcolour="1" x="439" linecolour="none" y="761" showopsigs="601" linewidth="none" usesdiagramlinewidth="1" usesdiagramlinecolour="1" fillcolour="none" height="38" usefillcolor="1" showpubliconly="0" showattributes="0" isinstance="0" xmi.id="1386" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Bitstream Vera Sans,11,-1,5,75,0,0,0,0,0" />
-     <classwidget usesdiagramfillcolour="1" width="195" showattsigs="601" usesdiagramusefillcolour="1" x="123" linecolour="none" y="581" showopsigs="601" linewidth="none" usesdiagramlinewidth="1" usesdiagramlinecolour="1" fillcolour="none" height="38" usefillcolor="1" showpubliconly="0" showattributes="0" isinstance="0" xmi.id="1134" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Bitstream Vera Sans,11,-1,5,75,0,0,0,0,0" />
-     <classwidget usesdiagramfillcolour="1" width="201" showattsigs="601" usesdiagramusefillcolour="1" x="306" linecolour="none" y="288" showopsigs="601" linewidth="none" usesdiagramlinewidth="1" usesdiagramlinecolour="1" fillcolour="none" height="38" usefillcolor="1" showpubliconly="0" showattributes="0" isinstance="0" xmi.id="358" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Bitstream Vera Sans,11,-1,5,75,0,0,0,0,0" />
-     <classwidget usesdiagramfillcolour="1" width="191" showattsigs="601" usesdiagramusefillcolour="1" x="526" linecolour="none" y="287" showopsigs="601" linewidth="none" usesdiagramlinewidth="1" usesdiagramlinecolour="1" fillcolour="none" height="38" usefillcolor="1" showpubliconly="0" showattributes="0" isinstance="0" xmi.id="247" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Bitstream Vera Sans,11,-1,5,75,0,0,0,0,0" />
-     <classwidget usesdiagramfillcolour="1" width="163" showattsigs="601" usesdiagramusefillcolour="1" x="959" linecolour="none" y="291" showopsigs="601" linewidth="none" usesdiagramlinewidth="1" usesdiagramlinecolour="1" fillcolour="none" height="38" usefillcolor="1" showpubliconly="0" showattributes="0" isinstance="0" xmi.id="1663" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Bitstream Vera Sans,11,-1,5,75,0,0,0,0,0" />
-     <classwidget usesdiagramfillcolour="1" width="215" showattsigs="601" usesdiagramusefillcolour="1" x="733" linecolour="none" y="291" showopsigs="601" linewidth="none" usesdiagramlinewidth="1" usesdiagramlinecolour="1" fillcolour="none" height="38" usefillcolor="1" showpubliconly="0" showattributes="0" isinstance="0" xmi.id="1774" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Bitstream Vera Sans,11,-1,5,75,0,0,0,0,0" />
-     <classwidget usesdiagramfillcolour="1" width="160" showattsigs="601" usesdiagramusefillcolour="1" x="340" linecolour="none" y="581" showopsigs="601" linewidth="none" usesdiagramlinewidth="1" usesdiagramlinecolour="1" fillcolour="none" height="38" usefillcolor="1" showpubliconly="0" showattributes="0" isinstance="0" xmi.id="369" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Bitstream Vera Sans,11,-1,5,75,0,0,0,0,0" />
-    </widgets>
-    <messages/>
-    <associations>
-     <assocwidget totalcounta="2" indexa="1" totalcountb="6" indexb="1" widgetbid="26" widgetaid="350" xmi.id="351" >
-      <linepath>
-       <startpoint startx="160" starty="292" />
-       <endpoint endx="490" endy="106" />
-      </linepath>
-     </assocwidget>
-     <assocwidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="350" widgetaid="879" xmi.id="880" >
-      <linepath>
-       <startpoint startx="120" starty="421" />
-       <endpoint endx="160" endy="329" />
-      </linepath>
-     </assocwidget>
-     <assocwidget totalcounta="2" indexa="1" totalcountb="6" indexb="2" widgetbid="26" widgetaid="358" xmi.id="359" >
-      <linepath>
-       <startpoint startx="406" starty="288" />
-       <endpoint endx="530" endy="106" />
-      </linepath>
-     </assocwidget>
-     <assocwidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="358" widgetaid="1134" xmi.id="1135" >
-      <linepath>
-       <startpoint startx="220" starty="581" />
-       <endpoint endx="370" endy="326" />
-      </linepath>
-     </assocwidget>
-     <assocwidget totalcounta="2" indexa="1" totalcountb="6" indexb="3" widgetbid="26" widgetaid="247" xmi.id="248" >
-      <linepath>
-       <startpoint startx="621" starty="287" />
-       <endpoint endx="560" endy="106" />
-      </linepath>
-     </assocwidget>
-     <assocwidget totalcounta="2" indexa="1" totalcountb="5" indexb="3" widgetbid="247" widgetaid="255" xmi.id="256" >
-      <linepath>
-       <startpoint startx="890" starty="761" />
-       <endpoint endx="640" endy="325" />
-      </linepath>
-     </assocwidget>
-     <assocwidget totalcounta="2" indexa="1" totalcountb="5" indexb="4" widgetbid="247" widgetaid="575" xmi.id="576" >
-      <linepath>
-       <startpoint startx="1080" starty="761" />
-       <endpoint endx="680" endy="325" />
-      </linepath>
-     </assocwidget>
-     <assocwidget totalcounta="2" indexa="1" totalcountb="5" indexb="2" widgetbid="247" widgetaid="669" xmi.id="670" >
-      <linepath>
-       <startpoint startx="700" starty="761" />
-       <endpoint endx="600" endy="325" />
-      </linepath>
-     </assocwidget>
-     <assocwidget totalcounta="2" indexa="1" totalcountb="5" indexb="1" widgetbid="247" widgetaid="1386" xmi.id="1387" >
-      <linepath>
-       <startpoint startx="520" starty="761" />
-       <endpoint endx="560" endy="325" />
-      </linepath>
-     </assocwidget>
-     <assocwidget totalcounta="2" indexa="1" totalcountb="6" indexb="5" widgetbid="26" widgetaid="1663" xmi.id="1664" >
-      <linepath>
-       <startpoint startx="1040" starty="291" />
-       <endpoint endx="630" endy="106" />
-      </linepath>
-     </assocwidget>
-     <assocwidget totalcounta="2" indexa="1" totalcountb="6" indexb="4" widgetbid="26" widgetaid="1774" xmi.id="1775" >
-      <linepath>
-       <startpoint startx="840" starty="291" />
-       <endpoint endx="590" endy="106" />
-      </linepath>
-     </assocwidget>
-     <assocwidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="358" widgetaid="369" xmi.id="370" >
-      <linepath>
-       <startpoint startx="420" starty="581" />
-       <endpoint endx="440" endy="326" />
-      </linepath>
-     </assocwidget>
-    </associations>
-   </diagram>
-  </diagrams>
-  <listview>
-   <listitem open="1" type="800" label="Views" >
-    <listitem open="1" type="801" label="Logical View" >
-     <listitem open="0" type="813" id="36" />
-     <listitem open="0" type="813" id="864" >
-      <listitem open="0" type="813" id="865" />
-     </listitem>
-     <listitem open="0" type="813" id="27" />
-     <listitem open="0" type="813" id="26" >
-      <listitem open="0" type="813" id="237" />
-      <listitem open="0" type="814" id="227" />
-      <listitem open="0" type="814" id="228" />
-      <listitem open="0" type="814" id="229" />
-      <listitem open="0" type="814" id="230" />
-      <listitem open="0" type="814" id="231" />
-      <listitem open="0" type="814" id="232" />
-      <listitem open="0" type="814" id="233" />
-      <listitem open="0" type="814" id="234" />
-      <listitem open="0" type="814" id="235" />
-      <listitem open="0" type="814" id="236" />
-      <listitem open="0" type="814" id="238" />
-      <listitem open="0" type="814" id="245" />
-      <listitem open="0" type="814" id="246" />
-      <listitem open="0" type="815" id="31" />
-      <listitem open="0" type="815" id="40" />
-      <listitem open="0" type="815" id="41" />
-      <listitem open="0" type="815" id="43" />
-      <listitem open="0" type="815" id="45" />
-      <listitem open="0" type="815" id="46" />
-      <listitem open="0" type="815" id="47" />
-      <listitem open="0" type="815" id="48" />
-      <listitem open="0" type="815" id="50" />
-      <listitem open="0" type="815" id="51" />
-      <listitem open="0" type="815" id="52" />
-      <listitem open="0" type="815" id="58" />
-      <listitem open="0" type="815" id="61" />
-      <listitem open="0" type="815" id="62" />
-      <listitem open="0" type="815" id="64" />
-      <listitem open="0" type="815" id="65" />
-      <listitem open="0" type="815" id="67" />
-      <listitem open="0" type="815" id="68" />
-      <listitem open="0" type="815" id="70" />
-      <listitem open="0" type="815" id="71" />
-      <listitem open="0" type="815" id="73" />
-      <listitem open="0" type="815" id="74" />
-      <listitem open="0" type="815" id="82" />
-      <listitem open="0" type="815" id="88" />
-      <listitem open="0" type="815" id="93" />
-      <listitem open="0" type="815" id="99" />
-      <listitem open="0" type="815" id="102" />
-      <listitem open="0" type="815" id="105" />
-      <listitem open="0" type="815" id="108" />
-      <listitem open="0" type="815" id="113" />
-      <listitem open="0" type="815" id="122" />
-      <listitem open="0" type="815" id="131" />
-      <listitem open="0" type="815" id="134" />
-      <listitem open="0" type="815" id="137" />
-      <listitem open="0" type="815" id="141" />
-      <listitem open="0" type="815" id="145" />
-      <listitem open="0" type="815" id="149" />
-      <listitem open="0" type="815" id="155" />
-      <listitem open="0" type="815" id="160" />
-      <listitem open="0" type="815" id="164" />
-      <listitem open="0" type="815" id="170" />
-      <listitem open="0" type="815" id="181" />
-      <listitem open="0" type="815" id="188" />
-      <listitem open="0" type="815" id="190" />
-      <listitem open="0" type="815" id="206" />
-      <listitem open="0" type="815" id="217" />
-      <listitem open="0" type="815" id="223" />
-      <listitem open="0" type="815" id="224" />
-      <listitem open="0" type="815" id="239" />
-      <listitem open="0" type="815" id="242" />
-     </listitem>
-     <listitem open="0" type="813" id="255" >
-      <listitem open="0" type="814" id="349" />
-      <listitem open="0" type="815" id="259" />
-      <listitem open="0" type="815" id="260" />
-      <listitem open="0" type="815" id="261" />
-      <listitem open="0" type="815" id="265" />
-      <listitem open="0" type="815" id="270" />
-      <listitem open="0" type="815" id="273" />
-      <listitem open="0" type="815" id="277" />
-      <listitem open="0" type="815" id="282" />
-      <listitem open="0" type="815" id="285" />
-      <listitem open="0" type="815" id="288" />
-      <listitem open="0" type="815" id="291" />
-      <listitem open="0" type="815" id="296" />
-      <listitem open="0" type="815" id="297" />
-      <listitem open="0" type="815" id="298" />
-      <listitem open="0" type="815" id="299" />
-      <listitem open="0" type="815" id="300" />
-      <listitem open="0" type="815" id="301" />
-      <listitem open="0" type="815" id="304" />
-      <listitem open="0" type="815" id="307" />
-      <listitem open="0" type="815" id="315" />
-      <listitem open="0" type="815" id="321" />
-      <listitem open="0" type="815" id="329" />
-      <listitem open="0" type="815" id="337" />
-      <listitem open="0" type="815" id="348" />
-     </listitem>
-     <listitem open="0" type="813" id="575" >
-      <listitem open="0" type="814" id="660" />
-      <listitem open="0" type="814" id="661" />
-      <listitem open="0" type="814" id="662" />
-      <listitem open="0" type="814" id="663" />
-      <listitem open="0" type="814" id="664" />
-      <listitem open="0" type="814" id="665" />
-      <listitem open="0" type="814" id="666" />
-      <listitem open="0" type="814" id="667" />
-      <listitem open="0" type="814" id="668" />
-      <listitem open="0" type="815" id="579" />
-      <listitem open="0" type="815" id="580" />
-      <listitem open="0" type="815" id="581" />
-      <listitem open="0" type="815" id="585" />
-      <listitem open="0" type="815" id="590" />
-      <listitem open="0" type="815" id="593" />
-      <listitem open="0" type="815" id="597" />
-      <listitem open="0" type="815" id="601" />
-      <listitem open="0" type="815" id="606" />
-      <listitem open="0" type="815" id="609" />
-      <listitem open="0" type="815" id="612" />
-      <listitem open="0" type="815" id="617" />
-      <listitem open="0" type="815" id="618" />
-      <listitem open="0" type="815" id="619" />
-      <listitem open="0" type="815" id="620" />
-      <listitem open="0" type="815" id="621" />
-      <listitem open="0" type="815" id="622" />
-      <listitem open="0" type="815" id="625" />
-      <listitem open="0" type="815" id="628" />
-      <listitem open="0" type="815" id="636" />
-      <listitem open="0" type="815" id="639" />
-      <listitem open="0" type="815" id="650" />
-      <listitem open="0" type="815" id="651" />
-      <listitem open="0" type="815" id="652" />
-     </listitem>
-     <listitem open="0" type="813" id="153" />
-     <listitem open="0" type="813" id="201" />
-     <listitem open="0" type="813" id="69" />
-     <listitem open="0" type="813" id="350" >
-      <listitem open="0" type="815" id="354" />
-     </listitem>
-     <listitem open="0" type="813" id="879" >
-      <listitem open="0" type="814" id="1125" />
-      <listitem open="0" type="814" id="1126" />
-      <listitem open="0" type="814" id="1127" />
-      <listitem open="0" type="814" id="1128" />
-      <listitem open="0" type="814" id="1129" />
-      <listitem open="0" type="815" id="883" />
-      <listitem open="0" type="815" id="884" />
-      <listitem open="0" type="815" id="885" />
-      <listitem open="0" type="815" id="891" />
-      <listitem open="0" type="815" id="898" />
-      <listitem open="0" type="815" id="902" />
-      <listitem open="0" type="815" id="907" />
-      <listitem open="0" type="815" id="910" />
-      <listitem open="0" type="815" id="914" />
-      <listitem open="0" type="815" id="918" />
-      <listitem open="0" type="815" id="923" />
-      <listitem open="0" type="815" id="926" />
-      <listitem open="0" type="815" id="929" />
-      <listitem open="0" type="815" id="932" />
-      <listitem open="0" type="815" id="937" />
-      <listitem open="0" type="815" id="938" />
-      <listitem open="0" type="815" id="939" />
-      <listitem open="0" type="815" id="940" />
-      <listitem open="0" type="815" id="941" />
-      <listitem open="0" type="815" id="942" />
-      <listitem open="0" type="815" id="945" />
-      <listitem open="0" type="815" id="948" />
-      <listitem open="0" type="815" id="956" />
-      <listitem open="0" type="815" id="957" />
-      <listitem open="0" type="815" id="963" />
-      <listitem open="0" type="815" id="974" />
-      <listitem open="0" type="815" id="984" />
-      <listitem open="0" type="815" id="994" />
-      <listitem open="0" type="815" id="1004" />
-      <listitem open="0" type="815" id="1014" />
-      <listitem open="0" type="815" id="1024" />
-      <listitem open="0" type="815" id="1034" />
-      <listitem open="0" type="815" id="1044" />
-      <listitem open="0" type="815" id="1054" />
-      <listitem open="0" type="815" id="1064" />
-      <listitem open="0" type="815" id="1074" />
-      <listitem open="0" type="815" id="1084" />
-      <listitem open="0" type="815" id="1094" />
-      <listitem open="0" type="815" id="1104" />
-      <listitem open="0" type="815" id="1114" />
-     </listitem>
-     <listitem open="0" type="813" id="1133" />
-     <listitem open="0" type="813" id="1124" />
-     <listitem open="0" type="813" id="669" >
-      <listitem open="0" type="814" id="860" />
-      <listitem open="0" type="814" id="861" />
-      <listitem open="0" type="814" id="862" />
-      <listitem open="0" type="815" id="673" />
-      <listitem open="0" type="815" id="674" />
-      <listitem open="0" type="815" id="675" />
-      <listitem open="0" type="815" id="679" />
-      <listitem open="0" type="815" id="683" />
-      <listitem open="0" type="815" id="687" />
-      <listitem open="0" type="815" id="692" />
-      <listitem open="0" type="815" id="695" />
-      <listitem open="0" type="815" id="699" />
-      <listitem open="0" type="815" id="703" />
-      <listitem open="0" type="815" id="708" />
-      <listitem open="0" type="815" id="711" />
-      <listitem open="0" type="815" id="714" />
-      <listitem open="0" type="815" id="717" />
-      <listitem open="0" type="815" id="722" />
-      <listitem open="0" type="815" id="723" />
-      <listitem open="0" type="815" id="724" />
-      <listitem open="0" type="815" id="725" />
-      <listitem open="0" type="815" id="726" />
-      <listitem open="0" type="815" id="727" />
-      <listitem open="0" type="815" id="730" />
-      <listitem open="0" type="815" id="733" />
-      <listitem open="0" type="815" id="741" />
-      <listitem open="0" type="815" id="747" />
-      <listitem open="0" type="815" id="758" />
-      <listitem open="0" type="815" id="759" />
-      <listitem open="0" type="815" id="769" />
-      <listitem open="0" type="815" id="779" />
-      <listitem open="0" type="815" id="789" />
-      <listitem open="0" type="815" id="799" />
-      <listitem open="0" type="815" id="809" />
-      <listitem open="0" type="815" id="819" />
-      <listitem open="0" type="815" id="829" />
-      <listitem open="0" type="815" id="839" />
-      <listitem open="0" type="815" id="849" />
-     </listitem>
-     <listitem open="0" type="813" id="859" />
-     <listitem open="0" type="813" id="33" />
-     <listitem open="0" type="813" id="12" />
-     <listitem open="0" type="813" id="13" />
-     <listitem open="0" type="813" id="14" />
-     <listitem open="0" type="813" id="18" />
-     <listitem open="0" type="813" id="15" />
-     <listitem open="0" type="813" id="80" />
-     <listitem open="0" type="813" id="1386" >
-      <listitem open="0" type="814" id="1638" />
-      <listitem open="0" type="815" id="1390" />
-      <listitem open="0" type="815" id="1391" />
-      <listitem open="0" type="815" id="1392" />
-      <listitem open="0" type="815" id="1398" />
-      <listitem open="0" type="815" id="1404" />
-      <listitem open="0" type="815" id="1408" />
-      <listitem open="0" type="815" id="1413" />
-      <listitem open="0" type="815" id="1416" />
-      <listitem open="0" type="815" id="1420" />
-      <listitem open="0" type="815" id="1424" />
-      <listitem open="0" type="815" id="1429" />
-      <listitem open="0" type="815" id="1432" />
-      <listitem open="0" type="815" id="1435" />
-      <listitem open="0" type="815" id="1438" />
-      <listitem open="0" type="815" id="1443" />
-      <listitem open="0" type="815" id="1451" />
-      <listitem open="0" type="815" id="1452" />
-      <listitem open="0" type="815" id="1453" />
-      <listitem open="0" type="815" id="1454" />
-      <listitem open="0" type="815" id="1455" />
-      <listitem open="0" type="815" id="1456" />
-      <listitem open="0" type="815" id="1459" />
-      <listitem open="0" type="815" id="1462" />
-      <listitem open="0" type="815" id="1470" />
-      <listitem open="0" type="815" id="1471" />
-      <listitem open="0" type="815" id="1473" />
-      <listitem open="0" type="815" id="1478" />
-      <listitem open="0" type="815" id="1485" />
-      <listitem open="0" type="815" id="1487" />
-      <listitem open="0" type="815" id="1498" />
-      <listitem open="0" type="815" id="1508" />
-      <listitem open="0" type="815" id="1518" />
-      <listitem open="0" type="815" id="1528" />
-      <listitem open="0" type="815" id="1538" />
-      <listitem open="0" type="815" id="1548" />
-      <listitem open="0" type="815" id="1558" />
-      <listitem open="0" type="815" id="1568" />
-      <listitem open="0" type="815" id="1578" />
-      <listitem open="0" type="815" id="1588" />
-      <listitem open="0" type="815" id="1598" />
-      <listitem open="0" type="815" id="1608" />
-      <listitem open="0" type="815" id="1618" />
-      <listitem open="0" type="815" id="1628" />
-     </listitem>
-     <listitem open="0" type="813" id="1134" >
-      <listitem open="0" type="814" id="1138" />
-      <listitem open="0" type="814" id="1139" />
-      <listitem open="0" type="814" id="1381" />
-      <listitem open="0" type="814" id="1382" />
-      <listitem open="0" type="814" id="1383" />
-      <listitem open="0" type="814" id="1384" />
-      <listitem open="0" type="814" id="1385" />
-      <listitem open="0" type="815" id="1140" />
-      <listitem open="0" type="815" id="1141" />
-      <listitem open="0" type="815" id="1142" />
-      <listitem open="0" type="815" id="1148" />
-      <listitem open="0" type="815" id="1154" />
-      <listitem open="0" type="815" id="1158" />
-      <listitem open="0" type="815" id="1163" />
-      <listitem open="0" type="815" id="1166" />
-      <listitem open="0" type="815" id="1170" />
-      <listitem open="0" type="815" id="1174" />
-      <listitem open="0" type="815" id="1179" />
-      <listitem open="0" type="815" id="1182" />
-      <listitem open="0" type="815" id="1185" />
-      <listitem open="0" type="815" id="1188" />
-      <listitem open="0" type="815" id="1193" />
-      <listitem open="0" type="815" id="1194" />
-      <listitem open="0" type="815" id="1195" />
-      <listitem open="0" type="815" id="1196" />
-      <listitem open="0" type="815" id="1197" />
-      <listitem open="0" type="815" id="1198" />
-      <listitem open="0" type="815" id="1201" />
-      <listitem open="0" type="815" id="1204" />
-      <listitem open="0" type="815" id="1212" />
-      <listitem open="0" type="815" id="1213" />
-      <listitem open="0" type="815" id="1219" />
-      <listitem open="0" type="815" id="1230" />
-      <listitem open="0" type="815" id="1240" />
-      <listitem open="0" type="815" id="1250" />
-      <listitem open="0" type="815" id="1260" />
-      <listitem open="0" type="815" id="1270" />
-      <listitem open="0" type="815" id="1280" />
-      <listitem open="0" type="815" id="1290" />
-      <listitem open="0" type="815" id="1300" />
-      <listitem open="0" type="815" id="1310" />
-      <listitem open="0" type="815" id="1320" />
-      <listitem open="0" type="815" id="1330" />
-      <listitem open="0" type="815" id="1340" />
-      <listitem open="0" type="815" id="1350" />
-      <listitem open="0" type="815" id="1360" />
-      <listitem open="0" type="815" id="1370" />
-     </listitem>
-     <listitem open="0" type="813" id="1380" />
-     <listitem open="0" type="813" id="358" >
-      <listitem open="0" type="814" id="363" />
-      <listitem open="0" type="814" id="364" />
-      <listitem open="0" type="815" id="365" />
-     </listitem>
-     <listitem open="0" type="813" id="247" >
-      <listitem open="0" type="815" id="251" />
-     </listitem>
-     <listitem open="0" type="813" id="1663" >
-      <listitem open="0" type="814" id="1755" />
-      <listitem open="0" type="814" id="1757" />
-      <listitem open="0" type="814" id="1758" />
-      <listitem open="0" type="814" id="1760" />
-      <listitem open="0" type="814" id="1761" />
-      <listitem open="0" type="814" id="1762" />
-      <listitem open="0" type="814" id="1763" />
-      <listitem open="0" type="815" id="1667" />
-      <listitem open="0" type="815" id="1668" />
-      <listitem open="0" type="815" id="1669" />
-      <listitem open="0" type="815" id="1673" />
-      <listitem open="0" type="815" id="1678" />
-      <listitem open="0" type="815" id="1681" />
-      <listitem open="0" type="815" id="1685" />
-      <listitem open="0" type="815" id="1690" />
-      <listitem open="0" type="815" id="1693" />
-      <listitem open="0" type="815" id="1696" />
-      <listitem open="0" type="815" id="1701" />
-      <listitem open="0" type="815" id="1702" />
-      <listitem open="0" type="815" id="1703" />
-      <listitem open="0" type="815" id="1704" />
-      <listitem open="0" type="815" id="1705" />
-      <listitem open="0" type="815" id="1706" />
-      <listitem open="0" type="815" id="1707" />
-      <listitem open="0" type="815" id="1710" />
-      <listitem open="0" type="815" id="1713" />
-      <listitem open="0" type="815" id="1721" />
-      <listitem open="0" type="815" id="1724" />
-      <listitem open="0" type="815" id="1730" />
-      <listitem open="0" type="815" id="1731" />
-      <listitem open="0" type="815" id="1733" />
-      <listitem open="0" type="815" id="1734" />
-      <listitem open="0" type="815" id="1735" />
-      <listitem open="0" type="815" id="1746" />
-      <listitem open="0" type="815" id="1747" />
-      <listitem open="0" type="815" id="1751" />
-     </listitem>
-     <listitem open="0" type="813" id="1774" >
-      <listitem open="0" type="814" id="1895" />
-      <listitem open="0" type="815" id="1778" />
-      <listitem open="0" type="815" id="1779" />
-      <listitem open="0" type="815" id="1780" />
-      <listitem open="0" type="815" id="1784" />
-      <listitem open="0" type="815" id="1789" />
-      <listitem open="0" type="815" id="1792" />
-      <listitem open="0" type="815" id="1796" />
-      <listitem open="0" type="815" id="1801" />
-      <listitem open="0" type="815" id="1804" />
-      <listitem open="0" type="815" id="1807" />
-      <listitem open="0" type="815" id="1808" />
-      <listitem open="0" type="815" id="1809" />
-      <listitem open="0" type="815" id="1810" />
-      <listitem open="0" type="815" id="1811" />
-      <listitem open="0" type="815" id="1812" />
-      <listitem open="0" type="815" id="1813" />
-      <listitem open="0" type="815" id="1816" />
-      <listitem open="0" type="815" id="1819" />
-      <listitem open="0" type="815" id="1827" />
-      <listitem open="0" type="815" id="1830" />
-      <listitem open="0" type="815" id="1836" />
-      <listitem open="0" type="815" id="1841" />
-      <listitem open="0" type="815" id="1845" />
-      <listitem open="0" type="815" id="1846" />
-      <listitem open="0" type="815" id="1857" />
-      <listitem open="0" type="815" id="1865" />
-      <listitem open="0" type="815" id="1875" />
-      <listitem open="0" type="815" id="1885" />
-     </listitem>
-     <listitem open="0" type="813" id="369" >
-      <listitem open="0" type="813" id="373" >
-       <listitem open="0" type="814" id="374" />
-       <listitem open="0" type="814" id="375" />
-       <listitem open="0" type="814" id="376" />
-       <listitem open="0" type="814" id="377" />
-       <listitem open="0" type="814" id="1130" />
-       <listitem open="0" type="814" id="1131" />
-       <listitem open="0" type="814" id="1132" />
-      </listitem>
-      <listitem open="0" type="814" id="566" />
-      <listitem open="0" type="814" id="567" />
-      <listitem open="0" type="814" id="568" />
-      <listitem open="0" type="814" id="570" />
-      <listitem open="0" type="814" id="571" />
-      <listitem open="0" type="814" id="572" />
-      <listitem open="0" type="814" id="573" />
-      <listitem open="0" type="814" id="574" />
-      <listitem open="0" type="815" id="378" />
-      <listitem open="0" type="815" id="379" />
-      <listitem open="0" type="815" id="380" />
-      <listitem open="0" type="815" id="384" />
-      <listitem open="0" type="815" id="389" />
-      <listitem open="0" type="815" id="392" />
-      <listitem open="0" type="815" id="396" />
-      <listitem open="0" type="815" id="400" />
-      <listitem open="0" type="815" id="405" />
-      <listitem open="0" type="815" id="408" />
-      <listitem open="0" type="815" id="411" />
-      <listitem open="0" type="815" id="414" />
-      <listitem open="0" type="815" id="419" />
-      <listitem open="0" type="815" id="420" />
-      <listitem open="0" type="815" id="421" />
-      <listitem open="0" type="815" id="422" />
-      <listitem open="0" type="815" id="423" />
-      <listitem open="0" type="815" id="424" />
-      <listitem open="0" type="815" id="427" />
-      <listitem open="0" type="815" id="430" />
-      <listitem open="0" type="815" id="438" />
-      <listitem open="0" type="815" id="444" />
-      <listitem open="0" type="815" id="455" />
-      <listitem open="0" type="815" id="456" />
-      <listitem open="0" type="815" id="466" />
-      <listitem open="0" type="815" id="476" />
-      <listitem open="0" type="815" id="486" />
-      <listitem open="0" type="815" id="496" />
-      <listitem open="0" type="815" id="506" />
-      <listitem open="0" type="815" id="516" />
-      <listitem open="0" type="815" id="526" />
-      <listitem open="0" type="815" id="536" />
-      <listitem open="0" type="815" id="546" />
-      <listitem open="0" type="815" id="556" />
-     </listitem>
-     <listitem open="0" type="813" id="75" />
-     <listitem open="0" type="813" id="121" />
-     <listitem open="0" type="813" id="1759" />
-     <listitem open="0" type="813" id="870" />
-     <listitem open="0" type="813" id="11" />
-     <listitem open="0" type="813" id="57" />
-     <listitem open="0" type="813" id="226" />
-     <listitem open="0" type="813" id="84" />
-     <listitem open="0" type="813" id="44" />
-     <listitem open="0" type="813" id="163" />
-     <listitem open="0" type="813" id="150" />
-     <listitem open="0" type="813" id="20" />
-     <listitem open="0" type="813" id="53" />
-     <listitem open="0" type="813" id="863" >
-      <listitem open="0" type="814" id="878" />
-      <listitem open="0" type="815" id="869" />
-      <listitem open="0" type="815" id="877" />
-     </listitem>
-     <listitem open="0" type="813" id="1641" />
-     <listitem open="0" type="813" id="1639" />
-     <listitem open="0" type="813" id="1640" />
-     <listitem open="0" type="813" id="1651" >
-      <listitem open="0" type="814" id="1652" />
-      <listitem open="0" type="814" id="1653" />
-     </listitem>
-     <listitem open="0" type="813" id="1642" >
-      <listitem open="0" type="814" id="1643" />
-      <listitem open="0" type="814" id="1644" />
-      <listitem open="0" type="814" id="1645" />
-      <listitem open="0" type="814" id="1646" />
-      <listitem open="0" type="814" id="1647" />
-      <listitem open="0" type="814" id="1648" />
-      <listitem open="0" type="814" id="1649" />
-      <listitem open="0" type="814" id="1650" />
-     </listitem>
-     <listitem open="0" type="813" id="1654" >
-      <listitem open="0" type="814" id="1655" />
-      <listitem open="0" type="814" id="1656" />
-      <listitem open="0" type="814" id="1657" />
-      <listitem open="0" type="814" id="1658" />
-      <listitem open="0" type="814" id="1659" />
-      <listitem open="0" type="814" id="1660" />
-      <listitem open="0" type="814" id="1661" />
-      <listitem open="0" type="814" id="1662" />
-     </listitem>
-     <listitem open="0" type="813" id="49" />
-     <listitem open="0" type="813" id="222" />
-     <listitem open="0" type="813" id="175" />
-     <listitem open="0" type="813" id="38" />
-     <listitem open="0" type="813" id="25" />
-     <listitem open="0" type="813" id="17" >
-      <listitem open="0" type="814" id="19" />
-      <listitem open="0" type="814" id="21" />
-      <listitem open="0" type="814" id="22" />
-      <listitem open="0" type="814" id="23" />
-      <listitem open="0" type="814" id="24" />
-     </listitem>
-     <listitem open="0" type="813" id="42" />
-     <listitem open="0" type="813" id="72" />
-     <listitem open="1" type="817" id="12050" />
-     <listitem open="0" type="818" id="1764" >
-      <listitem open="0" type="813" id="1771" />
-      <listitem open="0" type="813" id="1772" />
-      <listitem open="0" type="829" id="1773" />
-      <listitem open="0" type="831" id="1765" />
-     </listitem>
-     <listitem open="0" type="830" label="Datatypes" >
-      <listitem open="0" type="829" id="244" />
-      <listitem open="0" type="829" id="126" />
-      <listitem open="0" type="829" id="154" />
-      <listitem open="0" type="829" id="109" />
-      <listitem open="0" type="829" id="90" />
-      <listitem open="0" type="829" id="871" />
-      <listitem open="0" type="829" id="96" />
-      <listitem open="0" type="829" id="173" />
-      <listitem open="0" type="829" id="151" />
-      <listitem open="0" type="829" id="1756" />
-      <listitem open="0" type="829" id="78" />
-      <listitem open="0" type="829" id="171" />
-      <listitem open="0" type="829" id="1753" />
-      <listitem open="0" type="829" id="1749" />
-      <listitem open="1" type="829" id="5" />
-      <listitem open="1" type="829" id="8" />
-      <listitem open="1" type="829" id="4" />
-      <listitem open="0" type="829" id="240" />
-      <listitem open="0" type="829" id="202" />
-      <listitem open="0" type="829" id="34" />
-      <listitem open="0" type="829" id="76" />
-      <listitem open="0" type="829" id="875" />
-      <listitem open="0" type="829" id="362" />
-      <listitem open="0" type="829" id="569" />
-      <listitem open="0" type="829" id="54" />
-      <listitem open="0" type="829" id="165" />
-      <listitem open="0" type="829" id="873" />
-      <listitem open="1" type="829" id="7" />
-      <listitem open="1" type="829" id="6" />
-      <listitem open="0" type="829" id="893" />
-      <listitem open="1" type="829" id="2" />
-      <listitem open="1" type="829" id="9" />
-      <listitem open="1" type="829" id="10" />
-      <listitem open="0" type="829" id="32" />
-     </listitem>
-    </listitem>
-    <listitem open="1" type="802" label="Use Case View" />
-    <listitem open="1" type="821" label="Component View" />
-    <listitem open="1" type="827" label="Deployment View" />
-    <listitem open="1" type="836" label="Entity Relationship Model" />
-   </listitem>
-  </listview>
-  <codegeneration>
-   <codegenerator language="Java" >
-    <codedocument writeOutCode="false" package="" id="ANTDOC" fileExt=".xml" fileName="build" >
-     <textblocks>
-      <codeblockwithcomments tag="xmlDecl" text="&lt;?xml version=&quot;1.0&quot;?>" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <xmlelementblock nodeName="project" tag="projectDecl" canDelete="false" >
-       <header>
-        <codecomment tag="" text="Java ANT build document" />
-       </header>
-       <textblocks/>
-      </xmlelementblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-    </codedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="2" tqparent_class="2" fileExt=".java" fileName="int" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="2" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Int&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Int ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="4" tqparent_class="4" fileExt=".java" fileName="char" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="4" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Char&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Char ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="5" tqparent_class="5" fileExt=".java" fileName="boolean" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="5" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Boolean&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Boolean ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="6" tqparent_class="6" fileExt=".java" fileName="float" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="6" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Float&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Float ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="7" tqparent_class="7" fileExt=".java" fileName="double" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="7" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Double&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Double ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="8" tqparent_class="8" fileExt=".java" fileName="byte" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="8" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Byte&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Byte ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="9" tqparent_class="9" fileExt=".java" fileName="short" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="9" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Short&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Short ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="10" tqparent_class="10" fileExt=".java" fileName="string" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="10" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class String&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public String ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="11" tqparent_class="11" fileExt=".java" fileName="QPainter" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="11" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class QPainter&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public QPainter ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="12" tqparent_class="12" fileExt=".java" fileName="KisIteratorPixel" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="12" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisIteratorPixel&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisIteratorPixel ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="13" tqparent_class="13" fileExt=".java" fileName="KisPixel" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="13" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisPixel&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisPixel ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="14" tqparent_class="14" fileExt=".java" fileName="KisPixelRO" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="14" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisPixelRO&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisPixelRO ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="15" tqparent_class="15" fileExt=".java" fileName="KisProfilePair" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="15" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisProfilePair&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisProfilePair ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="17" tqparent_class="17" fileExt=".java" fileName="transform" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import KisProfile;&amp;#010;import Q_UINT32;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="17" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Transform&amp;#010;// This would be better, I guess." />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="19" tag="tblock_0" canDelete="false" indentLevel="1" text="public KisProfile srcProfile;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="21" tag="tblock_2" canDelete="false" indentLevel="1" text="public Q_UINT32 srcCmType;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="22" tag="tblock_5" canDelete="false" indentLevel="1" text="public KisProfile dstProfile;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="23" tag="tblock_8" canDelete="false" indentLevel="1" text="public Q_UINT32 dstType;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="24" tag="tblock_11" canDelete="false" indentLevel="1" text="public Q_UINT32 renderIntent;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Transform ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="19" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="19" text="return srcProfile;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of srcProfile&amp;#010;&amp;#010;@return the value of srcProfile" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="19" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="19" text="srcProfile = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of srcProfile&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="21" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="21" text="return srcCmType;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of srcCmType&amp;#010;&amp;#010;@return the value of srcCmType" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="21" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="21" text="srcCmType = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of srcCmType&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="22" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="22" text="return dstProfile;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of dstProfile&amp;#010;&amp;#010;@return the value of dstProfile" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="22" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="22" text="dstProfile = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of dstProfile&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="23" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="23" text="return dstType;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of dstType&amp;#010;&amp;#010;@return the value of dstType" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="23" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="23" text="dstType = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of dstType&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="24" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="24" text="return renderIntent;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of renderIntent&amp;#010;&amp;#010;@return the value of renderIntent" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="24" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="24" text="renderIntent = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of renderIntent&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="19" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="19" tag="tblock_0" canDelete="false" indentLevel="1" text="public KisProfile srcProfile;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="19" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="19" text="return srcProfile;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of srcProfile&amp;#010;&amp;#010;@return the value of srcProfile" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="19" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="19" text="srcProfile = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of srcProfile&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="21" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="21" tag="tblock_2" canDelete="false" indentLevel="1" text="public Q_UINT32 srcCmType;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="21" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="21" text="return srcCmType;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of srcCmType&amp;#010;&amp;#010;@return the value of srcCmType" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="21" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="21" text="srcCmType = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of srcCmType&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="22" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="22" tag="tblock_5" canDelete="false" indentLevel="1" text="public KisProfile dstProfile;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="22" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="22" text="return dstProfile;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of dstProfile&amp;#010;&amp;#010;@return the value of dstProfile" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="22" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="22" text="dstProfile = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of dstProfile&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="23" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="23" tag="tblock_8" canDelete="false" indentLevel="1" text="public Q_UINT32 dstType;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="23" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="23" text="return dstType;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of dstType&amp;#010;&amp;#010;@return the value of dstType" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="23" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="23" text="dstType = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of dstType&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="24" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="24" tag="tblock_11" canDelete="false" indentLevel="1" text="public Q_UINT32 renderIntent;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="24" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="24" text="return renderIntent;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of renderIntent&amp;#010;&amp;#010;@return the value of renderIntent" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="24" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="24" text="renderIntent = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of renderIntent&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="18" tqparent_class="18" fileExt=".java" fileName="KisProfile" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="18" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisProfile&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisProfile ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="20" tqparent_class="20" fileExt=".java" fileName="Q_UINT32" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="20" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Q_UINT32&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Q_UINT32 ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="25" tqparent_class="25" fileExt=".java" fileName="struct KisColorAdjustment" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="25" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Struct KisColorAdjustment&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Struct KisColorAdjustment ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="26" tqparent_class="26" fileExt=".java" fileName="KisAbstractColorSpace" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import DWORD;&amp;#010;import icColorSpaceSignature;&amp;#010;import vKisChannelInfoSP;&amp;#010;import Q_INT32;&amp;#010;import bool;&amp;#010;import QString;&amp;#010;import Q_UINT32;&amp;#010;import KisID;&amp;#010;import KisCompositeOpList;&amp;#010;import vKisProfileSP;&amp;#010;import KisProfileSP;&amp;#010;import QUANTUM;&amp;#010;import KisPixelRO;&amp;#010;import KisPixel;&amp;#010;import QImage;&amp;#010;import Q_UINT8;&amp;#010;import Q_INT8;&amp;#010;import enumChannelFlags;&amp;#010;import cmsHTRANSFORM;&amp;#010;import QStringList;&amp;#010;import KisAbstractColorSpace.TransformMap;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="26" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisAbstractColorSpace&amp;#010;A colorspace strategy is the definition of a certain color model&amp;#010;in Krita." />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="227" tag="tblock_0" canDelete="false" indentLevel="1" text="protected QStringList m_profileFilenames;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="228" tag="tblock_2" canDelete="false" indentLevel="1" text="protected KisProfileSP m_defaultProfile;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="229" tag="tblock_5" canDelete="false" indentLevel="1" text="protected Q_UINT8* m_qcolordata;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="// A small buffer for conversion from and to qcolor." />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="230" tag="tblock_8" canDelete="false" indentLevel="1" text="protected Q_INT32 m_alphaPos;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="231" tag="tblock_11" canDelete="false" indentLevel="1" text="protected Q_INT32 m_alphaSize;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="232" tag="tblock_14" canDelete="false" indentLevel="1" text="protected cmsHTRANSFORM m_defaultToRGB;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="233" tag="tblock_17" canDelete="false" indentLevel="1" text="protected cmsHTRANSFORM m_defaultFromRGB;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="234" tag="tblock_20" canDelete="false" indentLevel="1" text="private KisID m_id;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="235" tag="tblock_23" canDelete="false" indentLevel="1" text="private DWORD m_cmType;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="// The colorspace type as defined by littlecms" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="236" tag="tblock_26" canDelete="false" indentLevel="1" text="private icColorSpaceSignature m_colorSpaceSignature;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="// The colorspace signature as defined in icm/icc files" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="238" tag="tblock_29" canDelete="false" indentLevel="1" text="private TransformMap m_transforms;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="// Cache for existing transforms" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="245" tag="tblock_32" canDelete="false" indentLevel="1" text="private Q_UINT32 m_cachesize;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="246" tag="tblock_35" canDelete="false" indentLevel="1" text="private Q_UINT8* m_conversionCache;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisAbstractColorSpace ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="227" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="227" text="return m_profileFilenames;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_profileFilenames&amp;#010;&amp;#010;@return the value of m_profileFilenames" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="227" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="227" text="m_profileFilenames = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_profileFilenames&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="228" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="228" text="return m_defaultProfile;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultProfile&amp;#010;&amp;#010;@return the value of m_defaultProfile" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="228" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="228" text="m_defaultProfile = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultProfile&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="229" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="229" text="return m_qcolordata;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="// A small buffer for conversion from and to qcolor." />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="229" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="229" text="m_qcolordata = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="// A small buffer for conversion from and to qcolor." />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="230" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="230" text="return m_alphaPos;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_alphaPos&amp;#010;&amp;#010;@return the value of m_alphaPos" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="230" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="230" text="m_alphaPos = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_alphaPos&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="231" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="231" text="return m_alphaSize;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_alphaSize&amp;#010;&amp;#010;@return the value of m_alphaSize" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="231" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="231" text="m_alphaSize = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_alphaSize&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="232" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="232" text="return m_defaultToRGB;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultToRGB&amp;#010;&amp;#010;@return the value of m_defaultToRGB" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="232" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="232" text="m_defaultToRGB = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultToRGB&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="233" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="233" text="return m_defaultFromRGB;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultFromRGB&amp;#010;&amp;#010;@return the value of m_defaultFromRGB" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="233" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="233" text="m_defaultFromRGB = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultFromRGB&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="234" tag="hblock_tag_21" canDelete="false" indentLevel="1" classfield_id="234" text="return m_id;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_id&amp;#010;&amp;#010;@return the value of m_id" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="234" tag="hblock_tag_22" canDelete="false" indentLevel="1" classfield_id="234" text="m_id = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_id&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="235" tag="hblock_tag_24" canDelete="false" indentLevel="1" classfield_id="235" text="return m_cmType;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="// The colorspace type as defined by littlecms" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="235" tag="hblock_tag_25" canDelete="false" indentLevel="1" classfield_id="235" text="m_cmType = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="// The colorspace type as defined by littlecms" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="236" tag="hblock_tag_27" canDelete="false" indentLevel="1" classfield_id="236" text="return m_colorSpaceSignature;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="// The colorspace signature as defined in icm/icc files" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="236" tag="hblock_tag_28" canDelete="false" indentLevel="1" classfield_id="236" text="m_colorSpaceSignature = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="// The colorspace signature as defined in icm/icc files" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="238" tag="hblock_tag_30" canDelete="false" indentLevel="1" classfield_id="238" text="return m_transforms;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="// Cache for existing transforms" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="238" tag="hblock_tag_31" canDelete="false" indentLevel="1" classfield_id="238" text="m_transforms = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="// Cache for existing transforms" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="245" tag="hblock_tag_33" canDelete="false" indentLevel="1" classfield_id="245" text="return m_cachesize;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_cachesize&amp;#010;&amp;#010;@return the value of m_cachesize" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="245" tag="hblock_tag_34" canDelete="false" indentLevel="1" classfield_id="245" text="m_cachesize = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_cachesize&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="246" tag="hblock_tag_36" canDelete="false" indentLevel="1" classfield_id="246" text="return m_conversionCache;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_conversionCache&amp;#010;&amp;#010;@return the value of m_conversionCache" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="246" tag="hblock_tag_37" canDelete="false" indentLevel="1" classfield_id="246" text="m_conversionCache = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_conversionCache&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="31" tag="operation_31" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Create a new colorspace strategy.&amp;#010;&amp;#010;@param id The Krita identification of this color model.&amp;#010;@param cmType The littlecms colorstrategy type we wrap.&amp;#010;@param colorSpaceSignature The icc signature for the colorspace we are." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="40" tag="operation_40" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="41" tag="operation_41" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="//========== Channels =====================================================//// Return a vector describing all the channels this color model has." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="43" tag="operation_43" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="The total number of channels for a single pixel in this color model" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="45" tag="operation_45" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="The total number of color channels (excludes alpha and substance) for a single&amp;#010;pixel in this color model." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="46" tag="operation_46" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="47" tag="operation_47" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="The size in bytes of a single pixel in this color model" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="48" tag="operation_48" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Whether this color model has a channel of type ALPHA" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="50" tag="operation_50" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="51" tag="operation_51" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="52" tag="operation_52" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Return a string with the channel's value suitable for display in the gui." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="58" tag="operation_58" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Return a string with the channel's value with integer&amp;#010;channels normalised to the floating point range 0 to 1, if appropriate." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="61" tag="operation_61" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return KisID  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="62" tag="operation_62" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param type &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="64" tag="operation_64" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_UINT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="65" tag="operation_65" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param signature &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="67" tag="operation_67" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return icColorSpaceSignature  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="68" tag="operation_68" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="//========== Capabilities =================================================///**&amp;#010;Returns the list of user-visible composite ops supported by this colourspace. Internal&amp;#010;ops such as COPY, CLEAR, and ERASE, are not included as these make no sense&amp;#010;for layers in the full image model." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="70" tag="operation_70" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return boolean  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="71" tag="operation_71" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="//========== Display profiles =============================================///**&amp;#010;Get a list of profiles that apply to this color space" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="73" tag="operation_73" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Return the number of profiles available for this color space" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="74" tag="operation_74" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="//================= Conversion functions ==================================///**&amp;#010;The nativeColor methods take a given color defined as an RGB QColor&amp;#010;and fills a byte array with the corresponding color in the&amp;#010;the colorspace managed by this strategy.&amp;#010;&amp;#010;The profile parameter is the profile of the paint device; the other profile&amp;#010;is the display profile -- since we are moving from QColor&amp;#010;that have most likely been picked from the display itself.&amp;#010;&amp;#010;XXX: We actually do not use the display yet, nor the paint device profile" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="82" tag="operation_82" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="88" tag="operation_88" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="The toQColor methods take a byte array that is at least pixelSize() long&amp;#010;and converts the contents to a QColor, using the given profile as a source&amp;#010;profile and the display profile as a destination profile.&amp;#010;&amp;#010;XXX: We actually do not use the display yet, nor the paint device profile&amp;#010;" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="93" tag="operation_93" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="99" tag="operation_99" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Get the alpha value of the given pixel.&amp;#010;XXX: Change to float/int to match setAlpha() when that changes." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="102" tag="operation_102" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixelRO  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="105" tag="operation_105" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixel  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="108" tag="operation_108" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="This function is used to convert a KisPixelRepresentation from this color strategy to the specified&amp;#010;color strategy." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="113" tag="operation_113" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Convert the pixels in data to (8-bit BGRA) QImage using the specified profiles.&amp;#010;The pixels are supposed to be encoded in this color model.&amp;#010;&amp;#010;@param data A pointer to a contiguous memory region containing width * height pixels&amp;#010;@param width in pixels&amp;#010;@param height in pixels&amp;#010;@param srcProfile source profile&amp;#010;@param dstProfile destination profile&amp;#010;@param renderingIntent the rendering intent&amp;#010;@param exposure The exposure setting for rendering a preview of a high dynamic range image." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="122" tag="operation_122" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Convert a byte array of srcLen pixels *src to the specified color space&amp;#010;and put the converted bytes into the prepared byte array *dst.&amp;#010;&amp;#010;Returns false if the conversion failed, true if it succeeded" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="131" tag="operation_131" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Convert the value of the channel at the specified position into&amp;#010;an 8-bit value." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="134" tag="operation_134" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Convert the value of the channel at the specified position into&amp;#010;a 16-bit value. This may be upscaling or downscaling, depending&amp;#010;on the defined value of the channel" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="137" tag="operation_137" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="//============================== Manipulation fucntions ==========================//// // The manipulation functions have default implementations that _convert_ the pixel// to a QColor and back. Reimplement these methods in your color strategy!///**&amp;#010;Set the alpha channel to the given value.&amp;#010;&amp;#010;pixels -- a pointer to the pixels that will have their alpha set to this value&amp;#010;alpha --  XXX: This must become int or float&amp;#010;nPixels -- the number of pixels&amp;#010;&amp;#010;XXX: Also add a function that modifies the current alpha with the given alpha, i.e., premultiply them?" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="141" tag="operation_141" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Applies the specified 8-bit alpha tqmask to the pixels. We assume that there are just&amp;#010;as many alpha values as pixels but we do not check this." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="145" tag="operation_145" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Applies the inverted 8-bit alpha tqmask to the pixels. We assume that there are just&amp;#010;as many alpha values as pixels but we do not check this." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="149" tag="operation_149" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Create an adjustment object for adjusting the brightness and contrast&amp;#010;transferValues is a 256 bins array with values from 0 to 0xFFFF" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="155" tag="operation_155" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Apply the adjustment created with onr of the other functions" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="160" tag="operation_160" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="// XXX: What with alpha channels? YYY: Add an overloaded function that takes alpha into account?/**&amp;#010;Get the difference between 2 colors, normalized in the range (0,255)" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="164" tag="operation_164" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Mix the colors given their weights and return in dst&amp;#010;The sum of weights is assumed 255" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="170" tag="operation_170" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Convolve the given array of pointers to pixels and return the result&amp;#010;in dst. The kernel values are clamped between -128 and 128" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="181" tag="operation_181" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Darken all color channels with the given amount. If compensate is true,&amp;#010;the compensation factor will be used to limit the darkening.&amp;#010;&amp;#010;(See the bumpmap filter)" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="188" tag="operation_188" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Calculate the intensity of the given pixel, scaled down to the range 0-255. XXX: Maybe this should be more flexible" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="190" tag="operation_190" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Compose two arrays of pixels together. If source and target&amp;#010;are not the same colour model, the source pixels will be&amp;#010;converted to the target model." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="206" tag="operation_206" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Compose two byte arrays containing pixels in the same color&amp;#010;model together." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="217" tag="operation_217" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dstColorStrategy &amp;#010;@param srcProfile &amp;#010;@param dstProfile &amp;#010;@param renderingIntent &amp;#010;@return cmsHTRANSFORM  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="223" tag="operation_223" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return KisProfileSP  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="224" tag="operation_224" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="239" tag="operation_239" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param  &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="242" tag="operation_242" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param  &amp;#010;@return KisAbstractColorSpace&amp;  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="28" field_type="6357104" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="28" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KShared  = new KShared ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="28" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="28" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="28" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="28" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="28" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="28" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KShared to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="28" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="28" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KShared from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="28" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="28" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="227" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="227" tag="tblock_0" canDelete="false" indentLevel="1" text="protected QStringList m_profileFilenames;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="227" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="227" text="return m_profileFilenames;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_profileFilenames&amp;#010;&amp;#010;@return the value of m_profileFilenames" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="227" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="227" text="m_profileFilenames = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_profileFilenames&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="228" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="228" tag="tblock_2" canDelete="false" indentLevel="1" text="protected KisProfileSP m_defaultProfile;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="228" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="228" text="return m_defaultProfile;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultProfile&amp;#010;&amp;#010;@return the value of m_defaultProfile" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="228" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="228" text="m_defaultProfile = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultProfile&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="229" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="// A small buffer for conversion from and to qcolor." />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="229" tag="tblock_5" canDelete="false" indentLevel="1" text="protected Q_UINT8* m_qcolordata;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="// A small buffer for conversion from and to qcolor." />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="229" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="229" text="return m_qcolordata;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="// A small buffer for conversion from and to qcolor." />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="229" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="229" text="m_qcolordata = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="// A small buffer for conversion from and to qcolor." />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="230" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="230" tag="tblock_8" canDelete="false" indentLevel="1" text="protected Q_INT32 m_alphaPos;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="230" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="230" text="return m_alphaPos;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_alphaPos&amp;#010;&amp;#010;@return the value of m_alphaPos" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="230" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="230" text="m_alphaPos = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_alphaPos&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="231" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="231" tag="tblock_11" canDelete="false" indentLevel="1" text="protected Q_INT32 m_alphaSize;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="231" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="231" text="return m_alphaSize;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_alphaSize&amp;#010;&amp;#010;@return the value of m_alphaSize" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="231" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="231" text="m_alphaSize = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_alphaSize&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="232" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="232" tag="tblock_14" canDelete="false" indentLevel="1" text="protected cmsHTRANSFORM m_defaultToRGB;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="232" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="232" text="return m_defaultToRGB;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultToRGB&amp;#010;&amp;#010;@return the value of m_defaultToRGB" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="232" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="232" text="m_defaultToRGB = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultToRGB&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="233" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="233" tag="tblock_17" canDelete="false" indentLevel="1" text="protected cmsHTRANSFORM m_defaultFromRGB;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="233" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="233" text="return m_defaultFromRGB;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultFromRGB&amp;#010;&amp;#010;@return the value of m_defaultFromRGB" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="233" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="233" text="m_defaultFromRGB = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultFromRGB&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="234" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="234" tag="tblock_20" canDelete="false" indentLevel="1" text="private KisID m_id;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="234" tag="hblock_tag_21" canDelete="false" indentLevel="1" classfield_id="234" text="return m_id;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_id&amp;#010;&amp;#010;@return the value of m_id" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="234" tag="hblock_tag_22" canDelete="false" indentLevel="1" classfield_id="234" text="m_id = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_id&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="235" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="// The colorspace type as defined by littlecms" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="235" tag="tblock_23" canDelete="false" indentLevel="1" text="private DWORD m_cmType;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="// The colorspace type as defined by littlecms" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="235" tag="hblock_tag_24" canDelete="false" indentLevel="1" classfield_id="235" text="return m_cmType;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="// The colorspace type as defined by littlecms" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="235" tag="hblock_tag_25" canDelete="false" indentLevel="1" classfield_id="235" text="m_cmType = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="// The colorspace type as defined by littlecms" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="236" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="// The colorspace signature as defined in icm/icc files" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="236" tag="tblock_26" canDelete="false" indentLevel="1" text="private icColorSpaceSignature m_colorSpaceSignature;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="// The colorspace signature as defined in icm/icc files" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="236" tag="hblock_tag_27" canDelete="false" indentLevel="1" classfield_id="236" text="return m_colorSpaceSignature;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="// The colorspace signature as defined in icm/icc files" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="236" tag="hblock_tag_28" canDelete="false" indentLevel="1" classfield_id="236" text="m_colorSpaceSignature = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="// The colorspace signature as defined in icm/icc files" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="238" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="// Cache for existing transforms" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="238" tag="tblock_29" canDelete="false" indentLevel="1" text="private TransformMap m_transforms;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="// Cache for existing transforms" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="238" tag="hblock_tag_30" canDelete="false" indentLevel="1" classfield_id="238" text="return m_transforms;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="// Cache for existing transforms" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="238" tag="hblock_tag_31" canDelete="false" indentLevel="1" classfield_id="238" text="m_transforms = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="// Cache for existing transforms" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="245" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="245" tag="tblock_32" canDelete="false" indentLevel="1" text="private Q_UINT32 m_cachesize;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="245" tag="hblock_tag_33" canDelete="false" indentLevel="1" classfield_id="245" text="return m_cachesize;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_cachesize&amp;#010;&amp;#010;@return the value of m_cachesize" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="245" tag="hblock_tag_34" canDelete="false" indentLevel="1" classfield_id="245" text="m_cachesize = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_cachesize&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="246" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="246" tag="tblock_35" canDelete="false" indentLevel="1" text="private Q_UINT8* m_conversionCache;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="246" tag="hblock_tag_36" canDelete="false" indentLevel="1" classfield_id="246" text="return m_conversionCache;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_conversionCache&amp;#010;&amp;#010;@return the value of m_conversionCache" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="246" tag="hblock_tag_37" canDelete="false" indentLevel="1" classfield_id="246" text="m_conversionCache = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_conversionCache&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="248" field_type="2097190" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="248" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisU8BaseColorSpace  = new KisU8BaseColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="248" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="248" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="248" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="248" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="248" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="248" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisU8BaseColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="248" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="248" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisU8BaseColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="248" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="248" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="351" field_type="7471221" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="351" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisF32BaseColorSpace  = new KisF32BaseColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="351" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="351" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="351" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="351" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="351" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="351" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisF32BaseColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="351" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="351" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisF32BaseColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="351" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="351" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="359" field_type="3866701" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="359" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisU16BaseColorSpace  = new KisU16BaseColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="359" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="359" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="359" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="359" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="359" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="359" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisU16BaseColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="359" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="359" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisU16BaseColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="359" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="359" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1664" field_type="7274528" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1664" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisWetColorSpace  = new KisWetColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1664" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1664" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1664" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1664" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="1664" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1664" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisWetColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="1664" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1664" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisWetColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="1664" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1664" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1775" field_type="49" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1775" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisWetStickyColorSpace  = new KisWetStickyColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1775" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1775" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1775" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1775" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="1775" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1775" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisWetStickyColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="1775" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1775" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisWetStickyColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="1775" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1775" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="27" tqparent_class="27" fileExt=".java" fileName="KShared" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="27" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KShared&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KShared ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="28" field_type="7077996" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="28" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisAbstractColorSpace  = new KisAbstractColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="28" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="28" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="28" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="28" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="28" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="28" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisAbstractColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="28" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="28" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisAbstractColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="28" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="28" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="32" tqparent_class="32" fileExt=".java" fileName="void" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="32" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Void&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Void ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="33" tqparent_class="33" fileExt=".java" fileName="KisID" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="33" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisID&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisID ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="34" tqparent_class="34" fileExt=".java" fileName="const KisID&amp;" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="34" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Const KisID&amp;&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Const KisID&amp; ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="36" tqparent_class="36" fileExt=".java" fileName="DWORD" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="36" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class DWORD&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public DWORD ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="38" tqparent_class="38" fileExt=".java" fileName="icColorSpaceSignature" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="38" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class IcColorSpaceSignature&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public IcColorSpaceSignature ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="42" tqparent_class="42" fileExt=".java" fileName="vKisChannelInfoSP" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="42" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class VKisChannelInfoSP&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public VKisChannelInfoSP ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="44" tqparent_class="44" fileExt=".java" fileName="Q_INT32" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="44" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Q_INT32&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Q_INT32 ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="49" tqparent_class="49" fileExt=".java" fileName="bool" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="49" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Bool&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Bool ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="53" tqparent_class="53" fileExt=".java" fileName="Q_UINT8" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="53" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Q_UINT8&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Q_UINT8 ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="54" tqparent_class="54" fileExt=".java" fileName="const Q_UINT8*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="54" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Const Q_UINT8*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Const Q_UINT8* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="57" tqparent_class="57" fileExt=".java" fileName=TQSTRING_OBJECT_NAME_STRING >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="57" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class QString&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public QString ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="69" tqparent_class="69" fileExt=".java" fileName="KisCompositeOpList" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="69" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisCompositeOpList&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisCompositeOpList ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="72" tqparent_class="72" fileExt=".java" fileName="vKisProfileSP" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="72" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class VKisProfileSP&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public VKisProfileSP ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="75" tqparent_class="75" fileExt=".java" fileName="QColor" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="75" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class QColor&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public QColor ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="76" tqparent_class="76" fileExt=".java" fileName="const QColor&amp;" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="76" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Const QColor&amp;&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Const QColor&amp; ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="78" tqparent_class="78" fileExt=".java" fileName="Q_UINT8*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="78" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Q_UINT8*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Q_UINT8* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="80" tqparent_class="80" fileExt=".java" fileName="KisProfileSP" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="80" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisProfileSP&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisProfileSP ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="84" tqparent_class="84" fileExt=".java" fileName="QUANTUM" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="84" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class QUANTUM&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public QUANTUM ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="90" tqparent_class="90" fileExt=".java" fileName="QColor*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="90" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class QColor*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public QColor* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="96" tqparent_class="96" fileExt=".java" fileName="QUANTUM*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="96" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class QUANTUM*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public QUANTUM* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="109" tqparent_class="109" fileExt=".java" fileName="KisPixel&amp;" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="109" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisPixel&amp;&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisPixel&amp; ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="121" tqparent_class="121" fileExt=".java" fileName="QImage" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="121" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class QImage&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public QImage ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="126" tqparent_class="126" fileExt=".java" fileName="KisAbstractColorSpace*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="126" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisAbstractColorSpace*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisAbstractColorSpace* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="150" tqparent_class="150" fileExt=".java" fileName="Q_UINT16" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="150" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Q_UINT16&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Q_UINT16 ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="151" tqparent_class="151" fileExt=".java" fileName="Q_UINT16*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="151" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Q_UINT16*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Q_UINT16* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="153" tqparent_class="153" fileExt=".java" fileName="KisColorAdjustment" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="153" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisColorAdjustment&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisColorAdjustment ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="154" tqparent_class="154" fileExt=".java" fileName="KisColorAdjustment*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="154" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisColorAdjustment*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisColorAdjustment* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="163" tqparent_class="163" fileExt=".java" fileName="Q_INT8" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="163" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Q_INT8&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Q_INT8 ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="165" tqparent_class="165" fileExt=".java" fileName="const Q_UINT8**" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="165" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Const Q_UINT8**&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Const Q_UINT8** ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="171" tqparent_class="171" fileExt=".java" fileName="Q_UINT8**" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="171" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Q_UINT8**&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Q_UINT8** ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="173" tqparent_class="173" fileExt=".java" fileName="Q_INT32*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="173" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Q_INT32*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Q_INT32* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="175" tqparent_class="175" fileExt=".java" fileName="enumChannelFlags" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="175" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class EnumChannelFlags&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public EnumChannelFlags ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="201" tqparent_class="201" fileExt=".java" fileName="KisCompositeOp" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="201" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisCompositeOp&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisCompositeOp ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="202" tqparent_class="202" fileExt=".java" fileName="const KisCompositeOp&amp;" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="202" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Const KisCompositeOp&amp;&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Const KisCompositeOp&amp; ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="222" tqparent_class="222" fileExt=".java" fileName="cmsHTRANSFORM" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="222" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class CmsHTRANSFORM&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public CmsHTRANSFORM ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="226" tqparent_class="226" fileExt=".java" fileName=TQSTRINGLIST_OBJECT_NAME_STRING >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="226" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class QStringList&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public QStringList ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="KisAbstractColorSpace" id="237" tqparent_class="237" fileExt=".java" fileName="TransformMap" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" text="package KisAbstractColorSpace;&amp;#010;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="237" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class TransformMap&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public TransformMap ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="240" tqparent_class="240" fileExt=".java" fileName="const KisAbstractColorSpace&amp;" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="240" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Const KisAbstractColorSpace&amp;&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Const KisAbstractColorSpace&amp; ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="244" tqparent_class="244" fileExt=".java" fileName="KisAbstractColorSpace&amp;" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="244" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisAbstractColorSpace&amp;&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisAbstractColorSpace&amp; ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="247" tqparent_class="247" fileExt=".java" fileName="KisU8BaseColorSpace" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import KisAbstractColorSpace;&amp;#010;import DWORD;&amp;#010;import icColorSpaceSignature;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="247" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisU8BaseColorSpace&amp;#010; Copyright (c) 2005 Boudewijn Rempt &lt;boud@valdyas.org>&amp;#010;&amp;#010; This program is free software; you can redistribute it and/or modify&amp;#010; it under the terms of the GNU General Public License as published by&amp;#010; the Free Software Foundation; either version 2 of the License, or&amp;#010; (at your option) any later version.&amp;#010;&amp;#010; This program is distributed in the hope that it will be useful,&amp;#010; but WITHOUT ANY WARRANTY; without even the implied warranty of&amp;#010; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&amp;#010; GNU General Public License for more details.&amp;#010;&amp;#010; You should have received a copy of the GNU General Public License&amp;#010; along with this program; if not, write to the Free Software&amp;#010; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.&amp;#010;//**&amp;#010;This class is the base for all 8-bit/channel colorspaces" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="576" tag="tblock_0" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisCmykColorSpace  = new KisCmykColorSpace ( );" >
-           <header>
-            <codecomment tag="" writeOutText="false" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisU8BaseColorSpace ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="576" tag="hblock_tag_0" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="1" text="return ;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="576" tag="hblock_tag_1" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="1" text=" = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="2" tqparent_id="576" tag="hblock_tag_2" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="1" text=".add(value);" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisCmykColorSpace to the List &amp;#010;&amp;#010;@return void" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="3" tqparent_id="576" tag="hblock_tag_3" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="1" text=".remove(value);" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisCmykColorSpace from the List &amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="4" tqparent_id="576" tag="hblock_tag_4" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="1" text="return (List) ;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="251" tag="operation_251" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param id &amp;#010;@param cmType &amp;#010;@param colorSpaceSignature &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="248" field_type="3866701" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="248" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KisAbstractColorSpace  = new KisAbstractColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="248" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="248" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="248" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="248" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="248" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="248" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisAbstractColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="248" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="248" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisAbstractColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="248" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="248" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="256" field_type="6619235" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="256" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisAlphaColorSpace  = new KisAlphaColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="256" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="256" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="256" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisAlphaColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="256" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisAlphaColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="256" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="576" field_type="0" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="576" tag="tblock_0" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisCmykColorSpace  = new KisCmykColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="576" tag="hblock_tag_0" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="576" tag="hblock_tag_1" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="576" tag="hblock_tag_2" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisCmykColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="576" tag="hblock_tag_3" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisCmykColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="576" tag="hblock_tag_4" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="670" field_type="94" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="670" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisGrayColorSpace  = new KisGrayColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="670" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="670" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="670" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="670" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="670" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="670" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisGrayColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="670" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="670" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisGrayColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="670" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="670" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1387" field_type="65" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1387" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisRgbColorSpace  = new KisRgbColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1387" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1387" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1387" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1387" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="1387" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1387" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisRgbColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="1387" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1387" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisRgbColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="1387" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1387" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="255" tqparent_class="255" fileExt=".java" fileName="KisAlphaColorSpace" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import KisU8BaseColorSpace;&amp;#010;import KisProfileSP;&amp;#010;import QUANTUM;&amp;#010;import KisPixelRO;&amp;#010;import KisPixel;&amp;#010;import Q_INT8;&amp;#010;import Q_UINT32;&amp;#010;import vKisChannelInfoSP;&amp;#010;import bool;&amp;#010;import Q_INT32;&amp;#010;import QString;&amp;#010;import QImage;&amp;#010;import enumChannelFlags;&amp;#010;import KisCompositeOpList;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="255" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisAlphaColorSpace&amp;#010; Copyright (c) 2004 Boudewijn Rempt &lt;boud@valdyas.org>&amp;#010;&amp;#010; This program is free software; you can redistribute it and/or modify&amp;#010; it under the terms of the GNU General Public License as published by&amp;#010; the Free Software Foundation; either version 2 of the License, or&amp;#010; (at your option) any later version.&amp;#010;&amp;#010; This program is distributed in the hope that it will be useful,&amp;#010; but WITHOUT ANY WARRANTY; without even the implied warranty of&amp;#010; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&amp;#010; GNU General Public License for more details.&amp;#010;&amp;#010; You should have received a copy of the GNU General Public License&amp;#010; along with this program; if not, write to the Free Software&amp;#010; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.&amp;#010;//**&amp;#010;The alpha tqmask is a special color strategy that treats all pixels as&amp;#010;alpha value with a colour common to the tqmask. The default color is white." />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="256" tag="tblock_0" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KisU8BaseColorSpace  = new KisU8BaseColorSpace ( );" >
-           <header>
-            <codecomment tag="" writeOutText="false" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="349" tag="tblock_5" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisAlphaColorSpace ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="256" tag="hblock_tag_0" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="0" text="return ;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="256" tag="hblock_tag_1" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="0" text=" = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="2" tqparent_id="256" tag="hblock_tag_2" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="0" text=".add(value);" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisU8BaseColorSpace to the List &amp;#010;&amp;#010;@return void" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="3" tqparent_id="256" tag="hblock_tag_3" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="0" text=".remove(value);" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisU8BaseColorSpace from the List &amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="4" tqparent_id="256" tag="hblock_tag_4" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="0" text="return (List) ;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="349" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="349" text="return m_channels;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="349" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="349" text="m_channels = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="259" tag="operation_259" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="260" tag="operation_260" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="261" tag="operation_261" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="265" tag="operation_265" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="270" tag="operation_270" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="273" tag="operation_273" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="277" tag="operation_277" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="282" tag="operation_282" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixelRO  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="285" tag="operation_285" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixel  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="288" tag="operation_288" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src1 &amp;#010;@param src2 &amp;#010;@return Q_INT8  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="291" tag="operation_291" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param colors &amp;#010;@param weights &amp;#010;@param nColors &amp;#010;@param dst &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="296" tag="operation_296" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return vKisChannelInfoSP  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="297" tag="operation_297" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return boolean  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="298" tag="operation_298" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="299" tag="operation_299" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="300" tag="operation_300" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="301" tag="operation_301" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="304" tag="operation_304" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="307" tag="operation_307" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param data &amp;#010;@param width &amp;#010;@param height &amp;#010;@param srcProfile &amp;#010;@param dstProfile &amp;#010;@param renderingIntent &amp;#010;@param exposure &amp;#010;@return QImage  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="315" tag="operation_315" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param dst &amp;#010;@param brightness &amp;#010;@param contrast &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="321" tag="operation_321" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param colors &amp;#010;@param kernelValues &amp;#010;@param channelFlags &amp;#010;@param dst &amp;#010;@param factor &amp;#010;@param offset &amp;#010;@param nColors &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="329" tag="operation_329" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Convert a byte array of srcLen pixels *src to the specified color space&amp;#010;and put the converted bytes into the prepared byte array *dst.&amp;#010;&amp;#010;Returns false if the conversion failed, true if it succeeded" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="337" tag="operation_337" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dststride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param srcAlphaMask &amp;#010;@param tqmaskRowStride &amp;#010;@param opacity &amp;#010;@param rows &amp;#010;@param cols &amp;#010;@param op &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="348" tag="operation_348" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return KisCompositeOpList  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="256" field_type="0" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="256" tag="tblock_0" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KisU8BaseColorSpace  = new KisU8BaseColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="256" tag="hblock_tag_0" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="256" tag="hblock_tag_1" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="256" tag="hblock_tag_2" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisU8BaseColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="256" tag="hblock_tag_3" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisU8BaseColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="256" tag="hblock_tag_4" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="256" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="349" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="349" tag="tblock_5" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="349" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="349" text="return m_channels;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="349" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="349" text="m_channels = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="350" tqparent_class="350" fileExt=".java" fileName="KisF32BaseColorSpace" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import KisAbstractColorSpace;&amp;#010;import DWORD;&amp;#010;import icColorSpaceSignature;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="350" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisF32BaseColorSpace&amp;#010; Copyright (c) 2004 Boudewijn Rempt &lt;boud@valdyas.org>&amp;#010;&amp;#010; This program is free software; you can redistribute it and/or modify&amp;#010; it under the terms of the GNU General Public License as published by&amp;#010; the Free Software Foundation; either version 2 of the License, or&amp;#010; (at your option) any later version.&amp;#010;&amp;#010; This program is distributed in the hope that it will be useful,&amp;#010; but WITHOUT ANY WARRANTY; without even the implied warranty of&amp;#010; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&amp;#010; GNU General Public License for more details.&amp;#010;&amp;#010; You should have received a copy of the GNU General Public License&amp;#010; along with this program; if not, write to the Free Software&amp;#010; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.&amp;#010;//**&amp;#010;This class is the base for all 32-bit float colorspaces." />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="880" tag="tblock_0" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisF32RgbColorSpace  = new KisF32RgbColorSpace ( );" >
-           <header>
-            <codecomment tag="" writeOutText="false" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisF32BaseColorSpace ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="880" tag="hblock_tag_0" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="1" text="return ;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="880" tag="hblock_tag_1" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="1" text=" = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="2" tqparent_id="880" tag="hblock_tag_2" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="1" text=".add(value);" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisF32RgbColorSpace to the List &amp;#010;&amp;#010;@return void" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="3" tqparent_id="880" tag="hblock_tag_3" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="1" text=".remove(value);" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisF32RgbColorSpace from the List &amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="4" tqparent_id="880" tag="hblock_tag_4" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="1" text="return (List) ;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="354" tag="operation_354" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param id &amp;#010;@param cmType &amp;#010;@param colorSpaceSignature &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="351" field_type="65" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="351" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KisAbstractColorSpace  = new KisAbstractColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="351" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="351" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="351" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="351" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="351" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="351" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisAbstractColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="351" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="351" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisAbstractColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="351" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="351" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="880" field_type="0" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="880" tag="tblock_0" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisF32RgbColorSpace  = new KisF32RgbColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="880" tag="hblock_tag_0" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="880" tag="hblock_tag_1" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="880" tag="hblock_tag_2" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisF32RgbColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="880" tag="hblock_tag_3" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisF32RgbColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="880" tag="hblock_tag_4" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="358" tqparent_class="358" fileExt=".java" fileName="KisU16BaseColorSpace" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import KisAbstractColorSpace;&amp;#010;import DWORD;&amp;#010;import icColorSpaceSignature;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="358" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisU16BaseColorSpace&amp;#010; Copyright (c) 2005 Boudewijn Rempt &lt;boud@valdyas.org>&amp;#010;&amp;#010; This program is free software; you can redistribute it and/or modify&amp;#010; it under the terms of the GNU General Public License as published by&amp;#010; the Free Software Foundation; either version 2 of the License, or&amp;#010; (at your option) any later version.&amp;#010;&amp;#010; This program is distributed in the hope that it will be useful,&amp;#010; but WITHOUT ANY WARRANTY; without even the implied warranty of&amp;#010; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&amp;#010; GNU General Public License for more details.&amp;#010;&amp;#010; You should have received a copy of the GNU General Public License&amp;#010; along with this program; if not, write to the Free Software&amp;#010; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.&amp;#010;//**&amp;#010;This is the base class for 16-bit/channel colorspaces. It defines&amp;#010;a number of common methods, like handling 16-bit alpha and up-&amp;#010;and down-scaling of channels." />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="363" tag="tblock_0" canDelete="false" indentLevel="1" text="static public const Q_UINT16 U16_OPACITY_OPAQUE;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="364" tag="tblock_2" canDelete="false" indentLevel="1" text="static public const Q_UINT16 U16_OPACITY_TRANSPARENT;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="370" tag="tblock_5" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisXyzColorSpace  = new KisXyzColorSpace ( );" >
-           <header>
-            <codecomment tag="" writeOutText="false" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisU16BaseColorSpace ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="363" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="363" text="return U16_OPACITY_OPAQUE;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of U16_OPACITY_OPAQUE&amp;#010;&amp;#010;@return the value of U16_OPACITY_OPAQUE" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="363" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="363" text="U16_OPACITY_OPAQUE = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of U16_OPACITY_OPAQUE&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="364" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="364" text="return U16_OPACITY_TRANSPARENT;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of U16_OPACITY_TRANSPARENT&amp;#010;&amp;#010;@return the value of U16_OPACITY_TRANSPARENT" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="364" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="364" text="U16_OPACITY_TRANSPARENT = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of U16_OPACITY_TRANSPARENT&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="370" tag="hblock_tag_6" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="1" text="return ;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="370" tag="hblock_tag_7" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="1" text=" = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="2" tqparent_id="370" tag="hblock_tag_8" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="1" text=".add(value);" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisXyzColorSpace to the List &amp;#010;&amp;#010;@return void" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="3" tqparent_id="370" tag="hblock_tag_9" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="1" text=".remove(value);" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisXyzColorSpace from the List &amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="4" tqparent_id="370" tag="hblock_tag_10" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="1" text="return (List) ;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="365" tag="operation_365" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param id &amp;#010;@param cmType &amp;#010;@param colorSpaceSignature &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="359" field_type="2097190" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="359" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KisAbstractColorSpace  = new KisAbstractColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="359" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="359" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="359" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="359" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="359" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="359" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisAbstractColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="359" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="359" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisAbstractColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="359" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="359" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="363" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="363" tag="tblock_0" canDelete="false" indentLevel="1" text="static public const Q_UINT16 U16_OPACITY_OPAQUE;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="363" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="363" text="return U16_OPACITY_OPAQUE;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of U16_OPACITY_OPAQUE&amp;#010;&amp;#010;@return the value of U16_OPACITY_OPAQUE" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="363" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="363" text="U16_OPACITY_OPAQUE = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of U16_OPACITY_OPAQUE&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="364" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="364" tag="tblock_2" canDelete="false" indentLevel="1" text="static public const Q_UINT16 U16_OPACITY_TRANSPARENT;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="364" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="364" text="return U16_OPACITY_TRANSPARENT;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of U16_OPACITY_TRANSPARENT&amp;#010;&amp;#010;@return the value of U16_OPACITY_TRANSPARENT" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="364" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="364" text="U16_OPACITY_TRANSPARENT = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of U16_OPACITY_TRANSPARENT&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="370" field_type="0" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="370" tag="tblock_5" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisXyzColorSpace  = new KisXyzColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="370" tag="hblock_tag_6" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="370" tag="hblock_tag_7" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="370" tag="hblock_tag_8" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisXyzColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="370" tag="hblock_tag_9" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisXyzColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="370" tag="hblock_tag_10" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1135" field_type="92" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1135" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public KisRgbU16ColorSpace  = new KisRgbU16ColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1135" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1135" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1135" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1135" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="1135" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1135" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisRgbU16ColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="1135" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1135" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisRgbU16ColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="1135" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1135" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="362" tqparent_class="362" fileExt=".java" fileName="const Q_UINT16" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="362" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Const Q_UINT16&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Const Q_UINT16 ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="369" tqparent_class="369" fileExt=".java" fileName="KisXyzColorSpace" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import KisU16BaseColorSpace;&amp;#010;import KisProfileSP;&amp;#010;import QUANTUM;&amp;#010;import Q_UINT8;&amp;#010;import Q_INT32;&amp;#010;import KisPixelRO;&amp;#010;import KisPixel;&amp;#010;import Q_INT8;&amp;#010;import Q_UINT32;&amp;#010;import vKisChannelInfoSP;&amp;#010;import bool;&amp;#010;import QString;&amp;#010;import QImage;&amp;#010;import KisCompositeOpList;&amp;#010;import Q_UINT16;&amp;#010;import cmsHTRANSFORM;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="369" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisXyzColorSpace&amp;#010; Copyright (c) 2005 Boudewijn Rempt (boud@valdyas.org)&amp;#010;&amp;#010; This program is free software; you can redistribute it and/or modify&amp;#010; it under the terms of the GNU General Public License as published by&amp;#010; the Free Software Foundation; either version 2 of the License, or&amp;#010; (at your option) any later version.&amp;#010;&amp;#010; This program is distributed in the hope that it will be useful,&amp;#010; but WITHOUT ANY WARRANTY; without even the implied warranty of&amp;#010; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&amp;#010; GNU General Public License for more details.&amp;#010;&amp;#010; You should have received a copy of the GNU General Public License&amp;#010; along with this program; if not, write to the Free Software&amp;#010; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="566" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="567" tag="tblock_2" canDelete="false" indentLevel="1" text="private cmsHTRANSFORM m_defaultToRGB;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="568" tag="tblock_5" canDelete="false" indentLevel="1" text="private cmsHTRANSFORM m_defaultFromRGB;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="570" tag="tblock_8" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_X;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="571" tag="tblock_11" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_Y;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="572" tag="tblock_14" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_Z;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="573" tag="tblock_17" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_ALPHA;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="574" tag="tblock_20" canDelete="false" indentLevel="1" text="private Q_UINT8* m_qcolordata;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="// A small buffer for conversion from and to qcolor." />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisXyzColorSpace ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="566" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="566" text="return m_channels;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="566" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="566" text="m_channels = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="567" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="567" text="return m_defaultToRGB;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultToRGB&amp;#010;&amp;#010;@return the value of m_defaultToRGB" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="567" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="567" text="m_defaultToRGB = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultToRGB&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="568" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="568" text="return m_defaultFromRGB;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultFromRGB&amp;#010;&amp;#010;@return the value of m_defaultFromRGB" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="568" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="568" text="m_defaultFromRGB = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultFromRGB&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="570" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="570" text="return PIXEL_X;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_X&amp;#010;&amp;#010;@return the value of PIXEL_X" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="570" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="570" text="PIXEL_X = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_X&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="571" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="571" text="return PIXEL_Y;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_Y&amp;#010;&amp;#010;@return the value of PIXEL_Y" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="571" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="571" text="PIXEL_Y = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_Y&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="572" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="572" text="return PIXEL_Z;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_Z&amp;#010;&amp;#010;@return the value of PIXEL_Z" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="572" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="572" text="PIXEL_Z = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_Z&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="573" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="573" text="return PIXEL_ALPHA;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_ALPHA&amp;#010;&amp;#010;@return the value of PIXEL_ALPHA" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="573" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="573" text="PIXEL_ALPHA = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_ALPHA&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="574" tag="hblock_tag_21" canDelete="false" indentLevel="1" classfield_id="574" text="return m_qcolordata;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="// A small buffer for conversion from and to qcolor." />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="574" tag="hblock_tag_22" canDelete="false" indentLevel="1" classfield_id="574" text="m_qcolordata = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="// A small buffer for conversion from and to qcolor." />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="378" tag="operation_378" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="379" tag="operation_379" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="380" tag="operation_380" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="384" tag="operation_384" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="389" tag="operation_389" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="392" tag="operation_392" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixels &amp;#010;@param alpha &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="396" tag="operation_396" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="400" tag="operation_400" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="405" tag="operation_405" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixelRO  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="408" tag="operation_408" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixel  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="411" tag="operation_411" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src1 &amp;#010;@param src2 &amp;#010;@return Q_INT8  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="414" tag="operation_414" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param colors &amp;#010;@param weights &amp;#010;@param nColors &amp;#010;@param dst &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="419" tag="operation_419" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return vKisChannelInfoSP  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="420" tag="operation_420" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return boolean  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="421" tag="operation_421" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="422" tag="operation_422" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="423" tag="operation_423" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="424" tag="operation_424" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="427" tag="operation_427" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="430" tag="operation_430" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param data &amp;#010;@param width &amp;#010;@param height &amp;#010;@param srcProfile &amp;#010;@param dstProfile &amp;#010;@param renderingIntent &amp;#010;@param exposure &amp;#010;@return QImage  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="438" tag="operation_438" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param dst &amp;#010;@param brightness &amp;#010;@param contrast &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="444" tag="operation_444" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dststride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param srcAlphaMask &amp;#010;@param tqmaskRowStride &amp;#010;@param opacity &amp;#010;@param rows &amp;#010;@param cols &amp;#010;@param op &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="455" tag="operation_455" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return KisCompositeOpList  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="456" tag="operation_456" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="466" tag="operation_466" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="476" tag="operation_476" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="486" tag="operation_486" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="496" tag="operation_496" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="506" tag="operation_506" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="516" tag="operation_516" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="526" tag="operation_526" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="536" tag="operation_536" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="546" tag="operation_546" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="556" tag="operation_556" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="370" field_type="16" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="370" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KisU16BaseColorSpace  = new KisU16BaseColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="370" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="370" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="370" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisU16BaseColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="370" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisU16BaseColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="370" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="370" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="566" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="566" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="566" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="566" text="return m_channels;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="566" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="566" text="m_channels = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="567" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="567" tag="tblock_2" canDelete="false" indentLevel="1" text="private cmsHTRANSFORM m_defaultToRGB;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="567" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="567" text="return m_defaultToRGB;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultToRGB&amp;#010;&amp;#010;@return the value of m_defaultToRGB" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="567" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="567" text="m_defaultToRGB = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultToRGB&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="568" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="568" tag="tblock_5" canDelete="false" indentLevel="1" text="private cmsHTRANSFORM m_defaultFromRGB;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="568" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="568" text="return m_defaultFromRGB;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultFromRGB&amp;#010;&amp;#010;@return the value of m_defaultFromRGB" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="568" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="568" text="m_defaultFromRGB = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultFromRGB&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="570" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="570" tag="tblock_8" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_X;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="570" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="570" text="return PIXEL_X;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_X&amp;#010;&amp;#010;@return the value of PIXEL_X" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="570" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="570" text="PIXEL_X = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_X&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="571" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="571" tag="tblock_11" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_Y;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="571" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="571" text="return PIXEL_Y;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_Y&amp;#010;&amp;#010;@return the value of PIXEL_Y" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="571" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="571" text="PIXEL_Y = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_Y&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="572" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="572" tag="tblock_14" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_Z;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="572" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="572" text="return PIXEL_Z;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_Z&amp;#010;&amp;#010;@return the value of PIXEL_Z" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="572" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="572" text="PIXEL_Z = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_Z&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="573" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="573" tag="tblock_17" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_ALPHA;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="573" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="573" text="return PIXEL_ALPHA;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_ALPHA&amp;#010;&amp;#010;@return the value of PIXEL_ALPHA" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="573" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="573" text="PIXEL_ALPHA = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_ALPHA&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="574" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="// A small buffer for conversion from and to qcolor." />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="574" tag="tblock_20" canDelete="false" indentLevel="1" text="private Q_UINT8* m_qcolordata;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="// A small buffer for conversion from and to qcolor." />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="574" tag="hblock_tag_21" canDelete="false" indentLevel="1" classfield_id="574" text="return m_qcolordata;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="// A small buffer for conversion from and to qcolor." />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="574" tag="hblock_tag_22" canDelete="false" indentLevel="1" classfield_id="574" text="m_qcolordata = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="// A small buffer for conversion from and to qcolor." />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="KisRgbU16ColorSpace" id="373" tqparent_class="373" fileExt=".java" fileName="Pixel" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" text="package KisRgbU16ColorSpace;&amp;#010;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import Q_UINT16;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="373" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Pixel&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="374" tag="tblock_0" canDelete="false" indentLevel="1" text="public Q_UINT16 X;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="375" tag="tblock_2" canDelete="false" indentLevel="1" text="public Q_UINT16 Y;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="376" tag="tblock_5" canDelete="false" indentLevel="1" text="public Q_UINT16 Z;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="377" tag="tblock_8" canDelete="false" indentLevel="1" text="public Q_UINT16 alpha;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1130" tag="tblock_11" canDelete="false" indentLevel="1" text="public float blue;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1131" tag="tblock_14" canDelete="false" indentLevel="1" text="public float green;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1132" tag="tblock_17" canDelete="false" indentLevel="1" text="public float red;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Pixel ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="374" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="374" text="return X;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of X&amp;#010;&amp;#010;@return the value of X" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="374" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="374" text="X = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of X&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="375" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="375" text="return Y;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of Y&amp;#010;&amp;#010;@return the value of Y" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="375" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="375" text="Y = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of Y&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="376" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="376" text="return Z;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of Z&amp;#010;&amp;#010;@return the value of Z" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="376" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="376" text="Z = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of Z&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="377" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="377" text="return alpha;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of alpha&amp;#010;&amp;#010;@return the value of alpha" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="377" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="377" text="alpha = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of alpha&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1130" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="1130" text="return blue;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of blue&amp;#010;&amp;#010;@return the value of blue" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1130" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="1130" text="blue = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of blue&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1131" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="1131" text="return green;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of green&amp;#010;&amp;#010;@return the value of green" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1131" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="1131" text="green = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of green&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1132" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="1132" text="return red;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of red&amp;#010;&amp;#010;@return the value of red" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1132" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="1132" text="red = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of red&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="374" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="374" tag="tblock_0" canDelete="false" indentLevel="1" text="public Q_UINT16 X;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="374" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="374" text="return X;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of X&amp;#010;&amp;#010;@return the value of X" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="374" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="374" text="X = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of X&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="375" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="375" tag="tblock_2" canDelete="false" indentLevel="1" text="public Q_UINT16 Y;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="375" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="375" text="return Y;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of Y&amp;#010;&amp;#010;@return the value of Y" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="375" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="375" text="Y = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of Y&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="376" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="376" tag="tblock_5" canDelete="false" indentLevel="1" text="public Q_UINT16 Z;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="376" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="376" text="return Z;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of Z&amp;#010;&amp;#010;@return the value of Z" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="376" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="376" text="Z = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of Z&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="377" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="377" tag="tblock_8" canDelete="false" indentLevel="1" text="public Q_UINT16 alpha;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="377" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="377" text="return alpha;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of alpha&amp;#010;&amp;#010;@return the value of alpha" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="377" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="377" text="alpha = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of alpha&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1130" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1130" tag="tblock_11" canDelete="false" indentLevel="1" text="public float blue;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1130" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="1130" text="return blue;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of blue&amp;#010;&amp;#010;@return the value of blue" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1130" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="1130" text="blue = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of blue&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1131" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1131" tag="tblock_14" canDelete="false" indentLevel="1" text="public float green;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1131" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="1131" text="return green;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of green&amp;#010;&amp;#010;@return the value of green" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1131" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="1131" text="green = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of green&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1132" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1132" tag="tblock_17" canDelete="false" indentLevel="1" text="public float red;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1132" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="1132" text="return red;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of red&amp;#010;&amp;#010;@return the value of red" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1132" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="1132" text="red = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of red&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="569" tqparent_class="569" fileExt=".java" fileName="const Q_UINT8" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="569" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Const Q_UINT8&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Const Q_UINT8 ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="575" tqparent_class="575" fileExt=".java" fileName="KisCmykColorSpace" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import KisU8BaseColorSpace;&amp;#010;import KisProfileSP;&amp;#010;import QUANTUM;&amp;#010;import Q_UINT8;&amp;#010;import Q_INT32;&amp;#010;import KisPixelRO;&amp;#010;import KisPixel;&amp;#010;import Q_UINT32;&amp;#010;import vKisChannelInfoSP;&amp;#010;import bool;&amp;#010;import QString;&amp;#010;import QImage;&amp;#010;import Q_INT8;&amp;#010;import KisCompositeOpList;&amp;#010;import cmsHTRANSFORM;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="575" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisCmykColorSpace&amp;#010; Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)&amp;#010;&amp;#010; This program is free software; you can redistribute it and/or modify&amp;#010; it under the terms of the GNU General Public License as published by&amp;#010; the Free Software Foundation; either version 2 of the License, or&amp;#010; (at your option) any later version.&amp;#010;&amp;#010; This program is distributed in the hope that it will be useful,&amp;#010; but WITHOUT ANY WARRANTY; without even the implied warranty of&amp;#010; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&amp;#010; GNU General Public License for more details.&amp;#010;&amp;#010; You should have received a copy of the GNU General Public License&amp;#010; along with this program; if not, write to the Free Software&amp;#010; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="660" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="661" tag="tblock_2" canDelete="false" indentLevel="1" text="private cmsHTRANSFORM m_defaultToRGB;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="662" tag="tblock_5" canDelete="false" indentLevel="1" text="private cmsHTRANSFORM m_defaultFromRGB;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="663" tag="tblock_8" canDelete="false" indentLevel="1" text="private Q_UINT8* m_qcolordata;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="664" tag="tblock_11" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_CYAN;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="665" tag="tblock_14" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_MAGENTA;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="666" tag="tblock_17" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_YELLOW;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="667" tag="tblock_20" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_BLACK;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="668" tag="tblock_23" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_CMYK_ALPHA;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisCmykColorSpace ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="660" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="660" text="return m_channels;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="660" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="660" text="m_channels = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="661" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="661" text="return m_defaultToRGB;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultToRGB&amp;#010;&amp;#010;@return the value of m_defaultToRGB" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="661" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="661" text="m_defaultToRGB = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultToRGB&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="662" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="662" text="return m_defaultFromRGB;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultFromRGB&amp;#010;&amp;#010;@return the value of m_defaultFromRGB" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="662" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="662" text="m_defaultFromRGB = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultFromRGB&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="663" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="663" text="return m_qcolordata;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_qcolordata&amp;#010;&amp;#010;@return the value of m_qcolordata" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="663" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="663" text="m_qcolordata = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_qcolordata&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="664" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="664" text="return PIXEL_CYAN;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_CYAN&amp;#010;&amp;#010;@return the value of PIXEL_CYAN" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="664" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="664" text="PIXEL_CYAN = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_CYAN&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="665" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="665" text="return PIXEL_MAGENTA;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_MAGENTA&amp;#010;&amp;#010;@return the value of PIXEL_MAGENTA" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="665" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="665" text="PIXEL_MAGENTA = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_MAGENTA&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="666" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="666" text="return PIXEL_YELLOW;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_YELLOW&amp;#010;&amp;#010;@return the value of PIXEL_YELLOW" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="666" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="666" text="PIXEL_YELLOW = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_YELLOW&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="667" tag="hblock_tag_21" canDelete="false" indentLevel="1" classfield_id="667" text="return PIXEL_BLACK;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_BLACK&amp;#010;&amp;#010;@return the value of PIXEL_BLACK" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="667" tag="hblock_tag_22" canDelete="false" indentLevel="1" classfield_id="667" text="PIXEL_BLACK = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_BLACK&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="668" tag="hblock_tag_24" canDelete="false" indentLevel="1" classfield_id="668" text="return PIXEL_CMYK_ALPHA;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_CMYK_ALPHA&amp;#010;&amp;#010;@return the value of PIXEL_CMYK_ALPHA" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="668" tag="hblock_tag_25" canDelete="false" indentLevel="1" classfield_id="668" text="PIXEL_CMYK_ALPHA = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_CMYK_ALPHA&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="579" tag="operation_579" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="580" tag="operation_580" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="581" tag="operation_581" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="585" tag="operation_585" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="590" tag="operation_590" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="593" tag="operation_593" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixels &amp;#010;@param alpha &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="597" tag="operation_597" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param color &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="601" tag="operation_601" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param color &amp;#010;@param opacity &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="606" tag="operation_606" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixelRO  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="609" tag="operation_609" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixel  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="612" tag="operation_612" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param colors &amp;#010;@param weights &amp;#010;@param nColors &amp;#010;@param dst &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="617" tag="operation_617" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return vKisChannelInfoSP  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="618" tag="operation_618" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return boolean  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="619" tag="operation_619" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="620" tag="operation_620" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="621" tag="operation_621" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="622" tag="operation_622" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="625" tag="operation_625" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="628" tag="operation_628" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param data &amp;#010;@param width &amp;#010;@param height &amp;#010;@param srcProfile &amp;#010;@param dstProfile &amp;#010;@param renderingIntent &amp;#010;@param exposure &amp;#010;@return QImage  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="636" tag="operation_636" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src1 &amp;#010;@param adjust &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="639" tag="operation_639" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowSize &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param srcAlphaMask &amp;#010;@param tqmaskRowStride &amp;#010;@param opacity &amp;#010;@param rows &amp;#010;@param cols &amp;#010;@param op &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="650" tag="operation_650" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return boolean  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="651" tag="operation_651" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return KisCompositeOpList  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="652" tag="operation_652" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dstRowStart &amp;#010;@param dstRowStride &amp;#010;@param srcRowStart &amp;#010;@param srcRowStride &amp;#010;@param rows &amp;#010;@param numColumns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="576" field_type="49" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="576" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KisU8BaseColorSpace  = new KisU8BaseColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="576" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="576" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="576" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisU8BaseColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="576" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisU8BaseColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="576" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="576" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="660" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="660" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="660" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="660" text="return m_channels;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="660" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="660" text="m_channels = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="661" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="661" tag="tblock_2" canDelete="false" indentLevel="1" text="private cmsHTRANSFORM m_defaultToRGB;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="661" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="661" text="return m_defaultToRGB;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultToRGB&amp;#010;&amp;#010;@return the value of m_defaultToRGB" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="661" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="661" text="m_defaultToRGB = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultToRGB&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="662" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="662" tag="tblock_5" canDelete="false" indentLevel="1" text="private cmsHTRANSFORM m_defaultFromRGB;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="662" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="662" text="return m_defaultFromRGB;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_defaultFromRGB&amp;#010;&amp;#010;@return the value of m_defaultFromRGB" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="662" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="662" text="m_defaultFromRGB = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_defaultFromRGB&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="663" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="663" tag="tblock_8" canDelete="false" indentLevel="1" text="private Q_UINT8* m_qcolordata;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="663" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="663" text="return m_qcolordata;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_qcolordata&amp;#010;&amp;#010;@return the value of m_qcolordata" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="663" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="663" text="m_qcolordata = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_qcolordata&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="664" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="664" tag="tblock_11" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_CYAN;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="664" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="664" text="return PIXEL_CYAN;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_CYAN&amp;#010;&amp;#010;@return the value of PIXEL_CYAN" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="664" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="664" text="PIXEL_CYAN = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_CYAN&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="665" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="665" tag="tblock_14" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_MAGENTA;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="665" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="665" text="return PIXEL_MAGENTA;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_MAGENTA&amp;#010;&amp;#010;@return the value of PIXEL_MAGENTA" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="665" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="665" text="PIXEL_MAGENTA = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_MAGENTA&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="666" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="666" tag="tblock_17" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_YELLOW;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="666" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="666" text="return PIXEL_YELLOW;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_YELLOW&amp;#010;&amp;#010;@return the value of PIXEL_YELLOW" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="666" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="666" text="PIXEL_YELLOW = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_YELLOW&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="667" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="667" tag="tblock_20" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_BLACK;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="667" tag="hblock_tag_21" canDelete="false" indentLevel="1" classfield_id="667" text="return PIXEL_BLACK;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_BLACK&amp;#010;&amp;#010;@return the value of PIXEL_BLACK" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="667" tag="hblock_tag_22" canDelete="false" indentLevel="1" classfield_id="667" text="PIXEL_BLACK = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_BLACK&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="668" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="668" tag="tblock_23" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_CMYK_ALPHA;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="668" tag="hblock_tag_24" canDelete="false" indentLevel="1" classfield_id="668" text="return PIXEL_CMYK_ALPHA;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_CMYK_ALPHA&amp;#010;&amp;#010;@return the value of PIXEL_CMYK_ALPHA" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="668" tag="hblock_tag_25" canDelete="false" indentLevel="1" classfield_id="668" text="PIXEL_CMYK_ALPHA = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_CMYK_ALPHA&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="669" tqparent_class="669" fileExt=".java" fileName="KisGrayColorSpace" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import KisU8BaseColorSpace;&amp;#010;import Q_UINT8;&amp;#010;import KisProfileSP;&amp;#010;import QUANTUM;&amp;#010;import Q_INT32;&amp;#010;import KisPixelRO;&amp;#010;import KisPixel;&amp;#010;import Q_INT8;&amp;#010;import Q_UINT32;&amp;#010;import vKisChannelInfoSP;&amp;#010;import bool;&amp;#010;import QString;&amp;#010;import QImage;&amp;#010;import KisCompositeOpList;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="669" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisGrayColorSpace&amp;#010; Copyright (c) 2004 Cyrille Berger &lt;cberger@cberger.net>&amp;#010;&amp;#010; This program is free software; you can redistribute it and/or modify&amp;#010; it under the terms of the GNU General Public License as published by&amp;#010; the Free Software Foundation; either version 2 of the License, or&amp;#010; (at your option) any later version.&amp;#010;&amp;#010; This program is distributed in the hope that it will be useful,&amp;#010; but WITHOUT ANY WARRANTY; without even the implied warranty of&amp;#010; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&amp;#010; GNU General Public License for more details.&amp;#010;&amp;#010; You should have received a copy of the GNU General Public License&amp;#010; along with this program; if not, write to the Free Software&amp;#010; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="860" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="861" tag="tblock_2" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_GRAY;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="862" tag="tblock_5" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_GRAY_ALPHA;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisGrayColorSpace ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="860" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="860" text="return m_channels;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="860" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="860" text="m_channels = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="861" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="861" text="return PIXEL_GRAY;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_GRAY&amp;#010;&amp;#010;@return the value of PIXEL_GRAY" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="861" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="861" text="PIXEL_GRAY = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_GRAY&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="862" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="862" text="return PIXEL_GRAY_ALPHA;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_GRAY_ALPHA&amp;#010;&amp;#010;@return the value of PIXEL_GRAY_ALPHA" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="862" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="862" text="PIXEL_GRAY_ALPHA = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_GRAY_ALPHA&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="673" tag="operation_673" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="674" tag="operation_674" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="675" tag="operation_675" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param gray &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="679" tag="operation_679" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param gray &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="683" tag="operation_683" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="687" tag="operation_687" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="692" tag="operation_692" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="695" tag="operation_695" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixels &amp;#010;@param alpha &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="699" tag="operation_699" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="703" tag="operation_703" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="708" tag="operation_708" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixelRO  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="711" tag="operation_711" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixel  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="714" tag="operation_714" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src1 &amp;#010;@param src2 &amp;#010;@return Q_INT8  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="717" tag="operation_717" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param colors &amp;#010;@param weights &amp;#010;@param nColors &amp;#010;@param dst &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="722" tag="operation_722" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return vKisChannelInfoSP  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="723" tag="operation_723" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return boolean  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="724" tag="operation_724" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="725" tag="operation_725" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="726" tag="operation_726" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="727" tag="operation_727" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="730" tag="operation_730" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="733" tag="operation_733" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param data &amp;#010;@param width &amp;#010;@param height &amp;#010;@param srcProfile &amp;#010;@param dstProfile &amp;#010;@param renderingIntent &amp;#010;@param exposure &amp;#010;@return QImage  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="741" tag="operation_741" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param dst &amp;#010;@param brightness &amp;#010;@param contrast &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="747" tag="operation_747" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dststride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param srcAlphaMask &amp;#010;@param tqmaskRowStride &amp;#010;@param opacity &amp;#010;@param rows &amp;#010;@param cols &amp;#010;@param op &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="758" tag="operation_758" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return KisCompositeOpList  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="759" tag="operation_759" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="769" tag="operation_769" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="779" tag="operation_779" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="789" tag="operation_789" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="799" tag="operation_799" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="809" tag="operation_809" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="819" tag="operation_819" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="829" tag="operation_829" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="839" tag="operation_839" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="849" tag="operation_849" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="670" field_type="94" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="670" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KisU8BaseColorSpace  = new KisU8BaseColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="670" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="670" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="670" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="670" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="670" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="670" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisU8BaseColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="670" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="670" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisU8BaseColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="670" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="670" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="860" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="860" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="860" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="860" text="return m_channels;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="860" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="860" text="m_channels = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="861" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="861" tag="tblock_2" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_GRAY;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="861" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="861" text="return PIXEL_GRAY;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_GRAY&amp;#010;&amp;#010;@return the value of PIXEL_GRAY" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="861" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="861" text="PIXEL_GRAY = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_GRAY&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="862" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="862" tag="tblock_5" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_GRAY_ALPHA;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="862" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="862" text="return PIXEL_GRAY_ALPHA;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_GRAY_ALPHA&amp;#010;&amp;#010;@return the value of PIXEL_GRAY_ALPHA" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="862" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="862" text="PIXEL_GRAY_ALPHA = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_GRAY_ALPHA&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="859" tqparent_class="859" fileExt=".java" fileName="KisGrayColorSpaceTester" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="859" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisGrayColorSpaceTester&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisGrayColorSpaceTester ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="863" tqparent_class="863" fileExt=".java" fileName="RGBF32Plugin" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="863" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class RGBF32Plugin&amp;#010; Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org)&amp;#010;&amp;#010; This program is free software; you can redistribute it and/or modify&amp;#010; it under the terms of the GNU General Public License as published by&amp;#010; the Free Software Foundation; either version 2 of the License, or&amp;#010; (at your option) any later version.&amp;#010;&amp;#010; This program is distributed in the hope that it will be useful,&amp;#010; but WITHOUT ANY WARRANTY; without even the implied warranty of&amp;#010; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&amp;#010; GNU General Public License for more details.&amp;#010;&amp;#010; You should have received a copy of the GNU General Public License&amp;#010; along with this program; if not, write to the Free Software&amp;#010; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.&amp;#010;//**&amp;#010;A plugin wrapper around the RGB F32 colour space strategy." />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="878" tag="tblock_0" canDelete="false" indentLevel="1" text="private KisAbstractColorSpace* m_ColorSpaceRGBF32;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public RGBF32Plugin ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="878" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="878" text="return m_ColorSpaceRGBF32;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_ColorSpaceRGBF32&amp;#010;&amp;#010;@return the value of m_ColorSpaceRGBF32" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="878" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="878" text="m_ColorSpaceRGBF32 = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_ColorSpaceRGBF32&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="869" tag="operation_869" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param tqparent &amp;#010;@param name &amp;#010;@param  &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="877" tag="operation_877" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="866" field_type="-1" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="866" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public Plugin  = new Plugin ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="866" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="866" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="866" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="866" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="866" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="866" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type Plugin to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="866" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="866" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type Plugin from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="866" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="866" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="878" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="878" tag="tblock_0" canDelete="false" indentLevel="1" text="private KisAbstractColorSpace* m_ColorSpaceRGBF32;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="878" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="878" text="return m_ColorSpaceRGBF32;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_ColorSpaceRGBF32&amp;#010;&amp;#010;@return the value of m_ColorSpaceRGBF32" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="878" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="878" text="m_ColorSpaceRGBF32 = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_ColorSpaceRGBF32&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="864" tqparent_class="864" fileExt=".java" fileName="KParts" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="864" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KParts&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KParts ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="KParts" id="865" tqparent_class="865" fileExt=".java" fileName="Plugin" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" text="package KParts;&amp;#010;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="865" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Plugin&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Plugin ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="866" field_type="-1" initialValue="" role_id="0" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="866" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="1" text="public RGBF32Plugin  = new RGBF32Plugin ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="866" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="866" role_id="1" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="866" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="866" role_id="1" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="866" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="866" role_id="1" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type RGBF32Plugin to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="866" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="866" role_id="1" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type RGBF32Plugin from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="866" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="866" role_id="1" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="870" tqparent_class="870" fileExt=".java" fileName=TQOBJECT_OBJECT_NAME_STRING >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="870" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class QObject&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public QObject ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="871" tqparent_class="871" fileExt=".java" fileName="QObject*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="871" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class QObject*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public QObject* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="873" tqparent_class="873" fileExt=".java" fileName="const char*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="873" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Const char*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Const char* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="875" tqparent_class="875" fileExt=".java" fileName="const QStringList&amp;" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="875" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Const QStringList&amp;&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Const QStringList&amp; ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="879" tqparent_class="879" fileExt=".java" fileName="KisF32RgbColorSpace" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import KisF32BaseColorSpace;&amp;#010;import KisProfileSP;&amp;#010;import QUANTUM;&amp;#010;import Q_UINT8;&amp;#010;import Q_INT32;&amp;#010;import KisPixelRO;&amp;#010;import KisPixel;&amp;#010;import Q_INT8;&amp;#010;import Q_UINT32;&amp;#010;import vKisChannelInfoSP;&amp;#010;import bool;&amp;#010;import QString;&amp;#010;import QImage;&amp;#010;import KisCompositeOpList;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="879" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisF32RgbColorSpace&amp;#010; Copyright (c) 2002 Patrick Julien  &lt;freak@codepimps.org>&amp;#010; Copyright (c) 2005 Adrian Page &lt;adrian@pagenet.plus.com>&amp;#010;&amp;#010; This program is free software; you can redistribute it and/or modify&amp;#010; it under the terms of the GNU General Public License as published by&amp;#010; the Free Software Foundation; either version 2 of the License, or&amp;#010; (at your option) any later version.&amp;#010;&amp;#010; This program is distributed in the hope that it will be useful,&amp;#010; but WITHOUT ANY WARRANTY; without even the implied warranty of&amp;#010; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&amp;#010; GNU General Public License for more details.&amp;#010;&amp;#010; You should have received a copy of the GNU General Public License&amp;#010; along with this program; if not, write to the Free Software&amp;#010; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA." />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="1125" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1126" tag="tblock_2" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_BLUE;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1127" tag="tblock_5" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_GREEN;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1128" tag="tblock_8" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_RED;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1129" tag="tblock_11" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_ALPHA;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisF32RgbColorSpace ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="1125" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1125" text="return m_channels;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1125" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1125" text="m_channels = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1126" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="1126" text="return PIXEL_BLUE;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_BLUE&amp;#010;&amp;#010;@return the value of PIXEL_BLUE" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1126" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="1126" text="PIXEL_BLUE = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_BLUE&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1127" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="1127" text="return PIXEL_GREEN;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_GREEN&amp;#010;&amp;#010;@return the value of PIXEL_GREEN" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1127" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="1127" text="PIXEL_GREEN = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_GREEN&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1128" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="1128" text="return PIXEL_RED;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_RED&amp;#010;&amp;#010;@return the value of PIXEL_RED" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1128" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="1128" text="PIXEL_RED = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_RED&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1129" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="1129" text="return PIXEL_ALPHA;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_ALPHA&amp;#010;&amp;#010;@return the value of PIXEL_ALPHA" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1129" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="1129" text="PIXEL_ALPHA = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_ALPHA&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="883" tag="operation_883" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="884" tag="operation_884" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="885" tag="operation_885" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param red &amp;#010;@param green &amp;#010;@param blue &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="891" tag="operation_891" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param red &amp;#010;@param green &amp;#010;@param blue &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="898" tag="operation_898" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="902" tag="operation_902" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="907" tag="operation_907" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="910" tag="operation_910" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixels &amp;#010;@param alpha &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="914" tag="operation_914" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="918" tag="operation_918" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="923" tag="operation_923" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixelRO  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="926" tag="operation_926" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixel  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="929" tag="operation_929" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src1 &amp;#010;@param src2 &amp;#010;@return Q_INT8  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="932" tag="operation_932" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param colors &amp;#010;@param weights &amp;#010;@param nColors &amp;#010;@param dst &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="937" tag="operation_937" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return vKisChannelInfoSP  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="938" tag="operation_938" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return boolean  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="939" tag="operation_939" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="940" tag="operation_940" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="941" tag="operation_941" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="942" tag="operation_942" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="945" tag="operation_945" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="948" tag="operation_948" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param data &amp;#010;@param width &amp;#010;@param height &amp;#010;@param srcProfile &amp;#010;@param dstProfile &amp;#010;@param renderingIntent &amp;#010;@param exposure &amp;#010;@return QImage  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="956" tag="operation_956" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return KisCompositeOpList  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="957" tag="operation_957" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param dst &amp;#010;@param brightness &amp;#010;@param contrast &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="963" tag="operation_963" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param srcAlphaMask &amp;#010;@param tqmaskRowStride &amp;#010;@param opacity &amp;#010;@param rows &amp;#010;@param cols &amp;#010;@param op &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="974" tag="operation_974" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="984" tag="operation_984" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="994" tag="operation_994" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1004" tag="operation_1004" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1014" tag="operation_1014" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1024" tag="operation_1024" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1034" tag="operation_1034" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1044" tag="operation_1044" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1054" tag="operation_1054" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1064" tag="operation_1064" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1074" tag="operation_1074" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1084" tag="operation_1084" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1094" tag="operation_1094" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1104" tag="operation_1104" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1114" tag="operation_1114" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="880" field_type="65" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="880" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KisF32BaseColorSpace  = new KisF32BaseColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="880" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="880" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="880" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisF32BaseColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="880" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisF32BaseColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="880" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="880" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1125" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1125" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1125" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1125" text="return m_channels;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1125" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1125" text="m_channels = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1126" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1126" tag="tblock_2" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_BLUE;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1126" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="1126" text="return PIXEL_BLUE;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_BLUE&amp;#010;&amp;#010;@return the value of PIXEL_BLUE" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1126" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="1126" text="PIXEL_BLUE = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_BLUE&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1127" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1127" tag="tblock_5" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_GREEN;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1127" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="1127" text="return PIXEL_GREEN;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_GREEN&amp;#010;&amp;#010;@return the value of PIXEL_GREEN" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1127" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="1127" text="PIXEL_GREEN = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_GREEN&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1128" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1128" tag="tblock_8" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_RED;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1128" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="1128" text="return PIXEL_RED;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_RED&amp;#010;&amp;#010;@return the value of PIXEL_RED" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1128" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="1128" text="PIXEL_RED = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_RED&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1129" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1129" tag="tblock_11" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_ALPHA;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1129" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="1129" text="return PIXEL_ALPHA;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_ALPHA&amp;#010;&amp;#010;@return the value of PIXEL_ALPHA" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1129" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="1129" text="PIXEL_ALPHA = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_ALPHA&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="893" tqparent_class="893" fileExt=".java" fileName="float*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="893" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Float*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Float* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1124" tqparent_class="1124" fileExt=".java" fileName="KisF32RgbColorSpaceTester" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1124" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisF32RgbColorSpaceTester&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisF32RgbColorSpaceTester ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1133" tqparent_class="1133" fileExt=".java" fileName="KisF32RgbColorSpaceSP" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1133" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisF32RgbColorSpaceSP&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisF32RgbColorSpaceSP ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1134" tqparent_class="1134" fileExt=".java" fileName="KisRgbU16ColorSpace" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import KisU16BaseColorSpace;&amp;#010;import Q_UINT16;&amp;#010;import KisProfileSP;&amp;#010;import QUANTUM;&amp;#010;import Q_UINT8;&amp;#010;import Q_INT32;&amp;#010;import KisPixelRO;&amp;#010;import KisPixel;&amp;#010;import Q_INT8;&amp;#010;import Q_UINT32;&amp;#010;import vKisChannelInfoSP;&amp;#010;import bool;&amp;#010;import QString;&amp;#010;import QImage;&amp;#010;import KisCompositeOpList;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1134" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisRgbU16ColorSpace&amp;#010; Copyright (c) 2002 Patrick Julien  &lt;freak@codepimps.org>&amp;#010; Copyright (c) 2005 Adrian Page &lt;adrian@pagenet.plus.com>&amp;#010;&amp;#010; This program is free software; you can redistribute it and/or modify&amp;#010; it under the terms of the GNU General Public License as published by&amp;#010; the Free Software Foundation; either version 2 of the License, or&amp;#010; (at your option) any later version.&amp;#010;&amp;#010; This program is distributed in the hope that it will be useful,&amp;#010; but WITHOUT ANY WARRANTY; without even the implied warranty of&amp;#010; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&amp;#010; GNU General Public License for more details.&amp;#010;&amp;#010; You should have received a copy of the GNU General Public License&amp;#010; along with this program; if not, write to the Free Software&amp;#010; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="1138" tag="tblock_0" canDelete="false" indentLevel="1" text="static public const Q_UINT16 U16_OPACITY_OPAQUE;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1139" tag="tblock_2" canDelete="false" indentLevel="1" text="static public const Q_UINT16 U16_OPACITY_TRANSPARENT;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1381" tag="tblock_5" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1382" tag="tblock_8" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_BLUE;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1383" tag="tblock_11" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_GREEN;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1384" tag="tblock_14" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_RED;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1385" tag="tblock_17" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_ALPHA;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisRgbU16ColorSpace ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="1138" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1138" text="return U16_OPACITY_OPAQUE;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of U16_OPACITY_OPAQUE&amp;#010;&amp;#010;@return the value of U16_OPACITY_OPAQUE" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1138" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1138" text="U16_OPACITY_OPAQUE = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of U16_OPACITY_OPAQUE&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1139" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="1139" text="return U16_OPACITY_TRANSPARENT;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of U16_OPACITY_TRANSPARENT&amp;#010;&amp;#010;@return the value of U16_OPACITY_TRANSPARENT" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1139" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="1139" text="U16_OPACITY_TRANSPARENT = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of U16_OPACITY_TRANSPARENT&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1381" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="1381" text="return m_channels;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1381" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="1381" text="m_channels = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1382" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="1382" text="return PIXEL_BLUE;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_BLUE&amp;#010;&amp;#010;@return the value of PIXEL_BLUE" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1382" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="1382" text="PIXEL_BLUE = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_BLUE&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1383" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="1383" text="return PIXEL_GREEN;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_GREEN&amp;#010;&amp;#010;@return the value of PIXEL_GREEN" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1383" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="1383" text="PIXEL_GREEN = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_GREEN&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1384" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="1384" text="return PIXEL_RED;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_RED&amp;#010;&amp;#010;@return the value of PIXEL_RED" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1384" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="1384" text="PIXEL_RED = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_RED&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1385" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="1385" text="return PIXEL_ALPHA;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_ALPHA&amp;#010;&amp;#010;@return the value of PIXEL_ALPHA" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1385" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="1385" text="PIXEL_ALPHA = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_ALPHA&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="1140" tag="operation_1140" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1141" tag="operation_1141" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1142" tag="operation_1142" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param red &amp;#010;@param green &amp;#010;@param blue &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1148" tag="operation_1148" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param red &amp;#010;@param green &amp;#010;@param blue &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1154" tag="operation_1154" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1158" tag="operation_1158" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1163" tag="operation_1163" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1166" tag="operation_1166" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixels &amp;#010;@param alpha &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1170" tag="operation_1170" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1174" tag="operation_1174" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1179" tag="operation_1179" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixelRO  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1182" tag="operation_1182" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixel  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1185" tag="operation_1185" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src1 &amp;#010;@param src2 &amp;#010;@return Q_INT8  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1188" tag="operation_1188" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param colors &amp;#010;@param weights &amp;#010;@param nColors &amp;#010;@param dst &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1193" tag="operation_1193" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return vKisChannelInfoSP  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1194" tag="operation_1194" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return boolean  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1195" tag="operation_1195" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1196" tag="operation_1196" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1197" tag="operation_1197" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1198" tag="operation_1198" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1201" tag="operation_1201" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1204" tag="operation_1204" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param data &amp;#010;@param width &amp;#010;@param height &amp;#010;@param srcProfile &amp;#010;@param dstProfile &amp;#010;@param renderingIntent &amp;#010;@param exposure &amp;#010;@return QImage  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1212" tag="operation_1212" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return KisCompositeOpList  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1213" tag="operation_1213" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param dst &amp;#010;@param brightness &amp;#010;@param contrast &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1219" tag="operation_1219" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param srcAlphaMask &amp;#010;@param tqmaskRowStride &amp;#010;@param opacity &amp;#010;@param rows &amp;#010;@param cols &amp;#010;@param op &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1230" tag="operation_1230" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1240" tag="operation_1240" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1250" tag="operation_1250" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1260" tag="operation_1260" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1270" tag="operation_1270" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1280" tag="operation_1280" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1290" tag="operation_1290" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1300" tag="operation_1300" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1310" tag="operation_1310" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1320" tag="operation_1320" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1330" tag="operation_1330" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1340" tag="operation_1340" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1350" tag="operation_1350" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1360" tag="operation_1360" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1370" tag="operation_1370" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="1135" field_type="92" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1135" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KisU16BaseColorSpace  = new KisU16BaseColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1135" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1135" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1135" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1135" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="1135" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1135" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisU16BaseColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="1135" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1135" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisU16BaseColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="1135" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1135" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1138" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1138" tag="tblock_0" canDelete="false" indentLevel="1" text="static public const Q_UINT16 U16_OPACITY_OPAQUE;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1138" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1138" text="return U16_OPACITY_OPAQUE;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of U16_OPACITY_OPAQUE&amp;#010;&amp;#010;@return the value of U16_OPACITY_OPAQUE" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1138" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1138" text="U16_OPACITY_OPAQUE = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of U16_OPACITY_OPAQUE&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1139" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1139" tag="tblock_2" canDelete="false" indentLevel="1" text="static public const Q_UINT16 U16_OPACITY_TRANSPARENT;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1139" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="1139" text="return U16_OPACITY_TRANSPARENT;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of U16_OPACITY_TRANSPARENT&amp;#010;&amp;#010;@return the value of U16_OPACITY_TRANSPARENT" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1139" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="1139" text="U16_OPACITY_TRANSPARENT = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of U16_OPACITY_TRANSPARENT&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1381" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1381" tag="tblock_5" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1381" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="1381" text="return m_channels;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1381" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="1381" text="m_channels = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1382" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1382" tag="tblock_8" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_BLUE;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1382" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="1382" text="return PIXEL_BLUE;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_BLUE&amp;#010;&amp;#010;@return the value of PIXEL_BLUE" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1382" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="1382" text="PIXEL_BLUE = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_BLUE&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1383" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1383" tag="tblock_11" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_GREEN;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1383" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="1383" text="return PIXEL_GREEN;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_GREEN&amp;#010;&amp;#010;@return the value of PIXEL_GREEN" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1383" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="1383" text="PIXEL_GREEN = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_GREEN&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1384" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1384" tag="tblock_14" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_RED;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1384" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="1384" text="return PIXEL_RED;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_RED&amp;#010;&amp;#010;@return the value of PIXEL_RED" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1384" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="1384" text="PIXEL_RED = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_RED&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1385" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1385" tag="tblock_17" canDelete="false" indentLevel="1" text="static private const Q_UINT8 PIXEL_ALPHA;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1385" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="1385" text="return PIXEL_ALPHA;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of PIXEL_ALPHA&amp;#010;&amp;#010;@return the value of PIXEL_ALPHA" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1385" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="1385" text="PIXEL_ALPHA = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of PIXEL_ALPHA&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1380" tqparent_class="1380" fileExt=".java" fileName="KisRgbU16ColorSpaceTester" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1380" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisRgbU16ColorSpaceTester&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisRgbU16ColorSpaceTester ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1386" tqparent_class="1386" fileExt=".java" fileName="KisRgbColorSpace" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import KisU8BaseColorSpace;&amp;#010;import Q_UINT8;&amp;#010;import KisProfileSP;&amp;#010;import QUANTUM;&amp;#010;import Q_INT32;&amp;#010;import KisPixelRO;&amp;#010;import KisPixel;&amp;#010;import Q_INT8;&amp;#010;import Q_UINT32;&amp;#010;import enumChannelFlags;&amp;#010;import vKisChannelInfoSP;&amp;#010;import bool;&amp;#010;import QString;&amp;#010;import QImage;&amp;#010;import KisCompositeOpList;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1386" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisRgbColorSpace&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="1638" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisRgbColorSpace ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="1638" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1638" text="return m_channels;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1638" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1638" text="m_channels = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="1390" tag="operation_1390" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1391" tag="operation_1391" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1392" tag="operation_1392" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param red &amp;#010;@param green &amp;#010;@param blue &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1398" tag="operation_1398" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param red &amp;#010;@param green &amp;#010;@param blue &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1404" tag="operation_1404" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1408" tag="operation_1408" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1413" tag="operation_1413" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1416" tag="operation_1416" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixels &amp;#010;@param alpha &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1420" tag="operation_1420" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1424" tag="operation_1424" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1429" tag="operation_1429" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixelRO  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1432" tag="operation_1432" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixel  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1435" tag="operation_1435" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src1 &amp;#010;@param src2 &amp;#010;@return Q_INT8  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1438" tag="operation_1438" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param colors &amp;#010;@param weights &amp;#010;@param nColors &amp;#010;@param dst &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1443" tag="operation_1443" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param colors &amp;#010;@param kernelValues &amp;#010;@param channelFlags &amp;#010;@param dst &amp;#010;@param factor &amp;#010;@param offset &amp;#010;@param nColors &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1451" tag="operation_1451" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return vKisChannelInfoSP  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1452" tag="operation_1452" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return boolean  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1453" tag="operation_1453" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1454" tag="operation_1454" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1455" tag="operation_1455" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1456" tag="operation_1456" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1459" tag="operation_1459" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1462" tag="operation_1462" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param data &amp;#010;@param width &amp;#010;@param height &amp;#010;@param srcProfile &amp;#010;@param dstProfile &amp;#010;@param renderingIntent &amp;#010;@param exposure &amp;#010;@return QImage  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1470" tag="operation_1470" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return KisCompositeOpList  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1471" tag="operation_1471" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param transferValues &amp;#010;@return KisColorAdjustment*  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1473" tag="operation_1473" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param dst &amp;#010;@param  &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1478" tag="operation_1478" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="Darken all color channels with the given amount. If compensate is true,&amp;#010;the compensation factor will be used to limit the darkening.&amp;#010;&amp;#010;(See the bumpmap filter)" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1485" tag="operation_1485" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@return Q_UINT8  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1487" tag="operation_1487" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param srcAlphaMask &amp;#010;@param tqmaskRowStride &amp;#010;@param opacity &amp;#010;@param rows &amp;#010;@param cols &amp;#010;@param op &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1498" tag="operation_1498" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1508" tag="operation_1508" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1518" tag="operation_1518" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1528" tag="operation_1528" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1538" tag="operation_1538" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1548" tag="operation_1548" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1558" tag="operation_1558" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1568" tag="operation_1568" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1578" tag="operation_1578" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1588" tag="operation_1588" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1598" tag="operation_1598" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1608" tag="operation_1608" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1618" tag="operation_1618" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1628" tag="operation_1628" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="1387" field_type="65" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1387" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KisU8BaseColorSpace  = new KisU8BaseColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1387" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1387" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1387" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1387" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="1387" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1387" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisU8BaseColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="1387" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1387" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisU8BaseColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="1387" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1387" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1638" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1638" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1638" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1638" text="return m_channels;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1638" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1638" text="m_channels = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1639" tqparent_class="1639" fileExt=".java" fileName="WetPix" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1639" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class WetPix&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public WetPix ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1640" tqparent_class="1640" fileExt=".java" fileName="WetPixDbl" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1640" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class WetPixDbl&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public WetPixDbl ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1641" tqparent_class="1641" fileExt=".java" fileName="WetPack" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1641" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class WetPack&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public WetPack ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1642" tqparent_class="1642" fileExt=".java" fileName="_WetPix" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import Q_UINT16;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1642" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class _WetPix&amp;#010;White is made up of myth-red, myth-green, and myth-blue. Myth-red&amp;#010;looks red when viewed reflectively, but cyan when viewed&amp;#010;transmissively (thus, it vaguely resembles a dichroic&amp;#010;filter). Myth-red over black is red, and myth-red over white is&amp;#010;white.&amp;#010;&amp;#010;Total red channel concentration is myth-red concentration plus&amp;#010;cyan concentration." />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="1643" tag="tblock_0" canDelete="false" indentLevel="1" text="public Q_UINT16 rd;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Total red channel concentration" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1644" tag="tblock_2" canDelete="false" indentLevel="1" text="public Q_UINT16 rw;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Myth-red concentration" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1645" tag="tblock_5" canDelete="false" indentLevel="1" text="public Q_UINT16 gd;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Total green channel concentration" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1646" tag="tblock_8" canDelete="false" indentLevel="1" text="public Q_UINT16 gw;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Myth-green concentration" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1647" tag="tblock_11" canDelete="false" indentLevel="1" text="public Q_UINT16 bd;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Total blue channel concentration" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1648" tag="tblock_14" canDelete="false" indentLevel="1" text="public Q_UINT16 bw;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Myth-blue concentration" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1649" tag="tblock_17" canDelete="false" indentLevel="1" text="public Q_UINT16 w;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Water volume" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1650" tag="tblock_20" canDelete="false" indentLevel="1" text="public Q_UINT16 h;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Height of paper surface XXX: This might just as well be a single&amp;#010;channel in our colour model that has two of&amp;#010;these wetpix structs for every paint device pixel" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public _WetPix ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="1643" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1643" text="return rd;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Total red channel concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1643" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1643" text="rd = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Total red channel concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1644" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="1644" text="return rw;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Myth-red concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1644" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="1644" text="rw = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Myth-red concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1645" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="1645" text="return gd;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Total green channel concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1645" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="1645" text="gd = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Total green channel concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1646" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="1646" text="return gw;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Myth-green concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1646" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="1646" text="gw = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Myth-green concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1647" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="1647" text="return bd;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Total blue channel concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1647" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="1647" text="bd = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Total blue channel concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1648" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="1648" text="return bw;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Myth-blue concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1648" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="1648" text="bw = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Myth-blue concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1649" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="1649" text="return w;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Water volume" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1649" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="1649" text="w = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Water volume" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1650" tag="hblock_tag_21" canDelete="false" indentLevel="1" classfield_id="1650" text="return h;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Height of paper surface XXX: This might just as well be a single&amp;#010;channel in our colour model that has two of&amp;#010;these wetpix structs for every paint device pixel" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1650" tag="hblock_tag_22" canDelete="false" indentLevel="1" classfield_id="1650" text="h = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Height of paper surface XXX: This might just as well be a single&amp;#010;channel in our colour model that has two of&amp;#010;these wetpix structs for every paint device pixel" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="1643" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Total red channel concentration" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1643" tag="tblock_0" canDelete="false" indentLevel="1" text="public Q_UINT16 rd;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Total red channel concentration" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1643" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1643" text="return rd;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Total red channel concentration" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1643" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1643" text="rd = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Total red channel concentration" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1644" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Myth-red concentration" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1644" tag="tblock_2" canDelete="false" indentLevel="1" text="public Q_UINT16 rw;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Myth-red concentration" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1644" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="1644" text="return rw;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Myth-red concentration" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1644" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="1644" text="rw = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Myth-red concentration" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1645" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Total green channel concentration" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1645" tag="tblock_5" canDelete="false" indentLevel="1" text="public Q_UINT16 gd;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Total green channel concentration" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1645" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="1645" text="return gd;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Total green channel concentration" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1645" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="1645" text="gd = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Total green channel concentration" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1646" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Myth-green concentration" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1646" tag="tblock_8" canDelete="false" indentLevel="1" text="public Q_UINT16 gw;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Myth-green concentration" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1646" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="1646" text="return gw;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Myth-green concentration" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1646" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="1646" text="gw = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Myth-green concentration" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1647" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Total blue channel concentration" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1647" tag="tblock_11" canDelete="false" indentLevel="1" text="public Q_UINT16 bd;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Total blue channel concentration" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1647" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="1647" text="return bd;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Total blue channel concentration" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1647" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="1647" text="bd = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Total blue channel concentration" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1648" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Myth-blue concentration" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1648" tag="tblock_14" canDelete="false" indentLevel="1" text="public Q_UINT16 bw;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Myth-blue concentration" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1648" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="1648" text="return bw;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Myth-blue concentration" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1648" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="1648" text="bw = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Myth-blue concentration" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1649" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Water volume" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1649" tag="tblock_17" canDelete="false" indentLevel="1" text="public Q_UINT16 w;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Water volume" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1649" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="1649" text="return w;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Water volume" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1649" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="1649" text="w = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Water volume" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1650" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Height of paper surface XXX: This might just as well be a single&amp;#010;channel in our colour model that has two of&amp;#010;these wetpix structs for every paint device pixel" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1650" tag="tblock_20" canDelete="false" indentLevel="1" text="public Q_UINT16 h;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Height of paper surface XXX: This might just as well be a single&amp;#010;channel in our colour model that has two of&amp;#010;these wetpix structs for every paint device pixel" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1650" tag="hblock_tag_21" canDelete="false" indentLevel="1" classfield_id="1650" text="return h;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Height of paper surface XXX: This might just as well be a single&amp;#010;channel in our colour model that has two of&amp;#010;these wetpix structs for every paint device pixel" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1650" tag="hblock_tag_22" canDelete="false" indentLevel="1" classfield_id="1650" text="h = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Height of paper surface XXX: This might just as well be a single&amp;#010;channel in our colour model that has two of&amp;#010;these wetpix structs for every paint device pixel" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1651" tqparent_class="1651" fileExt=".java" fileName="_WetPack" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import WetPix;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1651" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class _WetPack&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="1652" tag="tblock_0" canDelete="false" indentLevel="1" text="public WetPix paint;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Paint layer" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1653" tag="tblock_2" canDelete="false" indentLevel="1" text="public WetPix adsorb;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Adsorbtion layer" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public _WetPack ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="1652" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1652" text="return paint;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Paint layer" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1652" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1652" text="paint = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Paint layer" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1653" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="1653" text="return adsorb;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Adsorbtion layer" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1653" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="1653" text="adsorb = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Adsorbtion layer" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="1652" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Paint layer" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1652" tag="tblock_0" canDelete="false" indentLevel="1" text="public WetPix paint;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Paint layer" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1652" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1652" text="return paint;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Paint layer" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1652" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1652" text="paint = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Paint layer" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1653" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Adsorbtion layer" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1653" tag="tblock_2" canDelete="false" indentLevel="1" text="public WetPix adsorb;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Adsorbtion layer" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1653" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="1653" text="return adsorb;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Adsorbtion layer" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1653" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="1653" text="adsorb = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Adsorbtion layer" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1654" tqparent_class="1654" fileExt=".java" fileName="_WetPixDbl" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1654" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class _WetPixDbl&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="1655" tag="tblock_0" canDelete="false" indentLevel="1" text="public double rd;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Total red channel concentration" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1656" tag="tblock_2" canDelete="false" indentLevel="1" text="public double rw;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Myth-red concentration" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1657" tag="tblock_5" canDelete="false" indentLevel="1" text="public double gd;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Total green channel concentration" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1658" tag="tblock_8" canDelete="false" indentLevel="1" text="public double gw;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Myth-green concentration" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1659" tag="tblock_11" canDelete="false" indentLevel="1" text="public double bd;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Total blue channel concentration" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1660" tag="tblock_14" canDelete="false" indentLevel="1" text="public double bw;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Myth-blue concentration" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1661" tag="tblock_17" canDelete="false" indentLevel="1" text="public double w;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Water volume" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1662" tag="tblock_20" canDelete="false" indentLevel="1" text="public double h;" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Height of paper surface" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public _WetPixDbl ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="1655" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1655" text="return rd;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Total red channel concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1655" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1655" text="rd = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Total red channel concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1656" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="1656" text="return rw;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Myth-red concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1656" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="1656" text="rw = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Myth-red concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1657" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="1657" text="return gd;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Total green channel concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1657" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="1657" text="gd = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Total green channel concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1658" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="1658" text="return gw;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Myth-green concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1658" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="1658" text="gw = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Myth-green concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1659" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="1659" text="return bd;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Total blue channel concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1659" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="1659" text="bd = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Total blue channel concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1660" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="1660" text="return bw;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Myth-blue concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1660" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="1660" text="bw = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Myth-blue concentration" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1661" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="1661" text="return w;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Water volume" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1661" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="1661" text="w = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Water volume" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1662" tag="hblock_tag_21" canDelete="false" indentLevel="1" classfield_id="1662" text="return h;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Height of paper surface" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1662" tag="hblock_tag_22" canDelete="false" indentLevel="1" classfield_id="1662" text="h = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Height of paper surface" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="1655" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Total red channel concentration" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1655" tag="tblock_0" canDelete="false" indentLevel="1" text="public double rd;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Total red channel concentration" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1655" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1655" text="return rd;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Total red channel concentration" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1655" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1655" text="rd = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Total red channel concentration" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1656" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Myth-red concentration" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1656" tag="tblock_2" canDelete="false" indentLevel="1" text="public double rw;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Myth-red concentration" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1656" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="1656" text="return rw;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Myth-red concentration" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1656" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="1656" text="rw = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Myth-red concentration" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1657" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Total green channel concentration" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1657" tag="tblock_5" canDelete="false" indentLevel="1" text="public double gd;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Total green channel concentration" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1657" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="1657" text="return gd;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Total green channel concentration" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1657" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="1657" text="gd = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Total green channel concentration" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1658" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Myth-green concentration" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1658" tag="tblock_8" canDelete="false" indentLevel="1" text="public double gw;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Myth-green concentration" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1658" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="1658" text="return gw;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Myth-green concentration" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1658" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="1658" text="gw = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Myth-green concentration" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1659" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Total blue channel concentration" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1659" tag="tblock_11" canDelete="false" indentLevel="1" text="public double bd;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Total blue channel concentration" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1659" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="1659" text="return bd;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Total blue channel concentration" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1659" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="1659" text="bd = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Total blue channel concentration" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1660" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Myth-blue concentration" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1660" tag="tblock_14" canDelete="false" indentLevel="1" text="public double bw;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Myth-blue concentration" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1660" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="1660" text="return bw;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Myth-blue concentration" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1660" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="1660" text="bw = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Myth-blue concentration" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1661" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Water volume" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1661" tag="tblock_17" canDelete="false" indentLevel="1" text="public double w;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Water volume" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1661" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="1661" text="return w;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Water volume" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1661" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="1661" text="w = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Water volume" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1662" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" text="Height of paper surface" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1662" tag="tblock_20" canDelete="false" indentLevel="1" text="public double h;" >
-        <header>
-         <codecomment tag="" indentLevel="1" text="Height of paper surface" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1662" tag="hblock_tag_21" canDelete="false" indentLevel="1" classfield_id="1662" text="return h;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Height of paper surface" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1662" tag="hblock_tag_22" canDelete="false" indentLevel="1" classfield_id="1662" text="h = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Height of paper surface" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1663" tqparent_class="1663" fileExt=".java" fileName="KisWetColorSpace" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import KisAbstractColorSpace;&amp;#010;import KisProfileSP;&amp;#010;import QUANTUM;&amp;#010;import KisPixelRO;&amp;#010;import KisPixel;&amp;#010;import Q_UINT32;&amp;#010;import vKisChannelInfoSP;&amp;#010;import bool;&amp;#010;import Q_INT32;&amp;#010;import QString;&amp;#010;import QImage;&amp;#010;import Q_INT8;&amp;#010;import KisCompositeOpList;&amp;#010;import QStringList;&amp;#010;import QMap;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1663" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisWetColorSpace&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="1755" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1757" tag="tblock_2" canDelete="false" indentLevel="1" text="private Q_UINT32* wet_render_tab;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1758" tag="tblock_5" canDelete="false" indentLevel="1" text="private QStringList m_paintNames;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1760" tag="tblock_8" canDelete="false" indentLevel="1" text="private QMap m_conversionMap;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1761" tag="tblock_11" canDelete="false" indentLevel="1" text="private boolean m_paintwetness;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1762" tag="tblock_14" canDelete="false" indentLevel="1" text="private int phase;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-          <ccfdeclarationcodeblock tqparent_id="1763" tag="tblock_17" canDelete="false" indentLevel="1" text="private int phasebig;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisWetColorSpace ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="1755" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1755" text="return m_channels;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1755" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1755" text="m_channels = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1757" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="1757" text="return wet_render_tab;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of wet_render_tab&amp;#010;&amp;#010;@return the value of wet_render_tab" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1757" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="1757" text="wet_render_tab = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of wet_render_tab&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1758" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="1758" text="return m_paintNames;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_paintNames&amp;#010;&amp;#010;@return the value of m_paintNames" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1758" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="1758" text="m_paintNames = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_paintNames&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1760" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="1760" text="return m_conversionMap;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_conversionMap&amp;#010;&amp;#010;@return the value of m_conversionMap" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1760" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="1760" text="m_conversionMap = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_conversionMap&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1761" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="1761" text="return m_paintwetness;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_paintwetness&amp;#010;&amp;#010;@return the value of m_paintwetness" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1761" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="1761" text="m_paintwetness = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_paintwetness&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1762" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="1762" text="return phase;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of phase&amp;#010;&amp;#010;@return the value of phase" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1762" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="1762" text="phase = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of phase&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="0" tqparent_id="1763" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="1763" text="return phasebig;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of phasebig&amp;#010;&amp;#010;@return the value of phasebig" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1763" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="1763" text="phasebig = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of phasebig&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="1667" tag="operation_1667" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1668" tag="operation_1668" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1669" tag="operation_1669" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="// Semi-clever: we have only fifteen wet paint colors that are mapped to the// qcolors that are put in the painter by the special wet paint palette. Other// QColors are mapped to plain water..." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1673" tag="operation_1673" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1678" tag="operation_1678" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1681" tag="operation_1681" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1685" tag="operation_1685" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1690" tag="operation_1690" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixelRO  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1693" tag="operation_1693" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixel  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1696" tag="operation_1696" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param colors &amp;#010;@param weights &amp;#010;@param nColors &amp;#010;@param dst &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1701" tag="operation_1701" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return vKisChannelInfoSP  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1702" tag="operation_1702" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return boolean  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1703" tag="operation_1703" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1704" tag="operation_1704" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1705" tag="operation_1705" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1706" tag="operation_1706" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1707" tag="operation_1707" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1710" tag="operation_1710" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1713" tag="operation_1713" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param data &amp;#010;@param width &amp;#010;@param height &amp;#010;@param srcProfile &amp;#010;@param dstProfile &amp;#010;@param renderingIntent &amp;#010;@param exposure &amp;#010;@return QImage  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1721" tag="operation_1721" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src1 &amp;#010;@param adjust &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1724" tag="operation_1724" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param  &amp;#010;@param  &amp;#010;@param  &amp;#010;@param  &amp;#010;@param  &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1730" tag="operation_1730" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return KisCompositeOpList  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1731" tag="operation_1731" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param b &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1733" tag="operation_1733" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return boolean  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1734" tag="operation_1734" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1735" tag="operation_1735" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowSize &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param srcAlphaMask &amp;#010;@param tqmaskRowStride &amp;#010;@param opacity &amp;#010;@param rows &amp;#010;@param cols &amp;#010;@param op &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1746" tag="operation_1746" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="// This was static, but since we have only one instance of the color strategy,// it can be just as well a private member variable." />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1747" tag="operation_1747" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="// Convert a single pixel from its wet representation to rgb" />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1751" tag="operation_1751" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param rgb &amp;#010;@param pack &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="1664" field_type="16" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1664" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KisAbstractColorSpace  = new KisAbstractColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1664" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1664" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1664" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1664" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="1664" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1664" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisAbstractColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="1664" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1664" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisAbstractColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="1664" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1664" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1755" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1755" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1755" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1755" text="return m_channels;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1755" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1755" text="m_channels = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1757" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1757" tag="tblock_2" canDelete="false" indentLevel="1" text="private Q_UINT32* wet_render_tab;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1757" tag="hblock_tag_3" canDelete="false" indentLevel="1" classfield_id="1757" text="return wet_render_tab;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of wet_render_tab&amp;#010;&amp;#010;@return the value of wet_render_tab" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1757" tag="hblock_tag_4" canDelete="false" indentLevel="1" classfield_id="1757" text="wet_render_tab = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of wet_render_tab&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1758" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1758" tag="tblock_5" canDelete="false" indentLevel="1" text="private QStringList m_paintNames;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1758" tag="hblock_tag_6" canDelete="false" indentLevel="1" classfield_id="1758" text="return m_paintNames;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_paintNames&amp;#010;&amp;#010;@return the value of m_paintNames" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1758" tag="hblock_tag_7" canDelete="false" indentLevel="1" classfield_id="1758" text="m_paintNames = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_paintNames&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1760" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1760" tag="tblock_8" canDelete="false" indentLevel="1" text="private QMap m_conversionMap;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1760" tag="hblock_tag_9" canDelete="false" indentLevel="1" classfield_id="1760" text="return m_conversionMap;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_conversionMap&amp;#010;&amp;#010;@return the value of m_conversionMap" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1760" tag="hblock_tag_10" canDelete="false" indentLevel="1" classfield_id="1760" text="m_conversionMap = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_conversionMap&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1761" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1761" tag="tblock_11" canDelete="false" indentLevel="1" text="private boolean m_paintwetness;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1761" tag="hblock_tag_12" canDelete="false" indentLevel="1" classfield_id="1761" text="return m_paintwetness;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_paintwetness&amp;#010;&amp;#010;@return the value of m_paintwetness" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1761" tag="hblock_tag_13" canDelete="false" indentLevel="1" classfield_id="1761" text="m_paintwetness = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_paintwetness&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1762" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1762" tag="tblock_14" canDelete="false" indentLevel="1" text="private int phase;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1762" tag="hblock_tag_15" canDelete="false" indentLevel="1" classfield_id="1762" text="return phase;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of phase&amp;#010;&amp;#010;@return the value of phase" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1762" tag="hblock_tag_16" canDelete="false" indentLevel="1" classfield_id="1762" text="phase = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of phase&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1763" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1763" tag="tblock_17" canDelete="false" indentLevel="1" text="private int phasebig;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1763" tag="hblock_tag_18" canDelete="false" indentLevel="1" classfield_id="1763" text="return phasebig;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of phasebig&amp;#010;&amp;#010;@return the value of phasebig" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1763" tag="hblock_tag_19" canDelete="false" indentLevel="1" classfield_id="1763" text="phasebig = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of phasebig&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1749" tqparent_class="1749" fileExt=".java" fileName="WetPix*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1749" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class WetPix*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public WetPix* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1753" tqparent_class="1753" fileExt=".java" fileName="WetPack*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1753" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class WetPack*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public WetPack* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1756" tqparent_class="1756" fileExt=".java" fileName="Q_UINT32*" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1756" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Q_UINT32*&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Q_UINT32* ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1759" tqparent_class="1759" fileExt=".java" fileName="QMap" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1759" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class QMap&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public QMap ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="WetAndSticky" id="1765" tqparent_class="1765" fileExt=".java" fileName="enumDirection" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" text="package WetAndSticky;&amp;#010;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1765" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class EnumDirection&amp;#010;A color is specified as a vector in HLS space.  Hue is a value&amp;#010;in the range 0..360 degrees with 0 degrees being red.  Saturation&amp;#010;and Lightness are both in the range [0,1].  A lightness of 0 means&amp;#010;black, with 1 being white.  A totally saturated color has saturation&amp;#010;of 1." />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public EnumDirection ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="WetAndSticky" id="1771" tqparent_class="1771" fileExt=".java" fileName="CELL" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" text="package WetAndSticky;&amp;#010;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1771" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class CELL&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public CELL ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="WetAndSticky" id="1772" tqparent_class="1772" fileExt=".java" fileName="cell" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" text="package WetAndSticky;&amp;#010;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1772" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class Cell&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public Cell ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="WetAndSticky" id="1773" tqparent_class="1773" fileExt=".java" fileName="CELL_PTR" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" text="package WetAndSticky;&amp;#010;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1773" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class CELL_PTR&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public CELL_PTR ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="1774" tqparent_class="1774" fileExt=".java" fileName="KisWetStickyColorSpace" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" text="&amp;#010;import KisAbstractColorSpace;&amp;#010;import KisProfileSP;&amp;#010;import QUANTUM;&amp;#010;import KisPixelRO;&amp;#010;import KisPixel;&amp;#010;import vKisChannelInfoSP;&amp;#010;import bool;&amp;#010;import Q_INT32;&amp;#010;import QString;&amp;#010;import Q_UINT32;&amp;#010;import QImage;&amp;#010;import Q_INT8;&amp;#010;import Q_UINT8;&amp;#010;import KisCompositeOpList;" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="1774" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Class KisWetStickyColorSpace&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks>
-          <ccfdeclarationcodeblock tqparent_id="1895" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-           <header>
-            <codecomment tag="" indentLevel="1" />
-           </header>
-          </ccfdeclarationcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisWetStickyColorSpace ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks>
-              <codeaccessormethod accessType="0" tqparent_id="1895" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1895" text="return m_channels;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-               </header>
-              </codeaccessormethod>
-              <codeaccessormethod accessType="1" tqparent_id="1895" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1895" text="m_channels = value;" >
-               <header>
-                <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-               </header>
-              </codeaccessormethod>
-             </textblocks>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks>
-            <codeoperation tqparent_id="1778" tag="operation_1778" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1779" tag="operation_1779" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1780" tag="operation_1780" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1784" tag="operation_1784" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param dst &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1789" tag="operation_1789" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param alpha &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1792" tag="operation_1792" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1796" tag="operation_1796" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param c &amp;#010;@param opacity &amp;#010;@param profile &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1801" tag="operation_1801" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixelRO  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1804" tag="operation_1804" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param profile &amp;#010;@return KisPixel  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1807" tag="operation_1807" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return vKisChannelInfoSP  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1808" tag="operation_1808" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return boolean  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1809" tag="operation_1809" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1810" tag="operation_1810" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1811" tag="operation_1811" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1812" tag="operation_1812" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return Q_INT32  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1813" tag="operation_1813" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1816" tag="operation_1816" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixel &amp;#010;@param channelIndex &amp;#010;@return QString  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1819" tag="operation_1819" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param data &amp;#010;@param width &amp;#010;@param height &amp;#010;@param srcProfile &amp;#010;@param dstProfile &amp;#010;@param renderingIntent &amp;#010;@param exposure &amp;#010;@return QImage  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1827" tag="operation_1827" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src1 &amp;#010;@param adjust &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1830" tag="operation_1830" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param dst &amp;#010;@param brightness &amp;#010;@param contrast &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1836" tag="operation_1836" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param colors &amp;#010;@param weights &amp;#010;@param nColors &amp;#010;@param dst &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1841" tag="operation_1841" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param pixels &amp;#010;@param alpha &amp;#010;@param nPixels &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1845" tag="operation_1845" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@return KisCompositeOpList  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1846" tag="operation_1846" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowSize &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param srcAlphaMask &amp;#010;@param tqmaskRowStride &amp;#010;@param opacity &amp;#010;@param rows &amp;#010;@param cols &amp;#010;@param op &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1857" tag="operation_1857" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param src &amp;#010;@param srcProfile &amp;#010;@param dst &amp;#010;@param dstColorStrategy &amp;#010;@param dstProfile &amp;#010;@param numPixels &amp;#010;@param renderingIntent &amp;#010;@return boolean  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1865" tag="operation_1865" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1875" tag="operation_1875" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-            <codeoperation tqparent_id="1885" tag="operation_1885" canDelete="false" indentLevel="1" >
-             <header>
-              <javacodedocumentation tag="" indentLevel="1" text="&amp;#010;@param dst &amp;#010;@param dstRowStride &amp;#010;@param src &amp;#010;@param srcRowStride &amp;#010;@param tqmask &amp;#010;@param tqmaskRowStride &amp;#010;@param rows &amp;#010;@param columns &amp;#010;@param opacity &amp;#010;@return void  " />
-             </header>
-            </codeoperation>
-           </textblocks>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="1775" field_type="144905952" initialValue="" role_id="1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1775" tag="" canDelete="false" writeOutText="false" indentLevel="1" role_id="0" text="public KisAbstractColorSpace  = new KisAbstractColorSpace ( );" >
-        <header>
-         <codecomment tag="" writeOutText="false" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1775" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1775" role_id="0" text="return ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of &amp;#010;&amp;#010;@return the value of " />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1775" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1775" role_id="0" text=" = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of &amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="2" tqparent_id="1775" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1775" role_id="0" text=".add(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Add an object of type KisAbstractColorSpace to the List &amp;#010;&amp;#010;@return void" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="3" tqparent_id="1775" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1775" role_id="0" text=".remove(value);" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Remove an object of type KisAbstractColorSpace from the List &amp;#010;" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="4" tqparent_id="1775" tag="" canDelete="false" writeOutText="false" indentLevel="1" classfield_id="1775" role_id="0" text="return (List) ;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the list of &amp;#010;&amp;#010;@return List of " />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="1895" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <codecomment tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="1895" tag="tblock_0" canDelete="false" indentLevel="1" text="private vKisChannelInfoSP m_channels;" >
-        <header>
-         <codecomment tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="1895" tag="hblock_tag_0" canDelete="false" indentLevel="1" classfield_id="1895" text="return m_channels;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Get the value of m_channels&amp;#010;&amp;#010;@return the value of m_channels" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="1895" tag="hblock_tag_1" canDelete="false" indentLevel="1" classfield_id="1895" text="m_channels = value;" >
-        <header>
-         <javacodedocumentation tag="" indentLevel="1" text="Set the value of m_channels&amp;#010;&amp;#010;" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="12050" tqparent_class="12050" fileExt=".java" fileName="KisColorSpaceDescriptor" >
-     <textblocks>
-      <codeblockwithcomments tag="packages" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <codeblockwithcomments tag="imports" writeOutText="false" >
-       <header>
-        <codecomment tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <javaclassdeclarationblock tqparent_id="12050" tag="ClassDeclBlock" canDelete="false" >
-       <header>
-        <javacodedocumentation tag="" text="Interface KisColorSpaceDescriptor&amp;#010;" />
-       </header>
-       <textblocks>
-        <hierarchicalcodeblock tag="fieldsDecl" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" writeOutText="false" indentLevel="1" text="Fields" />
-         </header>
-         <textblocks/>
-        </hierarchicalcodeblock>
-        <hierarchicalcodeblock tag="methodsBlock" canDelete="false" indentLevel="1" >
-         <header>
-          <codecomment tag="" indentLevel="1" text="Methods" />
-         </header>
-         <textblocks>
-          <hierarchicalcodeblock tag="constructorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Constructors" />
-           </header>
-           <textblocks>
-            <codeblockwithcomments tag="emptyconstructor" writeOutText="false" indentLevel="1" text="public KisColorSpaceDescriptor ( ) { }" >
-             <header>
-              <codecomment tag="" indentLevel="1" text="Empty Constructor" />
-             </header>
-            </codeblockwithcomments>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="accessorMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Accessor Methods" />
-           </header>
-           <textblocks>
-            <hierarchicalcodeblock tag="staticAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-            <hierarchicalcodeblock tag="regularAccessorMethods" canDelete="false" indentLevel="1" >
-             <header>
-              <codecomment tag="" writeOutText="false" indentLevel="1" />
-             </header>
-             <textblocks/>
-            </hierarchicalcodeblock>
-           </textblocks>
-          </hierarchicalcodeblock>
-          <hierarchicalcodeblock tag="operationMethods" canDelete="false" indentLevel="1" >
-           <header>
-            <codecomment tag="" indentLevel="1" text="Operations" />
-           </header>
-           <textblocks/>
-          </hierarchicalcodeblock>
-         </textblocks>
-        </hierarchicalcodeblock>
-       </textblocks>
-      </javaclassdeclarationblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-   </codegenerator>
-   <codegenerator language="Cpp" >
-    <classifiercodedocument writeOutCode="true" package="" id="11" tqparent_class="11" fileExt=".cpp" fileName="qpainter" >
-     <textblocks>
-      <codeblockwithcomments tag="includes" text="#include &quot;qpainter.h&quot;&amp;#010;" >
-       <header>
-        <cppcodedocumentation tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <hierarchicalcodeblock tag="constructionMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Constructors/Destructors" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-      <hierarchicalcodeblock tag="otherMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Methods" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="12" tqparent_class="12" fileExt=".cpp" fileName="kisiteratorpixel" >
-     <textblocks>
-      <codeblockwithcomments tag="includes" text="#include &quot;kisiteratorpixel.h&quot;&amp;#010;" >
-       <header>
-        <cppcodedocumentation tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <hierarchicalcodeblock tag="constructionMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Constructors/Destructors" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-      <hierarchicalcodeblock tag="otherMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Methods" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="13" tqparent_class="13" fileExt=".cpp" fileName="kispixel" >
-     <textblocks>
-      <codeblockwithcomments tag="includes" text="#include &quot;kispixel.h&quot;&amp;#010;" >
-       <header>
-        <cppcodedocumentation tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <hierarchicalcodeblock tag="constructionMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Constructors/Destructors" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-      <hierarchicalcodeblock tag="otherMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Methods" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="14" tqparent_class="14" fileExt=".cpp" fileName="kispixelro" >
-     <textblocks>
-      <codeblockwithcomments tag="includes" text="#include &quot;kispixelro.h&quot;&amp;#010;" >
-       <header>
-        <cppcodedocumentation tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <hierarchicalcodeblock tag="constructionMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Constructors/Destructors" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-      <hierarchicalcodeblock tag="otherMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Methods" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="15" tqparent_class="15" fileExt=".cpp" fileName="kisprofilepair" >
-     <textblocks>
-      <codeblockwithcomments tag="includes" text="#include &quot;kisprofilepair.h&quot;&amp;#010;" >
-       <header>
-        <cppcodedocumentation tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <hierarchicalcodeblock tag="constructionMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Constructors/Destructors" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-      <hierarchicalcodeblock tag="otherMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Methods" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="17" tqparent_class="17" fileExt=".cpp" fileName="transform" >
-     <textblocks>
-      <codeblockwithcomments tag="includes" text="#include &quot;transform.h&quot;&amp;#010;" >
-       <header>
-        <cppcodedocumentation tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <hierarchicalcodeblock tag="constructionMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Constructors/Destructors" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-      <hierarchicalcodeblock tag="otherMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Methods" />
-       </header>
-       <textblocks>
-        <codeaccessormethod accessType="0" tqparent_id="19" tag="hblock_tag_0" canDelete="false" writeOutText="false" classfield_id="19" text="return srcProfile;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="19" tag="hblock_tag_1" canDelete="false" writeOutText="false" classfield_id="19" text="srcProfile = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="21" tag="hblock_tag_2" canDelete="false" writeOutText="false" classfield_id="21" text="return srcCmType;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="21" tag="hblock_tag_3" canDelete="false" writeOutText="false" classfield_id="21" text="srcCmType = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="22" tag="hblock_tag_4" canDelete="false" writeOutText="false" classfield_id="22" text="return dstProfile;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="22" tag="hblock_tag_5" canDelete="false" writeOutText="false" classfield_id="22" text="dstProfile = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="23" tag="hblock_tag_6" canDelete="false" writeOutText="false" classfield_id="23" text="return dstType;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="23" tag="hblock_tag_7" canDelete="false" writeOutText="false" classfield_id="23" text="dstType = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="24" tag="hblock_tag_8" canDelete="false" writeOutText="false" classfield_id="24" text="return renderIntent;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="24" tag="hblock_tag_9" canDelete="false" writeOutText="false" classfield_id="24" text="renderIntent = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-       </textblocks>
-      </hierarchicalcodeblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields>
-      <codeclassfield tqparent_id="19" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <cppcodedocumentation tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="19" tag="" canDelete="false" indentLevel="1" text="FIX ME;" >
-        <header>
-         <cppcodedocumentation tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="19" tag="hblock_tag_0" canDelete="false" writeOutText="false" classfield_id="19" text="return srcProfile;" >
-        <header>
-         <cppcodedocumentation tag="" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="19" tag="hblock_tag_1" canDelete="false" writeOutText="false" classfield_id="19" text="srcProfile = value;" >
-        <header>
-         <cppcodedocumentation tag="" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="21" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <cppcodedocumentation tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="21" tag="" canDelete="false" indentLevel="1" text="FIX ME;" >
-        <header>
-         <cppcodedocumentation tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="21" tag="hblock_tag_2" canDelete="false" writeOutText="false" classfield_id="21" text="return srcCmType;" >
-        <header>
-         <cppcodedocumentation tag="" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="21" tag="hblock_tag_3" canDelete="false" writeOutText="false" classfield_id="21" text="srcCmType = value;" >
-        <header>
-         <cppcodedocumentation tag="" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="22" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <cppcodedocumentation tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="22" tag="" canDelete="false" indentLevel="1" text="FIX ME;" >
-        <header>
-         <cppcodedocumentation tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="22" tag="hblock_tag_4" canDelete="false" writeOutText="false" classfield_id="22" text="return dstProfile;" >
-        <header>
-         <cppcodedocumentation tag="" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="22" tag="hblock_tag_5" canDelete="false" writeOutText="false" classfield_id="22" text="dstProfile = value;" >
-        <header>
-         <cppcodedocumentation tag="" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="23" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <cppcodedocumentation tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="23" tag="" canDelete="false" indentLevel="1" text="FIX ME;" >
-        <header>
-         <cppcodedocumentation tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="23" tag="hblock_tag_6" canDelete="false" writeOutText="false" classfield_id="23" text="return dstType;" >
-        <header>
-         <cppcodedocumentation tag="" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="23" tag="hblock_tag_7" canDelete="false" writeOutText="false" classfield_id="23" text="dstType = value;" >
-        <header>
-         <cppcodedocumentation tag="" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-      <codeclassfield tqparent_id="24" field_type="0" initialValue="" role_id="-1" writeOutMethods="true" listClassName="" >
-       <header>
-        <cppcodedocumentation tag="" />
-       </header>
-       <ccfdeclarationcodeblock tqparent_id="24" tag="" canDelete="false" indentLevel="1" text="FIX ME;" >
-        <header>
-         <cppcodedocumentation tag="" indentLevel="1" />
-        </header>
-       </ccfdeclarationcodeblock>
-       <codeaccessormethod accessType="0" tqparent_id="24" tag="hblock_tag_8" canDelete="false" writeOutText="false" classfield_id="24" text="return renderIntent;" >
-        <header>
-         <cppcodedocumentation tag="" />
-        </header>
-       </codeaccessormethod>
-       <codeaccessormethod accessType="1" tqparent_id="24" tag="hblock_tag_9" canDelete="false" writeOutText="false" classfield_id="24" text="renderIntent = value;" >
-        <header>
-         <cppcodedocumentation tag="" />
-        </header>
-       </codeaccessormethod>
-      </codeclassfield>
-     </classfields>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="18" tqparent_class="18" fileExt=".cpp" fileName="kisprofile" >
-     <textblocks>
-      <codeblockwithcomments tag="includes" text="#include &quot;kisprofile.h&quot;&amp;#010;" >
-       <header>
-        <cppcodedocumentation tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <hierarchicalcodeblock tag="constructionMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Constructors/Destructors" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-      <hierarchicalcodeblock tag="otherMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Methods" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="20" tqparent_class="20" fileExt=".cpp" fileName="q_uint32" >
-     <textblocks>
-      <codeblockwithcomments tag="includes" text="#include &quot;q_uint32.h&quot;&amp;#010;" >
-       <header>
-        <cppcodedocumentation tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <hierarchicalcodeblock tag="constructionMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Constructors/Destructors" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-      <hierarchicalcodeblock tag="otherMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Methods" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="25" tqparent_class="25" fileExt=".cpp" fileName="struct kiscoloradjustment" >
-     <textblocks>
-      <codeblockwithcomments tag="includes" text="#include &quot;struct kiscoloradjustment.h&quot;&amp;#010;" >
-       <header>
-        <cppcodedocumentation tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <hierarchicalcodeblock tag="constructionMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Constructors/Destructors" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-      <hierarchicalcodeblock tag="otherMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Methods" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-     </textblocks>
-     <header>
-      <codecomment tag="" />
-     </header>
-     <classfields/>
-    </classifiercodedocument>
-    <classifiercodedocument writeOutCode="true" package="" id="26" tqparent_class="26" fileExt=".cpp" fileName="kisabstractcolorspace" >
-     <textblocks>
-      <codeblockwithcomments tag="includes" text="#include &quot;kisabstractcolorspace.h&quot;&amp;#010;" >
-       <header>
-        <cppcodedocumentation tag="" writeOutText="false" />
-       </header>
-      </codeblockwithcomments>
-      <hierarchicalcodeblock tag="constructionMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Constructors/Destructors" />
-       </header>
-       <textblocks/>
-      </hierarchicalcodeblock>
-      <hierarchicalcodeblock tag="otherMethodsBlock" canDelete="false" >
-       <header>
-        <cppcodedocumentation tag="" text="Methods" />
-       </header>
-       <textblocks>
-        <codeaccessormethod accessType="0" tqparent_id="227" tag="hblock_tag_0" canDelete="false" writeOutText="false" classfield_id="227" text="return m_profileFilenames;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="227" tag="hblock_tag_1" canDelete="false" writeOutText="false" classfield_id="227" text="m_profileFilenames = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="228" tag="hblock_tag_2" canDelete="false" writeOutText="false" classfield_id="228" text="return m_defaultProfile;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="228" tag="hblock_tag_3" canDelete="false" writeOutText="false" classfield_id="228" text="m_defaultProfile = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="229" tag="hblock_tag_4" canDelete="false" writeOutText="false" classfield_id="229" text="return m_qcolordata;" >
-         <header>
-          <cppcodedocumentation tag="" text="Get the value of m_qcolordata&amp;#010;// A small buffer for conversion from and to qcolor.&amp;#010;@return the value of m_qcolordata" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="229" tag="hblock_tag_5" canDelete="false" writeOutText="false" classfield_id="229" text="m_qcolordata = value;" >
-         <header>
-          <cppcodedocumentation tag="" text="Set the value of m_qcolordata&amp;#010;// A small buffer for conversion from and to qcolor.&amp;#010;@param value the value of m_qcolordata" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="230" tag="hblock_tag_6" canDelete="false" writeOutText="false" classfield_id="230" text="return m_alphaPos;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="230" tag="hblock_tag_7" canDelete="false" writeOutText="false" classfield_id="230" text="m_alphaPos = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="231" tag="hblock_tag_8" canDelete="false" writeOutText="false" classfield_id="231" text="return m_alphaSize;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="231" tag="hblock_tag_9" canDelete="false" writeOutText="false" classfield_id="231" text="m_alphaSize = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="232" tag="hblock_tag_10" canDelete="false" writeOutText="false" classfield_id="232" text="return m_defaultToRGB;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="232" tag="hblock_tag_11" canDelete="false" writeOutText="false" classfield_id="232" text="m_defaultToRGB = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="233" tag="hblock_tag_12" canDelete="false" writeOutText="false" classfield_id="233" text="return m_defaultFromRGB;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="233" tag="hblock_tag_13" canDelete="false" writeOutText="false" classfield_id="233" text="m_defaultFromRGB = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="234" tag="hblock_tag_14" canDelete="false" writeOutText="false" classfield_id="234" text="return m_id;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="234" tag="hblock_tag_15" canDelete="false" writeOutText="false" classfield_id="234" text="m_id = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="235" tag="hblock_tag_16" canDelete="false" writeOutText="false" classfield_id="235" text="return m_cmType;" >
-         <header>
-          <cppcodedocumentation tag="" text="Get the value of m_cmType&amp;#010;// The colorspace type as defined by littlecms&amp;#010;@return the value of m_cmType" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="235" tag="hblock_tag_17" canDelete="false" writeOutText="false" classfield_id="235" text="m_cmType = value;" >
-         <header>
-          <cppcodedocumentation tag="" text="Set the value of m_cmType&amp;#010;// The colorspace type as defined by littlecms&amp;#010;@param value the value of m_cmType" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="236" tag="hblock_tag_18" canDelete="false" writeOutText="false" classfield_id="236" text="return m_colorSpaceSignature;" >
-         <header>
-          <cppcodedocumentation tag="" text="Get the value of m_colorSpaceSignature&amp;#010;// The colorspace signature as defined in icm/icc files&amp;#010;@return the value of m_colorSpaceSignature" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="236" tag="hblock_tag_19" canDelete="false" writeOutText="false" classfield_id="236" text="m_colorSpaceSignature = value;" >
-         <header>
-          <cppcodedocumentation tag="" text="Set the value of m_colorSpaceSignature&amp;#010;// The colorspace signature as defined in icm/icc files&amp;#010;@param value the value of m_colorSpaceSignature" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="238" tag="hblock_tag_20" canDelete="false" writeOutText="false" classfield_id="238" text="return m_transforms;" >
-         <header>
-          <cppcodedocumentation tag="" text="Get the value of m_transforms&amp;#010;// Cache for existing transforms&amp;#010;@return the value of m_transforms" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="238" tag="hblock_tag_21" canDelete="false" writeOutText="false" classfield_id="238" text="m_transforms = value;" >
-         <header>
-          <cppcodedocumentation tag="" text="Set the value of m_transforms&amp;#010;// Cache for existing transforms&amp;#010;@param value the value of m_transforms" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="245" tag="hblock_tag_22" canDelete="false" writeOutText="false" classfield_id="245" text="return m_cachesize;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="245" tag="hblock_tag_23" canDelete="false" writeOutText="false" classfield_id="245" text="m_cachesize = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="0" tqparent_id="246" tag="hblock_tag_24" canDelete="false" writeOutText="false" classfield_id="246" text="return m_conversionCache;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeaccessormethod accessType="1" tqparent_id="246" tag="hblock_tag_25" canDelete="false" writeOutText="false" classfield_id="246" text="m_conversionCache = value;" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeaccessormethod>
-        <codeoperation tqparent_id="31" tag="operation_31" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" text="Create a new colorspace strategy.&amp;#010;&amp;#010;@param id The Krita identification of this color model.&amp;#010;@param cmType The littlecms colorstrategy type we wrap.&amp;#010;@param colorSpaceSignature The icc signature for the colorspace we are." />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="40" tag="operation_40" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="41" tag="operation_41" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" text="//========== Channels =====================================================//// Return a vector describing all the channels this color model has." />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="43" tag="operation_43" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" text="The total number of channels for a single pixel in this color model" />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="45" tag="operation_45" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" text="The total number of color channels (excludes alpha and substance) for a single&amp;#010;pixel in this color model." />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="46" tag="operation_46" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="47" tag="operation_47" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" text="The size in bytes of a single pixel in this color model" />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="48" tag="operation_48" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" text="Whether this color model has a channel of type ALPHA" />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="50" tag="operation_50" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="51" tag="operation_51" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="52" tag="operation_52" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" text="Return a string with the channel's value suitable for display in the gui." />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="58" tag="operation_58" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" text="Return a string with the channel's value with integer&amp;#010;channels normalised to the floating point range 0 to 1, if appropriate." />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="61" tag="operation_61" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="62" tag="operation_62" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="64" tag="operation_64" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="65" tag="operation_65" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="67" tag="operation_67" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="68" tag="operation_68" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" text="//========== Capabilities =================================================///**&amp;#010;Returns the list of user-visible composite ops supported by this colourspace. Internal&amp;#010;ops such as COPY, CLEAR, and ERASE, are not included as these make no sense&amp;#010;for layers in the full image model." />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="70" tag="operation_70" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" />
-         </header>
-        </codeoperation>
-        <codeoperation tqparent_id="71" tag="operation_71" canDelete="false" writeOutText="false" >
-         <header>
-          <cppcodedocumentation tag="" text="//========== Display profiles =================