]> sigrok.org Git - pulseview.git/blobdiff - pv/views/trace/decodetrace.cpp
DecodeTrace: Reset cached trace properties when decoder stack resets
[pulseview.git] / pv / views / trace / decodetrace.cpp
index 7bbc5a19b526cd5afa6856a578f1d03f989533df..509e77f6224b5dacbd9514d47f48b245f47a6c08 100644 (file)
@@ -146,6 +146,8 @@ DecodeTrace::DecodeTrace(pv::Session &session,
 
        connect(decode_signal_.get(), SIGNAL(new_annotations()),
                this, SLOT(on_new_annotations()));
 
        connect(decode_signal_.get(), SIGNAL(new_annotations()),
                this, SLOT(on_new_annotations()));
+       connect(decode_signal_.get(), SIGNAL(decode_reset()),
+               this, SLOT(on_decode_reset()));
        connect(decode_signal_.get(), SIGNAL(decode_finished()),
                this, SLOT(on_decode_finished()));
        connect(decode_signal_.get(), SIGNAL(channels_updated()),
        connect(decode_signal_.get(), SIGNAL(decode_finished()),
                this, SLOT(on_decode_finished()));
        connect(decode_signal_.get(), SIGNAL(channels_updated()),
@@ -889,6 +891,15 @@ void DecodeTrace::on_delayed_trace_update()
                owner_->row_item_appearance_changed(false, true);
 }
 
                owner_->row_item_appearance_changed(false, true);
 }
 
+void DecodeTrace::on_decode_reset()
+{
+       visible_rows_.clear();
+       max_visible_rows_ = 0;
+
+       if (owner_)
+               owner_->row_item_appearance_changed(false, true);
+}
+
 void DecodeTrace::on_decode_finished()
 {
        if (owner_)
 void DecodeTrace::on_decode_finished()
 {
        if (owner_)