From 9892d840c1d2219f3f86f55d9d35d4f79d56c8a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20E=2E=20Narv=C3=A1ez?= Date: Sat, 14 Apr 2012 07:54:32 -0500 Subject: Move Tab Preview to WebTab Let the WebTab class calculate its own preview, so that it can be used elsewhere in the code. REVIEW: 104517 --- src/webtab.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/webtab.cpp') diff --git a/src/webtab.cpp b/src/webtab.cpp index 724b5d0b..c91c3a20 100644 --- a/src/webtab.cpp +++ b/src/webtab.cpp @@ -36,15 +36,18 @@ #include "application.h" #include "historymanager.h" #include "messagebar.h" +#include "mainwindow.h" #include "opensearchmanager.h" #include "previewselectorbar.h" #include "rsswidget.h" #include "searchenginebar.h" #include "sessionmanager.h" #include "syncmanager.h" +#include "tabbar.h" #include "urlbar.h" #include "walletbar.h" #include "webpage.h" +#include "websnap.h" #include "webshortcutwidget.h" // KDE Includes @@ -365,6 +368,33 @@ bool WebTab::hasAdBlockedElements() } +QPixmap WebTab::tabPreview() +{ + if (isPageLoading()) + { + // no previews during load + return QPixmap(); + } + + int w = (parentWidget()->sizeHint().width() / TabBar::baseWidthDivisor); + int h = w * rApp->mainWindow()->size().height() / rApp->mainWindow()->size().width(); + + if (!part()) + { + return WebSnap::renderPagePreview(*page(), w, h); + } + else + { + QWidget *partWidget = part()->widget(); + QPixmap partThumb(partWidget->size()); + + partWidget->render(&partThumb); + + return partThumb.scaled(w, h, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + } +} + + void WebTab::loadFinished() { // add page to history -- cgit v1.2.1