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])