240 if (idempotentRecodeToUser(encoding))
243 if (!(encoding & QUrl::EncodeDelimiters)) {
245 if (qt_urlRecode(output, input,
252 ushort actions[] = {
encode(pairDelimiter.unicode()),
encode(valueDelimiter.unicode()),
255 if (qt_urlRecode(output, input, encoding, actions))
262 ushort prettyDecodedActions[] = {
263 decode(pairDelimiter.unicode()),
264 decode(valueDelimiter.unicode()),
270 const QChar *pos = query.constData();
271 const QChar *
const end = pos + query.size();
273 const QChar *begin = pos;
274 const QChar *delimiter =
nullptr;
277 if (!delimiter && *pos == valueDelimiter)
279 if (*pos == pairDelimiter)
290 if (!qt_urlRecode(key, QStringView{begin, delimiter},
291 QUrl::DecodeReserved,
292 prettyDecodedActions))
293 key = QString(begin, delimiter - begin);
295 if (delimiter == pos) {
297 itemList.append(std::make_pair(key, QString()));
298 }
else if (delimiter + 1 == pos) {
300 itemList.append(std::make_pair(key, QString(0, Qt::Uninitialized)));
303 if (!qt_urlRecode(value, QStringView{delimiter + 1, pos},
304 QUrl::DecodeReserved,
305 prettyDecodedActions))
306 value = QString(delimiter + 1, pos - delimiter - 1);
307 itemList.append(std::make_pair(key, value));
416 return lhs.d->valueDelimiter == rhs.d->valueDelimiter &&
417 lhs.d->pairDelimiter == rhs.d->pairDelimiter &&
418 lhs.d->itemList == rhs.d->itemList;
421 return x->valueDelimiter == QUrlQuery::defaultQueryValueDelimiter() &&
422 x->pairDelimiter == QUrlQuery::defaultQueryPairDelimiter() &&
423 x->itemList.isEmpty();