Paste P228

Masterwork From Distant Lands
ActivePublic

Authored by dkazakov on Jun 1 2018, 1:17 PM.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 999ec15..8bda36b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
set(MIN_QT_VERSION 5.6.0)
-set(MIN_FRAMEWORKS_VERSION 5.18.0)
+set(MIN_FRAMEWORKS_VERSION 5.11.0)
if (POLICY CMP0002)
cmake_policy(SET CMP0002 OLD)
diff --git a/libs/image/kis_node.cpp b/libs/image/kis_node.cpp
index dc28320..8d57daf 100644
--- a/libs/image/kis_node.cpp
+++ b/libs/image/kis_node.cpp
@@ -478,7 +478,13 @@ bool KisNode::add(KisNodeSP newNode, KisNodeSP aboveThis)
KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(newNode, false);
KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(!aboveThis || aboveThis->parent().data() == this, false);
KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(allowAsChild(newNode), false);
+ KIS_SAFE_ASSERT_RECOVER(!newNode->parent()) {
+ qDebug() << ppVar(newNode);
+ qDebug() << newNode->parent();
+ qFatal("kkk");
+ }
KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(!newNode->parent(), false);
+
KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(index(newNode) < 0, false);
int idx = aboveThis ? this->index(aboveThis) + 1 : 0;
diff --git a/plugins/impex/libkra/kis_kra_loader.cpp b/plugins/impex/libkra/kis_kra_loader.cpp
index da08db4..32f651a 100644
--- a/plugins/impex/libkra/kis_kra_loader.cpp
+++ b/plugins/impex/libkra/kis_kra_loader.cpp
@@ -559,10 +559,17 @@ KisNodeSP KisKraLoader::loadNodes(const KoXmlElement& element, KisImageSP image,
if (node.nodeName().toUpper() == LAYERS.toUpper() || node.nodeName().toUpper() == MASKS.toUpper()) {
for (child = node.lastChild(); !child.isNull(); child = child.previousSibling()) {
- KisNodeSP node = loadNode(child.toElement(), image, parent);
+ KisNodeSP node = loadNode(child.toElement(), image);
if (node) {
image->nextLayerName(); // Make sure the nameserver is current with the number of nodes.
- image->addNode(node, parent);
+
+ // HACK ALERT: reference images layer already has a parent, so we
+ // should avoid trying to add it to the image again. Please fix this
+ // code to move assigning the parent into a single place.
+ if (!node->parent()) {
+ image->addNode(node, parent);
+ }
+
if (node->inherits("KisLayer") && KoXml::childNodesCount(child) > 0) {
loadNodes(child.toElement(), image, node);
}
@@ -575,7 +582,7 @@ KisNodeSP KisKraLoader::loadNodes(const KoXmlElement& element, KisImageSP image,
return parent;
}
-KisNodeSP KisKraLoader::loadNode(const KoXmlElement& element, KisImageSP image, KisNodeSP parent)
+KisNodeSP KisKraLoader::loadNode(const KoXmlElement& element, KisImageSP image)
{
// Nota bene: If you add new properties to layers, you should
// ALWAYS define a default value in case the property is not
@@ -659,15 +666,15 @@ KisNodeSP KisKraLoader::loadNode(const KoXmlElement& element, KisImageSP image,
else if (nodeType == CLONE_LAYER)
node = loadCloneLayer(element, image, name, colorSpace, opacity);
else if (nodeType == FILTER_MASK)
- node = loadFilterMask(element, parent);
+ node = loadFilterMask(element);
else if (nodeType == TRANSFORM_MASK)
- node = loadTransformMask(element, parent);
+ node = loadTransformMask(element);
else if (nodeType == TRANSPARENCY_MASK)
- node = loadTransparencyMask(element, parent);
+ node = loadTransparencyMask(element);
else if (nodeType == SELECTION_MASK)
- node = loadSelectionMask(image, element, parent);
+ node = loadSelectionMask(image, element);
else if (nodeType == COLORIZE_MASK)
- node = loadColorizeMask(image, element, parent, colorSpace);
+ node = loadColorizeMask(image, element, colorSpace);
else if (nodeType == FILE_LAYER)
node = loadFileLayer(element, image, name, opacity);
else if (nodeType == REFERENCE_IMAGES_LAYER)
@@ -974,9 +981,8 @@ KisNodeSP KisKraLoader::loadCloneLayer(const KoXmlElement& element, KisImageSP i
}
-KisNodeSP KisKraLoader::loadFilterMask(const KoXmlElement& element, KisNodeSP parent)
+KisNodeSP KisKraLoader::loadFilterMask(const KoXmlElement& element)
{
- Q_UNUSED(parent);
QString attr;
KisFilterMask* mask;
QString filtername;
@@ -1005,10 +1011,9 @@ KisNodeSP KisKraLoader::loadFilterMask(const KoXmlElement& element, KisNodeSP pa
return mask;
}
-KisNodeSP KisKraLoader::loadTransformMask(const KoXmlElement& element, KisNodeSP parent)
+KisNodeSP KisKraLoader::loadTransformMask(const KoXmlElement& element)
{
Q_UNUSED(element);
- Q_UNUSED(parent);
KisTransformMask* mask;
@@ -1022,19 +1027,17 @@ KisNodeSP KisKraLoader::loadTransformMask(const KoXmlElement& element, KisNodeSP
return mask;
}
-KisNodeSP KisKraLoader::loadTransparencyMask(const KoXmlElement& element, KisNodeSP parent)
+KisNodeSP KisKraLoader::loadTransparencyMask(const KoXmlElement& element)
{
Q_UNUSED(element);
- Q_UNUSED(parent);
KisTransparencyMask* mask = new KisTransparencyMask();
Q_CHECK_PTR(mask);
return mask;
}
-KisNodeSP KisKraLoader::loadSelectionMask(KisImageSP image, const KoXmlElement& element, KisNodeSP parent)
+KisNodeSP KisKraLoader::loadSelectionMask(KisImageSP image, const KoXmlElement& element)
{
- Q_UNUSED(parent);
KisSelectionMaskSP mask = new KisSelectionMask(image);
bool active = element.attribute(ACTIVE, "1") == "0" ? false : true;
mask->setActive(active);
@@ -1043,9 +1046,8 @@ KisNodeSP KisKraLoader::loadSelectionMask(KisImageSP image, const KoXmlElement&
return mask;
}
-KisNodeSP KisKraLoader::loadColorizeMask(KisImageSP image, const KoXmlElement& element, KisNodeSP parent, const KoColorSpace *colorSpace)
+KisNodeSP KisKraLoader::loadColorizeMask(KisImageSP image, const KoXmlElement& element, const KoColorSpace *colorSpace)
{
- Q_UNUSED(parent);
KisColorizeMaskSP mask = new KisColorizeMask();
const bool editKeystrokes = element.attribute(COLORIZE_EDIT_KEYSTROKES, "1") == "0" ? false : true;
const bool showColoring = element.attribute(COLORIZE_SHOW_COLORING, "1") == "0" ? false : true;
diff --git a/plugins/impex/libkra/kis_kra_loader.h b/plugins/impex/libkra/kis_kra_loader.h
index f6784e9..8bdeb42 100644
--- a/plugins/impex/libkra/kis_kra_loader.h
+++ b/plugins/impex/libkra/kis_kra_loader.h
@@ -73,7 +73,7 @@ private:
KisNodeSP loadNodes(const KoXmlElement& element, KisImageSP image, KisNodeSP parent);
- KisNodeSP loadNode(const KoXmlElement& elem, KisImageSP image, KisNodeSP parent);
+ KisNodeSP loadNode(const KoXmlElement& elem, KisImageSP image);
KisNodeSP loadPaintLayer(const KoXmlElement& elem, KisImageSP image, const QString& name, const KoColorSpace* cs, quint32 opacity);
@@ -87,15 +87,15 @@ private:
KisNodeSP loadCloneLayer(const KoXmlElement& elem, KisImageSP image, const QString& name, const KoColorSpace* cs, quint32 opacity);
- KisNodeSP loadFilterMask(const KoXmlElement& elem, KisNodeSP parent);
+ KisNodeSP loadFilterMask(const KoXmlElement& elem);
- KisNodeSP loadTransformMask(const KoXmlElement& elem, KisNodeSP parent);
+ KisNodeSP loadTransformMask(const KoXmlElement& elem);
- KisNodeSP loadTransparencyMask(const KoXmlElement& elem, KisNodeSP parent);
+ KisNodeSP loadTransparencyMask(const KoXmlElement& elem);
- KisNodeSP loadSelectionMask(KisImageSP image, const KoXmlElement& elem, KisNodeSP parent);
+ KisNodeSP loadSelectionMask(KisImageSP image, const KoXmlElement& elem);
- KisNodeSP loadColorizeMask(KisImageSP image, const KoXmlElement& elem, KisNodeSP parent, const KoColorSpace *colorSpace);
+ KisNodeSP loadColorizeMask(KisImageSP image, const KoXmlElement& elem, const KoColorSpace *colorSpace);
KisNodeSP loadFileLayer(const KoXmlElement& elem, KisImageSP image, const QString& name, quint32 opacity);
dkazakov edited the content of this paste. (Show Details)Jun 1 2018, 1:17 PM
dkazakov changed the title of this paste from untitled to Masterwork From Distant Lands.
dkazakov updated the paste's language from autodetect to autodetect.