10#include <QDomDocument>
28 d->properties = rhs.
d->properties;
38 return QMapIterator<QString, QVariant>(
d->properties);
44 return d->properties.isEmpty();
49 d->properties.clear();
52 QDomNode n = e.firstChild();
56 QDomElement e = n.toElement();
58 if (e.tagName() ==
"property") {
59 const QString name = e.attribute(
"name");
60 const QString type = e.attribute(
"type");
61 const QString
value = e.text();
62 QDataStream in(QByteArray::fromBase64(
value.toLatin1()));
65 d->properties[name] =
v;
76 if (!doc.setContent(s))
78 load(doc.documentElement());
85 QDomDocument doc = root.ownerDocument();
86 QMap<QString, QVariant>::Iterator it;
87 for (it =
d->properties.begin(); it !=
d->properties.end(); ++it) {
88 QDomElement e = doc.createElement(
"property");
89 e.setAttribute(
"name", QString(it.key().toLatin1()));
90 QVariant
v = it.value();
91 e.setAttribute(
"type",
v.typeName());
94 QDataStream out(&bytes, QIODevice::WriteOnly);
96 QDomText text = doc.createCDATASection(QString::fromLatin1(bytes.toBase64()));
104 QDomDocument doc = QDomDocument(s);
105 QDomElement root = doc.createElement(s);
106 doc.appendChild(root);
109 return doc.toString();
115 d->properties.insert(name,
value);
120 QMap<QString, QVariant>::const_iterator it =
d->properties.constFind(name);
121 if (it ==
d->properties.constEnd()) {
131 return d->properties.value(name, QVariant());
174 return d->properties.contains(key);
179 return d->properties.value(key);
184 if (
d->properties.count() != other.
d->properties.count())
186 Q_FOREACH (
const QString & key,
d->properties.keys()) {
187 if (other.
d->properties.value(key) !=
d->properties.value(key))
float value(const T *src, size_t ch)
QVariant value(const QString &key) const
void save(QDomElement &root) const
bool operator==(const KoProperties &other) const
void load(const QDomElement &root)
QMap< QString, QVariant > properties
QString store(const QString &root) const
Create a serialized version of these properties (as XML) with root as the root element.
int intProperty(const QString &name, int defaultValue=0) const
bool boolProperty(const QString &name, bool defaultValue=false) const
bool contains(const QString &key) const
QMapIterator< QString, QVariant > propertyIterator() const
void setProperty(const QString &name, const QVariant &value)
QString stringProperty(const QString &name, const QString &defaultValue=QString()) const
bool property(const QString &name, QVariant &value) const
qreal doubleProperty(const QString &name, qreal defaultValue=0.0) const