summaryrefslogtreecommitdiff
path: root/src/websnap.cpp
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2009-09-15 17:14:14 +0200
committerAndrea Diamantini <adjam7@gmail.com>2009-09-15 17:14:14 +0200
commit47a26d10894d4c88d219dba8d04c0eae4ea48974 (patch)
tree12c18c795fedbbb2d7827da1374e22e57cd73b6a /src/websnap.cpp
parentFirst adjustments and code about it (it's really simple, anyway..Qt rocks!!!) (diff)
downloadrekonq-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.cpp91
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();
- }
-}