Wed, 09 Oct 2013 19:26:41 +0200
Continued to shorten the code lines to max. 79 characters.
# -*- coding: utf-8 -*- # Copyright (c) 2010 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> # """ Module implementing functions to generate page previews. """ from PyQt4.QtCore import QSize, Qt from PyQt4.QtGui import QPixmap, QPainter from PyQt4.QtWebKit import QWebFrame def renderTabPreview(page, w, h): """ Public function to render a pixmap of a page. @param page reference to the page to be previewed (QWebPage) @param w width of the preview pixmap (integer) @param h height of the preview pixmap (integer) @return preview pixmap (QPixmap) """ oldSize = page.viewportSize() width = page.mainFrame().contentsSize().width() page.setViewportSize(QSize(width, int(width * h / w))) pageImage = __render(page, page.viewportSize().width(), page.viewportSize().height()) page.setViewportSize(oldSize) return pageImage.scaled( w, h, Qt.IgnoreAspectRatio, Qt.SmoothTransformation) def __render(page, w, h): """ Private function to render a pixmap of given size for a web page. @param page reference to the page to be rendered (QWebPage) @param w width of the pixmap (integer) @param h height of the pixmap (integer) @return rendered pixmap (QPixmap) """ # create the page image pageImage = QPixmap(w, h) pageImage.fill(Qt.transparent) # render it p = QPainter(pageImage) page.mainFrame().render(p, QWebFrame.ContentsLayer) p.end() return pageImage