def refresh_schema(self):
cursor = self.conn.cursor()
cursor.execute('SELECT * FROM %s LIMIT 1' % self.table)
for column in self.data_tree.get_columns():
self.data_tree.remove_column(column)
self.columns = []
# TODO get rid of manual incrementing
i = 0
for description in cursor.description:
s = None
if description.type_code == 16:
renderer = Gtk.CellRendererToggle()
self.columns.append(bool)
column = Gtk.TreeViewColumn(description.name.replace('_', '__'), renderer, active=i)
else:
renderer = Gtk.CellRendererText()
renderer.set_property('editable', True)
renderer.connect('edited', self.on_text_edit, i)
renderer.set_property('placeholder-text', 'Null')
renderer.set_property('ellipsize', Pango.EllipsizeMode.END)
self.columns.append(str)
column = Gtk.TreeViewColumn(description.name.replace('_', '__'), renderer, text=i)
column.set_clickable(True)
column.set_resizable(True)
column.set_fixed_width(100)
if i == 0:
# TODO Should this be here?
self.order = description.name
column.set_sort_indicator(True)
column.set_sort_order(1)
self.last_selected_column = column
column.connect('clicked', self.on_column_click, description.name)
self.data_tree.append_column(column)
i += 1
self.store = Gtk.ListStore(*self.columns)
self.data_tree.set_model(self.store)
评论列表
文章目录