You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
klamav/src/klamscan.hpre

169 lines
3.9 KiB

/*
* Copyright (C) 2004 Robert Hogan <robert at roberthogan dot net>
*/
#ifndef _KLAMSCAN_H_
#define _KLAMSCAN_H_
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <kapplication.h>
#include <kmainwindow.h>
#include <dcopklamscan.h>
class KPrinter;
class KToggleAction;
class KURL;
class QLineEdit;
class QComboBox;
class QCheckBox;
class QListBox;
class QListView;
class QListViewItem;
class QPushButton;
class QLabel;
class KProcess;
class KConfig;
class KURLRequester;
/**
* This class serves as the main window for Klamscan. It handles the
* menus, toolbars, and status bars.
*
* @short Main window class
* @author $AUTHOR <$EMAIL>
* @version $APP_VERSION
*/
class Klamscan : public QWidget, virtual public DCOPKlamscan
{
Q_OBJECT
public:
/**
* Default Constructor
*/
Klamscan(QWidget *parent, const char *name=0);
/**
* Default Destructor
*/
virtual ~Klamscan();
/**
* Use this method to load whatever file/URL you have
*/
void setDirName(QString);
bool isMultiScan();
protected:
/**
* Overridden virtuals for Qt drag 'n drop (XDND)
*/
/*virtual void dragEnterEvent(QDragEnterEvent *event);
virtual void dropEvent(QDropEvent *event);*/
protected:
/**
* This function is called when it is time for the app to save its
* properties for session management purposes.
*/
//void saveProperties(KConfig *);
/**
* This function is called when this app is restored. The KConfig
* object points to the session management config file that was saved
* with @ref saveProperties
*/
//void readProperties(KConfig *);
private slots:
/* void fileNew();
void fileOpen();
void fileSave();
void fileSaveAs();
void filePrint();
void optionsShowToolbar();
void optionsShowStatusbar();
void optionsConfigureKeys();
void optionsConfigureToolbars();
void optionsPreferences();
void newToolbarConfig();
*/
//void changeStatusbar(const QString& text);
//void changeCaption(const QString& text);
private:
void setupAccel();
void setupActions();
private:
//KlamscanView *m_view;
/* KPrinter *m_printer;
KToggleAction *m_toolbarAction;
KToggleAction *m_statusbarAction;*/
signals:
void itemSelected(QString abs_filename, int line);
public slots:
void scanURLs(const QString &urls);
void resetMultiScan( QMouseEvent * e);
private slots:
//void dirButtonClicked();
//void templateActivated(int index);
void childExited();
void receivedOutput(KProcess *proc, char *buffer, int buflen);
//void itemSelected(const QString&);
void slotSearch();
void slotCancel();
void slotClear();
void slotRMB( QListViewItem *, const QPoint &, int );
void slotQuarantineSelected();
void slotAdvOptions();
void slotSchedule();
void slotVirusPool();
void slotGoogle();
//void patternTextChanged( const QString &);
private:
void processOutput();
void finish();
void getout();
void Quarantine();
void askUser();
void setDefaults();
QLineEdit *template_edit;
QComboBox *files_combo, *pattern_combo, *check_combo;
KComboBox *dir_combo;
QCheckBox *recursive_box;
QCheckBox *recursive_box2;
QListView *resultview;
QPushButton *search_button, *cancel_button;
QLabel *status_label, *status2_label,*matches_label,*matches2_label;
KProcess *childproc;
QString buf;
KConfig* config;
QStringList lastSearchItems;
QStringList lastScanPaths;
QStringList lastQuarItems;
QStringList QuarantineList;
bool errorsEncountered;
QPopupMenu* menu;
QPushButton* adv_options;
QPushButton* schedule;
QString selectedVirus;
bool multiScan;
QString urlsToScan;
bool scanInProgress;
QString prevdir;
QStringList listOfUrlsToScan;
void updateScanPaths(const QStringList &paths);
bool multi_recursive;
};
#endif // _KLAMSCAN_H_