Skip to content
Snippets Groups Projects
QGCFileDownload.h 1.22 KiB
Newer Older
  • Learn to ignore specific revisions
  • /****************************************************************************
     *
     *   (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
     *
     * QGroundControl is licensed according to the terms in the file
     * COPYING.md in the root of the source code directory.
     *
     ****************************************************************************/
    
    
    Don Gagne's avatar
    Don Gagne committed
    
    #ifndef QGCFileDownload_H
    #define QGCFileDownload_H
    
    #include <QNetworkReply>
    
    class QGCFileDownload : public QNetworkAccessManager
    {
        Q_OBJECT
        
    public:
        QGCFileDownload(QObject* parent = NULL);
        
        /// Download the specified remote file.
        ///     @param remoteFile File to download. Can be http address or file system path.
    
        ///     @param redirect true: call is internal due to redirect
    
    Don Gagne's avatar
    Don Gagne committed
        /// @return true: Asynchronous download has started, false: Download initialization failed
    
        bool download(const QString& remoteFile, bool redirect = false);
    
    Don Gagne's avatar
    Don Gagne committed
    
    signals:
        void downloadProgress(qint64 curr, qint64 total);
        void downloadFinished(QString remoteFile, QString localFile);
        void error(QString errorMsg);
    
    
    private:
    
    Don Gagne's avatar
    Don Gagne committed
        void _downloadFinished(void);
        void _downloadError(QNetworkReply::NetworkError code);
    
    
        QString _originalRemoteFile;
    
    Don Gagne's avatar
    Don Gagne committed
    };
    
    #endif