def __init__(self, key): ListWidget.__init__(self, "EditableList.ui", "columns_ta", ["ColumnsListStore"], "columns_treeview") self.key = key # Unwrap the variant prefs_columns = [(k, v) for k, v in settings.get_value(self.key)] column_vis = {} column_order = {} for sort_key, (column_name, visibility) in enumerate(prefs_columns): column_vis[column_name] = bool(int(visibility)) column_order[column_name] = sort_key columns = [(column_vis.get(name, True), name, label) for name, label in self.available_columns.items()] columns = sorted(columns, key=lambda c: column_order.get(c[1], 0)) for visibility, name, label in columns: self.model.append([visibility, name, label]) for signal in ('row-changed', 'row-deleted', 'row-inserted', 'rows-reordered'): self.model.connect(signal, self._update_columns) self._update_sensitivity()
def __init__(self, key): ListWidget.__init__(self, "EditableList.ui", "columns_ta", ["ColumnsListStore"], "columns_treeview") self.key = key # Unwrap the variant prefs_columns = [(k, v) for k, v in settings.get_value(self.key)] missing = self.available_columns - set([c[0] for c in prefs_columns]) prefs_columns.extend([(m, False) for m in missing]) for column_name, visibility in prefs_columns: self.model.append([visibility, _(column_name.capitalize())]) for signal in ('row-changed', 'row-deleted', 'row-inserted', 'rows-reordered'): self.model.connect(signal, self._update_columns) self._update_sensitivity()
def __init__(self, key, filter_type): default_entry = [_("label"), False, _("pattern"), True] ListWidget.__init__(self, "EditableList.ui", "list_vbox", ["EditableListStore"], "EditableList", default_entry) self.key = key self.filter_type = filter_type self.pattern_column.set_cell_data_func(self.validity_renderer, self.valid_icon_celldata) for filter_params in settings.get_value(self.key): filt = FilterEntry.new_from_gsetting(filter_params, filter_type) if filt is None: continue valid = filt.filter is not None self.model.append([filt.label, filt.active, filt.filter_string, valid]) for signal in ('row-changed', 'row-deleted', 'row-inserted', 'rows-reordered'): self.model.connect(signal, self._update_filter_string) self._update_sensitivity()
def __init__(self, key, filter_type): default_entry = [_("label"), False, _("pattern"), True] ListWidget.__init__(self, "EditableList.ui", "list_vbox", ["EditableListStore"], "EditableList", default_entry) self.key = key self.filter_type = filter_type self.pattern_column.set_cell_data_func(self.validity_renderer, self.valid_icon_celldata) for filter_params in settings.get_value(self.key): filt = FilterEntry.new_from_gsetting(filter_params, filter_type) if filt is None: continue valid = filt.filter is not None self.model.append( [filt.label, filt.active, filt.filter_string, valid]) for signal in ('row-changed', 'row-deleted', 'row-inserted', 'rows-reordered'): self.model.connect(signal, self._update_filter_string) self._update_sensitivity()