private music list added (early)
This commit is contained in:
parent
479e380a73
commit
7716a803bc
93
gameview.py
93
gameview.py
@ -1373,36 +1373,44 @@ class GUI(QtGui.QWidget):
|
||||
self.btnMusicOptions = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "cog.png"), "", self.tabMusic)
|
||||
self.btnMusicOptions.setToolTip('Music options')
|
||||
self.btnMusicOptions.clicked.connect(self.onMusicOptionsClicked)
|
||||
|
||||
self.actMusicRandom = QtGui.QAction(QtGui.QIcon(AO2XPpath + "icons/" + "control_play_blue.png"), "&Play random", self.tabMusic)
|
||||
self.actMusicRandom.triggered.connect(self.onActMusicRandomTriggered)
|
||||
self.actMusicCopy = QtGui.QAction(QtGui.QIcon(AO2XPpath + "icons/" + "page_copy.png"), "&Copy selected song name", self.tabMusic)
|
||||
self.actMusicCopy.triggered.connect(self.onActMusicCopyTriggered)
|
||||
self.actMusicCopy.setDisabled(True)
|
||||
|
||||
self.actMusicSeparator = QtGui.QAction(self.tabMusic)
|
||||
self.actMusicSeparator.setSeparator(True)
|
||||
self.actMusicAdd = QtGui.QAction(QtGui.QIcon(AO2XPpath + "icons/" + "add.png"), "&Add new entry", self.tabMusic)
|
||||
self.actMusicAdd.triggered.connect(self.onActMusicAddTriggered)
|
||||
self.actMusicAdd.setVisible(False)
|
||||
self.actMusicAdd.setDisabled(True)
|
||||
self.actMusicEdit = QtGui.QAction(QtGui.QIcon(AO2XPpath + "icons/" + "edit.png"), "&Edit selected entry", self.tabMusic)
|
||||
self.actMusicEdit.triggered.connect(self.onActMusicEditTriggered)
|
||||
self.actMusicEdit.setVisible(False)
|
||||
self.actMusicEdit.setDisabled(True)
|
||||
self.actMusicDelete = QtGui.QAction(QtGui.QIcon(AO2XPpath + "icons/" + "delete.png"), "&Delete selected entry", self.tabMusic)
|
||||
|
||||
self.actMusicDelete.triggered.connect(self.onActMusicDeleteTriggered)
|
||||
self.actMusicDelete.setVisible(False)
|
||||
self.actMusicDelete.setDisabled(True)
|
||||
self.actMusicSwitchToGlobal = QtGui.QAction(QtGui.QIcon(AO2XPpath + "icons/" + "world.png"), "&View global music list", self.tabMusic)
|
||||
self.actMusicSwitchToGlobal.triggered.connect(self.onActMusicSwitchTriggered)
|
||||
self.actMusicSwitchToGlobal.setVisible(False)
|
||||
self.actMusicSwitchToPrivate = QtGui.QAction(QtGui.QIcon(AO2XPpath + "icons/" + "briefcase.png"), "&View private music list", self.tabMusic)
|
||||
self.actMusicSwitchToPrivate.setDisabled(True)
|
||||
|
||||
self.actMusicSwitchToPrivate.triggered.connect(self.onActMusicSwitchTriggered)
|
||||
self.mnuMusicOptions = QtGui.QMenu(self.tabMusic)
|
||||
self.mnuMusicOptions.addAction(self.actMusicRandom)
|
||||
self.mnuMusicOptions.addAction(self.actMusicCopy)
|
||||
self.mnuMusicOptions.addAction(self.actMusicSeparator)
|
||||
self.mnuMusicOptions.addAction(self.actMusicAdd)
|
||||
self.mnuMusicOptions.addAction(self.actMusicEdit)
|
||||
self.mnuMusicOptions.addAction(self.actMusicDelete)
|
||||
self.mnuMusicOptions.addSeparator()
|
||||
self.mnuMusicOptions.addAction(self.actMusicSwitchToPrivate)
|
||||
self.mnuMusicOptions.addAction(self.actMusicSwitchToGlobal)
|
||||
|
||||
self.mnuMusicOptionsPrivate = QtGui.QMenu(self.tabMusic)
|
||||
self.mnuMusicOptionsPrivate.addAction(self.actMusicRandom)
|
||||
self.mnuMusicOptionsPrivate.addAction(self.actMusicCopy)
|
||||
self.mnuMusicOptionsPrivate.addSeparator()
|
||||
self.mnuMusicOptionsPrivate.addAction(self.actMusicAdd)
|
||||
self.mnuMusicOptionsPrivate.addAction(self.actMusicEdit)
|
||||
self.mnuMusicOptionsPrivate.addAction(self.actMusicDelete)
|
||||
self.mnuMusicOptionsPrivate.addSeparator()
|
||||
self.mnuMusicOptionsPrivate.addAction(self.actMusicSwitchToGlobal)
|
||||
self.musicListPrivate = {}
|
||||
if exists(AO2XPpath + "music.ini"):
|
||||
self.musicListPrivate = ini.sectionless_ini_to_dict(AO2XPpath + "music.ini", QtCore.QString)
|
||||
|
||||
# Areas list
|
||||
self.areaItems = QtGui.QListWidget()
|
||||
@ -1630,7 +1638,6 @@ class GUI(QtGui.QWidget):
|
||||
self.demoRecorder = None
|
||||
self.demoPlaying = False
|
||||
self.musicList = {}
|
||||
self.musicListPrivate = {}
|
||||
self.pickedMusicItem = False
|
||||
|
||||
self.slideEnabled = getOption("General", "slide", False) == 'True'
|
||||
@ -1889,15 +1896,23 @@ class GUI(QtGui.QWidget):
|
||||
|
||||
def onMusicItemClicked(self, item):
|
||||
self.actMusicCopy.setDisabled(False)
|
||||
# self.actMusicAdd.setDisabled(False)
|
||||
# self.actMusicEdit.setDisabled(False)
|
||||
# self.actMusicDelete.setDisabled(False)
|
||||
|
||||
def onMusicItemDoubleClicked(self, item):
|
||||
self.pickedMusicItem = True
|
||||
_musicList = self.musicListPrivate if self.privateMusicSelected else self.musicList
|
||||
self.sendMC(_musicList[item.text()])
|
||||
if self.privateMusicSelected:
|
||||
self.sendOOCchat(self.OOCNameInput.text().toUtf8(), "/play " + self.musicListPrivate[item.text()])
|
||||
else:
|
||||
self.sendMC(self.musicList[item.text()])
|
||||
|
||||
def onMusicSearch(self, text):
|
||||
self.musicItems.clear()
|
||||
self.actMusicCopy.setDisabled(True)
|
||||
# self.actMusicAdd.setDisabled(True)
|
||||
# self.actMusicEdit.setDisabled(True)
|
||||
# self.actMusicDelete.setDisabled(True)
|
||||
|
||||
_musicList = self.musicListPrivate if self.privateMusicSelected else self.musicList
|
||||
|
||||
@ -1913,22 +1928,46 @@ class GUI(QtGui.QWidget):
|
||||
self.loadAllMusic()
|
||||
|
||||
def onMusicOptionsClicked(self):
|
||||
if self.privateMusicSelected:
|
||||
self.mnuMusicOptionsPrivate.exec_(QtGui.QCursor.pos())
|
||||
else:
|
||||
self.mnuMusicOptions.exec_(QtGui.QCursor.pos())
|
||||
|
||||
def onActMusicRandomTriggered(self):
|
||||
self.pickedMusicItem = True
|
||||
_musicList = self.musicListPrivate if self.privateMusicSelected else self.musicList
|
||||
_item = self.musicItems.item(random.randint(0, self.musicItems.count()))
|
||||
choice = random.randint(0, self.musicItems.count() - 1)
|
||||
print choice
|
||||
_item = self.musicItems.item(choice)
|
||||
self.musicItems.setCurrentItem(_item)
|
||||
self.actMusicCopy.setDisabled(False)
|
||||
self.sendMC(_musicList[_item.text()])
|
||||
# self.actMusicAdd.setDisabled(False)
|
||||
# self.actMusicEdit.setDisabled(False)
|
||||
# self.actMusicDelete.setDisabled(False)
|
||||
self.onMusicItemDoubleClicked(_item)
|
||||
|
||||
def onActMusicCopyTriggered(self):
|
||||
QtGui.QApplication.clipboard().setText(self.musicItems.currentItem().text())
|
||||
|
||||
def onActMusicAddTriggered(self):
|
||||
pass
|
||||
|
||||
def onActMusicEditTriggered(self):
|
||||
pass
|
||||
|
||||
def onActMusicDeleteTriggered(self):
|
||||
pass
|
||||
|
||||
def onActMusicSwitchTriggered(self):
|
||||
self.privateMusicSelected = not self.privateMusicSelected
|
||||
|
||||
self.actMusicSeparator.setVisible(self.privateMusicSelected)
|
||||
self.actMusicAdd.setVisible(self.privateMusicSelected)
|
||||
self.actMusicEdit.setVisible(self.privateMusicSelected)
|
||||
self.actMusicDelete.setVisible(self.privateMusicSelected)
|
||||
self.actMusicSwitchToGlobal.setVisible(self.privateMusicSelected)
|
||||
self.actMusicSwitchToPrivate.setVisible(not self.privateMusicSelected)
|
||||
|
||||
self.musicItems.clear()
|
||||
self.actMusicCopy.setDisabled(True)
|
||||
self.loadAllMusic()
|
||||
|
||||
def loadBackgrounds(self):
|
||||
self.backgroundItems.clear()
|
||||
self.backgroundSearch.clear()
|
||||
@ -3794,7 +3833,9 @@ class GUI(QtGui.QWidget):
|
||||
if mus == "~stop.mp3" or not mus:
|
||||
return
|
||||
|
||||
if not mus.endswith(".mp3") and "===MUSIC START===.mp3" in self.musicList: #vidya workaround
|
||||
_musicList = self.musicListPrivate if self.privateMusicSelected else self.musicList
|
||||
|
||||
if not mus.endswith(".mp3") and "===MUSIC START===.mp3" in _musicList: #vidya workaround
|
||||
mus += ".mp3"
|
||||
musl = mus.lower()
|
||||
|
||||
@ -3803,7 +3844,7 @@ class GUI(QtGui.QWidget):
|
||||
if exists(AOpath + 'sounds/music/' + musl):
|
||||
playLocal = True
|
||||
elif self.pickedMusicItem:
|
||||
_musl = self.musicList[self.musicItems.currentItem().text()]
|
||||
_musl = _musicList[self.musicItems.currentItem().text()]
|
||||
if exists(AOpath + 'sounds/music/' + _musl):
|
||||
musl = _musl
|
||||
playLocal = True
|
||||
@ -3891,6 +3932,8 @@ class GUI(QtGui.QWidget):
|
||||
def loadAllMusic(self):
|
||||
_musicList = self.musicListPrivate if self.privateMusicSelected else self.musicList
|
||||
|
||||
self.actMusicRandom.setDisabled(not len(_musicList.items()))
|
||||
|
||||
for song, fname in _musicList.items():
|
||||
songitem = QtGui.QListWidgetItem()
|
||||
songitem.setText(song)
|
||||
|
||||
14
ini.py
14
ini.py
@ -69,6 +69,20 @@ def read_sectionless_ini(file, search, default=""):
|
||||
return value.lstrip()
|
||||
return default
|
||||
|
||||
def sectionless_ini_to_dict(file, cast=unicode):
|
||||
if isinstance(file, QString): file = str(file)
|
||||
|
||||
result = {}
|
||||
|
||||
with open(file) as f:
|
||||
for keys in f.read().split("\n"):
|
||||
if not keys or "=" not in keys: continue
|
||||
|
||||
key, value = keys.split("=")
|
||||
result[cast(key.decode('utf-8').strip())] = value.strip()
|
||||
|
||||
return result
|
||||
|
||||
# AO 2.8
|
||||
|
||||
def get_img_suffix(path):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user