summaryrefslogtreecommitdiffstats
path: root/scribus/downloadmanager/scdlthread.h
diff options
context:
space:
mode:
authorcraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-05-31 20:25:57 +0000
committercraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-05-31 20:25:57 +0000
commitd2ea48aace0d70a369d7f288d08615c475c7e5a6 (patch)
treeccab0059dcfaab01f8ab41ecc1aaa15e2cc12e07 /scribus/downloadmanager/scdlthread.h
parent3e45d96fc4cc935f1a318da181f9adafcbd4e7e4 (diff)
downloadscribus-d2ea48aace0d70a369d7f288d08615c475c7e5a6.tar.gz
scribus-d2ea48aace0d70a369d7f288d08615c475c7e5a6.tar.xz
scribus-d2ea48aace0d70a369d7f288d08615c475c7e5a6.zip
Add beginnings of threaded download manager
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17531 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/downloadmanager/scdlthread.h')
-rw-r--r--scribus/downloadmanager/scdlthread.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/scribus/downloadmanager/scdlthread.h b/scribus/downloadmanager/scdlthread.h
new file mode 100644
index 0000000..7d5b4eb
--- /dev/null
+++ b/scribus/downloadmanager/scdlthread.h
@@ -0,0 +1,47 @@
+#ifndef SCDLTHREAD_H
+#define SCDLTHREAD_H
+
+#include <QThread>
+#include <QUrl>
+#include <QStringList>
+#include <QPair>
+#include <QString>
+#include <QQueue>
+#include <QFile>
+#include <QNetworkAccessManager>
+
+class ScDLThread : public QThread
+{
+ Q_OBJECT
+ public:
+ ScDLThread(QObject * parent = 0);
+ ~ScDLThread();
+ void run();
+
+ void addURL(const QUrl &url, bool overwrite, const QString& location="");
+ void addURLs(const QStringList &urlList, bool overwrite, const QString& location="");
+ void startDownloads();
+ QString saveFileName(const QUrl &url, const QString &location, bool overwrite);
+
+ signals:
+ void finished();
+ void runSignal();
+ void received(const QString &);
+
+ private slots:
+ void startNextDownload();
+ void downloadFinished();
+ void downloadReadyRead();
+ void runSlot();
+
+ private:
+ bool urlOK(QUrl url);
+ QStringList m_urlList;
+ QFile output;
+ QQueue<QPair<QUrl, QString> > downloadQueue;
+ int downloadedCount;
+ int totalCount;
+ QNetworkReply *currentDownload;
+ QNetworkAccessManager manager;
+};
+#endif