19#ifndef KIS_SAVEXML_VISITOR_H_
20#define KIS_SAVEXML_VISITOR_H_
24#include "kis_adjustment_layer.h"
25#include "kis_exif_info.h"
26#include "kis_group_layer.h"
29#include "kis_layer_visitor.h"
30#include "kis_paint_layer.h"
33class KisSaveXmlVisitor :
public KisLayerVisitor {
35 KisSaveXmlVisitor(TQDomDocument doc, TQDomElement element, TQ_UINT32 &count,
bool root=
false) :
45 virtual bool visit(KisPaintLayer *layer)
47 TQDomElement layerElement = m_doc.createElement(
"layer");
49 layerElement.setAttribute(
"name", layer->name());
50 layerElement.setAttribute(
"x", layer->x());
51 layerElement.setAttribute(
"y", layer->y());
52 layerElement.setAttribute(
"opacity", layer->opacity());
53 layerElement.setAttribute(
"compositeop", layer->compositeOp().id().id());
54 layerElement.setAttribute(
"visible", layer->visible());
55 layerElement.setAttribute(
"locked", layer->locked());
56 layerElement.setAttribute(
"layertype",
"paintlayer");
57 layerElement.setAttribute(
"filename", TQString(
"layer%1").arg(m_count));
58 layerElement.setAttribute(
"colorspacename", layer->paintDevice()->colorSpace()->id().id());
59 layerElement.setAttribute(
"hasmask", layer->
hasMask());
60 m_elem.appendChild(layerElement);
62 if(layer->paintDevice()->hasExifInfo())
64 TQDomElement exifElmt = layer->paintDevice()->exifInfo()->save(m_doc);
65 layerElement.appendChild(exifElmt);
71 virtual bool visit(KisGroupLayer *layer)
73 TQDomElement layerElement;
76 layerElement = m_elem;
79 layerElement = m_doc.createElement(
"layer");
81 layerElement.setAttribute(
"name", layer->name());
82 layerElement.setAttribute(
"x", layer->x());
83 layerElement.setAttribute(
"y", layer->y());
84 layerElement.setAttribute(
"opacity", layer->opacity());
85 layerElement.setAttribute(
"compositeop", layer->compositeOp().id().id());
86 layerElement.setAttribute(
"visible", layer->visible());
87 layerElement.setAttribute(
"locked", layer->locked());
88 layerElement.setAttribute(
"layertype",
"grouplayer");
90 m_elem.appendChild(layerElement);
93 TQDomElement elem = m_doc.createElement(
"LAYERS");
95 layerElement.appendChild(elem);
97 KisSaveXmlVisitor visitor(m_doc, elem, m_count);
103 child->accept(visitor);
104 child = child->nextSibling();
109 virtual bool visit(KisPartLayer* layer)
111 bool ok = layer->saveToXML(m_doc, m_elem);
115 virtual bool visit(KisAdjustmentLayer* layer)
117 TQDomElement layerElement = m_doc.createElement(
"layer");
119 layerElement.setAttribute(
"name", layer->name());
120 layerElement.setAttribute(
"filtername", layer->filter()->
name());
121 layerElement.setAttribute(
"filterversion", layer->filter()->
version());
122 layerElement.setAttribute(
"opacity", layer->opacity());
123 layerElement.setAttribute(
"compositeop", layer->compositeOp().id().id());
124 layerElement.setAttribute(
"visible", layer->visible());
125 layerElement.setAttribute(
"locked", layer->locked());
126 layerElement.setAttribute(
"layertype",
"adjustmentlayer");
127 layerElement.setAttribute(
"filename", TQString(
"layer%1").arg(m_count));
128 layerElement.setAttribute(
"x", layer->x());
129 layerElement.setAttribute(
"y", layer->y());
130 m_elem.appendChild(layerElement);
const TQString & name() const
Get the unique, language independent name of the filter.
TQ_INT32 version() const
Get the version of the filter that has created this config.
virtual KisLayerSP firstChild() const
Returns the first child layer of this layer (if it supports that).
bool hasMask() const
Does this layer have a layer mask?