示例#1
0
class BooleanDataTests(unittest.TestCase):
    def setUp(self):
        self.list = ObjectList([Column('value', data_type=bool, radio=True,
                                editable=True)])
        self.list.append(Settable(value=True))
        self.list.append(Settable(value=False))

    def testAddingInstances(self):
        self.assertEqual(self.list[0].value, True)
        self.assertEqual(self.list[1].value, False)

    def testSelect(self):
        self.assertEqual(self.list[0].value, True)
        self.assertEqual(self.list[1].value, False)

        column = self.list.get_column_by_name('value')
        treeview_column = self.list.get_treeview_column(column)
        renderer = treeview_column.get_cell_renderers()
        renderer[0].emit('toggled', 1)

        self.assertEqual(self.list[0].value, False)
        self.assertEqual(self.list[1].value, True)
        renderer[0].emit('toggled', 0)

        self.assertEqual(self.list[0].value, True)
        self.assertEqual(self.list[1].value, False)
示例#2
0
    def _create_list(self, column_title):
        object_list = ObjectList([
            KanbanObjectListColumn('markup', title=column_title,
                                   data_type=str, use_markup=True,
                                   expand=True),
        ])
        object_list.connect('row-activated',
                            self._on_row_activated)
        object_list.connect('right-click',
                            self._on_right_click)
        sw = object_list.get_scrolled_window()
        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        sw.set_shadow_type(gtk.SHADOW_NONE)

        treeview = object_list.get_treeview()
        treeview.set_name(column_title)
        treeview.connect(
            "button-press-event", self._on_button_press_event)
        treeview.set_rules_hint(False)

        column = object_list.get_column_by_name('markup')
        column.treeview_column.set_clickable(False)

        white = gtk.gdk.color_parse('white')
        treeview.modify_base(gtk.STATE_ACTIVE, white)
        treeview.modify_base(gtk.STATE_SELECTED, white)

        object_list.set_cell_data_func(self._on_results__cell_data_func)
        return object_list
示例#3
0
    def _create_list(self, column_title):
        object_list = ObjectList([
            KanbanObjectListColumn('markup', title=column_title,
                                   data_type=str, use_markup=True,
                                   expand=True),
        ])
        object_list.connect('row-activated',
                            self._on_row_activated)
        object_list.connect('right-click',
                            self._on_right_click)
        sw = object_list.get_scrolled_window()
        sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        sw.set_shadow_type(Gtk.ShadowType.NONE)

        treeview = object_list.get_treeview()
        treeview.set_name(column_title)
        treeview.connect(
            "button-press-event", self._on_button_press_event)
        treeview.set_rules_hint(False)

        column = object_list.get_column_by_name('markup')
        column.treeview_column.set_clickable(False)

        white = Gdk.color_parse('white')
        treeview.modify_base(Gtk.StateType.ACTIVE, white)
        treeview.modify_base(Gtk.StateType.SELECTED, white)

        object_list.set_cell_data_func(self._on_results__cell_data_func)
        return object_list
示例#4
0
class BooleanDataTests(unittest.TestCase):
    def setUp(self):
        self.list = ObjectList(
            [Column('value', data_type=bool, radio=True, editable=True)])
        self.list.append(Settable(value=True))
        self.list.append(Settable(value=False))

    def testAddingInstances(self):
        self.assertEqual(self.list[0].value, True)
        self.assertEqual(self.list[1].value, False)

    def testSelect(self):
        self.assertEqual(self.list[0].value, True)
        self.assertEqual(self.list[1].value, False)

        column = self.list.get_column_by_name('value')
        treeview_column = self.list.get_treeview_column(column)
        renderer = treeview_column.get_cells()
        renderer[0].emit('toggled', 1)

        self.assertEqual(self.list[0].value, False)
        self.assertEqual(self.list[1].value, True)
        renderer[0].emit('toggled', 0)

        self.assertEqual(self.list[0].value, True)
        self.assertEqual(self.list[1].value, False)
示例#5
0
class DVBServiceInformationAdminGtkNode(BaseAdminGtkNode):
    channels = {}
    siwidget = None

    def render(self):

        def returnWidget(res):
            return self.siwidget
        self.siwidget = ObjectList([Column('programnumber',
            'Program Number', data_type=str),
            Column('name', data_type=str),
            Column('whatson', 'What\'s On', data_type=str)])
        whatsontvcolumn = self.siwidget.get_treeview_column(\
            self.siwidget.get_column_by_name('whatson'))
        import pango
        for renderer in whatsontvcolumn.get_cell_renderers():
            renderer.set_property('wrap-width', 200)
            renderer.set_property('wrap-mode', pango.WRAP_WORD)
        self.widget = self.siwidget
        d = BaseAdminGtkNode.render(self)
        d.addCallback(returnWidget)
        return d

    def setUIState(self, state):
        BaseAdminGtkNode.setUIState(self, state)
        self._watcher = _StateWatcher(state,
           {
                'channelnames': self._setChannelName,
                'whatson': self._setWhatsOn,
           },
           {},
           {},
           setitemers={
                'channelnames': self._setChannelNameItem,
                'whatson': self._setWhatsOnItem,
           },
           delitemers={
                'channelnames': self._delChannelNameItem,
                'whatson': self._delWhatsOnItem,
           })
        self._watcher.show()
        for chan in self.channels:
            self.siwidget.append(chan)

    def _setChannelName(self, state, value):
        if value is None:
            return
        for k, v in value.items():
            self._setChannelNameItem(state, k, v)

    def _setChannelNameItem(self, state, key, value):
        self.debug("set channel name item %s:%s", key, value)
        if key in self.channels:
            chan = self.channels[key]
            chan.set_name(value)
        else:
            self.channels[key] = DVBChannel(key, value)
            if self.siwidget:
                self.siwidget.append(self.channels[key])

    def _delChannelNameItem(self, state, key, value):
        pass

    def _setWhatsOn(self, state, value):
        if value is None:
            return
        for k, v in value.items():
            self._setWhatsOnItem(state, k, v)

    def _setWhatsOnItem(self, state, key, value):
        if key in self.channels:
            chan = self.channels[key]
            chan.set_whatson(value)
        else:
            chan = DVBChannel(key, "")
            chan.set_whatson(value)
            self.channels[key] = chan
            if self.siwidget:
                self.siwidget.append(chan)

    def _delWhatsOnItem(self, state, key, value):
        pass