From 47a26d10894d4c88d219dba8d04c0eae4ea48974 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Tue, 15 Sep 2009 17:14:14 +0200 Subject: Here we are, embedding Qt Widgets.. Now it's time to RUN working or I'll be dismissed!! This implementation works quite fine, it's a bit slow but really better than the previous one. It crashes gloriously loading flash contents (Qt bug? WebPlugin one's?) and does not resize well webviews.. --- src/websnap.cpp | 91 --------------------------------------------------------- 1 file changed, 91 deletions(-) delete mode 100644 src/websnap.cpp (limited to 'src/websnap.cpp') diff --git a/src/websnap.cpp b/src/websnap.cpp deleted file mode 100644 index 1f564223..00000000 --- a/src/websnap.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/* ============================================================ -* -* This file is a part of the rekonq project -* -* Copyright (C) 2009 Nokia Corporation -* Copyright (C) 2009 by Andrea Diamantini -* -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License as -* published by the Free Software Foundation; either version 2 of -* the License or (at your option) version 3 or any later version -* accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy -* defined in Section 14 of version 3 of the license. -* -* This program 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 General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -* -* ============================================================ */ - - -#include "websnap.h" -#include "websnap.moc" - -#include -#include - -#include -#include -#include -#include -#include - - -WebSnap::WebSnap(const KUrl &url, const QString &fileName) - : QObject() - , m_url(url) - , m_image(QImage()) - , m_fileName(fileName) -{ - // this to not register websnap history - m_page.settings()->setAttribute(QWebSettings::PrivateBrowsingEnabled, true); - - m_targetSize = QSize(200, 150); - connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(saveResult(bool))); - QTimer::singleShot(0, this, SLOT(load())); -} - - -void WebSnap::load() -{ - m_page.mainFrame()->load(m_url); -} - - -void WebSnap::saveResult(bool ok) -{ - // crude error-checking - if (!ok) - { - kDebug() << "Error loading site.."; - return; - } - - // find proper size, we stick to sensible aspect ratio - QSize size = m_page.mainFrame()->contentsSize(); - size.setHeight(size.width() * m_targetSize.height() / m_targetSize.width()); - - // create the target surface - m_image = QImage( size , QImage::Format_ARGB32_Premultiplied); - m_image.fill(Qt::transparent); - - // render and rescale - QPainter p(&m_image); - m_page.setViewportSize(m_page.mainFrame()->contentsSize()); - m_page.mainFrame()->render(&p); - p.end(); - m_image = m_image.scaled(m_targetSize, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation); - - QString path = KStandardDirs::locateLocal("cache", QString("thumbs/") + m_fileName, true); - if( m_image.save(path) ) - { - emit finished(); - } -} -- cgit v1.2.1