diff options
author | jerous <jerous@gmail.com> | 2008-05-31 00:01:04 +0200 |
---|---|---|
committer | jerous <jerous@gmail.com> | 2008-05-31 00:01:04 +0200 |
commit | 3186b266ec66c3abf893888a765470da838c3dd8 (patch) | |
tree | 94ca23e84a233aebbf1b2a995286695e98187c7d | |
parent | bc00da04b145b62d701cc2c5c44453a6b96984a3 (diff) |
saving and loading settings from file
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | clSettings.py | 24 | ||||
-rw-r--r-- | montypc.py | 3 | ||||
-rw-r--r-- | winConnect.py | 8 | ||||
-rw-r--r-- | winMain.py | 12 | ||||
-rw-r--r-- | winSettings.py | 67 |
6 files changed, 112 insertions, 3 deletions
@@ -1,3 +1,4 @@ *.pyc *.swp .vimsession +settings.txt diff --git a/clSettings.py b/clSettings.py new file mode 100644 index 0000000..f2d6c8c --- /dev/null +++ b/clSettings.py @@ -0,0 +1,24 @@ +import pickle + +class Settings: + fileName='settings.txt' + settings={} + + def __init__(self, file='settings.txt'): + self.fileName=file + try: + self.settings=pickle.load(open(self.fileName, 'rb')) + except: + pass + + def get(self, name, default=None): + try: + return self.settings[name] + except: + return default + + def set(self, name, value): + self.settings[name]=value + pickle.dump(self.settings, open(self.fileName, 'wb')) + +settings=Settings() @@ -5,11 +5,14 @@ from PyQt4 import QtGui app = QtGui.QApplication(sys.argv) from winMain import winMain +from winSettings import winSettings from clMonty import monty from traceback import print_exc import profile + + try: wMain = winMain() wMain.show() diff --git a/winConnect.py b/winConnect.py index 8b20dee..6c9f70d 100644 --- a/winConnect.py +++ b/winConnect.py @@ -3,6 +3,7 @@ import time from clMonty import monty from misc import * from traceback import print_exc +from clSettings import settings class winConnect(QtGui.QWidget): txtHost=None @@ -12,8 +13,8 @@ class winConnect(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) - self.txtHost=QtGui.QLineEdit("localhost") - self.txtPort=QtGui.QLineEdit("6600") + self.txtHost=QtGui.QLineEdit(settings.get('host', 'localhost')) + self.txtPort=QtGui.QLineEdit(settings.get('port', '6600')) self.lblInfo=QtGui.QLabel("connecting ...") frame=QtGui.QVBoxLayout() @@ -57,6 +58,9 @@ class winConnect(QtGui.QWidget): self.killTimer(self._timerID) self._timerID=None self.lblInfo.setText('Connected!\nRestoring library ...') + doEvents() + settings.set('host', str(self.txtHost.text())) + settings.set('port', str(self.txtPort.text())) self.txtHost.setEnabled(False) self.txtPort.setEnabled(False) doEvents() @@ -1,12 +1,14 @@ from clMonty import monty from clLibrary import Library -from winConnect import winConnect from PyQt4 import QtGui, QtCore from traceback import * import time import sys from misc import * +from clSettings import settings +from winConnect import winConnect +from winSettings import winSettings clrRowSel=QtGui.QColor(180,180,180) @@ -513,6 +515,8 @@ class winMain(QtGui.QWidget): btnPrevious=None btnNext=None + btnSettings=None + " system tray object" sysTray=None @@ -551,6 +555,7 @@ class winMain(QtGui.QWidget): self.btnStop=Button("stop", self.onBtnStopClick) self.btnPrevious=Button("prev", self.onBtnPreviousClick) self.btnNext=Button("next", self.onBtnNextClick) + self.btnSettings=Button("settings", self.onBtnSettingsClick) self.lstLibrary.showColumn(0,False) @@ -578,6 +583,7 @@ class winMain(QtGui.QWidget): info.addWidget(self.lblInfo) info.addStretch() info.addWidget(self.slrVolume) + info.addWidget(self.btnSettings) self.resize(1024,960) @@ -811,3 +817,7 @@ class winMain(QtGui.QWidget): def onBtnNextClick(self): monty.next() self.updatePlayingInfo() + + def onBtnSettingsClick(self): + self.winSettings=winSettings() + self.winSettings.show() diff --git a/winSettings.py b/winSettings.py new file mode 100644 index 0000000..6fc187b --- /dev/null +++ b/winSettings.py @@ -0,0 +1,67 @@ +from PyQt4 import QtGui, QtCore + +from clSettings import settings +from misc import * + + +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) + self.btnClose=Button('close', self.onBtnCloseClick) + + 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.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() |