diff options
Diffstat (limited to 'src/websnap.h')
-rw-r--r-- | src/websnap.h | 93 |
1 files changed, 69 insertions, 24 deletions
diff --git a/src/websnap.h b/src/websnap.h index 6c5b4af9..c85dc0d2 100644 --- a/src/websnap.h +++ b/src/websnap.h @@ -3,7 +3,8 @@ * 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> +* Copyright (C) 2009-2010 by Andrea Diamantini <adjam7 at gmail dot com> +* Copyright (C) 2010 by Matthieu Gicquel <matgic78 at gmail dot com> * * * This program is free software; you can redistribute it and/or @@ -11,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 @@ -28,48 +29,92 @@ #ifndef WEB_SNAP_H #define WEB_SNAP_H + +// Rekonq Includes +#include "rekonq_defines.h" + // KDE Includes #include <KUrl> // Qt Includes #include <QtCore/QObject> -#include <QPixmap> -#include <QImage> -#include <QWebPage> + +#include <QtGui/QPixmap> + +#include <QtWebKit/QWebPage> + +// Defines +#define WIDTH 200 +#define HEIGHT 150 /** - * This class renders a site producing an image based - * on that. + * This class is used in many classes of rekonq to produce an image + * based on the site corresponding to the url passed as argument. + * It also cached the images to not retrieve them every time :) + * * Heavily based on Graphics-Dojo WebSnap example (thanks!) + * + * We use this in the following rekonq classes: + * + * - TabBar class: to show a tab preview (given a page, you show AND save an image) + * - PreviewSelector class: to save new favorite selection (given a page, you show AND save an image) + * + * - NewTabPage class: to show the favorites page "preview" (given an url, you show AND save an image) + * */ -class WebSnap : public QObject +class REKONQ_TESTS_EXPORT WebSnap : public QObject { Q_OBJECT public: - WebSnap(const QUrl &url); - ~WebSnap(); - - QPixmap previewImage(); - static QPixmap renderPreview(const QWebPage &page, int w, int h); - - QString snapTitle(); - QUrl snapUrl(); + /** + * Creates a WebSnap object. It will load the url in one WebPage + * and snap an image from it. + * + * @param url the url to load + * @param parent the object parent + */ + explicit WebSnap(const KUrl &url, QObject *parent = 0); + + /** + * Snaps a pixmap of size w * h from a page and save it to cache + * + * @param page the page to snap + * @param w the image width + * @param h the image height + * + * @return the pixmap snapped from the page + */ + static QPixmap renderPreview(const QWebPage &page, int w = WIDTH, int h = HEIGHT); + + /** + * Guess the local path where the image for the url provided + * should be + * + * @param url the url to guess snap path + * + * @return the local path of the url snap + */ + static QString imagePathFromUrl(const KUrl &url); + + /** + * Determines if a snap exists for that url + * + */ + static bool existsImage(const KUrl &url); -signals: - void finished(); private slots: + void saveResult(bool ok = true); void load(); - void saveResult(bool ok); + +signals: + void snapDone(bool ok); private: QWebPage m_page; - QPixmap m_image; - - QUrl m_url; - QString m_snapTitle; + KUrl m_url; }; #endif // WEB_SNAP_H |