def copy_track(self, menuitem): if self.path: tv_iter = self.tracklist.liststore.get_iter(self.path[0]) tedit = self.tracklist.liststore.get_value(tv_iter, 0) new_track = self.tracklist.seq.copy_track(tedit.track) new_name = "%s_bis" % new_track.get_name() new_tedit = TrackEditor(new_track, self.tracklist) new_tedit.set_name(new_name) self.tracklist.liststore.append([new_tedit, new_track.get_info(), 0, new_tedit.track.get_mute_state(), False]) new_tedit.show_all()
def __init__(self, seq, portlist): gtk.Frame.__init__(self, "Track list") self.seq = seq self.portlist = portlist self.liststore = gtk.ListStore(gobject.TYPE_PYOBJECT, str, int, bool, bool) for track in seq.gettracks(): tedit = TrackEditor(track, self) tedit.unmap() self.liststore.append([tedit, tedit.track.get_info(), 0, track.get_mute_state(), False]) self.treev = gtk.TreeView(self.liststore) self.treev.set_enable_search(False) self.menu = TrackListMenu(self) cell_rdrr = gtk.CellRendererToggle() # cell_rdrr.set_property('activatable', True) cell_rdrr.connect('toggled', self.set_trackrec_cb, self.liststore) tvcolumn = gtk.TreeViewColumn('R', cell_rdrr, active=4) tvcolumn.set_expand(False) tvcolumn.set_clickable(True) tvcolumn.connect('clicked', self.unset_trackrec_cb) self.treev.append_column(tvcolumn) self.rec_noteon_list = [] cell_rdrr = gtk.CellRendererProgress() cell_rdrr.set_fixed_size(-1, cell_rdrr.get_size(self)[3] * 2) tvcolumn = gtk.TreeViewColumn('Track', cell_rdrr, text=1, value=2) tvcolumn.set_expand(True) self.track_col = tvcolumn self.treev.append_column(tvcolumn) self.treev.connect('button-press-event', self.tvbutton_press_event) self.treev.connect('row-activated', self.tvbutton_row_activated) cell_rdrr = gtk.CellRendererToggle() # cell_rdrr.set_property('activatable', True) cell_rdrr.connect('toggled', self.toggle_mute, self.liststore) tvcolumn = gtk.TreeViewColumn('M', cell_rdrr, active=3) tvcolumn.set_expand(False) tvcolumn.set_clickable(True) tvcolumn.connect('clicked', self.mute_all) self.treev.append_column(tvcolumn) self.treev.enable_model_drag_source(gtk.gdk.BUTTON1_MASK, [("MIDILOOPER_TRACK_LIST", gtk.TARGET_SAME_WIDGET, 0)], gtk.gdk.ACTION_DEFAULT|gtk.gdk.ACTION_MOVE) self.treev.enable_model_drag_dest([("MIDILOOPER_TRACK_LIST", gtk.TARGET_SAME_WIDGET, 0)], gtk.gdk.ACTION_DEFAULT) self.treev.connect("drag_data_get", self.drag_data_get_data) self.treev.connect("drag_data_received", self.drag_data_received_data) button_add = gtk.Button(stock=gtk.STOCK_ADD) # button_add.add(img_button_add) button_add.connect("clicked", self.button_add_track) vbox = gtk.VBox() vbox.pack_start(self.treev) hbox = gtk.HBox() hbox.pack_start(button_add) vbox.pack_start(hbox) self.add(vbox) def hide_tracklist(win, event): win.hide() return True self.connect('delete_event', hide_tracklist)
def add_track(self, track_name): track = self.seq.newtrack(track_name); tedit = TrackEditor(track, self) self.liststore.append([tedit, tedit.track.get_info(), 0, tedit.track.get_mute_state(), False]) tedit.show_all()