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

List:       kde-commits
Subject:    [krita/krita-lazybrush-kazakov] libs/image/lazybrush: Let the user Color Pick from a Colorize Mask u
From:       Dmitry Kazakov <dimula73 () gmail ! com>
Date:       2016-08-17 17:19:21
Message-ID: E1ba4Ur-0003Va-DZ () code ! kde ! org
[Download RAW message or body]

Git commit 7084ba2838a5cf64503d54725173d3be02c119bd by Dmitry Kazakov.
Committed on 17/08/2016 at 17:19.
Pushed by dkazakov into branch 'krita-lazybrush-kazakov'.

Let the user Color Pick from a Colorize Mask using Ctrl+Alt+Click

M  +17   -18   libs/image/lazybrush/kis_colorize_mask.cpp
M  +0    -2    libs/image/lazybrush/kis_colorize_mask.h

http://commits.kde.org/krita/7084ba2838a5cf64503d54725173d3be02c119bd

diff --git a/libs/image/lazybrush/kis_colorize_mask.cpp b/libs/image/lazybrush/kis_colorize_mask.cpp
index f869bd5..602d6ca 100644
--- a/libs/image/lazybrush/kis_colorize_mask.cpp
+++ b/libs/image/lazybrush/kis_colorize_mask.cpp
@@ -203,16 +203,6 @@ KisPaintDeviceSP KisColorizeMask::paintDevice() const
     return m_d->showKeyStrokes ? m_d->fakePaintDevice : 0;
 }
 
-KisPaintDeviceSP KisColorizeMask::original() const
-{
-    return 0;
-}
-
-KisPaintDeviceSP KisColorizeMask::projection() const
-{
-    return 0;
-}
-
 QIcon KisColorizeMask::icon() const
 {
     return KisIconUtils::loadIcon("filterMask");
@@ -480,9 +470,10 @@ void KisColorizeMask::mergeToLayer(KisNodeSP layer, KisPostExecutionUndoAdapter
         }
     }
 
+    mergeToLayerImpl(m_d->fakePaintDevice, &fakeUndoAdapter, transactionText, timedID, false);
+
     m_d->currentKeyStrokeDevice = 0;
     m_d->currentColor = KoColor();
-    m_d->fakePaintDevice->clear();
     releaseResources();
 
     /**
@@ -514,15 +505,23 @@ void KisColorizeMask::mergeToLayer(KisNodeSP layer, KisPostExecutionUndoAdapter
 
 void KisColorizeMask::writeMergeData(KisPainter *painter, KisPaintDeviceSP src)
 {
-    KisSelectionSP conversionSelection = m_d->cachedConversionSelection.getSelection();
-    KisPixelSelectionSP tempSelection = conversionSelection->pixelSelection();
+    const KoColorSpace *alpha8 = KoColorSpaceRegistry::instance()->alpha8();
+    const bool nonAlphaDst = !(*painter->device()->colorSpace() == *alpha8);
 
-    Q_FOREACH (const QRect &rc, src->region().rects()) {
-        tempSelection->copyAlphaFrom(src, rc);
-        painter->bitBlt(rc.topLeft(), tempSelection, rc);
-    }
+    if (nonAlphaDst) {
+        Q_FOREACH (const QRect &rc, src->region().rects()) {
+            painter->bitBlt(rc.topLeft(), src, rc);
+        }
+    } else {
+        KisSelectionSP conversionSelection = m_d->cachedConversionSelection.getSelection();
+        KisPixelSelectionSP tempSelection = conversionSelection->pixelSelection();
 
-    m_d->cachedSelection.putSelection(conversionSelection);
+        Q_FOREACH (const QRect &rc, src->region().rects()) {
+            tempSelection->copyAlphaFrom(src, rc);
+            painter->bitBlt(rc.topLeft(), tempSelection, rc);
+        }
+        m_d->cachedSelection.putSelection(conversionSelection);
+    }
 }
 
 bool KisColorizeMask::showColoring() const
diff --git a/libs/image/lazybrush/kis_colorize_mask.h b/libs/image/lazybrush/kis_colorize_mask.h
index 5f87eff..e672563 100644
--- a/libs/image/lazybrush/kis_colorize_mask.h
+++ b/libs/image/lazybrush/kis_colorize_mask.h
@@ -38,8 +38,6 @@ public:
     KisColorizeMask(const KisColorizeMask& rhs);
 
     KisPaintDeviceSP paintDevice() const;
-    KisPaintDeviceSP original() const;
-    KisPaintDeviceSP projection() const;
 
     KisNodeSP clone() const {
         return KisNodeSP(new KisColorizeMask(*this));
[prev in list] [next in list] [prev in thread] [next in thread] 

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