def __on_sort_layer(self, item): lst = self.populate(False) dct = defaultdict(list) for proto in lst: dct[backend.get_proto_layer(proto)].append(proto) for i in xrange(1, 8, 1): if not i in dct: continue it = self.store.append(None, [self.layer_icon, _('Layer %d') % i, None]) for proto in dct[i]: self.store.append(it, [self.proto_icon, backend.get_proto_class_name(proto), proto]) if None in dct: it = self.store.append(None, [self.layer_icon, _('Unknown layer'), None]) for proto in dct[None]: self.store.append(it, [self.proto_icon, backend.get_proto_class_name(proto), proto]) self.tree.set_rules_hint(False) self.tree.set_model(self.store)
def populate(self, fill=True): self.store.clear() if fill: for i in backend.get_protocols(): self.store.append(None, [self.proto_icon, backend.get_proto_class_name(i), i]) else: return backend.get_protocols()