diff --git a/buildPy2exe.py b/buildPy2exe.py index 403bd4a..abe0db1 100644 --- a/buildPy2exe.py +++ b/buildPy2exe.py @@ -656,6 +656,7 @@ guiIcons = ['resources/accept.png', 'resources/arrow_undo.png', 'resources/clock 'resources/world_explore.png', 'resources/application_get.png', 'resources/cog.png', 'resources/arrow_switch.png', 'resources/film_go.png', 'resources/world_go.png', 'resources/arrow_refresh.png', 'resources/bullet_right_grey.png', 'resources/film_folder_edit.png', + 'resources/film_edit.png', 'resources/shield_edit.png', 'resources/world_add.png', 'resources/film_add.png', 'resources/delete.png', 'resources/spinner.mng' ] diff --git a/resources/film_edit.png b/resources/film_edit.png new file mode 100644 index 0000000..af66b73 Binary files /dev/null and b/resources/film_edit.png differ diff --git a/syncplay/messages_de.py b/syncplay/messages_de.py index 09a388b..69beb1f 100644 --- a/syncplay/messages_de.py +++ b/syncplay/messages_de.py @@ -285,6 +285,7 @@ de = { "addfolder-label" : u"Add folder", # TODO: Translate "adduris-msgbox-label" : u"Add URLs to playlist (one per line)", # TODO: Translate + "editplaylist-msgbox-label": u"Set playlist (one per line)", # TODO: Translate "trusteddomains-msgbox-label" : u"Domains it is okay to automatically switch to (one per line)", # TODO: Translate "createcontrolledroom-msgbox-label" : u"Zentral gesteuerten Raum erstellen", @@ -398,6 +399,7 @@ de = { "undoplaylist-menu-label" : u"Undo last change to playlist", "addfilestoplaylist-menu-label" : u"Add file(s) to bottom of playlist", "addurlstoplaylist-menu-label" : u"Add URL(s) to bottom of playlist", + "editplaylist-menu-label": u"Edit playlist", "addusersfiletoplaylist-menu-label" : u"Add {} file to playlist", # item owner indicator "addusersstreamstoplaylist-menu-label" : u"Add {} stream to playlist", # item owner indicator diff --git a/syncplay/messages_en.py b/syncplay/messages_en.py index 96385c5..d2b933b 100644 --- a/syncplay/messages_en.py +++ b/syncplay/messages_en.py @@ -287,6 +287,7 @@ en = { "addfolder-label" : u"Add folder", "adduris-msgbox-label" : u"Add URLs to playlist (one per line)", + "editplaylist-msgbox-label" : u"Set playlist (one per line)", "trusteddomains-msgbox-label" : u"Domains it is okay to automatically switch to (one per line)", "createcontrolledroom-msgbox-label" : "Create managed room", @@ -399,6 +400,7 @@ en = { "undoplaylist-menu-label" : u"Undo last change to playlist", "addfilestoplaylist-menu-label" : u"Add file(s) to bottom of playlist", "addurlstoplaylist-menu-label" : u"Add URL(s) to bottom of playlist", + "editplaylist-menu-label": u"Edit playlist", "addusersfiletoplaylist-menu-label" : u"Add {} file to playlist", # item owner indicator "addusersstreamstoplaylist-menu-label" : u"Add {} stream to playlist", # item owner indicator diff --git a/syncplay/messages_ru.py b/syncplay/messages_ru.py index facc8dc..8778678 100644 --- a/syncplay/messages_ru.py +++ b/syncplay/messages_ru.py @@ -287,6 +287,7 @@ ru = { "addfolder-label" : u"Add folder", # TODO: Translate "adduris-msgbox-label" : u"Add URLs to playlist (one per line)", # TODO: Translate + "editplaylist-msgbox-label" : u"Set playlist (one per line)", # TODO: Translate "trusteddomains-msgbox-label" : u"Domains it is okay to automatically switch to (one per line)", # TODO: Translate "createcontrolledroom-msgbox-label" : u"Создать управляемую комнату", @@ -398,6 +399,7 @@ ru = { "undoplaylist-menu-label" : u"Undo last change to playlist", "addfilestoplaylist-menu-label" : u"Add file(s) to bottom of playlist", "addurlstoplaylist-menu-label" : u"Add URL(s) to bottom of playlist", + "editplaylist-menu-label": u"Edit playlist", "addusersfiletoplaylist-menu-label" : u"Add {} file to playlist", # item owner indicator "addusersstreamstoplaylist-menu-label" : u"Add {} stream to playlist", # item owner indicator diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py index dc62c85..7fec6a5 100644 --- a/syncplay/ui/gui.py +++ b/syncplay/ui/gui.py @@ -502,6 +502,7 @@ class MainWindow(QtGui.QMainWindow): menu.addSeparator() menu.addAction(QtGui.QPixmap(resourcespath + u"arrow_switch.png"), getMessage("shuffleplaylist-menuu-label"), lambda: self.shufflePlaylist()) menu.addAction(QtGui.QPixmap(resourcespath + u"arrow_undo.png"), getMessage("undoplaylist-menu-label"), lambda: self.undoPlaylistChange()) + menu.addAction(QtGui.QPixmap(resourcespath + u"film_edit.png"), getMessage("editplaylist-menu-label"), lambda: self.openEditPlaylistDialog()) menu.addAction(QtGui.QPixmap(resourcespath + u"film_add.png"),getMessage("addfilestoplaylist-menu-label"), lambda: self.OpenAddFilesToPlaylistDialog()) menu.addAction(QtGui.QPixmap(resourcespath + u"world_add.png"), getMessage("addurlstoplaylist-menu-label"), lambda: self.OpenAddURIsToPlaylistDialog()) menu.addSeparator() @@ -814,6 +815,36 @@ class MainWindow(QtGui.QMainWindow): self.addStreamToPlaylist(URI) self.updatingPlaylist = False + @needsClient + def openEditPlaylistDialog(self): + oldPlaylist = utils.getListAsMultilineString(self.getPlaylistState()) + editPlaylistDialog = QtGui.QDialog() + editPlaylistDialog.setWindowTitle(getMessage("editplaylist-msgbox-label")) + editPlaylistLayout = QtGui.QGridLayout() + editPlaylistLabel = QtGui.QLabel(getMessage("editplaylist-msgbox-label")) + editPlaylistLayout.addWidget(editPlaylistLabel, 0, 0, 1, 1) + editPlaylistTextbox = QtGui.QPlainTextEdit(oldPlaylist) + editPlaylistTextbox.setLineWrapMode(QtGui.QPlainTextEdit.NoWrap) + editPlaylistLayout.addWidget(editPlaylistTextbox, 1, 0, 1, 1) + editPlaylistButtonBox = QtGui.QDialogButtonBox() + editPlaylistButtonBox.setOrientation(Qt.Horizontal) + editPlaylistButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok|QtGui.QDialogButtonBox.Cancel) + editPlaylistButtonBox.accepted.connect(editPlaylistDialog.accept) + editPlaylistButtonBox.rejected.connect(editPlaylistDialog.reject) + editPlaylistLayout.addWidget(editPlaylistButtonBox, 2, 0, 1, 1) + editPlaylistDialog.setLayout(editPlaylistLayout) + editPlaylistDialog.setModal(True) + editPlaylistDialog.setMinimumWidth(600) + editPlaylistDialog.setMinimumHeight(500) + editPlaylistDialog.show() + result = editPlaylistDialog.exec_() + if result == QtGui.QDialog.Accepted: + newPlaylist = utils.convertMultilineStringToList(editPlaylistTextbox.toPlainText()) + if newPlaylist <> self.playlistState and self._syncplayClient and not self.updatingPlaylist: + self.setPlaylist(newPlaylist) + self._syncplayClient.playlist.changePlaylist(newPlaylist) + self._syncplayClient.fileSwitch.updateInfo() + @needsClient def openSetMediaDirectoriesDialog(self): MediaDirectoriesDialog = QtGui.QDialog()