diff --git a/src/gui/group/GroupView.cpp b/src/gui/group/GroupView.cpp index 75c3a972e..1fc4700b0 100644 --- a/src/gui/group/GroupView.cpp +++ b/src/gui/group/GroupView.cpp @@ -44,6 +44,9 @@ GroupView::GroupView(Database* db, QWidget* parent) // clang-format on new QShortcut(Qt::CTRL + Qt::Key_F10, this, SLOT(contextMenuShortcutPressed()), nullptr, Qt::WidgetShortcut); + new QShortcut( + Qt::CTRL + Qt::SHIFT + Qt::Key_PageUp, this, SLOT(selectPreviousGroup()), nullptr, Qt::WindowShortcut); + new QShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_PageDown, this, SLOT(selectNextGroup()), nullptr, Qt::WindowShortcut); // keyboard shortcuts to sort children of a group auto shortcut = new QShortcut(Qt::CTRL + Qt::Key_Down, this, nullptr, nullptr, Qt::WidgetShortcut); @@ -60,6 +63,24 @@ GroupView::GroupView(Database* db, QWidget* parent) setDefaultDropAction(Qt::MoveAction); } +void GroupView::selectPreviousGroup() +{ + auto previousIndex = indexAbove(currentIndex()); + if (previousIndex.isValid()) { + auto previousGroup = m_model->groupFromIndex(previousIndex); + setCurrentGroup(previousGroup); + } +} + +void GroupView::selectNextGroup() +{ + auto nextIndex = indexBelow(currentIndex()); + if (nextIndex.isValid()) { + auto nextGroup = m_model->groupFromIndex(nextIndex); + setCurrentGroup(nextGroup); + } +} + void GroupView::contextMenuShortcutPressed() { auto index = currentIndex(); diff --git a/src/gui/group/GroupView.h b/src/gui/group/GroupView.h index aa4fd85de..15df853ff 100644 --- a/src/gui/group/GroupView.h +++ b/src/gui/group/GroupView.h @@ -46,6 +46,8 @@ private slots: void syncExpandedState(const QModelIndex& parent, int start, int end); void modelReset(); void contextMenuShortcutPressed(); + void selectPreviousGroup(); + void selectNextGroup(); protected: void dragMoveEvent(QDragMoveEvent* event) override;