1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
from PyQt4 import QtGui, QtCore
from PyQt4.QtCore import QVariant
import time
from misc import ORGNAME, APPNAME, appIcon
class ConnectWidget(QtGui.QWidget):
host_txt = None
port_txt = None
info_lbl = None
connect_btn = None
mpclient = None
settings = None
def __init__(self, parent):
QtGui.QWidget.__init__(self)
self.mpclient = parent.mpclient
self.settings = QtCore.QSettings(ORGNAME, APPNAME)
self.host_txt = QtGui.QLineEdit(self.settings.value('MPD/host', QVariant('localhost')).toString())
self.port_txt = QtGui.QLineEdit(self.settings.value('MPD/port', QVariant('6600')).toString())
self.port_txt.setValidator(QtGui.QIntValidator(1, 65535, self.port_txt))
self.info_lbl = QtGui.QLabel("connecting...")
self.connect_btn = QtGui.QPushButton('Connect')
self.connect(self.connect_btn, QtCore.SIGNAL('clicked()'), self.connect_mpd)
self.setLayout(QtGui.QGridLayout())
self.layout().addWidget(self.info_lbl, 0, 0, 1, 2)
self.layout().addWidget(self.host_txt, 1, 0)
self.layout().addWidget(self.port_txt, 1, 1)
self.layout().addWidget(self.connect_btn, 2, 0)
self.setWindowIcon(QtGui.QIcon(appIcon))
self.setWindowTitle('Connect to MPD')
self.center()
self.connect(self.mpclient, QtCore.SIGNAL('connected'), self.on_connected)
def center(self):
screen = QtGui.QDesktopWidget().screenGeometry()
size = self.geometry()
self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2+100)
def monitor(self):
self.show()
self.activateWindow()
self.raise_()
if self.host_txt:
self.connect_mpd()
def connect_mpd(self):
host = str(self.host_txt.text())
port = int(self.port_txt.text()) if self.port_txt.text() else None
self.info_lbl.setText('Trying to connect to %s' + (':%d'%port if port else ''))
if not self.mpclient.connect_mpd(host, port):
self.info_lbl.setText('Connection failed')
def on_connected(self):
self.info_lbl.setText('Connected')
self.settings.setValue('MPD/host', QVariant(self.host_txt.text()))
self.settings.setValue('MPD/port', QVariant(self.port_txt.text()))
self.hide()
|