1 /*
2 * Replacement fot QT Bindings that were removed from QT5
3 * Copyright (C) 2020 Pedro de Carvalho Gomes <pedrogomes81@gmail.com>
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 #include "CoreTextCodec.h"
20
21 #include <QJSEngine>
22
23 using namespace QtBindings::Core;
24
TextCodec()25 TextCodec::TextCodec() : TextCodec( nullptr )
26 {
27 }
28
TextCodec(const QTextCodec * codec)29 TextCodec::TextCodec(const QTextCodec *codec)
30 {
31 if ( codec != nullptr ) {
32 internal = codec;
33 } else {
34 internal = QTextCodec::codecForLocale();
35 }
36 }
37
TextCodec(const TextCodec & codec)38 TextCodec::TextCodec(const TextCodec &codec) : TextCodec( dynamic_cast<const QTextCodec*>(&codec) )
39 {
40 }
41
~TextCodec()42 TextCodec::~TextCodec()
43 {
44 }
45
aliases() const46 QList<QByteArray> TextCodec::aliases() const
47 {
48 return internal->aliases();
49 }
50
canEncode(QChar ch) const51 bool TextCodec::canEncode(QChar ch) const
52 {
53 return internal->canEncode(ch);
54 }
55
canEncode(const QString & s) const56 bool TextCodec::canEncode(const QString &s) const
57 {
58 return internal->canEncode(s);
59 }
60
fromUnicode(const QString & str) const61 ByteArray TextCodec::fromUnicode(const QString &str) const
62 {
63 return ByteArray( internal->fromUnicode(str) );
64 }
65
66 ByteArray
fromUnicode(const QChar * input,int number,QTextCodec::ConverterState * state) const67 TextCodec::fromUnicode(const QChar *input, int number, QTextCodec::ConverterState *state) const
68 {
69 return ByteArray( internal->fromUnicode(input, number, state) );
70 }
71
72 /*
73 QTextDecoder *TextCodec::makeDecoder(QTextCodec::ConversionFlags flags) const
74 {
75 return internal->makeDecoder(flags);
76 }
77
78 QTextEncoder *TextCodec::makeEncoder(QTextCodec::ConversionFlags flags) const
79 {
80 return internal->makeEncoder(flags);
81 }
82 */
83
mibEnum()84 int TextCodec::mibEnum()
85 {
86 return internal->mibEnum();
87 }
88
name()89 ByteArray TextCodec::name()
90 {
91 return ByteArray( internal->name() );
92 }
93
toUnicode(const ByteArray & a) const94 QString TextCodec::toUnicode(const ByteArray &a) const
95 {
96 return internal->toUnicode(a);
97 }
98
toUnicode(const char * chars) const99 QString TextCodec::toUnicode(const char *chars) const
100 {
101 return internal->toUnicode(chars);
102 }
103
104 QString
toUnicode(const char * input,int size,QTextCodec::ConverterState * state) const105 TextCodec::toUnicode(const char *input, int size, QTextCodec::ConverterState *state) const
106 {
107 return internal->toUnicode(input, size, state);
108 }
109
availableCodecs()110 QList<QByteArray> TextCodec::availableCodecs()
111 {
112 return QTextCodec::availableCodecs();
113 }
114
availableMibs()115 QList<int> TextCodec::availableMibs()
116 {
117 return QTextCodec::availableMibs();
118 }
119
codecForHtml(const ByteArray & ba,QTextCodec * defaultCodec)120 TextCodec TextCodec::codecForHtml(const ByteArray &ba, QTextCodec *defaultCodec)
121 {
122 return TextCodec( QTextCodec::codecForHtml(ba,defaultCodec) );
123 }
124
codecForHtml(const ByteArray & ba)125 TextCodec TextCodec::codecForHtml(const ByteArray &ba)
126 {
127 return QTextCodec::codecForHtml(ba);
128 }
129
codecForLocale()130 TextCodec TextCodec::codecForLocale()
131 {
132 return QTextCodec::codecForLocale();
133 }
134
codecForMib(int mib)135 TextCodec TextCodec::codecForMib(int mib)
136 {
137 return QTextCodec::codecForMib(mib);
138 }
139
codecForName(const ByteArray & name)140 TextCodec TextCodec::codecForName(const ByteArray &name)
141 {
142 return QTextCodec::codecForName(name);
143 }
144
codecForName(const char * name)145 TextCodec TextCodec::codecForName(const char *name)
146 {
147 return QTextCodec::codecForName(name);
148 }
149
codecForUtfText(const ByteArray & ba,QTextCodec * defaultCodec)150 TextCodec TextCodec::codecForUtfText(const ByteArray &ba, QTextCodec *defaultCodec)
151 {
152 return QTextCodec::codecForUtfText(ba,defaultCodec);
153 }
154
codecForUtfText(const ByteArray & ba)155 TextCodec TextCodec::codecForUtfText(const ByteArray &ba)
156 {
157 return QTextCodec::codecForUtfText(ba);
158 }
159
setCodecForLocale(QTextCodec * c)160 void TextCodec::setCodecForLocale(QTextCodec *c)
161 {
162 QTextCodec::setCodecForLocale(c);
163 }
164
operator =(const TextCodec & other)165 TextCodec &TextCodec::operator=(const TextCodec &other)
166 {
167 if (this != &other) {
168 internal = other.internal;
169 }
170 return *this;
171 }
172