Work on updating...

This commit is contained in:
Martin Rotter 2014-02-19 22:03:10 +01:00
parent ce8d020415
commit e06fb13ed3
4 changed files with 32 additions and 6 deletions

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<releases>
<release version="1.9.9.5" type="maintenance">
<url platform="x86" os="OS2">https://bitbucket.org/skunkos/rssguard/downloads/rssguard-1.9.9.5-os2.7z</url>
<release version="1.9.9.5" type="maintenance" platform="x86" os="OS2">
<url>https://bitbucket.org/skunkos/rssguard/downloads/rssguard-1.9.9.5-os2.7z</url>
<changes>
<![CDATA[
<ul>
@ -17,8 +17,8 @@
]]>
</changes>
</release>
<release version="1.9.9.5" type="maintenance">
<url platform="x86" os="Windows">https://bitbucket.org/skunkos/rssguard/downloads/rssguard-1.9.9.5-win32.7z</url>
<release version="1.9.9.5" type="maintenance" platform="x86" os="Windows">
<url>https://bitbucket.org/skunkos/rssguard/downloads/rssguard-1.9.9.5-win32.7z</url>
<changes>
<![CDATA[
<ul>

View File

@ -11,6 +11,9 @@
#include <QString>
#include <QFile>
#include <QApplication>
#include <QDomDocument>
#include <QDomElement>
#include <QDomAttr>
QPointer<SystemFactory> SystemFactory::s_instance;
@ -148,6 +151,29 @@ bool SystemFactory::setAutoStartStatus(const AutoStartStatus &new_status) {
QList<UpdateInfo> SystemFactory::parseUpdatesFile(const QByteArray &updates_file) {
QList<UpdateInfo> updates;
QDomDocument document; document.setContent(updates_file, false);
QDomNodeList releases = document.elementsByTagName("release");
for (int i = 0; i < releases.size(); i++) {
UpdateInfo info;
QDomElement rel_elem = releases.at(0).toElement();
QString type = rel_elem.attributes().namedItem("type").toAttr().value();
info.m_availableVersion = rel_elem.attributes().namedItem("version").toAttr().value();
info.m_changes = rel_elem.namedItem("changes").toElement().text();
info.m_fileUrl = rel_elem.namedItem("url").toElement().text();
info.m_os = rel_elem.attributes().namedItem("os").toAttr().value();
info.m_platform = rel_elem.attributes().namedItem("platform").toAttr().value();
if (type == "maintenance") {
info.m_type = UpdateInfo::Maintenance;
}
else {
info.m_type = UpdateInfo::Evolution;
}
updates.append(info);
}
return updates;
}

View File

@ -24,7 +24,7 @@ class UpdateInfo {
QString m_changes;
};
Q_DECLARE_METATYPE(UpdateInfo);
Q_DECLARE_METATYPE(UpdateInfo)
class SystemFactory : public QObject {
Q_OBJECT

View File

@ -43,7 +43,7 @@ void FormUpdate::checkForUpdates() {
foreach (const UpdateInfo &release, releases_list) {
m_ui->m_cmbAvailableRelease->comboBox()->addItem(release.m_availableVersion,
release);
QVariant::fromValue(release));
}
}