]> git.sur5r.net Git - minitube/blobdiff - src/updatechecker.cpp
Imported Upstream version 2.5.1
[minitube] / src / updatechecker.cpp
index da60d8fb706253a4eba40b8581ba0156e2b286a2..0c8ac286c4f61478c6efd2523d83c840c325d899 100644 (file)
@@ -1,9 +1,33 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+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 <http://www.gnu.org/licenses/>.
+
+$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);