diff options
Diffstat (limited to 'src/corelib/io/qurl.cpp')
-rw-r--r-- | src/corelib/io/qurl.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index db70fa86be..1a266702eb 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -836,7 +836,8 @@ recodeFromUser(const QString &input, const ushort *actions, int from, int to) static inline void appendToUser(QString &appendTo, QStringView value, QUrl::FormattingOptions options, const ushort *actions) { - if (options == QUrl::PrettyDecoded) { + // Test ComponentFormattingOptions, ignore FormattingOptions. + if ((options & 0xFFFF0000) == QUrl::PrettyDecoded) { appendTo += value; return; } @@ -3276,9 +3277,10 @@ QString QUrl::toString(FormattingOptions options) const // also catches isEmpty() return url; } - if (options == QUrl::FullyDecoded) { + if ((options & QUrl::FullyDecoded) == QUrl::FullyDecoded) { qWarning("QUrl: QUrl::FullyDecoded is not permitted when reconstructing the full URL"); - options = QUrl::PrettyDecoded; + options &= ~QUrl::FullyDecoded; + //options |= QUrl::PrettyDecoded; // no-op, value is 0 } // return just the path if: @@ -3291,7 +3293,7 @@ QString QUrl::toString(FormattingOptions options) const && (!d->hasQuery() || options.testFlag(QUrl::RemoveQuery)) && (!d->hasFragment() || options.testFlag(QUrl::RemoveFragment)) && isLocalFile()) { - url = d->toLocalFile(options); + url = d->toLocalFile(options | QUrl::FullyDecoded); return url; } |