Added build script of Debian
[qtrapids] / src / gui / SeedView.h
index ef42f6b..3713f81 100644 (file)
@@ -1,11 +1,9 @@
 /***************************************************************************
- *   Copyright (C) 2009 by Lassi Väätämöinen   *
- *   lassi.vaatamoinen@ixonos.com   *
+ *   Copyright (C) 2010 by Ixonos Plc   *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
+ *   the Free Software Foundation; version 2 of the License.               *
  *                                                                         *
  *   This program is distributed in the hope that it will be useful,       *
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 
 #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