Scanner Menu: added "Quit" entry for application.

Signed-off-by: Mavridis Philippe <mavridisf@gmail.com>
pull/24/head
Mavridis Philippe 3 years ago
parent 87b6ec150e
commit f9ecebbadf
No known key found for this signature in database
GPG Key ID: F8D2D7E2F989A494

@ -16,6 +16,7 @@
#include "configdialog.h" #include "configdialog.h"
#include "tabwidget.h" #include "tabwidget.h"
#include "klamavconfig.h" #include "klamavconfig.h"
#include "klamonacc.h"
#include <tdelocale.h> #include <tdelocale.h>
@ -67,6 +68,12 @@ Klamav::Klamav()
EnableFreshklam->plug(conf_menu); EnableFreshklam->plug(conf_menu);
DisableFreshklam->plug(conf_menu); DisableFreshklam->plug(conf_menu);
EnableKlamOnAcc = new TDEAction(i18n("&Start On-Access Scanner"), "filefind", 0,this, SLOT(contextEnableKOA()),actionCollection(),"koa_enable");
DisableKlamOnAcc = new TDEAction(i18n("&Stop On-Access Scanner"), 0, 0, this, SLOT(contextDisableKOA()),actionCollection(),"koa_disable");
EnableKlamOnAcc->plug(conf_menu);
DisableKlamOnAcc->plug(conf_menu);
TQToolTip::add( _tray, i18n( "KlamAV - Virus Protection for TDE" ) ); TQToolTip::add( _tray, i18n( "KlamAV - Virus Protection for TDE" ) );
_tray->show(); _tray->show();
@ -92,6 +99,8 @@ Klamav::Klamav()
scanner_menu->insertSeparator(); scanner_menu->insertSeparator();
scanner_menu->insertItem( SmallIcon("xclock"), i18n("&Schedule scan..."), this, SLOT(slotScheduleScan()) ); scanner_menu->insertItem( SmallIcon("xclock"), i18n("&Schedule scan..."), this, SLOT(slotScheduleScan()) );
scanner_menu->insertItem( SmallIcon("configure"), i18n("&Options..."), this, SLOT(slotOptions()) ); scanner_menu->insertItem( SmallIcon("configure"), i18n("&Options..."), this, SLOT(slotOptions()) );
scanner_menu->insertSeparator();
scanner_menu->insertItem( SmallIcon("application-exit"), i18n("&Quit"), kapp, SLOT(quit()) );
tabs_menu = new TDEPopupMenu(this); tabs_menu = new TDEPopupMenu(this);
tabs_menu->setCheckable(true); tabs_menu->setCheckable(true);
@ -136,6 +145,11 @@ Klamav::Klamav()
top->addWidget(tab); top->addWidget(tab);
// On-Access scanner
klamonacc = new KlamOnAcc(this);
connect( klamonacc, SIGNAL(stateUpdated()), this, SLOT(slotKOAStateUpdate()) );
slotKOAStateUpdate(); // initial state
connect(tab,SIGNAL(currentChanged ( TQWidget * ) ),klamdb,SLOT(shouldIShow(TQWidget *))); connect(tab,SIGNAL(currentChanged ( TQWidget * ) ),klamdb,SLOT(shouldIShow(TQWidget *)));
@ -163,7 +177,8 @@ Klamav::Klamav()
Klamav::~Klamav() Klamav::~Klamav()
{ {
KlamavConfig::writeConfig(); klamonacc->stop();
KlamavConfig::writeConfig();
kapp->quit(); kapp->quit();
} }
@ -174,10 +189,10 @@ void Klamav::shuttingDown(){
} }
bool Klamav::queryClose() { bool Klamav::queryClose() {
if ( freshklam->isFreshklamAlive() || klamscan->scanGoingOn() ){ if ( freshklam->isFreshklamAlive() || klamscan->scanGoingOn() || klamonacc->isActive() ){
KMessageBox::information (this,i18n("<p>KlamAV will stay open in the system tray. <br><br>" KMessageBox::information (this,i18n("<p>KlamAV will stay open in the system tray. <br><br>"
" <b>Remember</b> - you can't quit KlamAV while <br> " " <b>Remember</b> - you can't quit KlamAV while <br> "
" scanning or auto-updating!</p>"),"KlamAV","dontshow"); " a scan, Fresklam or KlamOnAcc is active!</p>"),"KlamAV","dontshow");
hide(); hide();
return false; return false;
@ -185,14 +200,6 @@ bool Klamav::queryClose() {
return true; return true;
} }
void Klamav::clamdStopped() {
/* if (freshklam->isFreshklamAlive())
_tray->setPixmap(KSystemTray::loadIcon("klamavbwdl"));
else*/
_tray->setPixmap(KSystemTray::loadIcon("klamav_on_acc_disabled"));
}
void Klamav::updateTabState( int tabId, bool init ) { void Klamav::updateTabState( int tabId, bool init ) {
if( config->group() != "Tabs" ) if( config->group() != "Tabs" )
config->setGroup("Tabs"); config->setGroup("Tabs");
@ -329,6 +336,27 @@ void Klamav::slotToggleEvents() {
updateTabState(3, false); updateTabState(3, false);
} }
void Klamav::slotKOAStateUpdate()
{
kdDebug() << "slotKOAStateUpdate" << endl;
bool on = klamonacc->isActive();
bool enabled = klamonacc->isEnabled();
_tray->setPixmap(
KSystemTray::loadIcon(
(on ? "klamav_on_acc_enabled"
: "klamav_on_acc_disabled")
)
);
if(enabled) {
EnableKlamOnAcc->setEnabled(!on);
DisableKlamOnAcc->setEnabled(on);
} else {
EnableKlamOnAcc->setEnabled(false);
DisableKlamOnAcc->setEnabled(false);
}
}
void Klamav::contextUpdateFK() { void Klamav::contextUpdateFK() {
@ -347,6 +375,15 @@ void Klamav::contextDisableFK() {
// EnableFreshklam->setEnabled(TRUE); // EnableFreshklam->setEnabled(TRUE);
} }
void Klamav::contextEnableKOA() {
klamonacc->start();
}
void Klamav::contextDisableKOA() {
klamonacc->stop();
}
void Klamav::showVirusBrowser() { void Klamav::showVirusBrowser() {
tab->setCurrentPage(5); tab->setCurrentPage(5);
} }
@ -440,7 +477,6 @@ void Klamav::checkDir(TQString path){
void Klamav::slotConfigKlamav( const TQCString& page ) void Klamav::slotConfigKlamav( const TQCString& page )
{ {
KlamavConfigDialog* dialog = (KlamavConfigDialog*) TDEConfigDialog::exists( "settings" ); KlamavConfigDialog* dialog = (KlamavConfigDialog*) TDEConfigDialog::exists( "settings" );
if( !dialog ) if( !dialog )

Loading…
Cancel
Save