#5707 Add from and to version numbers to version update notification

This commit is contained in:
Andrew Nelless 2016-10-28 13:17:07 +01:00
parent 2de06b9727
commit 4206799ae3
8 changed files with 57 additions and 12 deletions

View File

@ -20,7 +20,7 @@
#include "CoreInterface.h" #include "CoreInterface.h"
ActivationNotifier::ActivationNotifier(QObject *parent) : ActivationNotifier::ActivationNotifier(QObject *parent) :
QObject(parent) QObject(parent)
{ {
} }
@ -29,6 +29,15 @@ void ActivationNotifier::setIdentity(QString identity)
m_Identity = identity; m_Identity = identity;
} }
void ActivationNotifier::setUpgradeInfo(QString const& fromVersion,
QString const& toVersion,
QString const& serialKey)
{
m_fromVersion = fromVersion;
m_toVersion = toVersion;
m_serialKey = serialKey;
}
void ActivationNotifier::notify() void ActivationNotifier::notify()
{ {
CoreInterface coreInterface; CoreInterface coreInterface;
@ -39,3 +48,13 @@ void ActivationNotifier::notify()
// catch all exceptions and fails silently // catch all exceptions and fails silently
} }
} }
void ActivationNotifier::notifyUpgrade()
{
try {
CoreInterface coreInterface;
coreInterface.notifyUpdate(m_fromVersion, m_toVersion,
m_serialKey);
} catch (...) {
}
}

View File

@ -24,18 +24,24 @@ class ActivationNotifier : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit ActivationNotifier(QObject *parent = 0); explicit ActivationNotifier(QObject *parent = 0);
void setIdentity(QString identity); void setIdentity(QString identity);
void setUpgradeInfo(QString const& fromVersion,
QString const& toVersion, QString const& serialKey);
public slots: public slots:
void notify(); void notify();
void notifyUpgrade();
signals: signals:
void finished(); void finished();
private: private:
QString m_Identity; QString m_Identity;
QString m_fromVersion;
QString m_toVersion;
QString m_serialKey;
}; };
#endif // ACTIVATIONNOTIFIER_H #endif // ACTIVATIONNOTIFIER_H

View File

@ -62,10 +62,11 @@ QString CoreInterface::getSerialKeyFilePath()
return filename; return filename;
} }
QString CoreInterface::notifyUpgrade (QString const& version, QString CoreInterface::notifyUpdate (QString const& fromVersion,
QString const& serialKey) { QString const& toVersion,
QString const& serialKey) {
QStringList args("--notify-upgrade"); QStringList args("--notify-upgrade");
QString input(version + ":" + serialKey); QString input(fromVersion + ":" + toVersion + ":" + serialKey);
return run(args, input); return run(args, input);
} }

View File

@ -29,6 +29,8 @@ public:
QString getArch(); QString getArch();
QString getSerialKeyFilePath(); QString getSerialKeyFilePath();
QString notifyActivation(const QString& identity); QString notifyActivation(const QString& identity);
QString notifyUpgrade (QString const& version, QString const& serialKey); QString notifyUpdate (QString const& fromVersion,
QString const& toVersion,
QString const& serialKey);
QString run(const QStringList& args, const QString& input = ""); QString run(const QStringList& args, const QString& input = "");
}; };

View File

@ -72,8 +72,21 @@ LicenseManager::setSerialKey(QString serialKeyString, bool acceptExpired)
} }
void void
LicenseManager::notifyUpdate(QString version) { LicenseManager::notifyUpdate(QString fromVersion, QString toVersion) {
ActivationNotifier* notifier = new ActivationNotifier();
notifier->setUpgradeInfo (fromVersion, toVersion,
QString::fromStdString(m_serialKey.toString()));
QThread* thread = new QThread();
connect(notifier, SIGNAL(finished()), thread, SLOT(quit()));
connect(notifier, SIGNAL(finished()), notifier, SLOT(deleteLater()));
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
notifier->moveToThread(thread);
thread->start();
QMetaObject::invokeMethod(notifier, "notifyUpgrade",
Qt::QueuedConnection);
} }
Edition Edition

View File

@ -36,7 +36,7 @@ public:
QString activeEditionName() const; QString activeEditionName() const;
SerialKey serialKey() const; SerialKey serialKey() const;
void skipActivation(); void skipActivation();
void notifyUpdate(QString version); void notifyUpdate(QString fromVersion, QString toVersion);
static QString getEditionName(Edition edition, bool trial = false); static QString getEditionName(Edition edition, bool trial = false);
private: private:

View File

@ -157,9 +157,12 @@ MainWindow::MainWindow(QSettings& settings, AppConfig& appConfig,
setWindowTitle (m_LicenseManager->activeEditionName()); setWindowTitle (m_LicenseManager->activeEditionName());
m_LicenseManager->refresh(); m_LicenseManager->refresh();
QString lastVersion = m_AppConfig->lastVersion();
QString currentVersion = m_VersionChecker.getVersion(); QString currentVersion = m_VersionChecker.getVersion();
if (m_AppConfig->lastVersion() != currentVersion) { if (lastVersion != currentVersion) {
m_AppConfig->setLastVersion (currentVersion); m_AppConfig->setLastVersion (currentVersion);
m_AppConfig->saveSettings();
m_LicenseManager->notifyUpdate (lastVersion, currentVersion);
} }
} }

View File

@ -146,11 +146,12 @@ ToolApp::notifyUpgrade()
std::vector<String> parts = synergy::string::splitString(data, ':'); std::vector<String> parts = synergy::string::splitString(data, ':');
size_t count = parts.size(); size_t count = parts.size();
if (count == 2) { if (count == 3) {
std::stringstream ss; std::stringstream ss;
ss << JSON_URL << "notify/upgraded/"; ss << JSON_URL << "notify/upgraded/";
ss << "?version=" << parts[0]; ss << "?from=" << parts[0];
ss << "&serial=" << parts[1]; ss << "&to=" << parts[1];
ss << "&serial=" << parts[2];
std::cout << ARCH->internet().get(ss.str()) << std::endl; std::cout << ARCH->internet().get(ss.str()) << std::endl;
} }