diff --git a/src/klamav.cpp b/src/klamav.cpp index 638f0a3..f0cabc0 100644 --- a/src/klamav.cpp +++ b/src/klamav.cpp @@ -245,8 +245,14 @@ void Klamav::updateTabState( int tabId, bool init ) { } // Menu slots -void Klamav::slotScanFile() {} -void Klamav::slotScanDir() {} +void Klamav::slotScanFile() { + klamscan->slotScanFile(); +} + +void Klamav::slotScanDir() { + klamscan->slotScanDir(); +} + void Klamav::slotScheduleScan() { klamscan->slotSchedule(); } diff --git a/src/klamscan.cpp b/src/klamscan.cpp index e0d9419..bb60d0a 100644 --- a/src/klamscan.cpp +++ b/src/klamscan.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include @@ -196,13 +197,7 @@ Klamscan::~Klamscan() } - - - -void Klamscan::slotScan() -{ - - +void Klamscan::scan( TQStringList filepattern ) { ScanViewer* homepage = new ScanViewer(this, "page"); connect( homepage, SIGNAL( scanFinished(TQWidget *) ), this, @@ -222,8 +217,15 @@ void Klamscan::slotScan() tabBrowser->addTab(homepage,suffix); tabBrowser->setCurrentPage(tabBrowser->count() - 1); - //return; - + + CollectionDB::instance()->insertEvent("Manual Scan",TQString("Commencing Scan"),filepattern.join(" ")); + + homepage->slotScan(filepattern, check_combo->currentItem(),setup->recursive(),false); +} + + +void Klamscan::slotScan() +{ TQStringList filepattern; TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs(); @@ -240,13 +242,34 @@ void Klamscan::slotScan() }else{ filepattern = pruneSelectedDirs(); } - //kdDebug() << filepattern << endl; - CollectionDB::instance()->insertEvent("Manual Scan",TQString("Commencing Scan"),filepattern.join(" ")); - - homepage->slotScan(filepattern, check_combo->currentItem(),setup->recursive(),false); + scan( filepattern ); +} + + +void Klamscan::slotScanFile() { + KURL::List urls( KFileDialog::getOpenURLs(TQString::null,TQString::null,this) ); + TQStringList filepattern; + + KURL::List::iterator it; + for( it = urls.begin(); it != urls.end(); ++it ) { + filepattern.append( (*it).pathOrURL() ); + } + + if( filepattern.count() == 0 ) + return; + + scan( filepattern ); } +void Klamscan::slotScanDir() { + TQString dir=KFileDialog::getExistingDirectory(TQString::null,this); + + if( dir == TQString::null ) + return; + + scan( TQStringList(dir) ); +} void Klamscan::slotAdvOptions(){ diff --git a/src/klamscan.h b/src/klamscan.h index a294751..1dda666 100644 --- a/src/klamscan.h +++ b/src/klamscan.h @@ -96,8 +96,11 @@ private: signals: public slots: + void scan(TQStringList); void scanURLs(const TQString &urls); void slotSchedule(); + void slotScanFile(); + void slotScanDir(); private slots: void slotScan(); void slotAdvOptions();