]> sigrok.org Git - pulseview.git/blobdiff - pv/view/view.cpp
View: Fix #513 by scrolling 1/8th the view height per step
[pulseview.git] / pv / view / view.cpp
index 03848478b2a8742bcc67e67baca2c46e35064a14..539581ad1ce95bd934c5f030639455c235ce7e8d 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,15 @@ const Viewport* View::viewport() const
        return viewport_;
 }
 
+vector< shared_ptr<TimeItem> > View::time_items() const
+{
+       vector< shared_ptr<TimeItem> > items;
+       items.push_back(cursors_);
+       items.push_back(cursors_->first());
+       items.push_back(cursors_->second());
+       return items;
+}
+
 double View::scale() const
 {
        return scale_;
@@ -349,18 +358,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_;
 }
@@ -479,6 +483,7 @@ void View::update_scroll()
 
        // Set the vertical scrollbar
        verticalScrollBar()->setPageStep(areaSize.height());
+       verticalScrollBar()->setSingleStep(areaSize.height() / 8);
 
        const pair<int, int> extents = v_extents();
        const int extra_scroll_height = (extents.second - extents.first) / 4;
@@ -502,16 +507,16 @@ void View::update_layout()
        update_scroll();
 }
 
-void View::paint_label(QPainter &p, int right, bool hover)
+void View::paint_label(QPainter &p, const QRect &rect, bool hover)
 {
        (void)p;
-       (void)right;
+       (void)rect;
        (void)hover;
 }
 
-QRectF View::label_rect(int right)
+QRectF View::label_rect(const QRectF &rect)
 {
-       (void)right;
+       (void)rect;
        return QRectF();
 }