15 #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) 20 for (
int i = 0; i < columnsSize.
size(); ++i) {
41 for (
const QString &header : headers) {
46 if (columnsSize.
empty()) {
47 for (
const QString &row : rows) {
50 }
else if (rows.size() != columnsSize.
size()) {
51 qFatal(
"Incomplete table");
57 if (row.size() > columnsSize.
size()) {
58 qFatal(
"Incomplete table");
62 for (
int i = 0; i < row.size(); ++i) {
63 columnsSize[i] = qMax(columnsSize[i], row[i].size());
68 #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) 75 QByteArray div = buildTableDivision(columnsSize);
84 if (!headers.isEmpty()) {
86 for (
int i = 0; i < headers.size(); ++i) {
89 out.setFieldWidth(columnsSize[i]);
103 for (
int i = 0; i < row.size(); ++i) {
106 out.setFieldWidth(columnsSize[i]);
109 out.setFieldWidth(0);
129 char *data = ba.
data();
130 const char *inputPtr = data;
132 const int len = ba.
count();
133 bool skipUtf8 =
true;
135 for (
int i = 0; i < len; ++i, ++outlen) {
136 const char c = inputPtr[i];
137 if (c ==
'%' && i + 2 < len) {
138 int a = inputPtr[++i];
139 int b = inputPtr[++i];
141 if (a >=
'0' && a <=
'9')
143 else if (a >=
'a' && a <=
'f')
145 else if (a >=
'A' && a <=
'F')
148 if (b >=
'0' && b <=
'9')
150 else if (b >=
'a' && b <=
'f')
152 else if (b >=
'A' && b <=
'F')
155 *data++ = (char) ((a << 4) | b);
157 }
else if (c ==
'+') {
180 const char *inputPtr = data;
183 bool skipUtf8 =
true;
187 auto processKeyPair = [&] {
189 if ((data - from) == 0) {
198 }
else if ((data - from) > 0) {
205 for (
int i = 0; i < len; ++i, ++outlen) {
206 const char c = inputPtr[i];
207 if (c ==
'%' && i + 2 < len) {
208 int a = inputPtr[++i];
209 int b = inputPtr[++i];
211 if (a >=
'0' && a <=
'9')
213 else if (a >=
'a' && a <=
'f')
215 else if (a >=
'A' && a <=
'F')
218 if (b >=
'0' && b <=
'9')
220 else if (b >=
'a' && b <=
'f')
222 else if (b >=
'A' && b <=
'F')
225 *data++ = (char) ((a << 4) | b);
227 }
else if (c ==
'+') {
229 }
else if (c ==
'=') {
231 :
QString::fromUtf8(from, data - from);
235 }
else if (c ==
'&') {
257 char *data = ba->
data();
258 const char *inputPtr = data;
260 int len = ba->
count();
261 bool skipUtf8 =
true;
263 for (
int i = 0; i < len; ++i, ++outlen) {
264 const char c = inputPtr[i];
265 if (c ==
'%' && i + 2 < len) {
266 int a = inputPtr[++i];
267 int b = inputPtr[++i];
269 if (a >=
'0' && a <=
'9')
271 else if (a >=
'a' && a <=
'f')
273 else if (a >=
'A' && a <=
'F')
276 if (b >=
'0' && b <=
'9')
278 else if (b >=
'a' && b <=
'f')
280 else if (b >=
'A' && b <=
'F')
283 *data++ = (char) ((a << 4) | b);
285 }
else if (c ==
'+') {
void push_back(parameter_type value)
QByteArray & fill(char ch, qsizetype size)
bool isEmpty() const const
QString fromUtf8(QByteArrayView str)
qsizetype size() const const
bool isEmpty() const const
bool isEmpty() const const
The Cutelyst namespace holds all public Cutelyst API.
qsizetype count() const const
QString fromLatin1(QByteArrayView str)
QByteArray toLatin1() const const
iterator insertMulti(const Key &key, const T &value)