X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c0d78035b8c76e719bf7c05ff3812eb5a6ce9fe3..d459fe1406ae27625c9e5988ff894f6be4a62519:/lib/python/Components/FileList.py?ds=sidebyside diff --git a/lib/python/Components/FileList.py b/lib/python/Components/FileList.py index ce1f236f..4238ed1a 100644 --- a/lib/python/Components/FileList.py +++ b/lib/python/Components/FileList.py @@ -32,12 +32,12 @@ EXTENSIONS = { def FileEntryComponent(name, absolute = None, isDir = False): res = [ (absolute, isDir) ] - res.append((eListboxPythonMultiContent.TYPE_TEXT, 35, 1, 200, 20, 0, RT_HALIGN_LEFT, name)) + res.append((eListboxPythonMultiContent.TYPE_TEXT, 35, 1, 470, 20, 0, RT_HALIGN_LEFT, name)) if isDir: png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "extensions/directory.png")) else: extension = name.split('.') - extension = extension[-1] + extension = extension[-1].lower() if EXTENSIONS.has_key(extension): png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "extensions/" + EXTENSIONS[extension] + ".png")) else: @@ -52,6 +52,7 @@ class FileList(MenuList, HTMLComponent, GUIComponent): GUIComponent.__init__(self) self.l = eListboxPythonMultiContent() + self.current_directory = None self.useServiceRef = useServiceRef self.showDirectories = showDirectories self.showFiles = showFiles @@ -68,9 +69,10 @@ class FileList(MenuList, HTMLComponent, GUIComponent): def getFileList(self): return self.list - def changeDir(self, directory): + def changeDir(self, directory, select = None): self.list = [] + self.current_directory = directory directories = [] files = [] @@ -89,13 +91,15 @@ class FileList(MenuList, HTMLComponent, GUIComponent): else: files.append(s) print s.getName(), s.flags + directories.sort() + files.sort() else: files = os.listdir(directory) files.sort() tmpfiles = files[:] for x in tmpfiles: if os.path.isdir(directory + x): - directories.append(x) + directories.append(directory + x + "/") files.remove(x) if directory != "/" and self.showDirectories and not self.isTop: @@ -120,20 +124,42 @@ class FileList(MenuList, HTMLComponent, GUIComponent): self.list.append(FileEntryComponent(name = name, absolute = x , isDir = False)) else: self.list.append(FileEntryComponent(name = name, absolute = x , isDir = False)) - + self.l.setList(self.list) + if select is not None: + i = 0 + self.moveToIndex(0) + for x in self.list: + p = x[0][0] + + if isinstance(p, eServiceReference): + p = p.getPath() + + if p == select: + self.moveToIndex(i) + i += 1 + + def getCurrentDirectory(self): + return self.current_directory + def canDescent(self): return self.getSelection()[1] def descent(self): - self.changeDir(self.getSelection()[0]) + self.changeDir(self.getSelection()[0], select = self.current_directory) def getFilename(self): - return self.getSelection()[0].getPath() + x = self.getSelection()[0] + if isinstance(x, eServiceReference): + x = x.getPath() + return x def getServiceRef(self): - return self.getSelection()[0] + x = self.getSelection()[0] + if isinstance(x, eServiceReference): + return x + return None GUI_WIDGET = eListbox