diff --git a/src/lib/gui/core/ServerConnection.cpp b/src/lib/gui/core/ServerConnection.cpp index 922481d08..d1ff8075e 100644 --- a/src/lib/gui/core/ServerConnection.cpp +++ b/src/lib/gui/core/ServerConnection.cpp @@ -26,6 +26,11 @@ void ServerConnection::handleLogLine(const QString &logLine) ServerMessage message(logLine); const auto &clientName = message.getClientName(); + if (m_ignoredClients.contains(clientName)) { + qDebug("ignoring %s:", qPrintable(clientName)); + return; + } + if (message.isDisconnectedMessage()) { m_connectedClients.remove(clientName); Q_EMIT clientsChanged(connectedClients()); @@ -86,14 +91,14 @@ void ServerConnection::handleNewClient(const QString &clientName) void ServerConnection::handleNewClientResult(const QString &clientName, bool acceptClient) { m_messageShowing = false; - - if (acceptClient) { - qDebug("accepted dialog, adding client: %s", qPrintable(clientName)); - Q_EMIT configureClient(clientName); - } else { + if (!acceptClient) { qDebug("declined dialog, ignoring client: %s", qPrintable(clientName)); + m_ignoredClients.insert(clientName); + return; } + qDebug("accepted dialog, adding client: %s", qPrintable(clientName)); + Q_EMIT configureClient(clientName); m_connectedClients.insert(clientName); Q_EMIT clientsChanged(connectedClients()); } diff --git a/src/lib/gui/core/ServerConnection.h b/src/lib/gui/core/ServerConnection.h index fc28b427e..8fa698649 100644 --- a/src/lib/gui/core/ServerConnection.h +++ b/src/lib/gui/core/ServerConnection.h @@ -41,6 +41,7 @@ private: QWidget *m_pParent; IServerConfig &m_serverConfig; QSet m_connectedClients; + QSet m_ignoredClients; bool m_messageShowing = false; bool m_serverConfigDialogVisible = false; };