/* ============================================================ * * This file is a part of the rekonq project * * 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 "previewimage.h" #include "previewimage.moc" #include "application.h" #include #include #include #include #include PreviewImage::PreviewImage(const QString &url) : QLabel() , ws(0) , m_url(url) { m_savePath = KStandardDirs::locateLocal("cache", QString("thumbs/") + guessNameFromUrl(m_url) + ".png", true); if(QFile::exists(m_savePath)) { m_pixmap.load(m_savePath); setPixmap( m_pixmap ); } else { ws = new WebSnap( url ); connect(ws, SIGNAL(finished()), this, SLOT(setSiteImage())); QString path = KStandardDirs::locate("appdata", "pics/busywidget.gif"); QMovie *movie = new QMovie(path, QByteArray(), this); movie->setSpeed(50); setMovie(movie); movie->start(); } } PreviewImage::~PreviewImage() { } void PreviewImage::setSiteImage() { QMovie *m = movie(); delete m; setMovie(0); m_pixmap = ws->previewImage(); setPixmap(m_pixmap); m_pixmap.save(m_savePath); } void PreviewImage::mousePressEvent(QMouseEvent *event) { Q_UNUSED(event) Application::instance()->loadUrl(m_url); } QString PreviewImage::guessNameFromUrl(QString url) { return QUrl(url).toString( QUrl::RemoveScheme | QUrl::RemoveUserInfo | QUrl::StripTrailingSlash ); }