use shared_ptr for all Playlist handling; cleanup works again
[ardour.git] / gtk2_ardour / editor_selection_list.cc
index 51789880f03daaaf4a369c8c4b51f56d552ec472..8e88ee497bbb9a74bd7fb8dbd878b101b0e5cf64 100644 (file)
@@ -40,6 +40,7 @@
 
 using namespace sigc;
 using namespace ARDOUR;
+using namespace PBD;
 using namespace Gtk;
 using namespace Gtkmm2ext;
 
@@ -60,11 +61,8 @@ Editor::add_named_selection_to_named_selection_display (NamedSelection& selectio
 void
 Editor::redisplay_named_selections ()
 {
-        //GTK2FIX
-        //named_selection_display.freeze ();
-       named_selection_model.clear ();
+       named_selection_model->clear ();
        session->foreach_named_selection (*this, &Editor::add_named_selection_to_named_selection_display);
-       //named_selection_display.thaw ();
 }
 
 gint
@@ -81,7 +79,7 @@ Editor::named_selection_display_button_press (GdkEventButton *ev)
                        case 1:
                                if (Keyboard::is_delete_event (ev)) {
                                        session->remove_named_selection ((*i)[named_selection_columns.selection]);
-                                       return stop_signal (named_selection_display, "button_press_event");
+                                       return true;
                                }
                                break;
                        case 2:
@@ -107,12 +105,14 @@ Editor::name_selection ()
 {
        ArdourPrompter p;
 
-       p.set_prompt (_("name for chunk:"));
-       p.change_labels (_("Create chunk"), _("Forget it"));
+       p.set_prompt (_("Name for Chunk:"));
+       p.add_button (Gtk::Stock::NEW, Gtk::RESPONSE_ACCEPT);
+       p.set_response_sensitive (Gtk::RESPONSE_ACCEPT, false);
+       p.change_labels (_("Create Chunk"), _("Forget it"));
        p.show_all ();
 
        switch (p.run ()) {
-       case GTK_RESPONSE_ACCEPT:
+       case Gtk::RESPONSE_ACCEPT:
          string name;
                p.get_result (name);
                if (name.length()) {
@@ -130,7 +130,7 @@ Editor::named_selection_name_chosen ()
 }
 
 void
-Editor::create_named_selection (string name)
+Editor::create_named_selection (const string & name)
 {
        if (session == 0) {
                return;
@@ -150,12 +150,12 @@ Editor::create_named_selection (string name)
                return;
        }
 
-       Playlist*       what_we_found;
-       list<Playlist*> thelist;
+       boost::shared_ptr<Playlist>        what_we_found;
+       list<boost::shared_ptr<Playlist> > thelist;
 
        for (TrackViewList::iterator i = views->begin(); i != views->end(); ++i) {
                
-               Playlist *pl = (*i)->playlist();
+               boost::shared_ptr<Playlist> pl = (*i)->playlist();
                
                if (pl) {