X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fview.cpp;h=f350459c500bdb9190d44fa0cad0e04a4e1200ad;hb=8a603e135f0eee0b2665c8ec9caa5f19ae6ee5e4;hp=e26e8fc2582a8a45b57f41d3abbf2d72940ed6f7;hpb=7daebd054e65a244dce36933cbf173b8d7532a09;p=pulseview.git diff --git a/pv/views/trace/view.cpp b/pv/views/trace/view.cpp index e26e8fc2..f350459c 100644 --- a/pv/views/trace/view.cpp +++ b/pv/views/trace/view.cpp @@ -229,6 +229,9 @@ View::View(Session &session, bool is_main_view, QWidget *parent) : // Update the zoom state calculate_tick_spacing(); + + // Make sure the standard bar's segment selector is in sync + set_segment_display_mode(segment_display_mode_); } Session& View::session() @@ -258,6 +261,7 @@ void View::add_signal(const shared_ptr signal) signals_.insert(signal); signal->set_segment_display_mode(segment_display_mode_); + signal->set_current_segment(current_segment_); connect(signal->base().get(), SIGNAL(name_changed(const QString&)), this, SLOT(on_signal_name_changed())); @@ -276,6 +280,7 @@ void View::add_decode_signal(shared_ptr signal) decode_traces_.push_back(d); d->set_segment_display_mode(segment_display_mode_); + d->set_current_segment(current_segment_); connect(signal.get(), SIGNAL(name_changed(const QString&)), this, SLOT(on_signal_name_changed())); @@ -497,7 +502,7 @@ void View::set_segment_display_mode(Trace::SegmentDisplayMode mode) segment_selectable_ = true; - if (mode == Trace::ShowSingleSegmentOnly) + if (mode == Trace::ShowLastSegmentOnly) segment_selectable_ = false; segment_display_mode_changed(segment_selectable_); @@ -1420,9 +1425,11 @@ void View::on_segment_changed(int segment) switch (segment_display_mode_) { case Trace::ShowLastSegmentOnly: case Trace::ShowSingleSegmentOnly: - current_segment_ = segment - 1; + current_segment_ = segment; for (shared_ptr signal : signals_) signal->set_current_segment(current_segment_); + for (shared_ptr dt : decode_traces_) + dt->set_current_segment(current_segment_); viewport_->update(); break;