diff options
Diffstat (limited to 'src/websnap.cpp')
-rw-r--r-- | src/websnap.cpp | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/src/websnap.cpp b/src/websnap.cpp index af52b592..6923e5d8 100644 --- a/src/websnap.cpp +++ b/src/websnap.cpp @@ -12,9 +12,9 @@ * 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 +* 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 @@ -47,54 +47,54 @@ WebSnap::WebSnap(const KUrl& url, QObject *parent) - : QObject(parent) - , m_url(url) + : QObject(parent) + , m_url(url) { // this to not register websnap history m_page.settings()->setAttribute(QWebSettings::PrivateBrowsingEnabled, true); - + // this to not let this page open other windows m_page.settings()->setAttribute(QWebSettings::PluginsEnabled, false); m_page.settings()->setAttribute(QWebSettings::JavascriptEnabled, false); 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); } -// NOTE please, be careful modifying this. +// NOTE please, be careful modifying this. // You are playing with fire.. QPixmap WebSnap::renderPreview(const QWebPage &page, int w, int h) { // NOTE // it seems no way to enable/disable scrollbars in new QtWebKit's // and this is affecting tabbed browsing - + // prepare page QSize oldSize = page.viewportSize(); // page.mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff); // page.mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff); - + // find the best size QSize size; int width = page.mainFrame()->contentsSize().width(); - if (width < 640) + if (width < 640) { width = 640; } - size = QSize(width,width*((0.0+h)/w)); + size = QSize(width, width * ((0.0 + h) / w)); page.setViewportSize(size); - + // create the page image QImage pageImage = QImage(size, QImage::Format_ARGB32_Premultiplied); pageImage.fill(Qt::transparent); - + // render it QPainter p(&pageImage); page.mainFrame()->render(&p); @@ -105,24 +105,24 @@ QPixmap WebSnap::renderPreview(const QWebPage &page, int w, int h) // page.mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAsNeeded); // page.mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAsNeeded); page.setViewportSize(oldSize); - + QPixmap pm = QPixmap::fromImage(pageImage); - KUrl url( page.mainFrame()->url() ); + KUrl url(page.mainFrame()->url()); kDebug() << "saving preview"; - + QString path = imagePathFromUrl(url); - QFile::remove( path ); - pm.save( path ); - + QFile::remove(path); + pm.save(path); + return pm; } QString WebSnap::imagePathFromUrl(const KUrl &url) { - QUrl temp = QUrl( url.url() ); - QString name = temp.toString( QUrl::RemoveScheme | QUrl::RemoveUserInfo | QUrl::StripTrailingSlash ); - + QUrl temp = QUrl(url.url()); + QString name = temp.toString(QUrl::RemoveScheme | QUrl::RemoveUserInfo | QUrl::StripTrailingSlash); + // TODO learn Regular Expressions :) // and implement something better here.. name.remove('/'); @@ -133,29 +133,29 @@ QString WebSnap::imagePathFromUrl(const KUrl &url) name.remove('?'); name.remove('='); name.remove('+'); - + return KStandardDirs::locateLocal("cache", QString("thumbs/") + name + ".png", true); } void WebSnap::saveResult(bool ok) { - if (ok) + if (ok) { QPixmap image = renderPreview(m_page, WIDTH, HEIGHT); - QString path = imagePathFromUrl( m_url); - QFile::remove( path ); - image.save( path ); + QString path = imagePathFromUrl(m_url); + QFile::remove(path); + image.save(path); } emit snapDone(ok); kDebug() << "SAVE RESULTS: " << ok << " URL: " << m_url; - + this->deleteLater(); } bool WebSnap::existsImage(const KUrl &u) { - return QFile::exists( imagePathFromUrl(u) ); + return QFile::exists(imagePathFromUrl(u)); } |