[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/libs/webkitkde
From: Simon Hausmann <hausmann () kde ! org>
Date: 2007-06-11 14:01:39
Message-ID: 1181570499.350949.24615.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 673962 by hausmann:
Forward navigation requests up to Konqueror through the openUrlRequest signal.
M +27 -3 webkitpart.cpp
M +18 -2 webkitpart.h
--- trunk/playground/libs/webkitkde/webkitpart.cpp #673961:673962
@@ -25,14 +25,12 @@
#include <KDE/KParts/GenericFactory>
#include <KDE/KAboutData>
-#include <qwebpage.h>
-
#include "kwebnetworkinterface.h"
WebKitPart::WebKitPart(QWidget *parentWidget, QObject *parent, const QStringList \
&/*args*/) : KParts::ReadOnlyPart(parent)
{
- webPage = new QWebPage(parentWidget);
+ webPage = new WebPage(this, parentWidget);
webPage->setNetworkInterface(new KWebNetworkInterface(this));
setWidget(webPage);
@@ -84,6 +82,20 @@
emit completed();
}
+QWebPage::NavigationRequestResponse WebKitPart::navigationRequested(const QUrl &url, \
const QHttpRequestHeader &request, const QByteArray &postData) +{
+ KParts::URLArgs args;
+ args.postData = postData;
+ if (!postData.isEmpty())
+ args.setDoPost(true);
+
+ args.metaData().unite(KWebNetworkInterface::metaDataForRequest(request));
+
+ emit browserExtension->openUrlRequest(url, args);
+
+ return QWebPage::IgnoreNavigationRequest;
+}
+
KAboutData *WebKitPart::createAboutData()
{
return new KAboutData("webkitpart", I18N_NOOP("Webkit HTML Component"),
@@ -92,6 +104,18 @@
I18N_NOOP("Copyright (c) 2007 Trolltech ASA"));
}
+WebPage::WebPage(WebKitPart *wpart, QWidget *parent)
+ : QWebPage(parent), part(wpart)
+{
+}
+
+QWebPage::NavigationRequestResponse WebPage::navigationRequested(QWebFrame *frame, \
const QUrl &url, const QHttpRequestHeader &request, const QByteArray &postData) +{
+ if (frame != mainFrame())
+ return AcceptNavigationRequest;
+ return part->navigationRequested(url, request, postData);
+}
+
WebKitBrowserExtension::WebKitBrowserExtension(WebKitPart *parent)
: KParts::BrowserExtension(parent)
{
--- trunk/playground/libs/webkitkde/webkitpart.h #673961:673962
@@ -25,7 +25,9 @@
#include <KDE/KParts/ReadOnlyPart>
#include <KDE/KParts/BrowserExtension>
-class QWebPage;
+#include <qwebpage.h>
+
+class WebPage;
class QWebFrame;
class KAboutData;
class WebKitBrowserExtension;
@@ -41,6 +43,8 @@
virtual bool openUrl(const KUrl &url);
virtual bool closeUrl();
+ QWebPage::NavigationRequestResponse navigationRequested(const QUrl &url, const \
QHttpRequestHeader &request, const QByteArray &postData); +
static KAboutData *createAboutData();
protected:
@@ -51,10 +55,22 @@
void frameFinished(QWebFrame *frame);
private:
- QWebPage *webPage;
+ WebPage *webPage;
WebKitBrowserExtension *browserExtension;
};
+class WebPage : public QWebPage
+{
+public:
+ WebPage(WebKitPart *wpart, QWidget *parent);
+
+protected:
+ virtual NavigationRequestResponse navigationRequested(QWebFrame *frame, const \
QUrl &url, const QHttpRequestHeader &request, const QByteArray &postData); +
+private:
+ WebKitPart *part;
+};
+
class WebKitBrowserExtension : public KParts::BrowserExtension
{
Q_OBJECT
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic