X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/04f4636324ab06c5a3a4f618100048e159eaf6f9..b3135c06dd527e0ed65b6ffa921f830132f7d8b9:/lib/python/Components/FileList.py diff --git a/lib/python/Components/FileList.py b/lib/python/Components/FileList.py index 5824747d..a93d4441 100644 --- a/lib/python/Components/FileList.py +++ b/lib/python/Components/FileList.py @@ -1,27 +1,32 @@ -import re - +from re import compile as re_compile from os import path as os_path, listdir from MenuList import MenuList from Components.Harddisk import harddiskmanager from Tools.Directories import SCOPE_SKIN_IMAGE, resolveFilename -from enigma import RT_HALIGN_LEFT, eListbox, eListboxPythonMultiContent, \ +from enigma import RT_HALIGN_LEFT, eListboxPythonMultiContent, \ eServiceReference, eServiceCenter, gFont from Tools.LoadPixmap import LoadPixmap EXTENSIONS = { + "m4a": "music", + "mp2": "music", "mp3": "music", "wav": "music", "ogg": "music", + "flac": "music", "jpg": "picture", "jpeg": "picture", "png": "picture", "bmp": "picture", "ts": "movie", "avi": "movie", + "divx": "movie", "mpg": "movie", "mpeg": "movie", + "mkv": "movie", + "mp4": "movie" } def FileEntryComponent(name, absolute = None, isDir = False): @@ -42,7 +47,7 @@ def FileEntryComponent(name, absolute = None, isDir = False): return res class FileList(MenuList): - def __init__(self, directory, showDirectories = True, showFiles = True, showMountpoints = True, matchingPattern = None, useServiceRef = False, inhibitDirs = False, inhibitMounts = False, enableWrapAround = False, additionalExtensions = None): + def __init__(self, directory, showDirectories = True, showFiles = True, showMountpoints = True, matchingPattern = None, useServiceRef = False, inhibitDirs = False, inhibitMounts = False, isTop = False, enableWrapAround = False, additionalExtensions = None): MenuList.__init__(self, list, enableWrapAround, eListboxPythonMultiContent) self.additional_extensions = additionalExtensions self.mountpoints = [] @@ -52,6 +57,7 @@ class FileList(MenuList): self.showDirectories = showDirectories self.showMountpoints = showMountpoints self.showFiles = showFiles + self.isTop = isTop # example: matching .nfi and .ts files: "^.*\.(nfi|ts)" self.matchingPattern = matchingPattern self.inhibitDirs = inhibitDirs or [] @@ -127,8 +133,8 @@ class FileList(MenuList): if directory is None and self.showMountpoints: # present available mountpoints for p in harddiskmanager.getMountedPartitions(): - path = os_path.join(p.mountpoint,"") - if not self.inhibitMounts or ((not path in self.inhibitMounts) and (not self.inParentDirs(path, self.inhibitDirs))): + path = os_path.join(p.mountpoint, "") + if path not in self.inhibitMounts and not self.inParentDirs(path, self.inhibitDirs): self.list.append(FileEntryComponent(name = p.description, absolute = path, isDir = True)) files = [ ] directories = [ ] @@ -160,7 +166,7 @@ class FileList(MenuList): directories.append(directory + x + "/") files.remove(x) - if directory is not None and self.showDirectories: + if directory is not None and self.showDirectories and not self.isTop: if directory == self.current_mountpoint and self.showMountpoints: self.list.append(FileEntryComponent(name = "<" +_("List of Storage Devices") + ">", absolute = None, isDir = True)) elif (directory != "/") and not (self.inhibitMounts and self.getMountpoint(directory) in self.inhibitMounts): @@ -181,7 +187,7 @@ class FileList(MenuList): path = directory + x name = x - if (self.matchingPattern is None) or re.compile(self.matchingPattern).search(path): + if (self.matchingPattern is None) or re_compile(self.matchingPattern).search(path): self.list.append(FileEntryComponent(name = name, absolute = x , isDir = False)) self.l.setList(self.list)