From d742b04fed9b76136ff7f2210025ed856c0b02f2 Mon Sep 17 00:00:00 2001 From: Et0h Date: Fri, 2 Oct 2015 00:23:56 +0100 Subject: [PATCH] Update playlist UI on external change and show message --- syncplay/client.py | 8 +++++--- syncplay/ui/consoleUI.py | 3 +++ syncplay/ui/gui.py | 11 ++++++++++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/syncplay/client.py b/syncplay/client.py index bcad241..4eca152 100644 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -445,9 +445,8 @@ class SyncplayClient(object): if username is None and self._protocol and self._protocol.logged: self._protocol.setPlaylist(files) elif username != self.getUsername(): - pass - # TODO: Display info about playlist change - # TODO: Update UI with new playlist + self.ui.setPlaylist(self._playlist) + self.ui.showMessage(u"{} updated the playlist".format(username)) def __executePrivacySettings(self, filename, size): if self._config['filenamePrivacyMode'] == PRIVACY_SENDHASHED_MODE: @@ -1197,6 +1196,9 @@ class UiManager(object): self.lastSecondaryOSDEndTime = None self.lastError = "" + def setPlaylist(self, newPlaylist): + self.__ui.setPlaylist(newPlaylist) + def showDebugMessage(self, message): if constants.DEBUG_MODE and message.rstrip(): sys.stderr.write("{}{}\n".format(time.strftime(constants.UI_TIME_FORMAT, time.localtime()),message.rstrip())) diff --git a/syncplay/ui/consoleUI.py b/syncplay/ui/consoleUI.py index fcaf7cf..338086f 100644 --- a/syncplay/ui/consoleUI.py +++ b/syncplay/ui/consoleUI.py @@ -22,6 +22,9 @@ class ConsoleUI(threading.Thread): def drop(self): pass + + def setPlaylist(self, newPlaylist): + pass def run(self): try: diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py index 1a7db76..c50feb6 100644 --- a/syncplay/ui/gui.py +++ b/syncplay/ui/gui.py @@ -87,6 +87,7 @@ class UserlistItemDelegate(QtGui.QStyledItemDelegate): class MainWindow(QtGui.QMainWindow): insertPosition = None playlistState = [] + blockPlaylistUpdateNotifications = False def setPlaylistInsertPosition(self, newPosition): if MainWindow.insertPosition <> newPosition: @@ -802,7 +803,7 @@ class MainWindow(QtGui.QMainWindow): def playlistUpdated(self): newPlaylist = self.getPlaylistState() - if newPlaylist <> self.playlistState and self._syncplayClient: + if newPlaylist <> self.playlistState and self._syncplayClient and not self.blockPlaylistUpdateNotifications: self.playlistState = newPlaylist self._syncplayClient.changePlaylist(newPlaylist) @@ -1207,6 +1208,14 @@ class MainWindow(QtGui.QMainWindow): self._syncplayClient._player.openFile(dropfilepath, resetPosition=True) self._syncplayClient.setPosition(0) + def setPlaylist(self, newPlaylist): + if newPlaylist == [] and not self.clearedPlaylistNote: + return + self.blockPlaylistUpdateNotifications = True + self.playlist.clear() + self.playlist.insertItems(0, newPlaylist) + self.blockPlaylistUpdateNotifications = False + def addFileToPlaylist(self, filePath, index = -1): if os.path.isfile(filePath): self.removePlaylistNote()