X-Git-Url: http://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fview.cpp;fp=pv%2Fviews%2Ftrace%2Fview.cpp;h=69599b1bb1bd28a8ad767e474e56be3b7a9640a6;hp=0a51a96fb5398a590997e558a9fc7427c9e3679b;hb=1c5211005b1c7682bf4597bfb20cf8b1937d792d;hpb=8e168b23846653c087e46b6a63feffac48512ddb diff --git a/pv/views/trace/view.cpp b/pv/views/trace/view.cpp index 0a51a96f..69599b1b 100644 --- a/pv/views/trace/view.cpp +++ b/pv/views/trace/view.cpp @@ -184,9 +184,10 @@ View::View(Session &session, bool is_main_view, QMainWindow *parent) : GlobalSettings::add_change_handler(this); // Set up metadata objects and event handlers - if (is_main_view) + if (is_main_view) { session_.metadata_obj_manager()->create_object(MetadataObjMainViewRange); - + session_.metadata_obj_manager()->create_object(MetadataObjMousePos); + } // Set up UI event handlers connect(scrollarea_->horizontalScrollBar(), SIGNAL(valueChanged(int)), @@ -1572,8 +1573,19 @@ void View::update_hover_point() for (const shared_ptr& r : trace_tree_items) r->hover_point_changed(hover_point_); - // Notify any other listeners + // Notify this view's listeners hover_point_changed(hover_widget_, hover_point_); + + // Hover point is -1 when invalid and 0 for the header + if (hover_point_.x() > 0) { + // Notify global listeners + pv::util::Timestamp mouse_time = offset_ + hover_point_.x() * scale_; + int64_t sample_num = (mouse_time * session_.get_samplerate()).convert_to(); + + MetadataObject* md_obj = + session_.metadata_obj_manager()->find_object_by_type(MetadataObjMousePos); + md_obj->set_value(MetadataValueStartSample, QVariant((qlonglong)sample_num)); + } } void View::row_item_appearance_changed(bool label, bool content)