Move duplicated AudioFileSource::Flags and SMFSource::Flags into Source.
[ardour.git] / gtk2_ardour / playlist_selector.cc
index 40f837eb5ef1a7d4e35b9c99a3a63915e49dd1b9..0ca9432fcb45af9cd1eee3defe63752622b4ea7d 100644 (file)
@@ -183,6 +183,35 @@ PlaylistSelector::show_for (RouteUI* ruix)
                }
        }
 
+       // Add unassigned (imported) playlists to the list
+       list<boost::shared_ptr<Playlist> > unassigned;
+       session->unassigned_playlists (unassigned);
+
+       TreeModel::Row row;
+       TreeModel::Row* selected_row = 0;
+       TreePath this_path;
+
+       row = *(model->append (others.children()));
+       row[columns.text] = _("Imported");
+       proxy = row[columns.playlist];
+       proxy.reset ();
+
+       for (list<boost::shared_ptr<Playlist> >::iterator p = unassigned.begin(); p != unassigned.end(); ++p) {
+               TreeModel::Row child_row;
+
+               child_row = *(model->append (row.children()));
+               child_row[columns.text] = (*p)->name();
+               child_row[columns.playlist] = *p;
+
+               if (*p == this_ds->playlist()) {
+                       selected_row = &child_row;
+               }
+
+               if (selected_row != 0) {
+                       tree.get_selection()->select (*selected_row);
+               }
+       }
+
        show_all ();
        select_connection = tree.get_selection()->signal_changed().connect (mem_fun(*this, &PlaylistSelector::selection_changed));
 }
@@ -245,7 +274,7 @@ PlaylistSelector::selection_changed ()
 
        if ((playlist = ((*iter)[columns.playlist])) != 0) {
                
-               AudioTrack* at;
+               boost::shared_ptr<AudioTrack> at;
                boost::shared_ptr<AudioPlaylist> apl;
                
                if ((at = rui->audio_track()) == 0) {