From: Miklos Marton Date: Mon, 20 May 2019 09:27:37 +0000 (+0200) Subject: Add shortcuts to + and - buttons for zooming in and out horizontally X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=b6262d704b8f34f5de6ffa9a54d2adf3ebf02556;p=pulseview.git Add shortcuts to + and - buttons for zooming in and out horizontally --- diff --git a/pv/mainwindow.cpp b/pv/mainwindow.cpp index fb749f57..d04759cf 100644 --- a/pv/mainwindow.cpp +++ b/pv/mainwindow.cpp @@ -511,6 +511,12 @@ void MainWindow::setup_ui() view_colored_bg_shortcut_ = new QShortcut(QKeySequence(Qt::Key_B), this, SLOT(on_view_colored_bg_shortcut())); view_colored_bg_shortcut_->setAutoRepeat(false); + zoom_in_shortcut_ = new QShortcut(QKeySequence(Qt::Key_Plus), this, SLOT(on_zoom_in_shortcut_triggered())); + zoom_in_shortcut_->setAutoRepeat(false); + + zoom_out_shortcut_ = new QShortcut(QKeySequence(Qt::Key_Minus), this, SLOT(on_zoom_out_shortcut_triggered())); + zoom_out_shortcut_->setAutoRepeat(false); + // Set up the tab area new_session_button_ = new QToolButton(); new_session_button_->setIcon(QIcon::fromTheme("document-new", @@ -601,6 +607,19 @@ void MainWindow::restore_ui_settings() settings.endGroup(); } +void MainWindow::zoom_current_view(double steps) +{ + shared_ptr session = get_tab_session(session_selector_.currentIndex()); + + if (!session) + return; + + shared_ptr v = session.get()->main_view(); + views::trace::View *tv = + qobject_cast(v.get()); + tv->zoom(steps); +} + shared_ptr MainWindow::get_tab_session(int index) const { // Find the session that belongs to the tab's main window @@ -949,6 +968,16 @@ void MainWindow::on_settingViewShowAnalogMinorGrid_changed(const QVariant new_va } } +void MainWindow::on_zoom_out_shortcut_triggered() +{ + zoom_current_view(-1); +} + +void MainWindow::on_zoom_in_shortcut_triggered() +{ + zoom_current_view(1); +} + void MainWindow::on_close_current_tab() { int tab = session_selector_.currentIndex(); diff --git a/pv/mainwindow.hpp b/pv/mainwindow.hpp index 92fba45f..6f2fded9 100644 --- a/pv/mainwindow.hpp +++ b/pv/mainwindow.hpp @@ -108,6 +108,8 @@ private: void save_ui_settings(); void restore_ui_settings(); + void zoom_current_view(double steps); + shared_ptr get_tab_session(int index) const; void closeEvent(QCloseEvent *event); @@ -148,6 +150,9 @@ private Q_SLOTS: void on_settingViewShowSamplingPoints_changed(const QVariant new_value); void on_settingViewShowAnalogMinorGrid_changed(const QVariant new_value); + void on_zoom_out_shortcut_triggered(); + void on_zoom_in_shortcut_triggered(); + void on_close_current_tab(); private: @@ -177,6 +182,8 @@ private: QShortcut *run_stop_shortcut_; QShortcut *close_application_shortcut_; QShortcut *close_current_tab_shortcut_; + QShortcut *zoom_in_shortcut_; + QShortcut *zoom_out_shortcut_; }; } // namespace pv