fix: connect refresh discon btn bug.
This commit is contained in:
@@ -48,6 +48,13 @@ bool ClientCore::Connect(const QString& ip, quint16 port)
|
|||||||
|
|
||||||
void ClientCore::Disconnect()
|
void ClientCore::Disconnect()
|
||||||
{
|
{
|
||||||
|
QMutexLocker locker(&conMutex_);
|
||||||
|
if (socket_ && socket_->state() != QAbstractSocket::UnconnectedState) {
|
||||||
|
socket_->disconnectFromHost();
|
||||||
|
if (socket_->state() != QAbstractSocket::UnconnectedState) {
|
||||||
|
socket_->waitForDisconnected(1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
connected_ = false;
|
connected_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,9 +226,9 @@ QString ClientCore::GetOwnID()
|
|||||||
|
|
||||||
SocketWorker::SocketWorker(ClientCore* core, QObject* parent) : QThread(parent), core_(core)
|
SocketWorker::SocketWorker(ClientCore* core, QObject* parent) : QThread(parent), core_(core)
|
||||||
{
|
{
|
||||||
connect(core_, &ClientCore::sigDisconnect, this, [this]() {
|
//connect(core_, &ClientCore::sigDisconnect, this, [this]() {
|
||||||
thread()->quit();
|
// thread()->quit();
|
||||||
});
|
//});
|
||||||
}
|
}
|
||||||
|
|
||||||
SocketWorker::~SocketWorker()
|
SocketWorker::~SocketWorker()
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ void Connecter::RunWorker(ClientCore* clientCore)
|
|||||||
});
|
});
|
||||||
|
|
||||||
connect(this, &Connecter::sigDoConnect, clientCore_, &ClientCore::DoConnect);
|
connect(this, &Connecter::sigDoConnect, clientCore_, &ClientCore::DoConnect);
|
||||||
|
connect(this, &Connecter::sigDisConnect, clientCore_, &ClientCore::Disconnect);
|
||||||
connect(sockWorker_, &QThread::finished, sockWorker_, &QObject::deleteLater);
|
connect(sockWorker_, &QThread::finished, sockWorker_, &QObject::deleteLater);
|
||||||
|
|
||||||
sockWorker_->start();
|
sockWorker_->start();
|
||||||
@@ -99,8 +100,8 @@ void Connecter::setState(ConnectState cs)
|
|||||||
|
|
||||||
void Connecter::Disconnect()
|
void Connecter::Disconnect()
|
||||||
{
|
{
|
||||||
sockWorker_->quit();
|
qWarning() << QString(tr("Disconnected requeset..."));
|
||||||
qWarning() << QString(tr("Disconnected..."));
|
emit sigDisConnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Connecter::RefreshClient()
|
void Connecter::RefreshClient()
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ public:
|
|||||||
signals:
|
signals:
|
||||||
void sendConnect(ConnectState cs);
|
void sendConnect(ConnectState cs);
|
||||||
void sigDoConnect(const QString& ip, quint16 port);
|
void sigDoConnect(const QString& ip, quint16 port);
|
||||||
|
void sigDisConnect();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void InitControl();
|
void InitControl();
|
||||||
|
|||||||
Reference in New Issue
Block a user