diff --git a/libimageviewer/viewpanel/viewpanel.cpp b/libimageviewer/viewpanel/viewpanel.cpp index 4623d58b..c33ebff1 100644 --- a/libimageviewer/viewpanel/viewpanel.cpp +++ b/libimageviewer/viewpanel/viewpanel.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2020 - 2024 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2020-2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later @@ -448,6 +448,8 @@ void LibViewPanel::initExtensionPanel() if (!m_extensionPanel) { m_extensionPanel = new ExtensionPanel(this); connect(m_info, &LibImageInfoWidget::extensionPanelHeight, m_extensionPanel, &ExtensionPanel::updateRectWithContent); + connect(m_extensionPanel, &ExtensionPanel::previousRequested, this, &LibViewPanel::showPrevious); + connect(m_extensionPanel, &ExtensionPanel::nextRequested, this, &LibViewPanel::showNext); connect(m_view, &LibImageGraphicsView::clicked, this, [ = ] { this->m_extensionPanel->hide(); this->m_info->show(); @@ -1906,8 +1908,6 @@ void LibViewPanel::onMenuItemClicked(QAction *action) m_info->setImagePath(path); //执行强制重刷 m_info->show(); m_extensionPanel->setContent(m_info); - //清除焦点 - m_extensionPanel->setFocus(Qt::NoFocusReason); m_extensionPanel->show(); if (this->window()->isFullScreen() || this->window()->isMaximized()) { m_extensionPanel->move(this->window()->width() - m_extensionPanel->width() - 24, diff --git a/libimageviewer/widgets/extensionpanel.cpp b/libimageviewer/widgets/extensionpanel.cpp index 1bb194eb..5b26cde0 100755 --- a/libimageviewer/widgets/extensionpanel.cpp +++ b/libimageviewer/widgets/extensionpanel.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2020 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2020-2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later @@ -192,6 +192,15 @@ void ExtensionPanel::init() // emit hideExtensionPanel(); this->hide(); }); + + QShortcut *previousShortcut = new QShortcut(QKeySequence(Qt::Key_Left), this); + previousShortcut->setContext(Qt::WindowShortcut); + connect(previousShortcut, &QShortcut::activated, this, &ExtensionPanel::previousRequested); + + QShortcut *nextShortcut = new QShortcut(QKeySequence(Qt::Key_Right), this); + nextShortcut->setContext(Qt::WindowShortcut); + connect(nextShortcut, &QShortcut::activated, this, &ExtensionPanel::nextRequested); + // Esc m_scEsc = new QShortcut(QKeySequence(Qt::Key_Escape), this); m_scEsc->setContext(Qt::WindowShortcut); diff --git a/libimageviewer/widgets/extensionpanel.h b/libimageviewer/widgets/extensionpanel.h index e6cb63e5..5b74960f 100755 --- a/libimageviewer/widgets/extensionpanel.h +++ b/libimageviewer/widgets/extensionpanel.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2020 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2020-2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later @@ -30,6 +30,8 @@ class ExtensionPanel : public DAbstractDialog void init(); signals: void requestStopAnimation(); + void previousRequested(); + void nextRequested(); public slots: void updateRectWithContent(int height); private: