| 603 | } |
| 604 | |
| 605 | void View::update_scroll() |
| 606 | { |
| 607 | assert(_viewcenter); |
| 608 | |
| 609 | int width = get_view_width(); |
| 610 | if (width == 0){ |
| 611 | return; |
| 612 | } |
| 613 | |
| 614 | const QSize areaSize = QSize(width, get_view_height()); |
| 615 | |
| 616 | // Set the horizontal scroll bar |
| 617 | int64_t length = 0; |
| 618 | int64_t offset = 0; |
| 619 | get_scroll_layout(length, offset); |
| 620 | length = max(length - areaSize.width(), (int64_t)0); |
| 621 | |
| 622 | horizontalScrollBar()->setPageStep(areaSize.width() / 2); |
| 623 | |
| 624 | _updating_scroll = true; |
| 625 | |
| 626 | if (length < MaxScrollValue) { |
| 627 | horizontalScrollBar()->setRange(0, length); |
| 628 | horizontalScrollBar()->setSliderPosition(offset); |
| 629 | } else { |
| 630 | horizontalScrollBar()->setRange(0, MaxScrollValue); |
| 631 | horizontalScrollBar()->setSliderPosition( |
| 632 | _offset * 1.0 / length * MaxScrollValue); |
| 633 | } |
| 634 | |
| 635 | _updating_scroll = false; |
| 636 | |
| 637 | // Set the vertical scrollbar |
| 638 | verticalScrollBar()->setPageStep(areaSize.height()); |
| 639 | verticalScrollBar()->setRange(0,0); |
| 640 | } |
| 641 | |
| 642 | void View::update_scale_offset() |
| 643 | { |