|
|
|
@ -24,6 +24,7 @@ |
|
|
|
|
|
|
|
|
|
#include <QScriptValue> |
|
|
|
|
#include <QScriptEngine> |
|
|
|
|
#include <QUrl> |
|
|
|
|
|
|
|
|
|
#include "UBApplicationController.h" |
|
|
|
|
|
|
|
|
@ -87,7 +88,6 @@ UBApplicationController::UBApplicationController(UBBoardView *pControlView, |
|
|
|
|
, mAutomaticCheckForUpdates(false) |
|
|
|
|
, mCheckingForUpdates(false) |
|
|
|
|
, mIsShowingDesktop(false) |
|
|
|
|
, mHttp(0) |
|
|
|
|
{ |
|
|
|
|
mDisplayManager = new UBDisplayManager(this); |
|
|
|
|
|
|
|
|
@ -138,7 +138,6 @@ UBApplicationController::~UBApplicationController() |
|
|
|
|
|
|
|
|
|
delete mBlackScene; |
|
|
|
|
delete mMirror; |
|
|
|
|
if (mHttp) delete mHttp; |
|
|
|
|
|
|
|
|
|
delete(mOpenSankoreImporter); |
|
|
|
|
mOpenSankoreImporter = NULL; |
|
|
|
@ -479,45 +478,53 @@ void UBApplicationController::showDesktop(bool dontSwitchFrontProcess) |
|
|
|
|
UBDrawingController::drawingController()->setStylusTool(UBStylusTool::Selector); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void UBApplicationController::checkUpdate(QString urlString) |
|
|
|
|
{ |
|
|
|
|
if(mHttp) |
|
|
|
|
mHttp->deleteLater(); |
|
|
|
|
QUrl url(urlString); |
|
|
|
|
mHttp = new QHttp(url.host()); |
|
|
|
|
connect(mHttp, SIGNAL(requestFinished(int,bool)), this, SLOT(updateRequestFinished(int,bool))); |
|
|
|
|
connect(mHttp, SIGNAL(responseHeaderReceived(QHttpResponseHeader)), this, SLOT(updateHeaderReceived(QHttpResponseHeader))); |
|
|
|
|
|
|
|
|
|
mHttp->get(url.path()); |
|
|
|
|
//connect(networkAccessManager, &QNetworkAccessManager::finished,
|
|
|
|
|
// this, &UBApplicationController::updateRequestFinished);
|
|
|
|
|
|
|
|
|
|
connect(networkAccessManager, SIGNAL(finished(QNetworkReply*)), |
|
|
|
|
this, SLOT(updateRequestFinished(QNetworkReply*))); |
|
|
|
|
|
|
|
|
|
networkAccessManager->get(QNetworkRequest(QUrl(urlString))); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void UBApplicationController::updateHeaderReceived(QHttpResponseHeader header) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void UBApplicationController::updateRequestFinished(QNetworkReply * reply) |
|
|
|
|
{ |
|
|
|
|
if(header.statusCode() == 302 && header.hasKey("Location")){ |
|
|
|
|
mHttp->close(); |
|
|
|
|
checkUpdate(header.value("Location")); |
|
|
|
|
if (reply->error()) { |
|
|
|
|
qWarning() << "HTTP Error"; |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
// Check if we are being redirected. If so, call checkUpdate again
|
|
|
|
|
QVariant redirect_target = reply->attribute(QNetworkRequest::RedirectionTargetAttribute); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
if (!redirect_target.isNull()) { |
|
|
|
|
// The returned URL might be relative. resolved() creates an absolute url from it
|
|
|
|
|
QUrl redirect_url(reply->url().resolved(redirect_target.toUrl())); |
|
|
|
|
|
|
|
|
|
void UBApplicationController::updateRequestFinished(int id, bool error) |
|
|
|
|
{ |
|
|
|
|
if (error){ |
|
|
|
|
qWarning() << "http command id" << id << "return an error"; |
|
|
|
|
} |
|
|
|
|
else{ |
|
|
|
|
QString responseString = QString(mHttp->readAll()); |
|
|
|
|
qDebug() << responseString; |
|
|
|
|
if (!responseString.isEmpty() && responseString.contains("version") && responseString.contains("url")){ |
|
|
|
|
mHttp->close(); |
|
|
|
|
mHttp->deleteLater(); |
|
|
|
|
mHttp = 0; |
|
|
|
|
downloadJsonFinished(responseString); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
checkUpdate(redirect_url.toString()); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// No error and no redirect => we read the whole response
|
|
|
|
|
|
|
|
|
|
QString responseString = QString(reply->readAll()); |
|
|
|
|
qDebug() << responseString; |
|
|
|
|
|
|
|
|
|
if (!responseString.isEmpty() && |
|
|
|
|
responseString.contains("version") && |
|
|
|
|
responseString.contains("url")) { |
|
|
|
|
|
|
|
|
|
reply->close(); |
|
|
|
|
reply->deleteLater(); |
|
|
|
|
|
|
|
|
|
downloadJsonFinished(responseString); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void UBApplicationController::downloadJsonFinished(QString currentJson) |
|
|
|
|