def Search(self): # Function needs testing tmpext = [] results = [] self.extlist = [] self.searchRES = [] self.lstEmu.reset() self.lblCount.setLabel('0 '+LANGUAGE[XBMC_LANGUAGE][9]) searchwhat = [LANGUAGE[XBMC_LANGUAGE][16]] for emu in self.emus: searchwhat.append(emu) dialog = xbmcgui.Dialog() dialogreturn = xbmcgui.Dialog().select(LANGUAGE[XBMC_LANGUAGE][17], searchwhat) if dialogreturn == -1: return dialogreturn = dialogreturn - 1 self.ViewState = STATE_SEARCH keyboard = xbmc.Keyboard("", LANGUAGE[XBMC_LANGUAGE][18]) if dialogreturn == -1: # Selected to search all Emulators keyboard.doModal() if (keyboard.isConfirmed()): for path in self.rompath: roms = os.listdir(path) tmpext = self.romext[self.rompath.index(path)].split(';') for kword in string.split(keyboard.getText()): kword = string.lower(kword) kword = string.strip(kword) for rom in roms[:]: trom = string.lower(rom) if string.find(trom, kword) == -1: roms.remove(rom) rem = True for ext in tmpext: ext = string.lower(ext) if string.find(trom, ext) > -1: rem = False if rem == True: roms.remove(rom) rem = True for rom in roms: if os.path.isfile(os.path.join(path,rom)): (rpath, rext) = os.path.splitext(rom) results.append((str(rpath), str(rext), self.rompath.index(path))) elif dialogreturn >= 0: keyboard.doModal() if (keyboard.isConfirmed()): roms = os.listdir(self.rompath[dialogreturn]) tmpext = self.romext[dialogreturn].split(';') for kword in string.split(keyboard.getText()): kword = string.lower(kword) kword = string.strip(kword) for rom in roms[:]: trom = string.lower(rom) if string.find(trom, kword) == -1: roms.remove(rom) rem = True for ext in tmpext: ext = string.lower(ext) if string.find(trom, ext) > -1: rem = False if rem == True: roms.remove(rom) rem = True for rom in roms: if os.path.isfile(self.rompath[dialogreturn]+"\\"+rom): (rpath, rext) = os.path.splitext(rom) results.append((str(rpath), str(rext), dialogreturn)) results.sort(key=lambda obj:obj[0]) self.message2('here') for result in results: self.lstEmu.addItem(xbmcgui.ListItem(result[0], "", "", "")) self.extlist.append(result[1]) self.searchRES.append(result[2]) self.setFocus(self.lstEmu) self.lblCount.setLabel(str(len(results))+' '+LANGUAGE[XBMC_LANGUAGE][9])