|
|
/***************************************************************************
|
|
|
hiddenfileview.h - description
|
|
|
-------------------
|
|
|
begin : Wed Jan 1 2003
|
|
|
copyright : (C) 2003 by Jan Sch<63>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 <kfileitem.h>
|
|
|
#include <klistview.h>
|
|
|
|
|
|
#include "qmultichecklistitem.h"
|
|
|
|
|
|
class KDirLister;
|
|
|
class TQRegExp;
|
|
|
class ShareDlgImpl;
|
|
|
class SambaShare;
|
|
|
|
|
|
class HiddenListViewItem : public QMultiCheckListItem
|
|
|
{
|
|
|
Q_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 KToggleAction;
|
|
|
class KPopupMenu;
|
|
|
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
|
|
|
{
|
|
|
Q_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<TQRegExp> _hiddenList;
|
|
|
TQPtrList<TQRegExp> _vetoList;
|
|
|
TQPtrList<TQRegExp> _vetoOplockList;
|
|
|
|
|
|
KToggleAction* _hiddenActn;
|
|
|
KToggleAction* _vetoActn;
|
|
|
KToggleAction* _vetoOplockActn;
|
|
|
|
|
|
KPopupMenu* _popup;
|
|
|
|
|
|
void initListView();
|
|
|
|
|
|
TQPtrList<TQRegExp> 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<TQRegExp> & lst);
|
|
|
|
|
|
TQRegExp* getHiddenMatch(const TQString & s);
|
|
|
TQRegExp* getVetoMatch(const TQString & s);
|
|
|
TQRegExp* getRegExpListMatch(const TQString & s, TQPtrList<TQRegExp> & lst);
|
|
|
|
|
|
TQPtrList<HiddenListViewItem> getMatchingItems(const TQRegExp & rx);
|
|
|
|
|
|
void setState(TQPtrList<HiddenListViewItem> & lst,int column, bool b);
|
|
|
void deselect(TQPtrList<HiddenListViewItem> & lst);
|
|
|
|
|
|
void updateEdit(TQLineEdit* edit, TQPtrList<TQRegExp> & 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,KToggleAction* action,TQLineEdit* edit,int column,TQPtrList<TQRegExp> &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
|