- Namespaced QBittorrentSession and QTorrentHandle to avoid possible future conflicts
[qtrapids] / src / gui / DownloadView.h
index f3d43c5..cb300ba 100644 (file)
 #ifndef DOWNLOADVIEW_H
 #define DOWNLOADVIEW_H
 
+#include <map>
+
 #include <QTreeWidget>
 
+#include "QBittorrentSession.h"
+
+class DownloadViewItem;
+class QTimer;
+
 /**
+       @class DownloadView
+       @brief A view showing all downloaded torrents
        @author Lassi Väätämöinen <lassi.vaatamoinen@ixonos.com>
 */
 class DownloadView : public QTreeWidget
@@ -34,13 +43,33 @@ Q_OBJECT
 
     ~DownloadView();
 
+               void newItem(qtrapids::QTorrentHandle handle);
+               void updateItem(qtrapids::QTorrentHandle handle);
+               qtrapids::QTorrentHandle removeSelected();
+               void removeItem(qtrapids::QTorrentHandle handle);
+               void setRefreshInterval(int msec);
+               
+       private slots:
+               void on_itemClicked(QTreeWidgetItem * item, int column);
+               void on_timeout();
+               
        private:
+               // Maps torrent to downloadview item.
+               // Key: SHA1 info hash of torrent. Data: View item corresponding to torrent.
+               std::map<qtrapids::QTorrentHandle, DownloadViewItem*> items_;
+               QTimer *timer_;
+               
+               // Private functions.
+               QString GetStatusString(qtrapids::QTorrentHandle::State const& status) const;
+               QColor GetStatusColor(qtrapids::QTorrentHandle::State const& status) const;
+    void UpdateView();
 
+               
 };
 
 
 /**
-       @class DownloadViewItem
+       @class DownloadViewItem 
        @brief Represents one item row of DownloadView
 */
 class DownloadViewItem : public QTreeWidgetItem {