From ec8fde9b34aec386712343c829a121a21bc38b0a Mon Sep 17 00:00:00 2001 From: Mavridis Philippe Date: Thu, 14 Jan 2021 21:35:29 +0200 Subject: Implemented a check to prevent KlamAV from being exited while a scan is going on. Signed-off-by: Mavridis Philippe --- src/klamav.cpp | 6 +++--- src/klamscan.cpp | 9 +++++++++ src/klamscan.h | 1 + 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/klamav.cpp b/src/klamav.cpp index 40db2cf..b811e51 100644 --- a/src/klamav.cpp +++ b/src/klamav.cpp @@ -168,10 +168,10 @@ void Klamav::shuttingDown(){ } bool Klamav::queryClose() { - if ( freshklam->isFreshklamAlive() ){ + if ( freshklam->isFreshklamAlive() || klamscan->scanGoingOn() ){ KMessageBox::information (this,i18n("

KlamAV will stay open in the system tray.

" - " Remember - you can't close KlamAV while
" - " auto-updating is still running!

"),"KlamAV","dontshow"); + " Remember - you can't quit KlamAV while
" + " scanning or auto-updating!

"),"KlamAV","dontshow"); hide(); return false; diff --git a/src/klamscan.cpp b/src/klamscan.cpp index bb60d0a..6c6663b 100644 --- a/src/klamscan.cpp +++ b/src/klamscan.cpp @@ -196,6 +196,15 @@ Klamscan::~Klamscan() { } +bool Klamscan::scanGoingOn() { + // Find any tab in which scanning hasn't finished yet + for( int i = 1; i < tabBrowser->count(); i++ ) { + if( dynamic_cast( tabBrowser->page(i) )->scanGoingOn() ) + return true; + } + return false; +} + void Klamscan::scan( TQStringList filepattern ) { ScanViewer* homepage = new ScanViewer(this, "page"); diff --git a/src/klamscan.h b/src/klamscan.h index 1dda666..cc3a60e 100644 --- a/src/klamscan.h +++ b/src/klamscan.h @@ -66,6 +66,7 @@ public: void setDirName(TQString); bool isMultiScan(); + bool scanGoingOn(); protected: /** * Overridden virtuals for TQt drag 'n drop (XDND) -- cgit v1.2.1