1 /* 2 * DQt - D bindings for the Qt Toolkit 3 * 4 * GNU Lesser General Public License Usage 5 * This file may be used under the terms of the GNU Lesser 6 * General Public License version 3 as published by the Free Software 7 * Foundation and appearing in the file LICENSE.LGPL3 included in the 8 * packaging of this file. Please review the following information to 9 * ensure the GNU Lesser General Public License version 3 requirements 10 * will be met: https://www.gnu.org/licenses/lgpl-3.0.html. 11 */ 12 module qt.core.diriterator; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.dir; 17 import qt.core.fileinfo; 18 import qt.core.flags; 19 import qt.core.scopedpointer; 20 import qt.core.string; 21 import qt.core.stringlist; 22 import qt.helpers; 23 24 /// Binding for C++ class [QDirIterator](https://doc.qt.io/qt-6/qdiriterator.html). 25 extern(C++, class) struct /+ Q_CORE_EXPORT +/ QDirIterator 26 { 27 public: 28 enum IteratorFlag { 29 NoIteratorFlags = 0x0, 30 FollowSymlinks = 0x1, 31 Subdirectories = 0x2 32 } 33 /+ Q_DECLARE_FLAGS(IteratorFlags, IteratorFlag) +/ 34 alias IteratorFlags = QFlags!(IteratorFlag); 35 this(ref const(QDir) dir, IteratorFlags flags = IteratorFlag.NoIteratorFlags); 36 this(ref const(QString) path, 37 IteratorFlags flags = IteratorFlag.NoIteratorFlags); 38 this(ref const(QString) path, 39 QDir.Filters filter, 40 IteratorFlags flags = IteratorFlag.NoIteratorFlags); 41 this(ref const(QString) path, 42 ref const(QStringList) nameFilters, 43 QDir.Filters filters = QDir.Filter.NoFilter, 44 IteratorFlags flags = IteratorFlag.NoIteratorFlags); 45 46 ~this(); 47 48 QString next(); 49 bool hasNext() const; 50 51 QString fileName() const; 52 QString filePath() const; 53 QFileInfo fileInfo() const; 54 QString path() const; 55 56 private: 57 /+ Q_DISABLE_COPY(QDirIterator) +/ 58 @disable this(this); 59 /+this(ref const(QDirIterator));+//+ref QDirIterator operator =(ref const(QDirIterator));+/ 60 QScopedPointer!(QDirIteratorPrivate) d; 61 /+ friend class QDir; +/ 62 mixin(CREATE_CONVENIENCE_WRAPPERS); 63 } 64 /+pragma(inline, true) QFlags!(QDirIterator.IteratorFlags.enum_type) operator |(QDirIterator.IteratorFlags.enum_type f1, QDirIterator.IteratorFlags.enum_type f2)/+noexcept+/{return QFlags!(QDirIterator.IteratorFlags.enum_type)(f1)|f2;}+/ 65 /+pragma(inline, true) QFlags!(QDirIterator.IteratorFlags.enum_type) operator |(QDirIterator.IteratorFlags.enum_type f1, QFlags!(QDirIterator.IteratorFlags.enum_type) f2)/+noexcept+/{return f2|f1;}+/ 66 /+pragma(inline, true) QFlags!(QDirIterator.IteratorFlags.enum_type) operator &(QDirIterator.IteratorFlags.enum_type f1, QDirIterator.IteratorFlags.enum_type f2)/+noexcept+/{return QFlags!(QDirIterator.IteratorFlags.enum_type)(f1)&f2;}+/ 67 /+pragma(inline, true) QFlags!(QDirIterator.IteratorFlags.enum_type) operator &(QDirIterator.IteratorFlags.enum_type f1, QFlags!(QDirIterator.IteratorFlags.enum_type) f2)/+noexcept+/{return f2&f1;}+/ 68 /+pragma(inline, true) void operator +(QDirIterator.IteratorFlags.enum_type f1, QDirIterator.IteratorFlags.enum_type f2)/+noexcept+/;+/ 69 /+pragma(inline, true) void operator +(QDirIterator.IteratorFlags.enum_type f1, QFlags!(QDirIterator.IteratorFlags.enum_type) f2)/+noexcept+/;+/ 70 /+pragma(inline, true) void operator +(int f1, QFlags!(QDirIterator.IteratorFlags.enum_type) f2)/+noexcept+/;+/ 71 /+pragma(inline, true) void operator -(QDirIterator.IteratorFlags.enum_type f1, QDirIterator.IteratorFlags.enum_type f2)/+noexcept+/;+/ 72 /+pragma(inline, true) void operator -(QDirIterator.IteratorFlags.enum_type f1, QFlags!(QDirIterator.IteratorFlags.enum_type) f2)/+noexcept+/;+/ 73 /+pragma(inline, true) void operator -(int f1, QFlags!(QDirIterator.IteratorFlags.enum_type) f2)/+noexcept+/;+/ 74 /+pragma(inline, true) QIncompatibleFlag operator |(QDirIterator.IteratorFlags.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/ 75 /+pragma(inline, true) void operator +(int f1, QDirIterator.IteratorFlags.enum_type f2)/+noexcept+/;+/ 76 /+pragma(inline, true) void operator +(QDirIterator.IteratorFlags.enum_type f1, int f2)/+noexcept+/;+/ 77 /+pragma(inline, true) void operator -(int f1, QDirIterator.IteratorFlags.enum_type f2)/+noexcept+/;+/ 78 /+pragma(inline, true) void operator -(QDirIterator.IteratorFlags.enum_type f1, int f2)/+noexcept+/;+/ 79 80 /+ Q_DECLARE_OPERATORS_FOR_FLAGS(QDirIterator::IteratorFlags) +/