Implement "undo playlist change" feature
This commit is contained in:
parent
f4a0bbe967
commit
bf1825196c
@ -114,6 +114,7 @@ class SyncplayClient(object):
|
||||
self.autoplayTimeLeft = constants.AUTOPLAY_DELAY
|
||||
|
||||
self._playlist = []
|
||||
self._previousPlaylist = None
|
||||
self._playlistIndex = None
|
||||
self.__playerReady = defer.Deferred()
|
||||
|
||||
@ -504,6 +505,11 @@ class SyncplayClient(object):
|
||||
newIndex = files.index(filename)
|
||||
except:
|
||||
newIndex = 0
|
||||
if self._previousPlaylist is None:
|
||||
if self._playlist <> None and self._playlist <> []:
|
||||
self._previousPlaylist = self._playlist
|
||||
elif self._previousPlaylist <> self._playlist and self._playlist <> files:
|
||||
self._previousPlaylist = self._playlist
|
||||
self._playlist = files
|
||||
|
||||
if username is None and self._protocol and self._protocol.logged:
|
||||
@ -513,6 +519,13 @@ class SyncplayClient(object):
|
||||
self.ui.setPlaylist(self._playlist)
|
||||
self.ui.showMessage(u"{} updated the playlist".format(username))
|
||||
|
||||
def undoPlaylistChange(self):
|
||||
if self._previousPlaylist is not None and self._playlist <> self._previousPlaylist:
|
||||
undidPlaylist = self._playlist
|
||||
self.ui.setPlaylist(self._previousPlaylist)
|
||||
self.changePlaylist(self._previousPlaylist)
|
||||
self._previousPlaylist = undidPlaylist
|
||||
|
||||
def __executePrivacySettings(self, filename, size):
|
||||
if self._config['filenamePrivacyMode'] == PRIVACY_SENDHASHED_MODE:
|
||||
filename = utils.hashFilename(filename)
|
||||
@ -557,6 +570,7 @@ class SyncplayClient(object):
|
||||
return self.userlist.currentUser.username
|
||||
|
||||
def setRoom(self, roomName, resetAutoplay=False):
|
||||
self._previousPlaylist = None
|
||||
self.userlist.currentUser.room = roomName
|
||||
if resetAutoplay:
|
||||
self.resetAutoPlayState()
|
||||
|
||||
@ -538,8 +538,9 @@ class MainWindow(QtGui.QMainWindow):
|
||||
MainWindow.FileSwitchManager.setFilenameWatchlist(self.newWatchlist)
|
||||
self.checkForDisabledDir()
|
||||
|
||||
@needsClient
|
||||
def undoPlaylistChange(self):
|
||||
self.showErrorMessage("TODO: Undo playlist change!")
|
||||
self._syncplayClient.undoPlaylistChange()
|
||||
|
||||
def openPlaylistMenu(self, position):
|
||||
indexes = self.playlist.selectedIndexes()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user