X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/958251e457e49c86366beff69662d36f052d4cc7..703e28ce14566d6093d98feca0c96a0468936747:/lib/python/Components/FileList.py diff --git a/lib/python/Components/FileList.py b/lib/python/Components/FileList.py index 66270e60..961eb09d 100644 --- a/lib/python/Components/FileList.py +++ b/lib/python/Components/FileList.py @@ -17,14 +17,28 @@ RT_VALIGN_TOP = 0 RT_VALIGN_CENTER = 8 RT_VALIGN_BOTTOM = 16 +EXTENSIONS = { + "mp3": "music", + "wav": "music", + "jpg": "picture", + "jpeg": "picture", + "png": "picture", + "ts": "movie", + "avi": "movie", + "mpg": "movie", + "mpeg": "movie", + } + def FileEntryComponent(name, absolute, isDir = False): res = [ (absolute, isDir) ] res.append((eListboxPythonMultiContent.TYPE_TEXT, 35, 1, 200, 20, 0, RT_HALIGN_LEFT ,name)) if isDir: png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "/extensions/directory.png")) else: - # FIXME: detect file extensions correctly - png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "/extensions/" + name[-3:] + ".png")) + extension = name.split('.') + extension = extension[-1] + if EXTENSIONS.has_key(extension): + png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "/extensions/" + EXTENSIONS[extension] + ".png")) if png is not None: res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 10, 2, 20, 20, png)) @@ -49,15 +63,25 @@ class FileList(HTMLComponent, GUIComponent, MenuList): def changeDir(self, directory): self.list = [] - directories = os.listdir(directory) + files = os.listdir(directory) + files.sort() if directory != "/" and self.showDirectories: self.list.append(FileEntryComponent(name = "..", absolute = '/'.join(directory.split('/')[:-2]) + '/', isDir = True)) - for x in directories: + + directories = [] + for x in files: if os.path.isdir(directory + x): - if self.showDirectories: - self.list.append(FileEntryComponent(name = x, absolute = directory + x + "/" , isDir = True)) - elif self.showFiles: + directories.append(x) + files.remove(x) + + if self.showDirectories: + for x in directories: + self.list.append(FileEntryComponent(name = x, absolute = directory + x + "/" , isDir = True)) + + + if self.showFiles: + for x in files: if self.matchingPattern is not None: if re.compile(self.matchingPattern).search(x): self.list.append(FileEntryComponent(name = x, absolute = directory + x , isDir = False))