[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