comparison mercurial/ui.py @ 1874:a84829140fb1

Inherit config from real parentui and don't use ConfigParser internals. Added comments for the meaning of parentui.
author Thomas Arendsen Hein <thomas@intevation.de>
date Fri, 10 Mar 2006 11:06:45 +0100
parents 89a6ce5ae510
children 2e0fd78587bd
comparison
equal deleted inserted replaced
1873:205f04b04ec6 1874:a84829140fb1
12 12
13 class ui(object): 13 class ui(object):
14 def __init__(self, verbose=False, debug=False, quiet=False, 14 def __init__(self, verbose=False, debug=False, quiet=False,
15 interactive=True, parentui=None): 15 interactive=True, parentui=None):
16 self.overlay = {} 16 self.overlay = {}
17 self.cdata = ConfigParser.SafeConfigParser()
18 self.parentui = parentui and parentui.parentui or parentui
19 if parentui is None: 17 if parentui is None:
18 # this is the parent of all ui children
19 self.parentui = None
20 self.cdata = ConfigParser.SafeConfigParser()
20 self.readconfig(util.rcpath) 21 self.readconfig(util.rcpath)
21 22
22 self.quiet = self.configbool("ui", "quiet") 23 self.quiet = self.configbool("ui", "quiet")
23 self.verbose = self.configbool("ui", "verbose") 24 self.verbose = self.configbool("ui", "verbose")
24 self.debugflag = self.configbool("ui", "debug") 25 self.debugflag = self.configbool("ui", "debug")
25 self.interactive = self.configbool("ui", "interactive", True) 26 self.interactive = self.configbool("ui", "interactive", True)
26 27
27 self.updateopts(verbose, debug, quiet, interactive) 28 self.updateopts(verbose, debug, quiet, interactive)
28 self.diffcache = None 29 self.diffcache = None
29 else: 30 else:
30 self.cdata._defaults = parentui.cdata._defaults 31 # parentui may point to an ui object which is already a child
31 for key, value in parentui.cdata._sections.iteritems(): 32 self.parentui = parentui.parentui or parentui
32 self.cdata._sections[key] = value.copy() 33 parent_cdata = self.parentui.cdata
34 self.cdata = ConfigParser.SafeConfigParser(parent_cdata.defaults())
35 # make interpolation work
36 for section in parent_cdata.sections():
37 self.cdata.add_section(section)
38 for name, value in parent_cdata.items(section, raw=True):
39 self.cdata.set(section, name, value)
33 40
34 def __getattr__(self, key): 41 def __getattr__(self, key):
35 return getattr(self.parentui, key) 42 return getattr(self.parentui, key)
36 43
37 def updateopts(self, verbose=False, debug=False, quiet=False, 44 def updateopts(self, verbose=False, debug=False, quiet=False,