#5657 Delay auto client adding while activation dialog is shown
This commit is contained in:
parent
880864a249
commit
dfc7c31d67
|
@ -101,7 +101,8 @@ MainWindow::MainWindow(QSettings& settings, AppConfig& appConfig,
|
||||||
m_BonjourInstall(NULL),
|
m_BonjourInstall(NULL),
|
||||||
m_SuppressEmptyServerWarning(false),
|
m_SuppressEmptyServerWarning(false),
|
||||||
m_ExpectedRunningState(kStopped),
|
m_ExpectedRunningState(kStopped),
|
||||||
m_pSslCertificate(NULL)
|
m_pSslCertificate(NULL),
|
||||||
|
m_ActivationDialogRunning(false)
|
||||||
{
|
{
|
||||||
setupUi(this);
|
setupUi(this);
|
||||||
|
|
||||||
|
@ -1167,6 +1168,14 @@ void MainWindow::on_m_pActionSettings_triggered()
|
||||||
void MainWindow::autoAddScreen(const QString name)
|
void MainWindow::autoAddScreen(const QString name)
|
||||||
{
|
{
|
||||||
if (!m_ServerConfig.ignoreAutoConfigClient()) {
|
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);
|
int r = m_ServerConfig.autoAddScreen(name);
|
||||||
if (r != kAutoAddScreenOk) {
|
if (r != kAutoAddScreenOk) {
|
||||||
switch (r) {
|
switch (r) {
|
||||||
|
@ -1205,6 +1214,9 @@ void MainWindow::on_m_pButtonConfigureServer_clicked()
|
||||||
void MainWindow::on_m_pActivate_triggered()
|
void MainWindow::on_m_pActivate_triggered()
|
||||||
{
|
{
|
||||||
ActivationDialog activationDialog(this, appConfig(), licenseManager());
|
ActivationDialog activationDialog(this, appConfig(), licenseManager());
|
||||||
|
m_ActivationDialogRunning = true;
|
||||||
|
connect (&activationDialog, SIGNAL(finished(int)),
|
||||||
|
this, SLOT(on_activationDialogFinish()), Qt::QueuedConnection);
|
||||||
activationDialog.exec();
|
activationDialog.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1424,10 +1436,25 @@ void MainWindow::on_windowShown()
|
||||||
{
|
{
|
||||||
if (!m_AppConfig->activationHasRun() && (m_AppConfig->edition() == kUnregistered)) {
|
if (!m_AppConfig->activationHasRun() && (m_AppConfig->edition() == kUnregistered)) {
|
||||||
ActivationDialog activationDialog (this, appConfig(), licenseManager());
|
ActivationDialog activationDialog (this, appConfig(), licenseManager());
|
||||||
|
m_ActivationDialogRunning = true;
|
||||||
|
connect (&activationDialog, SIGNAL(finished(int)),
|
||||||
|
this, SLOT(on_activationDialogFinish()), Qt::QueuedConnection);
|
||||||
activationDialog.exec();
|
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()
|
QString MainWindow::getProfileRootForArg()
|
||||||
{
|
{
|
||||||
CoreInterface coreInterface;
|
CoreInterface coreInterface;
|
||||||
|
|
|
@ -221,6 +221,8 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase
|
||||||
qRuningState m_ExpectedRunningState;
|
qRuningState m_ExpectedRunningState;
|
||||||
QMutex m_StopDesktopMutex;
|
QMutex m_StopDesktopMutex;
|
||||||
SslCertificate* m_pSslCertificate;
|
SslCertificate* m_pSslCertificate;
|
||||||
|
bool m_ActivationDialogRunning;
|
||||||
|
QStringList m_PendingClientNames;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_m_pCheckBoxAutoConfig_toggled(bool checked);
|
void on_m_pCheckBoxAutoConfig_toggled(bool checked);
|
||||||
|
@ -228,6 +230,7 @@ private slots:
|
||||||
void on_m_pButtonApply_clicked();
|
void on_m_pButtonApply_clicked();
|
||||||
void installBonjour();
|
void installBonjour();
|
||||||
void on_windowShown();
|
void on_windowShown();
|
||||||
|
void on_activationDialogFinish();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void windowShown();
|
void windowShown();
|
||||||
|
|
Loading…
Reference in New Issue