From 33a079e124a8b105d66344e54bd490185f828a6c Mon Sep 17 00:00:00 2001 From: Etoh Date: Wed, 19 Feb 2014 19:33:07 +0000 Subject: [PATCH 1/8] Re-work drop (client.py) --- syncplay/client.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/syncplay/client.py b/syncplay/client.py index a66306d..0ef784a 100644 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -366,7 +366,8 @@ class SyncplayClient(object): reactor.connectTCP(host, port, self.protocolFactory) reactor.run() - def stop(self, promptForAction=False): + + def stop(self, stopMessage=None): if not self._running: return self._running = False @@ -376,10 +377,12 @@ class SyncplayClient(object): if self._player: self._player.drop() if self.ui: + if(stopMessage): + self.ui.showErrorMessage(stopMessage, True) self.ui.drop() reactor.callLater(0.1, reactor.stop) - if(promptForAction): - self.ui.promptFor(getMessage("en", "enter-to-exit-prompt")) + if(stopMessage): + self.ui.waitForUserAction(getMessage("en", "enter-to-exit-prompt")) class _WarningManager(object): def __init__(self, player, userlist, ui): @@ -596,8 +599,8 @@ class UiManager(object): def showErrorMessage(self, message, criticalerror=False): self.__ui.showErrorMessage(message, criticalerror) - def promptFor(self, prompt): - return self.__ui.promptFor(prompt) + def waitForUserAction(self, prompt): + return self.__ui.waitForUserAction(prompt) def userListChange(self): self.__ui.userListChange() From 385a6bb5ab029f7c1f10a0ddf8e03408bf7d1e13 Mon Sep 17 00:00:00 2001 From: Etoh Date: Wed, 19 Feb 2014 19:34:39 +0000 Subject: [PATCH 2/8] Re-work drop (mpc.py) --- syncplay/players/mpc.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/syncplay/players/mpc.py b/syncplay/players/mpc.py index c12a147..80e782c 100644 --- a/syncplay/players/mpc.py +++ b/syncplay/players/mpc.py @@ -311,7 +311,7 @@ class MPCHCAPIPlayer(BasePlayer): self.__client = client self._mpcApi = MpcHcApi() self._mpcApi.callbacks.onUpdateFilename = lambda _: self.__makePing() - self._mpcApi.callbacks.onMpcClosed = lambda _: self.reactor.callFromThread(self.__client.stop, (False),) + self._mpcApi.callbacks.onMpcClosed = lambda _: self.reactor.callFromThread(self.__client.stop,) self._mpcApi.callbacks.onFileStateChange = lambda _: self.__lockAsking() self._mpcApi.callbacks.onUpdatePlaystate = lambda _: self.__unlockAsking() self._mpcApi.callbacks.onGetCurrentPosition = lambda _: self.__onGetPosition() @@ -356,8 +356,7 @@ class MPCHCAPIPlayer(BasePlayer): def __dropIfNotSufficientVersion(self): self._mpcApi.askForVersion() if(not self.__versionUpdate.wait(0.1) or not self._mpcApi.version): - self.__mpcError(getMessage("en", "mpc-version-insufficient-error").format(constants.MPC_MIN_VER)) - self.reactor.callFromThread(self.__client.stop, (True),) + self.reactor.callFromThread(self.__client.stop, getMessage("en", "mpc-version-insufficient-error").format(constants.MPC_MIN_VER),) def __testMpcReady(self): if(not self.__preventAsking.wait(10)): @@ -370,8 +369,7 @@ class MPCHCAPIPlayer(BasePlayer): self.__handleUpdatedFilename() self.askForStatus() except Exception, err: - self.__client.ui.showErrorMessage(err.message) - self.reactor.callFromThread(self.__client.stop) + self.reactor.callFromThread(self.__client.stop, err.message,) def initPlayer(self, filePath): self.__dropIfNotSufficientVersion() @@ -456,10 +454,6 @@ class MPCHCAPIPlayer(BasePlayer): self.__setUpStateForNewlyOpenedFile() args = (self._mpcApi.filePlaying, self._mpcApi.fileDuration, self._mpcApi.filePath) self.reactor.callFromThread(self.__client.updateFile, *args) - - def __mpcError(self, err=""): - self.__client.ui.showErrorMessage(err) - self.reactor.callFromThread(self.__client.stop) def sendCustomCommand(self, cmd, val): self._mpcApi.sendRawCommand(cmd, val) From f3329b0354ea8e9c0e3da6a7dccacda5fd2bc687 Mon Sep 17 00:00:00 2001 From: Etoh Date: Wed, 19 Feb 2014 19:35:15 +0000 Subject: [PATCH 3/8] Re-work drop (vlc.py) --- syncplay/players/vlc.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/syncplay/players/vlc.py b/syncplay/players/vlc.py index 49d49fd..c456842 100644 --- a/syncplay/players/vlc.py +++ b/syncplay/players/vlc.py @@ -40,15 +40,13 @@ class VlcPlayer(BasePlayer): try: self._listener = self.__Listener(self, playerPath, filePath, args, self._vlcready, self._vlcclosed) except ValueError: - self._client.ui.showErrorMessage(getMessage("en", "vlc-failed-connection"), True) - self.reactor.callFromThread(self._client.stop, (True),) + self.reactor.callFromThread(self._client.stop, getMessage("en", "vlc-failed-connection"),) return self._listener.setDaemon(True) self._listener.start() if(not self._vlcready.wait(constants.VLC_OPEN_MAX_WAIT_TIME)): self._vlcready.set() - self._client.ui.showErrorMessage(getMessage("en", "vlc-failed-connection"), True) - self.reactor.callFromThread(self._client.stop, (True),) + self.reactor.callFromThread(self._client.stop, getMessage("en", "vlc-failed-connection"),) self.reactor.callFromThread(self._client.initPlayer, (self),) def _fileUpdateClearEvents(self): @@ -204,7 +202,7 @@ class VlcPlayer(BasePlayer): self._positionAsk.set() self._vlcready.set() self._pausedAsk.set() - self.reactor.callFromThread(self._client.stop, (False),) + self.reactor.callFromThread(self._client.stop,) class __Listener(threading.Thread, asynchat.async_chat): def __init__(self, playerController, playerPath, filePath, args, vlcReady, vlcClosed): From 75f0c838eb9abc7c22604aaba601e8266e636cc0 Mon Sep 17 00:00:00 2001 From: Etoh Date: Wed, 19 Feb 2014 19:37:56 +0000 Subject: [PATCH 4/8] Re-work drop (consoleUI.py) --- syncplay/ui/consoleUI.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syncplay/ui/consoleUI.py b/syncplay/ui/consoleUI.py index 39ecf1d..74565c4 100644 --- a/syncplay/ui/consoleUI.py +++ b/syncplay/ui/consoleUI.py @@ -36,7 +36,7 @@ class ConsoleUI(threading.Thread): except EOFError: pass - def promptFor(self, prompt=">", message=""): + def waitForUserAction(self, prompt=">", message=""): if message <> "": print(message) self.promptMode.clear() From 67c053317b0b6e58f1a6342dfc746229859efcfa Mon Sep 17 00:00:00 2001 From: Etoh Date: Wed, 19 Feb 2014 19:38:31 +0000 Subject: [PATCH 5/8] Re-work drop (gui.py) --- syncplay/ui/gui.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py index 7aea0ee..192625a 100644 --- a/syncplay/ui/gui.py +++ b/syncplay/ui/gui.py @@ -12,8 +12,7 @@ class MainWindow(QtGui.QMainWindow): self._syncplayClient = client self.roomInput.setText(self._syncplayClient.getRoom()) - def promptFor(self, prompt=">", message=""): - #TODO: Prompt user + def waitForUserAction(self, prompt=">", message=""): return None def showMessage(self, message, noTimestamp=False): From 56b8ec8990499037665f92d98c92c498ffbdba18 Mon Sep 17 00:00:00 2001 From: Etoh Date: Wed, 19 Feb 2014 22:46:31 +0000 Subject: [PATCH 6/8] Re-work client drop (protocols.py) --- syncplay/protocols.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syncplay/protocols.py b/syncplay/protocols.py index f83cfa0..492a4af 100644 --- a/syncplay/protocols.py +++ b/syncplay/protocols.py @@ -67,9 +67,9 @@ class SyncClientProtocol(JSONCommandProtocol): self._client.destroyProtocol() def dropWithError(self, error): - self._client.ui.showErrorMessage(error) self._client.protocolFactory.stopRetrying() self.drop() + self._client.stop(error) def _extractHelloArguments(self, hello): username = hello["username"] if hello.has_key("username") else None From f8f22619acc914a5555137bfd44e1bfb84ca5de4 Mon Sep 17 00:00:00 2001 From: Etoh Date: Wed, 19 Feb 2014 22:50:26 +0000 Subject: [PATCH 7/8] Re-work client drop (mplayer.py) --- syncplay/players/mplayer.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/syncplay/players/mplayer.py b/syncplay/players/mplayer.py index 846a230..bcfc996 100644 --- a/syncplay/players/mplayer.py +++ b/syncplay/players/mplayer.py @@ -21,9 +21,7 @@ class MplayerPlayer(BasePlayer): try: self._listener = self.__Listener(self, playerPath, filePath, args) except ValueError: - self._client.ui.showMessage(getMessage("en", "mplayer-file-required-notification")) - self._client.ui.showMessage(getMessage("en", "mplayer-file-required-notification/example")) - self.reactor.callFromThread(self._client.stop, (True),) + self.reactor.callFromThread(self._client.stop,getMessage("en", "mplayer-file-required-notification")+"\n"+getMessage("en", "mplayer-file-required-notification/example"),) return self._listener.setDaemon(True) self._listener.start() @@ -181,9 +179,8 @@ class MplayerPlayer(BasePlayer): return path def notMplayer2(self): - print getMessage("en", "mplayer2-required") self._listener.sendLine('quit') - self.reactor.callFromThread(self._client.stop, (True),) + self.reactor.callFromThread(self._client.stop, getMessage("en", "mplayer2-required"),) def _takeLocksDown(self): self._durationAsk.set() @@ -195,7 +192,7 @@ class MplayerPlayer(BasePlayer): def drop(self): self._listener.sendLine('quit') self._takeLocksDown() - self.reactor.callFromThread(self._client.stop, (False),) + self.reactor.callFromThread(self._client.stop,) class __Listener(threading.Thread): def __init__(self, playerController, playerPath, filePath, args): From 2afa2b39b3abc0ee8415359552b8db2b3e9ec376 Mon Sep 17 00:00:00 2001 From: Etoh Date: Thu, 6 Mar 2014 19:52:23 +0000 Subject: [PATCH 8/8] Stop on connection failed --- syncplay/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syncplay/client.py b/syncplay/client.py index 0ef784a..c4a5051 100644 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -42,7 +42,7 @@ class SyncClientFactory(ClientFactory): def clientConnectionFailed(self, connector, reason): if not self.reconnecting: - self._client.ui.showErrorMessage(getMessage("en", "connection-failed-notification")) + self._client.stop(getMessage("en", "connection-failed-notification")) else: self.clientConnectionLost(connector, reason)