From 4df5c9884064664ed716fdd79cdd9d56b74be7e2 Mon Sep 17 00:00:00 2001 From: Stefan Pluecken Date: Wed, 22 Feb 2006 00:31:18 +0000 Subject: [PATCH] sorting the FileList --- lib/python/Components/FileList.py | 22 +++++++++---- 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 d0ca59f..961eb09 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 d054a82..e69de29 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 = """ - - - - - """ - 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) -- 2.7.4