summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjerous <jerous@gmail.com>2008-05-31 00:01:04 +0200
committerjerous <jerous@gmail.com>2008-05-31 00:01:04 +0200
commit3186b266ec66c3abf893888a765470da838c3dd8 (patch)
tree94ca23e84a233aebbf1b2a995286695e98187c7d
parentbc00da04b145b62d701cc2c5c44453a6b96984a3 (diff)
saving and loading settings from file
-rw-r--r--.gitignore1
-rw-r--r--clSettings.py24
-rw-r--r--montypc.py3
-rw-r--r--winConnect.py8
-rw-r--r--winMain.py12
-rw-r--r--winSettings.py67
6 files changed, 112 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore
index e0f7a11..ed6cabb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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()
diff --git a/montypc.py b/montypc.py
index 6750b4b..bedfd78 100644
--- a/montypc.py
+++ b/montypc.py
@@ -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()
diff --git a/winMain.py b/winMain.py
index 4668dc2..a23a674 100644
--- a/winMain.py
+++ b/winMain.py
@@ -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()