from PyQt4 import QtGui, QtCore from clSettings import settings from misc import * _winSettings=None def showSettingsWindow(): global _winSettings if not _winSettings: _winSettings=winSettings() _winSettings.show() class winSettings(QtGui.QWidget): txtHost=None txtPort=None btnSave=None btnClose=None settingControls=[] def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.btnSave=Button('save', self.onBtnSaveClick, 'gfx/gtk-save.svg') self.btnClose=Button('close', self.onBtnCloseClick, 'gfx/gtk-close.svg') self.txtHost=QtGui.QLineEdit(settings.get('host', 'localhost')) self.txtPort=QtGui.QLineEdit(settings.get('port', '6600')) self.settingControls=[ ['host', self.txtHost], ['port', self.txtPort], ] tabMPC=QtGui.QWidget(self) tabMPD=QtGui.QWidget(self) layoutMPD=QtGui.QGridLayout() layoutWin=QtGui.QVBoxLayout() layoutButtons=QtGui.QHBoxLayout() tabWidget=QtGui.QTabWidget(parent) tabMPD.setLayout(layoutMPD) self.setLayout(layoutWin) tabWidget.addTab(tabMPD, "mpd") layoutMPD.addWidget(QtGui.QLabel('Host')) layoutMPD.addWidget(self.txtHost, 0, 1) layoutMPD.addWidget(QtGui.QLabel('Port')) layoutMPD.addWidget(self.txtPort, 1, 1) layoutWin.addWidget(tabWidget) layoutWin.addLayout(layoutButtons) layoutButtons.addStretch() layoutButtons.addWidget(self.btnSave) layoutButtons.addWidget(self.btnClose) self.setWindowIcon(appIcon) self.setWindowTitle('Settings') self.center() doEvents() def center(self): screen = QtGui.QDesktopWidget().screenGeometry() size = self.geometry() self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2+100) def onBtnSaveClick(self): for ctrl in self.settingControls: settings.set(ctrl[0], str(ctrl[1].text())) def onBtnCloseClick(self): self.close()