1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-20 18:56:34 +01:00

Merge pull request #378 from ariya/efficient-preview

More memory efficient and faster preview generation.
This commit is contained in:
David Rosca 2012-04-12 05:51:45 -07:00
commit 7e778072b6

View File

@ -264,16 +264,21 @@ QPixmap WebTab::renderTabPreview()
renderWidth -= verticalScrollBarWidth; renderWidth -= verticalScrollBarWidth;
renderHeight -= horizontalScrollBarHeight; renderHeight -= horizontalScrollBarHeight;
QPixmap pageImage(renderWidth, renderHeight); const int previewWidth = 230;
const int previewHeight = 150;
qreal scalingFactor = 2 * static_cast<qreal>(previewWidth) / renderWidth;
QPixmap pageImage(2 * previewWidth, 2 * previewHeight);
pageImage.fill(Qt::transparent); pageImage.fill(Qt::transparent);
QPainter p(&pageImage); QPainter p(&pageImage);
p.scale(scalingFactor, scalingFactor);
m_view->page()->mainFrame()->render(&p, QWebFrame::ContentsLayer); m_view->page()->mainFrame()->render(&p, QWebFrame::ContentsLayer);
p.end(); p.end();
page->setViewportSize(oldSize); page->setViewportSize(oldSize);
return pageImage.scaled(230, 150, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); return pageImage.scaled(previewWidth, previewHeight, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
} }
void WebTab::showNotification(QWidget* notif) void WebTab::showNotification(QWidget* notif)