/* * Copyright (C) 2004 Robert Hogan */ #ifndef _KLAMAV_H_ #define _KLAMAV_H_ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include class KPrinter; class TDEToggleAction; class TDEPopupMenu; class KURL; class TQLineEdit; class TQComboBox; class TQCheckBox; class TQListBox; class TQPushButton; class TQLabel; class TDEProcess; class TDEConfig; class KURLRequester; class Freshklam; class Sigtool; class Klamscan; class KlamavDock; class Kuarantine; class Activityviewer; class Aboutklamav; class KlamDB; class KSystemTray; class KlamOnAcc; /** * This class serves as the main window for Klamav. It handles the * menus, toolbars, and status bars. * * @short Main window class * @author $AUTHOR <$EMAIL> * @version $APP_VERSION */ class Klamav : public TDEMainWindow { Q_OBJECT public: /** * Default Constructor */ Klamav(); /** * Default Destructor */ virtual ~Klamav(); /** * Use this method to load whatever file/URL you have */ void setDirName(TQString); KlamavDock *m_dock; KSystemTray *_tray; TDEAction *EnableFreshklam; TDEAction *DisableFreshklam; TDEAction *EnableKlamOnAcc; TDEAction *DisableKlamOnAcc; Freshklam *freshklam; bool firstDownload; bool downloadDBForWizard; Kuarantine *kuarantine; KlamDB *klamdb; Klamscan *klamscan; Activityviewer *activityviewer; void showVirusBrowser(); TQTabWidget *tab; KlamOnAcc *klamonacc; protected: /** * Overridden virtuals for TQt drag 'n drop (XDND) */ /*virtual void dragEnterEvent(TQDragEnterEvent *event); virtual void dropEvent(TQDropEvent *event);*/ virtual bool queryClose(); protected: /** * This function is called when it is time for the app to save its * properties for session management purposes. */ //void saveProperties(TDEConfig *); /** * This function is called when this app is restored. The TDEConfig * object points to the session management config file that was saved * with @ref saveProperties */ //void readProperties(TDEConfig *); public slots: void slotConfigKlamav( const TQCString& page ); private slots: void slotScanFile(); void slotScanDir(); void slotScheduleScan(); void slotOptions(); void slotToggleWelcome(); void slotToggleQuarantine(); void slotToggleDBViewer(); void slotToggleEvents(); void slotKOAStateUpdate(); void contextEnableFK(); void contextUpdateFK(); void contextDisableFK(); void contextEnableKOA(); void contextDisableKOA(); void tabClosed(TQString name); private: void setupAccel(); void setupActions(); void firstRunWizard(); void createDefaultKlamAVDir(TQString type); void checkDir(TQString path); void updateTabState(int tabId, bool init); private: //KlamavView *m_view; signals: void itemSelected(TQString abs_filename, int line); public slots: private slots: void shuttingDown(); private: void processOutput(); void finish(); void getout(); TQLineEdit *template_edit; TQComboBox *files_combo, *pattern_combo/*, *dir_combo*/; KURLRequester *dir_combo; TQCheckBox *recursive_box; TQListBox *resultbox; TQPushButton *search_button, *cancel_button; TQLabel *status_label, *matches_label; TDEProcess *childproc; TQString buf; TDEConfig* config; TQStringList lastSearchItems; TQStringList lastSearchPaths; Sigtool *sigtool; Aboutklamav *aboutklamav; TDEPopupMenu *tabs_menu; int showWelcomeTab; int showQuarantineTab; int showDBViewerTab; int showEventsTab; }; extern Klamav *tdemain; #endif // _KLAMAV_H_