add music item from gui + option to edit music.ini with default editor

This commit is contained in:
cidoku 2025-10-09 16:37:45 -03:00
parent a4ee401bab
commit 9bb049f7d1
2 changed files with 25 additions and 9 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 880 B

View File

@ -1,4 +1,4 @@
import thread, time, os, urllib, random, re , platform
import thread, time, os, urllib, random, re , platform, subprocess
import charselect, ini, AOsocket, images, packets, demo, buttons
from os.path import exists, basename
@ -1365,7 +1365,6 @@ class GUI(QtGui.QWidget):
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)
@ -1374,6 +1373,9 @@ class GUI(QtGui.QWidget):
self.actMusicDelete.triggered.connect(self.onActMusicDeleteTriggered)
self.actMusicDelete.setVisible(False)
self.actMusicDelete.setDisabled(True)
self.actMusicEditExternal = QtGui.QAction(QtGui.QIcon(AO2XPpath + "icons/" + "script_edit.png"), "Edit list in e&xternal editor", self.tabMusic)
self.actMusicEditExternal.triggered.connect(self.onActMusicEditExternalTriggered)
self.actMusicEditExternal.setVisible(False)
self.actMusicRefresh = QtGui.QAction(QtGui.QIcon(AO2XPpath + "icons/" + "arrow_refresh.png"), "&Refresh list", self.tabMusic)
self.actMusicRefresh.triggered.connect(self.onActMusicRefreshTriggered)
self.actMusicRefresh.setVisible(False)
@ -1389,6 +1391,7 @@ class GUI(QtGui.QWidget):
self.mnuMusicOptions.addAction(self.actMusicAdd)
self.mnuMusicOptions.addAction(self.actMusicEdit)
self.mnuMusicOptions.addAction(self.actMusicDelete)
self.mnuMusicOptions.addAction(self.actMusicEditExternal)
self.mnuMusicOptions.addAction(self.actMusicRefresh)
self.mnuMusicOptions.addSeparator()
self.mnuMusicOptions.addAction(self.actMusicSwitchToPrivate)
@ -1881,7 +1884,6 @@ class GUI(QtGui.QWidget):
def onMusicItemClicked(self, item):
self.actMusicCopy.setDisabled(False)
# self.actMusicAdd.setDisabled(False)
# self.actMusicEdit.setDisabled(False)
# self.actMusicDelete.setDisabled(False)
@ -1895,9 +1897,8 @@ class GUI(QtGui.QWidget):
def onMusicSearch(self, text):
self.musicItems.clear()
self.actMusicCopy.setDisabled(True)
# self.actMusicAdd.setDisabled(True)
# self.actMusicEdit.setDisabled(True)
# self.actMusicDelete.setDisabled(True)
self.actMusicEdit.setDisabled(True)
self.actMusicDelete.setDisabled(True)
_musicList = self.musicListPrivate if self.privateMusicSelected else self.musicList
@ -1921,16 +1922,22 @@ class GUI(QtGui.QWidget):
_item = self.musicItems.item(choice)
self.musicItems.setCurrentItem(_item)
self.actMusicCopy.setDisabled(False)
# 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
title, ok = QtGui.QInputDialog.getText(self, "Add new song", "Please enter a title for the song.")
if title and ok:
title.replace("=", "")
url, ok = QtGui.QInputDialog.getText(self, "Add new song", "Please enter an URL for the song.")
if url and ok:
with open(AO2XPpath + "music.ini", "ab") as f:
f.write(("\n" + title + " = " + url).toUtf8())
self.onActMusicRefreshTriggered()
def onActMusicEditTriggered(self):
pass
@ -1938,12 +1945,20 @@ class GUI(QtGui.QWidget):
def onActMusicDeleteTriggered(self):
pass
def onActMusicEditExternalTriggered(self):
path = AO2XPpath + "music.ini"
if platform.system() == 'Windows':
os.startfile(path)
else:
subprocess.call(('xdg-open', path))
def onActMusicRefreshTriggered(self, init=False):
if exists(AO2XPpath + "music.ini"):
self.musicListPrivate = ini.sectionless_ini_to_dict(AO2XPpath + "music.ini", QtCore.QString)
if not init:
self.musicItems.clear()
self.loadAllMusic()
print self.musicListPrivate
def onActMusicSwitchTriggered(self):
self.privateMusicSelected = not self.privateMusicSelected
@ -1952,6 +1967,7 @@ class GUI(QtGui.QWidget):
self.actMusicAdd.setVisible(self.privateMusicSelected)
self.actMusicEdit.setVisible(self.privateMusicSelected)
self.actMusicDelete.setVisible(self.privateMusicSelected)
self.actMusicEditExternal.setVisible(self.privateMusicSelected)
self.actMusicRefresh.setVisible(self.privateMusicSelected)
self.actMusicSwitchToGlobal.setVisible(self.privateMusicSelected)
self.actMusicSwitchToPrivate.setVisible(not self.privateMusicSelected)