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

#5657 Merge core fixes for trial support

  • Loading branch information...
nlyan committed Oct 19, 2016
2 parents 47913e5 + dfc7c31 commit 6a7d1dd43c59b787abc2063308d8e0855a4f34f5
Showing with 37 additions and 7 deletions.
  1. +2 −2 CMakeLists.txt
  2. +32 −5 src/gui/src/MainWindow.cpp
  3. +3 −0 src/gui/src/MainWindow.h
View
@@ -17,8 +17,8 @@
# Version number for Synergy
set(VERSION_MAJOR 1)
set(VERSION_MINOR 8)
-set(VERSION_REV 4)
-set(VERSION_STAGE stable)
+set(VERSION_REV 5)
+set(VERSION_STAGE rc1)
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REV}")
cmake_minimum_required(VERSION 2.6)
View
@@ -101,7 +101,8 @@ MainWindow::MainWindow(QSettings& settings, AppConfig& appConfig,
m_BonjourInstall(NULL),
m_SuppressEmptyServerWarning(false),
m_ExpectedRunningState(kStopped),
- m_pSslCertificate(NULL)
+ m_pSslCertificate(NULL),
+ m_ActivationDialogRunning(false)
{
setupUi(this);
@@ -555,10 +556,6 @@ void MainWindow::startSynergy()
args << "--name" << getScreenName();
- if (!appConfig().serialKey().isEmpty()) {
- args << "--serial-key" << appConfig().serialKey();
- }
-
if (desktopMode)
{
setSynergyProcess(new QProcess(this));
@@ -788,6 +785,10 @@ bool MainWindow::serverArgs(QStringList& args, QString& app)
#endif
args << "-c" << configFilename << "--address" << address();
+ if (!appConfig().serialKey().isEmpty()) {
+ args << "--serial-key" << appConfig().serialKey();
+ }
+
#if defined(Q_OS_WIN)
// pass in physical resolution and primary screen center
// TODO: get this information in the core binary even when
@@ -1187,6 +1188,14 @@ void MainWindow::on_m_pActionSettings_triggered()
void MainWindow::autoAddScreen(const QString name)
{
if (!m_ServerConfig.ignoreAutoConfigClient()) {
+ if (m_ActivationDialogRunning) {
+ // TODO: refactor this code
+ // add this screen to the pending list and check this list until
+ // users finish activation dialog
+ m_PendingClientNames.append(name);
+ return;
+ }
+
int r = m_ServerConfig.autoAddScreen(name);
if (r != kAutoAddScreenOk) {
switch (r) {
@@ -1225,6 +1234,9 @@ 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();
}
@@ -1447,10 +1459,25 @@ void MainWindow::on_windowShown()
&& ((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();
}
}
+void MainWindow::on_activationDialogFinish()
+{
+ m_ActivationDialogRunning = false;
+ if (!m_PendingClientNames.empty()) {
+ foreach (const QString& name, m_PendingClientNames) {
+ autoAddScreen(name);
+ }
+
+ m_PendingClientNames.clear();
+ }
+}
+
QString MainWindow::getProfileRootForArg()
{
CoreInterface coreInterface;
View
@@ -221,13 +221,16 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase
qRuningState m_ExpectedRunningState;
QMutex m_StopDesktopMutex;
SslCertificate* m_pSslCertificate;
+ bool m_ActivationDialogRunning;
+ QStringList m_PendingClientNames;
private slots:
void on_m_pCheckBoxAutoConfig_toggled(bool checked);
void on_m_pComboServerList_currentIndexChanged(QString );
void on_m_pButtonApply_clicked();
void installBonjour();
void on_windowShown();
+ void on_activationDialogFinish();
signals:
void windowShown();

0 comments on commit 6a7d1dd

Please sign in to comment.