MIDI metering.
[ardour.git] / gtk2_ardour / editor_region_list.cc
index 8a50332193400448173cfba7c0b5392dae996abe..a9df9282220c8fabd5c118a0311beec4bc53b6b6 100644 (file)
@@ -101,8 +101,9 @@ Editor::add_region_to_region_display (boost::shared_ptr<Region> region)
                TreeModel::Row parent;
                TreeModel::Row child;
 
-               if (iter == region_list_model->children().end()) {
-                       
+
+               if (!iter) {
+
                        parent = *(region_list_model->append());
                        
                        parent[region_list_columns.name] = _("Hidden");
@@ -119,6 +120,7 @@ Editor::add_region_to_region_display (boost::shared_ptr<Region> region)
                                proxy.reset ();
 
                        } else {
+
                                parent = *iter;
                        }
 
@@ -594,7 +596,6 @@ 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);
 }
 
@@ -613,7 +614,6 @@ 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));
 }
 
@@ -636,8 +636,15 @@ bool
 Editor::region_list_selection_filter (const RefPtr<TreeModel>& model, const TreeModel::Path& path, bool yn)
 {
        /* not possible to select rows that do not represent regions, like "Hidden" */
+       
+       TreeModel::iterator iter = model->get_iter (path);
+
+       if (iter) {
+               boost::shared_ptr<Region> r =(*iter)[region_list_columns.region];
+               if (!r) {
+                       return false;
+               }
+       } 
 
-       /// XXXX FIXME boost::shared_ptr<Region> r = ((model->get_iter (path)))[region_list_columns.region];
-       /// return r != 0;
        return true;
 }