add back-pointer to TempoMap from points, and push dirty=true into map
[ardour.git] / gtk2_ardour / meterbridge.cc
index 20e338c3697e9a477c6ec7fe1392e75c909ee06f..9f2ae3674ecd5562a995efe72718fb9f58c87d90 100644 (file)
@@ -26,6 +26,7 @@
 #include <sigc++/bind.h>
 
 #include <gtkmm/accelmap.h>
+#include <gtkmm/comboboxtext.h>
 
 #include <glibmm/threads.h>
 
@@ -408,22 +409,6 @@ Meterbridge::on_scroll()
        metrics_right.set_metric_mode(mm_right, mt_right);
 }
 
-struct PresentationInfoRouteSorter
-{
-       bool operator() (boost::shared_ptr<Route> a, boost::shared_ptr<Route> b) {
-               if (a->is_master() || a->is_monitor()) {
-                       /* "a" is a special route (master, monitor, etc), and comes
-                        * last in the mixer ordering
-                        */
-                       return false;
-               } else if (b->is_master() || b->is_monitor()) {
-                       /* everything comes before b */
-                       return true;
-               }
-               return a->presentation_info().order() < b->presentation_info().order();
-       }
-};
-
 void
 Meterbridge::set_session (Session* s)
 {
@@ -449,7 +434,7 @@ Meterbridge::set_session (Session* s)
        boost::shared_ptr<RouteList> routes = _session->get_routes();
 
        RouteList copy (*routes);
-       copy.sort (PresentationInfoRouteSorter());
+       copy.sort (Stripable::Sorter (true));
        add_strips (copy);
 
        _session->RouteAdded.connect (_session_connections, invalidator (*this), boost::bind (&Meterbridge::add_strips, this, _1), gui_context());
@@ -494,19 +479,10 @@ Meterbridge::set_state (const XMLNode& node)
        m_root_y = 1;
 
        if ((geometry = find_named_node (node, "geometry")) != 0) {
-
-               if (!geometry->get_property ("x_size", m_width)) {
-                       geometry->get_property ("x-size", m_width);
-               }
-               if (!geometry->get_property("y_size", m_height)) {
-                       geometry->get_property ("y-size", m_height);
-               }
-               if (!geometry->get_property ("x_pos", m_root_x)) {
-                       geometry->get_property ("x-pos", m_root_x);
-               }
-               if (!geometry->get_property ("y_pos", m_root_y)) {
-                       geometry->get_property ("y-pos", m_root_y);
-               }
+               geometry->get_property ("x-size", m_width);
+               geometry->get_property ("y-size", m_height);
+               geometry->get_property ("x-pos", m_root_x);
+               geometry->get_property ("y-pos", m_root_y);
        }
 
        set_window_pos_and_size ();
@@ -526,10 +502,10 @@ Meterbridge::get_state (void)
        }
 
        XMLNode* geometry = new XMLNode ("geometry");
-       geometry->set_property(X_("x_size"), m_width);
-       geometry->set_property(X_("y_size"), m_height);
-       geometry->set_property(X_("x_pos"), m_root_x);
-       geometry->set_property(X_("y_pos"), m_root_y);
+       geometry->set_property(X_("x-size"), m_width);
+       geometry->set_property(X_("y-size"), m_height);
+       geometry->set_property(X_("x-pos"), m_root_x);
+       geometry->set_property(X_("y-pos"), m_root_y);
        node->add_child_nocopy (*geometry);
 
        node->set_property ("show-meterbridge", _visible);