zoom_out_shortcut_ = new QShortcut(QKeySequence(Qt::Key_Minus), this, SLOT(on_zoom_out_shortcut_triggered()));
zoom_out_shortcut_->setAutoRepeat(false);
+ home_shortcut_ = new QShortcut(QKeySequence(Qt::Key_Home), this, SLOT(on_scroll_to_start_triggered()));
+ home_shortcut_->setAutoRepeat(false);
+
+ end_shortcut_ = new QShortcut(QKeySequence(Qt::Key_End), this, SLOT(on_scroll_to_end_triggered()));
+ end_shortcut_->setAutoRepeat(false);
+
// Set up the tab area
new_session_button_ = new QToolButton();
new_session_button_->setIcon(QIcon::fromTheme("document-new",
zoom_current_view(1);
}
+void MainWindow::on_scroll_to_start_triggered()
+{
+ scroll_to_start_or_end(true);
+}
+
+void MainWindow::on_scroll_to_end_triggered()
+{
+ scroll_to_start_or_end(false);
+}
+
+void MainWindow::scroll_to_start_or_end(bool start)
+{
+ shared_ptr<Session> session = get_tab_session(session_selector_.currentIndex());
+
+ if (!session)
+ return;
+
+ shared_ptr<views::ViewBase> v = session.get()->main_view();
+ views::trace::View *tv =
+ qobject_cast<views::trace::View*>(v.get());
+ tv->set_h_offset(start ? 0 : tv->get_h_scrollbar_maximum());
+}
+
void MainWindow::on_close_current_tab()
{
int tab = session_selector_.currentIndex();
void restore_ui_settings();
void zoom_current_view(double steps);
+ void scroll_to_start_or_end(bool start);
shared_ptr<Session> get_tab_session(int index) const;
void on_zoom_out_shortcut_triggered();
void on_zoom_in_shortcut_triggered();
+ void on_scroll_to_start_triggered();
+ void on_scroll_to_end_triggered();
void on_close_current_tab();
QShortcut *close_current_tab_shortcut_;
QShortcut *zoom_in_shortcut_;
QShortcut *zoom_out_shortcut_;
+ QShortcut *home_shortcut_;
+ QShortcut *end_shortcut_;
};
} // namespace pv
viewport_->update();
}
+void View::set_h_offset(int offset)
+{
+ scrollarea_->horizontalScrollBar()->setSliderPosition(offset);
+ header_->update();
+ viewport_->update();
+}
+
+int View::get_h_scrollbar_maximum() const
+{
+ return scrollarea_->horizontalScrollBar()->maximum();
+}
+
unsigned int View::depth() const
{
return 0;
*/
void set_v_offset(int offset);
+ /**
+ * Sets the visual h-offset.
+ */
+ void set_h_offset(int offset);
+
+ /**
+ * Gets the length of the horizontal scrollbar.
+ */
+ int get_h_scrollbar_maximum() const;
+
/**
* Returns the SI prefix to apply to the graticule time markings.
*/