diff options
Diffstat (limited to 'tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview_p.h')
-rw-r--r-- | tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview_p.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview_p.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview_p.h new file mode 100644 index 0000000..81ea13d --- /dev/null +++ b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview_p.h @@ -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 |