diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2011-10-20 01:23:14 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-30 01:19:59 +0200 |
commit | 8cf66c3bc4482bbefad90ce7ad34ac6c3de8478f (patch) | |
tree | 4e695f4733ab07310039d81dd4935a548a48a471 /src/corelib | |
parent | f40e934983f0b6685c25472e3cd2764cd177e1e7 (diff) | |
download | qtbase-8cf66c3bc4482bbefad90ce7ad34ac6c3de8478f.tar.gz |
Add QUrl::setQuery overload with QUrlQuery
Change-Id: I0cba92b6bf7f848f1918383b380c0444b8bead3a
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/io/qurl.cpp | 13 | ||||
-rw-r--r-- | src/corelib/io/qurl.h | 2 | ||||
-rw-r--r-- | src/corelib/io/qurlquery.h | 6 |
3 files changed, 18 insertions, 3 deletions
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index 36411a089e..62d6092c9d 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -199,6 +199,7 @@ #include "qdir.h" // for QDir::fromNativeSeparators #include "qtldurl_p.h" #include "private/qipaddress_p.h" +#include "qurlquery.h" #if defined(Q_OS_WINCE_WM) #pragma optimize("g", off) #endif @@ -1725,6 +1726,18 @@ void QUrl::setQuery(const QString &query) d->sectionIsPresent &= ~QUrlPrivate::Query; } +void QUrl::setQuery(const QUrlQuery &query) +{ + detach(); + + // we know the data is in the right format + d->query = query.toString(); + if (query.isEmpty()) + d->sectionIsPresent &= ~QUrlPrivate::Query; + else + d->sectionIsPresent |= QUrlPrivate::Query; +} + /*! Returns the query string of the URL in percent encoded form. */ diff --git a/src/corelib/io/qurl.h b/src/corelib/io/qurl.h index d96f9d11e1..a118a9d468 100644 --- a/src/corelib/io/qurl.h +++ b/src/corelib/io/qurl.h @@ -53,6 +53,7 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE +class QUrlQuery; class QUrlPrivate; class QDataStream; @@ -213,6 +214,7 @@ public: bool hasQuery() const; void setQuery(const QString &query); + void setQuery(const QUrlQuery &query); QString query(ComponentFormattingOptions = PrettyDecoded) const; bool hasFragment() const; diff --git a/src/corelib/io/qurlquery.h b/src/corelib/io/qurlquery.h index 3e0baa32bc..ff66298dfa 100644 --- a/src/corelib/io/qurlquery.h +++ b/src/corelib/io/qurlquery.h @@ -116,9 +116,9 @@ Q_DECLARE_SHARED(QUrlQuery) #if QT_DEPRECATED_SINCE(5,0) inline void QUrl::setQueryItems(const QList<QPair<QString, QString> > &qry) -{ QUrlQuery q(*this); q.setQueryItems(qry); setQuery(q.query()); } +{ QUrlQuery q(*this); q.setQueryItems(qry); setQuery(q); } inline void QUrl::addQueryItem(const QString &key, const QString &value) -{ QUrlQuery q(*this); q.addQueryItem(key, value); setQuery(q.query()); } +{ QUrlQuery q(*this); q.addQueryItem(key, value); setQuery(q); } inline QList<QPair<QString, QString> > QUrl::queryItems() const { return QUrlQuery(*this).queryItems(); } inline bool QUrl::hasQueryItem(const QString &key) const @@ -128,7 +128,7 @@ inline QString QUrl::queryItemValue(const QString &key) const inline QStringList QUrl::allQueryItemValues(const QString &key) const { return QUrlQuery(*this).allQueryItemValues(key); } inline void QUrl::removeQueryItem(const QString &key) -{ QUrlQuery q(*this); q.removeQueryItem(key); setQuery(q.query()); } +{ QUrlQuery q(*this); q.removeQueryItem(key); setQuery(q); } inline void QUrl::removeAllQueryItems(const QString &key) { QUrlQuery q(*this); q.removeAllQueryItems(key); } #endif |