#include <QTreeWidget>
+#include "QBittorrentSession.h"
+
+class SeedViewItem;
+
/**
@author Lassi Väätämöinen <lassi.vaatamoinen@ixonos.com>
*/
class SeedView : public QTreeWidget
{
-Q_OBJECT
- public:
- SeedView(QWidget* parent);
-
- ~SeedView();
-
- private:
- // Name
- // Size
- // Status
- // UP speed
- // Seeds/Leechers
- // Connected peers
- // total uploaded
- // ratio
+ Q_OBJECT
+public:
+ SeedView(QWidget* parent);
+
+ ~SeedView();
+
+ void newItem(qtrapids::QTorrentHandle const* handle);
+ void updateItem(qtrapids::QTorrentHandle const* handle);
+
+private slots:
+ void on_itemPressed(QTreeWidgetItem *item, int column);
+
+private:
+ // Maps torrent to SeedView item.
+ // Key: SHA1 info hash of torrent. Data: View item corresponding to torrent.
+ std::map<Sha1Hash, SeedViewItem*> items_;
+
+ // Name
+ // Size
+ // Status
+ // UP speed
+ // Seeds/Leechers
+ // Connected peers
+ // total uploaded
+ // ratio
+};
+
+/**
+ @class DownloadViewItem
+ @brief Represents one item row of DownloadView
+ */
+class SeedViewItem : public QTreeWidgetItem
+{
+
+public:
+
+ SeedViewItem(QTreeWidget* parent, int type) :
+ QTreeWidgetItem(parent, type = QTreeWidgetItem::UserType) {};
+
+ SeedViewItem(const QStringList& strings, int type = QTreeWidgetItem::UserType ) :
+ QTreeWidgetItem (strings, type = Type) {};
+
+
+ /// @return An item comprising of string list, suitable for QTableView
+ /// header.
+ static SeedViewItem *getHeaderItem() {
+ SeedViewItem *item
+ = new SeedViewItem(QStringList()
+ << "Name"
+ << "Size" << "Status"
+ << "Progress" << "UL speed" << "Seeds/Leechers"
+ << "Conn. peers"
+ << "Ratio");
+
+ return item;
+ }
+
+ /// @todo QTorrentHandle as one hidden column
};
#endif