mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-04 05:50:31 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef WSJTX_FILEDOWNLOAD_H
 | 
						|
#define WSJTX_FILEDOWNLOAD_H
 | 
						|
 | 
						|
#include <QObject>
 | 
						|
#include <QString>
 | 
						|
#include <QPointer>
 | 
						|
#include <QtNetwork/QNetworkAccessManager>
 | 
						|
#include <QtNetwork/QNetworkReply>
 | 
						|
#include <QTemporaryFile>
 | 
						|
#include <QSaveFile>
 | 
						|
 | 
						|
class FileDownload : public QObject {
 | 
						|
    Q_OBJECT
 | 
						|
 | 
						|
public:
 | 
						|
    explicit FileDownload();
 | 
						|
    ~FileDownload();
 | 
						|
 | 
						|
    void configure(QNetworkAccessManager *network_manager, const QString& source_url, const QString& destination_filename, const QString& user_agent);
 | 
						|
 | 
						|
private:
 | 
						|
    QNetworkAccessManager *manager_;
 | 
						|
    QString source_url_;
 | 
						|
    QString destination_filename_;
 | 
						|
    QString user_agent_;
 | 
						|
    QPointer<QNetworkReply> reply_;
 | 
						|
    QNetworkRequest request_;
 | 
						|
    QSaveFile destfile_;
 | 
						|
    bool url_valid_;
 | 
						|
    int redirect_count_;
 | 
						|
signals:
 | 
						|
            void complete(QString filename);
 | 
						|
            void progress(QString filename);
 | 
						|
            void load_finished() const;
 | 
						|
            void download_error (QString const& reason) const;
 | 
						|
            void error(QString const& reason) const;
 | 
						|
 | 
						|
 | 
						|
public slots:
 | 
						|
    void start_download();
 | 
						|
    void download(QUrl url);
 | 
						|
    void store();
 | 
						|
    void abort();
 | 
						|
    void downloadComplete(QNetworkReply* data);
 | 
						|
    void downloadProgress(qint64 recieved, qint64 total);
 | 
						|
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
 | 
						|
    void errorOccurred(QNetworkReply::NetworkError code);
 | 
						|
#else
 | 
						|
    void obsoleteError();
 | 
						|
#endif
 | 
						|
    void replyComplete();
 | 
						|
};
 | 
						|
 | 
						|
#endif //WSJTX_FILEDOWNLOAD_H
 |