1 #ifndef ASEMANFILEDOWNLOADERQUEUEITEM_H
2 #define ASEMANFILEDOWNLOADERQUEUEITEM_H
3 
4 #include <QObject>
5 
6 class AsemanFileDownloaderQueue;
7 class AsemanFileDownloaderQueueItemPrivate;
8 class AsemanFileDownloaderQueueItem : public QObject
9 {
10     Q_OBJECT
11     Q_PROPERTY(QString source READ source WRITE setSource NOTIFY sourceChanged)
12     Q_PROPERTY(QString fileName READ fileName WRITE setFileName NOTIFY fileNameChanged)
13     Q_PROPERTY(qreal percent READ percent NOTIFY percentChanged)
14     Q_PROPERTY(AsemanFileDownloaderQueue* downloaderQueue READ downloaderQueue WRITE setDownloaderQueue NOTIFY downloaderQueueChanged)
15     Q_PROPERTY(QString result READ result NOTIFY resultChanged)
16 
17 public:
18     AsemanFileDownloaderQueueItem(QObject *parent = 0);
19     ~AsemanFileDownloaderQueueItem();
20 
21     void setSource(const QString &url);
22     QString source() const;
23 
24     void setFileName(const QString &name);
25     QString fileName() const;
26 
27     qreal percent() const;
28 
29     void setDownloaderQueue(AsemanFileDownloaderQueue *queue);
30     AsemanFileDownloaderQueue *downloaderQueue() const;
31 
32     QString result() const;
33 
34 signals:
35     void sourceChanged();
36     void downloaderQueueChanged();
37     void resultChanged();
38     void fileNameChanged();
39     void percentChanged();
40 
41 private slots:
42     void finished(const QString &url, const QString &fileName);
43     void progressChanged(const QString &url, const QString &fileName, qreal percent);
44 
45 private:
46     void refresh();
47 
48 private:
49     AsemanFileDownloaderQueueItemPrivate *p;
50 };
51 
52 #endif // ASEMANFILEDOWNLOADERQUEUEITEM_H
53