/*************************************************************************** hiddenfileview.h - description ------------------- begin : Wed Jan 1 2003 copyright : (C) 2003 by Jan Sch�fer email : janschaefer@users.sourceforge.net ***************************************************************************/ /****************************************************************************** * * * This file is part of KSambaPlugin. * * * * KSambaPlugin is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * KSambaPlugin is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with KSambaPlugin; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * * ******************************************************************************/ #ifndef _HIDDENFILEVIEW_H_ #define _HIDDENFILEVIEW_H_ #include #include #include "qmultichecklistitem.h" class KDirLister; class TQRegExp; class ShareDlgImpl; class SambaShare; class HiddenListViewItem : public QMultiCheckListItem { TQ_OBJECT public: HiddenListViewItem( TQListView *parent, KFileItem *fi, bool hidden, bool veto, bool vetoOplock ); ~HiddenListViewItem(); virtual void paintCell(TQPainter *p, const TQColorGroup &cg, int column, int width, int alignment); KFileItem* getFileItem(); protected: KFileItem *_fileItem; }; class TDEToggleAction; class TDEPopupMenu; class ShareDlgImpl; /** * Widget which shows a list of files * from a directory. * It gets the directory from the SambaShare * It also interprets the hidden files parameter * of the SambaShare an offers the possibility of * selecting the files which should be hidden **/ class HiddenFileView : public TQObject { TQ_OBJECT public: HiddenFileView(ShareDlgImpl* shareDlg, SambaShare* share); ~HiddenFileView(); /** * Load the values from the share and show them **/ void load(); /** * Save changings to the share **/ void save(); protected: SambaShare* _share; ShareDlgImpl* _dlg; KDirLister* _dir; TQPtrList _hiddenList; TQPtrList _vetoList; TQPtrList _vetoOplockList; TDEToggleAction* _hiddenActn; TDEToggleAction* _vetoActn; TDEToggleAction* _vetoOplockActn; TDEPopupMenu* _popup; void initListView(); TQPtrList createRegExpList(const TQString & s); bool matchHidden(const TQString & s); bool matchVeto(const TQString & s); bool matchVetoOplock(const TQString & s); bool matchRegExpList(const TQString & s, TQPtrList & lst); TQRegExp* getHiddenMatch(const TQString & s); TQRegExp* getVetoMatch(const TQString & s); TQRegExp* getRegExpListMatch(const TQString & s, TQPtrList & lst); TQPtrList getMatchingItems(const TQRegExp & rx); void setState(TQPtrList & lst,int column, bool b); void deselect(TQPtrList & lst); void updateEdit(TQLineEdit* edit, TQPtrList & lst); protected slots: // slots for KDirListener : void insertNewFiles(const KFileItemList &newone); void deleteItem( KFileItem *_fileItem ); void refreshItems( const KFileItemList& items ); void selectionChanged(); void hiddenChkClicked(bool b); void vetoChkClicked(bool b); void vetoOplockChkClicked(bool b); void checkBoxClicked(TQCheckBox* chkBox,TDEToggleAction* action,TQLineEdit* edit,int column,TQPtrList &reqExpList,bool b); void columnClicked(int column); void showContextMenu(); void updateView(); void hideDotFilesChkClicked(bool); void hideUnreadableChkClicked(bool); void slotMouseButtonPressed( int button, TQListViewItem * item, const TQPoint & pos, int c ); }; #endif