241 if (idempotentRecodeToUser(encoding))
244 if (!(encoding & QUrl::EncodeDelimiters)) {
246 if (qt_urlRecode(output, input,
253 ushort actions[] = {
encode(pairDelimiter.unicode()),
encode(valueDelimiter.unicode()),
256 if (qt_urlRecode(output, input, encoding, actions))
263 ushort prettyDecodedActions[] = {
264 decode(pairDelimiter.unicode()),
265 decode(valueDelimiter.unicode()),
271 const QChar *pos = query.constData();
272 const QChar *
const end = pos + query.size();
274 const QChar *begin = pos;
275 const QChar *delimiter =
nullptr;
278 if (!delimiter && *pos == valueDelimiter)
280 if (*pos == pairDelimiter)
291 if (!qt_urlRecode(key, QStringView{begin, delimiter},
292 QUrl::DecodeReserved,
293 prettyDecodedActions))
294 key = QString(begin, delimiter - begin);
296 if (delimiter == pos) {
298 itemList.append(std::make_pair(key, QString()));
299 }
else if (delimiter + 1 == pos) {
301 itemList.append(std::make_pair(key, QString(0, Qt::Uninitialized)));
304 if (!qt_urlRecode(value, QStringView{delimiter + 1, pos},
305 QUrl::DecodeReserved,
306 prettyDecodedActions))
307 value = QString(delimiter + 1, pos - delimiter - 1);
308 itemList.append(std::make_pair(key, value));
414 return lhs.d->valueDelimiter == rhs.d->valueDelimiter &&
415 lhs.d->pairDelimiter == rhs.d->pairDelimiter &&
416 lhs.d->itemList == rhs.d->itemList;
419 return x->valueDelimiter == QUrlQuery::defaultQueryValueDelimiter() &&
420 x->pairDelimiter == QUrlQuery::defaultQueryPairDelimiter() &&
421 x->itemList.isEmpty();