diff options
Diffstat (limited to 'src/webtab.cpp')
-rw-r--r-- | src/webtab.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
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 |