This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

#5657 Raise activation dialog when key expires

  • Loading branch information...
nlyan committed Oct 19, 2016
1 parent f441c24 commit e01d0ce4c70cc6c577333fc0ecdc59ae71f8e6e5
@@ -54,6 +54,57 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
+ <item>
+ <widget class="QWidget" name="m_trialWidget" native="true">
+ <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <property name="leftMargin">
+ <number>2</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>8</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="Synergy.qrc">:/res/icons/16x16/money.png</pixmap>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_trialLabel">
+ <property name="text">
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Your trial has expired. &lt;a href=&quot;http://symless.com/pricing?src=gui&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;Buy now!&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ <property name="openExternalLinks">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
@@ -66,7 +117,9 @@ p, li { white-space: pre-wrap; }
</item>
</layout>
</widget>
- <resources/>
+ <resources>
+ <include location="Synergy.qrc"/>
+ </resources>
<connections>
<connection>
<sender>buttonBox</sender>
@@ -23,6 +23,10 @@ ActivationDialog::ActivationDialog(QWidget* parent, AppConfig& appConfig,
{
ui->setupUi(this);
refreshSerialKey();
+ time_t currentTime = ::time(0);
+ if (!m_LicenseManager->serialKey().isExpired(currentTime)) {
+ ui->m_trialWidget->hide();
+ }
}
void ActivationDialog::refreshSerialKey()
@@ -44,17 +44,17 @@ LicenseManager::setSerialKey(QString serialKeyString, bool acceptExpired)
if (serialKey != m_serialKey) {
using std::swap;
swap (serialKey, m_serialKey);
- m_AppConfig->setSerialKey (serialKeyString);
- notifyActivation ("serial:" + serialKeyString);
- emit serialKeyChanged (m_serialKey);
+ m_AppConfig->setSerialKey(serialKeyString);
+ notifyActivation("serial:" + serialKeyString);
+ emit serialKeyChanged(m_serialKey);
if (serialKey.isTrial()) {
emit endTrial(false);
}
if (m_serialKey.edition() != serialKey.edition()) {
- m_AppConfig->setEdition (m_serialKey.edition());
- emit editionChanged (m_serialKey.edition());
+ m_AppConfig->setEdition(m_serialKey.edition());
+ emit editionChanged(m_serialKey.edition());
}
if (m_serialKey.isTrial()) {
@@ -91,7 +91,9 @@ LicenseManager::serialKey() const
void LicenseManager::refresh(bool acceptExpired)
{
- setSerialKey (m_AppConfig->serialKey(), acceptExpired);
+ if (!m_AppConfig->serialKey().isEmpty()) {
+ setSerialKey(m_AppConfig->serialKey(), acceptExpired);
+ }
}
void LicenseManager::skipActivation()
View
@@ -420,8 +420,10 @@ void MainWindow::appendLogRaw(const QString& text)
void MainWindow::updateFromLogLine(const QString &line)
{
+ // TODO: this code makes Andrew cry
checkConnected(line);
checkFingerprint(line);
+ checkLicense(line);
}
void MainWindow::checkConnected(const QString& line)
@@ -449,7 +451,7 @@ void MainWindow::checkConnected(const QString& line)
void MainWindow::checkLicense(const QString &line)
{
if (line.contains("trial has expired")) {
- m_LicenseManager->refresh(true);
+ raiseActivationDialog();
}
}
@@ -541,6 +543,14 @@ void MainWindow::clearLog()
void MainWindow::startSynergy()
{
+ SerialKey serialKey = m_LicenseManager->serialKey();
+ time_t currentTime = ::time(0);
+ if (serialKey.isExpired(currentTime)) {
+ if (QDialog::Rejected == raiseActivationDialog()) {
+ return;
+ }
+ }
+
bool desktopMode = appConfig().processMode() == Desktop;
bool serviceMode = appConfig().processMode() == Service;
@@ -1233,11 +1243,7 @@ void MainWindow::on_m_pButtonConfigureServer_clicked()
void MainWindow::on_m_pActivate_triggered()
{
- ActivationDialog activationDialog(this, appConfig(), licenseManager());
- m_ActivationDialogRunning = true;
- connect (&activationDialog, SIGNAL(finished(int)),
- this, SLOT(on_activationDialogFinish()), Qt::QueuedConnection);
- activationDialog.exec();
+ raiseActivationDialog();
}
void MainWindow::on_m_pButtonApply_clicked()
@@ -1452,22 +1458,16 @@ void MainWindow::bonjourInstallFinished()
m_pCheckBoxAutoConfig->setChecked(true);
}
-void MainWindow::on_windowShown()
+int MainWindow::raiseActivationDialog()
{
- time_t currentTime = ::time(0);
- if (!m_AppConfig->activationHasRun()
- && ((m_AppConfig->edition() == kUnregistered) ||
- (m_LicenseManager->serialKey().isExpired(currentTime)))) {
- ActivationDialog activationDialog (this, appConfig(), licenseManager());
- m_ActivationDialogRunning = true;
- connect (&activationDialog, SIGNAL(finished(int)),
- this, SLOT(on_activationDialogFinish()), Qt::QueuedConnection);
- activationDialog.exec();
+ if (m_ActivationDialogRunning) {
+ return QDialog::Rejected;
}
-}
-
-void MainWindow::on_activationDialogFinish()
-{
+ ActivationDialog activationDialog (this, appConfig(), licenseManager());
+ m_ActivationDialogRunning = true;
+ connect (&activationDialog, SIGNAL(finished(int)),
+ this, SLOT(on_activationDialogFinish()), Qt::QueuedConnection);
+ int result = activationDialog.exec();
m_ActivationDialogRunning = false;
if (!m_PendingClientNames.empty()) {
foreach (const QString& name, m_PendingClientNames) {
@@ -1476,6 +1476,20 @@ void MainWindow::on_activationDialogFinish()
m_PendingClientNames.clear();
}
+ if (result == QDialog::Accepted) {
+ restartSynergy();
+ }
+ return result;
+}
+
+void MainWindow::on_windowShown()
+{
+ time_t currentTime = ::time(0);
+ if (!m_AppConfig->activationHasRun()
+ && ((m_AppConfig->edition() == kUnregistered) ||
+ (m_LicenseManager->serialKey().isExpired(currentTime)))) {
+ raiseActivationDialog();
+ }
}
QString MainWindow::getProfileRootForArg()
View
@@ -120,7 +120,9 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase
void updateLocalFingerprint();
LicenseManager& licenseManager() const;
- public slots:
+ int raiseActivationDialog();
+
+public slots:
void setEdition(Edition edition);
void beginTrial(bool isExpiring);
void endTrial(bool isExpired);
@@ -230,7 +232,6 @@ private slots:
void on_m_pButtonApply_clicked();
void installBonjour();
void on_windowShown();
- void on_activationDialogFinish();
signals:
void windowShown();

0 comments on commit e01d0ce

Please sign in to comment.