/* Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include <QtGui> #include <QWebPage> #include <QWebFrame> //! [0] class Thumbnailer : public QObject { Q_OBJECT public: Thumbnailer(const QUrl &url); signals: void finished(); private slots: void render(); private: QWebPage page; }; //! [0] int main(int argc, char *argv[]) { QApplication app(argc, argv); Thumbnailer thumbnail(QUrl("http://qt.nokia.com")); QObject::connect(&thumbnail, SIGNAL(finished()), &app, SLOT(quit())); return app.exec(); } //! [1] Thumbnailer::Thumbnailer(const QUrl &url) { page.mainFrame()->load(url); connect(&page, SIGNAL(loadFinished(bool)), this, SLOT(render())); } //! [1] //! [2] void Thumbnailer::render() { page.setViewportSize(page.mainFrame()->contentsSize()); QImage image(page.viewportSize(), QImage::Format_ARGB32); QPainter painter(&image); page.mainFrame()->render(&painter); painter.end(); QImage thumbnail = image.scaled(400, 400); thumbnail.save("thumbnail.png"); emit finished(); } //! [2] #include "main.moc"