X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fupdatechecker.cpp;h=0c8ac286c4f61478c6efd2523d83c840c325d899;hb=29f9a13b38a0547b70236d24300668385e1dbf6e;hp=da60d8fb706253a4eba40b8581ba0156e2b286a2;hpb=57c25e20a8f10a98a18dbc2b64ce55cf87d4fd7c;p=minitube diff --git a/src/updatechecker.cpp b/src/updatechecker.cpp index da60d8f..0c8ac28 100644 --- a/src/updatechecker.cpp +++ b/src/updatechecker.cpp @@ -1,9 +1,33 @@ +/* $BEGIN_LICENSE + +This file is part of Minitube. +Copyright 2009, Flavio Tordini + +Minitube is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Minitube is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Minitube. If not, see . + +$END_LICENSE */ + #include "updatechecker.h" #include "networkaccess.h" #include "constants.h" +#ifdef APP_ACTIVATION +#include "activation.h" +#endif +#include "compatibility/qurlqueryhelper.h" namespace The { - NetworkAccess* http(); +NetworkAccess* http(); } UpdateChecker::UpdateChecker() { @@ -11,33 +35,39 @@ UpdateChecker::UpdateChecker() { } void UpdateChecker::checkForUpdate() { - QUrl updateUrl(QString(Constants::WEBSITE) + "-ws/release.xml"); - updateUrl.addQueryItem("v", Constants::VERSION); + QUrl url(QLatin1String(Constants::WEBSITE) + "-ws/release.xml"); + + { + QUrlQueryHelper urlHelper(url); + urlHelper.addQueryItem("v", Constants::VERSION); #ifdef APP_MAC - updateUrl.addQueryItem("os", "mac"); + urlHelper.addQueryItem("os", "mac"); #endif #ifdef APP_WIN - updateUrl.addQueryItem("os", "win"); + urlHelper.addQueryItem("os", "win"); #endif -#ifdef APP_DEMO - updateUrl.addQueryItem("t", "demo"); +#ifdef APP_ACTIVATION + QString t = "demo"; + if (Activation::instance().isActivated()) t = "active"; + urlHelper.addQueryItem("t", t); #endif #ifdef APP_MAC_STORE - updateUrl.addQueryItem("store", "mac"); + urlHelper.addQueryItem("store", "mac"); #endif + } - QObject *reply = The::http()->get(updateUrl); + QObject *reply = The::http()->get(url); connect(reply, SIGNAL(data(QByteArray)), SLOT(requestFinished(QByteArray))); } void UpdateChecker::requestFinished(QByteArray data) { - UpdateCheckerStreamReader reader; - reader.read(data); - m_needUpdate = reader.needUpdate(); - m_remoteVersion = reader.remoteVersion(); - if (m_needUpdate && !m_remoteVersion.isEmpty()) emit newVersion(m_remoteVersion); + UpdateCheckerStreamReader reader; + reader.read(data); + m_needUpdate = reader.needUpdate(); + m_remoteVersion = reader.remoteVersion(); + if (m_needUpdate && !m_remoteVersion.isEmpty()) emit newVersion(m_remoteVersion); } QString UpdateChecker::remoteVersion() { @@ -52,10 +82,10 @@ bool UpdateCheckerStreamReader::read(QByteArray data) { while (!atEnd()) { readNext(); if (isStartElement()) { - if (name() == "release") { + if (name() == QLatin1String("release")) { while (!atEnd()) { readNext(); - if (isStartElement() && name() == "version") { + if (isStartElement() && name() == QLatin1String("version")) { QString remoteVersion = readElementText(); qDebug() << remoteVersion << QString(Constants::VERSION); m_needUpdate = remoteVersion != QString(Constants::VERSION);