[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [calligra] krita: Fix color management of the display
From:       Boudewijn Rempt <boud () valdyas ! org>
Date:       2011-10-31 22:16:13
Message-ID: 20111031221613.3BDF3A60A6 () git ! kde ! org
[Download RAW message or body]

Git commit 9aa2199a9babe326b8d07e64c20382f556d6038a by Boudewijn Rempt.
Committed on 31/10/2011 at 23:14.
Pushed by rempt into branch 'master'.

Fix color management of the display

BUG:285382

We took the display profile from the kritarc config file, which when it's
set by colord or anything else wrong. So make sure that it's easy to get
the correct colorprofile and use that everywhere.

M  +2    -2    krita/benchmarks/kis_painter_benchmark.cpp
M  +1    -1    krita/image/kis_fixed_paint_device.h
M  +5    -4    krita/image/kis_paint_device.cc
M  +3    -3    krita/image/kis_paint_device.h
M  +2    -2    krita/image/kis_pattern.cc
M  +3    -3    krita/image/tests/kis_async_merger_test.cpp
M  +8    -8    krita/image/tests/kis_convolution_painter_test.cpp
M  +1    -1    krita/image/tests/kis_cs_conversion_test.cpp
M  +1    -1    krita/image/tests/kis_filter_job_test.cpp
M  +1    -1    krita/image/tests/kis_filter_mask_test.cpp
M  +8    -8    krita/image/tests/kis_filter_selections_benchmark.cpp
M  +3    -3    krita/image/tests/kis_filter_test.cpp
M  +6    -6    krita/image/tests/kis_fixed_paint_device_test.cpp
M  +10   -10   krita/image/tests/kis_paint_device_test.cpp
M  +1    -1    krita/image/tests/kis_processings_test.cpp
M  +14   -14   krita/image/tests/kis_transform_worker_test.cpp
M  +2    -2    krita/image/tests/kis_update_scheduler_test.cpp
M  +1    -1    krita/plugins/extensions/dockers/defaultdockers/kis_drop_button.cpp
M  +2    -2    krita/plugins/extensions/painterlyframework/mixercanvas.cpp
M  +4    -4    krita/plugins/filters/tests/kis_all_filter_test.cpp
M  +1    -1    krita/plugins/filters/tests/kis_crash_filter_test.cpp
M  +3    -3    krita/plugins/formats/bmp/kis_bmp_import.cpp
M  +2    -2    krita/plugins/formats/pdf/kis_pdf_import.cpp
M  +1    -1    krita/plugins/paintops/mypaint/tests/kis_mypaint_surface_test.cpp
M  +1    -1    krita/plugins/paintops/spray/spray_brush.cpp
M  +2    -2    krita/plugins/tools/defaulttools/tests/move_stroke_test.cpp
M  +8    -3    krita/ui/canvas/kis_canvas2.cpp
M  +6    -4    krita/ui/canvas/kis_image_pyramid.cpp
M  +3    -2    krita/ui/canvas/kis_prescaled_projection.cpp
M  +1    -1    krita/ui/flake/kis_shape_layer_canvas.cpp
M  +2    -3    krita/ui/kis_canvas_resource_provider.cpp
M  +1    -1    krita/ui/kis_canvas_resource_provider.h
M  +6    -7    krita/ui/kis_clipboard.cc
M  +10   -2    krita/ui/kis_config.cc
M  +3    -0    krita/ui/kis_config.h
M  +2    -3    krita/ui/kis_doc2.cc
M  +6    -8    krita/ui/kis_mimedata.cpp
M  +15   -16   krita/ui/kis_view2.cpp
M  +4    -4    krita/ui/tests/kis_prescaled_projection_test.cpp
M  +4    -2    krita/ui/widgets/kis_scratch_pad.cpp

http://commits.kde.org/calligra/9aa2199a9babe326b8d07e64c20382f556d6038a

diff --git a/krita/benchmarks/kis_painter_benchmark.cpp \
b/krita/benchmarks/kis_painter_benchmark.cpp index b1cfb52..20229b5 100644
--- a/krita/benchmarks/kis_painter_benchmark.cpp
+++ b/krita/benchmarks/kis_painter_benchmark.cpp
@@ -149,7 +149,7 @@ void KisPainterBenchmark::benchmarkFixedBitBlt()
     img.fill(255);
 
     KisFixedPaintDeviceSP fdev = new KisFixedPaintDevice(m_colorSpace);
-    fdev->convertFromQImage(img, "");
+    fdev->convertFromQImage(img, 0);
 
     KisPaintDeviceSP dst = new KisPaintDevice(m_colorSpace);
     KisPainter gc(dst);
@@ -170,7 +170,7 @@ void KisPainterBenchmark::benchmarkFixedBitBltSelection()
     img.fill(128);
 
     KisFixedPaintDeviceSP fdev = new KisFixedPaintDevice(m_colorSpace);
-    fdev->convertFromQImage(img, "");
+    fdev->convertFromQImage(img, 0);
 
     KisPaintDeviceSP dst = new KisPaintDevice(m_colorSpace);
 
diff --git a/krita/image/kis_fixed_paint_device.h \
b/krita/image/kis_fixed_paint_device.h index 239d96f..33fbbc1 100644
--- a/krita/image/kis_fixed_paint_device.h
+++ b/krita/image/kis_fixed_paint_device.h
@@ -112,7 +112,7 @@ public:
     /**
      * Fill this paint device with the data from image
      *
-     * @param srcProfileName name of the RGB profile to interpret the image as. "" \
is interpreted as sRGB +     * @param srcProfileName name of the RGB profile to \
                interpret the image as. 0 is interpreted as sRGB
      */
     virtual void convertFromQImage(const QImage& image, const QString \
&srcProfileName);  
diff --git a/krita/image/kis_paint_device.cc b/krita/image/kis_paint_device.cc
index 181e901..5b652e6 100644
--- a/krita/image/kis_paint_device.cc
+++ b/krita/image/kis_paint_device.cc
@@ -646,7 +646,7 @@ void KisPaintDevice::setDataManager(KisDataManagerSP data, const \
KoColorSpace *  }
 }
 
-void KisPaintDevice::convertFromQImage(const QImage& _image, const QString \
&srcProfileName, +void KisPaintDevice::convertFromQImage(const QImage& _image, const \
KoColorProfile *profile,  qint32 offsetX, qint32 offsetY)
 {
     QImage image = _image;
@@ -655,12 +655,13 @@ void KisPaintDevice::convertFromQImage(const QImage& _image, \
const QString &srcP  image = image.convertToFormat(QImage::Format_ARGB32);
     }
     // Don't convert if not no profile is given and both paint dev and qimage are \
                rgba.
-    if (srcProfileName.isEmpty() && colorSpace()->id() == "RGBA") {
+    if (!profile && colorSpace()->id() == "RGBA") {
         writeBytes(image.bits(), offsetX, offsetY, image.width(), image.height());
     } else {
+        Q_ASSERT(profile);
         quint8 * dstData = new quint8[image.width() * image.height() * pixelSize()];
         KoColorSpaceRegistry::instance()
-                ->colorSpace(RGBAColorModelID.id(), Integer8BitsColorDepthID.id(), \
srcProfileName) +                ->colorSpace(RGBAColorModelID.id(), \
                Integer8BitsColorDepthID.id(), profile)
                 ->convertPixelsTo(image.bits(), dstData, colorSpace(), image.width() \
* image.height());  
         writeBytes(dstData, offsetX, offsetY, image.width(), image.height());
@@ -669,7 +670,7 @@ void KisPaintDevice::convertFromQImage(const QImage& _image, \
const QString &srcP  m_d->cache.invalidate();
 }
 
-QImage KisPaintDevice::convertToQImage(const KoColorProfile *  dstProfile) const
+QImage KisPaintDevice::convertToQImage(const KoColorProfile *dstProfile) const
 {
     qint32 x1;
     qint32 y1;
diff --git a/krita/image/kis_paint_device.h b/krita/image/kis_paint_device.h
index ceceaae..96070d3 100644
--- a/krita/image/kis_paint_device.h
+++ b/krita/image/kis_paint_device.h
@@ -409,9 +409,9 @@ public:
 
     /**
      * Fill this paint device with the data from image; starting at (offsetX, \
                offsetY)
-     * @param srcProfileName name of the RGB profile to interpret the image as. "" \
is interpreted as sRGB +     * @param srcProfileName name of the RGB profile to \
                interpret the image as. 0 is interpreted as sRGB
      */
-    virtual void convertFromQImage(const QImage& image, const QString \
&srcProfileName, qint32 offsetX = 0, qint32 offsetY = 0); +    virtual void \
convertFromQImage(const QImage& image, const KoColorProfile *profile, qint32 offsetX \
= 0, qint32 offsetY = 0);  
     /**
      * Create an RGBA QImage from a rectangle in the paint device.
@@ -424,7 +424,7 @@ public:
      * case it's up to the color strategy to choose a profile (most
      * like sRGB).
      */
-    virtual QImage convertToQImage(const KoColorProfile *  dstProfile, qint32 x, \
qint32 y, qint32 w, qint32 h) const; +    virtual QImage convertToQImage(const \
KoColorProfile *dstProfile, qint32 x, qint32 y, qint32 w, qint32 h) const;  
     /**
      * Create an RGBA QImage from a rectangle in the paint device. The
diff --git a/krita/image/kis_pattern.cc b/krita/image/kis_pattern.cc
index a4cbda1..9340e56 100644
--- a/krita/image/kis_pattern.cc
+++ b/krita/image/kis_pattern.cc
@@ -50,7 +50,7 @@ KisPattern::KisPattern(const QString& file)
 }
 
 KisPattern::KisPattern(const QImage &image, const QString &name)
-        : KoPattern("")
+        : KoPattern(0)
 {
     setImage(image);
     setName(name);
@@ -63,7 +63,7 @@ KisPattern::~KisPattern()
 KisPaintDeviceSP KisPattern::paintDevice(const KoColorSpace * colorSpace) const
 {
     KisPaintDevice* dev = new KisPaintDevice(colorSpace, name());
-    dev->convertFromQImage(image(), "");
+    dev->convertFromQImage(image(), 0);
     return dev;
 }
 
diff --git a/krita/image/tests/kis_async_merger_test.cpp \
b/krita/image/tests/kis_async_merger_test.cpp index 1e7a7d0..8a51d82 100644
--- a/krita/image/tests/kis_async_merger_test.cpp
+++ b/krita/image/tests/kis_async_merger_test.cpp
@@ -59,8 +59,8 @@ void KisAsyncMergerTest::testMerger()
 
     KisPaintDeviceSP device1 = new KisPaintDevice(colorSpace);
     KisPaintDeviceSP device2 = new KisPaintDevice(colorSpace);
-    device1->convertFromQImage(sourceImage1, "", 0, 0);
-    device2->convertFromQImage(sourceImage2, "", 0, 0);
+    device1->convertFromQImage(sourceImage1, 0, 0, 0);
+    device2->convertFromQImage(sourceImage2, 0, 0, 0);
 
     KisFilterSP filter = KisFilterRegistry::instance()->value("blur");
     Q_ASSERT(filter);
@@ -144,7 +144,7 @@ void KisAsyncMergerTest::debugObligeChild()
 
     QImage sourceImage1(QString(FILES_DATA_DIR) + QDir::separator() + \
"hakonepa.png");  KisPaintDeviceSP device1 = new KisPaintDevice(colorSpace);
-    device1->convertFromQImage(sourceImage1, "", 0, 0);
+    device1->convertFromQImage(sourceImage1, 0, 0, 0);
 
     KisLayerSP paintLayer1 = new KisPaintLayer(image, "paint1", OPACITY_OPAQUE_U8, \
                device1);
     KisLayerSP groupLayer = new KisGroupLayer(image, "group", OPACITY_OPAQUE_U8);
diff --git a/krita/image/tests/kis_convolution_painter_test.cpp \
b/krita/image/tests/kis_convolution_painter_test.cpp index 44bed89..c1dc024 100644
--- a/krita/image/tests/kis_convolution_painter_test.cpp
+++ b/krita/image/tests/kis_convolution_painter_test.cpp
@@ -114,7 +114,7 @@ void KisConvolutionPainterTest::testIdentityConvolution()
     QImage qimage(QString(FILES_DATA_DIR) + QDir::separator() + "hakonepa.png");
 
     KisPaintDeviceSP dev = new \
                KisPaintDevice(KoColorSpaceRegistry::instance()->rgb8());
-    dev->convertFromQImage(qimage, "", 0, 0);
+    dev->convertFromQImage(qimage, 0, 0, 0);
 
     KisConvolutionKernelSP kernel = new KisConvolutionKernel(3, 3, 0, 0);
     kernel->data()[0] = 0;
@@ -127,7 +127,7 @@ void KisConvolutionPainterTest::testIdentityConvolution()
     kernel->data()[7] = 0;
     kernel->data()[8] = 0;
     KisConvolutionPainter gc(dev);
-    gc.beginTransaction("");
+    gc.beginTransaction(0);
     gc.applyMatrix(kernel, dev, QPoint(0, 0), QPoint(0, 0), QSize(qimage.width(), \
qimage.height()));  gc.deleteTransaction();
 
@@ -155,7 +155,7 @@ void KisConvolutionPainterTest::testSymmConvolution()
     KisConvolutionKernelSP kernel =
         KisConvolutionKernel::fromMatrix(filter, offset, factor);
     KisConvolutionPainter gc(dev);
-    gc.beginTransaction("");
+    gc.beginTransaction(0);
     gc.applyMatrix(kernel, dev, imageRect.topLeft(), imageRect.topLeft(),
                    imageRect.size());
     gc.deleteTransaction();
@@ -176,11 +176,11 @@ void \
KisConvolutionPainterTest::testAsymmConvolutionImp(QBitArray channelFlags)  int \
pixelSize = -1;  QByteArray initialData;
     KisPaintDeviceSP dev = initAsymTestDevice(imageRect, pixelSize, initialData);
-    
+
     KisConvolutionKernelSP kernel =
         KisConvolutionKernel::fromMatrix(filter, offset, factor);
     KisConvolutionPainter gc(dev);
-    gc.beginTransaction("");
+    gc.beginTransaction(0);
     gc.setChannelFlags(channelFlags);
     gc.applyMatrix(kernel, dev, imageRect.topLeft(), imageRect.topLeft(),
                    imageRect.size());
@@ -206,7 +206,7 @@ void KisConvolutionPainterTest::testAsymmConvolutionImp(QBitArray \
                channelFlags)
                 referencePixel.data()[j] = isFiltered && channelFlags[j] ?
                     filteredPixel.data()[j] : srcPtr[j];
             }
-            
+
             if(memcmp(resPtr, referencePixel.data(), pixelSize)) {
                 printPixel("Actual:  ", pixelSize, resPtr);
                 printPixel("Expected:", pixelSize, referencePixel.data());
@@ -270,7 +270,7 @@ void KisConvolutionPainterTest::benchmarkConvolution()
     QRect imageRect(QPoint(), referenceImage.size());
 
     KisPaintDeviceSP dev = new \
                KisPaintDevice(KoColorSpaceRegistry::instance()->rgb8());
-    dev->convertFromQImage(referenceImage, "", 0, 0);
+    dev->convertFromQImage(referenceImage, 0, 0, 0);
 
     qreal offset = 0.0;
     qreal factor = 1.0;
@@ -289,7 +289,7 @@ void KisConvolutionPainterTest::benchmarkConvolution()
 
         // CALLGRIND_START_INSTRUMENTATION;
 
-        gc.beginTransaction("");
+        gc.beginTransaction(0);
         gc.applyMatrix(kernel, dev, imageRect.topLeft(), imageRect.topLeft(),
                        imageRect.size());
         gc.deleteTransaction();
diff --git a/krita/image/tests/kis_cs_conversion_test.cpp \
b/krita/image/tests/kis_cs_conversion_test.cpp index 2454a54..dc5b7b4 100644
--- a/krita/image/tests/kis_cs_conversion_test.cpp
+++ b/krita/image/tests/kis_cs_conversion_test.cpp
@@ -70,7 +70,7 @@ void KisCsConversionTest::testColorSpaceConversion()
         foreach(const KoColorSpace * dstCs,  colorSpaces) {
 
             KisPaintDeviceSP dev  = new KisPaintDevice(srcCs);
-            dev->convertFromQImage(image, "");
+            dev->convertFromQImage(image, 0);
             dev->move(10, 10);   // Unalign with tile boundaries
             dev->convertTo(dstCs);
 
diff --git a/krita/image/tests/kis_filter_job_test.cpp \
b/krita/image/tests/kis_filter_job_test.cpp index f51708b..0b779ef 100644
--- a/krita/image/tests/kis_filter_job_test.cpp
+++ b/krita/image/tests/kis_filter_job_test.cpp
@@ -71,7 +71,7 @@ void KisFilterJobTest::testInWeaver()
     QImage qimage(QString(FILES_DATA_DIR) + QDir::separator() + "hakonepa.png");
     QImage inverted(QString(FILES_DATA_DIR) + QDir::separator() + \
"inverted_hakonepa.png");  KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(qimage, "", 0, 0);
+    dev->convertFromQImage(qimage, 0, 0, 0);
 
     KisFilterJobFactory factory(f, kfc);
 
diff --git a/krita/image/tests/kis_filter_mask_test.cpp \
b/krita/image/tests/kis_filter_mask_test.cpp index d8fc7a5..e97948d 100644
--- a/krita/image/tests/kis_filter_mask_test.cpp
+++ b/krita/image/tests/kis_filter_mask_test.cpp
@@ -44,7 +44,7 @@ void KisFilterMaskTest::testCreation()
 
 #define initImage(image, layer, device, mask) do {                      \
     image = new KisImage(0, IMAGE_WIDTH, IMAGE_HEIGHT, 0, "tests");     \
-    layer = new KisPaintLayer(image, "", 100, device);         \
+    layer = new KisPaintLayer(image, 0, 100, device);         \
     image->addNode(layer);                                              \
     image->addNode(mask, layer);                                        \
     } while(0)
diff --git a/krita/image/tests/kis_filter_selections_benchmark.cpp \
b/krita/image/tests/kis_filter_selections_benchmark.cpp index 735646a..b929d6d 100644
--- a/krita/image/tests/kis_filter_selections_benchmark.cpp
+++ b/krita/image/tests/kis_filter_selections_benchmark.cpp
@@ -146,7 +146,7 @@ void KisFilterSelectionsBenchmark::testAll()
     const KoColorSpace *cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "hakonepa.png");
     m_device = new KisPaintDevice(cs);
-    m_device->convertFromQImage(image, "", 0, 0);
+    m_device->convertFromQImage(image, 0, 0, 0);
 
     testFilter("brightnesscontrast");
     testFilter("invert");
@@ -166,7 +166,7 @@ void KisFilterSelectionsBenchmark::testUsualSelections(int num)
 
     timer.restart();
     for (int i = 0; i < num; i++) {
-        KisTransaction transac("", projection, 0);
+        KisTransaction transac(0, projection, 0);
         m_filter->process(m_device, projection, m_selection, filterRect, \
m_configuration, 0);  }
     avTime = double(timer.elapsed()) / num;
@@ -189,7 +189,7 @@ void KisFilterSelectionsBenchmark::testNoSelections(int num)
 
     timer.restart();
     for (int i = 0; i < num; i++) {
-        KisTransaction transac("", projection, 0);
+        KisTransaction transac(0, projection, 0);
         m_filter->process(m_device, projection, 0, filterRect, m_configuration, 0);
     }
     avTime = double(timer.elapsed()) / num;
@@ -215,7 +215,7 @@ void KisFilterSelectionsBenchmark::testGoodSelections(int num)
 
     timer.restart();
     for (int i = 0; i < num; i++) {
-        KisTransaction transac("", projection, 0);
+        KisTransaction transac(0, projection, 0);
         m_filter->processSpecial(src, dst, filterRect.size(), m_configuration, 0);
     }
     avTime = double(timer.elapsed()) / num;
@@ -244,11 +244,11 @@ void KisFilterSelectionsBenchmark::testBitBltWOSelections(int \
num)  for (int i = 0; i < num; i++) {
         KisPaintDeviceSP cacheDevice = new KisPaintDevice(projection->colorSpace());
 
-        KisTransaction transac("", cacheDevice, 0);
+        KisTransaction transac(0, cacheDevice, 0);
         m_filter->process(m_device, projection, 0, filterRect, m_configuration, 0);
 
         KisPainter painter(projection);
-        painter.beginTransaction("");
+        painter.beginTransaction(0);
         painter.setCompositeOp(projection->colorSpace()->compositeOp(COMPOSITE_ALPHA_DARKEN));
  painter.bitBlt(filterRect.topLeft(), cacheDevice, filterRect);
         painter.deleteTransaction();
@@ -275,11 +275,11 @@ void KisFilterSelectionsBenchmark::testBitBltSelections(int \
num)  for (int i = 0; i < num; i++) {
         KisPaintDeviceSP cacheDevice = new KisPaintDevice(projection->colorSpace());
 
-        KisTransaction transac("", cacheDevice, 0);
+        KisTransaction transac(0, cacheDevice, 0);
         m_filter->process(m_device, cacheDevice, 0, filterRect, m_configuration, 0);
 
         KisPainter gc(projection);
-        gc.beginTransaction("");
+        gc.beginTransaction(0);
         gc.setCompositeOp(projection->colorSpace()->compositeOp(COMPOSITE_ALPHA_DARKEN));
  gc.setSelection(m_selection);
         gc.bitBlt(filterRect.topLeft(), cacheDevice, filterRect);
diff --git a/krita/image/tests/kis_filter_test.cpp \
b/krita/image/tests/kis_filter_test.cpp index b0cabed..d7b66b7 100644
--- a/krita/image/tests/kis_filter_test.cpp
+++ b/krita/image/tests/kis_filter_test.cpp
@@ -69,7 +69,7 @@ void KisFilterTest::testWithProgressUpdater()
     QImage qimage(QString(FILES_DATA_DIR) + QDir::separator() + "hakonepa.png");
     QImage inverted(QString(FILES_DATA_DIR) + QDir::separator() + \
"inverted_hakonepa.png");  KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(qimage, "", 0, 0);
+    dev->convertFromQImage(qimage, 0, 0, 0);
 
     KisFilterSP f = KisFilterRegistry::instance()->value("invert");
     Q_ASSERT(f);
@@ -95,7 +95,7 @@ void KisFilterTest::testSingleThreaded()
     QImage qimage(QString(FILES_DATA_DIR) + QDir::separator() + "hakonepa.png");
     QImage inverted(QString(FILES_DATA_DIR) + QDir::separator() + \
"inverted_hakonepa.png");  KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(qimage, "", 0, 0);
+    dev->convertFromQImage(qimage, 0, 0, 0);
 
     KisFilterSP f = KisFilterRegistry::instance()->value("invert");
     Q_ASSERT(f);
@@ -124,7 +124,7 @@ void KisFilterTest::testDifferentSrcAndDst()
     sel->getOrCreatePixelSelection()->invert(); // select everything
     sel->updateProjection();
 
-    src->convertFromQImage(qimage, "", 0, 0);
+    src->convertFromQImage(qimage, 0, 0, 0);
 
     KisFilterSP f = KisFilterRegistry::instance()->value("invert");
     Q_ASSERT(f);
diff --git a/krita/image/tests/kis_fixed_paint_device_test.cpp \
b/krita/image/tests/kis_fixed_paint_device_test.cpp index 72d7c40..ea4b456 100644
--- a/krita/image/tests/kis_fixed_paint_device_test.cpp
+++ b/krita/image/tests/kis_fixed_paint_device_test.cpp
@@ -85,7 +85,7 @@ void KisFixedPaintDeviceTest::testColorSpaceConversion()
     const KoColorSpace* srcCs = KoColorSpaceRegistry::instance()->rgb8();
     const KoColorSpace* dstCs = KoColorSpaceRegistry::instance()->lab16();
     KisFixedPaintDeviceSP dev = new KisFixedPaintDevice(srcCs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
 
     dev->convertTo(dstCs);
 
@@ -101,7 +101,7 @@ void KisFixedPaintDeviceTest::testRoundtripQImageConversion()
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "hakonepa.png");
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     KisFixedPaintDeviceSP dev = new KisFixedPaintDevice(cs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
     QImage result = dev->convertToQImage(0, 0, 0, 640, 441);
 
     QPoint errpoint;
@@ -118,7 +118,7 @@ void KisFixedPaintDeviceTest::testBltFixed()
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "hakonepa.png");
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     KisFixedPaintDeviceSP fdev = new KisFixedPaintDevice(cs);
-    fdev->convertFromQImage(image, "");
+    fdev->convertFromQImage(image, 0);
 
     // Without opacity
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
@@ -144,7 +144,7 @@ void KisFixedPaintDeviceTest::testBltFixedOpacity()
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + \
"hakonepa_transparent.png");  const KoColorSpace * cs = \
KoColorSpaceRegistry::instance()->rgb8();  KisFixedPaintDeviceSP fdev = new \
                KisFixedPaintDevice(cs);
-    fdev->convertFromQImage(image, "");
+    fdev->convertFromQImage(image, 0);
 
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
     dev->fill(0, 0, 640, 441, KoColor(Qt::white, cs).data());
@@ -220,7 +220,7 @@ void KisFixedPaintDeviceTest::testBltFixedSmall()
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + \
"fixed_blit_small.png");  const KoColorSpace * cs = \
KoColorSpaceRegistry::instance()->rgb8();  KisFixedPaintDeviceSP fdev = new \
                KisFixedPaintDevice(cs);
-    fdev->convertFromQImage(image, "");
+    fdev->convertFromQImage(image, 0);
 
     // Without opacity
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
@@ -243,7 +243,7 @@ void KisFixedPaintDeviceTest::testBltPerformance()
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + \
"hakonepa_transparent.png");  const KoColorSpace * cs = \
KoColorSpaceRegistry::instance()->rgb8();  KisFixedPaintDeviceSP fdev = new \
                KisFixedPaintDevice(cs);
-    fdev->convertFromQImage(image, "");
+    fdev->convertFromQImage(image, 0);
 
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
     dev->fill(0, 0, 640, 441, KoColor(Qt::white, cs).data());
diff --git a/krita/image/tests/kis_paint_device_test.cpp \
b/krita/image/tests/kis_paint_device_test.cpp index 6d46d23..3ad8ccd 100644
--- a/krita/image/tests/kis_paint_device_test.cpp
+++ b/krita/image/tests/kis_paint_device_test.cpp
@@ -202,7 +202,7 @@ void KisPaintDeviceTest::testRoundtripReadWrite()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "tile.png");
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
     quint8* bytes = cs->allocPixelBuffer(image.width() * image.height());
     memset(bytes, 0, image.width() * image.height() * dev->pixelSize());
     dev->readBytes(bytes, image.rect());
@@ -244,7 +244,7 @@ void KisPaintDeviceTest::testColorSpaceConversion()
     const KoColorSpace* srcCs = KoColorSpaceRegistry::instance()->rgb8();
     const KoColorSpace* dstCs = KoColorSpaceRegistry::instance()->lab16();
     KisPaintDeviceSP dev = new KisPaintDevice(srcCs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
     dev->move(10, 10);   // Unalign with tile boundaries
     KUndo2Command* cmd = dev->convertTo(dstCs);
 
@@ -261,7 +261,7 @@ void KisPaintDeviceTest::testRoundtripConversion()
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "hakonepa.png");
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
     QImage result = dev->convertToQImage(0, 0, 0, 640, 441);
 
     QPoint errpoint;
@@ -279,7 +279,7 @@ void KisPaintDeviceTest::testFastBitBlt()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     KisPaintDeviceSP dstDev = new KisPaintDevice(cs);
     KisPaintDeviceSP srcDev = new KisPaintDevice(cs);
-    srcDev->convertFromQImage(image, "");
+    srcDev->convertFromQImage(image, 0);
 
     QRect cloneRect(100,100,200,200);
     QPoint errpoint;
@@ -320,7 +320,7 @@ void KisPaintDeviceTest::testMakeClone()
 
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     KisPaintDeviceSP srcDev = new KisPaintDevice(cs);
-    srcDev->convertFromQImage(image, "");
+    srcDev->convertFromQImage(image, 0);
     srcDev->move(10,10);
 
     const KoColorSpace * weirdCS = KoColorSpaceRegistry::instance()->lab16();
@@ -354,7 +354,7 @@ void KisPaintDeviceTest::testThumbnail()
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "hakonepa.png");
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
     {
         KisPaintDeviceSP thumb = dev->createThumbnailDevice(50, 50);
         QRect rc = thumb->exactBounds();
@@ -508,7 +508,7 @@ void KisPaintDeviceTest::testBltPerformance()
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + \
"hakonepa_transparent.png");  const KoColorSpace * cs = \
KoColorSpaceRegistry::instance()->rgb8();  KisPaintDeviceSP fdev = new \
                KisPaintDevice(cs);
-    fdev->convertFromQImage(image, "");
+    fdev->convertFromQImage(image, 0);
 
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
     dev->fill(0, 0, 640, 441, KoColor(Qt::white, cs).data());
@@ -548,7 +548,7 @@ void KisPaintDeviceTest::testDeviceDuplication()
     referenceImage = device->convertToQImage(0);
 
 
-    KisTransaction transaction1("", device);
+    KisTransaction transaction1(0, device);
 //    qDebug()<<"CLEARING";
     device->clear(clearRect);
 
@@ -559,7 +559,7 @@ void KisPaintDeviceTest::testDeviceDuplication()
 
     KisPaintDeviceSP clone =  new KisPaintDevice(*device);
 
-    KisTransaction transaction("", clone);
+    KisTransaction transaction(0, clone);
 //    qDebug()<<"CLEARING";
     clone->clear(clearRect);
 
@@ -631,7 +631,7 @@ void KisPaintDeviceTest::testOpacity()
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + \
"hakonepa_transparent.png");  const KoColorSpace * cs = \
KoColorSpaceRegistry::instance()->rgb8();  KisPaintDeviceSP fdev = new \
                KisPaintDevice(cs);
-    fdev->convertFromQImage(image, "");
+    fdev->convertFromQImage(image, 0);
 
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
     dev->fill(0, 0, 640, 441, KoColor(Qt::white, cs).data());
diff --git a/krita/image/tests/kis_processings_test.cpp \
b/krita/image/tests/kis_processings_test.cpp index b93b94c..f18b92b 100644
--- a/krita/image/tests/kis_processings_test.cpp
+++ b/krita/image/tests/kis_processings_test.cpp
@@ -99,7 +99,7 @@ private:
         blur1->setY(blurShift.y());
 
         KisPaintLayerSP paintLayer1 = new KisPaintLayer(image, "paint1", \
                OPACITY_OPAQUE_U8);
-        paintLayer1->paintDevice()->convertFromQImage(sourceImage, "", 0, 0);
+        paintLayer1->paintDevice()->convertFromQImage(sourceImage, 0, 0, 0);
 
         KisTransparencyMaskSP transparencyMask1 = new KisTransparencyMask();
         transparencyMask1->setName("tmask1");
diff --git a/krita/image/tests/kis_transform_worker_test.cpp \
b/krita/image/tests/kis_transform_worker_test.cpp index 897401e..c6a4de4 100644
--- a/krita/image/tests/kis_transform_worker_test.cpp
+++ b/krita/image/tests/kis_transform_worker_test.cpp
@@ -53,7 +53,7 @@ void KisTransformWorkerTest::testMirrorX()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev2 = new KisPaintDevice(cs);
-    dev2->convertFromQImage(image, "");
+    dev2->convertFromQImage(image, 0);
     KisTransformWorker::mirrorX(dev2);
     KisTransformWorker::mirrorX(dev2);
     KisTransformWorker::mirrorX(dev2);
@@ -76,7 +76,7 @@ void KisTransformWorkerTest::testMirrorY()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev2 = new KisPaintDevice(cs);
-    dev2->convertFromQImage(image, "");
+    dev2->convertFromQImage(image, 0);
     KisTransformWorker::mirrorY(dev2);
     KisTransformWorker::mirrorY(dev2);
     KisTransformWorker::mirrorY(dev2);
@@ -98,7 +98,7 @@ void KisTransformWorkerTest::testMirrorTransactionX()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev2 = new KisPaintDevice(cs);
-    dev2->convertFromQImage(image, "");
+    dev2->convertFromQImage(image, 0);
 
     KisTransaction t("mirror", dev2);
     KisTransformWorker::mirrorX(dev2);
@@ -122,7 +122,7 @@ void KisTransformWorkerTest::testMirrorTransactionY()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev2 = new KisPaintDevice(cs);
-    dev2->convertFromQImage(image, "");
+    dev2->convertFromQImage(image, 0);
 
     KisTransaction t("mirror", dev2);
     KisTransformWorker::mirrorY(dev2);
@@ -150,7 +150,7 @@ void KisTransformWorkerTest::testScaleUp()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
 
     KisFilterStrategy * filter = new KisBoxFilterStrategy();
     KisTransaction t("test", dev);
@@ -187,7 +187,7 @@ void KisTransformWorkerTest::testXScaleUp()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
 
     KisFilterStrategy * filter = new KisBoxFilterStrategy();
     KisTransaction t("test", dev);
@@ -223,7 +223,7 @@ void KisTransformWorkerTest::testYScaleUp()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
 
     KisFilterStrategy * filter = new KisBoxFilterStrategy();
 
@@ -260,7 +260,7 @@ void KisTransformWorkerTest::testIdentity()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
     KisFilterStrategy * filter = new KisBoxFilterStrategy();
 
     KisTransaction t("test", dev);
@@ -295,7 +295,7 @@ void KisTransformWorkerTest::testScaleDown()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
     KisFilterStrategy * filter = new KisBoxFilterStrategy();
 
     KisTransaction t("test", dev);
@@ -342,7 +342,7 @@ void KisTransformWorkerTest::testXScaleDown()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
 
     KisFilterStrategy * filter = new KisBoxFilterStrategy();
 
@@ -394,7 +394,7 @@ void KisTransformWorkerTest::testYScaleDown()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
 
     KisFilterStrategy * filter = new KisBoxFilterStrategy();
     KisTransaction t("test", dev);
@@ -440,7 +440,7 @@ void KisTransformWorkerTest::testXShear()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
 
     KisFilterStrategy * filter = new KisBoxFilterStrategy();
 
@@ -488,7 +488,7 @@ void KisTransformWorkerTest::testYShear()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
 
     KisFilterStrategy * filter = new KisBoxFilterStrategy();
 
@@ -594,7 +594,7 @@ void KisTransformWorkerTest::testRotation()
     const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
     QImage image(QString(FILES_DATA_DIR) + QDir::separator() + "mirror_source.png");
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
 
     KisFilterStrategy * filter = new KisBoxFilterStrategy();
 
diff --git a/krita/image/tests/kis_update_scheduler_test.cpp \
b/krita/image/tests/kis_update_scheduler_test.cpp index 517f221..47cb1d9 100644
--- a/krita/image/tests/kis_update_scheduler_test.cpp
+++ b/krita/image/tests/kis_update_scheduler_test.cpp
@@ -50,8 +50,8 @@ KisImageSP KisUpdateSchedulerTest::buildTestingImage()
     KisPaintLayerSP paintLayer2 = new KisPaintLayer(image, "paint2", \
                OPACITY_OPAQUE_U8 / 3);
     KisLayerSP blur1 = new KisAdjustmentLayer(image, "blur1", configuration, 0);
 
-    paintLayer1->paintDevice()->convertFromQImage(sourceImage1, "", 0, 0);
-    paintLayer2->paintDevice()->convertFromQImage(sourceImage2, "", 0, 0);
+    paintLayer1->paintDevice()->convertFromQImage(sourceImage1, 0, 0, 0);
+    paintLayer2->paintDevice()->convertFromQImage(sourceImage2, 0, 0, 0);
 
     image->lock();
     image->addNode(paintLayer1);
diff --git a/krita/plugins/extensions/dockers/defaultdockers/kis_drop_button.cpp \
b/krita/plugins/extensions/dockers/defaultdockers/kis_drop_button.cpp index \
                177df0b..2e2d2a9 100644
--- a/krita/plugins/extensions/dockers/defaultdockers/kis_drop_button.cpp
+++ b/krita/plugins/extensions/dockers/defaultdockers/kis_drop_button.cpp
@@ -82,7 +82,7 @@ void KisDropButton::dropEvent(QDropEvent *event)
         
         QImage qimage = qvariant_cast<QImage>(event->mimeData()->imageData());
         KisPaintDeviceSP device = new \
                KisPaintDevice(KoColorSpaceRegistry::instance()->rgb8());
-        device->convertFromQImage(qimage, "");
+        device->convertFromQImage(qimage, 0);
         node = new KisPaintLayer(0, "node creaed from dropped image", \
OPACITY_OPAQUE_U8, device);  }
     
diff --git a/krita/plugins/extensions/painterlyframework/mixercanvas.cpp \
b/krita/plugins/extensions/painterlyframework/mixercanvas.cpp index b01c5a6..0d38d83 \
                100644
--- a/krita/plugins/extensions/painterlyframework/mixercanvas.cpp
+++ b/krita/plugins/extensions/painterlyframework/mixercanvas.cpp
@@ -60,13 +60,13 @@ MixerCanvas::MixerCanvas(QWidget *parent)
     p.end();
 
     KisConfig config;
-    const KoColorSpace* cs = \
KoColorSpaceRegistry::instance()->colorSpace(config.defaultPainterlyColorModelId(), \
config.defaultPainterlyColorDepthId(), ""); +    const KoColorSpace* cs = \
KoColorSpaceRegistry::instance()->colorSpace(config.defaultPainterlyColorModelId(), \
config.defaultPainterlyColorDepthId(), 0);  if (!cs) {
         dbgPlugins << "Could not load painterly colorspace, falling back to rgb";
         cs = KoColorSpaceRegistry::instance()->rgb16();
     }
     m_paintDevice = new KisPaintDevice(cs, "Mixer");
-    m_paintDevice->convertFromQImage(m_image, QString::null);
+    m_paintDevice->convertFromQImage(m_image, 0);
     m_mixerTool = new MixerTool(this);
 
 }
diff --git a/krita/plugins/filters/tests/kis_all_filter_test.cpp \
b/krita/plugins/filters/tests/kis_all_filter_test.cpp index d25de6a..1ee1985 100644
--- a/krita/plugins/filters/tests/kis_all_filter_test.cpp
+++ b/krita/plugins/filters/tests/kis_all_filter_test.cpp
@@ -67,7 +67,7 @@ bool testFilterSrcNotIsDev(KisFilterSP f)
     QImage result(QString(FILES_DATA_DIR) + QDir::separator() + "lena_" + f->id() + \
".png");  KisPaintDeviceSP dev = new KisPaintDevice(cs);
     KisPaintDeviceSP dstdev = new KisPaintDevice(cs);
-    dev->convertFromQImage(qimage, "", 0, 0);
+    dev->convertFromQImage(qimage, 0, 0, 0);
 
     // Get the predefined configuration from a file
     KisFilterConfiguration * kfc = f->defaultConfiguration(dev);
@@ -105,7 +105,7 @@ bool testFilterNoTransaction(KisFilterSP f)
     QImage qimage(QString(FILES_DATA_DIR) + QDir::separator() + "lena.png");
     QImage result(QString(FILES_DATA_DIR) + QDir::separator() + "lena_" + f->id() + \
".png");  KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(qimage, "", 0, 0);
+    dev->convertFromQImage(qimage, 0, 0, 0);
 
     // Get the predefined configuration from a file
     KisFilterConfiguration * kfc = f->defaultConfiguration(dev);
@@ -148,7 +148,7 @@ bool testFilter(KisFilterSP f)
         return false;
     }
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(qimage, "", 0, 0);
+    dev->convertFromQImage(qimage, 0, 0, 0);
     KisTransaction * cmd = new KisTransaction(f->name(), dev);
 
     // Get the predefined configuration from a file
@@ -191,7 +191,7 @@ bool testFilterWithSelections(KisFilterSP f)
     QImage qimage(QString(FILES_DATA_DIR) + QDir::separator() + "lena.png");
     QImage result(QString(FILES_DATA_DIR) + QDir::separator() + "lena_" + f->id() + \
".png");  KisPaintDeviceSP dev = new KisPaintDevice(cs);
-    dev->convertFromQImage(qimage, "", 0, 0);
+    dev->convertFromQImage(qimage, 0, 0, 0);
 
     // Get the predefined configuration from a file
     KisFilterConfiguration * kfc = f->defaultConfiguration(dev);
diff --git a/krita/plugins/filters/tests/kis_crash_filter_test.cpp \
b/krita/plugins/filters/tests/kis_crash_filter_test.cpp index 8289829..ccaa585 100644
--- a/krita/plugins/filters/tests/kis_crash_filter_test.cpp
+++ b/krita/plugins/filters/tests/kis_crash_filter_test.cpp
@@ -37,7 +37,7 @@ bool applyFilter(const KoColorSpace * cs,  KisFilterSP f)
 
     KisPaintDeviceSP dev = new KisPaintDevice(cs);
 //    dev->fill(0, 0, 100, 100, dev->defaultPixel());
-    dev->convertFromQImage(qimage, "", 0, 0);
+    dev->convertFromQImage(qimage, 0, 0, 0);
 
     // Get the predefined configuration from a file
     KisFilterConfiguration * kfc = f->defaultConfiguration(dev);
diff --git a/krita/plugins/formats/bmp/kis_bmp_import.cpp \
b/krita/plugins/formats/bmp/kis_bmp_import.cpp index d1bb125..c252bee 100644
--- a/krita/plugins/formats/bmp/kis_bmp_import.cpp
+++ b/krita/plugins/formats/bmp/kis_bmp_import.cpp
@@ -64,7 +64,7 @@ bool hasVisibleWidgets()
 
 KoFilter::ConversionStatus KisBMPImport::convert(const QByteArray& from, const \
QByteArray& to)  {
-    dbgFile << "BMP import! From:" << from << ", To:" << to << "";
+    dbgFile << "BMP import! From:" << from << ", To:" << to << 0;
 
     if (!(from == "image/bmp" || from == "image/x-xpixmap" || from == "image/gif" || \
from == "image/x-xbitmap"))  return KoFilter::NotImplemented;
@@ -100,8 +100,8 @@ KoFilter::ConversionStatus KisBMPImport::convert(const \
QByteArray& from, const Q  image->lock();
 
         KisPaintLayerSP layer = new KisPaintLayer(image, image->nextLayerName(), \
                255);
-        KisTransaction("", layer->paintDevice());
-        layer->paintDevice()->convertFromQImage(img, "", 0, 0);
+        KisTransaction(0, layer->paintDevice());
+        layer->paintDevice()->convertFromQImage(img, 0, 0, 0);
         image->addNode(layer.data(), image->rootLayer().data());
 
         image->unlock();
diff --git a/krita/plugins/formats/pdf/kis_pdf_import.cpp \
b/krita/plugins/formats/pdf/kis_pdf_import.cpp index 32c2f95..3724fb6 100644
--- a/krita/plugins/formats/pdf/kis_pdf_import.cpp
+++ b/krita/plugins/formats/pdf/kis_pdf_import.cpp
@@ -141,14 +141,14 @@ KisPDFImport::ConversionStatus KisPDFImport::convert(const \
QByteArray& , const Q  i18n("Page %1", *it + 1),
                 quint8_MAX);
 
-        KisTransaction("", layer->paintDevice());
+        KisTransaction(0, layer->paintDevice());
 
         Poppler::Page* page = pdoc->page(*it);
         for (int x = 0; x < width; x += 1000) {
             int currentWidth = (x + 1000 > width) ? (width - x) : 1000;
             for (int y = 0; y < height; y += 1000) {
                 int currentHeight = (y + 1000 > height) ? (height - x) : 1000;
-                layer->paintDevice()->convertFromQImage(page->renderToImage(wdg->intHorizontal->value(), \
wdg->intVertical->value(), x, y, currentWidth, currentHeight), "", x, y); +           \
layer->paintDevice()->convertFromQImage(page->renderToImage(wdg->intHorizontal->value(), \
wdg->intVertical->value(), x, y, currentWidth, currentHeight), 0, x, y);  }
         }
         delete page;
diff --git a/krita/plugins/paintops/mypaint/tests/kis_mypaint_surface_test.cpp \
b/krita/plugins/paintops/mypaint/tests/kis_mypaint_surface_test.cpp index \
                c1be101..3715950 100644
--- a/krita/plugins/paintops/mypaint/tests/kis_mypaint_surface_test.cpp
+++ b/krita/plugins/paintops/mypaint/tests/kis_mypaint_surface_test.cpp
@@ -60,7 +60,7 @@ void KisMyPaintSurfaceTest::testGetColor()
     KisPaintDeviceSP src = new \
                KisPaintDevice(KoColorSpaceRegistry::instance()->rgb16());
     KisPaintDeviceSP dst = new \
                KisPaintDevice(KoColorSpaceRegistry::instance()->rgb16());
     QImage source(QString(FILES_DATA_DIR) + QDir::separator() + "draw_dab.png");
-    src->convertFromQImage(source, "");
+    src->convertFromQImage(source, 0);
     src->move(400, 400);
     KisPainter painter(dst);
     MyPaintSurface surface(src, &painter);
diff --git a/krita/plugins/paintops/spray/spray_brush.cpp \
b/krita/plugins/paintops/spray/spray_brush.cpp index 350dc02..1e52e21 100644
--- a/krita/plugins/paintops/spray/spray_brush.cpp
+++ b/krita/plugins/paintops/spray/spray_brush.cpp
@@ -293,7 +293,7 @@ void SprayBrush::paint(KisPaintDeviceSP dab, KisPaintDeviceSP \
source,  m.scale(particleScale,particleScale);
                     }
                     m_transformed = m_brushQImage.transformed(m, \
                Qt::SmoothTransformation);
-                    m_imageDevice->convertFromQImage(m_transformed, "");
+                    m_imageDevice->convertFromQImage(m_transformed, 0);
                     KisRandomAccessor ac = m_imageDevice->createRandomAccessor(0,0);
                     QRect rc = m_transformed.rect();
 
diff --git a/krita/plugins/tools/defaulttools/tests/move_stroke_test.cpp \
b/krita/plugins/tools/defaulttools/tests/move_stroke_test.cpp index b3fdec5..0765922 \
                100644
--- a/krita/plugins/tools/defaulttools/tests/move_stroke_test.cpp
+++ b/krita/plugins/tools/defaulttools/tests/move_stroke_test.cpp
@@ -31,7 +31,7 @@ class MoveStrokeTester : public utils::StrokeTester
 {
 public:
     MoveStrokeTester()
-        : StrokeTester("move", QSize(512, 512), "")
+        : StrokeTester("move", QSize(512, 512), 0)
     {
     }
 
@@ -40,7 +40,7 @@ protected:
         Q_UNUSED(image);
 
         QImage src(QString(FILES_DATA_DIR) + QDir::separator() + "lena.png");
-        activeNode->original()->convertFromQImage(src, "");
+        activeNode->original()->convertFromQImage(src, 0);
     }
 
     KisStrokeStrategy* createStroke(bool indirectPainting,
diff --git a/krita/ui/canvas/kis_canvas2.cpp b/krita/ui/canvas/kis_canvas2.cpp
index 8763003..e637c0b 100644
--- a/krita/ui/canvas/kis_canvas2.cpp
+++ b/krita/ui/canvas/kis_canvas2.cpp
@@ -319,8 +319,8 @@ void KisCanvas2::createOpenGLCanvas()
 
 void KisCanvas2::createCanvas(bool useOpenGL)
 {
-    KisConfig cfg;
-    slotSetDisplayProfile(KoColorSpaceRegistry::instance()->profileByName(cfg.monitorProfile()));
 +    const KoColorProfile *profile = \
m_d->view->resourceProvider()->currentDisplayProfile(); +    \
slotSetDisplayProfile(profile);  
     if (useOpenGL) {
 #ifdef HAVE_OPENGL
@@ -347,7 +347,6 @@ void KisCanvas2::connectCurrentImage()
 {
     m_d->coordinatesConverter->setImage(m_d->view->image());
 
-
     if (m_d->currentCanvasIsOpenGL) {
 #ifdef HAVE_OPENGL
         Q_ASSERT(m_d->openGLImageTextures);
@@ -400,6 +399,11 @@ void KisCanvas2::disconnectCurrentImage()
 
 void KisCanvas2::resetCanvas(bool useOpenGL)
 {
+    // we cannot reset the canvas before it's created, but this method might be \
called, +    // for instance when setting the monitor profile.
+    if (!m_d->canvasWidget) {
+        return;
+    }
 #ifdef HAVE_OPENGL
     KisConfig cfg;
 
@@ -593,6 +597,7 @@ void KisCanvas2::slotConfigChanged()
 void KisCanvas2::slotSetDisplayProfile(const KoColorProfile * profile)
 {
     m_d->monitorProfile = const_cast<KoColorProfile*>(profile);
+    slotConfigChanged();
 }
 
 void KisCanvas2::addDecoration(KisCanvasDecoration* deco)
diff --git a/krita/ui/canvas/kis_image_pyramid.cpp \
b/krita/ui/canvas/kis_image_pyramid.cpp index 4d32d71..1aa7530 100644
--- a/krita/ui/canvas/kis_image_pyramid.cpp
+++ b/krita/ui/canvas/kis_image_pyramid.cpp
@@ -15,11 +15,12 @@
  *  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_image_pyramid.h"
+
+#include <KoCompositeOp.h>
+#include <KoColorSpaceRegistry.h>
+
 #include "kis_painter.h"
-#include "KoCompositeOp.h"
-#include "KoColorSpaceRegistry.h"
 #include "kis_iterators_pixel.h"
 #include "kis_datamanager.h"
 
@@ -117,8 +118,9 @@ void KisImagePyramid::rebuildPyramid()
 
 void KisImagePyramid::clearPyramid()
 {
-    for (qint32 i = 0; i < m_pyramidHeight; i++)
+    for (qint32 i = 0; i < m_pyramidHeight; i++) {
         m_pyramid[i]->clear();
+    }
 }
 
 void KisImagePyramid::setImage(KisImageWSP newImage)
diff --git a/krita/ui/canvas/kis_prescaled_projection.cpp \
b/krita/ui/canvas/kis_prescaled_projection.cpp index a1337fa..0df22f8 100644
--- a/krita/ui/canvas/kis_prescaled_projection.cpp
+++ b/krita/ui/canvas/kis_prescaled_projection.cpp
@@ -146,13 +146,14 @@ void KisPrescaledProjection::initBackend()
 
 void KisPrescaledProjection::updateSettings()
 {
-    KisConfig cfg;
+
 
     if (m_d->projectionBackend == 0) {
         initBackend();
     }
 
-    setMonitorProfile(KoColorSpaceRegistry::instance()->profileByName(cfg.monitorProfile()));
 +    KisConfig cfg;
+    setMonitorProfile(cfg.displayProfile());
 
     KisImageConfig imageConfig;
     m_d->updatePatchSize.setWidth(imageConfig.updatePatchWidth());
diff --git a/krita/ui/flake/kis_shape_layer_canvas.cpp \
b/krita/ui/flake/kis_shape_layer_canvas.cpp index cf7736c..b922bb7 100644
--- a/krita/ui/flake/kis_shape_layer_canvas.cpp
+++ b/krita/ui/flake/kis_shape_layer_canvas.cpp
@@ -123,7 +123,7 @@ void KisShapeLayerCanvas::repaint()
     p.end();
 
     KisPaintDeviceSP dev = new KisPaintDevice(m_projection->colorSpace());
-    dev->convertFromQImage(image, "");
+    dev->convertFromQImage(image, 0);
     KisPainter kp(m_projection.data());
     kp.setCompositeOp(m_projection->colorSpace()->compositeOp(COMPOSITE_COPY));
     kp.bitBlt(r.x(), r.y(), dev, 0, 0, r.width(), r.height());
diff --git a/krita/ui/kis_canvas_resource_provider.cpp \
b/krita/ui/kis_canvas_resource_provider.cpp index f2c6395..53f12fc 100644
--- a/krita/ui/kis_canvas_resource_provider.cpp
+++ b/krita/ui/kis_canvas_resource_provider.cpp
@@ -81,7 +81,6 @@ void \
                KisCanvasResourceProvider::setResourceManager(KoCanvasResourceManager \
                *reso
     m_resourceManager->setResource(KoCanvasResourceManager::BackgroundColor, v);
 
     setCurrentCompositeOp(COMPOSITE_OVER);
-    resetDisplayProfile();
 
     setMirrorHorizontal(false);
     setMirrorVertical(false);
@@ -141,10 +140,10 @@ KoAbstractGradient* \
KisCanvasResourceProvider::currentGradient() const  }
 
 
-void KisCanvasResourceProvider::resetDisplayProfile()
+void KisCanvasResourceProvider::resetDisplayProfile(int screen)
 {
     // XXX: The X11 monitor profile overrides the settings
-    m_displayProfile = KisCanvasResourceProvider::getScreenProfile();
+    m_displayProfile = KisCanvasResourceProvider::getScreenProfile(screen);
 
     if (m_displayProfile == 0) {
         KisConfig cfg;
diff --git a/krita/ui/kis_canvas_resource_provider.h \
b/krita/ui/kis_canvas_resource_provider.h index 86845c1..2b66d7a 100644
--- a/krita/ui/kis_canvas_resource_provider.h
+++ b/krita/ui/kis_canvas_resource_provider.h
@@ -87,7 +87,7 @@ public:
 
     KoAbstractGradient *currentGradient() const;
 
-    void resetDisplayProfile();
+    void resetDisplayProfile(int screen = -1);
     const KoColorProfile * currentDisplayProfile() const;
 
     KisImageWSP currentImage() const;
diff --git a/krita/ui/kis_clipboard.cc b/krita/ui/kis_clipboard.cc
index 4211d21..c05b5cc 100644
--- a/krita/ui/kis_clipboard.cc
+++ b/krita/ui/kis_clipboard.cc
@@ -161,8 +161,7 @@ void KisClipboard::setClip(KisPaintDeviceSP dev, const QPoint& \
topLeft)  if (makeExchangeClip) {
         QImage qimage;
         KisConfig cfg;
-        QString monitorProfileName = cfg.monitorProfile();
-        const KoColorProfile *  monitorProfile = \
KoColorSpaceRegistry::instance()->profileByName(monitorProfileName); +        const \
KoColorProfile *monitorProfile = cfg.displayProfile();  qimage = \
dev->convertToQImage(monitorProfile);  if (!qimage.isNull() && mimeData) {
             mimeData->setImageData(qimage);
@@ -268,19 +267,19 @@ KisPaintDeviceSP KisClipboard::clip(const QPoint& topLeftHint)
         }
 
         const KoColorSpace * cs;
-        QString profileName("");
+        const KoColorProfile *profile = 0;
         if (behaviour == PASTE_ASSUME_MONITOR)
-            profileName = cfg.monitorProfile();
+            profile = cfg.displayProfile();
 
-        cs = KoColorSpaceRegistry::instance()->rgb8(profileName);
+        cs = KoColorSpaceRegistry::instance()->rgb8(profile);
         if (!cs) {
             cs = KoColorSpaceRegistry::instance()->rgb8();
-            profileName = cs->profile()->name();
+            profile = cs->profile();
         }
 
         clip = new KisPaintDevice(cs);
         Q_CHECK_PTR(clip);
-        clip->convertFromQImage(qimage, profileName);
+        clip->convertFromQImage(qimage, profile);
     }
     if (!customTopLeft) {
         QRect exactBounds = clip->exactBounds();
diff --git a/krita/ui/kis_config.cc b/krita/ui/kis_config.cc
index 6a335bb..e800211 100644
--- a/krita/ui/kis_config.cc
+++ b/krita/ui/kis_config.cc
@@ -28,12 +28,11 @@
 #include <QFont>
 #include <QThread>
 #include <QStringList>
-
+#include "kis_canvas_resource_provider.h"
 #include "kis_global.h"
 #include <KoColorSpaceRegistry.h>
 #include <KoColorProfile.h>
 
-
 namespace
 {
 const double IMAGE_DEFAULT_RESOLUTION = 100.0; // dpi
@@ -170,6 +169,15 @@ void KisConfig::setMonitorProfile(const QString & \
monitorProfile)  m_cfg.writeEntry("monitorProfile", monitorProfile);
 }
 
+const KoColorProfile *KisConfig::displayProfile(int screen)
+{
+    const KoColorProfile *  profile = \
KisCanvasResourceProvider::getScreenProfile(screen); +    if (!profile) {
+        QString monitorProfileName = monitorProfile();
+        profile = KoColorSpaceRegistry::instance()->profileByName(monitorProfileName);
 +    }
+    return profile;
+}
 
 QString KisConfig::workingColorSpace() const
 {
diff --git a/krita/ui/kis_config.h b/krita/ui/kis_config.h
index af0c95b..3b2908d 100644
--- a/krita/ui/kis_config.h
+++ b/krita/ui/kis_config.h
@@ -28,6 +28,8 @@
 #include "kis_global.h"
 #include "krita_export.h"
 
+class KoColorProfile;
+
 class KRITAUI_EXPORT KisConfig
 {
 public:
@@ -85,6 +87,7 @@ public:
 
     QString monitorProfile() const;
     void setMonitorProfile(const QString & monitorProfile);
+    const KoColorProfile *displayProfile(int screen = -1);
 
     QString workingColorSpace() const;
     void setWorkingColorSpace(const QString & workingColorSpace);
diff --git a/krita/ui/kis_doc2.cc b/krita/ui/kis_doc2.cc
index ca2115b..cb7a837 100644
--- a/krita/ui/kis_doc2.cc
+++ b/krita/ui/kis_doc2.cc
@@ -94,7 +94,7 @@
 #include "kra/kis_kra_saver.h"
 #include "kis_statusbar.h"
 #include "widgets/kis_progress_widget.h"
-
+#include "kis_canvas_resource_provider.h"
 
 static const char *CURRENT_DTD_VERSION = "2.0";
 
@@ -462,8 +462,7 @@ void KisDoc2::showErrorAndDie()
 void KisDoc2::paintContent(QPainter& painter, const QRect& rc)
 {
     KisConfig cfg;
-    QString monitorProfileName = cfg.monitorProfile();
-    const KoColorProfile *  profile = \
KoColorSpaceRegistry::instance()->profileByName(monitorProfileName); +    const \
KoColorProfile *profile = cfg.displayProfile();  QRect rect = rc & \
                m_d->image->bounds();
     m_d->image->renderToPainter(rect.left(), rect.left(), rect.top(), rect.height(), \
rect.width(), rect.height(), painter, profile);  }
diff --git a/krita/ui/kis_mimedata.cpp b/krita/ui/kis_mimedata.cpp
index 0add32d..69906e4 100644
--- a/krita/ui/kis_mimedata.cpp
+++ b/krita/ui/kis_mimedata.cpp
@@ -64,15 +64,13 @@ QVariant KisMimeData::retrieveData(const QString &mimetype, \
QVariant::Type prefe  {
     if (mimetype == "application/x-qt-image") {
         KisConfig cfg;
-        QString monitorProfileName = cfg.monitorProfile();
-        const KoColorProfile *monitorProfile = \
                KoColorSpaceRegistry::instance()->profileByName(monitorProfileName);
-        return m_node->paintDevice()->convertToQImage(monitorProfile);
+        return m_node->paintDevice()->convertToQImage(cfg.displayProfile());
     }
     else if (mimetype == "application/x-krita-node"
              || mimetype == "application/zip") {
-        
+
         KisNode *node = const_cast<KisNode*>(m_node.constData());
-        
+
         QByteArray ba;
         QBuffer buf(&ba);
         KoStore *store = KoStore::createStore(&buf, KoStore::Write);
@@ -82,21 +80,21 @@ QVariant KisMimeData::retrieveData(const QString &mimetype, \
QVariant::Type prefe  KisDoc2 doc;
 
         QRect rc = node->exactBounds();
-        
+
         KisImageSP image = new KisImage(0, rc.width(), rc.height(), \
node->colorSpace(), node->name(), false);  image->addNode(node->clone());
         doc.setCurrentImage(image);
 
         doc.saveNativeFormatCalligra(store);
 
-#if 0        
+#if 0
         QFile f("./KRITA_DROP_FILE.kra");
         f.open(QFile::WriteOnly);
         f.write(ba);
         f.flush();
         f.close();
 #endif
-        
+
         return ba;
 
     }
diff --git a/krita/ui/kis_view2.cpp b/krita/ui/kis_view2.cpp
index b4913ad..203caf9 100644
--- a/krita/ui/kis_view2.cpp
+++ b/krita/ui/kis_view2.cpp
@@ -240,11 +240,13 @@ KisView2::KisView2(KisDoc2 * doc, QWidget * parent)
 
     m_d->canvasController = canvasController;
 
-
+    m_d->resourceProvider = new KisCanvasResourceProvider(this);
+    m_d->resourceProvider->resetDisplayProfile(QApplication::desktop()->screenNumber(this));
                
     m_d->canvas = new KisCanvas2(m_d->viewConverter, this, doc->shapeController());
+    connect(m_d->resourceProvider, SIGNAL(sigDisplayProfileChanged(const \
KoColorProfile *)), m_d->canvas, SLOT(slotSetDisplayProfile(const KoColorProfile \
*))); +
     m_d->canvasController->setCanvas(m_d->canvas);
 
-    m_d->resourceProvider = new KisCanvasResourceProvider(this);
     m_d->resourceProvider->setResourceManager(m_d->canvas->resourceManager());
 
     createManagers();
@@ -256,21 +258,18 @@ KisView2::KisView2(KisDoc2 * doc, QWidget * parent)
     KoToolManager::instance()->addController(m_d->canvasController);
     KoToolManager::instance()->registerTools(actionCollection(), \
m_d->canvasController);  
-
-    connect(m_d->resourceProvider, SIGNAL(sigDisplayProfileChanged(const \
KoColorProfile *)), m_d->canvas, SLOT(slotSetDisplayProfile(const KoColorProfile \
                *)));
-
     // krita/krita.rc must also be modified to add actions to the menu entries
 
     m_d->saveIncremental = new KAction(i18n("Save Incremental &Version"), this);
     m_d->saveIncremental->setShortcut(Qt::Key_F2);
     actionCollection()->addAction("save_incremental_version", m_d->saveIncremental);
     connect(m_d->saveIncremental, SIGNAL(triggered()), this, \
                SLOT(slotSaveIncremental()));
-    
+
     m_d->saveIncrementalBackup = new KAction(i18n("Save Incremental Backup"), this);
     m_d->saveIncrementalBackup->setShortcut(Qt::Key_F4);
     actionCollection()->addAction("save_incremental_backup", \
                m_d->saveIncrementalBackup);
     connect(m_d->saveIncrementalBackup, SIGNAL(triggered()), this, \
                SLOT(slotSaveIncrementalBackup()));
-    
+
     connect(shell(), SIGNAL(documentSaved()), this, SLOT(slotDocumentSaved()));
 
     if (koDocument()->localFilePath().isNull()) {
@@ -392,7 +391,7 @@ KisView2::KisView2(KisDoc2 * doc, QWidget * parent)
     //check for colliding shortcuts
     QSet<QKeySequence> existingShortcuts;
     foreach(QAction* action, actionCollection()->actions()) {
-        if(action->shortcut() == QKeySequence("")) {
+        if(action->shortcut() == QKeySequence(0)) {
             continue;
         }
         dbgUI << "shortcut " << action->text() << " " << action->shortcut();
@@ -447,7 +446,7 @@ void KisView2::dropEvent(QDropEvent *event)
 
             if (kisimage) {
                 KisPaintDeviceSP device = new \
                KisPaintDevice(KoColorSpaceRegistry::instance()->rgb8());
-                device->convertFromQImage(qimage, "");
+                device->convertFromQImage(qimage, 0);
                 node = new KisPaintLayer(kisimage.data(), kisimage->nextLayerName(), \
OPACITY_OPAQUE_U8, device);  }
         }
@@ -796,7 +795,7 @@ void KisView2::slotPreferences()
 {
     if (KisDlgPreferences::editPreferences()) {
         KisConfigNotifier::instance()->notifyConfigChanged();
-        m_d->resourceProvider->resetDisplayProfile();
+        m_d->resourceProvider->resetDisplayProfile(QApplication::desktop()->screenNumber(this));
  KisConfig cfg;
         static_cast<KoCanvasControllerWidget*>(m_d->canvasController)->setZoomWithWheel(cfg.zoomWithWheel());
  
@@ -948,7 +947,7 @@ void KisView2::slotSaveIncremental()
     regex.indexIn(fileName);     //  Perform the search
     QStringList matches = regex.capturedTexts();
     foundVersion = matches.at(0).isEmpty() ? false : true;
-    
+
     // Ensure compatibility with Save Incremental Backup
     // If this regex is not kept separate, the entire algorithm needs modification;
     // It's simpler to just add this.
@@ -1048,8 +1047,8 @@ void KisView2::slotSaveIncrementalBackup()
         } else {
             version.chop(1);             //  Trim "."
         }
-        version.remove(0, 1);            //  Trim "~"     
-        
+        version.remove(0, 1);            //  Trim "~"
+
         // Prepare the base for new version filename
         int intVersion = version.toInt(0);
         ++intVersion;
@@ -1082,7 +1081,7 @@ void KisView2::slotSaveIncrementalBackup()
             return;
         }
         pDoc->saveAs(fileName);
-        
+
         shell()->updateCaption();
     }
     else { // if NOT working on a backup...
@@ -1097,7 +1096,7 @@ void KisView2::slotSaveIncrementalBackup()
         extensionPlusVersion.prepend(baseNewVersion);
         extensionPlusVersion.prepend("~");
         backupFileName.replace(regex2, extensionPlusVersion);
-        
+
         // Save version with 1 number higher than the highest version found ignoring \
letters  do {
             newVersion = baseNewVersion;
@@ -1118,7 +1117,7 @@ void KisView2::slotSaveIncrementalBackup()
             }
             qDebug() << "idiot";
         } while (fileAlreadyExists);
-        
+
         // Save both as backup and on current file for interapplication workflow
         pDoc->saveAs(backupFileName);
         pDoc->saveAs(fileName);
diff --git a/krita/ui/tests/kis_prescaled_projection_test.cpp \
b/krita/ui/tests/kis_prescaled_projection_test.cpp index b5e8fd2..bd5fd8d 100644
--- a/krita/ui/tests/kis_prescaled_projection_test.cpp
+++ b/krita/ui/tests/kis_prescaled_projection_test.cpp
@@ -170,7 +170,7 @@ void \
KisPrescaledProjectionTest::testScalingUndeferredSmoothingPixelForPixel()  
     KisPaintLayerSP layer = new KisPaintLayer(image, "test", OPACITY_OPAQUE_U8, cs);
     image->addNode(layer.data(), image->rootLayer(), 0);
-    layer->paintDevice()->convertFromQImage(qimage, "");
+    layer->paintDevice()->convertFromQImage(qimage, 0);
 
     KisPrescaledProjection projection;
     KisCoordinatesConverter converter;
@@ -202,7 +202,7 @@ void KisPrescaledProjectionTest::testScalingUndeferredSmoothing()
 
     KisPaintLayerSP layer = new KisPaintLayer(image, "test", OPACITY_OPAQUE_U8, cs);
     image->addNode(layer.data(), image->rootLayer(), 0);
-    layer->paintDevice()->convertFromQImage(qimage, "");
+    layer->paintDevice()->convertFromQImage(qimage, 0);
 
     KisPrescaledProjection projection;
     KisCoordinatesConverter converter;
@@ -230,7 +230,7 @@ void KisPrescaledProjectionTest::benchmarkUpdate()
     image->setResolution(300 / 72 , 300 / 72);
 
     KisPaintLayerSP layer = new KisPaintLayer(image, "paint1", OPACITY_OPAQUE_U8, \
                cs);
-    layer->paintDevice()->convertFromQImage(referenceImage, "");
+    layer->paintDevice()->convertFromQImage(referenceImage, 0);
 
     image->addNode(layer, image->rootLayer(), 0);
 
@@ -280,7 +280,7 @@ void KisPrescaledProjectionTest::testScaling()
     image->setResolution(100, 100);
 
     KisPaintLayerSP layer = new KisPaintLayer(image, "test", OPACITY_OPAQUE_U8, cs);
-    layer->paintDevice()->convertFromQImage(sourceImage, "");
+    layer->paintDevice()->convertFromQImage(sourceImage, 0);
 
     image->addNode(layer, image->rootLayer(), 0);
 
diff --git a/krita/ui/widgets/kis_scratch_pad.cpp \
b/krita/ui/widgets/kis_scratch_pad.cpp index cc1c340..08aef3c 100644
--- a/krita/ui/widgets/kis_scratch_pad.cpp
+++ b/krita/ui/widgets/kis_scratch_pad.cpp
@@ -19,6 +19,8 @@
  */
 #include "kis_scratch_pad.h"
 
+#include <QApplication>
+#include <QDesktopWidget>
 #include <QMutex>
 
 #include <KoColorSpace.h>
@@ -329,7 +331,7 @@ void KisScratchPad::setupScratchPad(KisCanvasResourceProvider* \
resourceProvider,  {
     m_resourceProvider = resourceProvider;
     KisConfig cfg;
-    setDisplayProfile(KoColorSpaceRegistry::instance()->profileByName(cfg.monitorProfile()));
 +    setDisplayProfile(cfg.displayProfile(QApplication::desktop()->screenNumber(this)));
                
     connect(m_resourceProvider, SIGNAL(sigDisplayProfileChanged(const \
KoColorProfile*)),  SLOT(setDisplayProfile(const KoColorProfile*)));
 
@@ -386,7 +388,7 @@ void KisScratchPad::paintPresetImage()
                                               Qt::SmoothTransformation);
 
     KisPaintDeviceSP device = new KisPaintDevice(paintDevice->colorSpace());
-    device->convertFromQImage(scaledImage, "");
+    device->convertFromQImage(scaledImage, 0);
 
     KisPainter painter(paintDevice);
     painter.bitBlt(overlayRect.topLeft(), device, imageRect);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic