31 mEntryXML = serializeElement(
entry);
38 mEntry = deserializeElement(entryxml);
41void EntryHandler::init()
70 entry->setName(mEntry.name());
71 entry->setAuthor(mEntry.author());
72 entry->setCategory(mEntry.category());
73 entry->setLicense(mEntry.license());
74 entry->setSummary(mEntry.summary());
75 entry->setVersion(mEntry.version());
76 entry->setRelease(mEntry.release());
77 entry->setReleaseDate(mEntry.releaseDate());
78 entry->setPayload(mEntry.payload());
79 entry->setPreview(mEntry.preview());
80 entry->setRating(mEntry.rating());
81 entry->setDownloads(mEntry.downloads());
82 entry->setInstalledFiles(mEntry.installedFiles());
83 entry->setIdNumber(mEntry.idNumber());
87QDomElement EntryHandler::serializeElement(
const Entry& entry)
91 QDomElement el = doc.createElement(
"stuff");
96 QStringList::ConstIterator it;
100 langs = name.languages();
101 for (it = langs.constBegin(); it != langs.constEnd(); ++it) {
102 e = addElement(doc, el,
"name", name.translated(*it));
103 e.setAttribute(
"lang", *it);
106 QDomElement author = addElement(doc, el,
"author",
entry.
author().
name());
118 (void)addElement(doc, el,
"release", QString::number(
entry.
release()));
120 (void)addElement(doc, el,
"rating", QString::number(
entry.
rating()));
121 (void)addElement(doc, el,
"downloads", QString::number(
entry.
downloads()));
123 if (!
entry.signature().isEmpty()) {
124 (void)addElement(doc, el,
"signature",
entry.signature());
126 if (!
entry.checksum().isEmpty()) {
127 (void)addElement(doc, el,
"checksum",
entry.checksum());
129 foreach(
const QString &file,
entry.installedFiles()) {
130 (void)addElement(doc, el,
"installedfile", file);
132 if (
entry.idNumber() > 0) {
133 addElement(doc, el,
"id", QString::number(
entry.idNumber()));
136 (void)addElement(doc, el,
"releasedate",
137 entry.releaseDate().toString(Qt::ISODate));
139 KTranslatable summary =
entry.summary();
140 KTranslatable preview =
entry.preview();
141 KTranslatable payload =
entry.payload();
144 for (it = langs.constBegin(); it != langs.constEnd(); ++it) {
145 e = addElement(doc, el,
"summary", summary.
translated(*it));
146 e.setAttribute(
"lang", *it);
150 for (it = langs.constBegin(); it != langs.constEnd(); ++it) {
151 e = addElement(doc, el,
"preview", KUrl(preview.
translated(*it)).fileName());
152 e.setAttribute(
"lang", *it);
156 for (it = langs.constBegin(); it != langs.constEnd(); ++it) {
157 e = addElement(doc, el,
"payload", KUrl(payload.
translated(*it)).fileName());
158 e.setAttribute(
"lang", *it);
164Entry EntryHandler::deserializeElement(
const QDomElement& entryxml)
167 KTranslatable
name, summary, preview, payload;
169 QStringList installedFiles;
171 if (entryxml.tagName() !=
"stuff")
return entry;
174 QString category = entryxml.attribute(
"category");
175 entry.setCategory(category);
179 for (n = entryxml.firstChild(); !n.isNull(); n = n.nextSibling()) {
180 QDomElement e = n.toElement();
181 if (e.tagName() ==
"name") {
182 QString lang = e.attribute(
"lang");
183 name.addString(lang, e.text().trimmed());
184 }
else if (e.tagName() ==
"author") {
186 QString email = e.attribute(
"email");
187 QString jabber = e.attribute(
"im");
188 QString homepage = e.attribute(
"homepage");
189 author.
setName(e.text().trimmed());
193 entry.setAuthor(author);
194 }
else if (e.tagName() ==
"licence") {
195 entry.setLicense(e.text().trimmed());
196 }
else if (e.tagName() ==
"summary") {
197 QString lang = e.attribute(
"lang");
199 summary.
addString(lang, e.text().trimmed());
200 }
else if (e.tagName() ==
"version") {
201 entry.setVersion(e.text().trimmed());
202 }
else if (e.tagName() ==
"release") {
204 entry.setRelease(e.text().toInt());
206 }
else if (e.tagName() ==
"releasedate") {
207 QDate date = QDate::fromString(e.text().trimmed(), Qt::ISODate);
208 entry.setReleaseDate(date);
209 }
else if (e.tagName() ==
"preview") {
210 QString lang = e.attribute(
"lang");
211 preview.
addString(lang, e.text().trimmed());
212 }
else if (e.tagName() ==
"payload") {
213 QString lang = e.attribute(
"lang");
214 payload.
addString(lang, e.text().trimmed());
215 }
else if (e.tagName() ==
"rating") {
216 entry.setRating(e.text().toInt());
217 }
else if (e.tagName() ==
"downloads") {
218 entry.setDownloads(e.text().toInt());
219 }
else if (e.tagName() ==
"category") {
221 entry.setCategory(e.text());
223 }
else if (e.tagName() ==
"signature") {
224 entry.setSignature(e.text());
225 }
else if (e.tagName() ==
"checksum") {
226 entry.setChecksum(e.text());
227 }
else if (e.tagName() ==
"installedfile") {
228 installedFiles << e.text();
229 }
else if (e.tagName() ==
"id") {
230 idNumber = e.text().toInt();
236 entry.setSummary(summary);
237 entry.setPreview(preview);
238 entry.setPayload(payload);
239 entry.setInstalledFiles(installedFiles);
240 entry.setIdNumber(idNumber);
244 if (
entry.name().isEmpty()) {
245 kWarning(550) <<
"EntryHandler: no name given";
249 if (
entry.payload().isEmpty()) {
250 kWarning(550) <<
"EntryHandler: no payload URL given";
260QDomElement EntryHandler::addElement(QDomDocument& doc, QDomElement& parent,
261 const QString& tag,
const QString& value)
263 QDomElement n = doc.createElement(tag);
264 n.appendChild(doc.createTextNode(value));
265 parent.appendChild(n);
QString homepage() const
Retrieve the author's homepage.
void setJabber(const QString &jabber)
Sets the jabber address of the author.
void setName(const QString &name)
Sets the full name of the author.
void setEmail(const QString &email)
Sets the email address of the author.
void setHomepage(const QString &homepage)
Sets the homepage of the author.
QString jabber() const
Retrieve the author's jabber address.
QString name() const
Retrieve the author's name.
QString email() const
Retrieve the author's email address.
void setCompatibilityFormat()
EntryHandler(const QDomElement &entryxml)
KNewStuff data entry container.
KTranslatable name() const
Retrieve the name of the data object.
int downloads() const
Retrieve the download count for the object, which has been determined by its hosting sites and thus m...
QString category() const
Retrieve the category of the data object.
int release() const
Retrieve the release number of the object.
QString version() const
Retrieve the version string of the object.
int rating() const
Retrieve the rating for the object, which has been determined by its users and thus might change over...
Author author() const
Retrieve the author of the object.
QString license() const
Retrieve the license name of the object.
String class with multiple localized representations.
QString translated(const QString &lang) const
Returns the string which matches most closely the specified language.
QStringList languages() const
Returns the list of all languages for which strings are stored.
void addString(const QString &lang, const QString &string)
Adds a string to the contents of this object.
const char * name(StandardAction id)