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.
|