X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Fviewbase.cpp;h=c463ecc2d1a8dc16792a2c25a58f45836b8caaf7;hp=65cf6842aeee0699686f59990379c48d9a2499c2;hb=5a20644617a727e5893cd1df3f105135c1ebdedd;hpb=8c3397413149b87d2755494fe73186f27edab369 diff --git a/pv/views/viewbase.cpp b/pv/views/viewbase.cpp index 65cf6842..c463ecc2 100644 --- a/pv/views/viewbase.cpp +++ b/pv/views/viewbase.cpp @@ -36,9 +36,9 @@ namespace views { const int ViewBase::MaxViewAutoUpdateRate = 25; // No more than 25 Hz ViewBase::ViewBase(Session &session, bool is_main_view, QWidget *parent) : + // Note: Place defaults in ViewBase::reset_view_state(), not here session_(session), - is_main_view_(is_main_view), - current_segment_(0) + is_main_view_(is_main_view) { (void)parent; @@ -55,6 +55,12 @@ ViewBase::ViewBase(Session &session, bool is_main_view, QWidget *parent) : delayed_view_updater_.setInterval(1000 / MaxViewAutoUpdateRate); } +void ViewBase::reset_view_state() +{ + ruler_shift_ = 0; + current_segment_ = 0; +} + Session& ViewBase::session() { return session_; @@ -79,8 +85,8 @@ void ViewBase::clear_signalbases() for (shared_ptr signalbase : signalbases_) { disconnect(signalbase.get(), SIGNAL(samples_cleared()), this, SLOT(on_data_updated())); - disconnect(signalbase.get(), SIGNAL(samples_added(QObject*, uint64_t, uint64_t)), - this, SLOT(on_samples_added(QObject*, uint64_t, uint64_t))); + disconnect(signalbase.get(), SIGNAL(samples_added(uint64_t, uint64_t, uint64_t)), + this, SLOT(on_samples_added(uint64_t, uint64_t, uint64_t))); } signalbases_.clear(); @@ -92,8 +98,8 @@ void ViewBase::add_signalbase(const shared_ptr signalbase) connect(signalbase.get(), SIGNAL(samples_cleared()), this, SLOT(on_data_updated())); - connect(signalbase.get(), SIGNAL(samples_added(QObject*, uint64_t, uint64_t)), - this, SLOT(on_samples_added(QObject*, uint64_t, uint64_t))); + connect(signalbase.get(), SIGNAL(samples_added(uint64_t, uint64_t, uint64_t)), + this, SLOT(on_samples_added(uint64_t, uint64_t, uint64_t))); } #ifdef ENABLE_DECODE @@ -122,8 +128,9 @@ void ViewBase::restore_settings(QSettings &settings) (void)settings; } -void ViewBase::trigger_event(util::Timestamp location) +void ViewBase::trigger_event(int segment_id, util::Timestamp location) { + (void)segment_id; (void)location; } @@ -150,15 +157,13 @@ void ViewBase::perform_delayed_view_update() { } -void ViewBase::on_samples_added(QObject* segment, uint64_t start_sample, +void ViewBase::on_samples_added(uint64_t segment_id, uint64_t start_sample, uint64_t end_sample) { (void)start_sample; (void)end_sample; - data::Segment* s = qobject_cast(segment); - - if (s->segment_id() != current_segment_) + if (segment_id != current_segment_) return; if (!delayed_view_updater_.isActive())