diff options
author | jerous <jerous@gmail.com> | 2008-05-26 14:49:37 +0200 |
---|---|---|
committer | jerous <jerous@gmail.com> | 2008-05-26 14:49:37 +0200 |
commit | eb326fb5ff954b4eba324814693aae57e84c9196 (patch) | |
tree | d5ddb943101e41f047c340ddcf305620a142cdea /winConnect.py | |
parent | d27ba8572724563a99cbc3d41708db6d6915ea49 (diff) |
events onConnect and onDisconnect
recovery when mpd is killed and restarted
fix adding single song to playlist
user can enter host and port of mpd
Diffstat (limited to 'winConnect.py')
-rw-r--r-- | winConnect.py | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/winConnect.py b/winConnect.py new file mode 100644 index 0000000..f425097 --- /dev/null +++ b/winConnect.py @@ -0,0 +1,86 @@ +from PyQt4 import QtGui, QtCore +import time +from clMonty import monty + + +class winConnect(QtGui.QWidget): + txtHost=None + txtPort=None + lblInfo=None + quit=False + _timerID=None + + def __init__(self, parent=None): + QtGui.QWidget.__init__(self, parent) + self.txtHost=QtGui.QLineEdit("localhost") + self.txtPort=QtGui.QLineEdit("6600") + self.btnConnect=QtGui.QPushButton("connect") + self.btnCancel=QtGui.QPushButton("exit") + self.lblInfo=QtGui.QLabel("connecting ...") + + frame=QtGui.QVBoxLayout() + inputs=QtGui.QHBoxLayout() + + frame.addLayout(inputs) + frame.addWidget(self.lblInfo) + + inputs.addWidget(self.txtHost) + inputs.addWidget(self.txtPort) + + self.setWindowTitle('Connect to mpd') + self.setLayout(frame) + self.resize(200,80) + self.center() + + self.quit=False + + " event handlers" + self.connect(self.btnConnect, QtCore.SIGNAL('clicked(bool)'), + self._onBtnConnectClick) + self.connect(self.btnCancel, QtCore.SIGNAL('clicked(bool)'), + self._onBtnCancelClick) + + monty.addListener('onConnect', self._onConnect) + monty.addListener('onDisconnect', self._onDisconnect) + + def center(self): + screen = QtGui.QDesktopWidget().screenGeometry() + size = self.geometry() + self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2) + + def monitor(self): + if self._timerID==None: + self._timerID=self.startTimer(500) + if self.isVisible()==False: + self.show() + self.activateWindow() + self.raise_() + + + def _onConnect(self, params): + if self._timerID: + self.killTimer(self._timerID) + self._timerID=None + self.hide() + def _onDisconnect(self, params): + self.monitor() + + def _onBtnCancelClick(self): + self.quit=True + + def _onBtnConnectClick(self): + self.monitor() + + def timerEvent(self, event): + host=str(self.txtHost.text()) + try: + port=int(self.txtPort.text()) + self.lblInfo.setText('Disconnected.\nTrying to connect to '+host+':'+str(port)+' ...') + monty.init(host, port) + except: + self.lblInfo.setText('Invalid port.') + + + + +wConnect=winConnect() |