def _add_new_sequence_dialog_callback(dialog, response_id, widgets): """ Adds new unnamed sequence and sets it selected """ if response_id != Gtk.ResponseType.ACCEPT: dialog.destroy() return name_entry, tracks_combo, open_check = widgets # Get dialog data name = name_entry.get_text() if len(name) == 0: name = _("sequence_") + str(PROJECT().next_seq_number) v_tracks, a_tracks = appconsts.TRACK_CONFIGURATIONS[tracks_combo.get_active()] open_right_away = open_check.get_active() # Get index for selected sequence selection = gui.sequence_list_view.treeview.get_selection() (model, rows) = selection.get_selected_rows() row = max(rows[0]) # Add new sequence sequence.AUDIO_TRACKS_COUNT = a_tracks sequence.VIDEO_TRACKS_COUNT = v_tracks PROJECT().add_named_sequence(name) gui.sequence_list_view.fill_data_model() if open_right_away == False: selection.select_path(str(row)) # Keep previous selection else: app.change_current_sequence(len(PROJECT().sequences) - 1) dialog.destroy()
def _delete_confirm_callback(dialog, response_id): if response_id != Gtk.ResponseType.ACCEPT: dialog.destroy() return dialog.destroy() selection = gui.sequence_list_view.treeview.get_selection() model, iter = selection.get_selected() # Have to have one sequence. if len(model) < 2: dialogutils.warning_message(_("Can't remove last sequence"), _("There must always exist at least one sequence."), gui.editor_window.window) return (model, rows) = selection.get_selected_rows() row = max(rows[0]) current_index = PROJECT().sequences.index(current_sequence()) # Remove sequence from gui and project data model.remove(iter) PROJECT().sequences.pop(row) # If we deleted current sequence, open first sequence if row == current_index: app.change_current_sequence(0) _enable_save()
def _change_track_count_dialog_callback(dialog, response_id, tracks_combo): if response_id != Gtk.ResponseType.ACCEPT: dialog.destroy() return v_tracks, a_tracks = appconsts.TRACK_CONFIGURATIONS[tracks_combo.get_active()] dialog.destroy() cur_seq_index = PROJECT().sequences.index(PROJECT().c_seq) new_seq = sequence.create_sequence_clone_with_different_track_count(PROJECT().c_seq, v_tracks, a_tracks) PROJECT().sequences.insert(cur_seq_index, new_seq) PROJECT().sequences.pop(cur_seq_index + 1) app.change_current_sequence(cur_seq_index)
def change_edit_sequence(): selection = gui.sequence_list_view.treeview.get_selection() (model, rows) = selection.get_selected_rows() row = max(rows[0]) current_index = PROJECT().sequences.index(current_sequence()) if row == current_index: dialogutils.warning_message(_("Selected sequence is already being edited"), _("Select another sequence. Press Add -button to create a\nnew sequence if needed."), gui.editor_window.window) return # Clear clips selection at exit. This is transient user focus state and # therefore is not saved. movemodes.clear_selected_clips() app.change_current_sequence(row)