Blame qtools/qdir.h

Packit 1c1d7e
/****************************************************************************
Packit 1c1d7e
** 
Packit 1c1d7e
**
Packit 1c1d7e
** Definition of QDir class
Packit 1c1d7e
**
Packit 1c1d7e
** Created : 950427
Packit 1c1d7e
**
Packit 1c1d7e
** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
Packit 1c1d7e
**
Packit 1c1d7e
** This file is part of the tools module of the Qt GUI Toolkit.
Packit 1c1d7e
**
Packit 1c1d7e
** This file may be distributed under the terms of the Q Public License
Packit 1c1d7e
** as defined by Trolltech AS of Norway and appearing in the file
Packit 1c1d7e
** LICENSE.QPL included in the packaging of this file.
Packit 1c1d7e
**
Packit 1c1d7e
** This file may be distributed and/or modified under the terms of the
Packit 1c1d7e
** GNU General Public License version 2 as published by the Free Software
Packit 1c1d7e
** Foundation and appearing in the file LICENSE.GPL included in the
Packit 1c1d7e
** packaging of this file.
Packit 1c1d7e
**
Packit 1c1d7e
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
Packit 1c1d7e
** licenses may use this file in accordance with the Qt Commercial License
Packit 1c1d7e
** Agreement provided with the Software.
Packit 1c1d7e
**
Packit 1c1d7e
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
Packit 1c1d7e
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Packit 1c1d7e
**
Packit 1c1d7e
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
Packit 1c1d7e
**   information about Qt Commercial License Agreements.
Packit 1c1d7e
** See http://www.trolltech.com/qpl/ for QPL licensing information.
Packit 1c1d7e
** See http://www.trolltech.com/gpl/ for GPL licensing information.
Packit 1c1d7e
**
Packit 1c1d7e
** Contact info@trolltech.com if any conditions of this licensing are
Packit 1c1d7e
** not clear to you.
Packit 1c1d7e
**
Packit 1c1d7e
**********************************************************************/
Packit 1c1d7e
Packit 1c1d7e
#ifndef QDIR_H
Packit 1c1d7e
#define QDIR_H
Packit 1c1d7e
Packit 1c1d7e
#ifndef QT_H
Packit 1c1d7e
#include "qstrlist.h"
Packit 1c1d7e
#include "qfileinfo.h"
Packit 1c1d7e
#endif // QT_H
Packit 1c1d7e
Packit 1c1d7e
#ifndef QT_NO_DIR
Packit 1c1d7e
typedef QInternalList<QFileInfo> QFileInfoList;
Packit 1c1d7e
typedef QInternalListIterator<QFileInfo> QFileInfoListIterator;
Packit 1c1d7e
class QStringList;
Packit 1c1d7e
Packit 1c1d7e
Packit 1c1d7e
class Q_EXPORT QDir
Packit 1c1d7e
{
Packit 1c1d7e
public:
Packit 1c1d7e
    enum FilterSpec { Dirs	    = 0x001,
Packit 1c1d7e
		      Files	    = 0x002,
Packit 1c1d7e
		      Drives	    = 0x004,
Packit 1c1d7e
		      NoSymLinks    = 0x008,
Packit 1c1d7e
		      All	    = 0x007,
Packit 1c1d7e
		       TypeMask	    = 0x00F,
Packit 1c1d7e
Packit 1c1d7e
		      Readable	    = 0x010,
Packit 1c1d7e
		      Writable	    = 0x020,
Packit 1c1d7e
		      Executable    = 0x040,
Packit 1c1d7e
		       RWEMask	    = 0x070,
Packit 1c1d7e
Packit 1c1d7e
		      Modified	    = 0x080,
Packit 1c1d7e
		      Hidden	    = 0x100,
Packit 1c1d7e
		      System	    = 0x200,
Packit 1c1d7e
		       AccessMask    = 0x3F0,
Packit 1c1d7e
Packit 1c1d7e
		      DefaultFilter = -1 };
Packit 1c1d7e
Packit 1c1d7e
    enum SortSpec   { Name	    = 0x00,
Packit 1c1d7e
		      Time	    = 0x01,
Packit 1c1d7e
		      Size	    = 0x02,
Packit 1c1d7e
		      Unsorted	    = 0x03,
Packit 1c1d7e
		       SortByMask    = 0x03,
Packit 1c1d7e
Packit 1c1d7e
		      DirsFirst	    = 0x04,
Packit 1c1d7e
		      Reversed	    = 0x08,
Packit 1c1d7e
		      IgnoreCase    = 0x10,
Packit 1c1d7e
		      DefaultSort   = -1 };
Packit 1c1d7e
Packit 1c1d7e
    QDir();
Packit 1c1d7e
    QDir( const QString &path, const QString &nameFilter = QString::null,
Packit 1c1d7e
	  int sortSpec = Name | IgnoreCase, int filterSpec = All );
Packit 1c1d7e
    QDir( const QDir & );
Packit 1c1d7e
Packit 1c1d7e
    virtual ~QDir();
Packit 1c1d7e
Packit 1c1d7e
    QDir       &operator=( const QDir & );
Packit 1c1d7e
    QDir       &operator=( const QString &path );
Packit 1c1d7e
Packit 1c1d7e
    virtual void setPath( const QString &path );
Packit 1c1d7e
    virtual QString path()		const;
Packit 1c1d7e
    virtual QString absPath()	const;
Packit 1c1d7e
    virtual QString canonicalPath()	const;
Packit 1c1d7e
Packit 1c1d7e
    virtual QString dirName() const;
Packit 1c1d7e
    virtual QString filePath( const QString &fileName,
Packit 1c1d7e
			      bool acceptAbsPath = TRUE ) const;
Packit 1c1d7e
    virtual QString absFilePath( const QString &fileName,
Packit 1c1d7e
				 bool acceptAbsPath = TRUE ) const;
Packit 1c1d7e
Packit 1c1d7e
    static QString convertSeparators( const QString &pathName );
Packit 1c1d7e
Packit 1c1d7e
    virtual bool cd( const QString &dirName, bool acceptAbsPath = TRUE );
Packit 1c1d7e
    virtual bool cdUp();
Packit 1c1d7e
Packit 1c1d7e
    QString	nameFilter() const;
Packit 1c1d7e
    virtual void setNameFilter( const QString &nameFilter );
Packit 1c1d7e
    FilterSpec filter() const;
Packit 1c1d7e
    virtual void setFilter( int filterSpec );
Packit 1c1d7e
    SortSpec sorting() const;
Packit 1c1d7e
    virtual void setSorting( int sortSpec );
Packit 1c1d7e
Packit 1c1d7e
    bool	matchAllDirs() const;
Packit 1c1d7e
    virtual void setMatchAllDirs( bool );
Packit 1c1d7e
Packit 1c1d7e
    uint count() const;
Packit 1c1d7e
    QString	operator[]( int ) const;
Packit 1c1d7e
    
Packit 1c1d7e
    virtual QStrList encodedEntryList( int filterSpec = DefaultFilter,
Packit 1c1d7e
				       int sortSpec   = DefaultSort  ) const;
Packit 1c1d7e
    virtual QStrList encodedEntryList( const QString &nameFilter,
Packit 1c1d7e
				       int filterSpec = DefaultFilter,
Packit 1c1d7e
				       int sortSpec   = DefaultSort   ) const;
Packit 1c1d7e
    virtual QStringList entryList( int filterSpec = DefaultFilter,
Packit 1c1d7e
				   int sortSpec   = DefaultSort  ) const;
Packit 1c1d7e
    virtual QStringList entryList( const QString &nameFilter,
Packit 1c1d7e
				   int filterSpec = DefaultFilter,
Packit 1c1d7e
				   int sortSpec   = DefaultSort   ) const;
Packit 1c1d7e
Packit 1c1d7e
    virtual const QFileInfoList *entryInfoList( int filterSpec = DefaultFilter,
Packit 1c1d7e
						int sortSpec = DefaultSort ) const;
Packit 1c1d7e
    virtual const QFileInfoList *entryInfoList( const QString &nameFilter,
Packit 1c1d7e
						int filterSpec = DefaultFilter,
Packit 1c1d7e
						int sortSpec = DefaultSort ) const;
Packit 1c1d7e
Packit 1c1d7e
    static const QFileInfoList *drives();
Packit 1c1d7e
Packit 1c1d7e
    virtual bool mkdir( const QString &dirName,
Packit 1c1d7e
			bool acceptAbsPath = TRUE ) const;
Packit 1c1d7e
    virtual bool rmdir( const QString &dirName,
Packit 1c1d7e
			bool acceptAbsPath = TRUE ) const;
Packit 1c1d7e
Packit 1c1d7e
    virtual bool isReadable() const;
Packit 1c1d7e
    virtual bool exists()   const;
Packit 1c1d7e
    virtual bool isRoot()   const;
Packit 1c1d7e
Packit 1c1d7e
    virtual bool isRelative() const;
Packit 1c1d7e
    virtual void convertToAbs();
Packit 1c1d7e
Packit 1c1d7e
    virtual bool operator==( const QDir & ) const;
Packit 1c1d7e
    virtual bool operator!=( const QDir & ) const;
Packit 1c1d7e
Packit 1c1d7e
    virtual bool remove( const QString &fileName,
Packit 1c1d7e
			 bool acceptAbsPath = TRUE );
Packit 1c1d7e
    virtual bool rename( const QString &name, const QString &newName,
Packit 1c1d7e
			 bool acceptAbsPaths = TRUE  );
Packit 1c1d7e
    virtual bool exists( const QString &name,
Packit 1c1d7e
			 bool acceptAbsPath = TRUE );
Packit 1c1d7e
Packit 1c1d7e
    static char separator();
Packit 1c1d7e
Packit 1c1d7e
    static bool setCurrent( const QString &path );
Packit 1c1d7e
    static QDir current();
Packit 1c1d7e
    static QDir home();
Packit 1c1d7e
    static QDir root();
Packit 1c1d7e
    static QString currentDirPath();
Packit 1c1d7e
    static QString homeDirPath();
Packit 1c1d7e
    static QString rootDirPath();
Packit 1c1d7e
Packit 1c1d7e
    static bool match( const QStringList &filters, const QString &fileName );
Packit 1c1d7e
    static bool match( const QString &filter, const QString &fileName );
Packit 1c1d7e
    static QString cleanDirPath( const QString &dirPath );
Packit 1c1d7e
    static bool isRelativePath( const QString &path );
Packit 1c1d7e
Packit 1c1d7e
private:
Packit 1c1d7e
    void init();
Packit 1c1d7e
    virtual bool readDirEntries( const QString &nameFilter,
Packit 1c1d7e
				 int FilterSpec, int SortSpec  );
Packit 1c1d7e
Packit 1c1d7e
    static void slashify ( QString &);
Packit 1c1d7e
Packit 1c1d7e
    QString	dPath;
Packit 1c1d7e
    QStringList   *fList;
Packit 1c1d7e
    QFileInfoList *fiList;
Packit 1c1d7e
    QString	nameFilt;
Packit 1c1d7e
    FilterSpec	filtS;
Packit 1c1d7e
    SortSpec	sortS;
Packit 1c1d7e
    uint	dirty	: 1;
Packit 1c1d7e
    uint	allDirs : 1;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
Packit 1c1d7e
inline QString QDir::path() const
Packit 1c1d7e
{
Packit 1c1d7e
    return dPath;
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
inline QString QDir::nameFilter() const
Packit 1c1d7e
{
Packit 1c1d7e
    return nameFilt;
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
inline QDir::FilterSpec QDir::filter() const
Packit 1c1d7e
{
Packit 1c1d7e
    return filtS;
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
inline QDir::SortSpec QDir::sorting() const
Packit 1c1d7e
{
Packit 1c1d7e
    return sortS;
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
inline bool QDir::matchAllDirs() const
Packit 1c1d7e
{
Packit 1c1d7e
    return allDirs;
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
inline bool QDir::operator!=( const QDir &d ) const
Packit 1c1d7e
{
Packit 1c1d7e
    return !(*this == d);
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
Packit 1c1d7e
struct QDirSortItem {
Packit 1c1d7e
    QString filename_cache;
Packit 1c1d7e
    QFileInfo* item;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
#endif // QT_NO_DIR
Packit 1c1d7e
#endif // QDIR_H