1 #include "updatechecker.h"
2 #include "networkaccess.h"
9 UpdateChecker::UpdateChecker() {
13 void UpdateChecker::checkForUpdate() {
14 QUrl updateUrl(QString(Constants::WEBSITE) + "-ws/release.xml");
15 updateUrl.addQueryItem("v", Constants::VERSION);
18 updateUrl.addQueryItem("os", "mac");
21 updateUrl.addQueryItem("os", "win");
24 updateUrl.addQueryItem("t", "demo");
27 updateUrl.addQueryItem("store", "mac");
30 QObject *reply = The::http()->get(updateUrl);
31 connect(reply, SIGNAL(data(QByteArray)), SLOT(requestFinished(QByteArray)));
35 void UpdateChecker::requestFinished(QByteArray data) {
36 UpdateCheckerStreamReader reader;
38 m_needUpdate = reader.needUpdate();
39 m_remoteVersion = reader.remoteVersion();
40 if (m_needUpdate && !m_remoteVersion.isEmpty()) emit newVersion(m_remoteVersion);
43 QString UpdateChecker::remoteVersion() {
44 return m_remoteVersion;
49 bool UpdateCheckerStreamReader::read(QByteArray data) {
54 if (isStartElement()) {
55 if (name() == "release") {
58 if (isStartElement() && name() == "version") {
59 QString remoteVersion = readElementText();
60 qDebug() << remoteVersion << QString(Constants::VERSION);
61 m_needUpdate = remoteVersion != QString(Constants::VERSION);
62 m_remoteVersion = remoteVersion;
73 QString UpdateCheckerStreamReader::remoteVersion() {
74 return m_remoteVersion;