X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fview.cpp;h=8922922aa1c1e939f747b15327545acc84c6379e;hb=e4cc0ee6270eb4d388a169438f58aa481f705261;hp=35b6807dfc75c11ba825831c1552ee17fe490f5a;hpb=451dc5f33fbc4f559881acdf338c476a976fcbf2;p=pulseview.git diff --git a/pv/views/trace/view.cpp b/pv/views/trace/view.cpp index 35b6807..8922922 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 @@ -941,7 +952,7 @@ void View::calculate_tick_spacing() (ScaleUnits[unit++] + tp_margin); } while (tp_with_margin < min_period && unit < countof(ScaleUnits)); - minor_tick_count_ = (unit == 2) ? (4) : (5); + minor_tick_count_ = (unit == 2) ? 4 : 5; tick_period = order_decimal * ScaleUnits[unit - 1]; tick_prefix = static_cast( (order - pv::util::exponent(pv::util::SIPrefix::yocto)) / 3);