| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 
							- /*
 
-  * cdownloadmanager_moc.h, part of VCMI engine
 
-  *
 
-  * Authors: listed in file AUTHORS in main folder
 
-  *
 
-  * License: GNU General Public License v2.0 or later
 
-  * Full text of license available in license.txt file, in main folder
 
-  *
 
-  */
 
- #pragma once
 
- #include <QSharedPointer>
 
- #include <QtNetwork/QNetworkReply>
 
- class QFile;
 
- class CDownloadManager : public QObject
 
- {
 
- 	Q_OBJECT
 
- 	struct FileEntry
 
- 	{
 
- 		enum Status
 
- 		{
 
- 			IN_PROGRESS,
 
- 			FINISHED,
 
- 			FAILED
 
- 		};
 
- 		QNetworkReply * reply;
 
- 		QSharedPointer<QFile> file;
 
- 		QString filename;
 
- 		Status status;
 
- 		qint64 bytesReceived;
 
- 		qint64 totalSize;
 
- 	};
 
- 	QStringList encounteredErrors;
 
- 	QNetworkAccessManager manager;
 
- 	QList<FileEntry> currentDownloads;
 
- 	FileEntry & getEntry(QNetworkReply * reply);
 
- public:
 
- 	CDownloadManager();
 
- 	// returns true if download with such URL is in progress/queued
 
- 	// FIXME: not sure what's right place for "mod download in progress" check
 
- 	bool downloadInProgress(const QUrl & url) const;
 
- 	// returns network reply so caller can connect to required signals
 
- 	void downloadFile(const QUrl & url, const QString & file, qint64 bytesTotal = 0);
 
- public slots:
 
- 	void downloadFinished(QNetworkReply * reply);
 
- 	void downloadProgressChanged(qint64 bytesReceived, qint64 bytesTotal);
 
- signals:
 
- 	// for status bar updates. Merges all queued downloads into one
 
- 	void downloadProgress(qint64 currentAmount, qint64 maxAmount);
 
- 	// called when all files were downloaded and manager goes to idle state
 
- 	// Lists contains files that were successfully downloaded / failed to download
 
- 	void finished(QStringList savedFiles, QStringList failedFiles, QStringList errors);
 
- };
 
 
  |