X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fview.cpp;h=af15f1e49105f522e4eae124c9182623553c538b;hb=57c04e781e96020c7185d7b6e634629007497227;hp=35b6807dfc75c11ba825831c1552ee17fe490f5a;hpb=451dc5f33fbc4f559881acdf338c476a976fcbf2;p=pulseview.git diff --git a/pv/views/trace/view.cpp b/pv/views/trace/view.cpp index 35b6807..af15f1e 100644 --- a/pv/views/trace/view.cpp +++ b/pv/views/trace/view.cpp @@ -199,8 +199,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 +238,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 +562,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 +867,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