summaryrefslogtreecommitdiff
path: root/InternetUpdater.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'InternetUpdater.cpp')
-rw-r--r--InternetUpdater.cpp34
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