43 if (!path.isEmpty()) {
46 path.prepend(node->
name());
49 parentNode = node->
parent();
58 QDomElement el =
extraData.documentElement().firstChildElement();
61 while (!el.isNull()) {
62 QString path = el.attribute(
EXR_NAME);
66 el = el.nextSiblingElement();
74 if (map.contains(path))
return map[path];
77 typename QMap<QString, T>::const_iterator it = map.constBegin();
78 typename QMap<QString, T>::const_iterator end = map.constEnd();
80 for (; it != end; ++it) {
81 if (it.key().startsWith(path)) {
91 if (root && root->
parent()) {
97 QDomElement el = pathToElementMap[path];
113 processLayers(child);
121 : m_nodeToOrderingMap(map) {}
124 return m_nodeToOrderingMap[lhs] < m_nodeToOrderingMap[rhs];
142 childNodes.append(lastChild);
143 image->removeNode(lastChild);
147 std::stable_sort(childNodes.begin(), childNodes.end(),
CompareNodesFunctor(nodeToOrderingMap));
151 image->addNode(node, root, root->
childCount());
166 m_d->createOrderingMap();
168 m_d->processLayers(image->
root());
169 m_d->sortLayers(image->
root());
static void loadPaintLayerAttributes(const QDomElement &el, KisPaintLayer *layer, bool loadLayerOffset)
#define KIS_ASSERT_RECOVER(cond)
#define KIS_ASSERT_RECOVER_RETURN(cond)
T fetchMapValueLazy(const QMap< QString, T > &map, QString path)
QString getNodePath(KisNodeSP node)
const QMap< KisNodeSP, int > & m_nodeToOrderingMap
CompareNodesFunctor(const QMap< KisNodeSP, int > &map)
KisNodeSP firstChild() const
quint32 childCount() const
KisNodeSP nextSibling() const