* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
+#include <QDebug>
#include "DownloadView.h"
DownloadView::DownloadView(QWidget* parent) :
{
setRootIsDecorated(false); // Hide branch lines, making one-level treeview (similar to list)
setHeaderItem(DownloadViewItem::getHeaderItem());
+
+ connect(this, SIGNAL(itemPressed(QTreeWidgetItem*, int)),
+ this, SLOT(on_itemClicked(QTreeWidgetItem*, int)));
+
}
{
}
-void DownloadView::newItem(QTorrentHandle const* handle)
+
+void DownloadView::newItem(QTorrentHandle handle)
{
+ qDebug() << "DownloadView::newItem() " << items_.count(handle);
DownloadViewItem *item = new DownloadViewItem(QStringList()
- << handle->name()
- << QString::number(handle->getTotalSize())
- << handle->state()
- << QString::number(handle->progress())
- << QString::number(handle->downloadRate())
- << QString::number(handle->uploadRate())
- << QString::number(handle->numSeeds()) + "/" + QString::number(handle->numLeeches())
- << QString::number(handle->ratio())
+ << handle.name()
+ << QString::number(handle.getTotalSize())
+ << handle.state()
+ << QString::number(handle.progress())
+ << QString::number(handle.downloadRate())
+ << QString::number(handle.uploadRate())
+ << QString::number(handle.numSeeds()) + "/"
+ + QString::number(handle.numLeeches())
+ << QString::number(handle.ratio())
<< "ETA" );
addTopLevelItem(item);
+ items_[handle] = item;
+}
+
+
+void DownloadView::updateItem(QTorrentHandle handle)
+{
+ qDebug() << "DownloadView::updateItem() " << items_.count(handle);
+ if (items_.count(handle) > 0) {
+ DownloadViewItem *item = items_[handle];
+ item->setData(2, Qt::DisplayRole, QVariant(handle.state()));
+ item->setData(3, Qt::DisplayRole,
+ QVariant(QString::number(handle.progress())));
+ item->setData(4, Qt::DisplayRole,
+ QVariant(QString::number(handle.downloadRate())));
+ item->setData(5, Qt::DisplayRole,
+ QVariant(QString::number(handle.uploadRate())));
+ item->setData(6, Qt::DisplayRole,
+ QString::number(handle.numSeeds()) + "/"
+ + QString::number(handle.numLeeches()));
+ }
}
-void DownloadView::updateItem(QTorrentHandle const* handle)
+
+QTorrentHandle DownloadView::removeSelected()
{
+ qDebug() << "DownloadView::removeSelected() " << topLevelItemCount() ;
+
+ DownloadViewItem *item = dynamic_cast<DownloadViewItem*> (currentItem());
+
+ std::map<QTorrentHandle, DownloadViewItem*>::iterator listIter
+ = items_.begin();
+ std::map<QTorrentHandle, DownloadViewItem*>::iterator listEnd
+ = items_.end();
+
+ while (listIter != listEnd) {
+ if (listIter->second == item) {
+ break;
+ }
+ ++listIter;
+ }
+
+ QTorrentHandle handle = listIter->first;
+ items_.erase(listIter);
+
+
+ int index = indexOfTopLevelItem(currentItem());
+ if (index >= 0) {
+ takeTopLevelItem(index);
+ }
+
+ qDebug() << "DownloadView::removeSelected() " << topLevelItemCount() ;
+
+ return handle;
}
+void DownloadView::removeItem(QTorrentHandle handle)
+{
+}
+
+
+void DownloadView::on_itemClicked(QTreeWidgetItem * item, int column)
+{/*
+ qDebug() << "DownloadView::on_itemClicked(()" << item << "," << column;
+ qDebug() << "current item" << currentItem();
+
+ if (item == currentItem() && item->isSelected()) {
+ item->setSelected(false);
+ }
+ */
+}
+