mercurial/ui.py
changeset 1874 a84829140fb1
parent 1866 89a6ce5ae510
child 1876 2e0fd78587bd
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,