sorting the FileList
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Wed, 22 Feb 2006 00:31:18 +0000 (00:31 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Wed, 22 Feb 2006 00:31:18 +0000 (00:31 +0000)
lib/python/Components/FileList.py
lib/python/Plugins/test/plugin.py

index d0ca59f..961eb09 100644 (file)
@@ -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))
index d054a82..e69de29 100644 (file)
@@ -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)