def integrate_descendant(self, descendant, name=None): if isinstance(descendant, basestring): descendant = presets.get_setting(descendant) setting = descendant descendant = setting.component_class() descendant.integrate(self, name) descendant.from_settings(setting) return descendant
def from_settings(self, setting): self.reset() for n in setting.settings: s = setting.get_setting(n) if s is None: continue if isinstance(s, ComponentSetting): self.integrate_descendant(s) elif (isinstance(s, SettingComponentList) or (isinstance(s, SettingList) and issubclass(s.element_setting_type, ComponentSetting))): for t in s.get_settings(): self.integrate_descendant(t) else: value = s.get_value() if value is None: value = self.propdefaults[n] setattr(self, n, value) if setting.name: setting = presets.get_setting(setting.name) self.fromsettings = setting
def get_options(self): return [] def integrate(self, ancestor, name=None): self.msaview_name = Overlay.integrate(self, ancestor, name) msa = integrate_ancestor_msa(self, ancestor) self.selection = msa.selection return self.msaview_name class SelectionSetting(ComponentSetting): component_class = SelectionOverlay presets.register_component_defaults(SelectionSetting) presets.add_preset('font:ruler_default', presets.get_setting('font:default')) class Ruler(Overlay): __gproperties__ = dict( font = ( gobject.TYPE_PYOBJECT, 'font', 'font for numbers on ruler', gobject.PARAM_READWRITE), msa = ( gobject.TYPE_PYOBJECT, 'msa', 'the msa to measure', gobject.PARAM_READWRITE)) propdefaults = dict(alpha=1.0,