From fd4ce53eb11812b503aaa7da2b8cb128f3c8476c Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Fri, 30 Nov 2007 10:48:00 +0000 Subject: [PATCH] - Added a 3 minutes search timeout --- src/searchEngine.cpp | 10 ++++++++++ src/searchEngine.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/src/searchEngine.cpp b/src/searchEngine.cpp index b47692a05..c1eff8c4a 100644 --- a/src/searchEngine.cpp +++ b/src/searchEngine.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include "SearchListDelegate.h" #include "searchEngine.h" @@ -79,6 +80,9 @@ SearchEngine::SearchEngine(bittorrent *BTSession, QSystemTrayIcon *myTrayIcon, b connect(searchProcess, SIGNAL(started()), this, SLOT(searchStarted())); connect(searchProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(readSearchOutput())); connect(searchProcess, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(searchFinished(int,QProcess::ExitStatus))); + searchTimeout = new QTimer(this); + searchTimeout->setSingleShot(true); + connect(searchTimeout, SIGNAL(timeout()), this, SLOT(on_stop_search_button_clicked())); // Check last enabled search engines loadEngineSettings(); // Update nova.py search plugin if necessary @@ -92,6 +96,7 @@ SearchEngine::~SearchEngine(){ saveColWidthSearchList(); searchProcess->kill(); searchProcess->waitForFinished(); + delete searchTimeout; delete searchProcess; delete searchCompleter; delete SearchListModel; @@ -245,6 +250,9 @@ void SearchEngine::on_search_button_clicked(){ searchProcess->kill(); searchProcess->waitForFinished(); } + if(searchTimeout->isActive()) { + searchTimeout->stop(); + } QString pattern = search_pattern->text().trimmed(); // No search pattern entered if(pattern.isEmpty()){ @@ -279,6 +287,7 @@ void SearchEngine::on_search_button_clicked(){ results_lbl->setText(tr("Results")+" (0):"); // Launch search searchProcess->start(misc::qBittorrentPath()+"search_engine"+QDir::separator()+"nova2.py", params, QIODevice::ReadOnly); + searchTimeout->start(180000); // 3min } void SearchEngine::searchStarted(){ @@ -448,6 +457,7 @@ void SearchEngine::on_stop_search_button_clicked(){ // Kill process searchProcess->terminate(); search_stopped = true; + searchTimeout->stop(); } // Clear search results list diff --git a/src/searchEngine.h b/src/searchEngine.h index 024e2a6e6..0da77d136 100644 --- a/src/searchEngine.h +++ b/src/searchEngine.h @@ -33,6 +33,7 @@ class SearchListDelegate; class bittorrent; class QSystemTrayIcon; class downloadThread; +class QTimer; class SearchEngine : public QWidget, public Ui::search_engine{ Q_OBJECT @@ -54,6 +55,7 @@ class SearchEngine : public QWidget, public Ui::search_engine{ bool systrayIntegration; downloadThread *downloader; QStringList enabled_engines; + QTimer *searchTimeout; public: SearchEngine(bittorrent *BTSession, QSystemTrayIcon *myTrayIcon, bool systrayIntegration);