Add load/save playlist from/to file menu options
This commit is contained in:
parent
143df6c999
commit
7d694797aa
@ -1730,6 +1730,12 @@ class SyncplayPlaylist():
|
|||||||
if newPlaylist:
|
if newPlaylist:
|
||||||
self.changePlaylist(newPlaylist, username=None, resetIndex=True)
|
self.changePlaylist(newPlaylist, username=None, resetIndex=True)
|
||||||
|
|
||||||
|
def savePlaylistToFile(self, path):
|
||||||
|
with open(path, 'w') as playlistFile:
|
||||||
|
playlistToSave = utils.getListAsMultilineString(self._playlist)
|
||||||
|
playlistFile.write(playlistToSave)
|
||||||
|
self._ui.showMessage("Playlist saved as {}".format(path)) # TODO: Move to messages_en
|
||||||
|
|
||||||
|
|
||||||
def changePlaylist(self, files, username=None, resetIndex=False):
|
def changePlaylist(self, files, username=None, resetIndex=False):
|
||||||
if self._playlist == files:
|
if self._playlist == files:
|
||||||
|
|||||||
@ -297,6 +297,8 @@ de = {
|
|||||||
"openmedia-menu-label": "&Mediendatei öffnen...",
|
"openmedia-menu-label": "&Mediendatei öffnen...",
|
||||||
"openstreamurl-menu-label": "&Stream URL öffnen",
|
"openstreamurl-menu-label": "&Stream URL öffnen",
|
||||||
"setmediadirectories-menu-label": "Set media &directories", # TODO: Translate
|
"setmediadirectories-menu-label": "Set media &directories", # TODO: Translate
|
||||||
|
"loadplaylistfromfile-menu-label": "&Load playlist from file", # TODO: Translate
|
||||||
|
"saveplaylisttofile-menu-label": "&Save playlist to file", # TODO: Translate
|
||||||
"exit-menu-label": "&Beenden",
|
"exit-menu-label": "&Beenden",
|
||||||
"advanced-menu-label": "&Erweitert",
|
"advanced-menu-label": "&Erweitert",
|
||||||
"window-menu-label": "&Fenster",
|
"window-menu-label": "&Fenster",
|
||||||
|
|||||||
@ -299,6 +299,8 @@ en = {
|
|||||||
"openmedia-menu-label": "&Open media file",
|
"openmedia-menu-label": "&Open media file",
|
||||||
"openstreamurl-menu-label": "Open &media stream URL",
|
"openstreamurl-menu-label": "Open &media stream URL",
|
||||||
"setmediadirectories-menu-label": "Set media &directories",
|
"setmediadirectories-menu-label": "Set media &directories",
|
||||||
|
"loadplaylistfromfile-menu-label": "&Load playlist from file",
|
||||||
|
"saveplaylisttofile-menu-label": "&Save playlist to file",
|
||||||
"exit-menu-label": "E&xit",
|
"exit-menu-label": "E&xit",
|
||||||
"advanced-menu-label": "&Advanced",
|
"advanced-menu-label": "&Advanced",
|
||||||
"window-menu-label": "&Window",
|
"window-menu-label": "&Window",
|
||||||
|
|||||||
@ -299,6 +299,8 @@ es = {
|
|||||||
"openmedia-menu-label": "A&brir archivo multimedia",
|
"openmedia-menu-label": "A&brir archivo multimedia",
|
||||||
"openstreamurl-menu-label": "Abrir URL de &flujo de medios",
|
"openstreamurl-menu-label": "Abrir URL de &flujo de medios",
|
||||||
"setmediadirectories-menu-label": "&Establecer directorios de medios",
|
"setmediadirectories-menu-label": "&Establecer directorios de medios",
|
||||||
|
"loadplaylistfromfile-menu-label": "&Load playlist from file", # TODO: Translate
|
||||||
|
"saveplaylisttofile-menu-label": "&Save playlist to file", # TODO: Translate
|
||||||
"exit-menu-label": "&Salir",
|
"exit-menu-label": "&Salir",
|
||||||
"advanced-menu-label": "A&vanzado",
|
"advanced-menu-label": "A&vanzado",
|
||||||
"window-menu-label": "&Ventana",
|
"window-menu-label": "&Ventana",
|
||||||
|
|||||||
@ -299,6 +299,8 @@ it = {
|
|||||||
"openmedia-menu-label": "&Apri file multimediali",
|
"openmedia-menu-label": "&Apri file multimediali",
|
||||||
"openstreamurl-menu-label": "Apri indirizzo di &rete",
|
"openstreamurl-menu-label": "Apri indirizzo di &rete",
|
||||||
"setmediadirectories-menu-label": "Imposta &cartelle multimediali",
|
"setmediadirectories-menu-label": "Imposta &cartelle multimediali",
|
||||||
|
"loadplaylistfromfile-menu-label": "&Load playlist from file", # TODO: Translate
|
||||||
|
"saveplaylisttofile-menu-label": "&Save playlist to file", # TODO: Translate
|
||||||
"exit-menu-label": "&Esci",
|
"exit-menu-label": "&Esci",
|
||||||
"advanced-menu-label": "&Avanzate",
|
"advanced-menu-label": "&Avanzate",
|
||||||
"window-menu-label": "&Finestra",
|
"window-menu-label": "&Finestra",
|
||||||
|
|||||||
@ -301,6 +301,8 @@ ru = {
|
|||||||
"openmedia-menu-label": "&Открыть файл",
|
"openmedia-menu-label": "&Открыть файл",
|
||||||
"openstreamurl-menu-label": "Открыть &ссылку",
|
"openstreamurl-menu-label": "Открыть &ссылку",
|
||||||
"setmediadirectories-menu-label": "&Папки воспроизведения",
|
"setmediadirectories-menu-label": "&Папки воспроизведения",
|
||||||
|
"loadplaylistfromfile-menu-label": "&Load playlist from file", # TODO: Translate
|
||||||
|
"saveplaylisttofile-menu-label": "&Save playlist to file", # TODO: Translate
|
||||||
"exit-menu-label": "&Выход",
|
"exit-menu-label": "&Выход",
|
||||||
"advanced-menu-label": "&Дополнительно",
|
"advanced-menu-label": "&Дополнительно",
|
||||||
"window-menu-label": "&Вид",
|
"window-menu-label": "&Вид",
|
||||||
|
|||||||
@ -711,6 +711,10 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
menu.addAction(QtGui.QPixmap(resourcespath + "film_add.png"), getMessage("addfilestoplaylist-menu-label"), lambda: self.OpenAddFilesToPlaylistDialog())
|
menu.addAction(QtGui.QPixmap(resourcespath + "film_add.png"), getMessage("addfilestoplaylist-menu-label"), lambda: self.OpenAddFilesToPlaylistDialog())
|
||||||
menu.addAction(QtGui.QPixmap(resourcespath + "world_add.png"), getMessage("addurlstoplaylist-menu-label"), lambda: self.OpenAddURIsToPlaylistDialog())
|
menu.addAction(QtGui.QPixmap(resourcespath + "world_add.png"), getMessage("addurlstoplaylist-menu-label"), lambda: self.OpenAddURIsToPlaylistDialog())
|
||||||
menu.addSeparator()
|
menu.addSeparator()
|
||||||
|
menu.addAction(getMessage("loadplaylistfromfile-menu-label"),lambda: self.OpenLoadPlaylistFromFileDialog()) # TODO: Add icon
|
||||||
|
menu.addAction("Load and shuffle playlist from file",lambda: self.OpenLoadPlaylistFromFileDialog(shuffle=True)) # TODO: Add icon and messages_en
|
||||||
|
menu.addAction(getMessage("saveplaylisttofile-menu-label"),lambda: self.OpenSavePlaylistToFileDialog()) # TODO: Add icon
|
||||||
|
menu.addSeparator()
|
||||||
menu.addAction(QtGui.QPixmap(resourcespath + "film_folder_edit.png"), getMessage("setmediadirectories-menu-label"), lambda: self.openSetMediaDirectoriesDialog())
|
menu.addAction(QtGui.QPixmap(resourcespath + "film_folder_edit.png"), getMessage("setmediadirectories-menu-label"), lambda: self.openSetMediaDirectoriesDialog())
|
||||||
menu.addAction(QtGui.QPixmap(resourcespath + "shield_edit.png"), getMessage("settrusteddomains-menu-label"), lambda: self.openSetTrustedDomainsDialog())
|
menu.addAction(QtGui.QPixmap(resourcespath + "shield_edit.png"), getMessage("settrusteddomains-menu-label"), lambda: self.openSetTrustedDomainsDialog())
|
||||||
menu.exec_(self.playlist.viewport().mapToGlobal(position))
|
menu.exec_(self.playlist.viewport().mapToGlobal(position))
|
||||||
@ -1041,6 +1045,47 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
self.updatingPlaylist = False
|
self.updatingPlaylist = False
|
||||||
self.playlist.updatePlaylist(self.getPlaylistState())
|
self.playlist.updatePlaylist(self.getPlaylistState())
|
||||||
|
|
||||||
|
@needsClient
|
||||||
|
def OpenLoadPlaylistFromFileDialog(self, shuffle=False):
|
||||||
|
self.loadMediaBrowseSettings()
|
||||||
|
if isMacOS() and IsPySide:
|
||||||
|
options = QtWidgets.QFileDialog.Options(QtWidgets.QFileDialog.DontUseNativeDialog)
|
||||||
|
else:
|
||||||
|
options = QtWidgets.QFileDialog.Options()
|
||||||
|
self.mediadirectory = ""
|
||||||
|
currentdirectory = os.path.dirname(self._syncplayClient.userlist.currentUser.file["path"]) if self._syncplayClient.userlist.currentUser.file else None
|
||||||
|
if currentdirectory and os.path.isdir(currentdirectory):
|
||||||
|
defaultdirectory = currentdirectory
|
||||||
|
else:
|
||||||
|
defaultdirectory = self.getInitialMediaDirectory()
|
||||||
|
browserfilter = "Playlists (*.m3u *.m3u8 *.txt)"
|
||||||
|
filepath, filtr = QtWidgets.QFileDialog.getOpenFileName(
|
||||||
|
self, "Load playlist from file", defaultdirectory,
|
||||||
|
browserfilter, "", options) # TODO: Note Shuffle and move to messages_en
|
||||||
|
if os.path.isfile(filepath):
|
||||||
|
self._syncplayClient.playlist.loadPlaylistFromFile(filepath, shuffle=shuffle)
|
||||||
|
self.playlist.updatePlaylist(self.getPlaylistState())
|
||||||
|
|
||||||
|
@needsClient
|
||||||
|
def OpenSavePlaylistToFileDialog(self):
|
||||||
|
self.loadMediaBrowseSettings()
|
||||||
|
if isMacOS() and IsPySide:
|
||||||
|
options = QtWidgets.QFileDialog.Options(QtWidgets.QFileDialog.DontUseNativeDialog)
|
||||||
|
else:
|
||||||
|
options = QtWidgets.QFileDialog.Options()
|
||||||
|
self.mediadirectory = ""
|
||||||
|
currentdirectory = os.path.dirname(self._syncplayClient.userlist.currentUser.file["path"]) if self._syncplayClient.userlist.currentUser.file else None
|
||||||
|
if currentdirectory and os.path.isdir(currentdirectory):
|
||||||
|
defaultdirectory = currentdirectory
|
||||||
|
else:
|
||||||
|
defaultdirectory = self.getInitialMediaDirectory()
|
||||||
|
browserfilter = "Playlist (*.m3u8 *.m3u *.txt)"
|
||||||
|
filepath, filtr = QtWidgets.QFileDialog.getSaveFileName(
|
||||||
|
self, "Save playlist to file", defaultdirectory,
|
||||||
|
browserfilter, "", options) # TODO: Move to messages_en
|
||||||
|
if filepath:
|
||||||
|
self._syncplayClient.playlist.savePlaylistToFile(filepath)
|
||||||
|
|
||||||
@needsClient
|
@needsClient
|
||||||
def OpenAddURIsToPlaylistDialog(self):
|
def OpenAddURIsToPlaylistDialog(self):
|
||||||
URIsDialog = QtWidgets.QDialog()
|
URIsDialog = QtWidgets.QDialog()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user