from HTMLComponent import *
from GUIComponent import *
+import re
from MenuList import MenuList
return res
class FileList(HTMLComponent, GUIComponent, MenuList):
- def __init__(self, directory, showDirectories = True, showFiles = True):
+ def __init__(self, directory, showDirectories = True, showFiles = True, matchingPattern = None):
GUIComponent.__init__(self)
self.l = eListboxPythonMultiContent()
self.showDirectories = showDirectories
self.showFiles = showFiles
+ # example: matching .nfi and .ts files: "^.*\.(nfi|ts)"
+ self.matchingPattern = matchingPattern
self.changeDir(directory)
self.l.setFont(0, gFont("Regular", 18))
if self.showDirectories:
self.list.append(FileEntryComponent(name = x, absolute = directory + x + "/" , isDir = True))
elif self.showFiles:
+ if self.matchingPattern is not None:
+ if re.compile(self.matchingPattern).search(x):
+ self.list.append(FileEntryComponent(name = x, absolute = directory + x , isDir = False))
+ else:
self.list.append(FileEntryComponent(name = x, absolute = directory + x , isDir = False))
+
self.l.setList(self.list)
def GUIcreate(self, parent):
from Components.Label import Label
from Components.Input import Input
from Components.GUIComponent import *
+from Components.Pixmap import Pixmap
from Components.FileList import FileEntryComponent, FileList
from Plugins.Plugin import PluginDescriptor
<screen position="100,100" size="550,400" title="Test" >
<!--widget name="text" position="0,0" size="550,25" font="Regular;20" /-->
<widget name="list" position="10,0" size="190,250" scrollbarMode="showOnDemand" />
+ <widget name="pixmap" position="200,0" size="190,250" />
</screen>"""
def __init__(self, session, args = None):
self.skin = Test.skin
Screen.__init__(self, session)
- self["list"] = FileList("/")
-
+ self["list"] = FileList("/", matchingPattern = "^.*\.png")
+ self["pixmap"] = Pixmap()
+
#self["text"] = Input("1234", maxSize=True, type=Input.NUMBER)
self["actions"] = NumberActionMap(["WizardActions", "InputActions"],
selection = self["list"].getSelection()
if selection[1] == True: # isDir
self["list"].changeDir(selection[0])
+ else:
+ self["pixmap"].instance.setPixmapFromFile(selection[0])
def keyNumberGlobal(self, number):
print "pressed", number