diff --git a/gameview.py b/gameview.py index eb7011c..4874811 100644 --- a/gameview.py +++ b/gameview.py @@ -2,6 +2,7 @@ import thread, time, os, buttons, urllib, charselect, ini, random, re from os.path import exists, basename from ConfigParserEdit import ConfigParser from constants import * +from collections import OrderedDict from pybass_constants import * from PyQt4 import QtGui, QtCore @@ -1345,13 +1346,13 @@ class gui(QtGui.QWidget): def onMusicSearch(self, text): self.musicitems.clear() - if text: - for song in self.musiclist: - if QtCore.QString(song).contains(text, QtCore.Qt.CaseInsensitive): - song = song.replace("","&").decode('utf-8') + + if text: + for song, fname in self.musiclist.items(): + if QtCore.QString(fname).contains(text, QtCore.Qt.CaseInsensitive): songitem = QtGui.QListWidgetItem() songitem.setText(song) - if exists(AOpath + 'sounds/music/' + song.lower()): + if exists(unicode(AOpath + 'sounds/music/' + fname.replace("","&").lower())): songitem.setBackgroundColor(QtGui.QColor(128, 255, 128)) self.musicitems.addItem(songitem) else: @@ -1918,7 +1919,7 @@ class gui(QtGui.QWidget): self.stopMusic() def onMusicClick(self, item): - self.sendMC(item.text()) + self.sendMC(self.musiclist[item.text()]) def onAreaClick(self, item): area = item.text().split('\n')[0] @@ -3015,11 +3016,15 @@ class gui(QtGui.QWidget): self.tcp = tcp self.playerlist = playerlist self.charlist = charlist - self.musiclist = musiclist self.evidence = evidence self.areas = areas self.areas_len = len(areas[0]) self.features = features + self.musiclist = OrderedDict([]) + + # We want only song names without paths or extensions in the music list + for song in musiclist: + self.musiclist[QtCore.QString(os.path.splitext(basename(song))[0].decode('utf-8').replace("","&"))] = song.decode('utf-8') if "base/" in webAO_bucket: webAO_bucket = webAO_bucket.replace("base/", "") @@ -3145,11 +3150,10 @@ class gui(QtGui.QWidget): self.icchatinput.setFocus() def allMusic(self): - for song in self.musiclist: - song = song.replace("","&").decode('utf-8') + for song, fname in self.musiclist.items(): songitem = QtGui.QListWidgetItem() songitem.setText(song) - if exists(AOpath + 'sounds/music/' + song.lower()): + if exists(unicode(AOpath + 'sounds/music/' + fname.replace("","&").lower())): songitem.setBackgroundColor(QtGui.QColor(128, 255, 128)) #else: #songitem.setBackgroundColor(QtGui.QColor(255, 128, 128))