Managed to find a guide that was helpful
here.
Modifications shown below.
Code:
import gtk
class MusicTreeview():
def __init__(self, builder):
self.treeview = builder.get_object('music_treeview')
self.model = gtk.ListStore(bool, str, str, str, str, str, str)
self.treeview.set_model(self.model)
cell_data_funcs = (self.track_selected, self.track_num,
self.track_name, self.track_artist,
self.track_album, self.track_length,
self.track_size)
self.column_names = ['', '#', 'Name', 'Artist', 'Album', 'Length', 'Size']
self.treeview_columns = [None] * len(self.column_names)
celltog = gtk.CellRendererToggle()
self.treeview_columns[0] = gtk.TreeViewColumn(self.column_names[0], celltog)
self.treeview_columns[0].set_cell_data_func(celltog, self.track_selected)
self.treeview.append_column(self.treeview_columns[0])
for n in range(1, len(self.column_names)):
cell = gtk.CellRendererText()
self.treeview_columns[n] = gtk.TreeViewColumn(self.column_names[n], cell)
self.treeview_columns[n].set_cell_data_func(cell, cell_data_funcs[n])
self.treeview.append_column(self.treeview_columns[n])
def track_selected(self, column, cell, model, iter):
cell.set_property('active', model.get_value(iter, 0))
return
def track_num(self, column, cell, model, iter):
cell.set_property('text', model.get_value(iter, 1))
return
def track_name(self, column, cell, model, iter):
cell.set_property('text', model.get_value(iter, 2))
return
def track_artist(self, column, cell, model, iter):
cell.set_property('text', model.get_value(iter, 3))
return
def track_album(self, column, cell, model, iter):
cell.set_property('text', model.get_value(iter, 4))
return
def track_length(self, column, cell, model, iter):
cell.set_property('text', model.get_value(iter, 5))
return
def track_size(self, column, cell, model, iter):
cell.set_property('text', model.get_value(iter, 6))
return
def AddTrack(self, syncd, num, name, artist, album, length, size):
self.model.append([syncd, num, name, artist, album, length, size])
return