fix: exit error bug.
This commit is contained in:
@@ -4,10 +4,6 @@
|
|||||||
|
|
||||||
ClientCore::ClientCore(QObject* parent) : QObject(parent)
|
ClientCore::ClientCore(QObject* parent) : QObject(parent)
|
||||||
{
|
{
|
||||||
qRegisterMetaType<QSharedPointer<FrameBuffer>>("QSharedPointer<FrameBuffer>");
|
|
||||||
qRegisterMetaType<InfoClientVec>("InfoClientVec");
|
|
||||||
qRegisterMetaType<DirFileInfoVec>("DirFileInfoVec");
|
|
||||||
|
|
||||||
socket_ = new QTcpSocket(this);
|
socket_ = new QTcpSocket(this);
|
||||||
connect(socket_, &QTcpSocket::readyRead, this, &ClientCore::onReadyRead);
|
connect(socket_, &QTcpSocket::readyRead, this, &ClientCore::onReadyRead);
|
||||||
connect(socket_, &QTcpSocket::disconnected, this, &ClientCore::onDisconnected);
|
connect(socket_, &QTcpSocket::disconnected, this, &ClientCore::onDisconnected);
|
||||||
|
|||||||
@@ -95,6 +95,12 @@ void Connecter::setState(ConnectState cs)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Connecter::Disconnect()
|
||||||
|
{
|
||||||
|
sockWorker_->quit();
|
||||||
|
qWarning() << QString(tr("Disconnected..."));
|
||||||
|
}
|
||||||
|
|
||||||
void Connecter::RefreshClient()
|
void Connecter::RefreshClient()
|
||||||
{
|
{
|
||||||
InfoMsg info;
|
InfoMsg info;
|
||||||
@@ -138,6 +144,7 @@ void Connecter::InitControl()
|
|||||||
ui->listView->setContextMenuPolicy(Qt::CustomContextMenu);
|
ui->listView->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
|
|
||||||
connect(ui->listView, &QListView::customContextMenuRequested, this, &Connecter::ShowContextMenu);
|
connect(ui->listView, &QListView::customContextMenuRequested, this, &Connecter::ShowContextMenu);
|
||||||
|
connect(ui->btnDisconnect, &QPushButton::clicked, this, &Connecter::Disconnect);
|
||||||
|
|
||||||
menu_ = new QMenu(this);
|
menu_ = new QMenu(this);
|
||||||
QAction* acUseThis = menu_->addAction(tr("UseThis"));
|
QAction* acUseThis = menu_->addAction(tr("UseThis"));
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#ifndef CONNECTCONTROL_H
|
#ifndef CONNECTCONTROL_H
|
||||||
#define CONNECTCONTROL_H
|
#define CONNECTCONTROL_H
|
||||||
|
|
||||||
#include <ClientCore.h>
|
#include <ClientCore.h>
|
||||||
@@ -38,6 +38,7 @@ private:
|
|||||||
void Connect();
|
void Connect();
|
||||||
void setState(ConnectState cs);
|
void setState(ConnectState cs);
|
||||||
void RefreshClient();
|
void RefreshClient();
|
||||||
|
void Disconnect();
|
||||||
void ShowContextMenu(const QPoint& pos);
|
void ShowContextMenu(const QPoint& pos);
|
||||||
std::string getCurClient();
|
std::string getCurClient();
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ TransForm::TransForm(QWidget* parent) : QDialog(parent), ui(new Ui::TransForm)
|
|||||||
|
|
||||||
TransForm::~TransForm()
|
TransForm::~TransForm()
|
||||||
{
|
{
|
||||||
|
exis_ = true;
|
||||||
|
QThread::msleep(10);
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,6 +29,7 @@ void TransForm::SetClientCore(ClientCore* clientCore)
|
|||||||
|
|
||||||
void TransForm::SetTasks(const QVector<TransTask>& tasks)
|
void TransForm::SetTasks(const QVector<TransTask>& tasks)
|
||||||
{
|
{
|
||||||
|
exis_ = true;
|
||||||
tasks_ = tasks;
|
tasks_ = tasks;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,6 +40,9 @@ void TransForm::startTask()
|
|||||||
if (task.isUpload) {
|
if (task.isUpload) {
|
||||||
fileTrans_->ReqSendFile(task);
|
fileTrans_->ReqSendFile(task);
|
||||||
while (true) {
|
while (true) {
|
||||||
|
if (exis_) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
auto progress = fileTrans_->GetSendProgress();
|
auto progress = fileTrans_->GetSendProgress();
|
||||||
if (progress < 0) {
|
if (progress < 0) {
|
||||||
emit sigFailed();
|
emit sigFailed();
|
||||||
@@ -52,6 +58,9 @@ void TransForm::startTask()
|
|||||||
} else {
|
} else {
|
||||||
fileTrans_->ReqDownFile(task);
|
fileTrans_->ReqDownFile(task);
|
||||||
while (true) {
|
while (true) {
|
||||||
|
if (exis_) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
auto progress = fileTrans_->GetDownProgress();
|
auto progress = fileTrans_->GetDownProgress();
|
||||||
if (progress < 0) {
|
if (progress < 0) {
|
||||||
emit sigFailed();
|
emit sigFailed();
|
||||||
@@ -90,8 +99,7 @@ void TransForm::handleUI(const TransTask& task)
|
|||||||
ui->edTo->setText(task.remoteId);
|
ui->edTo->setText(task.remoteId);
|
||||||
ui->pedFrom->setPlainText(task.localPath);
|
ui->pedFrom->setPlainText(task.localPath);
|
||||||
ui->pedTo->setPlainText(task.remotePath);
|
ui->pedTo->setPlainText(task.remotePath);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
ui->edFrom->setText(task.localId);
|
ui->edFrom->setText(task.localId);
|
||||||
ui->edTo->setText(task.remoteId);
|
ui->edTo->setText(task.remoteId);
|
||||||
ui->pedFrom->setPlainText(task.remotePath);
|
ui->pedFrom->setPlainText(task.remotePath);
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ protected:
|
|||||||
void showEvent(QShowEvent* event) override;
|
void showEvent(QShowEvent* event) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
bool exis_{ false };
|
||||||
TranFromTh* workTh_{};
|
TranFromTh* workTh_{};
|
||||||
QVector<TransTask> tasks_;
|
QVector<TransTask> tasks_;
|
||||||
FileTrans* fileTrans_{};
|
FileTrans* fileTrans_{};
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
#include "Control/LogControl.h"
|
#include "Control/LogControl.h"
|
||||||
|
|
||||||
static LogPrint* logPrint = nullptr;
|
static LogPrint* logPrint = nullptr;
|
||||||
static QMutex logMut;
|
|
||||||
|
|
||||||
frelayGUI::frelayGUI(QWidget* parent) : QMainWindow(parent), ui(new Ui::frelayGUI)
|
frelayGUI::frelayGUI(QWidget* parent) : QMainWindow(parent), ui(new Ui::frelayGUI)
|
||||||
{
|
{
|
||||||
@@ -28,9 +27,7 @@ frelayGUI::frelayGUI(QWidget* parent) : QMainWindow(parent), ui(new Ui::frelayGU
|
|||||||
|
|
||||||
frelayGUI::~frelayGUI()
|
frelayGUI::~frelayGUI()
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&logMut);
|
|
||||||
delete ui;
|
delete ui;
|
||||||
logPrint = nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void frelayGUI::InitControl()
|
void frelayGUI::InitControl()
|
||||||
@@ -93,9 +90,7 @@ void frelayGUI::ControlMsgHander(QtMsgType type, const QMessageLogContext& conte
|
|||||||
{
|
{
|
||||||
Q_UNUSED(context);
|
Q_UNUSED(context);
|
||||||
|
|
||||||
QMutexLocker locker(&logMut);
|
if (!qApp || !qobject_cast<frelayGUI*>(qApp->activeWindow())) {
|
||||||
|
|
||||||
if (!logPrint) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ int main(int argc, char* argv[])
|
|||||||
QApplication a(argc, argv);
|
QApplication a(argc, argv);
|
||||||
|
|
||||||
qInstallMessageHandler(frelayGUI::ControlMsgHander);
|
qInstallMessageHandler(frelayGUI::ControlMsgHander);
|
||||||
|
qRegisterMetaType<QSharedPointer<FrameBuffer>>("QSharedPointer<FrameBuffer>");
|
||||||
|
qRegisterMetaType<InfoClientVec>("InfoClientVec");
|
||||||
|
qRegisterMetaType<DirFileInfoVec>("DirFileInfoVec");
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
QFont font("Microsoft YaHei", 9);
|
QFont font("Microsoft YaHei", 9);
|
||||||
|
|||||||
Reference in New Issue
Block a user