/*************************************************************************** qgsfiledownloader.sip -------------------------------------- Date : November 2016 Copyright : (C) 2016 by Alessandro Pasotti Email : elpaso at itopen dot it *************************************************************************** * * * 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) any later version. * * * ***************************************************************************/ /** \ingroup gui * QgsFileDownloader is a utility class for downloading files. * * To use this class, it is necessary to pass the URL and an output file name as * arguments to the constructor, the download will start immediately. * The download is asynchronous and depending on the guiNotificationsEnabled * parameter accepted by the constructor (default = true) the class will * show a progress dialog and report all errors in a QMessageBox::warning dialog. * If the guiNotificationsEnabled parameter is set to false, the class can still * be used through the signals and slots mechanism. * The object will destroy itself when the request completes, errors or is canceled. * * @note added in QGIS 2.18.1 */ class QgsFileDownloader : public QObject { %TypeHeaderCode #include %End public: /** * QgsFileDownloader * @param url the download url * @param outputFileName file name where the downloaded content will be stored * @param guiNotificationsEnabled if false, the downloader will not display any progress bar or error message */ QgsFileDownloader(QUrl url, QString outputFileName, bool guiNotificationsEnabled = true); signals: /** Emitted when the download has completed successfully */ void downloadCompleted(); /** Emitted always when the downloader exits */ void downloadExited(); /** Emitted when the download was canceled by the user */ void downloadCanceled(); /** Emitted when an error makes the download fail */ void downloadError( QStringList errorMessages ); /** Emitted when data ready to be processed */ void downloadProgress(qint64 bytesReceived, qint64 bytesTotal); public slots: /** * Called when a download is canceled by the user * this slot aborts the download and deletes the object * Never call this slot directly: this is meant to * be managed by the signal-slot system. */ void onDownloadCanceled(); private: ~QgsFileDownloader(); };