|
|
@ -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 )
|
|
|
|