+ files = []
+
+ if directory is None and self.showMountpoints: # present available mountpoints
+ for p in harddiskmanager.getMountedPartitions():
+ 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 = [ ]
+ 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)
+
+ while 1:
+ s = list.getNext()
+ if not s.valid():
+ del list
+ break
+ if s.flags & s.mustDescent:
+ directories.append(s.getPath())
+ else:
+ files.append(s)
+ directories.sort()
+ files.sort()
+ else:
+ if os_path.exists(directory):
+ files = listdir(directory)
+ files.sort()
+ tmpfiles = files[:]
+ for x in tmpfiles:
+ if os_path.isdir(directory + x):
+ directories.append(directory + x + "/")
+ files.remove(x)
+
+ 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):
+ self.list.append(FileEntryComponent(name = "<" +_("Parent Directory") + ">", absolute = '/'.join(directory.split('/')[:-2]) + '/', isDir = True))