SF.net SVN: fclient:[784] trunk/fclient/src/fclient/impl/ViewDownloads.py
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <jU...@us...> - 2008-07-27 13:12:39
|
Revision: 784
http://fclient.svn.sourceforge.net/fclient/?rev=784&view=rev
Author: jUrner
Date: 2008-07-27 13:12:49 +0000 (Sun, 27 Jul 2008)
Log Message:
-----------
requests are restored now
Modified Paths:
--------------
trunk/fclient/src/fclient/impl/ViewDownloads.py
Modified: trunk/fclient/src/fclient/impl/ViewDownloads.py
===================================================================
--- trunk/fclient/src/fclient/impl/ViewDownloads.py 2008-07-27 13:12:04 UTC (rev 783)
+++ trunk/fclient/src/fclient/impl/ViewDownloads.py 2008-07-27 13:12:49 UTC (rev 784)
@@ -32,6 +32,7 @@
from . import config
from .lib import fcp2
+from .lib.fcp2.lib import pmstruct
from .tpls.Ui_ViewDownloadsWidgetTpl import Ui_ViewDownloadsWidget
#**********************************************************************************
@@ -49,6 +50,14 @@
#**********************************************************************************
#
#**********************************************************************************
+class PersistentRequestData(pmstruct.PMStruct):
+ _fields_ = (
+ ('ClientName', pmstruct.STRING),
+ )
+
+#**********************************************************************************
+#
+#**********************************************************************************
# from: network/torrent/mainwindow.cpp
# TorrentViewDelegate is used to draw the progress bars.
class DownloadTreeDelegate(QtGui.QItemDelegate):
@@ -146,7 +155,26 @@
#XXX
self.foo = False
-
+ ############################
+ ## private methods
+ ############################
+ def _createItemFromFcpRequest(self, fcpRequest):
+ item= TreeItem(fcpRequest['Identifier'], self.tree)
+ item.setData(
+ self.HeaderIndexName,
+ QtCore.Qt.DisplayRole,
+ QtCore.QVariant(os.path.basename(fcpRequest['Filename']))
+ )
+
+ progressBar = QtGui.QProgressBar(self)
+ progressBar.setRange(0, 0)
+ self.tree.setItemWidget(item, self.HeaderIndexProgress, progressBar)
+ self.fcpRequests[fcpRequest['Identifier']] = item
+ return item
+
+ ############################
+ ##
+ ############################
def retranslateUi(self, parent):
self.fcHeadeLabels = {
self.HeaderIndexName: self.trUtf8('Name'),
@@ -158,8 +186,8 @@
def closeEvent(self):
self.viewClose()
-
+
def viewClose(self):
config.fcpClient.events -= self.fcpEvents
@@ -167,19 +195,15 @@
def downloadFile(self, fcpKey, fileName, **kws):
""""""
fileName = unicode(fileName)
- fcpIdentifier = config.fcpClient.getFile(fcpKey, fileName, **kws)
- item= TreeItem(fcpIdentifier, self.tree)
+ fcpIdentifier = config.fcpClient.getFile(
+ fcpKey,
+ fileName,
+ persistentUserData=PersistentRequestData(ClientName=unicode(self.objectName())).dump(),
+ **kws
+ )
+ item = self._createItemFromFcpRequest(config.fcpClient.getRequest(cpIdentifier))
- item.setData(
- self.HeaderIndexName,
- QtCore.Qt.DisplayRole,
- QtCore.QVariant(os.path.basename(fileName))
- )
- progressBar = QtGui.QProgressBar(self)
- progressBar.setRange(0, 0)
- self.tree.setItemWidget(item, self.HeaderIndexProgress, progressBar)
- self.fcpRequests[fcpIdentifier] = item
#########################################
@@ -208,6 +232,7 @@
item = self.fcpRequests.get(fcpRequest['Identifier'], None)
if item is not None:
progressBar = self.tree.itemWidget(item, self.HeaderIndexProgress)
+ progressBar.setRange(0, 1)
progressBar.setValue(progressBar.maximum())
def onFcpRequestFailed(self, fcpEvent, fcpRequest):
@@ -245,9 +270,16 @@
def onFcpRequestStarted(self, fcpEvent, fcpRequest):
- pass
-
-
+ if fcpRequest['RequestStatus'] & fcp2.ConstRequestStatus.Restored:
+ try:
+ requestData = PersistentRequestData.load(fcpRequest['PersistentUserData'])
+ except pmstruct.PMStructError:
+ pass
+ else:
+ if requestData.get('ClientName', None) == self.objectName():
+ item = self._createItemFromFcpRequest(fcpRequest)
+
+
#**********************************************************************************
#
#**********************************************************************************
@@ -260,13 +292,13 @@
app = QtGui.QApplication(sys.argv)
- mainWindow = Ui_MainWindow.MainWindow()
- viewWidget = Ui_View.ViewWidget(mainWindow)
+ mainWindow = MainWindow.MainWindow()
+ viewWidget = View.ViewWidget(mainWindow)
mainWindow.setCentralWidget(viewWidget)
viewWidget.addTopViews(
- Ui_ViewConnection.ViewConnectionWidget(None),
+ ViewConnection.ViewConnectionWidget(None),
ViewDownloadsWidget(None),
)
viewWidget.addBottomViews(ViewLogger.ViewLoggerWidget(None))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|