diff options
author | Robin Gareus <robin@gareus.org> | 2016-12-18 00:06:39 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-12-18 00:06:39 +0100 |
commit | f80fb029e22a5bde240b523370b831fbe3e620d8 (patch) | |
tree | 1ddf682236ac0e874477a0f04f8f1c366cca3c14 /gtk2_ardour/mini_timeline.cc | |
parent | 7688d22456b2bb480fd7f0b9c094231d6c536947 (diff) |
Prepare configurable mini-timeline time-span
Diffstat (limited to 'gtk2_ardour/mini_timeline.cc')
-rw-r--r-- | gtk2_ardour/mini_timeline.cc | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/gtk2_ardour/mini_timeline.cc b/gtk2_ardour/mini_timeline.cc index a3e3b8d324..102b5ff10f 100644 --- a/gtk2_ardour/mini_timeline.cc +++ b/gtk2_ardour/mini_timeline.cc @@ -67,6 +67,7 @@ void MiniTimeline::session_going_away () { super_rapid_connection.disconnect (); + session_connection.disconnect (); SessionHandlePtr::session_going_away (); _jumplist.clear (); } @@ -83,6 +84,11 @@ MiniTimeline::set_session (Session* s) super_rapid_connection = Timers::super_rapid_connect ( sigc::mem_fun (*this, &MiniTimeline::super_rapid_update) ); + _session->config.ParameterChanged.connect (session_connection, + invalidator (*this), + boost::bind (&MiniTimeline::parameter_changed, this, _1), gui_context() + ); + _jumplist.clear (); } @@ -112,6 +118,14 @@ MiniTimeline::set_colors () } void +MiniTimeline::parameter_changed (std::string const& p) +{ + if (p == "minitimeline-span") { + update_minitimeline (); + } +} + +void MiniTimeline::on_size_request (Gtk::Requisition* req) { req->width = req->height = 0; @@ -321,7 +335,7 @@ MiniTimeline::render (cairo_t* cr, cairo_rectangle_t*) /* time */ - const framepos_t time_span = 60; /* left+right: 2 minutes */ + const framepos_t time_span = _session->config.get_minitimeline_span () / 2; const framepos_t time_span_samples = time_span * _session->nominal_frame_rate (); const framepos_t time_granularity = _session->nominal_frame_rate () * ceil (2. * time_span / n_labels); const framepos_t p = _last_update_frame; @@ -446,7 +460,7 @@ MiniTimeline::on_button_release_event (GdkEventButton *ev) } } else if (ev->button == 1) { // copy from ::render() // TODO consolidate - const framepos_t time_span = 60; /* left+right: 2 minutes */ + const framepos_t time_span = _session->config.get_minitimeline_span () / 2; const framepos_t time_span_samples = time_span * _session->nominal_frame_rate (); const framepos_t p = _last_update_frame; const double px_per_sample = get_width () / (2. * time_span_samples); |