Package vwidget :: Module config
[hide private]
[frames] | no frames]

Source Code for Module vwidget.config

 1   
 2  import os 
 3   
 4  import gtk 
 5  import vwidget 
 6  import vwidget.util as vw_util 
 7  import vwidget.windows as vw_windows 
 8   
9 -class ConfigDialog(vw_windows.VWindow):
10
11 - def __init__(self, cfg, cfgname=None):
12 """ 13 A dialog for editing config options. If you specify "cfgname", 14 all changes will be saved out to the specified file 15 as they happen. 16 """ 17 dname = os.path.dirname(vwidget.__file__) 18 fname = os.path.join(dname, "config.glade") 19 vw_windows.VWindow.__init__(self, fname, (0,0,500,300)) 20 21 self.setGeometry((0,0,500,300)) 22 23 self.cfg = cfg 24 self.cfgname = cfgname 25 26 tree = self.getWidget("ConfigTree") 27 tree.append_column(vw_util.makeColumn("Section",1)) 28 tree.append_column(vw_util.makeColumn("Option",2)) 29 tree.append_column(vw_util.makeColumn("Value", 3, self.OptionEdited)) 30 31 model = gtk.TreeStore(str,str,str,str) 32 tree.set_model(model) 33 34 secs = cfg.sections() 35 secs.sort() 36 for sec in secs: 37 i = model.append(None, (None, sec, None, None)) 38 opts = cfg.options(sec) 39 opts.sort() 40 for opt in opts: 41 model.append(i, ("%s|%s" % (sec,opt), None, opt, cfg.get(sec, opt)))
42
43 - def OptionEdited(self, renderer, path, value):
44 model = self.getWidget("ConfigTree").get_model() 45 iter = model.get_iter(path) 46 model.set_value(iter, 3, value) 47 sec, opt = model.get_value(iter, 0).split("|", 1) 48 self.cfg.set(sec, opt, value) 49 if self.cfgname != None: 50 self.cfg.write(file(self.cfgname, "wb")) 51 return True
52