20 #include <QTextStream>
23 using namespace Cutelyst;
29 for (
int i = 0; i < columnsSize.
size(); ++i) {
48 for (
const QString &header : headers) {
53 if (columnsSize.
empty()) {
54 for (
const QString &row : rows) {
57 }
else if (rows.size() != columnsSize.
size()) {
58 qFatal(
"Incomplete table");
64 if (row.size() > columnsSize.
size()) {
65 qFatal(
"Incomplete table");
69 for (
int i = 0; i < row.size(); ++i) {
70 columnsSize[i] = qMax(columnsSize[i], row[i].size());
76 out.setFieldAlignment(QTextStream::AlignLeft);
77 QByteArray div = buildTableDivision(columnsSize);
86 if (!headers.isEmpty()) {
88 for (
int i = 0; i < headers.size(); ++i) {
91 out.setFieldWidth(columnsSize[i]);
105 for (
int i = 0; i < row.size(); ++i) {
108 out.setFieldWidth(columnsSize[i]);
111 out.setFieldWidth(0);
131 char *data = ba.
data();
132 const char *inputPtr = data;
134 const int len = ba.
count();
135 bool skipUtf8 =
true;
137 for (
int i = 0 ; i < len; ++i, ++outlen) {
138 const char c = inputPtr[i];
139 if (c ==
'%' && i + 2 < len) {
140 int a = inputPtr[++i];
141 int b = inputPtr[++i];
143 if (a >=
'0' && a <=
'9') a -=
'0';
144 else if (a >=
'a' && a <=
'f') a = a -
'a' + 10;
145 else if (a >=
'A' && a <=
'F') a = a -
'A' + 10;
147 if (b >=
'0' && b <=
'9') b -=
'0';
148 else if (b >=
'a' && b <=
'f') b = b -
'a' + 10;
149 else if (b >=
'A' && b <=
'F') b = b -
'A' + 10;
151 *data++ = (char)((a << 4) | b);
153 }
else if (c ==
'+') {
172 char *data = ba->
data();
173 const char *inputPtr = data;
175 int len = ba->
count();
176 bool skipUtf8 =
true;
178 for (
int i = 0; i < len; ++i, ++outlen) {
179 const char c = inputPtr[i];
180 if (c ==
'%' && i + 2 < len) {
181 int a = inputPtr[++i];
182 int b = inputPtr[++i];
184 if (a >=
'0' && a <=
'9') a -=
'0';
185 else if (a >=
'a' && a <=
'f') a = a -
'a' + 10;
186 else if (a >=
'A' && a <=
'F') a = a -
'A' + 10;
188 if (b >=
'0' && b <=
'9') b -=
'0';
189 else if (b >=
'a' && b <=
'f') b = b -
'a' + 10;
190 else if (b >=
'A' && b <=
'F') b = b -
'A' + 10;
192 *data++ = (char)((a << 4) | b);
194 }
else if (c ==
'+') {
QByteArray & fill(char ch, int size)
QString fromUtf8(const char *str, int size)
QByteArray toLatin1() const
void push_back(const T &value)
QString fromLatin1(const char *str, int size)