summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2011-10-20 01:23:14 +0200
committerQt by Nokia <qt-info@nokia.com>2012-03-30 01:19:59 +0200
commit8cf66c3bc4482bbefad90ce7ad34ac6c3de8478f (patch)
tree4e695f4733ab07310039d81dd4935a548a48a471
parentf40e934983f0b6685c25472e3cd2764cd177e1e7 (diff)
Add QUrl::setQuery overload with QUrlQuery
Change-Id: I0cba92b6bf7f848f1918383b380c0444b8bead3a Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
-rw-r--r--src/corelib/io/qurl.cpp13
-rw-r--r--src/corelib/io/qurl.h2
-rw-r--r--src/corelib/io/qurlquery.h6
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