]> sigrok.org Git - pulseview.git/blobdiff - pv/view/view.cpp
Allow labels to be set to empty values
[pulseview.git] / pv / view / view.cpp
index b52d689f22c12d988ef3d2f56499bc0b3e9f4629..95b8a5bec9e9f1fde845898ee5ed7a0cf1bfcc58 100644 (file)
@@ -70,13 +70,14 @@ View::View(SigSession &session, QWidget *parent) :
        _scale(1e-6),
        _offset(0),
        _v_offset(0),
+       _updating_scroll(false),
        _show_cursors(false),
        _cursors(pair<Cursor, Cursor>(Cursor(*this, 0.0),
                Cursor(*this, 1.0))),
        _hover_point(-1, -1)
 {
-       connect(horizontalScrollBar(), SIGNAL(sliderMoved(int)),
-               this, SLOT(h_scroll_moved(int)));
+       connect(horizontalScrollBar(), SIGNAL(valueChanged(int)),
+               this, SLOT(h_scroll_value_changed(int)));
        connect(verticalScrollBar(), SIGNAL(valueChanged(int)),
                this, SLOT(v_scroll_value_changed(int)));
 
@@ -208,7 +209,9 @@ void View::update_scroll()
        get_scroll_layout(length, offset);
        length = max(length - areaSize.width(), 0.0);
 
-       horizontalScrollBar()->setPageStep(areaSize.width());
+       horizontalScrollBar()->setPageStep(areaSize.width() / 2);
+
+       _updating_scroll = true;
 
        if (length < MaxScrollValue) {
                horizontalScrollBar()->setRange(0, length);
@@ -219,6 +222,8 @@ void View::update_scroll()
                        _offset * MaxScrollValue / (_scale * length));
        }
 
+       _updating_scroll = false;
+
        // Set the vertical scrollbar
        verticalScrollBar()->setPageStep(areaSize.height());
        verticalScrollBar()->setRange(0,
@@ -288,8 +293,11 @@ void View::resizeEvent(QResizeEvent*)
        update_scroll();
 }
 
-void View::h_scroll_moved(int value)
+void View::h_scroll_value_changed(int value)
 {
+       if (_updating_scroll)
+               return;
+
        const int range = horizontalScrollBar()->maximum();
        if (range < MaxScrollValue)
                _offset = _scale * value;