import os
import pickle
-version = "0.2"
+version = "0.3"
try:
from glib import get_user_config_dir
return(cfg)
-size = (2,2)
-iconsize = 64
-iconspace = 42
-apps=None
-indiv=False
-id=None # Applet ID
-longpress=True
-
-maxsz=(4,4)
-
-def setSize(sz):
- global size
-
- size=sz
-
-def getSize():
- global size
-
- return(size)
-
-def getMaxSize():
- global maxsz
-
- return(maxsz)
-
-def setIndiv(_indiv):
- global indiv
-
- indiv=_indiv
-
-def getIndiv():
- global indiv
-
- return(indiv)
-
-def setLongpress(_lp):
- global longpress
-
- longpress=_lp
-
-def getLongpress():
- global longpress
-
- return(longpress)
-
-def setApps(aps):
- """ apps is a dictionary of (x,y)=>appname """
- global apps
-
- apps=aps
-
-def getApps():
- global apps
-
- if apps==None:
- tmp={
- (0,0): 'rtcom-call-ui',
- (0,1): 'rtcom-messaging-ui',
- (1,0): 'browser',
- (1,1): 'osso-addressbook',
- }
- setApps(tmp)
-
- return(apps)
-
def ensure_dir():
dir0=get_user_config_dir()
dir=dir0+'/drlaunch'
return(ret)
-def save():
- global id
+class Config:
+ def __init__(self, id):
+ self.id=id
- check_init()
+ self.size = (2,2)
+ self.iconsize = 64
+ self.iconspace = 42
+ self.apps=None
+ self.indiv=False
+ self.longpress=True
- dt=load_all()
+ self.maxsz=(4,4)
- if dt==None:
- dt={
- 'version': 3,
- 'data': {},
- }
+ def setSize(self, sz):
+ self.size=sz
- dt['data'][id]={
- 'size': getSize(),
- 'apps': getApps(),
- 'indiv': getIndiv(),
- 'longpress': getLongpress(),
- }
+ def getSize(self):
+ return(self.size)
- fn=get_config_fn()
+ def getMaxSize(self):
+ return(self.maxsz)
- st=pickle.dumps(dt)
- f=file(fn, 'w')
- f.write(st)
- f.close()
+ def getIconSize(self):
+ return(self.iconsize)
-def parse_v1(dt0):
- """ Convert a v1 config to v2 """
- global id
+ def setIndiv(self, indiv):
+ self.indiv=indiv
- ret={
- 'version': 2,
- 'data': {},
- }
+ def getIndiv(self):
+ return(self.indiv)
- ret['data'][id]={
- 'size': dt0['size'],
- 'apps': dt0['apps'],
- }
+ def setLongpress(self, lp):
+ self.longpress=lp
- return(ret)
+ def getLongpress(self):
+ return(self.longpress)
-def parse_v2(dt):
- global id
+ def setApps(self, aps):
+ """ apps is a dictionary of (x,y)=>appname """
+ self.apps=aps
- # Perhaps copy dt?
+ def getApps(self):
+ if self.apps==None:
+ tmp={
+ (0,0): 'rtcom-call-ui',
+ (0,1): 'rtcom-messaging-ui',
+ (1,0): 'browser',
+ (1,1): 'osso-addressbook',
+ }
+ self.setApps(tmp)
- dt['version']=3
+ return(self.apps)
- for i in dt['data']:
- dt['data'][i]['indiv']=False
- dt['data'][i]['size']=(dt['data'][i]['size'], dt['data'][i]['size'])
- dt['data'][i]['longpress']=True
+ def save(self):
+ self.check_init()
- return(dt)
+ dt=self.load_all()
-def load_all():
- fn=get_config_fn()
+ if dt==None:
+ dt={
+ 'version': 3,
+ 'data': {},
+ }
- try:
- f=file(fn, 'r')
- st=f.read()
+ dt['data'][self.id]={
+ 'size': self.getSize(),
+ 'apps': self.getApps(),
+ 'indiv': self.getIndiv(),
+ 'longpress': self.getLongpress(),
+ }
+
+ fn=get_config_fn()
+
+ st=pickle.dumps(dt)
+ f=file(fn, 'w')
+ f.write(st)
f.close()
- ret=pickle.loads(st)
- if ret==None:
- ret=None
- else:
- if ret['version']==1:
- ret=parse_v1(ret)
+ def parse_v1(self, dt0):
+ """ Convert a v1 config to v2 """
+ ret={
+ 'version': 2,
+ 'data': {},
+ }
- if ret['version']==2:
- ret=parse_v2(ret)
- except:
- ret=None
+ ret['data'][self.id]={
+ 'size': dt0['size'],
+ 'apps': dt0['apps'],
+ }
- return(ret)
+ return(ret)
+
+ def parse_v2(self, dt):
+ # Perhaps copy dt?
+
+ dt['version']=3
-def load():
- global id
+ for i in dt['data']:
+ dt['data'][i]['indiv']=False
+ dt['data'][i]['size']=(dt['data'][i]['size'], dt['data'][i]['size'])
+ dt['data'][i]['longpress']=True
- check_init()
+ return(dt)
- fn=get_config_fn()
+ def load_all(self):
+ fn=get_config_fn()
+
+ try:
+ f=file(fn, 'r')
+ st=f.read()
+ f.close()
+ ret=pickle.loads(st)
+
+ if ret==None:
+ ret=None
+ else:
+ if ret['version']==1:
+ ret=parse_v1(ret)
+
+ if ret['version']==2:
+ ret=parse_v2(ret)
+ except:
+ ret=None
- dt0=load_all()
+ return(ret)
- if not dt0['data'].has_key(id):
- return
+ def load(self):
+ self.check_init()
- dt=dt0['data'][id]
+ fn=get_config_fn()
- setSize(dt['size'])
- setApps(dt['apps'])
- setIndiv(dt['indiv'])
- setLongpress(dt['longpress'])
+ dt0=self.load_all()
-def init(_id):
- global id
+ if not dt0['data'].has_key(self.id):
+ return
- id=_id
+ dt=dt0['data'][self.id]
-def check_init():
- global id
+ self.setSize(dt['size'])
+ self.setApps(dt['apps'])
+ self.setIndiv(dt['indiv'])
+ self.setLongpress(dt['longpress'])
- if id==None:
- import sys
+ def check_init(self):
+ if self.id==None:
+ import sys
- print "config.init() not done"
- sys.exit(1)
+ print "config.init() not done"
+ sys.exit(1)
# vim: set ts=8 sts=4 sw=4 noet formatoptions=r ai nocindent: