From 5af5f4f068be5599095cf81255b41cf3608dbf68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Du=C5=A1an=20Poizl?= Date: Wed, 2 Apr 2025 12:24:17 +0200 Subject: [PATCH] Navigation menu --- mainwindow.cpp | 39 +++++++++++---------------------------- mainwindow.h | 2 -- 2 files changed, 11 insertions(+), 30 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 3a0c814..da38668 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -118,9 +118,11 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) navigationToolbar->setObjectName("navigationtoolbar"); navigationToolbar->hide(); QAction *prevAction = navigationToolbar->addAction(style()->standardIcon(QStyle::SP_ArrowLeft), tr("Previous image")); + prevAction->setShortcuts({Qt::Key_Left, Qt::Key_Up}); QAction *nextAction = navigationToolbar->addAction(style()->standardIcon(QStyle::SP_ArrowRight), tr("Next image")); - QAction *prevSubAction = navigationToolbar->addAction(style()->standardIcon(QStyle::SP_ArrowUp), tr("Prev sub image")); - QAction *nextSubAction = navigationToolbar->addAction(style()->standardIcon(QStyle::SP_ArrowDown), tr("Next sub image")); + nextAction->setShortcuts({Qt::Key_Right, Qt::Key_Down}); + QAction *prevSubAction = navigationToolbar->addAction(style()->standardIcon(QStyle::SP_ArrowUp), tr("Prev sub image"), Qt::Key_PageUp); + QAction *nextSubAction = navigationToolbar->addAction(style()->standardIcon(QStyle::SP_ArrowDown), tr("Next sub image"), Qt::Key_PageDown); connect(prevAction, &QAction::triggered, m_ringList, static_cast(&ImageRingList::decrement)); connect(nextAction, &QAction::triggered, m_ringList, static_cast(&ImageRingList::increment)); connect(prevSubAction, &QAction::triggered, m_ringList, static_cast(&ImageRingList::prevSubImage)); @@ -195,6 +197,13 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) editMenu->addAction(tr("Settings"), this, &MainWindow::showSettingsDialog); menuBar()->addMenu(editMenu); + QMenu *navigationMenu = new QMenu(tr("Navigation"), this); + navigationMenu->addAction(prevAction); + navigationMenu->addAction(nextAction); + navigationMenu->addAction(prevSubAction); + navigationMenu->addAction(nextSubAction); + menuBar()->addMenu(navigationMenu); + QMenu *viewMenu = new QMenu(tr("View"), this); viewMenu->addAction(tr("Zoom In"), QKeySequence::ZoomIn, m_image, &ImageScrollArea::zoomIn); viewMenu->addAction(tr("Zoom Out"), QKeySequence::ZoomOut, m_image, &ImageScrollArea::zoomOut); @@ -359,32 +368,6 @@ MainWindow::~MainWindow() delete m_database; } -void MainWindow::keyPressEvent(QKeyEvent *event) -{ - switch (event->key()) - { - case Qt::Key_Left: - case Qt::Key_Up: - m_ringList->decrement(); - break; - case Qt::Key_Right: - case Qt::Key_Down: - m_ringList->increment(); - break; - default: - event->ignore(); - break; - } - - if(event->isAccepted()) - updateWindowTitle(); -} - -void MainWindow::keyReleaseEvent(QKeyEvent *event) -{ - event->ignore(); -} - void MainWindow::setupSigterm() { #ifdef __linux__ diff --git a/mainwindow.h b/mainwindow.h index 57f2e56..d091c16 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -34,8 +34,6 @@ public: MainWindow(QWidget *parent = 0); ~MainWindow() override; protected: - void keyPressEvent(QKeyEvent *event) override; - void keyReleaseEvent(QKeyEvent *event) override; void setupSigterm(); static void signalHandler(int); void closeEvent(QCloseEvent *event) override;