show priorities for directories. fulfills feature request 1688

This commit is contained in:
Nick Lanham 2011-04-28 14:20:07 +02:00
parent e950cca059
commit 12ea65d188
2 changed files with 18 additions and 1 deletions

View File

@ -69,6 +69,7 @@ def format_pieces(num, size):
return "%d (%s)"%(num,deluge.common.fsize(size)) return "%d (%s)"%(num,deluge.common.fsize(size))
def format_priority(prio): def format_priority(prio):
if prio == -2: return "[Mixed]"
if prio < 0: return "-" if prio < 0: return "-"
pstring = deluge.common.FILE_PRIORITY[prio] pstring = deluge.common.FILE_PRIORITY[prio]
if prio > 0: if prio > 0:

View File

@ -152,6 +152,7 @@ class TorrentDetail(BaseMode, component.Component):
def set_state(self, state): def set_state(self, state):
log.debug("got state") log.debug("got state")
need_prio_update = False
if not self.file_list: if not self.file_list:
# don't keep getting the files once we've got them once # don't keep getting the files once we've got them once
if state.get("files"): if state.get("files"):
@ -160,9 +161,14 @@ class TorrentDetail(BaseMode, component.Component):
self._status_keys.remove("files") self._status_keys.remove("files")
else: else:
self.files_sep = "{!green,black,bold,underline!}%s"%(("Files (File list unknown)").center(self.cols)) self.files_sep = "{!green,black,bold,underline!}%s"%(("Files (File list unknown)").center(self.cols))
need_prio_update = True
self._fill_progress(self.file_list,state["file_progress"]) self._fill_progress(self.file_list,state["file_progress"])
for i,prio in enumerate(state["file_priorities"]): for i,prio in enumerate(state["file_priorities"]):
if self.file_dict[i][6] != prio:
need_prio_update = True
self.file_dict[i][6] = prio self.file_dict[i][6] = prio
if need_prio_update:
self.__fill_prio(self.file_list)
del state["file_progress"] del state["file_progress"]
del state["file_priorities"] del state["file_priorities"]
self.torrent_state = state self.torrent_state = state
@ -236,6 +242,16 @@ class TorrentDetail(BaseMode, component.Component):
tb += bd tb += bd
return tb return tb
def __fill_prio(self,fs):
for f in fs:
if f[3]: # dir, so fill in children and compute our prio
self.__fill_prio(f[3])
s = set([e[6] for e in f[3]]) # pull out all child prios and turn into a set
if len(s) > 1:
f[6] = -2 # mixed
else:
f[6] = s.pop()
def _update_columns(self): def _update_columns(self):
self.column_widths = [-1,15,15,20] self.column_widths = [-1,15,15,20]
req = sum(filter(lambda x:x >= 0,self.column_widths)) req = sum(filter(lambda x:x >= 0,self.column_widths))