[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