From 8eac211c434358cbe536eb6f1448f1d565a5f26f Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Tue, 21 Apr 2009 11:27:17 +0200 Subject: Moving new download system to mainline. I did some changes to fit things as simple as possible. We can obviously improve things in a second moment.. --- src/download.h | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 66 insertions(+), 10 deletions(-) (limited to 'src/download.h') diff --git a/src/download.h b/src/download.h index 001c90f3..7b7a5bbf 100644 --- a/src/download.h +++ b/src/download.h @@ -18,57 +18,113 @@ * * ============================================================ */ + #ifndef DOWNLOAD_H #define DOWNLOAD_H +// Auto Includes +#include "rekonq.h" + // KDE Includes -#include -#include +#include // Qt Includes #include -#include + +// Forward Declarations +class KJob; + +namespace KIO +{ + class Job; +} + /** * This class lets rekonq to download an object from the network. * Creating a new object, you can continue downloading a file also * when rekonq is closed. * - * @author Lukas Appelhans - * @author Andrea Diamantini - * */ class Download : public QObject { Q_OBJECT + public: + enum DownloadType { Save, Open }; + /** * Class constructor. This is the unique method we need to * use this class. In fact Download class needs to know just * "where" catch the file to download and where it has to put it * * @param srcUrl the source url - * * @param destUrl the destination url * */ - Download(const KUrl &srcUrl, const KUrl &destUrl); + Download(const KUrl &srcUrl, const KUrl &destUrl, DownloadType type); /** * class destructor */ ~Download(); + KUrl srcUrl() const { return m_srcUrl; } + KUrl destUrl() const { return m_destUrl; } + DownloadType type() const { return m_type; } + void cancel(); + +signals: + void downloadFinished(int errorCode); + private slots: void slotResult(KJob *job); - void slotData(KIO::Job *job, const QByteArray& data); private: - KIO::TransferJob *m_copyJob; + KIO::FileCopyJob *m_copyJob; KUrl m_srcUrl; KUrl m_destUrl; KUrl m_destFile; QByteArray m_data; + DownloadType m_type; }; + +// ---------------------- + + +class DownloadManager : public QObject +{ + Q_OBJECT + +public: + DownloadManager(); + ~DownloadManager(); + + /** + * @short Creates new download job. + * This method lets you to download a file from a remote source url + * to a local destination url. + * + * @param srcUrl the source url + * @param destUrl the destination url (default value is your default download destination setting) + * + */ + void newDownload(const KUrl &srcUrl, const KUrl &destUrl = KUrl()); + + const QList &downloads() const; + +public slots: + void slotDownloadFinished(int errorCode); + +private: + KUrl downloadDestination(const QString &filename); + + QList m_downloads; +}; + + +//-- + + #endif -- cgit v1.2.1