1 #include "updatechecker.h"
2 #include "networkaccess.h"
5 #include "activation.h"
12 UpdateChecker::UpdateChecker() {
16 void UpdateChecker::checkForUpdate() {
17 QUrl updateUrl(QString(Constants::WEBSITE) + "-ws/release.xml");
18 updateUrl.addQueryItem("v", Constants::VERSION);
21 updateUrl.addQueryItem("os", "mac");
24 updateUrl.addQueryItem("os", "win");
28 if (Activation::instance().isActivated()) t = "active";
29 updateUrl.addQueryItem("t", t);
32 updateUrl.addQueryItem("store", "mac");
35 QObject *reply = The::http()->get(updateUrl);
36 connect(reply, SIGNAL(data(QByteArray)), SLOT(requestFinished(QByteArray)));
40 void UpdateChecker::requestFinished(QByteArray data) {
41 UpdateCheckerStreamReader reader;
43 m_needUpdate = reader.needUpdate();
44 m_remoteVersion = reader.remoteVersion();
45 if (m_needUpdate && !m_remoteVersion.isEmpty()) emit newVersion(m_remoteVersion);
48 QString UpdateChecker::remoteVersion() {
49 return m_remoteVersion;
54 bool UpdateCheckerStreamReader::read(QByteArray data) {
59 if (isStartElement()) {
60 if (name() == QLatin1String("release")) {
63 if (isStartElement() && name() == QLatin1String("version")) {
64 QString remoteVersion = readElementText();
65 qDebug() << remoteVersion << QString(Constants::VERSION);
66 m_needUpdate = remoteVersion != QString(Constants::VERSION);
67 m_remoteVersion = remoteVersion;
78 QString UpdateCheckerStreamReader::remoteVersion() {
79 return m_remoteVersion;