/* * Copyright (C) 2004 Robert Hogan */ #ifndef _KLAMSCAN_H_ #define _KLAMSCAN_H_ #ifdef HAVE_CONFIG_H #include #endif #include #include #include 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_