Skip to content

Commit 6d71009

Browse files
author
fog.hua
committed
! add signal to stop pull thread when close window
1 parent bfd225a commit 6d71009

File tree

4 files changed

+17
-2
lines changed

4 files changed

+17
-2
lines changed

src/app/mainwindow.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ void MainWindow::startWorker()
2929
QObject::connect(m_workThread, &QThread::started, m_worker, &Worker::run);
3030
QObject::connect(m_workThread, &QThread::finished, m_worker, &Worker::deleteLater);
3131
QObject::connect(m_workThread, &QThread::finished, m_workThread, &QThread::deleteLater);
32-
//QObject::connect(this, &MainWindow::workStop, m_worker, &Worker::onWorkStop);
32+
QObject::connect(this, &MainWindow::workStop, m_worker, &Worker::onWorkStop);
3333
QObject::connect(m_worker, &Worker::indexDownloaded, this, &MainWindow::onIndexDownloaded);
3434
QObject::connect(m_worker, &Worker::pageDownloaded, this, &MainWindow::onPageDownloaded);
3535

@@ -39,7 +39,7 @@ void MainWindow::startWorker()
3939

4040
void MainWindow::stopWorker()
4141
{
42-
//emit workStop();
42+
emit workStop();
4343

4444
if(m_workThread && (!m_workThread->isFinished())) {
4545
m_workThread->quit();

src/app/mainwindow.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ private slots:
2626
void on_pbReqPages_clicked();
2727
void on_pbPullPages_clicked();
2828

29+
signals:
30+
void workStop();
31+
2932
private:
3033
void startWorker();
3134
void stopWorker();

src/app/worker.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,13 +314,23 @@ bool Worker::pullBookPages(int start, int end)
314314
if (m_siteInfo.m_interval) {
315315
msleep(m_siteInfo.m_interval);
316316
}
317+
318+
QCoreApplication::processEvents();
319+
if (m_isQuit) {
320+
break;
321+
}
317322
}
318323

319324
outFile->close();
320325

321326
return true;
322327
}
323328

329+
void Worker::onWorkStop()
330+
{
331+
m_isQuit = true;
332+
}
333+
324334
bool Worker::loadSiteConfigs(const QUrl &url)
325335
{
326336
const QString &domain = url.host();

src/app/worker.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,14 @@ public slots:
4848
bool requestBookPages(const QString &urlStr);
4949
bool pullBookPage(QTextStream &out, int index);
5050
bool pullBookPages(int start, int end);
51+
void onWorkStop();
5152

5253
private:
5354
void oldparser();
5455
bool loadSiteConfigs(const QUrl &url);
5556

5657
HttpSession *m_session = nullptr;
58+
bool m_isQuit = false;
5759

5860
};
5961

0 commit comments

Comments
 (0)