21 #include <QtGui/QApplication>
22 #include <QtGui/QStyleOptionGraphicsItem>
25 #include <QtWebKit/QWebFrame>
26 #include <QtWebKit/QWebPage>
28 #include <QtCore/QTimer>
30 #include <config-plasma.h>
33 #include <kio/accessmanager.h>
41 #include "private/animablegraphicswebview_p.h"
49 WebViewPrivate(WebView *parent)
54 void loadingFinished(
bool success);
55 void dragTimeoutExpired();
58 AnimableGraphicsWebView *webView;
59 ScrollWidget *scrollWidget;
65 d(new WebViewPrivate(this))
68 setAcceptTouchEvents(
true);
69 setAcceptsHoverEvents(
true);
70 setFlags(QGraphicsItem::ItemIsFocusable);
73 d->webView =
new AnimableGraphicsWebView(d->scrollWidget);
74 d->scrollWidget->setWidget(d->webView);
75 d->scrollWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
76 d->scrollWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
78 QPalette palette = qApp->palette();
79 palette.setBrush(QPalette::Base, Qt::transparent);
80 d->webView->page()->setPalette(palette);
82 d->webView->page()->setNetworkAccessManager(
new KIO::AccessManager(d->webView->page()));
88 this, SLOT(loadingFinished(
bool)));
101 d->webView->load(url);
106 return d->webView->url();
112 d->webView->setContent(html, QString(), baseUrl);
118 d->webView->setHtml(html, baseUrl);
123 return d->webView->page()->mainFrame()->toHtml();
129 return QRectF(pos(), d->webView->page()->mainFrame()->geometry().size());
137 return d->webView->page()->mainFrame()->contentsSize();
142 d->webView->setScrollPosition(position);
147 return d->webView->scrollPosition();
152 return d->webView->page()->mainFrame()->geometry();
157 return d->webView->zoomFactor();
162 d->webView->setZoomFactor(zoom);
167 d->webView->setPage(page);
172 return d->webView->page();
177 return d->webView->page()->mainFrame();
190 d->webView->setDragToScroll(drag);
191 d->scrollWidget->setFiltersChildEvents(drag);
196 return d->webView->dragToScroll();
206 d->webView->forward();
211 d->webView->reload();
301 if (change == QGraphicsItem::ItemSceneHasChanged) {
313 d->scrollWidget->setGeometry(QRectF(0, 0, geometry.width(), geometry.height()));
314 d->webView->setGeometry(d->scrollWidget->viewportGeometry());
319 if (which == Qt::PreferredSize) {
320 return d->webView->page()->mainFrame()->contentsSize();
326 void WebViewPrivate::loadingFinished(
bool success)
330 emit q->loadFinished(success);
336 #include "webview.moc"