fix crash on Insert Selected Region into track, caused by using single-row selection...
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 5 Oct 2006 11:36:52 +0000 (11:36 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 5 Oct 2006 11:36:52 +0000 (11:36 +0000)
git-svn-id: svn://localhost/ardour2/trunk@951 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/editor_ops.cc

index 4a6f69bec9fc2054fd2c5b845adf0b601f3c4521..5baf37b6b3014da18fe746c7e67535256a409914 100644 (file)
@@ -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 */