some fixes/improvements for track selection; add upload target to manual makefile...
[ardour.git] / gtk2_ardour / editor_region_list.cc
index fdb8ca9dd394319be1633f0a724327cf3c622491..d8c521da2087c9427c2255f42003684bd23ff136 100644 (file)
@@ -26,7 +26,7 @@
 #include <pbd/basename.h>
 
 #include <ardour/audioregion.h>
-#include <ardour/audiosource.h>
+#include <ardour/audiofilesource.h>
 #include <ardour/session_region.h>
 
 #include <gtkmm2ext/stop_signal.h>
@@ -50,7 +50,7 @@ using namespace Editing;
 void
 Editor::handle_audio_region_removed (boost::weak_ptr<AudioRegion> wregion)
 {
-       ENSURE_GUI_THREAD (bind (mem_fun (*this, &Editor::handle_audio_region_removed), wregion));
+       ENSURE_GUI_THREAD (mem_fun (*this, &Editor::redisplay_regions));
        redisplay_regions ();
 }
 
@@ -101,7 +101,8 @@ Editor::add_audio_region_to_region_display (boost::shared_ptr<AudioRegion> regio
                        parent = *(region_list_model->append());
                        
                        parent[region_list_columns.name] = _("Hidden");
-                       /// XXX FIX ME parent[region_list_columns.region]->reset ();
+                       boost::shared_ptr<Region> proxy = parent[region_list_columns.region];
+                       proxy.reset ();
 
                } else {
 
@@ -109,7 +110,8 @@ Editor::add_audio_region_to_region_display (boost::shared_ptr<AudioRegion> regio
 
                                parent = *(region_list_model->insert(iter));
                                parent[region_list_columns.name] = _("Hidden");
-                               /// XXX FIX ME parent[region_list_columns.region]->reset ();
+                               boost::shared_ptr<Region> proxy = parent[region_list_columns.region];
+                               proxy.reset ();
 
                        } else {
                                parent = *iter;
@@ -129,8 +131,15 @@ Editor::add_audio_region_to_region_display (boost::shared_ptr<AudioRegion> regio
 
                        if (region->whole_file()) {
                                str = ".../";
-                               str += PBD::basename_nosuffix (region->source()->name());
-                               
+
+                               boost::shared_ptr<AudioFileSource> afs = boost::dynamic_pointer_cast<AudioFileSource>(region->source());
+
+                               if (afs) {
+                                       str += region_name_from_path (afs->path(), region->n_channels() > 1);
+                               } else {
+                                       str += region->source()->name();
+                               }
+
                        } else {
                                str = region->name();
                        }
@@ -246,12 +255,6 @@ Editor::redisplay_regions ()
        }
 }
 
-void
-Editor::region_list_clear ()
-{
-       region_list_model->clear();
-}
-
 void
 Editor::build_region_list_menu ()
 {
@@ -553,6 +556,7 @@ Editor::hide_a_region (boost::shared_ptr<Region> r)
 void
 Editor::remove_a_region (boost::shared_ptr<Region> r)
 {
+       cerr << "remove " << r->name();
        session->remove_region_from_region_list (r);
 }
 
@@ -571,6 +575,7 @@ Editor::hide_region_from_region_list ()
 void
 Editor::remove_region_from_region_list ()
 {
+       cerr << "Mapping remove over region selection\n";
        region_list_selection_mapover (mem_fun (*this, &Editor::remove_a_region));
 }