37 mProviderXML = serializeElement(
provider);
41 :mProviderXML(providerxml)
44 mProvider = deserializeElement(providerxml);
62 provider->setUploadUrl(mProvider.uploadUrl());
63 provider->setNoUploadUrl(mProvider.noUploadUrl());
64 provider->setWebAccess(mProvider.webAccess());
65 provider->setWebService(mProvider.webService());
68 const QStringList feeds = mProvider.feeds();
69 for (QStringList::ConstIterator it = feeds.begin(); it != feeds.end(); ++it) {
70 Feed *feed = mProvider.downloadUrlFeed((*it));
71 provider->addDownloadUrlFeed((*it), feed);
81QDomElement ProviderHandler::serializeElement(
const Provider& provider)
85 QDomElement el = doc.createElement(
"provider");
89 QStringList::ConstIterator it;
91 const QStringList langs = name.languages();
92 for (it = langs.begin(); it != langs.end(); ++it) {
93 e = addElement(doc, el,
"title", name.translated(*it));
94 e.setAttribute(
"lang", *it);
104 if (
provider.noUploadUrl().isValid()) {
105 el.setAttribute(
"nouploadurl",
provider.noUploadUrl().url());
107 if (
provider.webAccess().isValid()) {
108 el.setAttribute(
"webaccess",
provider.webAccess().url());
110 if (
provider.webService().isValid()) {
111 el.setAttribute(
"webservice",
provider.webService().url());
114 el.setAttribute(
"icon",
provider.icon().url());
117 const QStringList feeds =
provider.feeds();
118 for (QStringList::ConstIterator it = feeds.begin(); it != feeds.end(); ++it) {
119 Feed *feed =
provider.downloadUrlFeed((*it));
121 el.setAttribute(
"downloadurl", feed->
feedUrl().
url());
123 el.setAttribute(
"downloadurl-" + (*it), feed->
feedUrl().
url());
130Provider ProviderHandler::deserializeElement(
const QDomElement& providerxml)
135 if (providerxml.tagName() !=
"provider")
return provider;
137 QString uploadurl = providerxml.attribute(
"uploadurl");
138 QString nouploadurl = providerxml.attribute(
"nouploadurl");
139 QString webservice = providerxml.attribute(
"webservice");
140 QString webaccess = providerxml.attribute(
"webaccess");
142 provider.setUploadUrl(KUrl(uploadurl));
143 provider.setNoUploadUrl(KUrl(nouploadurl));
144 provider.setWebService(KUrl(webservice));
145 provider.setWebAccess(KUrl(webaccess));
147 QString downloadurl = providerxml.attribute(
"downloadurl");
148 QString downloadlatest = providerxml.attribute(
"downloadurl-latest");
149 QString downloadscore = providerxml.attribute(
"downloadurl-score");
150 QString downloaddownloads = providerxml.attribute(
"downloadurl-downloads");
152 if (!downloadlatest.isEmpty()) {
153 Feed *feedlatest =
new Feed();
154 feedlatest->
setName(
i18nc(
"describes the feed of the latest posted entries",
"Latest"));
156 provider.addDownloadUrlFeed(
"latest", feedlatest);
158 if (!downloadscore.isEmpty()) {
159 Feed *feedscore =
new Feed();
162 provider.addDownloadUrlFeed(
"score", feedscore);
164 if (!downloaddownloads.isEmpty()) {
165 Feed *feeddownloads =
new Feed();
168 provider.addDownloadUrlFeed(
"downloads", feeddownloads);
170 if (!downloadurl.isEmpty()) {
171 Feed *feedgeneric =
new Feed();
174 feedgeneric->
setName(
i18nc(
"describes the feed of the latest posted entries",
"Latest"));
176 provider.addDownloadUrlFeed(QString(), feedgeneric);
182 KUrl iconurl(providerxml.attribute(
"icon"));
183 if (!iconurl.isValid()) iconurl.setPath(providerxml.attribute(
"icon"));
187 for (n = providerxml.firstChild(); !n.isNull(); n = n.nextSibling()) {
188 QDomElement e = n.toElement();
189 if (e.tagName() ==
"title") {
190 QString lang = e.attribute(
"lang");
191 name.addString(lang, e.text().trimmed());
199 if ((
provider.noUploadUrl().isValid()) && (
provider.uploadUrl().isValid())) {
204 if ((!
provider.noUploadUrl().isValid()) && (!
provider.uploadUrl().isValid())) {
205 if (!
provider.webService().isValid()) {
218QDomElement ProviderHandler::addElement(QDomDocument& doc, QDomElement& parent,
219 const QString& tag,
const QString& value)
221 QDomElement n = doc.createElement(tag);
222 n.appendChild(doc.createTextNode(value));
223 parent.appendChild(n);
KUrl feedUrl() const
Retrieve the URL of the feed.
void setFeedUrl(const KUrl &feedurl)
Sets the URL for this feed.
void setName(const KTranslatable &name)
Sets the name for this feed.
String class with multiple localized representations.
QDomElement providerXML()
ProviderHandler(const QDomElement &providerxml)
KNewStuff provider container.
KUrl uploadUrl() const
Retrieves the upload URL.
KTranslatable name() const
Retrieves the common name of the provider.
QString url(AdjustPathOption trailing=LeaveTrailingSlash) const
QString i18n(const char *text)
QString i18nc(const char *ctxt, const char *text)
const char * name(StandardAction id)