summaryrefslogtreecommitdiffstats
path: root/src/tools/tqdir.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/tqdir.h')
-rw-r--r--src/tools/tqdir.h250
1 files changed, 250 insertions, 0 deletions
diff --git a/src/tools/tqdir.h b/src/tools/tqdir.h
new file mode 100644
index 000000000..41ba93e8c
--- /dev/null
+++ b/src/tools/tqdir.h
@@ -0,0 +1,250 @@
+/****************************************************************************
+**
+** Definition of TQDir class
+**
+** Created : 950427
+**
+** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of the tools module of the TQt GUI Toolkit.
+**
+** This file may be used under the terms of the GNU General
+** Public License versions 2.0 or 3.0 as published by the Free
+** Software Foundation and appearing in the files LICENSE.GPL2
+** and LICENSE.GPL3 included in the packaging of this file.
+** Alternatively you may (at your option) use any later version
+** of the GNU General Public License if such license has been
+** publicly approved by Trolltech ASA (or its successors, if any)
+** and the KDE Free TQt Foundation.
+**
+** Please review the following information to ensure GNU General
+** Public Licensing requirements will be met:
+** http://trolltech.com/products/qt/licenses/licensing/opensource/.
+** If you are unsure which license is appropriate for your use, please
+** review the following information:
+** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
+** or contact the sales department at sales@trolltech.com.
+**
+** This file may be used under the terms of the Q Public License as
+** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
+** included in the packaging of this file. Licensees holding valid TQt
+** Commercial licenses may use this file in accordance with the TQt
+** Commercial License Agreement provided with the Software.
+**
+** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
+** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
+** herein.
+**
+**********************************************************************/
+
+#ifndef TQDIR_H
+#define TQDIR_H
+
+#ifndef QT_H
+#include "ntqglobal.h"
+#include "tqstrlist.h"
+#include "tqfileinfo.h"
+#endif // QT_H
+
+
+#ifndef TQT_NO_DIR
+typedef TQPtrList<TQFileInfo> TQFileInfoList;
+typedef TQPtrListIterator<TQFileInfo> TQFileInfoListIterator;
+class TQStringList;
+template <class T> class TQDeepCopy;
+
+
+class TQ_EXPORT TQDir
+{
+public:
+ enum FilterSpec { Dirs = 0x001,
+ Files = 0x002,
+ Drives = 0x004,
+ NoSymLinks = 0x008,
+ All = 0x007,
+ TypeMask = 0x00F,
+
+ Readable = 0x010,
+ Writable = 0x020,
+ Executable = 0x040,
+ RWEMask = 0x070,
+
+ Modified = 0x080,
+ Hidden = 0x100,
+ System = 0x200,
+ AccessMask = 0x3F0,
+
+ DefaultFilter = -1 };
+
+ enum SortSpec { Name = 0x00,
+ Time = 0x01,
+ Size = 0x02,
+ Unsorted = 0x03,
+ SortByMask = 0x03,
+
+ DirsFirst = 0x04,
+ Reversed = 0x08,
+ IgnoreCase = 0x10,
+ LocaleAware = 0x20,
+ DefaultSort = -1 };
+
+ TQDir();
+ TQDir( const TQString &path, const TQString &nameFilter = TQString::null,
+ int sortSpec = Name | IgnoreCase, int filterSpec = All );
+ TQDir( const TQDir & );
+
+ virtual ~TQDir();
+
+ TQDir &operator=( const TQDir & );
+ TQDir &operator=( const TQString &path );
+
+ virtual void setPath( const TQString &path );
+ virtual TQString path() const;
+ virtual TQString absPath() const;
+ virtual TQString canonicalPath() const;
+
+ virtual TQString dirName() const;
+ virtual TQString filePath( const TQString &fileName,
+ bool acceptAbsPath = TRUE ) const;
+ virtual TQString absFilePath( const TQString &fileName,
+ bool acceptAbsPath = TRUE ) const;
+
+ static TQString convertSeparators( const TQString &pathName );
+
+ virtual bool cd( const TQString &dirName, bool acceptAbsPath = TRUE );
+ virtual bool cdUp();
+
+ TQString nameFilter() const;
+ virtual void setNameFilter( const TQString &nameFilter );
+ FilterSpec filter() const;
+ virtual void setFilter( int filterSpec );
+ SortSpec sorting() const;
+ virtual void setSorting( int sortSpec );
+
+ bool matchAllDirs() const;
+ virtual void setMatchAllDirs( bool );
+
+ uint count() const;
+ TQString operator[]( int ) const;
+
+ virtual TQStrList encodedEntryList( int filterSpec = DefaultFilter,
+ int sortSpec = DefaultSort ) const;
+ virtual TQStrList encodedEntryList( const TQString &nameFilter,
+ int filterSpec = DefaultFilter,
+ int sortSpec = DefaultSort ) const;
+ virtual TQStringList entryList( int filterSpec = DefaultFilter,
+ int sortSpec = DefaultSort ) const;
+ virtual TQStringList entryList( const TQString &nameFilter,
+ int filterSpec = DefaultFilter,
+ int sortSpec = DefaultSort ) const;
+
+ virtual const TQFileInfoList *entryInfoList( int filterSpec = DefaultFilter,
+ int sortSpec = DefaultSort ) const;
+ virtual const TQFileInfoList *entryInfoList( const TQString &nameFilter,
+ int filterSpec = DefaultFilter,
+ int sortSpec = DefaultSort ) const;
+
+ static const TQFileInfoList *drives();
+
+ virtual bool mkdir( const TQString &dirName,
+ bool acceptAbsPath = TRUE ) const;
+ virtual bool rmdir( const TQString &dirName,
+ bool acceptAbsPath = TRUE ) const;
+
+ virtual bool isReadable() const;
+ virtual bool exists() const;
+ virtual bool isRoot() const;
+
+ virtual bool isRelative() const;
+ virtual void convertToAbs();
+
+ virtual bool operator==( const TQDir & ) const;
+ virtual bool operator!=( const TQDir & ) const;
+
+ virtual bool remove( const TQString &fileName,
+ bool acceptAbsPath = TRUE );
+ virtual bool rename( const TQString &name, const TQString &newName,
+ bool acceptAbsPaths = TRUE );
+ virtual bool exists( const TQString &name,
+ bool acceptAbsPath = TRUE );
+
+ static char separator();
+
+ static bool setCurrent( const TQString &path );
+ static TQDir current();
+ static TQDir home();
+ static TQDir root();
+ static TQString currentDirPath();
+ static TQString homeDirPath();
+ static TQString rootDirPath();
+
+ static bool match( const TQStringList &filters, const TQString &fileName );
+ static bool match( const TQString &filter, const TQString &fileName );
+ static TQString cleanDirPath( const TQString &dirPath );
+ static bool isRelativePath( const TQString &path );
+ void refresh() const;
+
+private:
+#ifdef Q_OS_MAC
+ typedef struct FSSpec FSSpec;
+ static FSSpec *make_spec(const TQString &);
+#endif
+ void init();
+ virtual bool readDirEntries( const TQString &nameFilter,
+ int FilterSpec, int SortSpec );
+
+ static void slashify( TQString & );
+
+ TQString dPath;
+ TQStringList *fList;
+ TQFileInfoList *fiList;
+ TQString nameFilt;
+ FilterSpec filtS;
+ SortSpec sortS;
+ uint dirty : 1;
+ uint allDirs : 1;
+
+ void detach();
+ friend class TQDeepCopy< TQDir >;
+};
+
+
+inline TQString TQDir::path() const
+{
+ return dPath;
+}
+
+inline TQString TQDir::nameFilter() const
+{
+ return nameFilt;
+}
+
+inline TQDir::FilterSpec TQDir::filter() const
+{
+ return filtS;
+}
+
+inline TQDir::SortSpec TQDir::sorting() const
+{
+ return sortS;
+}
+
+inline bool TQDir::matchAllDirs() const
+{
+ return allDirs;
+}
+
+inline bool TQDir::operator!=( const TQDir &d ) const
+{
+ return !(*this == d);
+}
+
+
+struct TQDirSortItem {
+ TQString filename_cache;
+ TQFileInfo* item;
+};
+
+#endif // TQT_NO_DIR
+#endif // TQDIR_H