aboutsummaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>2006-02-21 19:31:56 +0000
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>2006-02-21 19:31:56 +0000
commit958251e457e49c86366beff69662d36f052d4cc7 (patch)
treed27c4219726df2a1e7f73cd9901efd2a594a4a1b /lib/python
parentf458abcfbe30c3e3062a41b88d3244147bdc0607 (diff)
downloadenigma2-958251e457e49c86366beff69662d36f052d4cc7.tar.gz
enigma2-958251e457e49c86366beff69662d36f052d4cc7.zip
add ability to use regular expressions to filter files to display in the FileList
transform the test plugin into an image viewer for png files
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/Components/FileList.py10
-rw-r--r--lib/python/Plugins/test/plugin.py9
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