#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
~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 {