private music list added (early)
This commit is contained in:
parent
479e380a73
commit
7716a803bc
97
gameview.py
97
gameview.py
@ -1373,36 +1373,44 @@ class GUI(QtGui.QWidget):
|
|||||||
self.btnMusicOptions = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "cog.png"), "", self.tabMusic)
|
self.btnMusicOptions = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "cog.png"), "", self.tabMusic)
|
||||||
self.btnMusicOptions.setToolTip('Music options')
|
self.btnMusicOptions.setToolTip('Music options')
|
||||||
self.btnMusicOptions.clicked.connect(self.onMusicOptionsClicked)
|
self.btnMusicOptions.clicked.connect(self.onMusicOptionsClicked)
|
||||||
|
|
||||||
self.actMusicRandom = QtGui.QAction(QtGui.QIcon(AO2XPpath + "icons/" + "control_play_blue.png"), "&Play random", self.tabMusic)
|
self.actMusicRandom = QtGui.QAction(QtGui.QIcon(AO2XPpath + "icons/" + "control_play_blue.png"), "&Play random", self.tabMusic)
|
||||||
self.actMusicRandom.triggered.connect(self.onActMusicRandomTriggered)
|
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 = QtGui.QAction(QtGui.QIcon(AO2XPpath + "icons/" + "page_copy.png"), "&Copy selected song name", self.tabMusic)
|
||||||
self.actMusicCopy.triggered.connect(self.onActMusicCopyTriggered)
|
self.actMusicCopy.triggered.connect(self.onActMusicCopyTriggered)
|
||||||
self.actMusicCopy.setDisabled(True)
|
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 = 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 = 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 = 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 = 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 = 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 = QtGui.QMenu(self.tabMusic)
|
||||||
self.mnuMusicOptions.addAction(self.actMusicRandom)
|
self.mnuMusicOptions.addAction(self.actMusicRandom)
|
||||||
self.mnuMusicOptions.addAction(self.actMusicCopy)
|
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.addSeparator()
|
||||||
self.mnuMusicOptions.addAction(self.actMusicSwitchToPrivate)
|
self.mnuMusicOptions.addAction(self.actMusicSwitchToPrivate)
|
||||||
|
self.mnuMusicOptions.addAction(self.actMusicSwitchToGlobal)
|
||||||
self.mnuMusicOptionsPrivate = QtGui.QMenu(self.tabMusic)
|
|
||||||
self.mnuMusicOptionsPrivate.addAction(self.actMusicRandom)
|
self.musicListPrivate = {}
|
||||||
self.mnuMusicOptionsPrivate.addAction(self.actMusicCopy)
|
if exists(AO2XPpath + "music.ini"):
|
||||||
self.mnuMusicOptionsPrivate.addSeparator()
|
self.musicListPrivate = ini.sectionless_ini_to_dict(AO2XPpath + "music.ini", QtCore.QString)
|
||||||
self.mnuMusicOptionsPrivate.addAction(self.actMusicAdd)
|
|
||||||
self.mnuMusicOptionsPrivate.addAction(self.actMusicEdit)
|
|
||||||
self.mnuMusicOptionsPrivate.addAction(self.actMusicDelete)
|
|
||||||
self.mnuMusicOptionsPrivate.addSeparator()
|
|
||||||
self.mnuMusicOptionsPrivate.addAction(self.actMusicSwitchToGlobal)
|
|
||||||
|
|
||||||
# Areas list
|
# Areas list
|
||||||
self.areaItems = QtGui.QListWidget()
|
self.areaItems = QtGui.QListWidget()
|
||||||
@ -1630,7 +1638,6 @@ class GUI(QtGui.QWidget):
|
|||||||
self.demoRecorder = None
|
self.demoRecorder = None
|
||||||
self.demoPlaying = False
|
self.demoPlaying = False
|
||||||
self.musicList = {}
|
self.musicList = {}
|
||||||
self.musicListPrivate = {}
|
|
||||||
self.pickedMusicItem = False
|
self.pickedMusicItem = False
|
||||||
|
|
||||||
self.slideEnabled = getOption("General", "slide", False) == 'True'
|
self.slideEnabled = getOption("General", "slide", False) == 'True'
|
||||||
@ -1889,15 +1896,23 @@ class GUI(QtGui.QWidget):
|
|||||||
|
|
||||||
def onMusicItemClicked(self, item):
|
def onMusicItemClicked(self, item):
|
||||||
self.actMusicCopy.setDisabled(False)
|
self.actMusicCopy.setDisabled(False)
|
||||||
|
# self.actMusicAdd.setDisabled(False)
|
||||||
|
# self.actMusicEdit.setDisabled(False)
|
||||||
|
# self.actMusicDelete.setDisabled(False)
|
||||||
|
|
||||||
def onMusicItemDoubleClicked(self, item):
|
def onMusicItemDoubleClicked(self, item):
|
||||||
self.pickedMusicItem = True
|
self.pickedMusicItem = True
|
||||||
_musicList = self.musicListPrivate if self.privateMusicSelected else self.musicList
|
if self.privateMusicSelected:
|
||||||
self.sendMC(_musicList[item.text()])
|
self.sendOOCchat(self.OOCNameInput.text().toUtf8(), "/play " + self.musicListPrivate[item.text()])
|
||||||
|
else:
|
||||||
|
self.sendMC(self.musicList[item.text()])
|
||||||
|
|
||||||
def onMusicSearch(self, text):
|
def onMusicSearch(self, text):
|
||||||
self.musicItems.clear()
|
self.musicItems.clear()
|
||||||
self.actMusicCopy.setDisabled(True)
|
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
|
_musicList = self.musicListPrivate if self.privateMusicSelected else self.musicList
|
||||||
|
|
||||||
@ -1913,21 +1928,45 @@ class GUI(QtGui.QWidget):
|
|||||||
self.loadAllMusic()
|
self.loadAllMusic()
|
||||||
|
|
||||||
def onMusicOptionsClicked(self):
|
def onMusicOptionsClicked(self):
|
||||||
if self.privateMusicSelected:
|
self.mnuMusicOptions.exec_(QtGui.QCursor.pos())
|
||||||
self.mnuMusicOptionsPrivate.exec_(QtGui.QCursor.pos())
|
|
||||||
else:
|
|
||||||
self.mnuMusicOptions.exec_(QtGui.QCursor.pos())
|
|
||||||
|
|
||||||
def onActMusicRandomTriggered(self):
|
def onActMusicRandomTriggered(self):
|
||||||
self.pickedMusicItem = True
|
|
||||||
_musicList = self.musicListPrivate if self.privateMusicSelected else self.musicList
|
_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.musicItems.setCurrentItem(_item)
|
||||||
self.actMusicCopy.setDisabled(False)
|
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):
|
def onActMusicCopyTriggered(self):
|
||||||
QtGui.QApplication.clipboard().setText(self.musicItems.currentItem().text())
|
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):
|
def loadBackgrounds(self):
|
||||||
self.backgroundItems.clear()
|
self.backgroundItems.clear()
|
||||||
@ -3793,8 +3832,10 @@ class GUI(QtGui.QWidget):
|
|||||||
self.stopMusic()
|
self.stopMusic()
|
||||||
if mus == "~stop.mp3" or not mus:
|
if mus == "~stop.mp3" or not mus:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
_musicList = self.musicListPrivate if self.privateMusicSelected else self.musicList
|
||||||
|
|
||||||
if not mus.endswith(".mp3") and "===MUSIC START===.mp3" in self.musicList: #vidya workaround
|
if not mus.endswith(".mp3") and "===MUSIC START===.mp3" in _musicList: #vidya workaround
|
||||||
mus += ".mp3"
|
mus += ".mp3"
|
||||||
musl = mus.lower()
|
musl = mus.lower()
|
||||||
|
|
||||||
@ -3803,7 +3844,7 @@ class GUI(QtGui.QWidget):
|
|||||||
if exists(AOpath + 'sounds/music/' + musl):
|
if exists(AOpath + 'sounds/music/' + musl):
|
||||||
playLocal = True
|
playLocal = True
|
||||||
elif self.pickedMusicItem:
|
elif self.pickedMusicItem:
|
||||||
_musl = self.musicList[self.musicItems.currentItem().text()]
|
_musl = _musicList[self.musicItems.currentItem().text()]
|
||||||
if exists(AOpath + 'sounds/music/' + _musl):
|
if exists(AOpath + 'sounds/music/' + _musl):
|
||||||
musl = _musl
|
musl = _musl
|
||||||
playLocal = True
|
playLocal = True
|
||||||
@ -3890,6 +3931,8 @@ class GUI(QtGui.QWidget):
|
|||||||
|
|
||||||
def loadAllMusic(self):
|
def loadAllMusic(self):
|
||||||
_musicList = self.musicListPrivate if self.privateMusicSelected else self.musicList
|
_musicList = self.musicListPrivate if self.privateMusicSelected else self.musicList
|
||||||
|
|
||||||
|
self.actMusicRandom.setDisabled(not len(_musicList.items()))
|
||||||
|
|
||||||
for song, fname in _musicList.items():
|
for song, fname in _musicList.items():
|
||||||
songitem = QtGui.QListWidgetItem()
|
songitem = QtGui.QListWidgetItem()
|
||||||
|
|||||||
14
ini.py
14
ini.py
@ -68,6 +68,20 @@ def read_sectionless_ini(file, search, default=""):
|
|||||||
if search.lower() == key.rstrip().lower():
|
if search.lower() == key.rstrip().lower():
|
||||||
return value.lstrip()
|
return value.lstrip()
|
||||||
return default
|
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
|
# AO 2.8
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user