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