diff options
| -rw-r--r-- | lib/python/Components/FileList.py | 10 | ||||
| -rw-r--r-- | lib/python/Plugins/test/plugin.py | 9 |
2 files changed, 16 insertions, 3 deletions
diff --git a/lib/python/Components/FileList.py b/lib/python/Components/FileList.py index a6b5bf2f..66270e60 100644 --- a/lib/python/Components/FileList.py +++ b/lib/python/Components/FileList.py @@ -1,5 +1,6 @@ from HTMLComponent import * from GUIComponent import * +import re from MenuList import MenuList @@ -30,12 +31,14 @@ def FileEntryComponent(name, absolute, isDir = False): 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)) @@ -55,7 +58,12 @@ class FileList(HTMLComponent, GUIComponent, MenuList): 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): diff --git a/lib/python/Plugins/test/plugin.py b/lib/python/Plugins/test/plugin.py index 0a375335..668515f4 100644 --- a/lib/python/Plugins/test/plugin.py +++ b/lib/python/Plugins/test/plugin.py @@ -5,6 +5,7 @@ from Components.ActionMap import NumberActionMap 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 @@ -15,13 +16,15 @@ class Test(Screen): <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"], @@ -52,6 +55,8 @@ class Test(Screen): 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 |
