diff options
author | Andrea Diamantini <adjam7@gmail.com> | 2009-09-15 17:14:14 +0200 |
---|---|---|
committer | Andrea Diamantini <adjam7@gmail.com> | 2009-09-15 17:14:14 +0200 |
commit | 47a26d10894d4c88d219dba8d04c0eae4ea48974 (patch) | |
tree | 12c18c795fedbbb2d7827da1374e22e57cd73b6a /src/websnap.cpp | |
parent | First adjustments and code about it (it's really simple, anyway..Qt rocks!!!) (diff) | |
download | rekonq-47a26d10894d4c88d219dba8d04c0eae4ea48974.tar.xz |
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..
Diffstat (limited to 'src/websnap.cpp')
-rw-r--r-- | src/websnap.cpp | 91 |
1 files changed, 0 insertions, 91 deletions
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 <qt-info@nokia.com> -* Copyright (C) 2009 by Andrea Diamantini <adjam7 at gmail dot com> -* -* -* 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 <http://www.gnu.org/licenses/>. -* -* ============================================================ */ - - -#include "websnap.h" -#include "websnap.moc" - -#include <KDebug> -#include <KStandardDirs> - -#include <QSize> -#include <QWebFrame> -#include <QWebSettings> -#include <QPainter> -#include <QTimer> - - -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(); - } -} |