diff options
Diffstat (limited to 'InternetUpdater.cpp')
-rw-r--r-- | InternetUpdater.cpp | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/InternetUpdater.cpp b/InternetUpdater.cpp index 9246e80..28b7215 100644 --- a/InternetUpdater.cpp +++ b/InternetUpdater.cpp @@ -2,6 +2,7 @@ #include "EventDispatcher.h" #include "OptionEngine.h" #include "cpp11addition.h" +#include "ProductKey.h" #ifdef ULTRACOPIER_INTERNET_SUPPORT @@ -19,6 +20,7 @@ InternetUpdater::InternetUpdater(QObject *parent) : firstUpdateTimer.setSingleShot(true); firstUpdateTimer.start(1000*60); reply=NULL; + qnam=new QNetworkAccessManager(); } InternetUpdater::~InternetUpdater() @@ -28,23 +30,34 @@ InternetUpdater::~InternetUpdater() delete reply; reply=NULL; } + delete qnam; +} + +void InternetUpdater::checkUpdate() +{ + downloadFileInternal(true); } void InternetUpdater::downloadFile() { - if(!stringtobool(OptionEngine::optionEngine->getOptionValue("Ultracopier","checkTheUpdate"))) - return; + downloadFileInternal(); +} + +void InternetUpdater::downloadFileInternal(const bool force) +{ + if(!force) + if(!stringtobool(OptionEngine::optionEngine->getOptionValue("Ultracopier","checkTheUpdate"))) + return; #ifdef ULTRACOPIER_MODE_SUPERCOPIER std::string name="Supercopier"; #else std::string name="Ultracopier"; #endif std::string ultracopierVersion; - #ifdef ULTRACOPIER_VERSION_ULTIMATE - ultracopierVersion=name+" Ultimate/"+ULTRACOPIER_VERSION; - #else - ultracopierVersion=name+"/"+ULTRACOPIER_VERSION; - #endif + if(ProductKey::productKey->isUltimate()) + ultracopierVersion=name+" Ultimate/"+ULTRACOPIER_VERSION; + else + ultracopierVersion=name+"/"+ULTRACOPIER_VERSION; #ifdef ULTRACOPIER_VERSION_PORTABLE #ifdef ULTRACOPIER_PLUGIN_ALL_IN_ONE ultracopierVersion+=" portable/all-in-one"; @@ -63,7 +76,7 @@ void InternetUpdater::downloadFile() QNetworkRequest networkRequest(QStringLiteral(ULTRACOPIER_UPDATER_URL)); networkRequest.setHeader(QNetworkRequest::UserAgentHeader,QString::fromStdString(ultracopierVersion)); networkRequest.setRawHeader("Connection", "Close"); - reply = qnam.get(networkRequest); + reply = qnam->get(networkRequest); connect(reply, &QNetworkReply::finished, this, &InternetUpdater::httpFinished); } @@ -113,18 +126,23 @@ void InternetUpdater::httpFinished() { reply->deleteLater(); reply=NULL; + emit noNewUpdate(); return; } if(PluginsManager::compareVersion(newVersion.toStdString(),"<=",ULTRACOPIER_VERSION)) { reply->deleteLater(); reply=NULL; + emit noNewUpdate(); return; } newUpdateTimer.stop(); emit newUpdate(newVersion.toStdString()); reply->deleteLater(); reply=NULL; + //regen to force close the connection + delete qnam; + qnam=new QNetworkAccessManager(); } #endif |