]> git.sven.stormbind.net Git - sven/vym.git/blob - src/download-agent.h
New upstream version 2.9.22
[sven/vym.git] / src / download-agent.h
1 #include <QCoreApplication>
2 #include <QFile>
3 #include <QFileInfo>
4 #include <QList>
5 #include <QNetworkAccessManager>
6 #include <QNetworkReply>
7 #include <QNetworkRequest>
8 #include <QSslError>
9 #include <QStringList>
10 #include <QTemporaryFile>
11 #include <QTimer>
12 #include <QUrl>
13
14 #include <stdio.h>
15
16 QT_BEGIN_NAMESPACE
17 class QSslError;
18 QT_END_NAMESPACE
19
20 QT_USE_NAMESPACE
21
22 class VymModel;
23
24 class DownloadAgent : public QObject {
25     Q_OBJECT
26     QNetworkAccessManager agent;
27     QList<QNetworkReply *> currentDownloads;
28
29   public:
30     DownloadAgent(const QUrl &u);
31     ~DownloadAgent();
32     QString getDestination();
33     void setFinishedAction(VymModel *m, const QString &script);
34     QString getFinishedScript();
35     uint getFinishedScriptModelID();
36     void setUserAgent(const QString &s);
37     bool isSuccess();
38     QString getResultMessage();
39     void doDownload(const QUrl &url);
40     bool saveToDisk(const QString &filename, const QByteArray &data);
41
42   public slots:
43     void execute();
44     void requestFinished(QNetworkReply *reply);
45     void sslErrors(const QList<QSslError> &errors);
46
47   signals:
48     void downloadFinished();
49
50   private:
51     QString tmpFilePath;
52     QByteArray userAgent;
53     QUrl url;
54
55     bool success;
56     QString resultMessage;
57
58     QString finishedScript;
59     uint finishedScriptModelID;
60 };