From 6870af8eb775a985e3a2e36fa05f930dd3325e37 Mon Sep 17 00:00:00 2001 From: Jamie Newbon Date: Mon, 8 Apr 2019 15:20:56 +0100 Subject: [PATCH 1/5] #6471 Stopped gui locking into retry loop --- src/gui/src/MainWindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp index 624d71ba..7e9e8744 100644 --- a/src/gui/src/MainWindow.cpp +++ b/src/gui/src/MainWindow.cpp @@ -932,7 +932,7 @@ void MainWindow::setSynergyState(qSynergyState state) if (synergyState() == state) return; - if ((state == synergyConnected) || (state == synergyConnecting) || (state == synergyListening)) + if ((state == synergyConnected) || (state == synergyListening)) { disconnect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStartSynergy, SLOT(trigger())); connect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStopSynergy, SLOT(trigger())); From 6f17cb9a31bb81d00073f3af50fd1fa85619c80b Mon Sep 17 00:00:00 2001 From: Jamie Newbon Date: Tue, 30 Apr 2019 11:42:34 +0100 Subject: [PATCH 2/5] #6471 Added Pending retry state --- src/gui/src/MainWindow.cpp | 3 ++- src/gui/src/MainWindow.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp index 7e9e8744..dc367b95 100644 --- a/src/gui/src/MainWindow.cpp +++ b/src/gui/src/MainWindow.cpp @@ -914,6 +914,7 @@ void MainWindow::synergyFinished(int exitCode, QProcess::ExitStatus) if (m_ExpectedRunningState == kStarted) { QTimer::singleShot(1000, this, SLOT(startSynergy())); appendLogInfo(QString("detected process not running, auto restarting")); + setSynergyState(synergyPendingRetry); } else { setSynergyState(synergyDisconnected); @@ -932,7 +933,7 @@ void MainWindow::setSynergyState(qSynergyState state) if (synergyState() == state) return; - if ((state == synergyConnected) || (state == synergyListening)) + if ((state == synergyConnected) || (state == synergyConnecting) || (state == synergyListening) || (state == synergyPendingRetry)) { disconnect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStartSynergy, SLOT(trigger())); connect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStopSynergy, SLOT(trigger())); diff --git a/src/gui/src/MainWindow.h b/src/gui/src/MainWindow.h index e267ccf2..035252b9 100644 --- a/src/gui/src/MainWindow.h +++ b/src/gui/src/MainWindow.h @@ -73,7 +73,8 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase synergyDisconnected, synergyConnecting, synergyConnected, - synergyListening + synergyListening, + synergyPendingRetry }; enum qSynergyType From 7f4ca774445b0d18f2256b7d03cc1ff53171a850 Mon Sep 17 00:00:00 2001 From: Jamie Newbon Date: Tue, 30 Apr 2019 13:12:17 +0100 Subject: [PATCH 3/5] #6471 Fixed ability to stop the retry loop when synergy fails to start --- src/gui/src/MainWindow.cpp | 29 ++++++++++++++++++++++------- src/gui/src/MainWindow.h | 1 + 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp index e39d86d7..bbb022c4 100644 --- a/src/gui/src/MainWindow.cpp +++ b/src/gui/src/MainWindow.cpp @@ -66,10 +66,11 @@ static const int debugLogLevel = 1; static const char* synergyIconFiles[] = { - ":/res/icons/16x16/synergy-disconnected.png", - ":/res/icons/16x16/synergy-disconnected.png", - ":/res/icons/16x16/synergy-connected.png", - ":/res/icons/16x16/synergy-transfering.png" + ":/res/icons/16x16/synergy-disconnected.png", //synergyDisconnected + ":/res/icons/16x16/synergy-disconnected.png", //synergyConnecting + ":/res/icons/16x16/synergy-connected.png", //synergyConnected + ":/res/icons/16x16/synergy-transfering.png", //synergyListening + ":/res/icons/16x16/synergy-disconnected.png" //synergyPendingRetry }; #ifdef SYNERGY_ENTERPRISE @@ -441,7 +442,7 @@ void MainWindow::appendLogRaw(const QString& text) void MainWindow::updateFromLogLine(const QString &line) { - // TODO: this code makes Andrew cry + // TODO: This shouldn't be updating from log needs a better way of doing this checkConnected(line); checkFingerprint(line); checkSecureSocket(line); @@ -711,6 +712,16 @@ void MainWindow::startSynergy() } } +void MainWindow::retryStart() +{ + //This function is only called after a failed start + //Only start synergy if the current state is pending retry + if (m_SynergyState == synergyPendingRetry) + { + startSynergy(); + } +} + void MainWindow::sslToggled (bool enabled) { @@ -934,9 +945,10 @@ void MainWindow::synergyFinished(int exitCode, QProcess::ExitStatus) } if (m_ExpectedRunningState == kStarted) { - QTimer::singleShot(1000, this, SLOT(startSynergy())); - appendLogInfo(QString("detected process not running, auto restarting")); + setSynergyState(synergyPendingRetry); + QTimer::singleShot(1000, this, SLOT(retryStart())); + appendLogInfo(QString("detected process not running, auto restarting")); } else { setSynergyState(synergyDisconnected); @@ -998,6 +1010,9 @@ void MainWindow::setSynergyState(qSynergyState state) } case synergyConnecting: setStatus(tr("Synergy is starting...")); + break; + case synergyPendingRetry: + setStatus(tr("There was an error, retrying...")); break; case synergyDisconnected: setStatus(tr("Synergy is not running")); diff --git a/src/gui/src/MainWindow.h b/src/gui/src/MainWindow.h index aaa14dac..1cc737a4 100644 --- a/src/gui/src/MainWindow.h +++ b/src/gui/src/MainWindow.h @@ -139,6 +139,7 @@ public slots: void appendLogDebug(const QString& text); void appendLogError(const QString& text); void startSynergy(); + void retryStart(); // If the connection failed this will retry a startSynergy protected slots: void sslToggled(bool enabled); From 207247b7efe143255d4b57784f67852d55666eb6 Mon Sep 17 00:00:00 2001 From: Jamie Newbon Date: Tue, 30 Apr 2019 15:40:29 +0100 Subject: [PATCH 4/5] #6471 Replaced tabs with spaces --- src/gui/src/MainWindow.cpp | 32 +++++++++++++++---------------- src/lib/platform/XWindowsUtil.cpp | 2 +- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp index bbb022c4..ae53493b 100644 --- a/src/gui/src/MainWindow.cpp +++ b/src/gui/src/MainWindow.cpp @@ -66,11 +66,11 @@ static const int debugLogLevel = 1; static const char* synergyIconFiles[] = { - ":/res/icons/16x16/synergy-disconnected.png", //synergyDisconnected - ":/res/icons/16x16/synergy-disconnected.png", //synergyConnecting - ":/res/icons/16x16/synergy-connected.png", //synergyConnected - ":/res/icons/16x16/synergy-transfering.png", //synergyListening - ":/res/icons/16x16/synergy-disconnected.png" //synergyPendingRetry + ":/res/icons/16x16/synergy-disconnected.png", //synergyDisconnected + ":/res/icons/16x16/synergy-disconnected.png", //synergyConnecting + ":/res/icons/16x16/synergy-connected.png", //synergyConnected + ":/res/icons/16x16/synergy-transfering.png", //synergyListening + ":/res/icons/16x16/synergy-disconnected.png" //synergyPendingRetry }; #ifdef SYNERGY_ENTERPRISE @@ -714,12 +714,12 @@ void MainWindow::startSynergy() void MainWindow::retryStart() { - //This function is only called after a failed start - //Only start synergy if the current state is pending retry - if (m_SynergyState == synergyPendingRetry) - { - startSynergy(); - } + //This function is only called after a failed start + //Only start synergy if the current state is pending retry + if (m_SynergyState == synergyPendingRetry) + { + startSynergy(); + } } void @@ -946,7 +946,7 @@ void MainWindow::synergyFinished(int exitCode, QProcess::ExitStatus) if (m_ExpectedRunningState == kStarted) { - setSynergyState(synergyPendingRetry); + setSynergyState(synergyPendingRetry); QTimer::singleShot(1000, this, SLOT(retryStart())); appendLogInfo(QString("detected process not running, auto restarting")); } @@ -967,7 +967,7 @@ void MainWindow::setSynergyState(qSynergyState state) if (synergyState() == state) return; - if ((state == synergyConnected) || (state == synergyConnecting) || (state == synergyListening) || (state == synergyPendingRetry)) + if ((state == synergyConnected) || (state == synergyConnecting) || (state == synergyListening) || (state == synergyPendingRetry)) { disconnect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStartSynergy, SLOT(trigger())); connect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStopSynergy, SLOT(trigger())); @@ -1010,9 +1010,9 @@ void MainWindow::setSynergyState(qSynergyState state) } case synergyConnecting: setStatus(tr("Synergy is starting...")); - break; - case synergyPendingRetry: - setStatus(tr("There was an error, retrying...")); + break; + case synergyPendingRetry: + setStatus(tr("There was an error, retrying...")); break; case synergyDisconnected: setStatus(tr("Synergy is not running")); diff --git a/src/lib/platform/XWindowsUtil.cpp b/src/lib/platform/XWindowsUtil.cpp index cfef8cf4..59e26b52 100644 --- a/src/lib/platform/XWindowsUtil.cpp +++ b/src/lib/platform/XWindowsUtil.cpp @@ -1303,7 +1303,7 @@ XWindowsUtil::getWindowProperty(Display* display, Window window, int actualDatumSize; // ignore errors. XGetWindowProperty() will report failure. - XWindowsUtil::ErrorLock lock(display); + // XWindowsUtil::ErrorLock lock(display); // read the property bool okay = true; From 6c6e2b6bd3d7b6623471505293ad7c2b3bc447d1 Mon Sep 17 00:00:00 2001 From: Jamie Newbon Date: Tue, 30 Apr 2019 15:49:23 +0100 Subject: [PATCH 5/5] #6471 Reverted accidental change and fixed more tabs --- src/gui/src/MainWindow.h | 4 ++-- src/lib/platform/XWindowsUtil.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/src/MainWindow.h b/src/gui/src/MainWindow.h index 1cc737a4..f4df8f4b 100644 --- a/src/gui/src/MainWindow.h +++ b/src/gui/src/MainWindow.h @@ -74,7 +74,7 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase synergyConnecting, synergyConnected, synergyListening, - synergyPendingRetry + synergyPendingRetry }; enum qSynergyType @@ -139,7 +139,7 @@ public slots: void appendLogDebug(const QString& text); void appendLogError(const QString& text); void startSynergy(); - void retryStart(); // If the connection failed this will retry a startSynergy + void retryStart(); // If the connection failed this will retry a startSynergy protected slots: void sslToggled(bool enabled); diff --git a/src/lib/platform/XWindowsUtil.cpp b/src/lib/platform/XWindowsUtil.cpp index 59e26b52..cfef8cf4 100644 --- a/src/lib/platform/XWindowsUtil.cpp +++ b/src/lib/platform/XWindowsUtil.cpp @@ -1303,7 +1303,7 @@ XWindowsUtil::getWindowProperty(Display* display, Window window, int actualDatumSize; // ignore errors. XGetWindowProperty() will report failure. - // XWindowsUtil::ErrorLock lock(display); + XWindowsUtil::ErrorLock lock(display); // read the property bool okay = true;