SF.net SVN: fclient: [61] trunk/fclient/fclient_widgets/download_widget.py
Status: Pre-Alpha
Brought to you by:
jurner
From: <jU...@us...> - 2007-11-08 13:21:13
|
Revision: 61 http://fclient.svn.sourceforge.net/fclient/?rev=61&view=rev Author: jUrner Date: 2007-11-08 05:21:17 -0800 (Thu, 08 Nov 2007) Log Message: ----------- some more user options ++ item tips ++ fixed status for RequestInfo Modified Paths: -------------- trunk/fclient/fclient_widgets/download_widget.py Modified: trunk/fclient/fclient_widgets/download_widget.py =================================================================== --- trunk/fclient/fclient_widgets/download_widget.py 2007-11-08 13:18:59 UTC (rev 60) +++ trunk/fclient/fclient_widgets/download_widget.py 2007-11-08 13:21:17 UTC (rev 61) @@ -20,6 +20,7 @@ from fclient_lib.qt4ex import settingsbase +from fclient_lib.qt4ex.ctrls import areatips from fclient_lib.qt4ex.ctrls import progressbarwrap from fclient_lib.qt4ex.ctrls import treewidgetwrap @@ -29,8 +30,6 @@ del parentdir #<-- rel import hack - -import thread import time from PyQt4 import QtCore, QtGui #***************************************************************************** @@ -55,7 +54,12 @@ ('ColorProgressBarStopped', ['toString', 'gray']), ('ColorProgressBarStopped', ['toString', 'white']), + ('MaxSimultaniousDownloads', ['toInt', 2]), + ('MaxNewDownloadsPerHop', ['toInt', 100]), + ('ClearCompletedDownloads', ['toBool', False]), + ('ItemTipsShow', ['toBool', True]), + ('ItemTipsDelay', ['toInt', areatips.DEFAULT_SHOW_DELAY]) ) #***************************************************************************** @@ -256,16 +260,12 @@ connectionName='', directory=None, uris=None, - maxQueuedItemsPerHop=200, - maxSimultaniousDownloads=2, cfg=None ): """ @param parent: (QWidget) parent or None @param directory: (str) directory to sownload items to or None to use default directory @param connectionName: name of the connection to the node - @param maxQueuedItemsPerHop: maximum number of items that can be e added in one hop - @param maxSimultaniousDownloads: maximim number of simultaneous downloads @param cfg: (configConfig) instance or None """ @@ -281,13 +281,15 @@ } self._fcpClient = None self._isCreated = False - self._lock = thread.allocate_lock() - self._maxQueuedItemsPerHop = maxQueuedItemsPerHop #TODO: move to settings - self._maxSimultaniousDownloads = maxSimultaniousDownloads #TODO: move to settings + self._itemTips = areatips.ItemTips(self) self._strings = None - self._userSettings = UserSettings() + + # setup item tips + self._itemTips.setEnabled(self._userSettings['ItemTipsShow']) + self._itemTips.setShowDelay(self._userSettings['ItemTipsDelay']) + # setup tree self.setSelectionMode(self.ContiguousSelection) header = self.header() @@ -367,22 +369,26 @@ progress = item.progressWidget(self) status = DownloadItem.StatusError + + item.setRequestStatus(status, self._strings.itemStatus[status]) + item.setRequestError(event, params) - progress.setRange(0, 1) - progress.setValue(1) + # get rid of progress pending indicator if necessary + if progress.maximum() == progress.minimum() == 0: + progress.setRange(0, 1) + progress.setValue(0) progress.setColors( colorBar=self._userSettings['ColorProgressBarError'], colorBg=self._userSettings['ColorProgressBgError'] ) - item.setRequestStatus(status, self._strings.itemStatus[status]) - item.setRequestError(event, params) - + def handleFcpClientIdle(self, event, params): # check if there are sownloads queued n = 0 - while self._downloads['DownloadQueue'] and n < self._maxQueuedItemsPerHop: + maxNewDls = self._userSettings['MaxNewDownloadsPerHop'] + while self._downloads['DownloadQueue'] and n < maxNewDls: n += 1 parent, uri = self._downloads['DownloadQueue'].pop(0) @@ -418,7 +424,7 @@ items[status].append(item) # start items with info requested - itemsToBeStarted = self._maxSimultaniousDownloads - itemsBusy + itemsToBeStarted = self._userSettings['MaxSimultaniousDownloads'] - itemsBusy if itemsToBeStarted > 0: def sortf(item1, item2): return cmp(item1.requestInitTime(), item2.requestInitTime()) @@ -443,6 +449,7 @@ item = pendingItems.pop(0) progress = progressbarwrap.ProgressBarEx(self) + status = DownloadItem.StatusRequestInfo uri = item.requestUri() progress.setRange(0, 0) @@ -452,6 +459,7 @@ colorBg=self._userSettings['ColorProgressBgRequestInfo'] ) item.setProgressWidget(self, progress) + item.setRequestStatus(status, self._strings.itemStatus[status]) identifier = self._fcpClient.clientRequestInfo(uri) self._downloads['Downloads'][identifier] = item This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |