diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-10-05 11:36:52 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-10-05 11:36:52 +0000 |
commit | 84f57e1397c749d8bb2110d717b527b2d84b51a7 (patch) | |
tree | e77af597910aff86cdbd875fa15e550764183068 | |
parent | ffdf5ada616d285fafb58f45c2e3d37b212a328a (diff) |
fix crash on Insert Selected Region into track, caused by using single-row selection function for a multi-selectable treeview
git-svn-id: svn://localhost/ardour2/trunk@951 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 4a6f69bec9..5baf37b6b3 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -1782,16 +1782,23 @@ Editor::insert_region_list_selection (float times) return; } - TreeModel::iterator i = region_list_display.get_selection()->get_selected(); - boost::shared_ptr<Region> region = (*i)[region_list_columns.region]; + TreeView::Selection::ListHandle_Path rows = selected->get_selected_rows (); - begin_reversible_command (_("insert region")); - XMLNode &before = playlist->get_state(); - playlist->add_region ((RegionFactory::create (region)), edit_cursor->current_frame, times); - session->add_command(new MementoCommand<Playlist>(*playlist, &before, &playlist->get_state())); - commit_reversible_command (); -} + /* only one row selected, so rows.begin() is it */ + + TreeIter iter; + if ((iter = region_list_model->get_iter (*rows.begin()))) { + + boost::shared_ptr<Region> region = (*iter)[region_list_columns.region]; + + begin_reversible_command (_("insert region")); + XMLNode &before = playlist->get_state(); + playlist->add_region ((RegionFactory::create (region)), edit_cursor->current_frame, times); + session->add_command(new MementoCommand<Playlist>(*playlist, &before, &playlist->get_state())); + commit_reversible_command (); + } +} /* BUILT-IN EFFECTS */ |