diff --git a/krita/benchmarks/kis_projection_benchmark.cpp b/krita/benchmarks/kis_projection_benchmark.cpp index 4cdcb84a9be5b454754057bc3322efae7af33bb3..8e4bac9ab79e62683286db80abf113930917b0fc 100644 --- a/krita/benchmarks/kis_projection_benchmark.cpp +++ b/krita/benchmarks/kis_projection_benchmark.cpp @@ -31,7 +31,7 @@ void KisProjectionBenchmark::initTestCase() { - + } void KisProjectionBenchmark::cleanupTestCase() @@ -42,7 +42,10 @@ void KisProjectionBenchmark::cleanupTestCase() void KisProjectionBenchmark::benchmarkProjection() { QBENCHMARK{ - KisDoc2 doc; + KisPart2 *p = new KisPart2(); + KisDoc2 doc(p); + p->setDocument(&doc); + doc.loadNativeFormat(QString(FILES_DATA_DIR) + QDir::separator() + "load_test.kra"); doc.image()->refreshGraph(); doc.saveNativeFormat(QString(FILES_OUTPUT_DIR) + QDir::separator() + "save_test.kra"); @@ -52,7 +55,9 @@ void KisProjectionBenchmark::benchmarkProjection() void KisProjectionBenchmark::benchmarkLoading() { QBENCHMARK{ - KisDoc2 doc; + KisPart2 *p = new KisPart2(); + KisDoc2 doc(p); + p->setDocument(&doc); doc.loadNativeFormat(QString(FILES_DATA_DIR) + QDir::separator() + "load_test.kra"); } } diff --git a/krita/plugins/extensions/dockers/defaultdockers/kis_drop_button.cpp b/krita/plugins/extensions/dockers/defaultdockers/kis_drop_button.cpp index 2827c1bcc79b34fa28dc13df47a536ddc545edbe..da5ba6259a9dfe15cdb503e96fadbd2fbc4ba99b 100644 --- a/krita/plugins/extensions/dockers/defaultdockers/kis_drop_button.cpp +++ b/krita/plugins/extensions/dockers/defaultdockers/kis_drop_button.cpp @@ -56,9 +56,9 @@ void KisDropButton::dragEnterEvent(QDragEnterEvent *event) void KisDropButton::dropEvent(QDropEvent *event) { qDebug() << "DROP EVENT" << event->mimeData()->formats(); - + KisNodeSP node; - + const KisMimeData *mimedata = qobject_cast(event->mimeData()); if (mimedata) { @@ -66,33 +66,36 @@ void KisDropButton::dropEvent(QDropEvent *event) node = mimedata->node(); } else if (event->mimeData()->hasFormat("application/x-krita-node") ) { - + qDebug() << "going to deserialize the dropped node"; - + QByteArray ba = event->mimeData()->data("application/x-krita-node"); - - KisDoc2 tmpDoc; + + KisPart2 *p = new KisPart2(); + KisDoc2 tmpDoc(p); + p->setDocument(&tmpDoc); + tmpDoc.loadNativeFormatFromStore(ba); - + node = tmpDoc.image()->rootLayer()->firstChild(); } else if (event->mimeData()->hasImage()) { - + qDebug() << "got an image"; - + QImage qimage = qvariant_cast(event->mimeData()->imageData()); KisPaintDeviceSP device = new KisPaintDevice(KoColorSpaceRegistry::instance()->rgb8()); device->convertFromQImage(qimage, 0); node = new KisPaintLayer(0, "node creaed from dropped image", OPACITY_OPAQUE_U8, device); } - + if (node) { if (event->keyboardModifiers() & Qt::ShiftModifier) { replaceFromNode(node); } else { createFromNode(node); - } + } } } diff --git a/krita/plugins/extensions/imagesplit/imagesplit.cpp b/krita/plugins/extensions/imagesplit/imagesplit.cpp index 47c5c907456d60da62fe11bf4cca42830d85da9a..8d28dda6f047d29973302b3d028c95f69f4a323f 100644 --- a/krita/plugins/extensions/imagesplit/imagesplit.cpp +++ b/krita/plugins/extensions/imagesplit/imagesplit.cpp @@ -72,7 +72,10 @@ void Imagesplit::saveAsImage(QRect imgSize,QString mimeType,KUrl url) { KisImageWSP image = m_view->image(); - KisDoc2 d; + KisPart2 *p = new KisPart2(); + KisDoc2 d(p); + p->setDocument(&d); + d.prepareForImport(); KisImageWSP dst = new KisImage(d.createUndoStore(), imgSize.width(),imgSize.height(), image->colorSpace(), image->objectName()); diff --git a/krita/plugins/extensions/separate_channels/kis_channel_separator.cc b/krita/plugins/extensions/separate_channels/kis_channel_separator.cc index b31fd3387091ed4a5a1b3e2b491a302e7b3e80d5..32a7b1d2716856460d614339de8c886ab9fb8dc8 100644 --- a/krita/plugins/extensions/separate_channels/kis_channel_separator.cc +++ b/krita/plugins/extensions/separate_channels/kis_channel_separator.cc @@ -253,7 +253,9 @@ void KisChannelSeparator::separate(KoUpdater * progressUpdater, enumSepAlphaOpti KisPaintLayerSP l = KisPaintLayerSP(new KisPaintLayer(image.data(), ch->name(), OPACITY_OPAQUE_U8, *deviceIt)); QRect r = l->exactBounds(); - KisDoc2 d; + KisPart2 *p = new KisPart2(); + KisDoc2 d(p); + p->setDocument(&d); d.prepareForImport(); KisImageWSP dst = KisImageWSP(new KisImage(d.createUndoStore(), r.width(), r.height(), (*deviceIt)->colorSpace(), l->name())); diff --git a/krita/plugins/filters/fastcolortransfer/kis_wdg_fastcolortransfer.cpp b/krita/plugins/filters/fastcolortransfer/kis_wdg_fastcolortransfer.cpp index 3cf1ebecc05fcbcc40732a2d1682dc238da23fba..1e7a4ab43d6b975ad0a1309d82a5552d82567177 100644 --- a/krita/plugins/filters/fastcolortransfer/kis_wdg_fastcolortransfer.cpp +++ b/krita/plugins/filters/fastcolortransfer/kis_wdg_fastcolortransfer.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include "ui_wdgfastcolortransfer.h" @@ -63,13 +64,16 @@ KisPropertiesConfiguration* KisWdgFastColorTransfer::configuration() const { KisFilterConfiguration* config = new KisFilterConfiguration("colortransfer", 1); QString fileName = this->widget()->fileNameURLRequester->url().url(); - + if (fileName.isEmpty()) return config; KisPaintDeviceSP ref; dbgPlugins << "Use as reference file : " << fileName; - KisDoc2 d; + KisPart2 *p = new KisPart2(); + KisDoc2 d(p); + p->setDocument(&d); + KoFilterManager manager(&d); KoFilter::ConversionStatus status; QString s = manager.importDocument(fileName, QString(), status); @@ -83,22 +87,22 @@ KisPropertiesConfiguration* KisWdgFastColorTransfer::configuration() const dbgPlugins << "No reference image was specified."; return config; } - + // Convert ref to LAB const KoColorSpace* labCS = KoColorSpaceRegistry::instance()->lab16(); if (!labCS) { dbgPlugins << "The LAB colorspace is not available."; return config; } - + dbgPlugins << "convert ref to lab"; KUndo2Command* cmd = ref->convertTo(labCS, KoColorConversionTransformation::IntentPerceptual, KoColorConversionTransformation::BlackpointCompensation); delete cmd; - + // Compute the means and sigmas of ref double meanL_ref = 0., meanA_ref = 0., meanB_ref = 0.; double sigmaL_ref = 0., sigmaA_ref = 0., sigmaB_ref = 0.; - + KisRectConstIteratorSP refIt = ref->createRectConstIteratorNG(0, 0, importedImage->width(), importedImage->height()); do { const quint16* data = reinterpret_cast(refIt->oldRawData()); @@ -125,7 +129,7 @@ KisPropertiesConfiguration* KisWdgFastColorTransfer::configuration() const sigmaL_ref *= totalSize; sigmaA_ref *= totalSize; sigmaB_ref *= totalSize; - + dbgPlugins << totalSize << "" << meanL_ref << "" << meanA_ref << "" << meanB_ref << "" << sigmaL_ref << "" << sigmaA_ref << "" << sigmaB_ref; config->setProperty("filename", fileName); @@ -135,6 +139,6 @@ KisPropertiesConfiguration* KisWdgFastColorTransfer::configuration() const config->setProperty("sigmaL", sigmaL_ref); config->setProperty("sigmaA", sigmaA_ref); config->setProperty("sigmaB", sigmaB_ref); - + return config; } diff --git a/krita/sdk/tests/filestest.h b/krita/sdk/tests/filestest.h index 3a509cccdb8aacab988187b7739d136ba65de840..0c88fc66665487be05af438cb1af9b475fca5e07 100644 --- a/krita/sdk/tests/filestest.h +++ b/krita/sdk/tests/filestest.h @@ -34,6 +34,7 @@ #include #include +#include #include #include #include @@ -64,7 +65,10 @@ void testFiles(const QString& _dirname, const QStringList& exclusions, const QSt continue; } - KisDoc2 doc; + KisPart2 *p = new KisPart2(); + KisDoc2 doc(p); + p->setDocument(&doc); + KoFilterManager manager(&doc); manager.setBatchMode(true); QByteArray nativeFormat = doc.nativeFormatMimeType(); diff --git a/krita/ui/kis_doc2.h b/krita/ui/kis_doc2.h index 2afde7edcfcdd4891b7f5eb5ca726a693e4d8c47..869b1da77ea2d54f89cc8a76789e3af68c3aec85 100644 --- a/krita/ui/kis_doc2.h +++ b/krita/ui/kis_doc2.h @@ -27,7 +27,7 @@ #include #include "kis_types.h" - +#include "kis_part2.h" #include #include @@ -64,7 +64,7 @@ class KRITAUI_EXPORT KisDoc2 : public KoDocument Q_OBJECT public: - KisDoc2(KoPart* parent = 0); + KisDoc2(KoPart* parent); virtual ~KisDoc2(); public: diff --git a/krita/ui/kis_layer_manager.cc b/krita/ui/kis_layer_manager.cc index a39df3d5ec06bddbf9aa0469f974a40f91675d26..39b44a3f9f0beadb6acf0e29553fa4052be02507 100644 --- a/krita/ui/kis_layer_manager.cc +++ b/krita/ui/kis_layer_manager.cc @@ -69,6 +69,7 @@ #include #include +#include "kis_part2.h" #include "kis_config.h" #include "kis_cursor.h" #include "dialogs/kis_dlg_adj_layer_props.h" @@ -174,9 +175,12 @@ public: } else if (layer->visible() || m_saveInvisible) { + QRect r = m_image->bounds(); - KisDoc2 d; + KisPart2 *p = new KisPart2(); + KisDoc2 d(p); + p->setDocument(&d); d.prepareForImport(); KisImageWSP dst = new KisImage(d.createUndoStore(), r.width(), r.height(), m_image->colorSpace(), layer->name()); @@ -909,7 +913,10 @@ void KisLayerManager::saveLayerAsImage() QRect r = image->bounds(); - KisDoc2 d; + KisPart2 *p = new KisPart2(); + KisDoc2 d(p); + p->setDocument(&d); + d.prepareForImport(); KisImageWSP dst = new KisImage(d.createUndoStore(), r.width(), r.height(), image->colorSpace(), l->name()); diff --git a/krita/ui/kis_mimedata.cpp b/krita/ui/kis_mimedata.cpp index e4f02b72df9cf081e497f8331472a9f0e91aa3d1..6f38e41aa54b6fb0d1ff4f8b5f341aa38ef26f81 100644 --- a/krita/ui/kis_mimedata.cpp +++ b/krita/ui/kis_mimedata.cpp @@ -24,6 +24,7 @@ #include "kis_shared_ptr.h" #include "kis_image.h" #include "kis_doc2.h" +#include "kis_part2.h" #include #include @@ -81,7 +82,9 @@ QVariant KisMimeData::retrieveData(const QString &mimetype, QVariant::Type prefe Q_ASSERT(!store->bad()); store->disallowNameExpansion(); - KisDoc2 doc; + KisPart2 *p = new KisPart2(); + KisDoc2 doc(p); + p->setDocument(&doc); QRect rc = node->exactBounds(); diff --git a/krita/ui/kis_part2.h b/krita/ui/kis_part2.h index 02985f0a5ea30943fe4b0c917d883c2dd8abba99..e3dc60c304dede2a61496a41259f89d650f24376 100644 --- a/krita/ui/kis_part2.h +++ b/krita/ui/kis_part2.h @@ -33,7 +33,7 @@ class KRITAUI_EXPORT KisPart2 : public KoPart Q_OBJECT public: - KisPart2(QObject *parent); + KisPart2(QObject *parent = 0); virtual ~KisPart2(); diff --git a/krita/ui/kis_view2.cpp b/krita/ui/kis_view2.cpp index e04d3ed7669a277ce21046d1b7347f0135716cc9..7b73e0731cf094969ce3281f90353221c22650df 100644 --- a/krita/ui/kis_view2.cpp +++ b/krita/ui/kis_view2.cpp @@ -462,7 +462,10 @@ void KisView2::dropEvent(QDropEvent *event) QByteArray ba = event->mimeData()->data("application/x-krita-node"); - KisDoc2 tempDoc; + KisPart2 *p = new KisPart2(); + KisDoc2 tempDoc(p); + p->setDocument(&tempDoc); + tempDoc.loadNativeFormatFromStore(ba); KisImageWSP tempImage = tempDoc.image(); diff --git a/krita/ui/tests/kis_doc2_test.cpp b/krita/ui/tests/kis_doc2_test.cpp index 99d1c435607e62362889b38ad6fcb05f5525cdb3..96ec94c648101c5056606539c2e2b5358abb9c6b 100644 --- a/krita/ui/tests/kis_doc2_test.cpp +++ b/krita/ui/tests/kis_doc2_test.cpp @@ -26,6 +26,7 @@ #include "kis_undo_store.h" #include "kis_factory2.h" #include +#include "kis_part2.h" #include class KisCommandHistoryListenerFake : public KisCommandHistoryListener @@ -87,7 +88,10 @@ public: void KisDoc2Test::testUndoRedoNotify() { - KisDoc2 doc; + KisPart2 *p = new KisPart2(); + KisDoc2 doc(p); + p->setDocument(&doc); + doc.initEmpty(); KUndo2Command *testCommand1 = new TestCommand(); @@ -159,7 +163,10 @@ void KisDoc2Test::testOpenImageTwiceInSameDoc() Q_ASSERT(!fname.isEmpty()); Q_ASSERT(!fname2.isEmpty()); - KisDoc2 doc; + KisPart2 *p = new KisPart2(); + KisDoc2 doc(p); + p->setDocument(&doc); + doc.loadNativeFormat(fname); doc.loadNativeFormat(fname2); } diff --git a/krita/ui/tests/kis_kra_loader_test.cpp b/krita/ui/tests/kis_kra_loader_test.cpp index 78e98ec51ed4890a8749cb2929926d92ca3f596a..4a2443e51409d169205f2739f653aaa18dcbb8e0 100644 --- a/krita/ui/tests/kis_kra_loader_test.cpp +++ b/krita/ui/tests/kis_kra_loader_test.cpp @@ -26,11 +26,15 @@ #include #include "kis_doc2.h" +#include "kis_part2.h" #include "kis_image.h" void KisKraLoaderTest::testLoading() { - KisDoc2 doc; + KisPart2 *p = new KisPart2(); + KisDoc2 doc(p); + p->setDocument(&doc); + doc.loadNativeFormat(QString(FILES_DATA_DIR) + QDir::separator() + "load_test.kra"); KisImageWSP image = doc.image(); image->lock(); diff --git a/krita/ui/tests/kis_kra_saver_test.cpp b/krita/ui/tests/kis_kra_saver_test.cpp index c188601b1af5e65b568aba4381e264452282dfcb..0b9f03bb14acefcb229ba57f5f89f6d12908dfab 100644 --- a/krita/ui/tests/kis_kra_saver_test.cpp +++ b/krita/ui/tests/kis_kra_saver_test.cpp @@ -47,6 +47,7 @@ #include "kis_fill_painter.h" #include "kis_shape_selection.h" #include "util.h" +#include "kis_part2.h" void KisKraSaverTest::testRoundTrip() { @@ -58,7 +59,11 @@ void KisKraSaverTest::testRoundTrip() delete doc; - KisDoc2 doc2; + + KisPart2 *p = new KisPart2(); + KisDoc2 doc2(p); + p->setDocument(&doc2); + doc2.loadNativeFormat("roundtriptest.kra"); KisCountVisitor cv2(list, KoProperties()); diff --git a/krita/ui/tests/kis_node_model_test.cpp b/krita/ui/tests/kis_node_model_test.cpp index 55e10bc3b584bfa44dc019b54b4a1322f7fbc2dd..c783df837a08b4bf01e579e79ed7657e4f5e2de2 100644 --- a/krita/ui/tests/kis_node_model_test.cpp +++ b/krita/ui/tests/kis_node_model_test.cpp @@ -33,7 +33,10 @@ void KisNodeModelTest::init() { - m_doc = new KisDoc2; + KisPart2 *p = new KisPart2(); + KisDoc2 *doc = new KisDoc2(p); + p->setDocument(doc); + m_nameServer = new KisNameServer(); m_shapeController = new KisShapeController(m_doc, m_nameServer); m_nodeModel = new KisNodeModel(0); diff --git a/krita/ui/tests/kis_shape_controller_test.cpp b/krita/ui/tests/kis_shape_controller_test.cpp index b7d7ecbea38f105c4dc3c66425fbe85963d08234..60dce6675635980a578e1f075c6f54bc72322028 100644 --- a/krita/ui/tests/kis_shape_controller_test.cpp +++ b/krita/ui/tests/kis_shape_controller_test.cpp @@ -21,6 +21,7 @@ #include #include "kis_doc2.h" +#include "kis_part2.h" #include "kis_name_server.h" #include "flake/kis_shape_controller.h" @@ -31,7 +32,10 @@ KisShapeControllerTest::~KisShapeControllerTest() KisDummiesFacadeBase* KisShapeControllerTest::dummiesFacadeFactory() { - m_doc = new KisDoc2; + + KisPart2 *p = new KisPart2(); + KisDoc2 *doc = new KisDoc2(p); + p->setDocument(doc); m_nameServer = new KisNameServer(); return new KisShapeController(m_doc, m_nameServer); } diff --git a/krita/ui/tests/util.h b/krita/ui/tests/util.h index 81e93d09a355e21d0b03ff2c933f9ad1d7a1fd68..c23ee3dd27b49cf9077cb68ccb1f3c9fde149061 100644 --- a/krita/ui/tests/util.h +++ b/krita/ui/tests/util.h @@ -29,6 +29,7 @@ #include #include +#include "kis_part2.h" #include #include "kis_types.h" #include "filter/kis_filter_registry.h" @@ -84,7 +85,11 @@ KisSelectionSP createVectorSelection(KisPaintDeviceSP paintDevice, KisImageWSP i KisDoc2* createCompleteDocument() { KisImageWSP image = new KisImage(0, 1024, 1024, KoColorSpaceRegistry::instance()->rgb8(), "test for roundtrip", false); - KisDoc2* doc = new KisDoc2; + + KisPart2 *p = new KisPart2(); + KisDoc2 *doc = new KisDoc2(p); + p->setDocument(doc); + doc->setCurrentImage(image); doc->documentInfo()->setAboutInfo("title", image->objectName());