tests/benchmarks/uimodels/GraphicsViewBenchmark/widgets/webview_p.h
changeset 3 41300fa6a67c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/benchmarks/uimodels/GraphicsViewBenchmark/widgets/webview_p.h	Tue Feb 02 00:43:10 2010 +0200
@@ -0,0 +1,58 @@
+#ifndef WEBVIEW_P_H
+#define WEBVIEW_P_H
+
+#include "webview.h"
+#include <QtWebKit/qgraphicswebview.h>
+#include <QtWebKit/qwebpage.h>
+#include <QtWebKit/qwebframe.h>
+#include <QGraphicsEffect>
+#include <QPainter>
+#include <QPixmapCache>
+#include <QTimer>
+#include <QDebug>
+
+class WebViewCache;
+
+class WebViewPrivate {
+public:
+
+    WebViewPrivate(WebView *w);
+    void adjustSize();
+    void _q_loadStarted();
+    void _q_loadProgress(int);
+    void _q_loadFinished(bool);
+    void _q_viewportChanged(QGraphicsWidget*);
+    void _q_motionEnded();
+
+    WebView *q;
+    QGraphicsWebView *web;
+    WebViewCache *cache;
+    QTimer motionTimer;
+};
+
+class WebViewCache : public QGraphicsEffect 
+{
+    Q_OBJECT
+
+public:
+
+    WebViewCache(QGraphicsWebView *webView);
+    virtual ~WebViewCache();
+
+public:
+
+    void refresh();
+
+    void draw(QPainter * painter, QGraphicsEffectSource * source);
+
+private:
+
+    QVector<QRectF> m_tileRects;
+    QVector<QPixmapCache::Key> m_tilePixmaps;
+    QSizeF m_itemSize;
+    QGraphicsWebView *m_webView;
+
+    friend class WebViewPrivate;
+};
+
+#endif // WEBVIEW_P_H