- DownloadManager code in place
[qtrapids] / src / gui / SeedView.h
index ef42f6b..37fdf75 100644 (file)
 
 #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