Exemplo n.º 1
0
    def __init__(self):
        gtk.VBox.__init__(self, False, 2)

        self.set_border_width(4)

        self.store = gtk.ListStore(str, int, str)
        self.view = gtk.TreeView(self.store)
        self.view.set_rules_hint(True)
        self.view.set_reorderable(True)

        idx = 0
        lbls = (_('Column title'), _('Column size'), _('Function/cfield'))

        for lbl in lbls[:-1]:
            rend = gtk.CellRendererText()
            rend.set_property('editable', True)
            rend.connect('edited', self.__on_rend_edited, idx)

            col = gtk.TreeViewColumn(lbl, rend, text=idx)
            self.view.append_column(col)
            idx += 1

        # Last column
        model = gtk.ListStore(str)
        cfields = AuditManager().get_configuration('global.cfields').keys()
        cfields.sort()

        for field in cfields:
            model.append(['%' + field + '%'])

        rend = gtk.CellRendererCombo()
        rend.set_property('model', model)
        rend.set_property('text-column', 0)
        rend.set_property('editable', True)
        rend.connect('edited', self.__on_rend_edited, idx)

        self.view.props.has_tooltip = True
        self.view.connect('query-tooltip', self.__on_query_tooltip)

        col = gtk.TreeViewColumn(lbls[-1], rend, text=idx)
        self.view.append_column(col)

        sw = gtk.ScrolledWindow()
        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)

        sw.add(self.view)

        bb = gtk.HButtonBox()
        bb.set_layout(gtk.BUTTONBOX_END)

        btn = gtk.Button(stock=gtk.STOCK_ADD)
        btn.connect('clicked', self.__on_add_row)
        bb.pack_start(btn)

        btn = gtk.Button(stock=gtk.STOCK_REMOVE)
        btn.connect('clicked', self.__on_remove_row)
        bb.pack_start(btn)

        self.pack_start(sw)
        self.pack_end(bb, False, False)

        # Let's populate
        columns_str = Prefs()['gui.maintab.sniffview.columns'].value

        for column_str in columns_str.split(','):
            try:
                label, pixel_size, eval_str = column_str.split('|', 2)
                pixel_size = int(pixel_size)

                self.store.append([label, pixel_size, eval_str])
            except:
                pass

        self.widgets = []
Exemplo n.º 2
0
    def __init__(self):
        gtk.VBox.__init__(self, False, 2)

        self.set_border_width(4)

        self.store = gtk.ListStore(str, int, str)
        self.view = gtk.TreeView(self.store)
        self.view.set_rules_hint(True)
        self.view.set_reorderable(True)

        idx = 0
        lbls = (_('Column title'), _('Column size'), _('Function/cfield'))

        for lbl in lbls[:-1]:
            rend = gtk.CellRendererText()
            rend.set_property('editable', True)
            rend.connect('edited', self.__on_rend_edited, idx)

            col = gtk.TreeViewColumn(lbl, rend, text=idx)
            self.view.append_column(col)
            idx += 1

        # Last column
        model = gtk.ListStore(str)
        cfields = AuditManager().get_configuration('global.cfields').keys()
        cfields.sort()

        for field in cfields:
            model.append(['%' + field + '%'])

        rend = gtk.CellRendererCombo()
        rend.set_property('model', model)
        rend.set_property('text-column', 0)
        rend.set_property('editable', True)
        rend.connect('edited', self.__on_rend_edited, idx)

        self.view.props.has_tooltip = True
        self.view.connect('query-tooltip', self.__on_query_tooltip)

        col = gtk.TreeViewColumn(lbls[-1], rend, text=idx)
        self.view.append_column(col)

        sw = gtk.ScrolledWindow()
        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)

        sw.add(self.view)

        bb = gtk.HButtonBox()
        bb.set_layout(gtk.BUTTONBOX_END)

        btn = gtk.Button(stock=gtk.STOCK_ADD)
        btn.connect('clicked', self.__on_add_row)
        bb.pack_start(btn)

        btn = gtk.Button(stock=gtk.STOCK_REMOVE)
        btn.connect('clicked', self.__on_remove_row)
        bb.pack_start(btn)

        self.pack_start(sw)
        self.pack_end(bb, False, False)

        # Let's populate
        columns_str = Prefs()['gui.maintab.sniffview.columns'].value

        for column_str in columns_str.split(','):
            try:
                label, pixel_size, eval_str = column_str.split('|', 2)
                pixel_size = int(pixel_size)

                self.store.append([label, pixel_size, eval_str])
            except:
                pass

        self.widgets = []