Example #1
0
    def updateList(self):
        while self.proc.poll() is None:
            output = self.proc.stdout.readline()
            if (output != ""):
                print("stout: " + output.rstrip())
                self.data.append({"name": output.rstrip()})

            # output = self.proc.stderr.readline()
            # if(output != ""):
            #     print("sterr: " + output.rstrip())
            #     self.data.append({
            #         "name": output.rstrip()
            #     })

            self.initList()
            self.setSelection(len(self.data) - 1)

            RenderControl.setDirty()

        self.data.append({"name": ""})

        self.data.append({"name": "Task finished, press 'B' to go back"})

        self.initList()
        self.setSelection(len(self.data) - 1)

        RenderControl.setDirty()

        self.isTerminated = True
        TaskHandler.removePeriodicTask(self.updateTask)
Example #2
0
    def handleEvents(self, events):     
        if(self.overlay != None):
            self.overlay.handleEvents(events)
            return

        for event in events:    
            if event.type == pygame.KEYDOWN:                        
                if event.key == Keys.DINGOO_BUTTON_LEFT:
                    self.moveFolderUp()
                    RenderControl.setDirty()
            if event.type == pygame.KEYUP:         
                if event.key == Keys.DINGOO_BUTTON_START:
                    if(self.selectFolder):
                        if(self.entryList[self.currentIndex]["isFolder"] and self.entryList[self.currentIndex]["name"] != ".."):
                            self.callback(self.currentPath + "/" + self.entryList[self.currentIndex]["name"])
                            
                        else:
                            self.callback(self.currentPath)
                            
                        RenderControl.setDirty()
                        return
                    else:
                        self.onSelect(Keys.DINGOO_BUTTON_START)
               

        AbstractList.AbstractList.handleEvents(self, events)
Example #3
0
    def __init__(self, screen, titel, data, options, callback):
        AbstractList.AbstractList.__init__(self, screen, titel, options)

        self.options = options
        self.callback = callback
        self.data = data

        self.yFolderOffset = (self.listEntryHeight -
                              self.folderIcon.get_height()) / 2
        self.xFolderOffset = (self.listEntryHeight -
                              self.folderIcon.get_width()) / 2

        self.yFileOffset = (self.listEntryHeight -
                            self.fileIcon.get_height()) / 2
        self.xFileOffset = (self.listEntryHeight -
                            self.fileIcon.get_width()) / 2

        self.initList()

        res = ResumeHandler.getResumeFile()

        if (res != None and res["line"] != None
                and ("type" in options and options["type"] != "lastPlayed"
                     and options["type"] != "favourites")):
            self.setSelection(res["line"])
            self.onChange()

            if (not self.currentSelection == None):
                self.previewPath = self.currentSelection["preview"]
                self.preview_final = self.previewPath

            RenderControl.setDirty()

        AbstractList.AbstractList.updatePreview(self)
        self.onChange()
Example #4
0
    def optionsCallback(self, selection, text):
        self.overlay = None

        if (not Configuration.isRS97()):
            self.configOptions = self.configOptions + json.load(
                open('config/legacy.json'))

        if (selection == 0):
            self.subComponent = ConfigMenu.ConfigMenu(self.screen, "Add new link",{"textColor":(55,55,55), "backgroundColor":(221,221,221), "useSidebar":True}, \
                                        self.getEmptyData() ,self.configOptions ,self.addEditCallback)
            footer = Footer.Footer([("theme/direction.png", "select")],
                                   [("theme/b_button.png", "back"),
                                    ("theme/a_button.png", "change"),
                                    ("theme/start_button.png", "save")],
                                   (255, 255, 255))
            self.subComponent.setFooter(footer)
            self.subComponent.setConfigCallback(self.configCallback)
        if (selection == 1):
            self.subComponent = ConfigMenu.ConfigMenu(self.screen, "Edit link",{"textColor":(55,55,55), "backgroundColor":(221,221,221)}, \
                                        self.currentSelection ,self.configOptions ,self.addEditCallback)
            footer = Footer.Footer([("theme/direction.png", "select")],
                                   [("theme/b_button.png", "back"),
                                    ("theme/a_button.png", "change"),
                                    ("theme/start_button.png", "save")],
                                   (255, 255, 255))
            self.subComponent.setFooter(footer)
            self.subComponent.setConfigCallback(self.configCallback)
        if (selection == 2):
            self.overlay = ConfirmOverlay.ConfirmOverlay(
                "really delete?", (255, 255, 255),
                [("theme/b_button.png", "back"),
                 ("theme/a_button.png", "delete")], self.deleteCallback)
            RenderControl.setDirty()
Example #5
0
    def handleEvents(self, events):
        if (self.subComponent != None):
            self.subComponent.handleEvents(events)
            return

        if (self.overlay != None):
            self.overlay.handleEvents(events)
            return

        for event in events:
            if event.type == pygame.KEYDOWN:
                if event.key == Keys.DINGOO_BUTTON_SELECT:
                    if ("allowEdit" in self.config["options"]
                            and self.config["options"]["allowEdit"]):
                        if (len(self.options) == 0):
                            self.overlay = SelectionMenu.SelectionMenu(
                                self.screen, ["add"], self.optionsCallback)
                        else:
                            self.overlay = SelectionMenu.SelectionMenu(
                                self.screen, ["add", "edit", "remove"],
                                self.optionsCallback)
                        RenderControl.setDirty()

        if (self.overlay is None):
            AbstractList.AbstractList.handleEvents(self, events)
Example #6
0
    def updateBattery(self):
        bat = self.getCurrentBatteryImage()
        self.readBatteryLevel()

        if (bat != self.getCurrentBatteryImage()):
            self.updateHeader()
            RenderControl.setDirty()
Example #7
0
    def handleEvents(self, events):
        if (self.subComponent != None):
            self.subComponent.handleEvents(events)
            return

        if (self.overlay != None):
            self.overlay.handleEvents(events)
            return

        for event in events:
            if event.type == pygame.KEYDOWN:
                self.keyDown = True
                if (self.isTerminated):
                    if event.key == Keys.DINGOO_BUTTON_UP:
                        if (not len(self.entryList) <= 1):
                            self.up()
                            self.onChange()
                            RenderControl.setDirty()
                    if event.key == Keys.DINGOO_BUTTON_DOWN:
                        if (not len(self.entryList) <= 1):
                            self.down()
                            self.onChange()
                            RenderControl.setDirty()
                    if event.key == Keys.DINGOO_BUTTON_L:
                        self.up(self.maxListEntries)
                        self.onChange()
                        RenderControl.setDirty()
                    if event.key == Keys.DINGOO_BUTTON_R:
                        self.down(self.maxListEntries)
                        self.onChange()
                        RenderControl.setDirty()

                    if event.key == Keys.DINGOO_BUTTON_B:
                        self.callback()
                        RenderControl.setDirty()
Example #8
0
    def installIPK(self):

        print("Opening ipk file selection")
        options = {}
        options["textColor"] = (55, 55, 55)

        options["useSidebar"] = False
        options["useGamelist"] = False
        options["fileFilter"] = [".ipk", ".IPK"]
        options["useFileFilter"] = True
        options["limitSelection"] = False
        options["hideFolders"] = False
        options["selectionPath"] = "/home/retrofw"

        self.subComponent = FileChooser.FileChooser(self.screen,
                                                    "IPK Selection",
                                                    "/home/retrofw", False,
                                                    options,
                                                    self.installIPKCallback)
        footer = Footer.Footer([("theme/direction.png", "select")],
                               [("theme/b_button.png", "back"),
                                ("theme/a_button.png", "select")],
                               (255, 255, 255))
        self.subComponent.setFooter(footer)
        RenderControl.setDirty()
Example #9
0
    def handleEvents(self, events):
        if (self.subComponent != None):
            self.subComponent.handleEvents(events)
            return

        if (self.overlay != None):
            self.overlay.handleEvents(events)
            return

        for event in events:
            if event.type == pygame.KEYDOWN:
                if event.key == Keys.DINGOO_BUTTON_SELECT:

                    if (len(self.data) == 0):
                        self.overlay = SelectionMenu.SelectionMenu(
                            self.screen, ["install new"], self.optionsCallback)
                    else:
                        self.overlay = SelectionMenu.SelectionMenu(
                            self.screen, ["install new", "uninstall"],
                            self.optionsCallback)

                    RenderControl.setDirty()

        if (self.overlay is None):
            NativeAppList.NativeAppList.handleEvents(self, events)
Example #10
0
    def installIPKCallback(self,
                           selection,
                           key=Keys.DINGOO_BUTTON_A,
                           direct=False):
        print(selection)
        if (selection.lower().find("pymenu-") != -1):
            self.subComponent = None
            self.overlay = ConfirmOverlay.ConfirmOverlay(
                "Install with Gmenu", [("theme/b_button.png", "back")],
                self.pyMenuSelectedCallback)

            RenderControl.setDirty()
            return

        if (selection != None):
            #cmd = "opkg install " + selection
            cmd = ["opkg", "install", selection, "--force-reinstall"]
            #cmd = [ "ping","localhost"]

            self.subComponent = ProgramExecuter.ProgramExecuter(
                self.screen, "Installing IPK", cmd, self.executerCallback)
            self.subComponent.setFooter(None)

        else:
            self.subComponent = None
Example #11
0
    def optionsCallback(self, selection, text):
        self.overlay = None

        if (text == "add"):
            self.subComponent = ConfigMenu.ConfigMenu(self.screen, "Add new emulator",{"textColor":(55,55,55), "backgroundColor":(221,221,221), "useSidebar":True}, \
                                        self.getEmptyData() ,self.configOptions ,self.addEditCallback)
            footer = Footer.Footer([("theme/direction.png", "select")],
                                   [("theme/b_button.png", "back"),
                                    ("theme/a_button.png", "change"),
                                    ("theme/start_button.png", "save")],
                                   (255, 255, 255))
            self.subComponent.setFooter(footer)
            self.subComponent.setConfigCallback(self.configCallback)
        if (text == "edit"):
            self.subComponent = ConfigMenu.ConfigMenu(self.screen, "Edit emulator",{"textColor":(55,55,55), "backgroundColor":(221,221,221)}, \
                                        self.currentSelection ,self.configOptions ,self.addEditCallback)
            footer = Footer.Footer([("theme/direction.png", "select")],
                                   [("theme/b_button.png", "back"),
                                    ("theme/a_button.png", "change"),
                                    ("theme/start_button.png", "save")],
                                   (255, 255, 255))
            self.subComponent.setFooter(footer)
            self.subComponent.setConfigCallback(self.configCallback)
        if (text == "remove"):
            self.overlay = ConfirmOverlay.ConfirmOverlay(
                "really delete?", [("theme/b_button.png", "back"),
                                   ("theme/a_button.png", "delete")],
                self.deleteCallback)
            RenderControl.setDirty()
Example #12
0
    def openSettings(self):
        options = json.load(open('config/options.json'))
        theme = None
        for opt in options:
            if opt["id"] == "themeName":
                theme = opt

        if (theme != None):
            theme["values"] = []
            theme["names"] = []

            itemlist = os.listdir("theme/themes")
            for item in itemlist:
                if (item.endswith(".json")):
                    theme["values"].append(item.replace(".json", ""))
                    theme["names"].append(item.replace(".json", ""))


        self.subComponent = ConfigMenu.ConfigMenu(self.screen, "General Settings (PyMenu v" + str(self.config["version"]) + ")",{"textColor":(255,255,255), "backgroundColor":(0,0,0)}, \
                                        Configuration.getPathData("options"), options ,self.configCallback)
        footer = Footer.Footer([("theme/direction.png", "select")],
                               [("theme/b_button.png", "back"),
                                ("theme/a_button.png", "change"),
                                ("theme/start_button.png", "save")],
                               (255, 255, 255))
        self.subComponent.setFooter(footer)
        RenderControl.setDirty()
Example #13
0
    def addEditCallback(self, entry):
        self.subComponent = None

        print(entry)

        if (entry == None):
            self.reload()
            return

        if (entry["background"] == None
                or not os.path.isfile(entry["background"])):
            print("Background does not exist! ")
            self.reload()
            return

        if (entry["icon"] == None or not os.path.isfile(entry["icon"])):
            print("Icon does not exist! ")
            self.reload()
            return

        if (entry != None and not entry in self.config["mainMenu"]):
            self.config["mainMenu"].insert(self.currentIndex, entry)

        Configuration.saveConfiguration()
        self.loadSystemImages()
        RenderControl.setDirty()
Example #14
0
    def optionsCallback(self, selection, text):
        self.overlay = None

        opt = Theme.getConfigOptions()

        if (text == "add"):
            opt["useSidebar"] = True
            self.subComponent = ConfigMenu.ConfigMenu(self.screen, "Add new link",opt, \
                                        self.getEmptyData() ,self.configOptions ,self.addEditCallback)
            footer = Footer.Footer([("theme/direction.png", "select")],
                                   [("theme/b_button.png", "back"),
                                    ("theme/a_button.png", "change"),
                                    ("theme/start_button.png", "save")],
                                   opt["footerFontColor"], opt["footerColor"])
            self.subComponent.setFooter(footer)
            self.subComponent.setConfigCallback(self.configCallback)
        if (text == "edit"):
            self.subComponent = ConfigMenu.ConfigMenu(self.screen, "Edit link",opt, \
                                        self.currentSelection ,self.configOptions ,self.addEditCallback)
            footer = Footer.Footer([("theme/direction.png", "select")],
                                   [("theme/b_button.png", "back"),
                                    ("theme/a_button.png", "change"),
                                    ("theme/start_button.png", "save")],
                                   opt["footerFontColor"], opt["footerColor"])
            self.subComponent.setFooter(footer)
            self.subComponent.setConfigCallback(self.configCallback)
        if (text == "remove"):
            self.overlay = ConfirmOverlay.ConfirmOverlay(
                "really delete?", [("theme/b_button.png", "back"),
                                   ("theme/a_button.png", "delete")],
                self.deleteCallback)
            RenderControl.setDirty()
Example #15
0
    def optionsCallback(self, optionID, text):
        print("Options came back with: ", optionID)
        self.overlay = None
        if (optionID == 0):
            self.overlay = SelectionMenu.SelectionMenu(self.screen,
                                                       ["Emulator", "Native"],
                                                       self.typeAddCallback)
        if (optionID == 1):
            conf = None
            if (self.config["mainMenu"][self.currentIndex]["type"] ==
                    "emulator"):
                conf = json.load(open('config/entry.json'))
                if (not Configuration.isRS97()):
                    conf = conf + json.load(open('config/pap.json'))
            else:
                conf = json.load(open('config/native.json'))

            self.subComponent = ConfigMenu.ConfigMenu(self.screen, "Edit menu entry",{"textColor":(55,55,55), "backgroundColor":(221,221,221)}, \
                                        self.config["mainMenu"][self.currentIndex] ,conf ,self.addEditCallback)
            footer = Footer.Footer([("theme/direction.png", "select")],
                                   [("theme/b_button.png", "back"),
                                    ("theme/a_button.png", "change"),
                                    ("theme/start_button.png", "save")],
                                   (255, 255, 255))
            self.subComponent.setFooter(footer)
        if (optionID == 2):
            self.overlay = ConfirmOverlay.ConfirmOverlay(
                "really delete?", (255, 255, 255),
                [("theme/b_button.png", "back"),
                 ("theme/a_button.png", "delete")], self.deleteCallback)
            RenderControl.setDirty()
Example #16
0
 def handleEvents(self, events):
     for event in events:
         if event.type == pygame.KEYDOWN:
             if event.key == Keys.DINGOO_BUTTON_B or event.key == Keys.DINGOO_BUTTON_A:
                 if (self.callback != None):
                     self.callback(1)
                 RenderControl.setDirty()
Example #17
0
    def updateFooterPos(self, start, target, current, finished):
        if (not finished):
            self.footer.setYPosition(current)
        else:
            self.footer.setEnabled(False)

        RenderControl.setDirty()
Example #18
0
    def onSelect(self):
        if (self.options["options"][self.currentIndex] in self.data):
            self.data.remove(self.options["options"][self.currentIndex])
        else:
            self.data.append(self.options["options"][self.currentIndex])

        self.initList()
        RenderControl.setDirty()
Example #19
0
    def animationCallback(self, start, target, current, finished):
        self.menuAlpha = current

        if(finished):
            self.showBrightness = False
            self.showVolume = False

        RenderControl.setDirty()    
Example #20
0
    def resetAnimation(self):
        self.menuAlpha = 255
        if(self.animationId is not None):
            TaskHandler.stopAnimation(self.animationId)            

        self.animationId = TaskHandler.addAnimation(255, 20, 600, self.animationCallback, 1500)
        
        RenderControl.setDirty()
Example #21
0
    def updatePreview(self):
        self.preview_final = self.previewPath

        self.anim = None
        self.image = None
        
        self.renderAnim = False
        TaskHandler.removePeriodicTask(self.animTask)
        self.animTask = TaskHandler.addPeriodicTask(1000, self.onShowAnim, 1000)
        RenderControl.setDirty()
Example #22
0
    def select(self):
        if (self.selection == "band"):
            self.openSelection(self.config["mainMenu"][self.currentIndex])
        if (self.selection == "power"):
            self.openPowerMenu()

        if (self.selection == "settings"):
            self.openSettings()

        RenderControl.setDirty()
Example #23
0
 def openSettings(self):
     self.subComponent = ConfigMenu.ConfigMenu(self.screen, "General Settings",{"textColor":(255,255,255), "backgroundColor":(0,0,0)}, \
                                     Configuration.getPathData("options"), json.load(open('config/options.json')) ,self.configCallback)
     footer = Footer.Footer([("theme/direction.png", "select")],
                            [("theme/b_button.png", "back"),
                             ("theme/a_button.png", "change"),
                             ("theme/start_button.png", "save")],
                            (255, 255, 255))
     self.subComponent.setFooter(footer)
     RenderControl.setDirty()
Example #24
0
def init():
    lastRenderTime = 1

    Common.mountSD(True)

    # try:
    #     if(not Configuration.isOpenDinguX()):
    #         os.system('/usr/bin/retrofw network on')
    # except Exception as ex:
    #     pass

    realScreen = pygame.display.set_mode(
        (config["screenWidth"], config["screenHeight"]), HWSURFACE, 16)
    screen = pygame.Surface((config["screenWidth"], config["screenHeight"]))

    suspend = Suspend.Suspend()
    renderObject = MainMenu.MainMenu(screen, suspend)

    brightness = BrightnessVolumeControl.BrightnessVolume()

    while True:  # main game loop
        events = pygame.event.get()
        for event in events:
            if event.type == QUIT:
                pygame.quit()
                sys.exit()

        suspend.handleEvents(events)
        renderObject.handleEvents(events)
        brightness.handleEvents(events)

        if (RenderControl.isDirty()):
            start = int(round(time.time() * 1000))
            RenderControl.setDirty(False)
            renderObject.render(screen)
            brightness.render(screen)

            if ("showFPS" in config["options"]
                    and config["options"]["showFPS"]):
                if (lastRenderTime == 0):
                    lastRenderTime = 1
                textSurface = textFont.render(
                    str(int(round(1000 / lastRenderTime))) + "fps ~" +
                    str(lastRenderTime) + "ms", True, (255, 255, 255))
                screen.blit(textSurface, (0, 0))
                #print("render time: " + str(lastRenderTime))

            realScreen.blit(screen, (0, 0))

            pygame.display.update()
            lastRenderTime = int(round(time.time() * 1000)) - start

        TaskHandler.updateTasks()
        fpsClock.tick(Common.getFPS())
Example #25
0
    def transitionCallback(self, start, target, current, finished):
        if (finished):
            self.inTransition = False
            self.transitionOffset = 0
            if (target < 0):
                self.currentIndex = self.getNext()
            else:
                self.currentIndex = self.getPrev()
        else:
            self.transitionOffset = current

        RenderControl.setDirty()
Example #26
0
    def renderPreview(self, screen):
        if (self.currentIndex == -1):
            return

        if (not self.previewEnabled):
            desc = self.renderDescription()
            if (not desc == None):
                screen.blit(desc, (5, 56))
            return

        if (self.useSidebar):
            xOffset = (128) / 2
            yOffset = (128) / 2

        if (self.preview_final != None):

            animPath = None
            animPath1 = self.preview_final.replace(".png", ".anim.jpg")
            animPath2 = self.preview_final.replace(".png", ".anim.png")

            if (os.path.exists(animPath1) and os.path.isfile(animPath1)):
                animPath = animPath1
            elif (os.path.exists(animPath2) and os.path.isfile(animPath2)):
                animPath = animPath2

            if (animPath != None and self.renderAnim):
                if (self.anim == None):
                    self.anim = Animation.Animation(animPath, (128, 128))

                if (self.useSidebar and self.anim != None):
                    self.anim.render(screen, (5, 56))
                    RenderControl.setDirty()

            elif ((os.path.exists(self.preview_final)
                   and os.path.isfile(self.preview_final))
                  or "opk#" in self.preview_final.lower()):

                if (self.image == None):
                    self.image = Common.loadImage(self.preview_final)
                    self.image = Common.aspect_scale(self.image, 128, 128,
                                                     False)

                if (self.useSidebar):
                    xOffset = (128 - self.image.get_width()) / 2
                    yOffset = (128 - self.image.get_height()) / 2
                    screen.blit(self.image, (5 + xOffset, 56 + yOffset))
        else:
            if (not self.keyDown):
                #fallback if image not found
                desc = self.renderDescription()
                if (not desc == None):
                    screen.blit(desc, (5, 56))
Example #27
0
    def handleEvents(self, events):
        for event in events:
            if event.type == pygame.KEYDOWN:
                if event.key == Keys.DINGOO_BUTTON_LEFT:
                    self.moveFolderUp()
                    RenderControl.setDirty()
            if event.type == pygame.KEYUP:
                if event.key == Keys.DINGOO_BUTTON_START:
                    if (self.selectFolder):
                        self.callback(self.currentPath)
                        RenderControl.setDirty()

        AbstractList.AbstractList.handleEvents(self, events)
Example #28
0
    def configCallback(self, select):

        newThemeName = self.config["options"]["themeName"]
        if (self.themeName != self.config["options"]["themeName"]):
            print("Theme changed")
            self.config["options"]["themeName"] = newThemeName

        self.subComponent = None

        Configuration.saveOptions(self.config["options"])

        self.reload()
        RenderControl.setDirty()
Example #29
0
def init():
    lastRenderTime = 1
    setVolume()
    if (Configuration.isRS97() and platform.processor() == ""):
        realScreen = pygame.display.set_mode((320, 240), HWSURFACE, 16)
        screen = pygame.Surface(
            (config["screenWidth"], config["screenHeight"]))
    else:
        realScreen = pygame.display.set_mode(
            (config["screenWidth"], config["screenHeight"]), HWSURFACE, 16)
        screen = realScreen

    renderObject = MainMenu.MainMenu(screen)

    suspend = Suspend.Suspend()
    brightness = BrightnessVolumeControl.BrightnessVolume()

    while True:  # main game loop
        events = pygame.event.get()
        for event in events:
            if event.type == QUIT:
                pygame.quit()
                sys.exit()

        suspend.handleEvents(events)
        renderObject.handleEvents(events)
        brightness.handleEvents(events)

        if (RenderControl.isDirty()):
            start = int(round(time.time() * 1000))
            RenderControl.setDirty(False)
            renderObject.render(screen)
            brightness.render(screen)

            if ("showFPS" in config["options"]
                    and config["options"]["showFPS"]):
                if (lastRenderTime == 0):
                    lastRenderTime = 1
                textSurface = textFont.render(
                    str(int(round(1000 / lastRenderTime))) + "fps ~" +
                    str(lastRenderTime) + "ms", True, (255, 255, 255))
                screen.blit(textSurface, (0, 0))
                print("render time: " + str(lastRenderTime))

            realScreen.blit(screen, (0, 0))

            pygame.display.update()
            lastRenderTime = int(round(time.time() * 1000)) - start

        TaskHandler.updateTasks()
        fpsClock.tick(Common.FPS)
Example #30
0
    def initListAsync(self):
        if("useGamelist" in self.options and self.options["useGamelist"] == True):
            Common.loadGameList()


        if(os.path.isdir(self.currentPath) and os.path.exists(self.currentPath)):
            self.entryList = []
            entry = {}
            entry["name"] = ".."
            entry["isFolder"] = True
            entry["text"] = self.entryFont.render("..", True, self.textColor)
            self.entryList.append(entry)

            self.fileList = os.listdir(os.path.normpath(self.currentPath))
      
            Common.quick_sort(self.fileList)
          
            try:
                for f in self.fileList:                   
                    if(os.path.isdir(self.currentPath + "/" + f)):
                        entry = {}
                        entry["name"] = f
                        entry["isFolder"] = True
                        entry["text"] = None
                        self.entryList.append(entry)
                for f in self.fileList:                   
                    if(not os.path.isdir(self.currentPath + "/" + f) and not self.selectFolder and self.filterFile(f)):
                        entry = {}
                        entry["name"] = f
                        entry["isFolder"] = False
                        entry["text"] = None
                        self.entryList.append(entry)
            except Exception as ex:
                pass    

        if(not self.reset == None):
            for entry in self.entryList:
                if(entry["name"] == self.reset):
                    self.setSelection(self.entryList.index(entry))

        elif(self.res != None and self.res["line"] != None):           
            self.setInitialSelection(self.res["line"])
            self.res = None
        else:
            self.setSelection(0)
        

        self.onChange()
        self.listReady = True
        RenderControl.setDirty()