#else
-void QWebFrame::load(const QNetworkRequest &req)
+void QWebFrame::load(const QNetworkRequest &req,
+ QNetworkAccessManager::Operation operation,
+ const QByteArray &body)
{
if (d->parentFrame())
d->page->d->insideOpenCall = true;
QUrl url = req.url();
- QByteArray postData; // ### FIXME = req.postData();
WebCore::ResourceRequest request(KURL(url.toString()));
- // ### FIXME httpHeader.method();
+ switch (operation) {
+ case QNetworkAccessManager::HeadOperation:
+ request.setHTTPMethod("HEAD");
+ break;
+ case QNetworkAccessManager::GetOperation:
+ request.setHTTPMethod("GET");
+ break;
+ case QNetworkAccessManager::PutOperation:
+ request.setHTTPMethod("PUT");
+ break;
+ case QNetworkAccessManager::PostOperation:
+ request.setHTTPMethod("POST");
+ break;
+ case QNetworkAccessManager::UnknownOperation:
+ // eh?
+ break;
+ }
QList<QByteArray> httpHeaders = req.rawHeaderList();
for (int i = 0; i < httpHeaders.size(); ++i) {
request.addHTTPHeaderField(QString::fromLatin1(headerName), QString::fromLatin1(req.rawHeader(headerName)));
}
- if (!postData.isEmpty()) {
- WTF::RefPtr<WebCore::FormData> formData = new WebCore::FormData(postData.constData(), postData.size());
+ if (!body.isEmpty()) {
+ WTF::RefPtr<WebCore::FormData> formData = new WebCore::FormData(body.constData(), body.size());
request.setHTTPBody(formData);
}
#include <QtCore/qobject.h>
#include <QtCore/qurl.h>
+#if QT_VERSION >= 0x040400
+#include <QtNetwork/qnetworkaccessmanager.h>
+#endif
#include "qwebkitglobal.h"
class QRect;
#if QT_VERSION < 0x040400
void load(const QWebNetworkRequest &request);
#else
- void load(const QNetworkRequest &request);
+ void load(const QNetworkRequest &request,
+ QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation,
+ const QByteArray &body = QByteArray());
#endif
void setHtml(const QString &html, const QUrl &baseUrl = QUrl());
void setHtml(const QByteArray &html, const QUrl &baseUrl = QUrl());
#if QT_VERSION < 0x040400
void QWebView::load(const QWebNetworkRequest &request)
#else
-void QWebView::load(const QNetworkRequest &request)
+void QWebView::load(const QNetworkRequest &request,
+ QNetworkAccessManager::Operation operation,
+ const QByteArray &body)
#endif
{
- page()->mainFrame()->load(request);
+ page()->mainFrame()->load(request
+#if QT_VERSION >= 0x040400
+ , operation, body
+#endif
+ );
}
/*!
#include "qwebkitglobal.h"
#include "qwebpage.h"
#include <QtGui/qwidget.h>
+#if QT_VERSION >= 0x040400
+#include <QtNetwork/qnetworkaccessmanager.h>
+#endif
class QWebPage;
class QWebViewPrivate;
#if QT_VERSION < 0x040400
void load(const QWebNetworkRequest &request);
#else
- void load(const QNetworkRequest &request);
+ void load(const QNetworkRequest &request,
+ QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation,
+ const QByteArray &body = QByteArray());
#endif
void setHtml(const QString &html, const QUrl &baseUrl = QUrl());
void setHtml(const QByteArray &html, const QUrl &baseUrl = QUrl());
+2008-01-07 Simon Hausmann <hausmann@webkit.org>
+
+ Reviewed by Lars.
+
+ Added the missing parameters to make it possible to do POST operations from the public API.
+
+ This is ugly though as it also requires including qnetworkaccessmanager.h. It would be nicer if the
+ two extra arguments were in QNetworkRequest :-/
+
+
+ * Api/qwebframe.cpp:
+ (QWebFrame::load):
+ * Api/qwebframe.h:
+ * Api/qwebview.cpp:
+ (QWebView::load):
+ * Api/qwebview.h:
+
2008-01-07 Simon Hausmann <hausmann@webkit.org>
Reviewed by Lars.