summaryrefslogtreecommitdiff
path: root/nephilim/connect_wg.py
blob: 3a3f0dd78b6731ff9d8d0cbd2f8bd8cf2d187051 (plain)
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()