return res
class FileList(MenuList):
- def __init__(self, directory, showDirectories = True, showFiles = True, matchingPattern = None, useServiceRef = False, isTop = False, enableWrapAround = False):
+ def __init__(self, directory, showDirectories = True, showFiles = True, matchingPattern = None, useServiceRef = False, isTop = False, enableWrapAround = False, additionalExtensions = None):
MenuList.__init__(self, list, enableWrapAround, eListboxPythonMultiContent)
+ self.additional_extensions = additionalExtensions
self.mount_point = None
self.current_directory = None
self.useServiceRef = useServiceRef
# if we are just entering from the list of mount points:
if self.current_directory is None:
- self.mount_point = directory
+ if directory is None:
+ self.mount_point = None
+ else:
+ # Sort Mountpoints by length (longest first)
+ sortedp = harddiskmanager.getMountedPartitions()
+ sortedp.sort(key=lambda p: 0 - len(p.mountpoint))
+
+ # Search for the longest matching mp (should at least match /)
+ for p in sortedp:
+ if directory.startswith(p.mountpoint):
+ self.mount_point = p.mountpoint
+ if p.mountpoint != "/":
+ self.mount_point += "/"
+ break
self.current_directory = directory
directories = []
files = []
directories = [ ]
elif self.useServiceRef:
root = eServiceReference("2:0:1:0:0:0:0:0:0:0:" + directory)
+ if self.additional_extensions:
+ root.setName(self.additional_extensions)
serviceHandler = eServiceCenter.getInstance()
list = serviceHandler.list(root)