SF.net SVN: fclient:[870] trunk/fclient/fclient/impl
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <jU...@us...> - 2008-08-03 08:21:47
|
Revision: 870
http://fclient.svn.sourceforge.net/fclient/?rev=870&view=rev
Author: jUrner
Date: 2008-08-03 08:21:56 +0000 (Sun, 03 Aug 2008)
Log Message:
-----------
fixed a bug in dls when removing dls
(was: ups, QTreeWidgetItemIterator does not work as i expected)
Modified Paths:
--------------
trunk/fclient/fclient/impl/ViewDownloads.py
trunk/fclient/fclient/impl/lib/qt4ex/treewidgetwrap.py
Modified: trunk/fclient/fclient/impl/ViewDownloads.py
===================================================================
--- trunk/fclient/fclient/impl/ViewDownloads.py 2008-08-02 19:33:37 UTC (rev 869)
+++ trunk/fclient/fclient/impl/ViewDownloads.py 2008-08-03 08:21:56 UTC (rev 870)
@@ -349,18 +349,25 @@
def onRemoveSelectedDownloads(self, action):
tree = self.controlById(self.IdTree)
- for item in tree.selectedItems():
+ selectedItems = tree.selectedItems()
+
+ # remove items
+ for item in selectedItems:
parent = item.parent()
if parent is None:
parent = tree.invisibleRootItem()
- it = treewidgetwrap.TreeWidgetIterator(parent)
- it.next()
- for tmp_item in it:
- del self.fcpRequests[tmp_item.fcpRequest['Identifier']]
- config.fcpClient.removeRequest(tmp_item.fcpRequest)
- tmp_item.fcpRequest = None
parent.removeChild(item)
+ # cancel all requests
+ for item in selectedItems:
+ for tmp_item in treewidgetwrap.walkItem(item):
+ if tmp_item.fcpRequest is not None: # we may come across the same item multiple times
+ del self.fcpRequests[tmp_item.fcpRequest['Identifier']]
+ config.fcpClient.removeRequest(tmp_item.fcpRequest)
+ tmp_item.fcpRequest = None
+
+
+
def onRestartSelectedDownloads(self, action):
tree = self.controlById(self.IdTree)
for item in tree.selectedItems():
Modified: trunk/fclient/fclient/impl/lib/qt4ex/treewidgetwrap.py
===================================================================
--- trunk/fclient/fclient/impl/lib/qt4ex/treewidgetwrap.py 2008-08-02 19:33:37 UTC (rev 869)
+++ trunk/fclient/fclient/impl/lib/qt4ex/treewidgetwrap.py 2008-08-03 08:21:56 UTC (rev 870)
@@ -26,3 +26,24 @@
raise StopIteration
return value
+#***************************************************************************************
+# ups, if my observaions are correct, QTreeWidgetItemIterator handles the tree as list.
+#<root>
+# <item1>
+# <item2>
+#
+#for i in TreeWidgetIterator(<item1>): item
+#<item1>
+#<item2>
+#for i in TreeWidgetIterator(<item2>): item
+#<item2>
+#
+#thow in a walker to fix this..
+#**************************************************************************************
+def walkItem(item):
+ yield item
+ for i in xrange(item.childCount()):
+ child = item.child(i)
+ for x in walkItem(child):
+ yield x
+
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|