summaryrefslogtreecommitdiffstats
path: root/src/corelib/codecs/qtextcodec.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/codecs/qtextcodec.h')
-rw-r--r--src/corelib/codecs/qtextcodec.h33
1 files changed, 5 insertions, 28 deletions
diff --git a/src/corelib/codecs/qtextcodec.h b/src/corelib/codecs/qtextcodec.h
index 5b502d2a98..03e8f95ce1 100644
--- a/src/corelib/codecs/qtextcodec.h
+++ b/src/corelib/codecs/qtextcodec.h
@@ -40,7 +40,7 @@
#ifndef QTEXTCODEC_H
#define QTEXTCODEC_H
-#include <QtCore/qstring.h>
+#include <QtCore/qstringconverter.h>
#include <QtCore/qlist.h>
QT_REQUIRE_CONFIG(textcodec);
@@ -53,10 +53,13 @@ class QIODevice;
class QTextDecoder;
class QTextEncoder;
-class Q_CORE_EXPORT QTextCodec
+class Q_CORE_EXPORT QTextCodec : public QStringConverterBase
{
Q_DISABLE_COPY(QTextCodec)
public:
+ using ConversionFlags = QStringConverterBase::Flags;
+ using ConverterState = QStringConverterBase::State;
+
static QTextCodec* codecForName(const QByteArray &name);
static QTextCodec* codecForName(const char *name) { return codecForName(QByteArray(name)); }
static QTextCodec* codecForMib(int mib);
@@ -89,31 +92,6 @@ public:
QByteArray fromUnicode(const QString& uc) const;
#endif
QByteArray fromUnicode(QStringView uc) const;
- enum ConversionFlag {
- DefaultConversion,
- ConvertInvalidToNull = 0x80000000,
- IgnoreHeader = 0x1
- };
- Q_DECLARE_FLAGS(ConversionFlags, ConversionFlag)
-
- struct Q_CORE_EXPORT ConverterState {
- ConverterState(ConversionFlags f = DefaultConversion)
- : flags(f), state_data{0, 0, 0, 0} {}
- ~ConverterState();
- ConversionFlags flags;
- int remainingChars = 0;
- int invalidChars = 0;
-
- union {
- uint state_data[4];
- void *d[2];
- };
- void clear();
- using ClearDataFn = void (*)(ConverterState *);
- ClearDataFn clearFn = nullptr;
- private:
- Q_DISABLE_COPY(ConverterState)
- };
QString toUnicode(const char *in, int length, ConverterState *state = nullptr) const
{ return convertToUnicode(in, length, state); }
@@ -137,7 +115,6 @@ protected:
private:
friend struct QCoreGlobalData;
};
-Q_DECLARE_OPERATORS_FOR_FLAGS(QTextCodec::ConversionFlags)
class Q_CORE_EXPORT QTextEncoder {
Q_DISABLE_COPY(QTextEncoder)