1 #pragma once
2 
3 #include <QNetworkRequest>
4 #include <QNetworkReply>
5 
6 #ifdef Q_OS_WIN
7 
8 class lcHttpReply : public QThread
9 {
10 	Q_OBJECT
11 
12 public:
13 	lcHttpReply(QObject* Parent, const QString& URL);
14 
15 	void run() override;
16 
error()17 	bool error() const
18 	{
19 		return mError;
20 	}
21 
abort()22 	void abort()
23 	{
24 		mAbort = true;
25 	}
26 
readAll()27 	QByteArray readAll() const
28 	{
29 		return mBuffer;
30 	}
31 
32 protected:
33 	bool mError;
34 	bool mAbort;
35 	QByteArray mBuffer;
36 	QString mURL;
37 };
38 
39 class lcHttpManager : public QObject
40 {
41 	Q_OBJECT
42 
43 public:
44 	lcHttpManager(QObject* Owner = nullptr);
45 
46 	lcHttpReply* DownloadFile(const QString& Url);
47 
48 signals:
49 	void DownloadFinished(lcHttpReply* Reply);
50 };
51 
52 #else
53 
54 class lcHttpReply : public QNetworkReply
55 {
56 	Q_OBJECT
57 
lcHttpReply(QObject * Parent)58 	lcHttpReply(QObject* Parent)
59 		: QNetworkReply(Parent)
60 	{
61 	}
62 };
63 
64 class lcHttpManager : public QNetworkAccessManager
65 {
66 	Q_OBJECT
67 
68 public:
69 	lcHttpManager(QObject* Owner = nullptr);
70 
71 	lcHttpReply* DownloadFile(const QString& Url);
72 
73 signals:
74 	void DownloadFinished(lcHttpReply* Reply);
75 
76 protected slots:
77 	void Finished(QNetworkReply* Reply);
78 };
79 
80 #endif
81