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 QObject *reply = The::http()->get(updateUrl);
28 connect(reply, SIGNAL(data(QByteArray)), SLOT(requestFinished(QByteArray)));
32 void UpdateChecker::requestFinished(QByteArray data) {
33 UpdateCheckerStreamReader reader;
35 m_needUpdate = reader.needUpdate();
36 m_remoteVersion = reader.remoteVersion();
37 if (m_needUpdate && !m_remoteVersion.isEmpty()) emit newVersion(m_remoteVersion);
40 QString UpdateChecker::remoteVersion() {
41 return m_remoteVersion;
46 bool UpdateCheckerStreamReader::read(QByteArray data) {
51 if (isStartElement()) {
52 if (name() == "release") {
55 if (isStartElement() && name() == "version") {
56 QString remoteVersion = readElementText();
57 qDebug() << remoteVersion << QString(Constants::VERSION);
58 m_needUpdate = remoteVersion != QString(Constants::VERSION);
59 m_remoteVersion = remoteVersion;
70 QString UpdateCheckerStreamReader::remoteVersion() {
71 return m_remoteVersion;