1// qdir.sip generated by MetaSIP
2//
3// This file is part of the QtCore Python extension module.
4//
5// Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
6//
7// This file is part of PyQt5.
8//
9// This file may be used under the terms of the GNU General Public License
10// version 3.0 as published by the Free Software Foundation and appearing in
11// the file LICENSE included in the packaging of this file.  Please review the
12// following information to ensure the GNU General Public License version 3.0
13// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
14//
15// If you do not wish to use this file under the terms of the GPL version 3.0
16// then you may purchase a commercial license.  For more information contact
17// info@riverbankcomputing.com.
18//
19// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
22
23class QDir
24{
25%TypeHeaderCode
26#include <qdir.h>
27%End
28
29public:
30    enum Filter
31    {
32        Dirs,
33        Files,
34        Drives,
35        NoSymLinks,
36        AllEntries,
37        TypeMask,
38        Readable,
39        Writable,
40        Executable,
41        PermissionMask,
42        Modified,
43        Hidden,
44        System,
45        AccessMask,
46        AllDirs,
47        CaseSensitive,
48        NoDotAndDotDot,
49        NoFilter,
50        NoDot,
51        NoDotDot,
52    };
53
54    typedef QFlags<QDir::Filter> Filters;
55
56    enum SortFlag
57    {
58        Name,
59        Time,
60        Size,
61        Unsorted,
62        SortByMask,
63        DirsFirst,
64        Reversed,
65        IgnoreCase,
66        DirsLast,
67        LocaleAware,
68        Type,
69        NoSort,
70    };
71
72    typedef QFlags<QDir::SortFlag> SortFlags;
73    QDir(const QDir &);
74    QDir(const QString &path = QString());
75    QDir(const QString &path, const QString &nameFilter, QFlags<QDir::SortFlag> sort /TypeHintValue="QDir.Name|QDir.IgnoreCase"/ = QDir::SortFlags(QDir::Name|QDir::IgnoreCase), QFlags<QDir::Filter> filters = AllEntries);
76    ~QDir();
77    void setPath(const QString &path);
78    QString path() const;
79    QString absolutePath() const;
80    QString canonicalPath() const;
81    QString dirName() const;
82    QString filePath(const QString &fileName) const;
83    QString absoluteFilePath(const QString &fileName) const;
84    QString relativeFilePath(const QString &fileName) const;
85    bool cd(const QString &dirName);
86    bool cdUp();
87    QStringList nameFilters() const;
88    void setNameFilters(const QStringList &nameFilters);
89    QDir::Filters filter() const;
90    void setFilter(QDir::Filters filter);
91    QDir::SortFlags sorting() const;
92    void setSorting(QDir::SortFlags sort);
93    uint count() const /__len__/;
94    QString operator[](int) const;
95%MethodCode
96        Py_ssize_t idx = sipConvertFromSequenceIndex(a0, sipCpp->count());
97
98        if (idx < 0)
99            sipIsErr = 1;
100        else
101            sipRes = new QString(sipCpp->operator[]((int)idx));
102%End
103
104    QStringList operator[](SIP_PYSLICE) const;
105%MethodCode
106        Py_ssize_t start, stop, step, slicelength;
107
108        if (sipConvertFromSliceObject(a0, sipCpp->count(), &start, &stop, &step, &slicelength) < 0)
109        {
110            sipIsErr = 1;
111        }
112        else
113        {
114            sipRes = new QStringList();
115
116            for (Py_ssize_t i = 0; i < slicelength; ++i)
117            {
118                (*sipRes) += (*sipCpp)[start];
119                start += step;
120            }
121        }
122%End
123
124    int __contains__(const QString &) const;
125%MethodCode
126        sipRes = bool(sipCpp->entryList().contains(*a0));
127%End
128
129    static QStringList nameFiltersFromString(const QString &nameFilter);
130    QStringList entryList(QDir::Filters filters = QDir::NoFilter, QDir::SortFlags sort = QDir::SortFlag::NoSort) const;
131    QStringList entryList(const QStringList &nameFilters, QDir::Filters filters = QDir::NoFilter, QDir::SortFlags sort = QDir::SortFlag::NoSort) const;
132    QFileInfoList entryInfoList(QDir::Filters filters = QDir::NoFilter, QDir::SortFlags sort = QDir::SortFlag::NoSort) const;
133    QFileInfoList entryInfoList(const QStringList &nameFilters, QDir::Filters filters = QDir::NoFilter, QDir::SortFlags sort = QDir::SortFlag::NoSort) const;
134    bool mkdir(const QString &dirName) const;
135    bool rmdir(const QString &dirName) const;
136    bool mkpath(const QString &dirPath) const;
137    bool rmpath(const QString &dirPath) const;
138    bool isReadable() const;
139    bool exists() const;
140    bool isRoot() const;
141    static bool isRelativePath(const QString &path);
142    static bool isAbsolutePath(const QString &path);
143    bool isRelative() const;
144    bool isAbsolute() const;
145    bool makeAbsolute();
146    bool operator==(const QDir &dir) const;
147    bool operator!=(const QDir &dir) const;
148    bool remove(const QString &fileName);
149    bool rename(const QString &oldName, const QString &newName);
150    bool exists(const QString &name) const;
151    void refresh() const;
152    static QFileInfoList drives();
153    static QChar separator();
154    static bool setCurrent(const QString &path);
155    static QDir current();
156    static QString currentPath();
157    static QDir home();
158    static QString homePath();
159    static QDir root();
160    static QString rootPath();
161    static QDir temp();
162    static QString tempPath();
163    static bool match(const QStringList &filters, const QString &fileName);
164    static bool match(const QString &filter, const QString &fileName);
165    static QString cleanPath(const QString &path);
166    static QString toNativeSeparators(const QString &pathName);
167    static QString fromNativeSeparators(const QString &pathName);
168    static void setSearchPaths(const QString &prefix, const QStringList &searchPaths);
169    static void addSearchPath(const QString &prefix, const QString &path);
170    static QStringList searchPaths(const QString &prefix);
171    bool removeRecursively();
172    void swap(QDir &other /Constrained/);
173%If (Qt_5_6_0 -)
174    static QChar listSeparator();
175%End
176%If (Qt_5_9_0 -)
177    bool isEmpty(QDir::Filters filters = QDir::AllEntries | QDir::NoDotAndDotDot) const;
178%End
179};
180
181QFlags<QDir::Filter> operator|(QDir::Filter f1, QFlags<QDir::Filter> f2);
182QFlags<QDir::SortFlag> operator|(QDir::SortFlag f1, QFlags<QDir::SortFlag> f2);
183