diff options
author | Karsten Heimrich <karsten.heimrich@qt.io> | 2020-06-17 12:33:40 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@qt.io> | 2020-06-20 02:04:38 +0200 |
commit | 18ec53156ee704fdb4977436fccfdc85333e614b (patch) | |
tree | df734ce7893d570f4a90f923fcfe9c80ddc3de05 /src/corelib/codecs/qtextcodec.h | |
parent | 4455de24d453138411c57bae55af18f3fba58d4b (diff) |
Move QTextCodec support out of QtCore
* Assume UTF-8 on all Unix like systems
* Export some functions to be able to compile QTextCodec once
moved to Qt5Compat.
Task-number: QTBUG-75665
Change-Id: I52ec47a848bc0ba72e9c7689668b1bcc5d736c29
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/corelib/codecs/qtextcodec.h')
-rw-r--r-- | src/corelib/codecs/qtextcodec.h | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/src/corelib/codecs/qtextcodec.h b/src/corelib/codecs/qtextcodec.h deleted file mode 100644 index dfca8ac8b8..0000000000 --- a/src/corelib/codecs/qtextcodec.h +++ /dev/null @@ -1,163 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2018 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtCore module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QTEXTCODEC_H -#define QTEXTCODEC_H - -#include <QtCore/qstringconverter.h> -#include <QtCore/qlist.h> - -QT_REQUIRE_CONFIG(textcodec); - -QT_BEGIN_NAMESPACE - -class QTextCodec; -class QIODevice; - -class QTextDecoder; -class QTextEncoder; - -class Q_CORE_EXPORT QTextCodec : public QStringConverterBase -{ - Q_DISABLE_COPY(QTextCodec) -public: - using ConversionFlags = QStringConverterBase::Flags; - using ConverterState = QStringConverterBase::State; - - static constexpr Flag ConvertInvalidToNull = Flag::ConvertInvalidToNull; - static constexpr Flag DefaultConversion = Flag::WriteBom; - static constexpr Flag IgnoreHeader = Flag::ConvertInitialBom; - - static QTextCodec* codecForName(const QByteArray &name); - static QTextCodec* codecForName(const char *name) { return codecForName(QByteArray(name)); } - static QTextCodec* codecForMib(int mib); - - static QList<QByteArray> availableCodecs(); - static QList<int> availableMibs(); - - static QTextCodec* codecForLocale(); - static void setCodecForLocale(QTextCodec *c); - -#if QT_DEPRECATED_SINCE(5, 0) - QT_DEPRECATED static QTextCodec *codecForTr() { return codecForMib(106); /* Utf8 */ } -#endif - - static QTextCodec *codecForHtml(const QByteArray &ba); - static QTextCodec *codecForHtml(const QByteArray &ba, QTextCodec *defaultCodec); - - static QTextCodec *codecForUtfText(const QByteArray &ba); - static QTextCodec *codecForUtfText(const QByteArray &ba, QTextCodec *defaultCodec); - - bool canEncode(QChar) const; -#if QT_STRINGVIEW_LEVEL < 2 - bool canEncode(const QString&) const; -#endif - bool canEncode(QStringView) const; - - QString toUnicode(const QByteArray&) const; - QString toUnicode(const char* chars) const; -#if QT_STRINGVIEW_LEVEL < 2 - QByteArray fromUnicode(const QString& uc) const; -#endif - QByteArray fromUnicode(QStringView uc) const; - - QString toUnicode(const char *in, int length, ConverterState *state = nullptr) const - { return convertToUnicode(in, length, state); } - QByteArray fromUnicode(const QChar *in, int length, ConverterState *state = nullptr) const - { return convertFromUnicode(in, length, state); } - - QTextDecoder* makeDecoder(ConversionFlags flags = DefaultConversion) const; - QTextEncoder* makeEncoder(ConversionFlags flags = DefaultConversion) const; - - virtual QByteArray name() const = 0; - virtual QList<QByteArray> aliases() const; - virtual int mibEnum() const = 0; - -protected: - virtual QString convertToUnicode(const char *in, int length, ConverterState *state) const = 0; - virtual QByteArray convertFromUnicode(const QChar *in, int length, ConverterState *state) const = 0; - - QTextCodec(); - virtual ~QTextCodec(); - -private: - friend struct QTextCodecData; -}; - -class Q_CORE_EXPORT QTextEncoder { - Q_DISABLE_COPY(QTextEncoder) -public: - explicit QTextEncoder(const QTextCodec *codec) : c(codec), state() {} - explicit QTextEncoder(const QTextCodec *codec, QTextCodec::ConversionFlags flags); - ~QTextEncoder(); -#if QT_STRINGVIEW_LEVEL < 2 - QByteArray fromUnicode(const QString& str); -#endif - QByteArray fromUnicode(QStringView str); - QByteArray fromUnicode(const QChar *uc, int len); - bool hasFailure() const; -private: - const QTextCodec *c; - QTextCodec::ConverterState state; -}; - -class Q_CORE_EXPORT QTextDecoder { - Q_DISABLE_COPY(QTextDecoder) -public: - explicit QTextDecoder(const QTextCodec *codec) : c(codec), state() {} - explicit QTextDecoder(const QTextCodec *codec, QTextCodec::ConversionFlags flags); - ~QTextDecoder(); - QString toUnicode(const char* chars, int len); - QString toUnicode(const QByteArray &ba); - void toUnicode(QString *target, const char *chars, int len); - bool hasFailure() const; - bool needsMoreData() const; -private: - const QTextCodec *c; - QTextCodec::ConverterState state; -}; - -namespace Qt -{ - Q_CORE_EXPORT QTextCodec *codecForHtml(const QByteArray &ba); -} - -QT_END_NAMESPACE - -#endif // QTEXTCODEC_H |