[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r4660 - gnunet-qt/src/plugins/fs
From: |
gnunet |
Subject: |
[GNUnet-SVN] r4660 - gnunet-qt/src/plugins/fs |
Date: |
Sat, 10 Mar 2007 14:33:39 -0700 (MST) |
Author: durner
Date: 2007-03-10 14:33:39 -0700 (Sat, 10 Mar 2007)
New Revision: 4660
Modified:
gnunet-qt/src/plugins/fs/fs.cc
Log:
fix crash when aborting multiple downloads
Modified: gnunet-qt/src/plugins/fs/fs.cc
===================================================================
--- gnunet-qt/src/plugins/fs/fs.cc 2007-03-10 21:07:07 UTC (rev 4659)
+++ gnunet-qt/src/plugins/fs/fs.cc 2007-03-10 21:33:39 UTC (rev 4660)
@@ -439,14 +439,24 @@
void GFSPlugin::cancelDLClicked()
{
+ typedef QList<struct FSUI_DownloadList *> GCancelList;
+
QModelIndexList list;
QModelIndexList::iterator it;
+ GCancelList cancelList;
+ GCancelList::iterator itCancel;
QItemSelectionModel *selModel = treeDownloads->selectionModel();
QAbstractItemModel *dataModel = treeDownloads->model();
list = selModel->selectedRows();
+
+ // collect handles of downloads first because indexes shift as rows are
removed
for (it = list.begin(); it != list.end(); it++)
- downloadCntrl->cancel((struct FSUI_DownloadList *) dataModel->data(*it,
Qt::UserRole).value<void *>());
+ cancelList.push_back((struct FSUI_DownloadList *) dataModel->data(*it,
Qt::UserRole).value<void *>());
+
+ // remove downloads
+ for (itCancel = cancelList.begin(); itCancel != cancelList.end(); itCancel++)
+ downloadCntrl->cancel(*itCancel);
}
void GFSPlugin::clearULClicked()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r4660 - gnunet-qt/src/plugins/fs,
gnunet <=