diff options
author | David Faure <faure@kde.org> | 2012-01-26 01:57:59 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-28 13:08:50 +0100 |
commit | 27d9fef14acdc33126004f4de3047d3344448a7d (patch) | |
tree | 8b43ea19d22ecc424ebe2ae8176dbd5a426762ee /src | |
parent | e650dd3b6d8212d2c54ddb4a50558b508d0bf2b9 (diff) |
QUrl: deprecate setEncodedUrl() and fromEncoded(), add url().
setEncodedUrl() isn't necessary anymore now that setUrl can handle
encoded (and partially encoded) urls.
url() is added for symmetry with setUrl().
Change-Id: I4e671482a5635a86797421ca50882db9cd60d852
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/io/qurl.cpp | 65 | ||||
-rw-r--r-- | src/corelib/io/qurl.h | 13 |
2 files changed, 48 insertions, 30 deletions
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index 5e76168bd8..1ef2cb9dab 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -114,9 +114,6 @@ \list \o When creating an QString to contain a URL from a QByteArray or a char*, always use QString::fromUtf8(). - \o Favor the use of QUrl::fromEncoded() and QUrl::toEncoded() instead of - QUrl(string) and QUrl::toString() when converting a QUrl to or from - a string. \endlist \sa QUrlInfo @@ -318,6 +315,7 @@ public: QString userInfo(QUrl::FormattingOptions options = QUrl::None) const; void setEncodedAuthority(const QByteArray &authority); void setEncodedUserInfo(const QUrlParseData *parseData); + void setEncodedUrl(const QByteArray&, QUrl::ParsingMode); QByteArray mergePaths(const QByteArray &relativePath) const; @@ -4185,11 +4183,7 @@ QString QUrlPrivate::createErrorString() \snippet doc/src/snippets/code/src_corelib_io_qurl.cpp 0 - To construct a URL from an encoded string, call fromEncoded(): - - \snippet doc/src/snippets/code/src_corelib_io_qurl.cpp 1 - - \sa setUrl(), setEncodedUrl(), fromEncoded(), TolerantMode + \sa setUrl(), TolerantMode */ QUrl::QUrl(const QString &url, ParsingMode parsingMode) : d(0) { @@ -4294,7 +4288,7 @@ void QUrl::setUrl(const QString &url, ParsingMode parsingMode) { detach(); - setEncodedUrl(url.toUtf8(), parsingMode); + d->setEncodedUrl(url.toUtf8(), parsingMode); if (isValid() || parsingMode == StrictMode) return; @@ -4327,7 +4321,7 @@ void QUrl::setUrl(const QString &url, ParsingMode parsingMode) } else { encodedUrl = toPercentEncodingHelper(tmp, ABNF_reserved); } - setEncodedUrl(encodedUrl, StrictMode); + d->setEncodedUrl(encodedUrl, StrictMode); } inline static bool isHex(char c) @@ -4342,6 +4336,7 @@ static inline char toHex(quint8 c) } /*! + \fn void QUrl::setEncodedUrl(const QByteArray &encodedUrl, ParsingMode parsingMode) Constructs a URL by parsing the contents of \a encodedUrl. \a encodedUrl is assumed to be a URL string in percent encoded @@ -4349,16 +4344,17 @@ static inline char toHex(quint8 c) The parsing mode \a parsingMode is used for parsing \a encodedUrl. - Use isValid() to determine if a valid URL was constructed. + \obsolete Use setUrl(QString::fromUtf8(encodedUrl), parsingMode) \sa setUrl() */ -void QUrl::setEncodedUrl(const QByteArray &encodedUrl, ParsingMode parsingMode) + + +void QUrlPrivate::setEncodedUrl(const QByteArray &encodedUrl, QUrl::ParsingMode parsingMode) { QByteArray tmp = encodedUrl; - if (!d) d = new QUrlPrivate; - else d->clear(); - if ((d->parsingMode = parsingMode) == TolerantMode) { + clear(); + if ((parsingMode = parsingMode) == QUrl::TolerantMode) { // Replace stray % with %25 QByteArray copy = tmp; for (int i = 0, j = 0; i < copy.size(); ++i, ++j) { @@ -4409,7 +4405,7 @@ void QUrl::setEncodedUrl(const QByteArray &encodedUrl, ParsingMode parsingMode) } } - d->encodedOriginal = tmp; + encodedOriginal = tmp; } /*! @@ -5687,7 +5683,9 @@ static QString toPrettyPercentEncoding(const QString &input, bool forFragment) The resulting QString can be passed back to a QUrl later on. - \sa FormattingOptions, toEncoded() + Synonym for url(options). + + \sa FormattingOptions, toEncoded(), url() */ QString QUrl::toString(FormattingOptions options) const { @@ -5734,6 +5732,22 @@ QString QUrl::toString(FormattingOptions options) const } /*! + Returns the human-displayable string representation of the + URL. The output can be customized by passing flags with \a + options. + + The resulting QString can be passed back to a QUrl later on. + + Synonym for toString(options). + + \sa FormattingOptions, toEncoded(), toString() +*/ +QString QUrl::url(FormattingOptions options) const +{ + return toString(options); +} + +/*! Returns the encoded representation of the URL if it's valid; otherwise an empty QByteArray is returned. The output can be customized by passing flags with \a options. @@ -5749,19 +5763,18 @@ QByteArray QUrl::toEncoded(FormattingOptions options) const } /*! + \fn QUrl QUrl::fromEncoded(const QByteArray &input, ParsingMode parsingMode) + \obsolete + Parses \a input and returns the corresponding QUrl. \a input is assumed to be in encoded form, containing only ASCII characters. The URL is parsed using \a parsingMode. + Use QUrl(QString::fromUtf8(input), parsingMode) instead. + \sa toEncoded(), setUrl() */ -QUrl QUrl::fromEncoded(const QByteArray &input, ParsingMode parsingMode) -{ - QUrl tmp; - tmp.setEncodedUrl(input, parsingMode); - return tmp; -} /*! Returns a decoded copy of \a input. \a input is first decoded from @@ -6215,7 +6228,7 @@ QDataStream &operator>>(QDataStream &in, QUrl &url) { QByteArray u; in >> u; - url = QUrl::fromEncoded(u); + url = QUrl(QString::fromUtf8(u)); return in; } #endif // QT_NO_DATASTREAM @@ -6319,8 +6332,8 @@ QUrl QUrl::fromUserInput(const QString &userInput) if (QDir::isAbsolutePath(trimmedString)) return QUrl::fromLocalFile(trimmedString); - QUrl url = QUrl::fromEncoded(trimmedString.toUtf8(), QUrl::TolerantMode); - QUrl urlPrepended = QUrl::fromEncoded("http://" + trimmedString.toUtf8(), QUrl::TolerantMode); + QUrl url(trimmedString, QUrl::TolerantMode); + QUrl urlPrepended(QString::fromLatin1("http://") + trimmedString, QUrl::TolerantMode); // Check the most common case of a valid url with scheme and host // We check if the port would be valid by adding the scheme to handle the case host:port diff --git a/src/corelib/io/qurl.h b/src/corelib/io/qurl.h index cc56a903c4..c1ca3d953c 100644 --- a/src/corelib/io/qurl.h +++ b/src/corelib/io/qurl.h @@ -100,7 +100,8 @@ public: inline void swap(QUrl &other) { qSwap(d, other.d); } void setUrl(const QString &url, ParsingMode mode = TolerantMode); - void setEncodedUrl(const QByteArray &url, ParsingMode mode = TolerantMode); + QString url(FormattingOptions options = None) const; + QString toString(FormattingOptions options = None) const; bool isValid() const; @@ -185,10 +186,7 @@ public: QString toLocalFile() const; bool isLocalFile() const; - QString toString(FormattingOptions options = None) const; - QByteArray toEncoded(FormattingOptions options = None) const; - static QUrl fromEncoded(const QByteArray &url, ParsingMode mode = TolerantMode); static QUrl fromUserInput(const QString &userInput); @@ -212,6 +210,13 @@ public: QString errorString() const; +#if QT_DEPRECATED_SINCE(5,0) + QT_DEPRECATED void setEncodedUrl(const QByteArray &url, ParsingMode mode = TolerantMode) + { setUrl(QString::fromUtf8(url), mode); } + QT_DEPRECATED static QUrl fromEncoded(const QByteArray &url, ParsingMode mode = TolerantMode) + { return QUrl(QString::fromUtf8(url), mode); } +#endif + private: QUrlPrivate *d; public: |