31 #include <tqstringlist.h>
35 class TagSet::TagSetPrivate
38 TQMap<TQString,Tag> map;
41 TagSet::TagSet(TQObject* parent) : TQObject(parent), d(new TagSetPrivate)
47 TQValueList<Tag> tags = d->map.values();
48 for (TQValueList<Tag>::Iterator it = tags.begin(); it != tags.end(); ++it)
49 (*it).removedFromTagSet(
this);
57 if (!d->map.contains(tag.id()))
59 d->map.insert(tag.id(), tag);
60 tag.addedToTagSet(
this);
67 if (d->map.contains(tag.id()))
69 d->map.remove(tag.id());
70 tag.removedFromTagSet(
this);
77 return d->map.contains(
id);
82 return d->map.contains(tag.id());
87 return d->map.contains(
id) ? d->map[id] : Tag();
97 TQDomElement root = doc.documentElement();
102 TQDomNodeList list = root.elementsByTagName(TQString::fromLatin1(
"tag"));
104 for (uint i = 0; i < list.length(); ++i)
106 TQDomElement e = list.item(i).toElement();
109 if (e.hasAttribute(TQString::fromLatin1(
"id")))
111 TQString
id = e.attribute(TQString::fromLatin1(
"id"));
112 TQString name = e.text();
113 TQString scheme = e.attribute(TQString::fromLatin1(
"scheme"));
114 Tag tag(
id, name, scheme);
116 TQString icon = e.attribute(TQString::fromLatin1(
"icon"));
135 doc.appendChild( doc.createProcessingInstruction(
"xml",
"version=\"1.0\" encoding=\"UTF-8\"" ) );
137 TQDomElement root = doc.createElement(
"tagSet");
138 root.setAttribute(
"version",
"0.1" );
139 doc.appendChild(root);
141 TQValueList<Tag> list = d->map.values();
142 for (TQValueList<Tag>::ConstIterator it = list.begin(); it != list.end(); ++it)
145 TQDomElement tn = doc.createElement(
"tag");
147 TQDomText text = doc.createTextNode((*it).name());
148 tn.setAttribute(TQString::fromLatin1(
"id"),(*it).id());
149 if (!(*it).scheme().isEmpty())
150 tn.setAttribute(TQString::fromLatin1(
"scheme"),(*it).scheme());
151 if (!(*it).icon().isEmpty())
152 tn.setAttribute(TQString::fromLatin1(
"icon"),(*it).icon());
153 tn.appendChild(text);
154 root.appendChild(tn);
161 #include "tagset.moc"