diff --git a/plugins/extensions/qmic/kis_import_qmic_processing_visitor.cpp b/plugins/extensions/qmic/kis_import_qmic_processing_visitor.cpp index 52b55726c9..ece1ce00af 100644 --- a/plugins/extensions/qmic/kis_import_qmic_processing_visitor.cpp +++ b/plugins/extensions/qmic/kis_import_qmic_processing_visitor.cpp @@ -1,94 +1,95 @@ /* * Copyright (c) 2013 Dmitry Kazakov * Copyright (c) 2013 Lukáš Tvrdý * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include #include #include "kis_qmic_simple_convertor.h" #include #include #include #include #include #include #include #include "kis_import_qmic_processing_visitor.h" #include "gmic.h" KisImportQmicProcessingVisitor::KisImportQmicProcessingVisitor(const KisNodeListSP nodes, QVector *> images, const QRect &dstRect, KisSelectionSP selection) : m_nodes(nodes), m_images(images), m_dstRect(dstRect), m_selection(selection) { qDebug() << "KisImportQmicProcessingVisitor"; } void KisImportQmicProcessingVisitor::gmicImageToPaintDevice(gmic_image& srcGmicImage, KisPaintDeviceSP dst, KisSelectionSP selection, const QRect &dstRect) { qDebug() << "KisImportQmicProcessingVisitor::gmicImageToPaintDevice();"; if (selection) { KisPaintDeviceSP src = new KisPaintDevice(dst->colorSpace()); KisQmicSimpleConvertor::convertFromGmicFast(srcGmicImage, src, 255.0f); KisPainter painter(dst, selection); + painter.setCompositeOp(COMPOSITE_COPY); painter.bitBlt(dstRect.topLeft(), src, QRect(QPoint(0,0),dstRect.size())); } else { KisQmicSimpleConvertor::convertFromGmicFast(srcGmicImage, dst, 255.0f); } } void KisImportQmicProcessingVisitor::visitNodeWithPaintDevice(KisNode *node, KisUndoAdapter *undoAdapter) { int index = m_nodes->indexOf(node); if (index >= 0) { gmic_image *gimg = m_images[index]; qDebug() << "Importing layer index" << index << "Size: "<< gimg->_width << "x" << gimg->_height << "colorchannels: " << gimg->_spectrum; KisPaintDeviceSP dst = node->paintDevice(); KisTransaction transaction(dst); KisImportQmicProcessingVisitor::gmicImageToPaintDevice(*gimg, dst, m_selection, m_dstRect); if (undoAdapter) { transaction.commit(undoAdapter); node->setDirty(m_dstRect); } } } void KisImportQmicProcessingVisitor::visitExternalLayer(KisExternalLayer *layer, KisUndoAdapter *undoAdapter) { Q_UNUSED(layer); Q_UNUSED(undoAdapter); } void KisImportQmicProcessingVisitor::visitColorizeMask(KisColorizeMask *mask, KisUndoAdapter *undoAdapter) { Q_UNUSED(mask); Q_UNUSED(undoAdapter); }