Implement Trace::ShowLastCompleteSegmentOnly display mode
[pulseview.git] / pv / views / trace / analogsignal.cpp
index 90e441e09f125392c5ccd215e0b2441b55f3c026..e6bd875600130141e5789f9f9b7626aec3c0b75c 100644 (file)
@@ -658,11 +658,12 @@ shared_ptr<pv::data::AnalogSegment> AnalogSignal::get_analog_segment_to_paint()
                if (segment_display_mode_ == ShowLastSegmentOnly)
                        segment = segments.back();
 
-               if (segment_display_mode_ == ShowSingleSegmentOnly) {
+               if ((segment_display_mode_ == ShowSingleSegmentOnly) ||
+                               (segment_display_mode_ == ShowLastCompleteSegmentOnly)) {
                        try {
                                segment = segments.at(current_segment_);
                        } catch (out_of_range) {
-                               qDebug() << "Current analog segment out of range for signal" << base_->name();
+                               qDebug() << "Current analog segment out of range for signal" << base_->name() << ":" << current_segment_;
                        }
                }
        }
@@ -681,11 +682,12 @@ shared_ptr<pv::data::LogicSegment> AnalogSignal::get_logic_segment_to_paint() co
                if (segment_display_mode_ == ShowLastSegmentOnly)
                        segment = segments.back();
 
-               if (segment_display_mode_ == ShowSingleSegmentOnly) {
+               if ((segment_display_mode_ == ShowSingleSegmentOnly) ||
+                               (segment_display_mode_ == ShowLastCompleteSegmentOnly)) {
                        try {
                                segment = segments.at(current_segment_);
                        } catch (out_of_range) {
-                               qDebug() << "Current logic segment out of range for signal" << base_->name();
+                               qDebug() << "Current logic segment out of range for signal" << base_->name() << ":" << current_segment_;
                        }
                }
        }