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
10
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
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