/* * Copyright (C) 2004 Robert Hogan */ #ifndef _KLAMD_H_ #define _KLAMD_H_ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include "kfiletreeview.h" class KPrinter; class KToggleAction; class KURL; class TQLineEdit; class TQComboBox; class TQCheckBox; class TQListBox; class TQPushButton; class TQLabel; class KProcess; class KConfig; class KURLRequester; class K3bFileTreeView; class KArrowButton; class KProcIO; class KSystemTray; class MyListBox : public TQListBox { public: MyListBox(TQWidget *parent) : TQListBox(parent) {} bool isItemVisible(int id) { return itemVisible(id); } }; /** * This class serves as the main window for Klamd. It handles the * menus, toolbars, and status bars. * * @short Main window class * @author $AUTHOR <$EMAIL> * @version $APP_VERSION */ class Klamd : public TQWidget { Q_OBJECT public: /** * Default Constructor */ Klamd(TQWidget *parent, const char *name=0); /** * Default Destructor */ virtual ~Klamd(); /** * Use this method to load whatever file/URL you have */ void setDirName(TQString); bool isKlamdAlive(); TQString getKlamdConfFile(); public slots: bool startKlamd(); void slotCancel(); protected: /** * Overridden virtuals for TQt drag 'n drop (XDND) */ /*virtual void dragEnterEvent(TQDragEnterEvent *event); virtual void dropEvent(TQDropEvent *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 *); public: private: void setupAccel(); void setupActions(); private: //KlamdView *m_view; /* KPrinter *m_printer; KToggleAction *m_toolbarAction; KToggleAction *m_statusbarAction;*/ signals: void itemSelected(TQString abs_filename, int line); private slots: //void dirButtonClicked(); //void templateActivated(int index); void childExited(); void receivedOutput(KProcIO *); //void itemSelected(const TQString&); void slotClear(); void slotAddIncludeDir(); void slotAddExcludeDir(); void slotDelIncludeDir(); void slotDelExcludeDir(); void writeConf(); void Quarantine(TQString fname, TQString virusname); void restoreKlamd(); void handleChecks(); void checkForDazuko(); void loadDazuko(); void lsmodOutput(); void lsmodCheck(); void moduleLoaded(); void receivedmvOutput(KProcIO *); void slotAdvOptions(); //void patternTextChanged( const TQString &); private: void processOutput(); void finish(); void getout(); int runDazuko(bool caller); void loadKlamd(); void enableInputs(); void disableInputs(); TQLineEdit *template_edit; TQComboBox *files_combo, *pattern_combo/*, *dir_combo*/; KURLRequester *dir_combo; TQCheckBox *recursive_box; TQCheckBox *recursive_box1; TQCheckBox *recursive_box2; TQListBox *resultbox; TQLabel *status_label, *matches_label; KProcIO *childproc; KProcIO *proc; KProcIO *lsmodproc; TQString buf, bufmv, mvbuffer; KConfig* config; TQStringList lastSearchItems; TQStringList lastSearchPaths; TQStringList lastQuarItems; TQListView* table; MyListBox *sessionslb; KArrowButton *btnup, *btndown; KFileTreeView* m_fileTreeView; KFileTreeBranch* treeBranch; MyListBox *sessionslb2; KArrowButton *btnup2, *btndown2; KFileTreeView* m_fileTreeView2; KFileTreeBranch* treeBranch2; TQString tempFileName; TQComboBox *check_combo; TQComboBox *check_combo2; TQString item2; TQStringList includePaths; TQStringList excludePaths; bool dazukoLoaded; bool klamdAlive; TQWidget *parent; TQString tmpit; TQString clamdcommand; //TQPushButton *adv_options; TQWidget *hlp; TQWidget *hlp2; TQWidget *hlp3; public: TQPushButton *search_button, *cancel_button; }; #endif // _Klamd_H_