It works! :-)
[drlaunch] / config.py
index 005de06..36a33be 100755 (executable)
--- a/config.py
+++ b/config.py
 
 __version__ = "$Id: 0.py 2265 2010-02-21 19:16:26Z v13 $"
 
-size = 4
+import os
+import pickle
+
+try:
+    from glib import get_user_config_dir
+except:
+    def get_user_config_dir():
+       home=os.environ['HOME']
+       if home=='':
+           home="/home/user"
+       cfg="%s/.config" % (home)
+
+       return(cfg)
+
+size = 2
 iconsize = 64
 iconspace = 42
+apps=None
+
+def setSize(sz):
+    global size
+
+    size=sz
+
+def getSize():
+    global size
+
+    return(size)
+
+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'
+    if not os.path.exists(dir):
+       os.mkdir(dir)
+    if not os.path.isdir(dir):
+       raise Exception('Failed to ensure directory' + dir)
+
+    return(dir)
+
+def get_config_fn():
+    dir=ensure_dir()
+    ret=dir + '/config'
+
+    return(ret)
+
+def save():
+    fn=get_config_fn()
+    print "save", fn
+
+    dt={
+       'version':  1,
+       'size':     getSize(),
+       'apps':     getApps()
+       }
+
+    print "save:", dt
+
+    st=pickle.dumps(dt)
+    f=file(fn, 'w')
+    f.write(st)
+    f.close()
+
+def load():
+    fn=get_config_fn()
+    print "load", fn
+
+    try:
+       f=file(fn, 'r')
+       st=f.read()
+       f.close()
+       dt=pickle.loads(st)
+    except:
+       return
+
+    print "load:", dt
+
+    setSize(dt['size'])
+    setApps(dt['apps'])
 
 # vim: set ts=8 sts=4 sw=4 noet formatoptions=r ai nocindent: