fix: connect refresh discon btn bug.

This commit is contained in:
2025-06-20 14:39:03 +08:00
parent 9c012b9613
commit de443ed5b2
3 changed files with 14 additions and 5 deletions

View File

@@ -48,6 +48,13 @@ bool ClientCore::Connect(const QString& ip, quint16 port)
void ClientCore::Disconnect()
{
QMutexLocker locker(&conMutex_);
if (socket_ && socket_->state() != QAbstractSocket::UnconnectedState) {
socket_->disconnectFromHost();
if (socket_->state() != QAbstractSocket::UnconnectedState) {
socket_->waitForDisconnected(1000);
}
}
connected_ = false;
}
@@ -219,9 +226,9 @@ QString ClientCore::GetOwnID()
SocketWorker::SocketWorker(ClientCore* core, QObject* parent) : QThread(parent), core_(core)
{
connect(core_, &ClientCore::sigDisconnect, this, [this]() {
thread()->quit();
});
//connect(core_, &ClientCore::sigDisconnect, this, [this]() {
// thread()->quit();
//});
}
SocketWorker::~SocketWorker()

View File

@@ -47,6 +47,7 @@ void Connecter::RunWorker(ClientCore* clientCore)
});
connect(this, &Connecter::sigDoConnect, clientCore_, &ClientCore::DoConnect);
connect(this, &Connecter::sigDisConnect, clientCore_, &ClientCore::Disconnect);
connect(sockWorker_, &QThread::finished, sockWorker_, &QObject::deleteLater);
sockWorker_->start();
@@ -99,8 +100,8 @@ void Connecter::setState(ConnectState cs)
void Connecter::Disconnect()
{
sockWorker_->quit();
qWarning() << QString(tr("Disconnected..."));
qWarning() << QString(tr("Disconnected requeset..."));
emit sigDisConnect();
}
void Connecter::RefreshClient()

View File

@@ -33,6 +33,7 @@ public:
signals:
void sendConnect(ConnectState cs);
void sigDoConnect(const QString& ip, quint16 port);
void sigDisConnect();
private:
void InitControl();