Ejemplo n.º 1
0
 def reload(self):
     self.rows = []
     for k in options.keys():
         opt = options._get(k)
         self.addRow(opt)
     self.columns[
         1].name = 'global_value' if self.source == 'override' else 'sheet_value'
Ejemplo n.º 2
0
 def get_color(self, optname, precedence=0):
     'colors.color_foo returns colors[options.color_foo]'
     r = self.colorcache.get(optname, None)
     if r is None:
         coloropt = options._get(optname)
         colornamestr = coloropt.value if coloropt else optname
         r = self.colorcache[optname] = self._colornames_to_cattr(colornamestr, precedence)
     return r
Ejemplo n.º 3
0
class OptionsSheet(Sheet):
    _rowtype = Option  # rowdef: Option
    rowtype = 'options'
    precious = False
    columns = (
        ColumnAttr('option', 'name'),
        Column(
            'value',
            getter=lambda col, row: col.sheet.diffOption(row.name),
            setter=lambda col, row, val: options.set(row.name, val, col.sheet.
                                                     source),
        ),
        Column('default',
               getter=lambda col, row: options.get(row.name, 'global')),
        Column(
            'description',
            width=40,
            getter=lambda col, row: options._get(row.name, 'global').helpstr),
        ColumnAttr('replayable'),
    )
    colorizers = [
        CellColorizer(
            3, None, lambda s, c, r, v: v.value if r and c in s.columns[1:3]
            and r.name.startswith('color_') else None),
    ]
    nKeys = 1

    def diffOption(self, optname):
        val = options.get(optname, self.source)
        default = options.get(optname, 'global')
        return val if val != default else ''

    def editOption(self, row):
        currentValue = options.get(row.name, self.source)
        vd.addUndo(options.set, row.name, currentValue, self.source)
        if isinstance(row.value, bool):
            options.set(row.name, not currentValue, self.source)
        else:
            options.set(row.name, self.editCell(1, value=currentValue),
                        self.source)

    def reload(self):
        self.rows = []
        for k in options.keys():
            opt = options._get(k)
            self.addRow(opt)
        self.columns[
            1].name = 'global_value' if self.source == 'override' else 'sheet_value'