X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fview.cpp;h=5b2a2ef40b98f1f0aec84aee3f086606bcbbcd16;hp=35b6807dfc75c11ba825831c1552ee17fe490f5a;hb=9a0e130580f37277d94fd2637ee17bb9c181e110;hpb=451dc5f33fbc4f559881acdf338c476a976fcbf2 diff --git a/pv/views/trace/view.cpp b/pv/views/trace/view.cpp index 35b6807..5b2a2ef 100644 --- a/pv/views/trace/view.cpp +++ b/pv/views/trace/view.cpp @@ -79,7 +79,6 @@ using std::make_pair; using std::make_shared; using std::min; using std::pair; -using std::placeholders::_1; using std::set; using std::set_difference; using std::shared_ptr; @@ -199,8 +198,7 @@ View::View(Session &session, bool is_main_view, QWidget *parent) : GlobalSettings settings; coloured_bg_ = settings.value(GlobalSettings::Key_View_ColouredBG).toBool(); - GlobalSettings::register_change_handler(GlobalSettings::Key_View_TriggerIsZeroTime, - bind(&View::on_settingViewTriggerIsZeroTime_changed, this, _1)); + GlobalSettings::add_change_handler(this); connect(scrollarea_->horizontalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(h_scroll_value_changed(int))); @@ -239,6 +237,11 @@ View::View(Session &session, bool is_main_view, QWidget *parent) : set_segment_display_mode(segment_display_mode_); } +View::~View() +{ + GlobalSettings::remove_change_handler(this); +} + Session& View::session() { return session_; @@ -558,8 +561,10 @@ void View::set_current_segment(uint32_t segment_id) for (shared_ptr signal : signals_) signal->set_current_segment(current_segment_); +#ifdef ENABLE_DECODE for (shared_ptr dt : decode_traces_) dt->set_current_segment(current_segment_); +#endif vector triggers = session_.get_triggers(current_segment_); @@ -861,6 +866,12 @@ void View::restack_all_trace_tree_items() i->animate_to_layout_v_offset(); } +void View::on_setting_changed(const QString &key, const QVariant &value) +{ + if (key == GlobalSettings::Key_View_TriggerIsZeroTime) + on_settingViewTriggerIsZeroTime_changed(value); +} + void View::trigger_event(int segment_id, util::Timestamp location) { // TODO This doesn't work if we're showing multiple segments at once