Orb/Doxygen/qtools/qdir.h
changeset 0 42188c7ea2d9
equal deleted inserted replaced
-1:000000000000 0:42188c7ea2d9
       
     1 /****************************************************************************
       
     2 ** 
       
     3 **
       
     4 ** Definition of QDir class
       
     5 **
       
     6 ** Created : 950427
       
     7 **
       
     8 ** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
       
     9 **
       
    10 ** This file is part of the tools module of the Qt GUI Toolkit.
       
    11 **
       
    12 ** This file may be distributed under the terms of the Q Public License
       
    13 ** as defined by Trolltech AS of Norway and appearing in the file
       
    14 ** LICENSE.QPL included in the packaging of this file.
       
    15 **
       
    16 ** This file may be distributed and/or modified under the terms of the
       
    17 ** GNU General Public License version 2 as published by the Free Software
       
    18 ** Foundation and appearing in the file LICENSE.GPL included in the
       
    19 ** packaging of this file.
       
    20 **
       
    21 ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
       
    22 ** licenses may use this file in accordance with the Qt Commercial License
       
    23 ** Agreement provided with the Software.
       
    24 **
       
    25 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
       
    26 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
       
    27 **
       
    28 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
       
    29 **   information about Qt Commercial License Agreements.
       
    30 ** See http://www.trolltech.com/qpl/ for QPL licensing information.
       
    31 ** See http://www.trolltech.com/gpl/ for GPL licensing information.
       
    32 **
       
    33 ** Contact info@trolltech.com if any conditions of this licensing are
       
    34 ** not clear to you.
       
    35 **
       
    36 **********************************************************************/
       
    37 
       
    38 #ifndef QDIR_H
       
    39 #define QDIR_H
       
    40 
       
    41 #ifndef QT_H
       
    42 #include "qstrlist.h"
       
    43 #include "qfileinfo.h"
       
    44 #endif // QT_H
       
    45 
       
    46 #ifndef QT_NO_DIR
       
    47 typedef QList<QFileInfo> QFileInfoList;
       
    48 typedef QListIterator<QFileInfo> QFileInfoListIterator;
       
    49 class QStringList;
       
    50 
       
    51 
       
    52 class Q_EXPORT QDir
       
    53 {
       
    54 public:
       
    55     enum FilterSpec { Dirs	    = 0x001,
       
    56 		      Files	    = 0x002,
       
    57 		      Drives	    = 0x004,
       
    58 		      NoSymLinks    = 0x008,
       
    59 		      All	    = 0x007,
       
    60 		       TypeMask	    = 0x00F,
       
    61 
       
    62 		      Readable	    = 0x010,
       
    63 		      Writable	    = 0x020,
       
    64 		      Executable    = 0x040,
       
    65 		       RWEMask	    = 0x070,
       
    66 
       
    67 		      Modified	    = 0x080,
       
    68 		      Hidden	    = 0x100,
       
    69 		      System	    = 0x200,
       
    70 		       AccessMask    = 0x3F0,
       
    71 
       
    72 		      DefaultFilter = -1 };
       
    73 
       
    74     enum SortSpec   { Name	    = 0x00,
       
    75 		      Time	    = 0x01,
       
    76 		      Size	    = 0x02,
       
    77 		      Unsorted	    = 0x03,
       
    78 		       SortByMask    = 0x03,
       
    79 
       
    80 		      DirsFirst	    = 0x04,
       
    81 		      Reversed	    = 0x08,
       
    82 		      IgnoreCase    = 0x10,
       
    83 		      DefaultSort   = -1 };
       
    84 
       
    85     QDir();
       
    86     QDir( const QString &path, const QString &nameFilter = QString::null,
       
    87 	  int sortSpec = Name | IgnoreCase, int filterSpec = All );
       
    88     QDir( const QDir & );
       
    89 
       
    90     virtual ~QDir();
       
    91 
       
    92     QDir       &operator=( const QDir & );
       
    93     QDir       &operator=( const QString &path );
       
    94 
       
    95     virtual void setPath( const QString &path );
       
    96     virtual QString path()		const;
       
    97     virtual QString absPath()	const;
       
    98     virtual QString canonicalPath()	const;
       
    99 
       
   100     virtual QString dirName() const;
       
   101     virtual QString filePath( const QString &fileName,
       
   102 			      bool acceptAbsPath = TRUE ) const;
       
   103     virtual QString absFilePath( const QString &fileName,
       
   104 				 bool acceptAbsPath = TRUE ) const;
       
   105 
       
   106     static QString convertSeparators( const QString &pathName );
       
   107 
       
   108     virtual bool cd( const QString &dirName, bool acceptAbsPath = TRUE );
       
   109     virtual bool cdUp();
       
   110 
       
   111     QString	nameFilter() const;
       
   112     virtual void setNameFilter( const QString &nameFilter );
       
   113     FilterSpec filter() const;
       
   114     virtual void setFilter( int filterSpec );
       
   115     SortSpec sorting() const;
       
   116     virtual void setSorting( int sortSpec );
       
   117 
       
   118     bool	matchAllDirs() const;
       
   119     virtual void setMatchAllDirs( bool );
       
   120 
       
   121     uint count() const;
       
   122     QString	operator[]( int ) const;
       
   123     
       
   124     virtual QStrList encodedEntryList( int filterSpec = DefaultFilter,
       
   125 				       int sortSpec   = DefaultSort  ) const;
       
   126     virtual QStrList encodedEntryList( const QString &nameFilter,
       
   127 				       int filterSpec = DefaultFilter,
       
   128 				       int sortSpec   = DefaultSort   ) const;
       
   129     virtual QStringList entryList( int filterSpec = DefaultFilter,
       
   130 				   int sortSpec   = DefaultSort  ) const;
       
   131     virtual QStringList entryList( const QString &nameFilter,
       
   132 				   int filterSpec = DefaultFilter,
       
   133 				   int sortSpec   = DefaultSort   ) const;
       
   134 
       
   135     virtual const QFileInfoList *entryInfoList( int filterSpec = DefaultFilter,
       
   136 						int sortSpec = DefaultSort ) const;
       
   137     virtual const QFileInfoList *entryInfoList( const QString &nameFilter,
       
   138 						int filterSpec = DefaultFilter,
       
   139 						int sortSpec = DefaultSort ) const;
       
   140 
       
   141     static const QFileInfoList *drives();
       
   142 
       
   143     virtual bool mkdir( const QString &dirName,
       
   144 			bool acceptAbsPath = TRUE ) const;
       
   145     virtual bool rmdir( const QString &dirName,
       
   146 			bool acceptAbsPath = TRUE ) const;
       
   147 
       
   148     virtual bool isReadable() const;
       
   149     virtual bool exists()   const;
       
   150     virtual bool isRoot()   const;
       
   151 
       
   152     virtual bool isRelative() const;
       
   153     virtual void convertToAbs();
       
   154 
       
   155     virtual bool operator==( const QDir & ) const;
       
   156     virtual bool operator!=( const QDir & ) const;
       
   157 
       
   158     virtual bool remove( const QString &fileName,
       
   159 			 bool acceptAbsPath = TRUE );
       
   160     virtual bool rename( const QString &name, const QString &newName,
       
   161 			 bool acceptAbsPaths = TRUE  );
       
   162     virtual bool exists( const QString &name,
       
   163 			 bool acceptAbsPath = TRUE );
       
   164 
       
   165     static char separator();
       
   166 
       
   167     static bool setCurrent( const QString &path );
       
   168     static QDir current();
       
   169     static QDir home();
       
   170     static QDir root();
       
   171     static QString currentDirPath();
       
   172     static QString homeDirPath();
       
   173     static QString rootDirPath();
       
   174 
       
   175     static bool match( const QStringList &filters, const QString &fileName );
       
   176     static bool match( const QString &filter, const QString &fileName );
       
   177     static QString cleanDirPath( const QString &dirPath );
       
   178     static bool isRelativePath( const QString &path );
       
   179 
       
   180 private:
       
   181     void init();
       
   182     virtual bool readDirEntries( const QString &nameFilter,
       
   183 				 int FilterSpec, int SortSpec  );
       
   184 
       
   185     static void slashify ( QString &);
       
   186 
       
   187     QString	dPath;
       
   188     QStringList   *fList;
       
   189     QFileInfoList *fiList;
       
   190     QString	nameFilt;
       
   191     FilterSpec	filtS;
       
   192     SortSpec	sortS;
       
   193     uint	dirty	: 1;
       
   194     uint	allDirs : 1;
       
   195 };
       
   196 
       
   197 
       
   198 inline QString QDir::path() const
       
   199 {
       
   200     return dPath;
       
   201 }
       
   202 
       
   203 inline QString QDir::nameFilter() const
       
   204 {
       
   205     return nameFilt;
       
   206 }
       
   207 
       
   208 inline QDir::FilterSpec QDir::filter() const
       
   209 {
       
   210     return filtS;
       
   211 }
       
   212 
       
   213 inline QDir::SortSpec QDir::sorting() const
       
   214 {
       
   215     return sortS;
       
   216 }
       
   217 
       
   218 inline bool QDir::matchAllDirs() const
       
   219 {
       
   220     return allDirs;
       
   221 }
       
   222 
       
   223 inline bool QDir::operator!=( const QDir &d ) const
       
   224 {
       
   225     return !(*this == d);
       
   226 }
       
   227 
       
   228 
       
   229 struct QDirSortItem {
       
   230     QString filename_cache;
       
   231     QFileInfo* item;
       
   232 };
       
   233 
       
   234 #endif // QT_NO_DIR
       
   235 #endif // QDIR_H