]> sigrok.org Git - pulseview.git/blobdiff - pv/view/view.cpp
View: Store CursorPair in a shared_ptr
[pulseview.git] / pv / view / view.cpp
index 03848478b2a8742bcc67e67baca2c46e35064a14..4575d05e2b7dd0fc58009a4bc927892dbe52a9a3 100644 (file)
@@ -104,7 +104,7 @@ View::View(Session &session, QWidget *parent) :
        tick_period_(0.0),
        tick_prefix_(0),
        show_cursors_(false),
-       cursors_(*this),
+       cursors_(new CursorPair(*this)),
        hover_point_(-1, -1)
 {
        connect(horizontalScrollBar(), SIGNAL(valueChanged(int)),
@@ -121,9 +121,9 @@ View::View(Session &session, QWidget *parent) :
        connect(&session_, SIGNAL(frame_ended()),
                this, SLOT(data_updated()));
 
-       connect(cursors_.first().get(), SIGNAL(time_changed()),
+       connect(cursors_->first().get(), SIGNAL(time_changed()),
                this, SLOT(marker_time_changed()));
-       connect(cursors_.second().get(), SIGNAL(time_changed()),
+       connect(cursors_->second().get(), SIGNAL(time_changed()),
                this, SLOT(marker_time_changed()));
 
        connect(header_, SIGNAL(signals_moved()),
@@ -195,6 +195,14 @@ const Viewport* View::viewport() const
        return viewport_;
 }
 
+vector< shared_ptr<TimeItem> > View::time_items() const
+{
+       vector< shared_ptr<TimeItem> > items;
+       items.push_back(cursors_->first());
+       items.push_back(cursors_->second());
+       return items;
+}
+
 double View::scale() const
 {
        return scale_;
@@ -349,18 +357,13 @@ void View::show_cursors(bool show)
 void View::centre_cursors()
 {
        const double time_width = scale_ * viewport_->width();
-       cursors_.first()->set_time(offset_ + time_width * 0.4);
-       cursors_.second()->set_time(offset_ + time_width * 0.6);
+       cursors_->first()->set_time(offset_ + time_width * 0.4);
+       cursors_->second()->set_time(offset_ + time_width * 0.6);
        cursorheader_->update();
        viewport_->update();
 }
 
-CursorPair& View::cursors()
-{
-       return cursors_;
-}
-
-const CursorPair& View::cursors() const
+std::shared_ptr<CursorPair> View::cursors() const
 {
        return cursors_;
 }