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