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