diff options
| author | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2006-02-22 00:31:18 +0000 |
|---|---|---|
| committer | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2006-02-22 00:31:18 +0000 |
| commit | 4df5c9884064664ed716fdd79cdd9d56b74be7e2 (patch) | |
| tree | 9633cf7b8f9bd41ceb826a85d530302125507344 /lib/python | |
| parent | e91e864a3a432663706356c342d4d382a5bc0d3b (diff) | |
| download | enigma2-4df5c9884064664ed716fdd79cdd9d56b74be7e2.tar.gz enigma2-4df5c9884064664ed716fdd79cdd9d56b74be7e2.zip | |
sorting the FileList
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/Components/FileList.py | 22 | ||||
| -rw-r--r-- | lib/python/Plugins/test/plugin.py | 69 |
2 files changed, 16 insertions, 75 deletions
diff --git a/lib/python/Components/FileList.py b/lib/python/Components/FileList.py index d0ca59ff..961eb09d 100644 --- a/lib/python/Components/FileList.py +++ b/lib/python/Components/FileList.py @@ -36,7 +36,7 @@ def FileEntryComponent(name, absolute, isDir = False): png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "/extensions/directory.png")) else: extension = name.split('.') - extension = extension[len(extension) - 1] + extension = extension[-1] if EXTENSIONS.has_key(extension): png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "/extensions/" + EXTENSIONS[extension] + ".png")) if png is not None: @@ -63,15 +63,25 @@ class FileList(HTMLComponent, GUIComponent, MenuList): def changeDir(self, directory): self.list = [] - directories = os.listdir(directory) + files = os.listdir(directory) + files.sort() if directory != "/" and self.showDirectories: self.list.append(FileEntryComponent(name = "..", absolute = '/'.join(directory.split('/')[:-2]) + '/', isDir = True)) - for x in directories: + + directories = [] + for x in files: if os.path.isdir(directory + x): - if self.showDirectories: - self.list.append(FileEntryComponent(name = x, absolute = directory + x + "/" , isDir = True)) - elif self.showFiles: + directories.append(x) + files.remove(x) + + if self.showDirectories: + for x in directories: + self.list.append(FileEntryComponent(name = x, absolute = directory + x + "/" , isDir = True)) + + + if self.showFiles: + for x in files: if self.matchingPattern is not None: if re.compile(self.matchingPattern).search(x): self.list.append(FileEntryComponent(name = x, absolute = directory + x , isDir = False)) diff --git a/lib/python/Plugins/test/plugin.py b/lib/python/Plugins/test/plugin.py index d054a821..e69de29b 100644 --- a/lib/python/Plugins/test/plugin.py +++ b/lib/python/Plugins/test/plugin.py @@ -1,69 +0,0 @@ -from enigma import * -from Screens.Screen import Screen -from Screens.MessageBox import MessageBox -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 - -import os - -class Test(Screen): - skin = """ - <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("/", matchingPattern = "^.*\.(png|avi|mp3|mpeg)") - self["pixmap"] = Pixmap() - - #self["text"] = Input("1234", maxSize=True, type=Input.NUMBER) - - self["actions"] = NumberActionMap(["WizardActions", "InputActions"], - { - "ok": self.ok, - "back": self.close, -# "left": self.keyLeft, -# "right": self.keyRight, - "1": self.keyNumberGlobal, - "2": self.keyNumberGlobal, - "3": self.keyNumberGlobal, - "4": self.keyNumberGlobal, - "5": self.keyNumberGlobal, - "6": self.keyNumberGlobal, - "7": self.keyNumberGlobal, - "8": self.keyNumberGlobal, - "9": self.keyNumberGlobal, - "0": self.keyNumberGlobal - }, -1) - - def keyLeft(self): - self["text"].left() - - def keyRight(self): - self["text"].right() - - def ok(self): - 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 - self["text"].number(number) - -def main(session): - session.open(Test) - -def Plugins(): - return PluginDescriptor(name="Test", description="plugin to test some capabilities", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=main) |
