8#include <QtCore/qiodevicebase.h>
9#include <QtCore/qchar.h>
10#include <QtCore/qstringconverter_base.h>
18#pragma qt_class(QTextStream)
22#error qtextstream.h must be included before any header file that defines Status
31#if !QT_DEPRECATED_SINCE(6
, 9
)
32# define QT_NO_INHERITABLE_TEXT_STREAM
35#ifdef QT_NO_INHERITABLE_TEXT_STREAM
36# define QT_TEXT_STREAM_FINAL final
38# define QT_TEXT_STREAM_FINAL
44 Q_DECLARE_PRIVATE(QTextStream)
47 enum RealNumberNotation {
69 UppercaseDigits = 0x10
71 Q_DECLARE_FLAGS(NumberFlags, NumberFlag)
74 explicit QTextStream(QIODevice *device);
75 explicit QTextStream(FILE *fileHandle, OpenMode openMode = ReadWrite);
76 explicit QTextStream(QString *string, OpenMode openMode = ReadWrite);
77 explicit QTextStream(QByteArray *array, OpenMode openMode = ReadWrite);
78 explicit QTextStream(
const QByteArray &array, OpenMode openMode = ReadOnly);
80 #if defined(__has_warning
)
81 # if __has_warning
("-Wunnecessary-virtual-specifier")
82 QT_WARNING_DISABLE_CLANG(
"-Wunnecessary-virtual-specifier")
89 void setEncoding(QStringConverter::Encoding encoding);
90 QStringConverter::Encoding encoding()
const;
91 void setAutoDetectUnicode(
bool enabled);
92 bool autoDetectUnicode()
const;
93 void setGenerateByteOrderMark(
bool generate);
94 bool generateByteOrderMark()
const;
96 void setLocale(
const QLocale &locale);
97 QLocale locale()
const;
99 void setDevice(QIODevice *device);
100 QIODevice *device()
const;
102 void setString(QString *string, OpenMode openMode = ReadWrite);
103 QString *string()
const;
105 Status status()
const;
106 void setStatus(Status status);
112 bool seek(qint64 pos);
115 void skipWhiteSpace();
117 QString readLine(qint64 maxlen = 0);
118 bool readLineInto(QString *line, qint64 maxlen = 0);
120 QString read(qint64 maxlen);
122 void setFieldAlignment(FieldAlignment alignment);
123 FieldAlignment fieldAlignment()
const;
125 void setPadChar(QChar ch);
126 QChar padChar()
const;
128 void setFieldWidth(
int width);
129 int fieldWidth()
const;
131 void setNumberFlags(NumberFlags flags);
132 NumberFlags numberFlags()
const;
134 void setIntegerBase(
int base);
135 int integerBase()
const;
137 void setRealNumberNotation(RealNumberNotation notation);
138 RealNumberNotation realNumberNotation()
const;
140 void setRealNumberPrecision(
int precision);
141 int realNumberPrecision()
const;
143 QTextStream &operator>>(QChar &ch);
144 QTextStream &operator>>(
char &ch);
145 QTextStream &operator>>(
char16_t &ch)
146 { QChar c; *
this >> c; ch = c.unicode();
return *
this; }
147 QTextStream &operator>>(
signed short &i);
148 QTextStream &operator>>(
unsigned short &i);
149 QTextStream &operator>>(
signed int &i);
150 QTextStream &operator>>(
unsigned int &i);
151 QTextStream &operator>>(
signed long &i);
152 QTextStream &operator>>(
unsigned long &i);
153 QTextStream &operator>>(qlonglong &i);
154 QTextStream &operator>>(qulonglong &i);
155 QTextStream &operator>>(
float &f);
156 QTextStream &operator>>(
double &f);
157 QTextStream &operator>>(QString &s);
158 QTextStream &operator>>(QByteArray &array);
159 QTextStream &operator>>(
char *c);
161 QTextStream &operator<<(QChar ch);
162 QTextStream &operator<<(
char ch);
163 QTextStream &operator<<(
char16_t ch) {
return *
this << QChar(ch); }
164 QTextStream &operator<<(
signed short i);
165 QTextStream &operator<<(
unsigned short i);
166 QTextStream &operator<<(
signed int i);
167 QTextStream &operator<<(
unsigned int i);
168 QTextStream &operator<<(
signed long i);
169 QTextStream &operator<<(
unsigned long i);
170 QTextStream &operator<<(qlonglong i);
171 QTextStream &operator<<(qulonglong i);
172 QTextStream &operator<<(
float f);
173 QTextStream &operator<<(
double f);
174 QTextStream &operator<<(
const QString &s);
175 QTextStream &operator<<(QStringView s);
176 QTextStream &operator<<(QLatin1StringView s);
177 QTextStream &operator<<(
const QByteArray &array);
178 QTextStream &operator<<(
const char *c);
179 QTextStream &operator<<(
const void *ptr);
181 explicit operator
bool()
const noexcept {
return status() == Ok; }
184 Q_DISABLE_COPY(QTextStream)
185 friend class QDebugStateSaverPrivate;
188 std::unique_ptr<QTextStreamPrivate> d_ptr;
191Q_DECLARE_OPERATORS_FOR_FLAGS(QTextStream::NumberFlags)
194
195
197typedef QTextStream & (*QTextStreamFunction)(QTextStream &);
198typedef void (QTextStream::*QTSMFI)(
int);
199typedef void (QTextStream::*QTSMFC)(QChar);
205 constexpr QTextStreamManipulator(QTSMFI m,
int a)
noexcept : mf(m), mc(
nullptr), arg(a), ch() {}
206 constexpr QTextStreamManipulator(QTSMFC m, QChar c)
noexcept : mf(
nullptr), mc(m), arg(-1), ch(c) {}
207 void exec(QTextStream &s) {
if (mf) { (s.*mf)(arg); }
else { (s.*mc)(ch); } }
223{ m.exec(s);
return s; }
262 QTSMFI func = &QTextStream::setFieldWidth;
263 return QTextStreamManipulator(func,width);
268 QTSMFC func = &QTextStream::setPadChar;
269 return QTextStreamManipulator(func, ch);
274 QTSMFI func = &QTextStream::setRealNumberPrecision;
275 return QTextStreamManipulator(func, precision);
QFileSystemWatcherPathKey(const QFileSystemWatcherPathKey &other)
bool operator==(const QFileSystemWatcherPathKey &other) const
QFileSystemWatcherPathKey(const QString &other)
QFileSystemWatcherPathKey()
~QWindowsFileSystemWatcherEngineThread()
HandleForDirHash handleForDir
void directoryChanged(const QString &path, bool removed)
QList< Qt::HANDLE > handles
QHash< Qt::HANDLE, PathInfoHash > pathInfoForHandle
QWindowsFileSystemWatcherEngineThread()
QHash< QFileSystemWatcherPathKey, QWindowsFileSystemWatcherEngine::PathInfo > PathInfoHash
bool operator!=(const QFileInfo &fileInfo) const
QFile::Permissions permissions
PathInfo & operator=(const QFileInfo &fileInfo)
QStringList addPaths(const QStringList &paths, QStringList *files, QStringList *directories) override
~QWindowsFileSystemWatcherEngine()
void driveLockForRemovalFailed(const QString &)
QStringList removePaths(const QStringList &paths, QStringList *files, QStringList *directories) override
void driveRemoved(const QString &)
void addPath(const QString &path)
void driveLockForRemovalFailed(const QString &)
void driveLockForRemoval(const QString &)
void driveRemoved(const QString &)
~QWindowsRemovableDriveListener()
bool nativeEventFilter(const QByteArray &, void *messageIn, qintptr *) override
This method is called for every native event.
QWindowsRemovableDriveListener(QObject *parent=nullptr)
QT_FORWARD_DECLARE_CLASS(QTextStream)
Combined button and popup list for selecting options.
static Qt::HANDLE createChangeNotification(const QString &path, uint flags)
static Iterator findByHDevNotify(Iterator i1, Iterator i2, HDEVNOTIFY hdevnotify)
static void stopDeviceNotification(QWindowsRemovableDriveListener::RemovableDriveEntry &e)
static QString pathFromEntry(const QWindowsRemovableDriveListener::RemovableDriveEntry &re)
size_t qHash(const QFileSystemWatcherPathKey &key, size_t seed=0)
Q_DECLARE_TYPEINFO(QFileSystemWatcherPathKey, Q_RELOCATABLE_TYPE)
QTextStream & operator>>(QTextStream &s, QTextStreamFunction f)
QTextStreamManipulator qSetPadChar(QChar ch)
QTextStreamManipulator qSetRealNumberPrecision(int precision)
#define QT_TEXT_STREAM_FINAL
QTextStreamManipulator qSetFieldWidth(int width)
QTextStream & operator<<(QTextStream &s, QTextStreamFunction f)