3 #include "qui/seqbrowser/ScrollableSequenceBrowser.hpp"
5 ScrollableSequenceBrowser::ScrollableSequenceBrowser(QWidget *parent) :
10 QVBoxLayout *layout = new QVBoxLayout(this);
11 sequence_browser = new SequenceBrowser;
12 viewportBar = new QScrollBar(Qt::Horizontal);
13 // construct central opengl widget
15 layout->addWidget(sequence_browser);
16 layout->addWidget(viewportBar);
18 connect(viewportBar, SIGNAL(valueChanged(int)),
19 this, SLOT(setViewportCenter(int)));
20 connect(sequence_browser, SIGNAL(viewportChanged()),
21 this, SLOT(updateScrollBar()));
28 // enble keyboard input
29 viewportBar->setFocusPolicy(Qt::StrongFocus);
32 void ScrollableSequenceBrowser::updateScrollBar()
34 thumb = (int)sequence_browser->viewportCenter();
35 viewportBar->setRange((int)sequence_browser->left(),
36 (int)sequence_browser->right());
37 viewportBar->setValue(thumb);
38 viewportBar->setPageStep(static_cast<int>(sequence_browser->viewportWidth()));
39 int step_size = static_cast<int>(sequence_browser->zoom());
40 step_size = step_size > 1 ? step_size : 1;
41 viewportBar->setSingleStep(static_cast<int>( step_size ));
44 void ScrollableSequenceBrowser::setViewportCenter(int x)
48 sequence_browser->setViewportCenter(thumb);