commit 1ffc1962
Allow going back and forth in fullscreeen
Changed files
| M | imageviewwidget.cpp before |
| M | imageviewwidget.h before |
| M | mainwindow.cpp before |
diff --git a/imageviewwidget.cpp b/imageviewwidget.cpp
index 2ff637b..98b3538 100644
--- a/imageviewwidget.cpp
+++ b/imageviewwidget.cpp
@@ -46,5 +46,19 @@ void ImageViewWidget::keyPressEvent(QKeyEvent *event)
return;
}
+ if (event->key() == Qt::Key_PageDown)
+ {
+ emit nextRequested();
+ event->accept();
+ return;
+ }
+
+ if (event->key() == Qt::Key_PageUp)
+ {
+ emit previousRequested();
+ event->accept();
+ return;
+ }
+
QWidget::keyPressEvent(event);
}
diff --git a/imageviewwidget.h b/imageviewwidget.h
index f10cd29..c6f5d3c 100644
--- a/imageviewwidget.h
+++ b/imageviewwidget.h
@@ -16,6 +16,8 @@ public:
signals:
void closeRequested();
+ void nextRequested();
+ void previousRequested();
protected:
void paintEvent(QPaintEvent *event) override;
diff --git a/mainwindow.cpp b/mainwindow.cpp
index 504f0b0..1f33e27 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -107,6 +107,28 @@ void MainWindow::setupConnections()
connect(m_imageView, &ImageViewWidget::closeRequested,
this, &MainWindow::leaveSingleImageMode);
+ connect(m_imageView, &ImageViewWidget::nextRequested, this, [this]() {
+ QModelIndex cur = m_listView->currentIndex();
+ int next = cur.isValid() ? cur.row() + 1 : 0;
+ if (next < m_imageModel->rowCount())
+ {
+ QModelIndex idx = m_imageModel->index(next);
+ m_listView->setCurrentIndex(idx);
+ enterSingleImageMode(idx);
+ }
+ });
+
+ connect(m_imageView, &ImageViewWidget::previousRequested, this, [this]() {
+ QModelIndex cur = m_listView->currentIndex();
+ int prev = cur.isValid() ? cur.row() - 1 : 0;
+ if (prev >= 0)
+ {
+ QModelIndex idx = m_imageModel->index(prev);
+ m_listView->setCurrentIndex(idx);
+ enterSingleImageMode(idx);
+ }
+ });
+
connect(m_listView->verticalScrollBar(), &QScrollBar::valueChanged,
this, [this]()
{ loadVisibleThumbnails(); });